diff options
author | Ray Strode <rstrode@redhat.com> | 2009-11-27 23:19:01 -0500 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2009-11-28 00:24:59 -0500 |
commit | fe6d25904d292bb326e31bb013452f447cda4301 (patch) | |
tree | b86179875179fb4ea298d649511d26c590b835af | |
parent | 92bf5acfa2f2b5a66b276cff010a94583a29b6b9 (diff) |
[x11] implement new activate/deactivate methods
We disable flushing when inactive.
-rw-r--r-- | src/plugins/renderers/x11/plugin.c | 19 |
1 files changed, 19 insertions, 0 deletions
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); @@ -308,6 +310,18 @@ unmap_from_device (ply_renderer_backend_t *backend) } 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, ply_rectangle_t *area_to_flush, @@ -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, |