diff options
author | Jörg Hohensohn <hohensoh@rockbox.org> | 2003-12-23 23:41:45 +0000 |
---|---|---|
committer | Jörg Hohensohn <hohensoh@rockbox.org> | 2003-12-23 23:41:45 +0000 |
commit | 5040cc53ec0e0281b2824b3a82d360adc60eff4c (patch) | |
tree | 80abb5a51247bb69aa69b1f98b922aa20a875779 /uisimulator/x11 | |
parent | 2d720b2a7968666bfc315026c8a69b8a762aa058 (diff) | |
download | rockbox-5040cc53ec0e0281b2824b3a82d360adc60eff4c.tar.gz rockbox-5040cc53ec0e0281b2824b3a82d360adc60eff4c.zip |
Screen buffer transposed, such that bytes in X-direction are consecutive. This enables my turbocharged lcd_write_data() for regular screen updates. Please check the X11 sim, Win32 works.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4177 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'uisimulator/x11')
-rw-r--r-- | uisimulator/x11/lcd-x11.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/uisimulator/x11/lcd-x11.c b/uisimulator/x11/lcd-x11.c index 023f06240c..c02b3e383f 100644 --- a/uisimulator/x11/lcd-x11.c +++ b/uisimulator/x11/lcd-x11.c | |||
@@ -39,12 +39,12 @@ | |||
39 | #include "lcd-x11.h" | 39 | #include "lcd-x11.h" |
40 | #include "lcd-playersim.h" | 40 | #include "lcd-playersim.h" |
41 | 41 | ||
42 | extern unsigned char lcd_framebuffer[LCD_WIDTH][LCD_HEIGHT/8]; | 42 | extern unsigned char lcd_framebuffer[LCD_HEIGHT/8][LCD_WIDTH]; |
43 | extern void screen_resized(int width, int height); | 43 | extern void screen_resized(int width, int height); |
44 | extern Display *dpy; | 44 | extern Display *dpy; |
45 | 45 | ||
46 | #ifdef HAVE_LCD_BITMAP | 46 | #ifdef HAVE_LCD_BITMAP |
47 | unsigned char lcd_framebuffer_copy[LCD_WIDTH][LCD_HEIGHT/8]; | 47 | unsigned char lcd_framebuffer_copy[LCD_HEIGHT/8][LCD_WIDTH]; |
48 | 48 | ||
49 | static int counter; | 49 | static int counter; |
50 | 50 | ||
@@ -66,13 +66,13 @@ void lcd_update (void) | |||
66 | 66 | ||
67 | for(y=0; y<LCD_HEIGHT; y+=8) { | 67 | for(y=0; y<LCD_HEIGHT; y+=8) { |
68 | for(x=0; x<LCD_WIDTH; x++) { | 68 | for(x=0; x<LCD_WIDTH; x++) { |
69 | if(lcd_framebuffer[x][y/8] || lcd_framebuffer_copy[x][y/8]) { | 69 | if(lcd_framebuffer[y/8][x] || lcd_framebuffer_copy[y/8][x]) { |
70 | /* one or more bits/pixels are changed */ | 70 | /* one or more bits/pixels are changed */ |
71 | unsigned char diff = | 71 | unsigned char diff = |
72 | lcd_framebuffer[x][y/8] ^ lcd_framebuffer_copy[x][y/8]; | 72 | lcd_framebuffer[y/8][x] ^ lcd_framebuffer_copy[y/8][x]; |
73 | 73 | ||
74 | for(bit=0; bit<8; bit++) { | 74 | for(bit=0; bit<8; bit++) { |
75 | if(lcd_framebuffer[x][y/8]&(1<<bit)) { | 75 | if(lcd_framebuffer[y/8][x]&(1<<bit)) { |
76 | /* set a dot */ | 76 | /* set a dot */ |
77 | points[p].x = x + MARGIN_X; | 77 | points[p].x = x + MARGIN_X; |
78 | points[p].y = y+bit + MARGIN_Y; | 78 | points[p].y = y+bit + MARGIN_Y; |
@@ -131,13 +131,13 @@ void lcd_update_rect(int x_start, int y_start, | |||
131 | for(; yline<=ymax; yline++) { | 131 | for(; yline<=ymax; yline++) { |
132 | y = yline * 8; | 132 | y = yline * 8; |
133 | for(x=x_start; x<xmax; x++) { | 133 | for(x=x_start; x<xmax; x++) { |
134 | if(lcd_framebuffer[x][yline] || lcd_framebuffer_copy[x][yline]) { | 134 | if(lcd_framebuffer[yline][x] || lcd_framebuffer_copy[yline][x]) { |
135 | /* one or more bits/pixels are changed */ | 135 | /* one or more bits/pixels are changed */ |
136 | unsigned char diff = | 136 | unsigned char diff = |
137 | lcd_framebuffer[x][yline] ^ lcd_framebuffer_copy[x][yline]; | 137 | lcd_framebuffer[yline][x] ^ lcd_framebuffer_copy[yline][x]; |
138 | 138 | ||
139 | for(bit=0; bit<8; bit++) { | 139 | for(bit=0; bit<8; bit++) { |
140 | if(lcd_framebuffer[x][yline]&(1<<bit)) { | 140 | if(lcd_framebuffer[yline][x]&(1<<bit)) { |
141 | /* set a dot */ | 141 | /* set a dot */ |
142 | points[p].x = x + MARGIN_X; | 142 | points[p].x = x + MARGIN_X; |
143 | points[p].y = y+bit + MARGIN_Y; | 143 | points[p].y = y+bit + MARGIN_Y; |
@@ -152,7 +152,7 @@ void lcd_update_rect(int x_start, int y_start, | |||
152 | } | 152 | } |
153 | 153 | ||
154 | /* update the copy */ | 154 | /* update the copy */ |
155 | lcd_framebuffer_copy[x][yline] = lcd_framebuffer[x][yline]; | 155 | lcd_framebuffer_copy[yline][x] = lcd_framebuffer[yline][x]; |
156 | } | 156 | } |
157 | } | 157 | } |
158 | } | 158 | } |