From fe6d25904d292bb326e31bb013452f447cda4301 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 27 Nov 2009 23:19:01 -0500 Subject: [PATCH] [x11] implement new activate/deactivate methods We disable flushing when inactive. --- src/plugins/renderers/x11/plugin.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/plugins/renderers/x11/plugin.c b/src/plugins/renderers/x11/plugin.c index 9e78c069..3777b6c2 100644 --- a/src/plugins/renderers/x11/plugin.c +++ b/src/plugins/renderers/x11/plugin.c @@ -86,6 +86,8 @@ struct _ply_renderer_backend ply_console_t *console; ply_fd_watch_t *display_watch; + + uint32_t is_inactive : 1; }; ply_renderer_plugin_interface_t *ply_renderer_backend_get_interface (void); @@ -307,6 +309,18 @@ unmap_from_device (ply_renderer_backend_t *backend) ply_console_ignore_mode_changes (backend->console, false); } +static void +activate (ply_renderer_backend_t *backend) +{ + backend->is_inactive = false; +} + +static void +deactivate (ply_renderer_backend_t *backend) +{ + backend->is_inactive = true; +} + static void flush_area_to_device (ply_renderer_backend_t *backend, ply_renderer_head_t *head, @@ -338,6 +352,9 @@ flush_head (ply_renderer_backend_t *backend, assert (backend != NULL); + if (backend->is_inactive) + return; + pixel_buffer = head->pixel_buffer; updated_region = ply_pixel_buffer_get_updated_areas (pixel_buffer); areas_to_flush = ply_region_get_rectangle_list (updated_region); @@ -516,6 +533,8 @@ ply_renderer_backend_get_interface (void) .query_device = query_device, .map_to_device = map_to_device, .unmap_from_device = unmap_from_device, + .activate = activate, + .deactivate = deactivate, .flush_head = flush_head, .get_heads = get_heads, .get_buffer_for_head = get_buffer_for_head,