Merge pull request #97416 from Calinou/lightmapgi-check-rendering-device-availability

Check RenderingDevice availability to display LightmapGI configuration warnings
This commit is contained in:
Rémi Verschelde 2024-10-02 15:01:34 +02:00
commit 1da8a2a1ba
No known key found for this signature in database
GPG key ID: C3336907360768E1
2 changed files with 28 additions and 2 deletions

View file

@ -179,6 +179,23 @@ LightmapGIEditorPlugin::LightmapGIEditorPlugin() {
// when the editor theme updates.
bake->set_icon(EditorNode::get_singleton()->get_editor_theme()->get_icon(SNAME("Bake"), EditorStringName(EditorIcons)));
bake->set_text(TTR("Bake Lightmaps"));
#ifdef MODULE_LIGHTMAPPER_RD_ENABLED
// Disable lightmap baking if not supported on the current GPU.
if (!DisplayServer::get_singleton()->can_create_rendering_device()) {
bake->set_disabled(true);
bake->set_tooltip_text(vformat(TTR("Lightmap baking is not supported on this GPU (%s)."), RenderingServer::get_singleton()->get_video_adapter_name()));
}
#else
// Disable lightmap baking if the module is disabled at compile-time.
bake->set_disabled(true);
#if defined(ANDROID_ENABLED) || defined(IOS_ENABLED)
bake->set_tooltip_text(vformat(TTR("Lightmaps cannot be baked on %s."), OS::get_singleton()->get_name()));
#else
bake->set_tooltip_text(TTR("Lightmaps cannot be baked, as the `lightmapper_rd` module was disabled at compile-time."));
#endif
#endif // MODULE_LIGHTMAPPER_RD_ENABLED
bake->hide();
bake->connect(SceneStringName(pressed), Callable(this, "_bake"));
add_control_to_container(CONTAINER_SPATIAL_EDITOR_MENU, bake);