summaryrefslogtreecommitdiff
path: root/firmware/export
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2008-01-04 23:42:38 +0000
committerJens Arnold <amiconn@rockbox.org>2008-01-04 23:42:38 +0000
commitfeb5b15e9bf9292e3d4d82ea1e01ab3557fb1240 (patch)
treed854c9a6fbbb3263537071fb02df349fdfa62361 /firmware/export
parentd3586837fa9221a7ef104550b4c0aadc1a6ea77c (diff)
downloadrockbox-feb5b15e9bf9292e3d4d82ea1e01ab3557fb1240.tar.gz
rockbox-feb5b15e9bf9292e3d4d82ea1e01ab3557fb1240.zip
All-new greyscale library, replacing the old one. Features: (1) Drawing/updating is faster than the old grayscale lib at full depth. (2) Always 129 shades instead of 2..33 shades. (3) No graininess caused by frequent updates (mpegplayer, doom, ...). (4) Needs less memory than the old grayscale lib at full depth. * The tradeoff is slightly higher CPU load in the ISR (frames are calculated 'live') and an extra function in the core. * Ported all plugins which used the graylib to use the new one. * Some slight optimisations for archos and H1x0 LCD update.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15998 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/export')
-rw-r--r--firmware/export/lcd.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h
index de03222441..60d9efaf92 100644
--- a/firmware/export/lcd.h
+++ b/firmware/export/lcd.h
@@ -95,15 +95,24 @@ extern void lcd_puts_scroll(int x, int y, const unsigned char* string);
95extern void lcd_puts_scroll_style(int x, int y, const unsigned char* string, 95extern void lcd_puts_scroll_style(int x, int y, const unsigned char* string,
96 int style); 96 int style);
97 97
98#ifdef HAVE_LCD_BITMAP
99
98#if defined(HAVE_LCD_COLOR) 100#if defined(HAVE_LCD_COLOR)
99#define LCD_YUV_DITHER 0x1 101#define LCD_YUV_DITHER 0x1
100extern void lcd_yuv_set_options(unsigned options); 102extern void lcd_yuv_set_options(unsigned options);
101extern void lcd_yuv_blit(unsigned char * const src[3], 103extern void lcd_yuv_blit(unsigned char * const src[3],
102 int src_x, int src_y, int stride, 104 int src_x, int src_y, int stride,
103 int x, int y, int width, int height); 105 int x, int y, int width, int height);
106#else
107struct grey_data {
108 unsigned char phase; /* SH1 uses it signed (doesn't matter for high level) */
109 unsigned char value; /* 0..128 are allowed */
110} __attribute__((packed));
111extern void lcd_grey_data(const struct grey_data *data, int count); /* private */
112extern void lcd_grey_phase_blit(const struct grey_data *data, int bx, int by,
113 int bwidth, int bheight, int stride);
104#endif 114#endif
105 115
106#ifdef HAVE_LCD_BITMAP
107/* performance function */ 116/* performance function */
108extern void lcd_blit(const fb_data* data, int x, int by, int width, 117extern void lcd_blit(const fb_data* data, int x, int by, int width,
109 int bheight, int stride); 118 int bheight, int stride);