diff options
author | Peter Ross <pross@xvid.org> | 2010-07-18 07:44:38 +0000 |
---|---|---|
committer | Peter Ross <pross@xvid.org> | 2010-07-18 07:44:38 +0000 |
commit | 9e5f3dfe25496543dc73945e4b5b32477261c899 (patch) | |
tree | 68dee46c1eac9fc081642f4a6b2ecf4ae5eeceb1 | |
parent | ddf9dc453fcbbf2f338e7db72718f6549447df6f (diff) | |
download | ffmpeg-9e5f3dfe25496543dc73945e4b5b32477261c899.tar.gz |
Add ff_draw_pc_font()
Originally committed as revision 24296 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavcodec/cga_data.c | 12 | ||||
-rw-r--r-- | libavcodec/cga_data.h | 12 |
2 files changed, 24 insertions, 0 deletions
diff --git a/libavcodec/cga_data.c b/libavcodec/cga_data.c index 901f84cc3b..b83ee3aa69 100644 --- a/libavcodec/cga_data.c +++ b/libavcodec/cga_data.c @@ -19,6 +19,7 @@ */ #include <stdint.h> +#include "cga_data.h" const uint8_t ff_cga_font[2048] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x81, 0xa5, 0x81, 0xbd, 0x99, 0x81, 0x7e, @@ -425,3 +426,14 @@ const uint32_t ff_ega_palette[64] = { 0x555500, 0x5555AA, 0x55FF00, 0x55FFAA, 0xFF5500, 0xFF55AA, 0xFFFF00, 0xFFFFAA, 0x555555, 0x5555FF, 0x55FF55, 0x55FFFF, 0xFF5555, 0xFF55FF, 0xFFFF55, 0xFFFFFF }; + +void ff_draw_pc_font(uint8_t *dst, int linesize, const uint8_t *font, int font_height, int ch, int fg, int bg) +{ + int char_y, mask; + for (char_y = 0; char_y < font_height; char_y++) { + for (mask = 0x80; mask; mask >>= 1) { + *dst++ = font[ch * font_height + char_y] & mask ? fg : bg; + } + dst += linesize - 8; + } +} diff --git a/libavcodec/cga_data.h b/libavcodec/cga_data.h index 68abc0c072..4575851ce5 100644 --- a/libavcodec/cga_data.h +++ b/libavcodec/cga_data.h @@ -28,4 +28,16 @@ extern const uint8_t ff_vga16_font[4096]; extern const uint32_t ff_cga_palette[16]; extern const uint32_t ff_ega_palette[64]; +/** + * Draw CGA/EGA/VGA font to 8-bit pixel buffer + * + * @param dst Destination pixel buffer + * @param linesize Linesize (pixels) + * @param font Font table. We assume font width is always 8 pixels wide. + * @param font_height Font height (pixels) + * @param fg,bg Foreground and background palette index + * @param ch Character to draw + */ +void ff_draw_pc_font(uint8_t *dst, int linesize, const uint8_t *font, int font_height, int ch, int fg, int bg); + #endif |