From a8676e2c08a6b07927d6deddb6d7bc4431ebba9c Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 2 Oct 2009 23:37:02 -0400 Subject: [renderer] Move VT switching to renderer plugins Since not all renderer plugins should switch VTs we do it from the individual plugins now. --- src/libplybootsplash/ply-renderer.c | 4 ---- src/main.c | 3 --- src/plugins/renderers/drm/plugin.c | 7 +++++++ src/plugins/renderers/frame-buffer/plugin.c | 7 +++++++ 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/libplybootsplash/ply-renderer.c b/src/libplybootsplash/ply-renderer.c index 5410feb8..dd64f032 100644 --- a/src/libplybootsplash/ply-renderer.c +++ b/src/libplybootsplash/ply-renderer.c @@ -299,10 +299,6 @@ ply_renderer_flush_head (ply_renderer_t *renderer, assert (renderer->plugin_interface != NULL); assert (head != NULL); - if (ply_console_get_active_vt (renderer->console) != - ply_terminal_get_vt_number (renderer->terminal)) - return; - renderer->plugin_interface->flush_head (renderer->backend, head); } diff --git a/src/main.c b/src/main.c index d79b816e..08ec1ae4 100644 --- a/src/main.c +++ b/src/main.c @@ -989,9 +989,6 @@ add_default_displays_and_keyboard (state_t *state) return; } - ply_console_set_active_vt (state->console, - ply_terminal_get_vt_number (terminal)); - renderer = ply_renderer_new (NULL, terminal, state->console); if (!ply_renderer_open (renderer)) diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c index 2c5e1aa9..05e36fa2 100644 --- a/src/plugins/renderers/drm/plugin.c +++ b/src/plugins/renderers/drm/plugin.c @@ -783,6 +783,9 @@ map_to_device (ply_renderer_backend_t *backend) node = next_node; } + ply_console_set_active_vt (backend->console, + ply_terminal_get_vt_number (backend->terminal)); + return head_mapped; } @@ -922,6 +925,10 @@ flush_head (ply_renderer_backend_t *backend, assert (backend != NULL); + if (ply_console_get_active_vt (backend->console) != + ply_terminal_get_vt_number (backend->terminal)) + return; + ply_console_set_mode (backend->console, PLY_CONSOLE_MODE_GRAPHICS); ply_terminal_set_unbuffered_input (backend->terminal); pixel_buffer = head->pixel_buffer; diff --git a/src/plugins/renderers/frame-buffer/plugin.c b/src/plugins/renderers/frame-buffer/plugin.c index 6f45b8f4..0163daa0 100644 --- a/src/plugins/renderers/frame-buffer/plugin.c +++ b/src/plugins/renderers/frame-buffer/plugin.c @@ -491,6 +491,9 @@ map_to_device (ply_renderer_backend_t *backend) initialize_head (backend, head); + ply_console_set_active_vt (backend->console, + ply_terminal_get_vt_number (backend->terminal)); + return true; } @@ -522,6 +525,10 @@ flush_head (ply_renderer_backend_t *backend, assert (backend != NULL); assert (&backend->head == head); + if (ply_console_get_active_vt (backend->console) != + ply_terminal_get_vt_number (backend->terminal)) + return; + ply_console_set_mode (backend->console, PLY_CONSOLE_MODE_GRAPHICS); ply_terminal_set_unbuffered_input (backend->terminal); pixel_buffer = head->pixel_buffer; -- cgit v1.2.3