summaryrefslogtreecommitdiff
path: root/firmware/drivers/lcd-bitmap-common.c
diff options
context:
space:
mode:
authorWilliam Wilgus <wilgus.william@gmail.com>2022-04-15 01:54:42 -0400
committerWilliam Wilgus <wilgus.william@gmail.com>2022-04-15 01:54:42 -0400
commitd56d96031c42a68fa38e7b12bf028ee6d2eb3ef3 (patch)
tree37e96ce3906f120f6509407b178972f680db57b3 /firmware/drivers/lcd-bitmap-common.c
parentb9c3ab2e049124894716305c9aa8a1d7a610d134 (diff)
downloadrockbox-d56d96031c42a68fa38e7b12bf028ee6d2eb3ef3.tar.gz
rockbox-d56d96031c42a68fa38e7b12bf028ee6d2eb3ef3.zip
viewports add flag to disable updates
when drwing multiple areas of the screen with other gui elements you might want to combine updates into a single screen redraw Change-Id: Ie4130366fa13e25d3d14e937257d11547dd61134
Diffstat (limited to 'firmware/drivers/lcd-bitmap-common.c')
-rw-r--r--firmware/drivers/lcd-bitmap-common.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/firmware/drivers/lcd-bitmap-common.c b/firmware/drivers/lcd-bitmap-common.c
index 48710df49b..4fe095096f 100644
--- a/firmware/drivers/lcd-bitmap-common.c
+++ b/firmware/drivers/lcd-bitmap-common.c
@@ -178,7 +178,13 @@ struct viewport *LCDFN(get_viewport)(bool *is_default)
178 178
179void LCDFN(update_viewport)(void) 179void LCDFN(update_viewport)(void)
180{ 180{
181
181 struct viewport* vp = LCDFN(current_viewport); 182 struct viewport* vp = LCDFN(current_viewport);
183 if ((vp->flags & VP_FLAG_OWNER_UPDATE) == VP_FLAG_OWNER_UPDATE)
184 {
185 logf("%s ignored - owner update", __func__);
186 return;
187 }
182 int x, y; 188 int x, y;
183 if (vp->buffer->stride != LCDFN(framebuffer_default.stride)) 189 if (vp->buffer->stride != LCDFN(framebuffer_default.stride))
184 { 190 {
@@ -196,7 +202,11 @@ void LCDFN(update_viewport)(void)
196void LCDFN(update_viewport_rect)(int x, int y, int width, int height) 202void LCDFN(update_viewport_rect)(int x, int y, int width, int height)
197{ 203{
198 struct viewport* vp = LCDFN(current_viewport); 204 struct viewport* vp = LCDFN(current_viewport);
199 205 if ((vp->flags & VP_FLAG_OWNER_UPDATE) == VP_FLAG_OWNER_UPDATE)
206 {
207 logf("%s ignored - owner update", __func__);
208 return;
209 }
200 /* handle the case of viewport with differing stride from main screen */ 210 /* handle the case of viewport with differing stride from main screen */
201 if (vp->buffer->stride != LCDFN(framebuffer_default.stride)) 211 if (vp->buffer->stride != LCDFN(framebuffer_default.stride))
202 { 212 {