1
0
mirror of https://github.com/godotengine/godot.git synced 2025-12-03 16:55:53 +00:00

Shader Baker: Fix Linux export warning

We now have APIs exactly for this use case of querying project settings
for a target platform instead of the host OS.

- Fixes #112462.
This commit is contained in:
Rémi Verschelde
2025-11-06 11:06:46 +01:00
parent b15a13eed3
commit 14734cbcf8
2 changed files with 6 additions and 13 deletions

View File

@@ -56,20 +56,13 @@ bool ShaderBakerExportPlugin::_is_active(const Vector<String> &p_features) const
return RendererSceneRenderRD::get_singleton() != nullptr && RendererRD::MaterialStorage::get_singleton() != nullptr && p_features.has("shader_baker"); return RendererSceneRenderRD::get_singleton() != nullptr && RendererRD::MaterialStorage::get_singleton() != nullptr && p_features.has("shader_baker");
} }
bool ShaderBakerExportPlugin::_initialize_container_format(const Ref<EditorExportPlatform> &p_platform, const Vector<String> &p_features, const Ref<EditorExportPreset> &p_preset) { bool ShaderBakerExportPlugin::_initialize_container_format(const Ref<EditorExportPlatform> &p_platform, const Ref<EditorExportPreset> &p_preset) {
Variant driver_variant = GLOBAL_GET("rendering/rendering_device/driver." + p_platform->get_os_name().to_lower()); shader_container_driver = p_preset->get_project_setting("rendering/rendering_device/driver");
if (!driver_variant.is_string()) { ERR_FAIL_COND_V_MSG(shader_container_driver.is_empty(), false, "Invalid `rendering/rendering_device/driver` setting, disabling shader baking.");
driver_variant = GLOBAL_GET("rendering/rendering_device/driver");
if (!driver_variant.is_string()) {
return false;
}
}
shader_container_driver = driver_variant;
for (Ref<ShaderBakerExportPluginPlatform> platform : platforms) { for (Ref<ShaderBakerExportPluginPlatform> platform : platforms) {
if (platform->matches_driver(shader_container_driver)) { if (platform->matches_driver(shader_container_driver)) {
shader_container_format = platform->create_shader_container_format(p_platform, get_export_preset()); shader_container_format = platform->create_shader_container_format(p_platform, p_preset);
ERR_FAIL_NULL_V_MSG(shader_container_format, false, "Unable to create shader container format for the export platform."); ERR_FAIL_NULL_V_MSG(shader_container_format, false, "Unable to create shader container format for the export platform.");
return true; return true;
} }
@@ -101,7 +94,7 @@ bool ShaderBakerExportPlugin::_begin_customize_resources(const Ref<EditorExportP
return false; return false;
} }
if (!_initialize_container_format(p_platform, p_features, get_export_preset())) { if (!_initialize_container_format(p_platform, get_export_preset())) {
return false; return false;
} }

View File

@@ -86,7 +86,7 @@ protected:
virtual String get_name() const override; virtual String get_name() const override;
virtual bool _is_active(const Vector<String> &p_features) const; virtual bool _is_active(const Vector<String> &p_features) const;
virtual bool _initialize_container_format(const Ref<EditorExportPlatform> &p_platform, const Vector<String> &p_features, const Ref<EditorExportPreset> &p_preset); virtual bool _initialize_container_format(const Ref<EditorExportPlatform> &p_platform, const Ref<EditorExportPreset> &p_preset);
virtual void _cleanup_container_format(); virtual void _cleanup_container_format();
virtual bool _initialize_cache_directory(); virtual bool _initialize_cache_directory();
virtual bool _begin_customize_resources(const Ref<EditorExportPlatform> &p_platform, const Vector<String> &p_features) override; virtual bool _begin_customize_resources(const Ref<EditorExportPlatform> &p_platform, const Vector<String> &p_features) override;