summaryrefslogtreecommitdiff
path: root/firmware/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers')
-rw-r--r--firmware/drivers/lcd-1bit-vert.c28
-rw-r--r--firmware/drivers/lcd-2bit-horz.c27
-rw-r--r--firmware/drivers/lcd-2bit-vert.c27
-rw-r--r--firmware/drivers/lcd-2bit-vi.c27
-rw-r--r--firmware/drivers/lcd-bitmap-common.c28
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 */
210void 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) */
238void LCDFN(hline)(int x1, int x2, int y) 210void 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 */
352void 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) */
379void lcd_hline(int x1, int x2, int y) 352void 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 */
354void 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) */
381void lcd_hline(int x1, int x2, int y) 354void 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 */
387void 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) */
414void LCDFN(hline)(int x1, int x2, int y) 387void 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 */
228void 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