From 637bcedf029bfbe4d31668834476bf972a97dd60 Mon Sep 17 00:00:00 2001
From: Paul Guslisty <pguslisty@productengine.com>
Date: Thu, 7 Oct 2010 17:12:49 +0300
Subject: FIXED STORM-302 Parcel lists scroll bar overlaps with other
 components if panel is undocked

- Added missing column to the xml of the scroll list

- Adjusted columns width to show all columns
---
 .../newview/skins/default/xui/en/panel_group_land_money.xml  | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/skins/default/xui/en/panel_group_land_money.xml b/indra/newview/skins/default/xui/en/panel_group_land_money.xml
index 76f7484c68..64539f2134 100644
--- a/indra/newview/skins/default/xui/en/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_land_money.xml
@@ -65,19 +65,23 @@
         <scroll_list.columns
          label="Parcel"
          name="name"
-         width="78" />
+         width="47" />
         <scroll_list.columns
          label="Region"
          name="location"
-         width="78" />
+         width="47" />
         <scroll_list.columns
          label="Type"
          name="type"
-         width="70" />
+         width="47" />
         <scroll_list.columns
          label="Area"
          name="area"
-         width="50" />
+         width="47" />
+        <scroll_list.columns
+         label="Hidden"
+         name="hidden"
+         width="47" />
     </scroll_list>
     <text
      type="string"
-- 
cgit v1.2.3


From c3b9ed68cfa988ddbbcfae36be04d4a8e69c1983 Mon Sep 17 00:00:00 2001
From: Seth ProductEngine <slitovchuk@productengine.com>
Date: Thu, 7 Oct 2010 18:54:30 +0300
Subject: STORM-296 FIXED Item types that can be dropped to Places SP->My
 Landmarks  restricted to landmarks and folders only.

---
 indra/newview/llplacesinventorypanel.cpp | 18 ++++++++++++++++++
 indra/newview/llplacesinventorypanel.h   |  6 ++++++
 2 files changed, 24 insertions(+)

(limited to 'indra')

diff --git a/indra/newview/llplacesinventorypanel.cpp b/indra/newview/llplacesinventorypanel.cpp
index 29e262199e..408270a1a0 100644
--- a/indra/newview/llplacesinventorypanel.cpp
+++ b/indra/newview/llplacesinventorypanel.cpp
@@ -205,6 +205,24 @@ BOOL LLPlacesFolderView::handleRightMouseDown(S32 x, S32 y, MASK mask)
 	return LLFolderView::handleRightMouseDown(x, y, mask);
 }
 
+BOOL LLPlacesFolderView::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
+										   EDragAndDropType cargo_type,
+										   void* cargo_data,
+										   EAcceptance* accept,
+										   std::string& tooltip_msg)
+{
+	// Don't accept anything except landmarks and folders to be dropped
+	// in places folder view. See STORM-296.
+	if (cargo_type != DAD_LANDMARK && cargo_type != DAD_CATEGORY)
+	{
+		*accept = ACCEPT_NO;
+		return FALSE;
+	}
+
+	return LLFolderView::handleDragAndDrop(x, y, mask, drop, cargo_type, cargo_data,
+										   accept, tooltip_msg);
+}
+
 void LLPlacesFolderView::setupMenuHandle(LLInventoryType::EType asset_type, LLHandle<LLView> menu_handle)
 {
 	mMenuHandlesByInventoryType[asset_type] = menu_handle;
diff --git a/indra/newview/llplacesinventorypanel.h b/indra/newview/llplacesinventorypanel.h
index 6641871a0b..a44776d18b 100644
--- a/indra/newview/llplacesinventorypanel.h
+++ b/indra/newview/llplacesinventorypanel.h
@@ -70,6 +70,12 @@ public:
 	 */
 	/*virtual*/ BOOL handleRightMouseDown( S32 x, S32 y, MASK mask );
 
+	/*virtual*/ BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
+									   EDragAndDropType cargo_type,
+									   void* cargo_data,
+									   EAcceptance* accept,
+									   std::string& tooltip_msg);
+
 	void setupMenuHandle(LLInventoryType::EType asset_type, LLHandle<LLView> menu_handle);
 
 	void setParentLandmarksPanel(LLLandmarksPanel* panel)
-- 
cgit v1.2.3


From a913e25fcc47c893c116e3a2a42449559bbcb8fe Mon Sep 17 00:00:00 2001
From: Seth ProductEngine <slitovchuk@productengine.com>
Date: Sat, 9 Oct 2010 00:24:57 +0300
Subject: STORM-289 FIXED browser navigation bar layout to make it resize
 properly after minimize/restore. When floater media browser is minimized its
 button bars are shrunk to zero height and their height is not restored upon
 unminimizing because they have auto_resize disabled. Setting min_height for
 the button bars makes them restored with this height upon uminimizing the
 floater.

---
 indra/newview/skins/default/xui/en/floater_media_browser.xml | 3 +++
 1 file changed, 3 insertions(+)

(limited to 'indra')

diff --git a/indra/newview/skins/default/xui/en/floater_media_browser.xml b/indra/newview/skins/default/xui/en/floater_media_browser.xml
index c02d607586..1b21b97092 100644
--- a/indra/newview/skins/default/xui/en/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/en/floater_media_browser.xml
@@ -33,6 +33,7 @@
          height="20"
          layout="topleft"
          left="0"
+         min_height="20"
          name="nav_controls"
          top="400"
          user_resize="false"
@@ -106,6 +107,7 @@
          height="20"
          layout="topleft"
          left_delta="0"
+         min_height="20"         
          name="time_controls"
          top_delta="0"
          user_resize="false"
@@ -163,6 +165,7 @@
          height="20"
          layout="topleft"
          left_delta="0"
+         min_height="20"         
          name="parcel_owner_controls"
          top_delta="0"
          user_resize="false"
-- 
cgit v1.2.3


From 33bfe43b0cbae946f5c0929f1dacc16e2e9d88f6 Mon Sep 17 00:00:00 2001
From: Andrew Productengine <adyukov@productengine.com>
Date: Mon, 11 Oct 2010 19:32:42 +0300
Subject: STORM-301 FIXED Fixed behaviour of camera on undocked 'My Appearance'
 tab minimizing.

- Added signal to LLFloater that is emitted on minimize.

- Set minimize callback for appearance tab floater in LLSideTrayTab::undock. Method from LLSidePanelAppearance that handles camera issues
is called on minimization of floater.
---
 indra/llui/llfloater.cpp                | 16 +++++++++++++++-
 indra/llui/llfloater.h                  |  4 ++++
 indra/newview/llsidepanelappearance.cpp |  5 +++++
 indra/newview/llsidepanelappearance.h   |  1 +
 indra/newview/llsidetray.cpp            | 20 ++++++++++++++++++++
 5 files changed, 45 insertions(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index eb5d7a6b6a..d23b876543 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -231,7 +231,8 @@ LLFloater::LLFloater(const LLSD& key, const LLFloater::Params& p)
 	mTornOff(false),
 	mHasBeenDraggedWhileMinimized(FALSE),
 	mPreviousMinimizedBottom(0),
-	mPreviousMinimizedLeft(0)
+	mPreviousMinimizedLeft(0),
+	mMinimizeSignal(NULL)
 //	mNotificationContext(NULL)
 {
 	mHandle.bind(this);
@@ -493,6 +494,8 @@ LLFloater::~LLFloater()
 	setVisible(false); // We're not visible if we're destroyed
 	storeVisibilityControl();
 	storeDockStateControl();
+
+	delete mMinimizeSignal;
 }
 
 void LLFloater::storeRectControl()
@@ -997,6 +1000,11 @@ void LLFloater::setMinimized(BOOL minimize)
 
 	if (minimize == mMinimized) return;
 
+	if(mMinimizeSignal)
+	{
+		(*mMinimizeSignal)(this, LLSD(minimize));
+	}
+
 	if (minimize)
 	{
 		// minimized flag should be turned on before release focus
@@ -2810,6 +2818,12 @@ void LLFloater::initFromParams(const LLFloater::Params& p)
 	}
 }
 
+boost::signals2::connection LLFloater::setMinimizeCallback( const commit_signal_t::slot_type& cb ) 
+{ 
+	if (!mMinimizeSignal) mMinimizeSignal = new commit_signal_t();
+	return mMinimizeSignal->connect(cb); 
+}
+
 LLFastTimer::DeclareTimer POST_BUILD("Floater Post Build");
 
 bool LLFloater::initFloaterXML(LLXMLNodePtr node, LLView *parent, const std::string& filename, LLXMLNodePtr output_node)
diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h
index 5ecf515cf9..d26f41b4c7 100644
--- a/indra/llui/llfloater.h
+++ b/indra/llui/llfloater.h
@@ -142,6 +142,8 @@ public:
 	// Don't export top/left for rect, only height/width
 	static void setupParamsForExport(Params& p, LLView* parent);
 
+	boost::signals2::connection setMinimizeCallback( const commit_signal_t::slot_type& cb );
+
 	void initFromParams(const LLFloater::Params& p);
 	bool initFloaterXML(LLXMLNodePtr node, LLView *parent, const std::string& filename, LLXMLNodePtr output_node = NULL);
 
@@ -347,6 +349,8 @@ public:
 	// Public so external views or floaters can watch for this floater closing
 	commit_signal_t mCloseSignal;		
 
+	commit_signal_t* mMinimizeSignal;
+
 protected:
 	std::string		mRectControl;
 	std::string		mVisibilityControl;
diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp
index a3c6a7b6f1..1999f14828 100644
--- a/indra/newview/llsidepanelappearance.cpp
+++ b/indra/newview/llsidepanelappearance.cpp
@@ -182,6 +182,11 @@ void LLSidepanelAppearance::onOpen(const LLSD& key)
 }
 
 void LLSidepanelAppearance::onVisibilityChange(const LLSD &new_visibility)
+{
+	updateToVisibility(new_visibility);
+}
+
+void LLSidepanelAppearance::updateToVisibility(const LLSD &new_visibility)
 {
 	if (new_visibility.asBoolean())
 	{
diff --git a/indra/newview/llsidepanelappearance.h b/indra/newview/llsidepanelappearance.h
index f28cdfa49a..2a83dfbc9d 100644
--- a/indra/newview/llsidepanelappearance.h
+++ b/indra/newview/llsidepanelappearance.h
@@ -63,6 +63,7 @@ public:
 	void setWearablesLoading(bool val);
 	void showDefaultSubpart();
 	void updateScrollingPanelList();
+	void updateToVisibility( const LLSD& new_visibility );
 
 private:
 	void onFilterEdit(const std::string& search_string);
diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp
index 426ad26f1b..b7470c03bc 100644
--- a/indra/newview/llsidetray.cpp
+++ b/indra/newview/llsidetray.cpp
@@ -49,6 +49,8 @@
 #include "llwindow.h"//for SetCursor
 #include "lltransientfloatermgr.h"
 
+#include "llsidepanelappearance.h"
+
 //#include "llscrollcontainer.h"
 
 using namespace std;
@@ -290,6 +292,13 @@ void LLSideTrayTab::dock()
 	}
 }
 
+static void on_minimize(LLSidepanelAppearance* panel, LLSD minimized)
+{
+	if (!panel) return;
+	bool visible = !minimized.asBoolean();
+	panel->updateToVisibility(LLSD(visible));	
+}
+
 void LLSideTrayTab::undock(LLFloater* floater_tab)
 {
 	LLSideTray* side_tray = getSideTray();
@@ -351,6 +360,17 @@ void LLSideTrayTab::undock(LLFloater* floater_tab)
 	// Set FOLLOWS_ALL flag for the tab to follow floater dimensions upon resizing.
 	setFollowsAll();
 
+	// Camera view may need to be changed for appearance panel(STORM-301) on minimize of floater,
+	// so setting callback here. 
+	if (getName() == "sidebar_appearance")
+	{
+		LLSidepanelAppearance* panel_appearance = dynamic_cast<LLSidepanelAppearance*>(getPanel());
+		if(panel_appearance)
+		{
+			floater_tab->setMinimizeCallback(boost::bind(&on_minimize, panel_appearance, _2));
+		}
+	}
+
 	if (!side_tray->getCollapsed())
 	{
 		side_tray->collapseSideBar();
-- 
cgit v1.2.3


From c47a5dfe003e4b6ae8987ab3169f14694c97efc3 Mon Sep 17 00:00:00 2001
From: Vadim ProductEngine <vsavchuk@productengine.com>
Date: Mon, 11 Oct 2010 19:58:16 +0300
Subject: STORM-298 FIXED Don't scroll the My Landmarks panel down when
 favorites get changed.

I'm not sure what the root cause of the problem was (maybe invalid initial selection in folder view),
but what seems to be definitely wrong is passing "scroll to rect" event
from *invisible* folder views up to accordion control, which is what I've fixed.
---
 indra/llui/llaccordionctrltab.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

(limited to 'indra')

diff --git a/indra/llui/llaccordionctrltab.cpp b/indra/llui/llaccordionctrltab.cpp
index b7da5f4a1b..32112c6c51 100644
--- a/indra/llui/llaccordionctrltab.cpp
+++ b/indra/llui/llaccordionctrltab.cpp
@@ -735,6 +735,12 @@ S32	LLAccordionCtrlTab::notifyParent(const LLSD& info)
 
 			return 1;
 		}
+
+		if (!getDisplayChildren())
+		{
+			// Don't pass scrolling event further if our contents are invisible (STORM-298).
+			return 1;
+		}
 	}
 
 	return LLUICtrl::notifyParent(info);
-- 
cgit v1.2.3


From 3a4e38efa6547a989b19f3fb1195901571884f87 Mon Sep 17 00:00:00 2001
From: Loren Shih <seraph@lindenlab.com>
Date: Mon, 11 Oct 2010 17:37:59 -0400
Subject: SH-280 FIXED Anti-aliasing broken SH-287 FIXED Anti-aliasing setting
 does not take effect until relog

Added logic to control RenderUseFBO setting based on graphics quality.  RenderUseFBO controls whether anti-aliasing is enabled.
---
 indra/newview/featuretable.txt              | 11 +++++++----
 indra/newview/featuretable_linux.txt        | 10 ++++++----
 indra/newview/featuretable_mac.txt          |  6 ++++++
 indra/newview/featuretable_solaris.txt      |  6 ++++++
 indra/newview/featuretable_xp.txt           |  9 ++++++---
 indra/newview/llfloaterhardwaresettings.cpp |  8 +++++++-
 indra/newview/pipeline.cpp                  |  5 +++++
 indra/newview/pipeline.h                    |  1 +
 8 files changed, 44 insertions(+), 12 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt
index e3fc9d4949..f8adc15edc 100644
--- a/indra/newview/featuretable.txt
+++ b/indra/newview/featuretable.txt
@@ -61,6 +61,7 @@ RenderDeferredSSAO			1	0
 RenderShadowDetail			1	0
 WatchdogDisabled				1	1
 RenderUseStreamVBO			1	1
+RenderUseFBO				1	1
 
 //
 // Low Graphics Settings
@@ -89,7 +90,7 @@ SkyUseClassicClouds			1	0
 RenderDeferred				1	0
 RenderDeferredSSAO			1	0
 RenderShadowDetail			1	0
-
+RenderUseFBO				1	0
 
 //
 // Mid Graphics Settings
@@ -116,7 +117,7 @@ WLSkyDetail					1	48
 RenderDeferred				1	0
 RenderDeferredSSAO			1	0
 RenderShadowDetail			1	0
-
+RenderUseFBO				1	0
 
 //
 // High Graphics Settings (purty)
@@ -143,7 +144,7 @@ WLSkyDetail					1	48
 RenderDeferred				1	0
 RenderDeferredSSAO			1	0
 RenderShadowDetail			1	0
-
+RenderUseFBO				1	1
 
 //
 // Ultra graphics (REALLY PURTY!)
@@ -170,6 +171,7 @@ WLSkyDetail					1	128
 RenderDeferred				1	0
 RenderDeferredSSAO			1	0
 RenderShadowDetail			1	0
+RenderUseFBO				1	1
 
 //
 // Class Unknown Hardware (unknown)
@@ -244,7 +246,8 @@ WindLightUseAtmosShaders	0	0
 RenderDeferred				0	0
 RenderDeferredSSAO			0	0
 RenderShadowDetail			0	0
-
+RenderUseFBO				1	0
+		
 //
 // CPU based feature masks
 //
diff --git a/indra/newview/featuretable_linux.txt b/indra/newview/featuretable_linux.txt
index 1bad7e5260..4a99280b06 100644
--- a/indra/newview/featuretable_linux.txt
+++ b/indra/newview/featuretable_linux.txt
@@ -60,6 +60,7 @@ RenderDeferred				1	0
 RenderDeferredSSAO			1	0
 RenderShadowDetail			1	0
 WatchdogDisabled				1	1
+RenderUseFBO				1	1
 
 //
 // Low Graphics Settings
@@ -88,7 +89,7 @@ SkyUseClassicClouds			1	0
 RenderDeferred				1	0
 RenderDeferredSSAO			1	0
 RenderShadowDetail			1	0
-
+RenderUseFBO				1	0
 
 //
 // Mid Graphics Settings
@@ -115,7 +116,7 @@ WLSkyDetail					1	48
 RenderDeferred				1	0
 RenderDeferredSSAO			1	0
 RenderShadowDetail			1	0
-
+RenderUseFBO				1	0
 
 //
 // High Graphics Settings (purty)
@@ -142,7 +143,7 @@ WLSkyDetail					1	48
 RenderDeferred				1	0
 RenderDeferredSSAO			1	0
 RenderShadowDetail			1	0
-
+RenderUseFBO				1	1
 
 //
 // Ultra graphics (REALLY PURTY!)
@@ -169,7 +170,7 @@ WLSkyDetail					1	128
 RenderDeferred				1	0
 RenderDeferredSSAO			1	0
 RenderShadowDetail			1	0
-
+RenderUseFBO				1	1
 
 //
 // Class Unknown Hardware (unknown)
@@ -244,6 +245,7 @@ WindLightUseAtmosShaders	0	0
 RenderDeferred				0	0
 RenderDeferredSSAO			0	0
 RenderShadowDetail			0	0
+RenderUseFBO				1	0
 
 
 //
diff --git a/indra/newview/featuretable_mac.txt b/indra/newview/featuretable_mac.txt
index 4fba47e3df..67cace7268 100644
--- a/indra/newview/featuretable_mac.txt
+++ b/indra/newview/featuretable_mac.txt
@@ -60,6 +60,7 @@ Disregard128DefaultDrawDistance	1	1
 Disregard96DefaultDrawDistance	1	1
 SkyUseClassicClouds			1	1
 WatchdogDisabled				1	1
+RenderUseFBO				1	1
 
 //
 // Low Graphics Settings
@@ -87,6 +88,7 @@ VertexShaderEnable			1	0
 WindLightUseAtmosShaders	1	0
 WLSkyDetail					1	48
 SkyUseClassicClouds			1	0
+RenderUseFBO				1	0
 
 //
 // Mid Graphics Settings
@@ -112,6 +114,7 @@ RenderWaterReflections		1	0
 VertexShaderEnable			1	1
 WindLightUseAtmosShaders	1	0
 WLSkyDetail					1	48
+RenderUseFBO				1	0
 
 //
 // High Graphics Settings (purty)
@@ -137,6 +140,7 @@ RenderWaterReflections		1	0
 VertexShaderEnable			1	1
 WindLightUseAtmosShaders	1	1
 WLSkyDetail					1	48
+RenderUseFBO				1	1
 
 //
 // Ultra graphics (REALLY PURTY!)
@@ -162,6 +166,7 @@ RenderWaterReflections		1	1
 VertexShaderEnable			1	1
 WindLightUseAtmosShaders	1	1
 WLSkyDetail					1	128
+RenderUseFBO				1	1
 
 //
 // Class Unknown Hardware (unknown)
@@ -227,6 +232,7 @@ RenderUseImpostors			0	0
 RenderVBOEnable				1	0
 RenderWaterReflections		0	0
 WindLightUseAtmosShaders	0	0
+RenderUseFBO				1	0
 
 //
 // CPU based feature masks
diff --git a/indra/newview/featuretable_solaris.txt b/indra/newview/featuretable_solaris.txt
index 0ae463332c..7df75687f2 100644
--- a/indra/newview/featuretable_solaris.txt
+++ b/indra/newview/featuretable_solaris.txt
@@ -38,6 +38,7 @@ RenderTextureMemoryMultiple		1	1.0
 UseOcclusion		1       1
 RenderCubeMap		1       1
 WatchdogDisabled				1	1
+RenderUseFBO				1	1
 
 
 //
@@ -52,6 +53,7 @@ RenderAvatarMode	1	0
 RenderLighting		1	0
 RenderObjectBump	1	0
 RenderRippleWater	1	0
+RenderUseFBO		1	0
 
 //
 // Class 1 Hardware
@@ -65,6 +67,7 @@ RenderAvatarMode	1	0
 RenderLighting		1	0
 RenderObjectBump	1	0
 RenderRippleWater	1	0
+RenderUseFBO		1	0
 
 //
 // Class 2 Hardware (make it purty)
@@ -76,6 +79,7 @@ RenderAvatarMode	1	1
 RenderLighting		1	1
 RenderObjectBump	1	1
 RenderRippleWater	1	1
+RenderUseFBO		1	1
 
 //
 // Class 3 Hardware (make it purty)
@@ -87,6 +91,7 @@ RenderAvatarMode	1	1
 RenderLighting		1	1
 RenderObjectBump	1	1
 RenderRippleWater	1	1
+RenderUseFBO		1	1
 
 //
 // No Pixel Shaders available
@@ -114,6 +119,7 @@ RenderParticleCount	1	1024
 RenderTerrainDetail 1	0
 RenderCubeMap		0	0
 UseOcclusion		0	0
+RenderUseFBO		1	0
 
 
 list low
diff --git a/indra/newview/featuretable_xp.txt b/indra/newview/featuretable_xp.txt
index 9b901022c4..1e83bc73a5 100644
--- a/indra/newview/featuretable_xp.txt
+++ b/indra/newview/featuretable_xp.txt
@@ -59,6 +59,7 @@ SkyUseClassicClouds			1	1
 RenderDeferred				1	0
 RenderDeferredSSAO			1	0
 RenderShadowDetail			1	0
+RenderUseFBO				1	1
 WatchdogDisabled				1	1
 RenderUseStreamVBO			1	1
 
@@ -89,7 +90,7 @@ SkyUseClassicClouds			1	0
 RenderDeferred				1	0
 RenderDeferredSSAO			1	0
 RenderShadowDetail			1	0
-
+RenderUseFBO				1	0
 
 //
 // Mid Graphics Settings
@@ -116,7 +117,7 @@ WLSkyDetail					1	48
 RenderDeferred				1	0
 RenderDeferredSSAO			1	0
 RenderShadowDetail			1	0
-
+RenderUseFBO				1	0
 
 //
 // High Graphics Settings (purty)
@@ -143,7 +144,7 @@ WLSkyDetail					1	48
 RenderDeferred				1	0
 RenderDeferredSSAO			1	0
 RenderShadowDetail			1	0
-
+RenderUseFBO				1	1
 
 //
 // Ultra graphics (REALLY PURTY!)
@@ -170,6 +171,7 @@ WLSkyDetail					1	128
 RenderDeferred				1	0
 RenderDeferredSSAO			1	0
 RenderShadowDetail			1	0
+RenderUseFBO				1	1
 
 //
 // Class Unknown Hardware (unknown)
@@ -244,6 +246,7 @@ WindLightUseAtmosShaders	0	0
 RenderDeferred				0	0
 RenderDeferredSSAO			0	0
 RenderShadowDetail			0	0
+RenderUseFBO				1	0
 
 //
 // CPU based feature masks
diff --git a/indra/newview/llfloaterhardwaresettings.cpp b/indra/newview/llfloaterhardwaresettings.cpp
index 2985626bd7..0e89ca966a 100644
--- a/indra/newview/llfloaterhardwaresettings.cpp
+++ b/indra/newview/llfloaterhardwaresettings.cpp
@@ -102,7 +102,13 @@ void LLFloaterHardwareSettings::refreshEnabledState()
 	getChildView("gamma")->setEnabled(!gPipeline.canUseWindLightShaders());
 	getChildView("(brightness, lower is brighter)")->setEnabled(!gPipeline.canUseWindLightShaders());
 	getChildView("fog")->setEnabled(!gPipeline.canUseWindLightShaders());
-
+	getChildView("fsaa")->setEnabled(gPipeline.canUseAntiAliasing());
+	/* Enable to reset fsaa value to disabled when feature is not available.
+	if (!gPipeline.canUseAntiAliasing())
+	{
+		getChild<LLUICtrl>("fsaa")->setValue((LLSD::Integer) 0);
+	}
+	*/
 }
 
 //============================================================================
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index e69b0a2996..cb24720e7b 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -870,6 +870,11 @@ BOOL LLPipeline::canUseWindLightShadersOnObjects() const
 		&& LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_OBJECT) > 0);
 }
 
+BOOL LLPipeline::canUseAntiAliasing() const
+{
+	return (gSavedSettings.getBOOL("RenderUseFBO"));
+}
+
 void LLPipeline::unloadShaders()
 {
 	LLMemType mt_us(LLMemType::MTYPE_PIPELINE_UNLOAD_SHADERS);
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h
index fe0683d29f..b80765dac6 100644
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -188,6 +188,7 @@ public:
 	BOOL		canUseVertexShaders();
 	BOOL		canUseWindLightShaders() const;
 	BOOL		canUseWindLightShadersOnObjects() const;
+	BOOL		canUseAntiAliasing() const;
 
 	// phases
 	void resetFrameStats();
-- 
cgit v1.2.3


From affefe2361ee73eee60bca42e3edb41c65ffa95d Mon Sep 17 00:00:00 2001
From: Merov Linden <merov@lindenlab.com>
Date: Mon, 11 Oct 2010 14:42:00 -0700
Subject: STORM-365 : Quick fix for attachments being visible in mouselook

---
 indra/newview/pipeline.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index e69b0a2996..c758ce991f 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -9049,7 +9049,10 @@ LLCullResult::sg_list_t::iterator LLPipeline::endAlphaGroups()
 
 BOOL LLPipeline::hasRenderType(const U32 type) const
 {
-	return mRenderTypeEnabled[type];
+    // STORM-365 : LLViewerJointAttachment::setAttachmentVisibility() is setting type to 0 to actually mean "do not render"
+    // We then need to test that value here and return FALSE to prevent attachment to render (in mouselook for instance)
+    // TODO: reintroduce RENDER_TYPE_NONE in LLRenderTypeMask and initialize its mRenderTypeEnabled[RENDER_TYPE_NONE] to FALSE explicitely
+	return (type == 0 ? FALSE : mRenderTypeEnabled[type]);
 }
 
 void LLPipeline::setRenderTypeMask(U32 type, ...)
-- 
cgit v1.2.3