diff --git a/binaries/data/config/default.cfg b/binaries/data/config/default.cfg index 58268d0524..6aa0fd6c14 100644 --- a/binaries/data/config/default.cfg +++ b/binaries/data/config/default.cfg @@ -40,6 +40,7 @@ shadowpcf = true vsync = false particles = true silhouettes = true +showsky = false nos3tc = false noautomipmap = true @@ -148,6 +149,7 @@ hotkey.togglefullscreen = "Alt+Return" ; Toggle fullscreen/windowed mode hotkey.screenshot.watermark = "K" ; Toggle product/company watermark for official screenshots hotkey.wireframe = "Alt+W" ; Toggle wireframe mode hotkey.silhouettes = "Alt+S" ; Toggle unit silhouettes +hotkey.showsky = "Alt+Z" ; Toggle sky ; > CAMERA SETTINGS hotkey.camera.reset = "H" ; Reset camera rotation to default. diff --git a/binaries/data/mods/public/gui/session/session.xml b/binaries/data/mods/public/gui/session/session.xml index 339ae6e004..9eedeffaa2 100644 --- a/binaries/data/mods/public/gui/session/session.xml +++ b/binaries/data/mods/public/gui/session/session.xml @@ -66,6 +66,11 @@ renderer.silhouettes = !renderer.silhouettes; + + + renderer.showsky = !renderer.showsky; + + togglePause(); diff --git a/source/ps/GameSetup/Config.cpp b/source/ps/GameSetup/Config.cpp index e0a1db46cd..d24aa7552b 100644 --- a/source/ps/GameSetup/Config.cpp +++ b/source/ps/GameSetup/Config.cpp @@ -40,6 +40,7 @@ bool g_ShadowPCF = false; bool g_FancyWater = false; bool g_Particles = false; bool g_Silhouettes = false; +bool g_ShowSky = false; float g_Gamma = 1.0f; @@ -81,6 +82,7 @@ static void LoadGlobals() CFG_GET_USER_VAL("renderpath", String, g_RenderPath); CFG_GET_USER_VAL("particles", Bool, g_Particles); CFG_GET_USER_VAL("silhouettes", Bool, g_Silhouettes); + CFG_GET_USER_VAL("showsky", Bool, g_ShowSky); float gain = 0.5f; float musicGain = 0.5f; diff --git a/source/ps/GameSetup/Config.h b/source/ps/GameSetup/Config.h index 3c4489358d..4c1028eaf2 100644 --- a/source/ps/GameSetup/Config.h +++ b/source/ps/GameSetup/Config.h @@ -54,6 +54,8 @@ extern bool g_ShadowPCF; extern bool g_Particles; // flag to switch on unit silhouettes extern bool g_Silhouettes; +// flag to switch on sky rendering +extern bool g_ShowSky extern float g_Gamma; // name of configured render path (depending on OpenGL extensions, this may not be diff --git a/source/ps/GameSetup/GameSetup.cpp b/source/ps/GameSetup/GameSetup.cpp index 10804c874d..1b1cd9b471 100644 --- a/source/ps/GameSetup/GameSetup.cpp +++ b/source/ps/GameSetup/GameSetup.cpp @@ -573,6 +573,7 @@ static void InitRenderer() g_Renderer.SetOptionBool(CRenderer::OPT_SHADOWPCF, g_ShadowPCF); g_Renderer.SetOptionBool(CRenderer::OPT_PARTICLES, g_Particles); g_Renderer.SetOptionBool(CRenderer::OPT_SILHOUETTES, g_Silhouettes); + g_Renderer.SetOptionBool(CRenderer::OPT_SHOWSKY, g_ShowSky); // create terrain related stuff new CTerrainTextureManager; diff --git a/source/renderer/Renderer.cpp b/source/renderer/Renderer.cpp index 2336a09795..950d0e4460 100644 --- a/source/renderer/Renderer.cpp +++ b/source/renderer/Renderer.cpp @@ -437,6 +437,7 @@ CRenderer::CRenderer() m_Options.m_GPUSkinning = false; m_Options.m_GenTangents = false; m_Options.m_SmoothLOS = false; + m_Options.m_ShowSky = false; // TODO: be more consistent in use of the config system CFG_GET_USER_VAL("preferglsl", Bool, m_Options.m_PreferGLSL); @@ -470,6 +471,7 @@ CRenderer::CRenderer() AddLocalProperty(L"waterSpecularStrength", &m->waterManager.m_SpecularStrength, false); AddLocalProperty(L"waterWaviness", &m->waterManager.m_Waviness, false); AddLocalProperty(L"silhouettes", &m_Options.m_Silhouettes, false); + AddLocalProperty(L"showsky", &m_Options.m_ShowSky, false); RegisterFileReloadFunc(ReloadChangedFileCB, this); } @@ -679,6 +681,9 @@ void CRenderer::SetOptionBool(enum Option opt,bool value) case OPT_SILHOUETTES: m_Options.m_Silhouettes = value; break; + case OPT_SHOWSKY: + m_Options.m_ShowSky = value; + break; default: debug_warn(L"CRenderer::SetOptionBool: unknown option"); break; @@ -702,6 +707,8 @@ bool CRenderer::GetOptionBool(enum Option opt) const return m_Options.m_Particles; case OPT_SILHOUETTES: return m_Options.m_Silhouettes; + case OPT_SHOWSKY: + return m_Options.m_ShowSky; default: debug_warn(L"CRenderer::GetOptionBool: unknown option"); break; @@ -1427,6 +1434,11 @@ void CRenderer::RenderSubmissions() } } + if (m_Options.m_ShowSky) + { + m->skyManager.RenderSky(); + } + // render submitted patches and models RenderPatches(context); ogl_WarnIfError(); diff --git a/source/renderer/Renderer.h b/source/renderer/Renderer.h index f1406dc369..7a4a2ee851 100644 --- a/source/renderer/Renderer.h +++ b/source/renderer/Renderer.h @@ -82,7 +82,8 @@ public: OPT_FANCYWATER, OPT_SHADOWPCF, OPT_PARTICLES, - OPT_SILHOUETTES + OPT_SILHOUETTES, + OPT_SHOWSKY }; enum RenderPath { @@ -133,6 +134,7 @@ public: bool m_Silhouettes; bool m_GenTangents; bool m_SmoothLOS; + bool m_ShowSky; } m_Options; struct Caps {