#671 Setup the viewer to respect the MirrorsEnabled simulator feature.

meow-7.2.2
Jonathan "Geenz" Goodman 2024-02-08 11:39:35 -08:00
parent 192e77344f
commit 97d2b21621
6 changed files with 25 additions and 14 deletions

View File

@ -231,14 +231,6 @@ BOOL LLShaderMgr::attachShaderFeatures(LLGLSLShader * shader)
return FALSE;
}
}
if (features->hasHeroProbes)
{
if (!shader->attachFragmentObject("deferred/heroProbesUtil.glsl"))
{
return FALSE;
}
}
if (features->hasShadows)
{

View File

@ -72,6 +72,18 @@ void LLHeroProbeManager::update()
return;
}
// This should be moved elsewhere.
LLSD features;
gAgent.getRegion()->getSimulatorFeatures(features);
if (mHasMirrors != features.has("MirrorsEnabled"))
{
mHasMirrors = features.has("MirrorsEnabled");
LLViewerShaderMgr::instance()->setShaders();
}
if (!mHasMirrors)
return;
LL_PROFILE_ZONE_SCOPED_CATEGORY_DISPLAY;
llassert(!gCubeSnapshot); // assert a snapshot is not in progress
if (LLAppViewer::instance()->logoutRequestSent())

View File

@ -72,8 +72,8 @@ public:
void unregisterViewerObject(LLVOVolume* drawablep);
bool isMirrorPass() const { return mRenderingMirror; }
bool hasMirrors() const { return mHasMirrors; }
LLPlane currentMirrorClip() const { return mCurrentClipPlane; }
LLVector3 mMirrorPosition;
LLVector3 mMirrorNormal;
@ -135,6 +135,7 @@ private:
bool mReset = false;
bool mRenderingMirror = false;
bool mHasMirrors = false;
std::set<LLVOVolume*> mHeroVOList;
LLVOVolume* mNearestHero;

View File

@ -392,9 +392,11 @@ void LLPanelVolume::getState( )
bool probe_enabled = is_probe && editable && single_volume;
getChildView("Probe Update Type")->setVisible(LLPipeline::RenderMirrors);
getChildView("Probe Update Label")->setVisible(LLPipeline::RenderMirrors);
getChildView("Probe Dynamic")->setVisible(!LLPipeline::RenderMirrors);
bool mirrors_enabled = LLPipeline::RenderMirrors && gPipeline.mHeroProbeManager.hasMirrors();
getChildView("Probe Update Type")->setVisible(mirrors_enabled);
getChildView("Probe Update Label")->setVisible(mirrors_enabled);
getChildView("Probe Dynamic")->setVisible(!mirrors_enabled);
getChildView("Probe Dynamic")->setEnabled(probe_enabled);
getChildView("Probe Update Type")->setEnabled(probe_enabled);

View File

@ -390,7 +390,7 @@ void LLViewerShaderMgr::setShaders()
mShaderList.clear();
LLShaderMgr::sMirrorsEnabled = LLPipeline::RenderMirrors;
LLShaderMgr::sMirrorsEnabled = LLPipeline::RenderMirrors && gPipeline.mHeroProbeManager.hasMirrors();
if (!gGLManager.mHasRequirements)
{

View File

@ -1062,7 +1062,11 @@ void LLPipeline::refreshCachedSettings()
RenderScreenSpaceReflectionAdaptiveStepMultiplier = gSavedSettings.getF32("RenderScreenSpaceReflectionAdaptiveStepMultiplier");
RenderScreenSpaceReflectionGlossySamples = gSavedSettings.getS32("RenderScreenSpaceReflectionGlossySamples");
RenderBufferVisualization = gSavedSettings.getS32("RenderBufferVisualization");
RenderMirrors = gSavedSettings.getBOOL("RenderMirrors");
if (gSavedSettings.getBOOL("RenderMirrors") != (BOOL)RenderMirrors)
{
RenderMirrors = gSavedSettings.getBOOL("RenderMirrors");
LLViewerShaderMgr::instance()->setShaders();
}
sReflectionProbesEnabled = LLFeatureManager::getInstance()->isFeatureAvailable("RenderReflectionsEnabled") && gSavedSettings.getBOOL("RenderReflectionsEnabled");
RenderSpotLight = nullptr;