[PATCH 16/21] [drm] default renderer to inactive

Scott James Remnant scott at ubuntu.com
Wed Mar 17 22:01:15 PDT 2010


Change the renderer so that it defaults to inactive, then when we
map to the device, activate the renderer by activating the VT;
unless the VT is already active in which case activate the
renderer directly.
---
 src/plugins/renderers/drm/plugin.c |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c
index 6d4ce9b..75c3927 100644
--- a/src/plugins/renderers/drm/plugin.c
+++ b/src/plugins/renderers/drm/plugin.c
@@ -111,7 +111,7 @@ struct _ply_renderer_backend
   int32_t dither_green;
   int32_t dither_blue;
 
-  uint32_t is_inactive : 1;
+  uint32_t is_active : 1;
 };
 
 ply_renderer_plugin_interface_t *ply_renderer_backend_get_interface (void);
@@ -373,7 +373,7 @@ activate (ply_renderer_backend_t *backend)
 {
   ply_list_node_t *node;
 
-  backend->is_inactive = false;
+  backend->is_active = true;
 
   drmSetMaster (backend->device_fd);
   node = ply_list_get_first_node (backend->heads);
@@ -398,7 +398,7 @@ deactivate (ply_renderer_backend_t *backend)
 {
   ply_trace ("dropping master");
   drmDropMaster (backend->device_fd);
-  backend->is_inactive = true;
+  backend->is_active = false;
 }
 
 static void
@@ -819,7 +819,10 @@ map_to_device (ply_renderer_backend_t *backend)
       node = next_node;
     }
 
-  ply_terminal_activate_vt (backend->terminal);
+  if (ply_terminal_is_active (backend->terminal))
+      activate (backend);
+  else
+      ply_terminal_activate_vt (backend->terminal);
 
   return head_mapped;
 }
@@ -921,7 +924,7 @@ unmap_from_device (ply_renderer_backend_t *backend)
       head = (ply_renderer_head_t *) ply_list_node_get_data (node);
       next_node = ply_list_get_next_node (backend->heads, node);
 
-      if (!backend->is_inactive)
+      if (backend->is_active)
         {
           ply_trace ("scanning out directly to console");
           ply_renderer_head_set_scan_out_buffer_to_console (backend, head,
@@ -970,7 +973,7 @@ flush_head (ply_renderer_backend_t *backend,
 
   assert (backend != NULL);
 
-  if (backend->is_inactive)
+  if (!backend->is_active)
     return;
 
   ply_terminal_set_mode (backend->terminal, PLY_TERMINAL_MODE_GRAPHICS);
-- 
1.7.0



More information about the plymouth mailing list