summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llrender/llimagegl.cpp12
-rw-r--r--indra/llrender/llimagegl.h1
-rw-r--r--indra/newview/llfloaterhardwaresettings.cpp24
-rw-r--r--indra/newview/llviewercontrol.cpp8
4 files changed, 21 insertions, 24 deletions
diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp
index bd81e804d6..4ae01a59ff 100644
--- a/indra/llrender/llimagegl.cpp
+++ b/indra/llrender/llimagegl.cpp
@@ -368,6 +368,18 @@ void LLImageGL::restoreGL()
}
}
+//static
+void LLImageGL::dirtyTexOptions()
+{
+ for (std::set<LLImageGL*>::iterator iter = sImageList.begin();
+ iter != sImageList.end(); iter++)
+ {
+ LLImageGL* glimage = *iter;
+ glimage->mTexOptionsDirty = true;
+ stop_glerror();
+ }
+
+}
//----------------------------------------------------------------------------
//for server side use only.
diff --git a/indra/llrender/llimagegl.h b/indra/llrender/llimagegl.h
index 87a835cdcc..6c980984c0 100644
--- a/indra/llrender/llimagegl.h
+++ b/indra/llrender/llimagegl.h
@@ -64,6 +64,7 @@ public:
// Save off / restore GL textures
static void destroyGL(BOOL save_state = TRUE);
static void restoreGL();
+ static void dirtyTexOptions();
// Sometimes called externally for textures not using LLImageGL (should go away...)
static S32 updateBoundTexMem(const S32 mem, const S32 ncomponents, S32 category) ;
diff --git a/indra/newview/llfloaterhardwaresettings.cpp b/indra/newview/llfloaterhardwaresettings.cpp
index 3cd3c74ee4..dc573e1433 100644
--- a/indra/newview/llfloaterhardwaresettings.cpp
+++ b/indra/newview/llfloaterhardwaresettings.cpp
@@ -129,30 +129,6 @@ BOOL LLFloaterHardwareSettings::postBuild()
void LLFloaterHardwareSettings::apply()
{
- // Anisotropic rendering
- BOOL old_anisotropic = LLImageGL::sGlobalUseAnisotropic;
- LLImageGL::sGlobalUseAnisotropic = getChild<LLUICtrl>("ani")->getValue();
-
- U32 fsaa = (U32) getChild<LLUICtrl>("fsaa")->getValue().asInteger();
- U32 old_fsaa = gSavedSettings.getU32("RenderFSAASamples");
-
- BOOL logged_in = (LLStartUp::getStartupState() >= STATE_STARTED);
-
- if (old_fsaa != fsaa)
- {
- gSavedSettings.setU32("RenderFSAASamples", fsaa);
- LLWindow* window = gViewerWindow->getWindow();
- LLCoordScreen size;
- window->getSize(&size);
- gViewerWindow->changeDisplaySettings(size,
- gSavedSettings.getBOOL("DisableVerticalSync"),
- logged_in);
- }
- else if (old_anisotropic != LLImageGL::sGlobalUseAnisotropic)
- {
- gViewerWindow->restartDisplay(logged_in);
- }
-
refresh();
}
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index 416553ff08..131c712241 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -177,6 +177,13 @@ static bool handleReleaseGLBufferChanged(const LLSD& newvalue)
return true;
}
+static bool handleAnisotropicChanged(const LLSD& newvalue)
+{
+ LLImageGL::sGlobalUseAnisotropic = newvalue.asBoolean();
+ LLImageGL::dirtyTexOptions();
+ return true;
+}
+
static bool handleVolumeLODChanged(const LLSD& newvalue)
{
LLVOVolume::sLODFactor = (F32) newvalue.asReal();
@@ -549,6 +556,7 @@ void settings_setup_listeners()
gSavedSettings.getControl("RenderSpecularResY")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));
gSavedSettings.getControl("RenderSpecularExponent")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));
gSavedSettings.getControl("RenderFSAASamples")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));
+ gSavedSettings.getControl("RenderAnisotropic")->getSignal()->connect(boost::bind(&handleAnisotropicChanged, _2));
gSavedSettings.getControl("RenderShadowResolutionScale")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));
gSavedSettings.getControl("RenderGlow")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));
gSavedSettings.getControl("RenderGlow")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));