static bool
start_script_animation (ply_boot_splash_plugin_t *plugin)
{
- ply_list_t *displays;
ply_list_node_t *node;
script_obj_t *target_obj;
script_obj_t *value_obj;
plugin->script_image_lib = script_lib_image_setup (plugin->script_state,
plugin->image_dir);
plugin->script_sprite_lib = script_lib_sprite_setup (plugin->script_state,
- plugin->displays);
+ plugin->displays,
+ plugin->boot_buffer,
+ plugin->monospace_font,
+ plugin->console_text_color);
plugin->script_plymouth_lib = script_lib_plymouth_setup (plugin->script_state,
plugin->mode,
FRAMES_PER_SECOND,
plugin->script_math_lib = script_lib_math_setup (plugin->script_state);
plugin->script_string_lib = script_lib_string_setup (plugin->script_state);
-
- displays = script_lib_get_displays (plugin->script_sprite_lib);
- node = ply_list_get_first_node (displays);
- while (node != NULL) {
- script_lib_display_t *display;
- ply_list_node_t *next_node;
-
- display = ply_list_node_get_data (node);
- next_node = ply_list_get_next_node (displays, node);
-
- if (ply_console_viewer_preferred ()) {
- display->console_viewer = ply_console_viewer_new (display->pixel_display, plugin->monospace_font);
- ply_console_viewer_set_text_color (display->console_viewer, plugin->console_text_color);
-
- if (plugin->boot_buffer)
- ply_console_viewer_convert_boot_buffer (display->console_viewer, plugin->boot_buffer);
- } else {
- display->console_viewer = NULL;
- }
-
- node = next_node;
- }
-
- plugin->script_sprite_lib->monospace_font = plugin->monospace_font;
- plugin->script_sprite_lib->boot_buffer = plugin->boot_buffer;
-
ply_trace ("executing script file");
script_return_t ret = script_execute (plugin->script_state,
plugin->script_main_op);
ply_buffer_t *boot_buffer,
ply_boot_splash_mode_t mode)
{
- ply_list_node_t *node;
-
assert (plugin != NULL);
if (ply_list_get_length (plugin->displays) == 0) {
(ply_pixel_display_draw_handler_t)
script_lib_sprite_draw_area, script_display);
+ if (ply_console_viewer_preferred ()) {
+ script_display->console_viewer = ply_console_viewer_new (script_display->pixel_display, data->monospace_font);
+ ply_console_viewer_set_text_color (script_display->console_viewer, data->console_text_color);
+
+ if (data->boot_buffer)
+ ply_console_viewer_convert_boot_buffer (script_display->console_viewer, data->boot_buffer);
+ } else {
+ script_display->console_viewer = NULL;
+ }
+
ply_list_append_data (data->displays, script_display);
}
script_lib_sprite_data_t *script_lib_sprite_setup (script_state_t *state,
- ply_list_t *pixel_displays)
+ ply_list_t *pixel_displays,
+ ply_buffer_t *boot_buffer,
+ char *monospace_font,
+ uint32_t console_text_color)
{
ply_list_node_t *node;
script_lib_sprite_data_t *data = malloc (sizeof(script_lib_sprite_data_t));
data->sprite_list = ply_list_new ();
data->displays = ply_list_new ();
+ data->boot_buffer = boot_buffer;
+ data->monospace_font = monospace_font;
+ data->console_text_color = console_text_color;
+
for (node = ply_list_get_first_node (pixel_displays);
node;
node = ply_list_get_next_node (pixel_displays, node)) {
ply_buffer_t *boot_buffer;
char *monospace_font;
+ uint32_t console_text_color;
bool needs_redraw;
bool plugin_console_messages_updating;
bool should_show_console_messages;
} sprite_t;
script_lib_sprite_data_t *script_lib_sprite_setup (script_state_t *state,
- ply_list_t *displays);
+ ply_list_t *displays,
+ ply_buffer_t *boot_buffer,
+ char *monospace_font,
+ uint32_t console_text_color);
void script_lib_sprite_pixel_display_added (script_lib_sprite_data_t *data,
ply_pixel_display_t *pixel_display);
void script_lib_sprite_pixel_display_removed (script_lib_sprite_data_t *data,