aboutsummaryrefslogtreecommitdiffstats
path: root/com32/lib/sys/vesa/video.h
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2008-02-13 19:00:12 -0800
committerH. Peter Anvin <hpa@zytor.com>2008-02-13 19:00:12 -0800
commitbc1081b746cc3a224470567990364bf62162b405 (patch)
treec713af8aa792ab2f66a0ef88a56e08a46cde84e1 /com32/lib/sys/vesa/video.h
parent2079650b3e6dbe302fe27e5256fd412894c2f4b9 (diff)
downloadsyslinux-bc1081b746cc3a224470567990364bf62162b405.tar.gz
syslinux-bc1081b746cc3a224470567990364bf62162b405.tar.xz
syslinux-bc1081b746cc3a224470567990364bf62162b405.zip
VESA: move pixel formatting into __vesacon_copy_to_screen()syslinux-3.62-pre5
Make pixel formatting an integral part of __vesacon_copy_to_screen(). In order to cut down on the dispatch overhead, make the formatting functions contain the pixel loop, so we only do indirect dispatch twice per pixel row - once for the formatting and once for copying to the screen.
Diffstat (limited to 'com32/lib/sys/vesa/video.h')
-rw-r--r--com32/lib/sys/vesa/video.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/com32/lib/sys/vesa/video.h b/com32/lib/sys/vesa/video.h
index 699d4e9a..39052087 100644
--- a/com32/lib/sys/vesa/video.h
+++ b/com32/lib/sys/vesa/video.h
@@ -58,12 +58,15 @@ enum vesa_pixel_format {
PXF_LE_RGB15_555, /* 15-bit littleendian 5:5:5 RGB */
PXF_NONE
};
+extern enum vesa_pixel_format __vesacon_pixel_format;
+extern unsigned int __vesacon_bytes_per_pixel;
+typedef void * (*__vesacon_format_pixels_t)(void *, const uint32_t *, size_t);
+extern __vesacon_format_pixels_t __vesacon_format_pixels;
+extern const __vesacon_format_pixels_t __vesacon_format_pixels_list[PXF_NONE];
extern struct vesa_char *__vesacon_text_display;
extern int __vesacon_font_height, __vesacon_text_rows;
-extern enum vesa_pixel_format __vesacon_pixel_format;
-extern unsigned int __vesacon_bytes_per_pixel;
extern uint8_t __vesacon_graphics_font[FONT_MAX_CHARS][FONT_MAX_HEIGHT];
extern uint32_t __vesacon_background[VIDEO_Y_SIZE][VIDEO_X_SIZE];
extern uint32_t __vesacon_shadowfb[VIDEO_Y_SIZE][VIDEO_X_SIZE];
@@ -81,7 +84,7 @@ void __vesacon_write_char(int, int, uint8_t, attr_t);
void __vesacon_redraw_text(void);
void __vesacon_doit(void);
void __vesacon_set_cursor(int, int, int);
-void * (*__vesacon_copy_to_screen)(void *, const void *, size_t);
+void __vesacon_copy_to_screen(void *, const uint32_t *, size_t);
void __vesacon_init_copy_to_screen(void);
#endif /* LIB_SYS_VESA_VIDEO_H */