From: Ray Strode Date: Sat, 3 Oct 2009 03:37:02 +0000 (-0400) Subject: [renderer] Move VT switching to renderer plugins X-Git-Tag: 0.8.0~182^2~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a8676e2c08a6b07927d6deddb6d7bc4431ebba9c;p=thirdparty%2Fplymouth.git [renderer] Move VT switching to renderer plugins Since not all renderer plugins should switch VTs we do it from the individual plugins now. --- 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;