Added 'RenderResolutionMultiplier' as an more fine-tuned alternative to 'RenderResolutionDivisor'

--HG--
branch : RLVa
meow-7.2.2
Kitty Barnett 2018-03-27 20:07:07 +02:00
parent b98e2123a3
commit d56b519bed
4 changed files with 44 additions and 8 deletions

View File

@ -10254,6 +10254,17 @@
<key>Value</key>
<integer>1</integer>
</map>
<key>RenderResolutionMultiplier</key>
<map>
<key>Comment</key>
<string>Multiplier for rendering 3D scene at reduced resolution.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>1.0</real>
</map>
<key>RenderShaderLightingMaxLevel</key>
<map>
<key>Comment</key>

View File

@ -635,6 +635,9 @@ void settings_setup_listeners()
gSavedSettings.getControl("RenderDebugGL")->getSignal()->connect(boost::bind(&handleRenderDebugGLChanged, _2));
gSavedSettings.getControl("RenderDebugPipeline")->getSignal()->connect(boost::bind(&handleRenderDebugPipelineChanged, _2));
gSavedSettings.getControl("RenderResolutionDivisor")->getSignal()->connect(boost::bind(&handleRenderResolutionDivisorChanged, _2));
// [SL:KB] - Patch: Settings-RenderResolutionMultiplier | Checked: Catznip-5.4
gSavedSettings.getControl("RenderResolutionMultiplier")->getSignal()->connect(boost::bind(&handleRenderResolutionDivisorChanged, _2));
// [/SL:KB]
gSavedSettings.getControl("RenderDeferred")->getSignal()->connect(boost::bind(&handleRenderDeferredChanged, _2));
gSavedSettings.getControl("RenderShadowDetail")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));
gSavedSettings.getControl("RenderDeferredSSAO")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));

View File

@ -141,6 +141,9 @@ bool LLPipeline::RenderDeferred;
F32 LLPipeline::RenderDeferredSunWash;
U32 LLPipeline::RenderFSAASamples;
U32 LLPipeline::RenderResolutionDivisor;
// [SL:KB] - Patch: Settings-RenderResolutionMultiplier | Checked: Catznip-5.4
F32 LLPipeline::RenderResolutionMultiplier;
// [/SL:KB]
bool LLPipeline::RenderUIBuffer;
S32 LLPipeline::RenderShadowDetail;
bool LLPipeline::RenderDeferredSSAO;
@ -586,6 +589,9 @@ void LLPipeline::init()
connectRefreshCachedSettingsSafe("RenderDeferredSunWash");
connectRefreshCachedSettingsSafe("RenderFSAASamples");
connectRefreshCachedSettingsSafe("RenderResolutionDivisor");
// [SL:KB] - Patch: Settings-RenderResolutionMultiplier | Checked: Catznip-5.4
connectRefreshCachedSettingsSafe("RenderResolutionMultiplier");
// [/SL:KB]
connectRefreshCachedSettingsSafe("RenderUIBuffer");
connectRefreshCachedSettingsSafe("RenderShadowDetail");
connectRefreshCachedSettingsSafe("RenderDeferredSSAO");
@ -792,17 +798,20 @@ void LLPipeline::resizeScreenTexture()
GLuint resX = gViewerWindow->getWorldViewWidthRaw();
GLuint resY = gViewerWindow->getWorldViewHeightRaw();
// [RLVa:KB] - Checked: 2014-02-23 (RLVa-1.4.10)
U32 resMod = RenderResolutionDivisor, resAdjustedX = resX, resAdjustedY = resY;
if ( (resMod > 1) && (resMod < resX) && (resMod < resY) )
// [SL:KB] - Patch: Settings-RenderResolutionMultiplier | Checked: Catznip-5.4
if ( (RenderResolutionDivisor > 1) && (RenderResolutionDivisor < resX) && (RenderResolutionDivisor < resY) )
{
resAdjustedX /= resMod;
resAdjustedY /= resMod;
resX /= RenderResolutionDivisor;
resY /= RenderResolutionDivisor;
}
else if (RenderResolutionMultiplier != 1.f)
{
resX *= RenderResolutionMultiplier;
resY *= RenderResolutionMultiplier;
}
// [/SL:KB]
if ( (resAdjustedX != mScreen.getWidth()) || (resAdjustedY != mScreen.getHeight()) )
// [/RLVa:KB]
// if ((resX != mScreen.getWidth()) || (resY != mScreen.getHeight()))
if ((resX != mScreen.getWidth()) || (resY != mScreen.getHeight()))
{
releaseScreenBuffers();
if (!allocateScreenBuffer(resX,resY))
@ -938,6 +947,13 @@ bool LLPipeline::allocateScreenBuffer(U32 resX, U32 resY, U32 samples)
resX /= res_mod;
resY /= res_mod;
}
// [SL:KB] - Patch: Settings-RenderResolutionMultiplier | Checked: Catznip-5.4
else if (RenderResolutionMultiplier != 1.f)
{
resX *= RenderResolutionMultiplier;
resY *= RenderResolutionMultiplier;
}
// [/SL:KB]
if (RenderUIBuffer)
{
@ -1116,6 +1132,9 @@ void LLPipeline::refreshCachedSettings()
RenderDeferredSunWash = gSavedSettings.getF32("RenderDeferredSunWash");
RenderFSAASamples = gSavedSettings.getU32("RenderFSAASamples");
RenderResolutionDivisor = gSavedSettings.getU32("RenderResolutionDivisor");
// [SL:KB] - Patch: Settings-RenderResolutionMultiplier | Checked: Catznip-5.4
RenderResolutionMultiplier = gSavedSettings.getF32("RenderResolutionMultiplier");
// [/SL:KB]
RenderUIBuffer = gSavedSettings.getBOOL("RenderUIBuffer");
RenderShadowDetail = gSavedSettings.getS32("RenderShadowDetail");
RenderDeferredSSAO = gSavedSettings.getBOOL("RenderDeferredSSAO");

View File

@ -871,6 +871,9 @@ public:
static F32 RenderDeferredSunWash;
static U32 RenderFSAASamples;
static U32 RenderResolutionDivisor;
// [SL:KB] - Patch: Settings-RenderResolutionMultiplier | Checked: Catznip-5.4
static F32 RenderResolutionMultiplier;
// [/SL:KB]
static bool RenderUIBuffer;
static S32 RenderShadowDetail;
static bool RenderDeferredSSAO;