summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <halfline@gmail.com>2020-12-07 22:39:07 +0000
committerRay Strode <halfline@gmail.com>2020-12-07 22:39:07 +0000
commitc4ced2a2d70edea7fbb95274aa1d01d95928df1b (patch)
tree66d4fe1aa43ba0fc3aba5f7ba4ad60f77bdb27d1
parent53c83cc8d6a00df2baed4e317a0cf2813277471a (diff)
parent3ed2a1a92c61593010dbef765b3824490ee2938c (diff)
Merge branch 'use-fallback-image-if-bgrt-is-not-supported' into 'master'
Use fallback image if BGRT is not supported See merge request plymouth/plymouth!125
-rw-r--r--src/plugins/splash/two-step/plugin.c24
1 files changed, 19 insertions, 5 deletions
diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c
index 32b4bcf6..01c0bd1c 100644
--- a/src/plugins/splash/two-step/plugin.c
+++ b/src/plugins/splash/two-step/plugin.c
@@ -139,6 +139,7 @@ struct _ply_boot_splash_plugin
ply_image_t *header_image;
ply_image_t *background_tile_image;
ply_image_t *background_bgrt_image;
+ ply_image_t *background_bgrt_fallback_image;
ply_image_t *watermark_image;
ply_list_t *views;
@@ -1048,6 +1049,10 @@ create_plugin (ply_key_file_t *key_file)
plugin->background_tile_image = ply_image_new (image_path);
free (image_path);
+ asprintf (&image_path, "%s/bgrt-fallback.png", image_dir);
+ plugin->background_bgrt_fallback_image = ply_image_new (image_path);
+ free (image_path);
+
asprintf (&image_path, "%s/watermark.png", image_dir);
plugin->watermark_image = ply_image_new (image_path);
free (image_path);
@@ -1243,6 +1248,9 @@ destroy_plugin (ply_boot_splash_plugin_t *plugin)
if (plugin->background_bgrt_image != NULL)
ply_image_free (plugin->background_bgrt_image);
+ if (plugin->background_bgrt_fallback_image != NULL)
+ ply_image_free (plugin->background_bgrt_fallback_image);
+
if (plugin->watermark_image != NULL)
ply_image_free (plugin->watermark_image);
@@ -1655,11 +1663,17 @@ show_splash_screen (ply_boot_splash_plugin_t *plugin,
plugin->background_bgrt_raw_width = ply_image_get_width (plugin->background_bgrt_image);
plugin->background_bgrt_raw_height = ply_image_get_height (plugin->background_bgrt_image);
} else {
- ply_image_free (plugin->background_bgrt_image);
- plugin->background_bgrt_image = NULL;
- for (i = 0; i < PLY_BOOT_SPLASH_MODE_COUNT; i++)
- plugin->mode_settings[i].use_firmware_background = false;
- plugin->use_firmware_background = false;
+ ply_trace ("loading background bgrt fallback image");
+ if (ply_image_load (plugin->background_bgrt_fallback_image)) {
+ plugin->background_bgrt_image = plugin->background_bgrt_fallback_image;
+ plugin->background_bgrt_fallback_image = NULL;
+ } else {
+ ply_image_free (plugin->background_bgrt_image);
+ plugin->background_bgrt_image = NULL;
+ for (i = 0; i < PLY_BOOT_SPLASH_MODE_COUNT; i++)
+ plugin->mode_settings[i].use_firmware_background = false;
+ plugin->use_firmware_background = false;
+ }
}
}