aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorROllerozxa <temporaryemail4meh+github@gmail.com>2022-08-04 20:42:43 +0200
committerGitHub <noreply@github.com>2022-08-04 20:42:43 +0200
commiteb49b6d85cf9ba59da2321d7fe593986b2f1610f (patch)
treec6c23bb1ff0e8ade22aa60fef1e36f1b69f75838
parentb91063daef8da79533a375e461cdeac8541ec0f2 (diff)
downloadhax-minetest-server-eb49b6d85cf9ba59da2321d7fe593986b2f1610f.tar.gz
hax-minetest-server-eb49b6d85cf9ba59da2321d7fe593986b2f1610f.zip
Disable dynamic shadow dropdown on OGLES2 (#12637)
Co-authored-by: sfan5 <sfan5@live.de>
-rw-r--r--builtin/mainmenu/tab_settings.lua14
-rw-r--r--src/client/render/core.cpp7
2 files changed, 18 insertions, 3 deletions
diff --git a/builtin/mainmenu/tab_settings.lua b/builtin/mainmenu/tab_settings.lua
index 8307ca7e2..21c77aa8e 100644
--- a/builtin/mainmenu/tab_settings.lua
+++ b/builtin/mainmenu/tab_settings.lua
@@ -220,11 +220,19 @@ local function formspec(tabview, name, tabdata)
"checkbox[8.25,1.5;cb_waving_leaves;" .. fgettext("Waving Leaves") .. ";"
.. dump(core.settings:get_bool("enable_waving_leaves")) .. "]" ..
"checkbox[8.25,2;cb_waving_plants;" .. fgettext("Waving Plants") .. ";"
- .. dump(core.settings:get_bool("enable_waving_plants")) .. "]"..
- "label[8.25,2.8;" .. fgettext("Dynamic shadows:") .. "]" ..
- "label[8.25,3.2;" .. fgettext("(game support required)") .. "]" ..
+ .. dump(core.settings:get_bool("enable_waving_plants")) .. "]"
+
+ if video_driver == "opengl" then
+ tab_string = tab_string ..
+ "label[8.25,2.8;" .. fgettext("Dynamic shadows:") .. "]" ..
+ "label[8.25,3.2;" .. fgettext("(game support required)") .. "]" ..
"dropdown[8.25,3.7;3.5;dd_shadows;" .. dd_options.shadow_levels[1] .. ";"
.. getSettingIndex.ShadowMapping() .. "]"
+ else
+ tab_string = tab_string ..
+ "label[8.38,2.7;" .. core.colorize("#888888",
+ fgettext("Dynamic shadows")) .. "]"
+ end
else
tab_string = tab_string ..
"label[8.38,0.7;" .. core.colorize("#888888",
diff --git a/src/client/render/core.cpp b/src/client/render/core.cpp
index 55cc4e490..ca5d3c614 100644
--- a/src/client/render/core.cpp
+++ b/src/client/render/core.cpp
@@ -35,6 +35,13 @@ RenderingCore::RenderingCore(IrrlichtDevice *_device, Client *_client, Hud *_hud
screensize = driver->getScreenSize();
virtual_size = screensize;
+ // disable if unsupported
+ if (g_settings->getBool("enable_dynamic_shadows") && (
+ g_settings->get("video_driver") != "opengl" ||
+ !g_settings->getBool("enable_shaders"))) {
+ g_settings->setBool("enable_dynamic_shadows", false);
+ }
+
if (g_settings->getBool("enable_shaders") &&
g_settings->getBool("enable_dynamic_shadows")) {
shadow_renderer = new ShadowRenderer(device, client);