Use some macro magic to avoid repeating the list of graphic primitives for each pixel renderer.

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@2047 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Adrien Destugues 2013-01-06 11:23:24 +00:00
parent 8f76bce566
commit 65194af002

View File

@ -335,180 +335,51 @@ try_again:
{
default:
case PIXEL_SIMPLE:
Pixel = Pixel_simple ;
Read_pixel= Read_pixel_simple ;
Display_screen = Display_part_of_screen_simple ;
Block = Block_simple ;
Pixel_preview_normal = Pixel_preview_normal_simple ;
Pixel_preview_magnifier = Pixel_preview_magnifier_simple ;
Horizontal_XOR_line = Horizontal_XOR_line_simple ;
Vertical_XOR_line = Vertical_XOR_line_simple ;
Display_brush_color = Display_brush_color_simple ;
Display_brush_mono = Display_brush_mono_simple ;
Clear_brush = Clear_brush_simple ;
Remap_screen = Remap_screen_simple ;
Display_line = Display_line_on_screen_simple ;
Display_line_fast = Display_line_on_screen_simple ;
Read_line = Read_line_screen_simple ;
Display_zoomed_screen = Display_part_of_screen_scaled_simple ;
Display_brush_color_zoom = Display_brush_color_zoom_simple ;
Display_brush_mono_zoom = Display_brush_mono_zoom_simple ;
Clear_brush_scaled = Clear_brush_scaled_simple ;
Display_brush = Display_brush_simple ;
#define Display_line_on_screen_fast_simple Display_line_on_screen_simple
#define SETPIXEL(x) \
Pixel = Pixel_##x ; \
Read_pixel= Read_pixel_##x ; \
Display_screen = Display_part_of_screen_##x ; \
Block = Block_##x ; \
Pixel_preview_normal = Pixel_preview_normal_##x ; \
Pixel_preview_magnifier = Pixel_preview_magnifier_##x ; \
Horizontal_XOR_line = Horizontal_XOR_line_##x ; \
Vertical_XOR_line = Vertical_XOR_line_##x ; \
Display_brush_color = Display_brush_color_##x ; \
Display_brush_mono = Display_brush_mono_##x ; \
Clear_brush = Clear_brush_##x ; \
Remap_screen = Remap_screen_##x ; \
Display_line = Display_line_on_screen_##x ; \
Display_line_fast = Display_line_on_screen_fast_##x ; \
Read_line = Read_line_screen_##x ; \
Display_zoomed_screen = Display_part_of_screen_scaled_##x ; \
Display_brush_color_zoom = Display_brush_color_zoom_##x ; \
Display_brush_mono_zoom = Display_brush_mono_zoom_##x ; \
Clear_brush_scaled = Clear_brush_scaled_##x ; \
Display_brush = Display_brush_##x ;
SETPIXEL(simple)
break;
case PIXEL_TALL:
Pixel = Pixel_tall;
Read_pixel= Read_pixel_tall;
Display_screen = Display_part_of_screen_tall;
Block = Block_tall;
Pixel_preview_normal = Pixel_preview_normal_tall;
Pixel_preview_magnifier = Pixel_preview_magnifier_tall;
Horizontal_XOR_line = Horizontal_XOR_line_tall;
Vertical_XOR_line = Vertical_XOR_line_tall;
Display_brush_color = Display_brush_color_tall;
Display_brush_mono = Display_brush_mono_tall;
Clear_brush = Clear_brush_tall;
Remap_screen = Remap_screen_tall;
Display_line = Display_line_on_screen_tall;
Display_line_fast = Display_line_on_screen_tall;
Read_line = Read_line_screen_tall;
Display_zoomed_screen = Display_part_of_screen_scaled_tall;
Display_brush_color_zoom = Display_brush_color_zoom_tall;
Display_brush_mono_zoom = Display_brush_mono_zoom_tall;
Clear_brush_scaled = Clear_brush_scaled_tall;
Display_brush = Display_brush_tall;
#define Display_line_on_screen_fast_tall Display_line_on_screen_tall
SETPIXEL(tall)
break;
case PIXEL_WIDE:
Pixel = Pixel_wide ;
Read_pixel= Read_pixel_wide ;
Display_screen = Display_part_of_screen_wide ;
Block = Block_wide ;
Pixel_preview_normal = Pixel_preview_normal_wide ;
Pixel_preview_magnifier = Pixel_preview_magnifier_wide ;
Horizontal_XOR_line = Horizontal_XOR_line_wide ;
Vertical_XOR_line = Vertical_XOR_line_wide ;
Display_brush_color = Display_brush_color_wide ;
Display_brush_mono = Display_brush_mono_wide ;
Clear_brush = Clear_brush_wide ;
Remap_screen = Remap_screen_wide ;
Display_line = Display_line_on_screen_wide ;
Display_line_fast = Display_line_on_screen_fast_wide ;
Read_line = Read_line_screen_wide ;
Display_zoomed_screen = Display_part_of_screen_scaled_wide ;
Display_brush_color_zoom = Display_brush_color_zoom_wide ;
Display_brush_mono_zoom = Display_brush_mono_zoom_wide ;
Clear_brush_scaled = Clear_brush_scaled_wide ;
Display_brush = Display_brush_wide ;
SETPIXEL(wide)
break;
case PIXEL_DOUBLE:
Pixel = Pixel_double ;
Read_pixel= Read_pixel_double ;
Display_screen = Display_part_of_screen_double ;
Block = Block_double ;
Pixel_preview_normal = Pixel_preview_normal_double ;
Pixel_preview_magnifier = Pixel_preview_magnifier_double ;
Horizontal_XOR_line = Horizontal_XOR_line_double ;
Vertical_XOR_line = Vertical_XOR_line_double ;
Display_brush_color = Display_brush_color_double ;
Display_brush_mono = Display_brush_mono_double ;
Clear_brush = Clear_brush_double ;
Remap_screen = Remap_screen_double ;
Display_line = Display_line_on_screen_double ;
Display_line_fast = Display_line_on_screen_fast_double ;
Read_line = Read_line_screen_double ;
Display_zoomed_screen = Display_part_of_screen_scaled_double ;
Display_brush_color_zoom = Display_brush_color_zoom_double ;
Display_brush_mono_zoom = Display_brush_mono_zoom_double ;
Clear_brush_scaled = Clear_brush_scaled_double ;
Display_brush = Display_brush_double ;
SETPIXEL(double)
break;
case PIXEL_TRIPLE:
Pixel = Pixel_triple ;
Read_pixel= Read_pixel_triple ;
Display_screen = Display_part_of_screen_triple ;
Block = Block_triple ;
Pixel_preview_normal = Pixel_preview_normal_triple ;
Pixel_preview_magnifier = Pixel_preview_magnifier_triple ;
Horizontal_XOR_line = Horizontal_XOR_line_triple ;
Vertical_XOR_line = Vertical_XOR_line_triple ;
Display_brush_color = Display_brush_color_triple ;
Display_brush_mono = Display_brush_mono_triple ;
Clear_brush = Clear_brush_triple ;
Remap_screen = Remap_screen_triple ;
Display_line = Display_line_on_screen_triple ;
Display_line_fast = Display_line_on_screen_fast_triple ;
Read_line = Read_line_screen_triple ;
Display_zoomed_screen = Display_part_of_screen_scaled_triple ;
Display_brush_color_zoom = Display_brush_color_zoom_triple ;
Display_brush_mono_zoom = Display_brush_mono_zoom_triple ;
Clear_brush_scaled = Clear_brush_scaled_triple ;
Display_brush = Display_brush_triple ;
SETPIXEL(triple)
break;
case PIXEL_WIDE2:
Pixel = Pixel_wide2 ;
Read_pixel= Read_pixel_wide2 ;
Display_screen = Display_part_of_screen_wide2 ;
Block = Block_wide2 ;
Pixel_preview_normal = Pixel_preview_normal_wide2 ;
Pixel_preview_magnifier = Pixel_preview_magnifier_wide2 ;
Horizontal_XOR_line = Horizontal_XOR_line_wide2 ;
Vertical_XOR_line = Vertical_XOR_line_wide2 ;
Display_brush_color = Display_brush_color_wide2 ;
Display_brush_mono = Display_brush_mono_wide2 ;
Clear_brush = Clear_brush_wide2 ;
Remap_screen = Remap_screen_wide2 ;
Display_line = Display_line_on_screen_wide2 ;
Display_line_fast = Display_line_on_screen_fast_wide2 ;
Read_line = Read_line_screen_wide2 ;
Display_zoomed_screen = Display_part_of_screen_scaled_wide2 ;
Display_brush_color_zoom = Display_brush_color_zoom_wide2 ;
Display_brush_mono_zoom = Display_brush_mono_zoom_wide2 ;
Clear_brush_scaled = Clear_brush_scaled_wide2 ;
Display_brush = Display_brush_wide2 ;
SETPIXEL(wide2)
break;
case PIXEL_TALL2:
Pixel = Pixel_tall2 ;
Read_pixel= Read_pixel_tall2 ;
Display_screen = Display_part_of_screen_tall2 ;
Block = Block_tall2 ;
Pixel_preview_normal = Pixel_preview_normal_tall2 ;
Pixel_preview_magnifier = Pixel_preview_magnifier_tall2 ;
Horizontal_XOR_line = Horizontal_XOR_line_tall2 ;
Vertical_XOR_line = Vertical_XOR_line_tall2 ;
Display_brush_color = Display_brush_color_tall2 ;
Display_brush_mono = Display_brush_mono_tall2 ;
Clear_brush = Clear_brush_tall2 ;
Remap_screen = Remap_screen_tall2 ;
Display_line = Display_line_on_screen_tall2 ;
Display_line_fast = Display_line_on_screen_fast_tall2 ;
Read_line = Read_line_screen_tall2 ;
Display_zoomed_screen = Display_part_of_screen_scaled_tall2 ;
Display_brush_color_zoom = Display_brush_color_zoom_tall2 ;
Display_brush_mono_zoom = Display_brush_mono_zoom_tall2 ;
Clear_brush_scaled = Clear_brush_scaled_tall2 ;
Display_brush = Display_brush_tall2 ;
SETPIXEL(tall2)
break;
case PIXEL_QUAD:
Pixel = Pixel_quad ;
Read_pixel= Read_pixel_quad ;
Display_screen = Display_part_of_screen_quad ;
Block = Block_quad ;
Pixel_preview_normal = Pixel_preview_normal_quad ;
Pixel_preview_magnifier = Pixel_preview_magnifier_quad ;
Horizontal_XOR_line = Horizontal_XOR_line_quad ;
Vertical_XOR_line = Vertical_XOR_line_quad ;
Display_brush_color = Display_brush_color_quad ;
Display_brush_mono = Display_brush_mono_quad ;
Clear_brush = Clear_brush_quad ;
Remap_screen = Remap_screen_quad ;
Display_line = Display_line_on_screen_quad ;
Display_line_fast = Display_line_on_screen_fast_quad ;
Read_line = Read_line_screen_quad ;
Display_zoomed_screen = Display_part_of_screen_scaled_quad ;
Display_brush_color_zoom = Display_brush_color_zoom_quad ;
Display_brush_mono_zoom = Display_brush_mono_zoom_quad ;
Clear_brush_scaled = Clear_brush_scaled_quad ;
Display_brush = Display_brush_quad ;
SETPIXEL(quad)
break;
}
}