summaryrefslogtreecommitdiff
path: root/src/client/render
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/render')
-rw-r--r--src/client/render/core.cpp16
-rw-r--r--src/client/render/stereo.cpp2
2 files changed, 14 insertions, 4 deletions
diff --git a/src/client/render/core.cpp b/src/client/render/core.cpp
index 44ef1c98c..ca5d3c614 100644
--- a/src/client/render/core.cpp
+++ b/src/client/render/core.cpp
@@ -35,8 +35,15 @@ 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") &&
- false && g_settings->getBool("enable_dynamic_shadows")) {
+ g_settings->getBool("enable_dynamic_shadows")) {
shadow_renderer = new ShadowRenderer(device, client);
}
}
@@ -76,8 +83,11 @@ void RenderingCore::draw(video::SColor _skycolor, bool _show_hud, bool _show_min
draw_wield_tool = _draw_wield_tool;
draw_crosshair = _draw_crosshair;
- if (shadow_renderer)
+ if (shadow_renderer) {
+ // This is necessary to render shadows for animations correctly
+ smgr->getRootSceneNode()->OnAnimate(device->getTimer()->getTime());
shadow_renderer->update();
+ }
beforeDraw();
drawAll();
@@ -103,7 +113,7 @@ void RenderingCore::drawHUD()
if (show_hud) {
if (draw_crosshair)
hud->drawCrosshair();
-
+
hud->drawHotbar(client->getEnv().getLocalPlayer()->getWieldIndex());
hud->drawLuaElements(camera->getOffset());
camera->drawNametags();
diff --git a/src/client/render/stereo.cpp b/src/client/render/stereo.cpp
index 967b5a78f..0f54e166e 100644
--- a/src/client/render/stereo.cpp
+++ b/src/client/render/stereo.cpp
@@ -27,7 +27,7 @@ RenderingCoreStereo::RenderingCoreStereo(
IrrlichtDevice *_device, Client *_client, Hud *_hud)
: RenderingCore(_device, _client, _hud)
{
- eye_offset = BS * g_settings->getFloat("3d_paralax_strength");
+ eye_offset = BS * g_settings->getFloat("3d_paralax_strength", -0.087f, 0.087f);
}
void RenderingCoreStereo::beforeDraw()