static bool map_to_device (ply_renderer_backend_t *backend) { ply_list_node_t *node; bool head_mapped; head_mapped = false; node = ply_list_get_first_node (backend->heads); while (node != NULL) { ply_list_node_t *next_node; ply_renderer_head_t *head; head = (ply_renderer_head_t *) ply_list_node_get_data (node); next_node = ply_list_get_next_node (backend->heads, node); if (ply_renderer_head_map (backend, head)) head_mapped = true; node = next_node; } if (ply_terminal_is_active (backend->terminal)) activate (backend); else ply_terminal_activate_vt (backend->terminal); return head_mapped; }
static void add_text_display (ply_boot_splash_plugin_t *plugin, ply_text_display_t *display) { view_t *view; ply_terminal_t *terminal; view = view_new (plugin, display); terminal = ply_text_display_get_terminal (view->display); if (ply_terminal_open (terminal)) ply_terminal_activate_vt (terminal); ply_text_display_set_draw_handler (view->display, (ply_text_display_draw_handler_t) on_draw, view); ply_list_append_data (plugin->views, view); }