diff options
author | Markus Braun <markus.braun@krawel.de> | 2002-08-09 12:29:46 +0000 |
---|---|---|
committer | Markus Braun <markus.braun@krawel.de> | 2002-08-09 12:29:46 +0000 |
commit | e67db77d6a6a27861a10ac2ba8564e7f09486717 (patch) | |
tree | 88291e5958555f8c9985b24088eb75050b61e59a /firmware | |
parent | 6985f34bebc38585a1c57c6be29d27957655a09b (diff) | |
download | rockbox-e67db77d6a6a27861a10ac2ba8564e7f09486717.tar.gz rockbox-e67db77d6a6a27861a10ac2ba8564e7f09486717.zip |
made lcd_invertrect() working
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1644 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/drivers/lcd.c | 12 | ||||
-rw-r--r-- | firmware/drivers/lcd.h | 1 |
2 files changed, 11 insertions, 2 deletions
diff --git a/firmware/drivers/lcd.c b/firmware/drivers/lcd.c index 056aca0769..d38b1daec5 100644 --- a/firmware/drivers/lcd.c +++ b/firmware/drivers/lcd.c | |||
@@ -910,9 +910,17 @@ void lcd_fillrect (int x, int y, int nx, int ny) | |||
910 | /* Invert a rectangular area at (x, y), size (nx, ny) */ | 910 | /* Invert a rectangular area at (x, y), size (nx, ny) */ |
911 | void lcd_invertrect (int x, int y, int nx, int ny) | 911 | void lcd_invertrect (int x, int y, int nx, int ny) |
912 | { | 912 | { |
913 | int i; | 913 | int i,j; |
914 | |||
915 | if (x>LCD_WIDTH) return; | ||
916 | if (y>LCD_HEIGHT) return; | ||
917 | |||
918 | if (x+nx>LCD_WIDTH) nx=LCD_WIDTH-x; | ||
919 | if (y+ny>LCD_HEIGHT) ny=LCD_HEIGHT-y; | ||
920 | |||
914 | for (i = 0; i < nx; i++) | 921 | for (i = 0; i < nx; i++) |
915 | lcd_bitmap (ones, x+i, y, 1, ny, false); | 922 | for (j = 0; j < ny; j++) |
923 | INVERT_PIXEL((x+i),(y+j)); | ||
916 | } | 924 | } |
917 | 925 | ||
918 | void lcd_drawline( int x1, int y1, int x2, int y2 ) | 926 | void lcd_drawline( int x1, int y1, int x2, int y2 ) |
diff --git a/firmware/drivers/lcd.h b/firmware/drivers/lcd.h index a2d392cbd5..21e1275284 100644 --- a/firmware/drivers/lcd.h +++ b/firmware/drivers/lcd.h | |||
@@ -79,6 +79,7 @@ extern void lcd_double_height (bool on); | |||
79 | 79 | ||
80 | #define DRAW_PIXEL(x,y) lcd_framebuffer[x][y/8] |= (1<<(y&7)) | 80 | #define DRAW_PIXEL(x,y) lcd_framebuffer[x][y/8] |= (1<<(y&7)) |
81 | #define CLEAR_PIXEL(x,y) lcd_framebuffer[x][y/8] &= ~(1<<(y&7)) | 81 | #define CLEAR_PIXEL(x,y) lcd_framebuffer[x][y/8] &= ~(1<<(y&7)) |
82 | #define INVERT_PIXEL(x,y) lcd_framebuffer[x][y/8] ^= (1<<(y&7)) | ||
82 | 83 | ||
83 | /* | 84 | /* |
84 | * Memory copy of display bitmap | 85 | * Memory copy of display bitmap |