From 666405f346bef501a6707c4b152704f5c34246c6 Mon Sep 17 00:00:00 2001 From: Sebastian Leonhardt Date: Wed, 4 Apr 2018 16:28:53 +0200 Subject: Simulator: improve simulation of transflective screens This patch simulates the three possible states of a transflective LCD: backlight on (bright screen as usual), backlight off (dimmed screen) and LCD off (black screen). Makes use of already defined 'BACKLIGHT_OFF_ALPHA'. Change-Id: I9b0fc79b8d50c29e024ba1e6d9c2501119a7e0e0 --- firmware/target/hosted/sdl/lcd-bitmap.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'firmware/target/hosted/sdl') diff --git a/firmware/target/hosted/sdl/lcd-bitmap.c b/firmware/target/hosted/sdl/lcd-bitmap.c index 5f895d802d..aefbb17b42 100644 --- a/firmware/target/hosted/sdl/lcd-bitmap.c +++ b/firmware/target/hosted/sdl/lcd-bitmap.c @@ -162,7 +162,15 @@ void sim_backlight(int value) #endif } #else /* LCD_DEPTH > 8 */ +#ifdef HAVE_TRANSFLECTIVE_LCD + if (!lcd_active()) + SDL_SetAlpha(lcd_surface, SDL_SRCALPHA, 0); + else + SDL_SetAlpha(lcd_surface, SDL_SRCALPHA, + MAX(BACKLIGHT_OFF_ALPHA, (value * 255) / 100)); +#else SDL_SetAlpha(lcd_surface, SDL_SRCALPHA, (value * 255) / 100); +#endif #endif /* LCD_DEPTH */ sdl_gui_update(lcd_surface, 0, 0, SIM_LCD_WIDTH, SIM_LCD_HEIGHT, -- cgit v1.2.3