diff options
author | Aidan MacDonald <amachronic@protonmail.com> | 2022-10-02 01:32:16 +0100 |
---|---|---|
committer | Aidan MacDonald <amachronic@protonmail.com> | 2022-10-12 07:58:57 -0400 |
commit | 44b9785465fcb96f7544576b7657a47813625a01 (patch) | |
tree | 8dcc0189d1c073375a78d24279a2801e2cc630e8 | |
parent | f737e5025d6cb2d3a283aa336c072701d1adc83f (diff) | |
download | rockbox-44b9785465fcb96f7544576b7657a47813625a01.tar.gz rockbox-44b9785465fcb96f7544576b7657a47813625a01.zip |
lcd: Move grayscale clear_viewport() to lcd-bitmap-common.c
All grayscale LCDs have the same clear_viewport() implementation.
Change-Id: I087ac3be824c97a1f42857b4e2fedb0675d453fa
-rw-r--r-- | firmware/drivers/lcd-1bit-vert.c | 28 | ||||
-rw-r--r-- | firmware/drivers/lcd-2bit-horz.c | 27 | ||||
-rw-r--r-- | firmware/drivers/lcd-2bit-vert.c | 27 | ||||
-rw-r--r-- | firmware/drivers/lcd-2bit-vi.c | 27 | ||||
-rw-r--r-- | firmware/drivers/lcd-bitmap-common.c | 28 |
5 files changed, 28 insertions, 109 deletions
diff --git a/firmware/drivers/lcd-1bit-vert.c b/firmware/drivers/lcd-1bit-vert.c index 66c785a3aa..accce026cd 100644 --- a/firmware/drivers/lcd-1bit-vert.c +++ b/firmware/drivers/lcd-1bit-vert.c | |||
@@ -206,34 +206,6 @@ void LCDFN(clear_display)(void) | |||
206 | LCDFN(scroll_info).lines = 0; | 206 | LCDFN(scroll_info).lines = 0; |
207 | } | 207 | } |
208 | 208 | ||
209 | /* Clear the current viewport */ | ||
210 | void LCDFN(clear_viewport)(void) | ||
211 | { | ||
212 | int oldmode; | ||
213 | |||
214 | if (CURRENT_VP == &default_vp && | ||
215 | default_vp.buffer == &LCDFN(framebuffer_default)) | ||
216 | { | ||
217 | LCDFN(clear_display)(); | ||
218 | } | ||
219 | else | ||
220 | { | ||
221 | oldmode = CURRENT_VP->drawmode; | ||
222 | |||
223 | /* Invert the INVERSEVID bit and set basic mode to SOLID */ | ||
224 | CURRENT_VP->drawmode = (~CURRENT_VP->drawmode & DRMODE_INVERSEVID) | | ||
225 | DRMODE_SOLID; | ||
226 | |||
227 | LCDFN(fillrect)(0, 0, CURRENT_VP->width, CURRENT_VP->height); | ||
228 | |||
229 | CURRENT_VP->drawmode = oldmode; | ||
230 | |||
231 | LCDFN(scroll_stop_viewport)(CURRENT_VP); | ||
232 | } | ||
233 | |||
234 | CURRENT_VP->flags &= ~(VP_FLAG_VP_SET_CLEAN); | ||
235 | } | ||
236 | |||
237 | /* Draw a horizontal line (optimised) */ | 209 | /* Draw a horizontal line (optimised) */ |
238 | void LCDFN(hline)(int x1, int x2, int y) | 210 | void LCDFN(hline)(int x1, int x2, int y) |
239 | { | 211 | { |
diff --git a/firmware/drivers/lcd-2bit-horz.c b/firmware/drivers/lcd-2bit-horz.c index 0ec9d2a6aa..b8ebaff7e1 100644 --- a/firmware/drivers/lcd-2bit-horz.c +++ b/firmware/drivers/lcd-2bit-horz.c | |||
@@ -348,33 +348,6 @@ void lcd_clear_display(void) | |||
348 | lcd_scroll_info.lines = 0; | 348 | lcd_scroll_info.lines = 0; |
349 | } | 349 | } |
350 | 350 | ||
351 | /* Clear the current viewport */ | ||
352 | void lcd_clear_viewport(void) | ||
353 | { | ||
354 | int lastmode; | ||
355 | |||
356 | if (lcd_current_viewport == &default_vp && | ||
357 | default_vp.buffer == &lcd_framebuffer_default) | ||
358 | { | ||
359 | lcd_clear_display(); | ||
360 | } | ||
361 | else | ||
362 | { | ||
363 | lastmode = lcd_current_viewport->drawmode; | ||
364 | |||
365 | /* Invert the INVERSEVID bit and set basic mode to SOLID */ | ||
366 | lcd_current_viewport->drawmode = (~lastmode & DRMODE_INVERSEVID) | | ||
367 | DRMODE_SOLID; | ||
368 | |||
369 | lcd_fillrect(0, 0, lcd_current_viewport->width, lcd_current_viewport->height); | ||
370 | |||
371 | lcd_current_viewport->drawmode = lastmode; | ||
372 | |||
373 | lcd_scroll_stop_viewport(lcd_current_viewport); | ||
374 | } | ||
375 | lcd_current_viewport->flags &= ~(VP_FLAG_VP_SET_CLEAN); | ||
376 | } | ||
377 | |||
378 | /* Draw a horizontal line (optimised) */ | 351 | /* Draw a horizontal line (optimised) */ |
379 | void lcd_hline(int x1, int x2, int y) | 352 | void lcd_hline(int x1, int x2, int y) |
380 | { | 353 | { |
diff --git a/firmware/drivers/lcd-2bit-vert.c b/firmware/drivers/lcd-2bit-vert.c index 51897712d1..9856b28819 100644 --- a/firmware/drivers/lcd-2bit-vert.c +++ b/firmware/drivers/lcd-2bit-vert.c | |||
@@ -350,33 +350,6 @@ void lcd_clear_display(void) | |||
350 | lcd_scroll_info.lines = 0; | 350 | lcd_scroll_info.lines = 0; |
351 | } | 351 | } |
352 | 352 | ||
353 | /* Clear the current viewport */ | ||
354 | void lcd_clear_viewport(void) | ||
355 | { | ||
356 | int lastmode; | ||
357 | |||
358 | if (lcd_current_viewport == &default_vp && | ||
359 | default_vp.buffer == &lcd_framebuffer_default) | ||
360 | { | ||
361 | lcd_clear_display(); | ||
362 | } | ||
363 | else | ||
364 | { | ||
365 | lastmode = lcd_current_viewport->drawmode; | ||
366 | |||
367 | /* Invert the INVERSEVID bit and set basic mode to SOLID */ | ||
368 | lcd_current_viewport->drawmode = (~lastmode & DRMODE_INVERSEVID) | | ||
369 | DRMODE_SOLID; | ||
370 | |||
371 | lcd_fillrect(0, 0, lcd_current_viewport->width, lcd_current_viewport->height); | ||
372 | |||
373 | lcd_current_viewport->drawmode = lastmode; | ||
374 | |||
375 | lcd_scroll_stop_viewport(lcd_current_viewport); | ||
376 | } | ||
377 | lcd_current_viewport->flags &= ~(VP_FLAG_VP_SET_CLEAN); | ||
378 | } | ||
379 | |||
380 | /* Draw a horizontal line (optimised) */ | 353 | /* Draw a horizontal line (optimised) */ |
381 | void lcd_hline(int x1, int x2, int y) | 354 | void lcd_hline(int x1, int x2, int y) |
382 | { | 355 | { |
diff --git a/firmware/drivers/lcd-2bit-vi.c b/firmware/drivers/lcd-2bit-vi.c index c464537185..d621951c78 100644 --- a/firmware/drivers/lcd-2bit-vi.c +++ b/firmware/drivers/lcd-2bit-vi.c | |||
@@ -383,33 +383,6 @@ void LCDFN(clear_display)(void) | |||
383 | LCDFN(scroll_info).lines = 0; | 383 | LCDFN(scroll_info).lines = 0; |
384 | } | 384 | } |
385 | 385 | ||
386 | /* Clear the current viewport */ | ||
387 | void LCDFN(clear_viewport)(void) | ||
388 | { | ||
389 | int lastmode; | ||
390 | |||
391 | if (CURRENT_VP == &default_vp && | ||
392 | default_vp.buffer == &LCDFN(framebuffer_default)) | ||
393 | { | ||
394 | LCDFN(clear_display)(); | ||
395 | } | ||
396 | else | ||
397 | { | ||
398 | lastmode = CURRENT_VP->drawmode; | ||
399 | |||
400 | /* Invert the INVERSEVID bit and set basic mode to SOLID */ | ||
401 | CURRENT_VP->drawmode = (~lastmode & DRMODE_INVERSEVID) | | ||
402 | DRMODE_SOLID; | ||
403 | |||
404 | LCDFN(fillrect)(0, 0, CURRENT_VP->width, CURRENT_VP->height); | ||
405 | |||
406 | CURRENT_VP->drawmode = lastmode; | ||
407 | |||
408 | LCDFN(scroll_stop_viewport)(CURRENT_VP); | ||
409 | } | ||
410 | CURRENT_VP->flags &= ~(VP_FLAG_VP_SET_CLEAN); | ||
411 | } | ||
412 | |||
413 | /* Draw a horizontal line (optimised) */ | 386 | /* Draw a horizontal line (optimised) */ |
414 | void LCDFN(hline)(int x1, int x2, int y) | 387 | void LCDFN(hline)(int x1, int x2, int y) |
415 | { | 388 | { |
diff --git a/firmware/drivers/lcd-bitmap-common.c b/firmware/drivers/lcd-bitmap-common.c index 07ed509229..a8ecbd370d 100644 --- a/firmware/drivers/lcd-bitmap-common.c +++ b/firmware/drivers/lcd-bitmap-common.c | |||
@@ -221,6 +221,34 @@ void LCDFN(fill_viewport)(void) | |||
221 | LCDFN(fillrect)(0, 0, LCDFN(current_viewport)->width, LCDFN(current_viewport)->height); | 221 | LCDFN(fillrect)(0, 0, LCDFN(current_viewport)->width, LCDFN(current_viewport)->height); |
222 | } | 222 | } |
223 | 223 | ||
224 | #if LCDM(DEPTH) < 8 | ||
225 | /* | ||
226 | * clear the current viewport - grayscale displays | ||
227 | */ | ||
228 | void LCDFN(clear_viewport)(void) | ||
229 | { | ||
230 | struct viewport *vp = LCDFN(current_viewport); | ||
231 | int oldmode; | ||
232 | |||
233 | if (vp == &default_vp && default_vp.buffer == &LCDFN(framebuffer_default)) | ||
234 | { | ||
235 | LCDFN(clear_display)(); | ||
236 | } | ||
237 | else | ||
238 | { | ||
239 | oldmode = vp->drawmode; | ||
240 | vp->drawmode &= ~DRMODE_INVERSEVID; | ||
241 | vp->drawmode |= DRMODE_SOLID; | ||
242 | |||
243 | LCDFN(fillrect)(0, 0, vp->width, vp->height); | ||
244 | |||
245 | vp->drawmode = oldmode; | ||
246 | LCDFN(scroll_stop_viewport)(vp); | ||
247 | } | ||
248 | |||
249 | vp->flags &= ~VP_FLAG_VP_SET_CLEAN; | ||
250 | } | ||
251 | #endif | ||
224 | 252 | ||
225 | /*** Viewports ***/ | 253 | /*** Viewports ***/ |
226 | /* init_viewport Notes: When a viewport is initialized | 254 | /* init_viewport Notes: When a viewport is initialized |