summaryrefslogtreecommitdiff
path: root/uisimulator/sdl/lcd-bitmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'uisimulator/sdl/lcd-bitmap.c')
-rw-r--r--uisimulator/sdl/lcd-bitmap.c24
1 files changed, 19 insertions, 5 deletions
diff --git a/uisimulator/sdl/lcd-bitmap.c b/uisimulator/sdl/lcd-bitmap.c
index b4e6dcd4c0..8caac784ef 100644
--- a/uisimulator/sdl/lcd-bitmap.c
+++ b/uisimulator/sdl/lcd-bitmap.c
@@ -63,7 +63,16 @@ SDL_Color lcd_color2_bright = {RED_CMP(LCD_BRIGHTCOLOR_2),
63#else 63#else
64#define NUM_SHADES 129 64#define NUM_SHADES 129
65#endif 65#endif
66#endif /* LCD_DEPTH <= 8 */ 66
67#else /* LCD_DEPTH > 8 */
68
69#ifdef HAVE_TRANSFLECTIVE_LCD
70#define BACKLIGHT_OFF_ALPHA 85 /* 1/3 brightness */
71#else
72#define BACKLIGHT_OFF_ALPHA 0 /* pitch black */
73#endif
74
75#endif /* LCD_DEPTH */
67 76
68#if LCD_DEPTH < 8 77#if LCD_DEPTH < 8
69unsigned long (*lcd_ex_getpixel)(int, int) = NULL; 78unsigned long (*lcd_ex_getpixel)(int, int) = NULL;
@@ -135,12 +144,17 @@ void sim_backlight(int value)
135 &lcd_color2_bright, NUM_SHADES, NUM_SHADES); 144 &lcd_color2_bright, NUM_SHADES, NUM_SHADES);
136#endif 145#endif
137 } 146 }
147#else /* LCD_DEPTH > 8 */
148 if (value > 0) {
149 SDL_SetAlpha(lcd_surface, 0, SDL_ALPHA_OPAQUE); /* full on */
150 } else {
151 SDL_SetAlpha(lcd_surface, SDL_SRCALPHA, BACKLIGHT_OFF_ALPHA);
152 }
153#endif /* LCD_DEPTH */
154
138 sdl_gui_update(lcd_surface, 0, 0, SIM_LCD_WIDTH, SIM_LCD_HEIGHT, 155 sdl_gui_update(lcd_surface, 0, 0, SIM_LCD_WIDTH, SIM_LCD_HEIGHT,
139 SIM_LCD_WIDTH, SIM_LCD_HEIGHT, 156 SIM_LCD_WIDTH, SIM_LCD_HEIGHT,
140 background ? UI_LCD_POSX : 0, background? UI_LCD_POSY : 0); 157 background ? UI_LCD_POSX : 0, background? UI_LCD_POSY : 0);
141#else /* LCD_DEPTH > 8 */
142 (void)value; /* not yet simulated */
143#endif /* LCD_DEPTH */
144} 158}
145#endif /* HAVE_BACKLIGHT */ 159#endif /* HAVE_BACKLIGHT */
146 160
@@ -153,7 +167,7 @@ void sim_lcd_init(void)
153 SIM_LCD_HEIGHT * display_zoom, 167 SIM_LCD_HEIGHT * display_zoom,
154 LCD_DEPTH, 0, 0, 0, 0); 168 LCD_DEPTH, 0, 0, 0, 0);
155#else 169#else
156 lcd_surface = SDL_CreateRGBSurface(SDL_SWSURFACE, 170 lcd_surface = SDL_CreateRGBSurface(SDL_SWSURFACE,
157 SIM_LCD_WIDTH * display_zoom, 171 SIM_LCD_WIDTH * display_zoom,
158 SIM_LCD_HEIGHT * display_zoom, 172 SIM_LCD_HEIGHT * display_zoom,
159 8, 0, 0, 0, 0); 173 8, 0, 0, 0, 0);