]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
script: Support ConsoleViewerPreserveBackground option to keep the background when...
authornerdopolis <bluescreen_avenger@verizon.net>
Fri, 2 Aug 2024 18:32:44 +0000 (14:32 -0400)
committern3rdopolis <bluescreenavenger@gmail.com>
Tue, 6 Aug 2024 11:33:26 +0000 (11:33 +0000)
src/plugins/splash/script/plugin.c
src/plugins/splash/script/script-lib-sprite.c
src/plugins/splash/script/script-lib-sprite.h

index 56f20bbed02fe79464b84da4afd7a1ca75b7f052..3405a801a8fa93f54ae2fac72e65963d7d2e51bb 100644 (file)
@@ -103,6 +103,7 @@ struct _ply_boot_splash_plugin
         uint32_t                       should_show_console_messages : 1;
         ply_buffer_t                  *boot_buffer;
         uint32_t                       console_text_color;
+        uint32_t                       console_viewer_preserve_background;
 };
 
 typedef struct
@@ -236,6 +237,9 @@ create_plugin (ply_key_file_t *key_file)
                                        "ConsoleLogTextColor",
                                        PLY_CONSOLE_VIEWER_LOG_TEXT_COLOR);
 
+        plugin->console_viewer_preserve_background =
+                ply_key_file_get_bool (key_file, "script", "ConsoleViewerPreserveBackground");
+
         plugin->displays = ply_list_new ();
 
         return plugin;
@@ -334,7 +338,8 @@ start_script_animation (ply_boot_splash_plugin_t *plugin)
                                                              plugin->displays,
                                                              plugin->boot_buffer,
                                                              plugin->monospace_font,
-                                                             plugin->console_text_color);
+                                                             plugin->console_text_color,
+                                                             plugin->console_viewer_preserve_background);
         plugin->script_plymouth_lib = script_lib_plymouth_setup (plugin->script_state,
                                                                  plugin->mode,
                                                                  FRAMES_PER_SECOND,
index ef0b66982a0f93506c46ebd4dfbbe005c324b7c6..933f3b461b6f3e3bbb30cac9b88482376a1e2f75 100644 (file)
@@ -401,7 +401,7 @@ static void script_lib_draw_brackground (ply_pixel_buffer_t       *pixel_buffer,
                                          ply_rectangle_t          *clip_area,
                                          script_lib_sprite_data_t *data)
 {
-        if (data->should_show_console_messages) {
+        if (data->should_show_console_messages && data->console_viewer_preserve_background == false) {
                 ply_pixel_buffer_fill_with_hex_color (pixel_buffer, clip_area, 0);
                 return;
         }
@@ -572,7 +572,8 @@ script_lib_sprite_data_t *script_lib_sprite_setup (script_state_t *state,
                                                    ply_list_t     *pixel_displays,
                                                    ply_buffer_t   *boot_buffer,
                                                    char           *monospace_font,
-                                                   uint32_t        console_text_color)
+                                                   uint32_t        console_text_color,
+                                                   bool            console_viewer_preserve_background)
 {
         ply_list_node_t *node;
         script_lib_sprite_data_t *data = malloc (sizeof(script_lib_sprite_data_t));
@@ -584,6 +585,7 @@ script_lib_sprite_data_t *script_lib_sprite_setup (script_state_t *state,
         data->boot_buffer = boot_buffer;
         data->monospace_font = monospace_font;
         data->console_text_color = console_text_color;
+        data->console_viewer_preserve_background = console_viewer_preserve_background;
 
         for (node = ply_list_get_first_node (pixel_displays);
              node;
index 8fe456c23dc0051a60960c04f7e81d1c8eb0fcb7..2f24e91731e778ec86d5865a5cb3c94e7271f1c6 100644 (file)
@@ -42,6 +42,7 @@ typedef struct
         ply_buffer_t              *boot_buffer;
         char                      *monospace_font;
         uint32_t                   console_text_color;
+        bool                       console_viewer_preserve_background;
         bool                       needs_redraw;
         bool                       plugin_console_messages_updating;
         bool                       should_show_console_messages;
@@ -80,7 +81,8 @@ script_lib_sprite_data_t *script_lib_sprite_setup (script_state_t *state,
                                                    ply_list_t     *displays,
                                                    ply_buffer_t   *boot_buffer,
                                                    char           *monospace_font,
-                                                   uint32_t        console_text_color);
+                                                   uint32_t        console_text_color,
+                                                   bool            console_viewer_preserve_background);
 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,