Index: binaries/data/mods/public/gui/session/developer_overlay/DeveloperOverlayCheckboxes.js =================================================================== --- binaries/data/mods/public/gui/session/developer_overlay/DeveloperOverlayCheckboxes.js +++ binaries/data/mods/public/gui/session/developer_overlay/DeveloperOverlayCheckboxes.js @@ -275,3 +275,21 @@ return Engine.Renderer_GetDisplayFrustumEnabled(); } }; + +DeveloperOverlayCheckboxes.prototype.DisplayShadowsFrustum = class +{ + label() + { + return translate("Display shadows frustum"); + } + + onPress(checked) + { + Engine.Renderer_SetDisplayShadowsFrustumEnabled(checked); + } + + checked() + { + return Engine.Renderer_GetDisplayShadowsFrustumEnabled(); + } +}; Index: source/renderer/Renderer.cpp =================================================================== --- source/renderer/Renderer.cpp +++ source/renderer/Renderer.cpp @@ -1424,11 +1424,12 @@ // render debug lines if (g_RenderingOptions.GetDisplayFrustum()) - { DisplayFrustum(); + + if (g_RenderingOptions.GetDisplayShadowsFrustum()) + { m->shadow.RenderDebugBounds(); m->shadow.RenderDebugTexture(); - ogl_WarnIfError(); } m->silhouetteRenderer.RenderDebugOverlays(m_ViewCamera); @@ -1499,6 +1500,8 @@ glEnable(GL_CULL_FACE); glDepthMask(1); #endif + + ogl_WarnIfError(); } /////////////////////////////////////////////////////////////////////////////////////////////////// Index: source/renderer/RenderingOptions.h =================================================================== --- source/renderer/RenderingOptions.h +++ source/renderer/RenderingOptions.h @@ -98,6 +98,7 @@ OPTION(ShowSky, bool); OPTION(PostProc, bool); OPTION(DisplayFrustum, bool); + OPTION(DisplayShadowsFrustum, bool); OPTION(RenderActors, bool); Index: source/renderer/RenderingOptions.cpp =================================================================== --- source/renderer/RenderingOptions.cpp +++ source/renderer/RenderingOptions.cpp @@ -77,6 +77,7 @@ m_PostProc = false; m_ShowSky = false; m_DisplayFrustum = false; + m_DisplayShadowsFrustum = false; m_RenderActors = true; } Index: source/renderer/ShadowMap.cpp =================================================================== --- source/renderer/ShadowMap.cpp +++ source/renderer/ShadowMap.cpp @@ -800,6 +800,8 @@ glEnable(GL_CULL_FACE); glDepthMask(1); + + ogl_WarnIfError(); } void ShadowMap::RenderDebugTexture() @@ -844,4 +846,6 @@ glEnable(GL_DEPTH_TEST); glDepthMask(1); + + ogl_WarnIfError(); } Index: source/renderer/scripting/JSInterface_Renderer.h =================================================================== --- source/renderer/scripting/JSInterface_Renderer.h +++ source/renderer/scripting/JSInterface_Renderer.h @@ -47,6 +47,7 @@ DECLARE_BOOLEAN_SCRIPT_SETTING(SmoothLOS); DECLARE_BOOLEAN_SCRIPT_SETTING(PostProc); DECLARE_BOOLEAN_SCRIPT_SETTING(DisplayFrustum); + DECLARE_BOOLEAN_SCRIPT_SETTING(DisplayShadowsFrustum); void RegisterScriptFunctions(const ScriptInterface& scriptInterface); } Index: source/renderer/scripting/JSInterface_Renderer.cpp =================================================================== --- source/renderer/scripting/JSInterface_Renderer.cpp +++ source/renderer/scripting/JSInterface_Renderer.cpp @@ -52,6 +52,7 @@ IMPLEMENT_BOOLEAN_SCRIPT_SETTING(SmoothLOS); IMPLEMENT_BOOLEAN_SCRIPT_SETTING(PostProc); IMPLEMENT_BOOLEAN_SCRIPT_SETTING(DisplayFrustum); +IMPLEMENT_BOOLEAN_SCRIPT_SETTING(DisplayShadowsFrustum); #undef IMPLEMENT_BOOLEAN_SCRIPT_SETTING @@ -101,6 +102,7 @@ REGISTER_BOOLEAN_SCRIPT_SETTING(SmoothLOS); REGISTER_BOOLEAN_SCRIPT_SETTING(PostProc); REGISTER_BOOLEAN_SCRIPT_SETTING(DisplayFrustum); + REGISTER_BOOLEAN_SCRIPT_SETTING(DisplayShadowsFrustum); } #undef REGISTER_BOOLEAN_SCRIPT_SETTING