Add option to disable particles, based on patch by rogue-spectre. Fixes #1222.
This was SVN commit r11658.
This commit is contained in:
parent
49883c2d57
commit
f72bfb1cf1
@ -34,6 +34,7 @@ fancywater = true
|
||||
shadows = true
|
||||
shadowpcf = true
|
||||
vsync = false
|
||||
particles = true
|
||||
|
||||
nos3tc = false
|
||||
noautomipmap = true
|
||||
|
@ -224,14 +224,14 @@
|
||||
<object name="settingsDialogPanel"
|
||||
style="StoneDialog"
|
||||
type="image"
|
||||
size="50%-180 50%-200 50%+180 50%+50"
|
||||
size="50%-180 50%-200 50%+180 50%+80"
|
||||
hidden="true"
|
||||
>
|
||||
<object type="text" style="TitleText" size="50%-96 -16 50%+96 16">Settings</object>
|
||||
|
||||
<object style="TranslucentPanelThinBorder"
|
||||
type="image"
|
||||
size="32 32 100%-32 100%-64"
|
||||
size="32 32 100%-32 100%-70"
|
||||
>
|
||||
<!-- Settings / shadows -->
|
||||
<object size="0 10 100%-80 35" type="text" style="RightLabelText" ghost="true">Enable Shadows</object>
|
||||
@ -253,16 +253,23 @@
|
||||
<action on="Load">if (renderer.fancyWater) this.checked = true; else this.checked = false;</action>
|
||||
<action on="Press">renderer.fancyWater = this.checked;</action>
|
||||
</object>
|
||||
|
||||
|
||||
<!-- Settings / Particles -->
|
||||
<object size="0 85 100%-80 110" type="text" style="RightLabelText" ghost="true">Enable Particles</object>
|
||||
<object name="particlesCheckbox" size="100%-56 90 100%-30 115" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<action on="Load">if (renderer.particles) this.checked = true; else this.checked = false;</action>
|
||||
<action on="Press">renderer.particles = this.checked;</action>
|
||||
</object>
|
||||
|
||||
<!-- Settings / Music-->
|
||||
<object size="0 85 100%-80 110" type="text" style="RightLabelText" ghost="true">Enable Music</object>
|
||||
<object size="100%-56 90 100%-30 115" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<object size="0 110 100%-80 135" type="text" style="RightLabelText" ghost="true">Enable Music</object>
|
||||
<object size="100%-56 115 100%-30 140" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<action on="Press">if (this.checked) global.music.start(); else global.music.stop();</action>
|
||||
</object>
|
||||
|
||||
<!-- Settings / Dev Overlay -->
|
||||
<object size="0 110 100%-80 135" type="text" style="RightLabelText" ghost="true">Developer Overlay</object>
|
||||
<object size="100%-56 115 100%-30 140" type="checkbox" style="StoneCrossBox" checked="false">
|
||||
<object size="0 135 100%-80 160" type="text" style="RightLabelText" ghost="true">Developer Overlay</object>
|
||||
<object size="100%-56 140 100%-30 165" type="checkbox" style="StoneCrossBox" checked="false">
|
||||
<action on="Press">toggleDeveloperOverlay();</action>
|
||||
</object>
|
||||
</object>
|
||||
|
@ -38,6 +38,7 @@ bool g_PauseOnFocusLoss = false;
|
||||
bool g_Shadows = false;
|
||||
bool g_ShadowPCF = false;
|
||||
bool g_FancyWater = false;
|
||||
bool g_Particles = false;
|
||||
|
||||
float g_Gamma = 1.0f;
|
||||
|
||||
@ -77,6 +78,7 @@ static void LoadGlobals()
|
||||
CFG_GET_USER_VAL("shadowpcf", Bool, g_ShadowPCF);
|
||||
CFG_GET_USER_VAL("fancywater", Bool, g_FancyWater);
|
||||
CFG_GET_USER_VAL("renderpath", String, g_RenderPath);
|
||||
CFG_GET_USER_VAL("particles", Bool, g_Particles);
|
||||
|
||||
float gain = -1.0f;
|
||||
CFG_GET_USER_VAL("sound.mastergain", Float, gain);
|
||||
|
@ -50,6 +50,8 @@ extern bool g_Shadows;
|
||||
extern bool g_FancyWater;
|
||||
// flag to switch on shadow PCF
|
||||
extern bool g_ShadowPCF;
|
||||
// flag to switch on particles rendering
|
||||
extern bool g_Particles;
|
||||
|
||||
extern float g_Gamma;
|
||||
// name of configured render path (depending on OpenGL extensions, this may not be
|
||||
|
@ -582,6 +582,7 @@ static void InitRenderer()
|
||||
g_Renderer.SetOptionBool(CRenderer::OPT_FANCYWATER, g_FancyWater);
|
||||
g_Renderer.SetRenderPath(CRenderer::GetRenderPathByName(g_RenderPath));
|
||||
g_Renderer.SetOptionBool(CRenderer::OPT_SHADOWPCF, g_ShadowPCF);
|
||||
g_Renderer.SetOptionBool(CRenderer::OPT_PARTICLES, g_Particles);
|
||||
|
||||
// create terrain related stuff
|
||||
new CTerrainTextureManager;
|
||||
|
@ -408,11 +408,11 @@ CRenderer::CRenderer()
|
||||
|
||||
g_ProfileViewer.AddRootTable(&m->profileTable);
|
||||
|
||||
m_Width=0;
|
||||
m_Height=0;
|
||||
m_TerrainRenderMode=SOLID;
|
||||
m_ModelRenderMode=SOLID;
|
||||
m_ClearColor[0]=m_ClearColor[1]=m_ClearColor[2]=m_ClearColor[3]=0;
|
||||
m_Width = 0;
|
||||
m_Height = 0;
|
||||
m_TerrainRenderMode = SOLID;
|
||||
m_ModelRenderMode = SOLID;
|
||||
m_ClearColor[0] = m_ClearColor[1] = m_ClearColor[2] = m_ClearColor[3] = 0;
|
||||
|
||||
m_DisplayFrustum = false;
|
||||
m_DisplayTerrainPriorities = false;
|
||||
@ -425,6 +425,7 @@ CRenderer::CRenderer()
|
||||
m_Options.m_ShadowAlphaFix = true;
|
||||
m_Options.m_ARBProgramShadow = true;
|
||||
m_Options.m_ShadowPCF = false;
|
||||
m_Options.m_Particles = false;
|
||||
m_Options.m_PreferGLSL = false;
|
||||
m_Options.m_ForceAlphaTest = false;
|
||||
m_Options.m_GPUSkinning = false;
|
||||
@ -449,7 +450,7 @@ CRenderer::CRenderer()
|
||||
m_hCompositeAlphaMap = 0;
|
||||
|
||||
m_Stats.Reset();
|
||||
|
||||
AddLocalProperty(L"particles", &m_Options.m_Particles, false);
|
||||
AddLocalProperty(L"fancyWater", &m_Options.m_FancyWater, false);
|
||||
AddLocalProperty(L"horizonHeight", &m->skyManager.m_HorizonHeight, false);
|
||||
AddLocalProperty(L"waterMurkiness", &m->waterManager.m_Murkiness, false);
|
||||
@ -641,19 +642,22 @@ void CRenderer::SetOptionBool(enum Option opt,bool value)
|
||||
{
|
||||
switch (opt) {
|
||||
case OPT_NOVBO:
|
||||
m_Options.m_NoVBO=value;
|
||||
m_Options.m_NoVBO = value;
|
||||
break;
|
||||
case OPT_SHADOWS:
|
||||
m_Options.m_Shadows=value;
|
||||
m_Options.m_Shadows = value;
|
||||
MakeShadersDirty();
|
||||
break;
|
||||
case OPT_FANCYWATER:
|
||||
m_Options.m_FancyWater=value;
|
||||
m_Options.m_FancyWater = value;
|
||||
break;
|
||||
case OPT_SHADOWPCF:
|
||||
m_Options.m_ShadowPCF=value;
|
||||
m_Options.m_ShadowPCF = value;
|
||||
MakeShadersDirty();
|
||||
break;
|
||||
case OPT_PARTICLES:
|
||||
m_Options.m_Particles = value;
|
||||
break;
|
||||
default:
|
||||
debug_warn(L"CRenderer::SetOptionBool: unknown option");
|
||||
break;
|
||||
@ -673,6 +677,8 @@ bool CRenderer::GetOptionBool(enum Option opt) const
|
||||
return m_Options.m_FancyWater;
|
||||
case OPT_SHADOWPCF:
|
||||
return m_Options.m_ShadowPCF;
|
||||
case OPT_PARTICLES:
|
||||
return m_Options.m_Particles;
|
||||
default:
|
||||
debug_warn(L"CRenderer::GetOptionBool: unknown option");
|
||||
break;
|
||||
@ -1437,8 +1443,11 @@ void CRenderer::RenderSubmissions()
|
||||
ogl_WarnIfError();
|
||||
|
||||
// particles are transparent so render after water
|
||||
RenderParticles();
|
||||
ogl_WarnIfError();
|
||||
if (m_Options.m_Particles)
|
||||
{
|
||||
RenderParticles();
|
||||
ogl_WarnIfError();
|
||||
}
|
||||
|
||||
RenderSilhouettes(context);
|
||||
|
||||
|
@ -77,7 +77,8 @@ public:
|
||||
OPT_NOVBO,
|
||||
OPT_SHADOWS,
|
||||
OPT_FANCYWATER,
|
||||
OPT_SHADOWPCF
|
||||
OPT_SHADOWPCF,
|
||||
OPT_PARTICLES
|
||||
};
|
||||
|
||||
enum RenderPath {
|
||||
@ -121,6 +122,7 @@ public:
|
||||
bool m_ShadowAlphaFix;
|
||||
bool m_ARBProgramShadow;
|
||||
bool m_ShadowPCF;
|
||||
bool m_Particles;
|
||||
bool m_PreferGLSL;
|
||||
bool m_ForceAlphaTest;
|
||||
bool m_GPUSkinning;
|
||||
@ -147,7 +149,7 @@ public:
|
||||
void Resize(int width,int height);
|
||||
|
||||
// set/get boolean renderer option
|
||||
void SetOptionBool(enum Option opt,bool value);
|
||||
void SetOptionBool(enum Option opt, bool value);
|
||||
bool GetOptionBool(enum Option opt) const;
|
||||
void SetRenderPath(RenderPath rp);
|
||||
RenderPath GetRenderPath() const { return m_Options.m_RenderPath; }
|
||||
|
Loading…
Reference in New Issue
Block a user