improve Update_pixel_renderer()
+doxygen
This commit is contained in:
parent
1e6f0175da
commit
832617188f
79
src/graph.c
79
src/graph.c
@ -3603,58 +3603,63 @@ byte Read_pixel_from_current_layer(word x,word y)
|
|||||||
return *((y)*Main.image_width+(x)+Main.backups->Pages->Image[Main.current_layer].Pixels);
|
return *((y)*Main.image_width+(x)+Main.backups->Pages->Image[Main.current_layer].Pixels);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the pixel functions according to the current Image_mode.
|
||||||
|
*
|
||||||
|
* Pixel_in_current_screen and Pixel_in_current_screen_with_preview are updated.
|
||||||
|
*/
|
||||||
void Update_pixel_renderer(void)
|
void Update_pixel_renderer(void)
|
||||||
{
|
{
|
||||||
if (Main.backups->Pages->Image_mode == IMAGE_MODE_ANIMATION)
|
switch (Main.backups->Pages->Image_mode)
|
||||||
{
|
{
|
||||||
|
case IMAGE_MODE_C64MULTI: //TODO
|
||||||
|
case IMAGE_MODE_C64FLI: //TODO
|
||||||
|
case IMAGE_MODE_GBC: // TODO
|
||||||
|
case IMAGE_MODE_ANIMATION:
|
||||||
// direct
|
// direct
|
||||||
Pixel_in_current_screen = Pixel_in_screen_direct;
|
Pixel_in_current_screen = Pixel_in_screen_direct;
|
||||||
Pixel_in_current_screen_with_preview = Pixel_in_screen_direct_with_preview;
|
Pixel_in_current_screen_with_preview = Pixel_in_screen_direct_with_preview;
|
||||||
}
|
break;
|
||||||
else
|
case IMAGE_MODE_LAYERED:
|
||||||
if (Main.backups->Pages->Image_mode == IMAGE_MODE_LAYERED)
|
|
||||||
{
|
|
||||||
// layered
|
// layered
|
||||||
Pixel_in_current_screen = Pixel_in_screen_layered;
|
Pixel_in_current_screen = Pixel_in_screen_layered;
|
||||||
Pixel_in_current_screen_with_preview = Pixel_in_screen_layered_with_preview;
|
Pixel_in_current_screen_with_preview = Pixel_in_screen_layered_with_preview;
|
||||||
}
|
break;
|
||||||
else
|
case IMAGE_MODE_EGX:
|
||||||
if (Main.backups->Pages->Image_mode == IMAGE_MODE_EGX
|
case IMAGE_MODE_EGX2:
|
||||||
|| Main.backups->Pages->Image_mode == IMAGE_MODE_EGX2)
|
|
||||||
{
|
|
||||||
// special "EGX" mode
|
// special "EGX" mode
|
||||||
Pixel_in_current_screen = Pixel_in_screen_egx;
|
Pixel_in_current_screen = Pixel_in_screen_egx;
|
||||||
Pixel_in_current_screen_with_preview = Pixel_in_screen_egx_with_preview;
|
Pixel_in_current_screen_with_preview = Pixel_in_screen_egx_with_preview;
|
||||||
}
|
break;
|
||||||
else
|
case IMAGE_MODE_THOMSON:
|
||||||
if (Main.backups->Pages->Image_mode == IMAGE_MODE_THOMSON)
|
|
||||||
{
|
|
||||||
Pixel_in_current_screen = Pixel_in_screen_thomson;
|
Pixel_in_current_screen = Pixel_in_screen_thomson;
|
||||||
Pixel_in_current_screen_with_preview = Pixel_in_screen_thomson_with_preview;
|
Pixel_in_current_screen_with_preview = Pixel_in_screen_thomson_with_preview;
|
||||||
}
|
break;
|
||||||
else
|
case IMAGE_MODE_C64HIRES:
|
||||||
if (Main.backups->Pages->Image_mode == IMAGE_MODE_ZX)
|
case IMAGE_MODE_ZX:
|
||||||
{
|
|
||||||
Pixel_in_current_screen = Pixel_in_screen_zx;
|
Pixel_in_current_screen = Pixel_in_screen_zx;
|
||||||
Pixel_in_current_screen_with_preview = Pixel_in_screen_zx_with_preview;
|
Pixel_in_current_screen_with_preview = Pixel_in_screen_zx_with_preview;
|
||||||
}
|
break;
|
||||||
// Implicit else : Image_mode must be IMAGE_MODE_MODE5 or IMAGE_MODE_RASTER
|
case IMAGE_MODE_MODE5:
|
||||||
else if ( Main.current_layer == 4)
|
case IMAGE_MODE_RASTER:
|
||||||
{
|
if ( Main.current_layer == 4)
|
||||||
// overlay
|
{
|
||||||
Pixel_in_current_screen = Pixel_in_screen_overlay;
|
// overlay
|
||||||
Pixel_in_current_screen_with_preview = Pixel_in_screen_overlay_with_preview;
|
Pixel_in_current_screen = Pixel_in_screen_overlay;
|
||||||
}
|
Pixel_in_current_screen_with_preview = Pixel_in_screen_overlay_with_preview;
|
||||||
else if (Main.current_layer<4 && (Main.layers_visible & (1<<4)))
|
}
|
||||||
{
|
else if (Main.current_layer<4 && (Main.layers_visible & (1<<4)))
|
||||||
// underlay
|
{
|
||||||
Pixel_in_current_screen = Pixel_in_screen_underlay;
|
// underlay
|
||||||
Pixel_in_current_screen_with_preview = Pixel_in_screen_underlay_with_preview;
|
Pixel_in_current_screen = Pixel_in_screen_underlay;
|
||||||
}
|
Pixel_in_current_screen_with_preview = Pixel_in_screen_underlay_with_preview;
|
||||||
else
|
}
|
||||||
{
|
else
|
||||||
// layered (again, for layers > 4 in MODE5 and RASTER)
|
{
|
||||||
Pixel_in_current_screen = Pixel_in_screen_layered;
|
// layered (again, for layers > 4 in MODE5 and RASTER)
|
||||||
Pixel_in_current_screen_with_preview = Pixel_in_screen_layered_with_preview;
|
Pixel_in_current_screen = Pixel_in_screen_layered;
|
||||||
|
Pixel_in_current_screen_with_preview = Pixel_in_screen_layered_with_preview;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -406,7 +406,7 @@ typedef struct T_Page
|
|||||||
int Height; ///< Image height in pixels.
|
int Height; ///< Image height in pixels.
|
||||||
T_Palette Palette; ///< Image palette.
|
T_Palette Palette; ///< Image palette.
|
||||||
|
|
||||||
byte Image_mode; ///< 0= layered image, 1=animation,
|
enum IMAGE_MODES Image_mode; ///< 0= layered image, 1=animation,
|
||||||
|
|
||||||
char Comment[COMMENT_SIZE+1]; ///< Comment to store in the image file.
|
char Comment[COMMENT_SIZE+1]; ///< Comment to store in the image file.
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user