diff options
-rw-r--r-- | drmtools.c | 6 | ||||
-rw-r--r-- | fb-gui.c | 2 | ||||
-rw-r--r-- | gfx.h | 1 |
3 files changed, 9 insertions, 0 deletions
@@ -200,6 +200,11 @@ static void drm_restore_display(void) drm_show_fb(); } +static void drm_flush_display(void) +{ + drmModeDirtyFB(fd, fb_id, 0, 0); +} + gfxstate *drm_init(const char *device, const char *output) { gfxstate *gfx; @@ -240,6 +245,7 @@ gfxstate *drm_init(const char *device, const char *output) gfx->restore_display = drm_restore_display; gfx->cleanup_display = drm_cleanup_display; + gfx->flush_display = drm_flush_display; return gfx; } @@ -101,6 +101,8 @@ void shadow_render(gfxstate *gfx) shadow_render_line(gfx, i, gfx->mem + offset, shadow[i]); sdirty[i] = 0; } + if (gfx->flush_display) + gfx->flush_display(); } void shadow_clear_lines(int first, int last) @@ -16,4 +16,5 @@ struct gfxstate { /* calls */ void (*restore_display)(void); void (*cleanup_display)(void); + void (*flush_display)(void); }; |