diff options
author | Ray Strode <halfline@gmail.com> | 2020-12-07 22:39:07 +0000 |
---|---|---|
committer | Ray Strode <halfline@gmail.com> | 2020-12-07 22:39:07 +0000 |
commit | c4ced2a2d70edea7fbb95274aa1d01d95928df1b (patch) | |
tree | 66d4fe1aa43ba0fc3aba5f7ba4ad60f77bdb27d1 | |
parent | 53c83cc8d6a00df2baed4e317a0cf2813277471a (diff) | |
parent | 3ed2a1a92c61593010dbef765b3824490ee2938c (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.c | 24 |
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; + } } } |