diff options
| author | Steven Bennetts <steve@lindenlab.com> | 2008-05-09 20:57:23 +0000 | 
|---|---|---|
| committer | Steven Bennetts <steve@lindenlab.com> | 2008-05-09 20:57:23 +0000 | 
| commit | 783e05058c5d74984ab554fdc60aa06839b9b5c9 (patch) | |
| tree | b40ca6762c7546b65db3966c04ef545a23643f21 /indra/newview | |
| parent | dbe0176552e070baef9a693252cb47dda97d1fb4 (diff) | |
QAR-537 Viewer 1.20 RC 6
merge -r 86279:86925 Branch_1-20-Viewer -> release
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/app_settings/settings.xml | 2 | ||||
| -rw-r--r-- | indra/newview/llappviewer.cpp | 10 | ||||
| -rw-r--r-- | indra/newview/lldrawpoolterrain.cpp | 9 | ||||
| -rw-r--r-- | indra/newview/llfloatergroups.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llfloaterproperties.cpp | 33 | ||||
| -rw-r--r-- | indra/newview/llfloaterproperties.h | 4 | ||||
| -rw-r--r-- | indra/newview/llfloatersnapshot.cpp | 28 | ||||
| -rw-r--r-- | indra/newview/llhudobject.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/llviewerjoystick.cpp | 30 | ||||
| -rw-r--r-- | indra/newview/llviewermenu.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/llviewermenufile.cpp | 34 | ||||
| -rw-r--r-- | indra/newview/llviewermessage.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llviewerobjectlist.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/llviewerparcelmedia.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llviewerparceloverlay.cpp | 43 | ||||
| -rw-r--r-- | indra/newview/llvoavatar.cpp | 9 | ||||
| -rw-r--r-- | indra/newview/pipeline.cpp | 7 | 
17 files changed, 164 insertions, 66 deletions
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 773e71a369..2d391c4416 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -2840,7 +2840,7 @@          <key>Comment</key>              <string>Whether or not a joystick has been detected and initiailized.</string>          <key>Persist</key> -            <integer>0</integer> +            <integer>1</integer>          <key>Type</key>              <string>String</string>          <key>Value</key> diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 1ad37f239c..b8adfe5477 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -875,15 +875,7 @@ bool LLAppViewer::init()  	gSimFrames = (F32)gFrameCount;  	LLViewerJoystick::getInstance()->init(false); -	if (LLViewerJoystick::getInstance()->isLikeSpaceNavigator()) -	{ -		if (gSavedSettings.getString("JoystickInitialized") != "SpaceNavigator") -		{ -			LLFloaterJoystick::setSNDefaults(); -			gSavedSettings.setString("JoystickInitialized", "SpaceNavigator"); -		} -	} -	 +  	return true;  } diff --git a/indra/newview/lldrawpoolterrain.cpp b/indra/newview/lldrawpoolterrain.cpp index 4747043c78..c60ddbc517 100644 --- a/indra/newview/lldrawpoolterrain.cpp +++ b/indra/newview/lldrawpoolterrain.cpp @@ -357,7 +357,7 @@ void LLDrawPoolTerrain::renderFullShader()  void LLDrawPoolTerrain::renderFull4TU()  { -		glEnableClientState(GL_VERTEX_ARRAY); +	glEnableClientState(GL_VERTEX_ARRAY);  	glEnableClientState(GL_NORMAL_ARRAY);  	// Hack! Get the region that this draw pool is rendering from! @@ -388,8 +388,7 @@ void LLDrawPoolTerrain::renderFull4TU()  	glActiveTextureARB(GL_TEXTURE0_ARB);  	LLViewerImage::bindTexture(detail_texture0p,0);  	glClientActiveTextureARB(GL_TEXTURE0_ARB); - -	glDisableClientState(GL_TEXTURE_COORD_ARRAY); +	  	glEnable(GL_TEXTURE_GEN_S);  	glEnable(GL_TEXTURE_GEN_T);  	glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); @@ -467,6 +466,8 @@ void LLDrawPoolTerrain::renderFull4TU()  	glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB,		GL_SRC_COLOR);  	glActiveTextureARB(GL_TEXTURE0_ARB); +	glClientActiveTextureARB(GL_TEXTURE0_ARB); +  	// GL_BLEND disabled by default  	drawLoop(); @@ -576,11 +577,13 @@ void LLDrawPoolTerrain::renderFull4TU()  	glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB,	GL_SRC_ALPHA);  	glActiveTextureARB(GL_TEXTURE0_ARB); +	glClientActiveTextureARB(GL_TEXTURE0_ARB);  	{  		LLGLEnable blend(GL_BLEND);  		drawLoop();  	} +	LLVertexBuffer::unbind();  	// Disable multitexture  	LLImageGL::unbindTexture(3, GL_TEXTURE_2D);  	glActiveTextureARB(GL_TEXTURE3_ARB); diff --git a/indra/newview/llfloatergroups.cpp b/indra/newview/llfloatergroups.cpp index 26ed03951c..d67ae2de2d 100644 --- a/indra/newview/llfloatergroups.cpp +++ b/indra/newview/llfloatergroups.cpp @@ -466,7 +466,7 @@ void init_group_list(LLScrollListCtrl* ctrl, const LLUUID& highlight_id, U64 pow  		LLSD element;  		element["id"] = LLUUID::null;  		element["columns"][0]["column"] = "name"; -		element["columns"][0]["value"] = "none"; +		element["columns"][0]["value"] = "none"; // *TODO: Translate  		element["columns"][0]["font"] = "SANSSERIF";  		element["columns"][0]["font-style"] = style; diff --git a/indra/newview/llfloaterproperties.cpp b/indra/newview/llfloaterproperties.cpp index bea12fe017..74a880e010 100644 --- a/indra/newview/llfloaterproperties.cpp +++ b/indra/newview/llfloaterproperties.cpp @@ -65,11 +65,21 @@  // helper class to watch the inventory.   //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -class LLPropertiesObserver : public LLInventoryObserver, public LLSingleton<LLPropertiesObserver> +// Ugh. This can't be a singleton because it needs to remove itself +//  from the inventory observer list when destroyed, which could +//  happen after gInventory has already been destroyed if a singleton. +// Instead, do our own ref counting and create / destroy it as needed +class LLPropertiesObserver : public LLInventoryObserver  {  public: -	LLPropertiesObserver() {} -	virtual ~LLPropertiesObserver() {} +	LLPropertiesObserver() +	{ +		gInventory.addObserver(this); +	} +	virtual ~LLPropertiesObserver() +	{ +		gInventory.removeObserver(this); +	}  	virtual void changed(U32 mask);  }; @@ -88,7 +98,10 @@ void LLPropertiesObserver::changed(U32 mask)  /// Class LLFloaterProperties  ///---------------------------------------------------------------------------- +// static  LLFloaterProperties::instance_map LLFloaterProperties::sInstances; +LLPropertiesObserver* LLFloaterProperties::sPropertiesObserver = NULL; +S32 LLFloaterProperties::sPropertiesObserverCount = 0;  // static  LLFloaterProperties* LLFloaterProperties::find(const LLUUID& item_id, @@ -145,12 +158,12 @@ LLFloaterProperties::LLFloaterProperties(const std::string& name, const LLRect&  {  	LLUICtrlFactory::getInstance()->buildFloater(this,"floater_inventory_item_properties.xml"); -	// hack to make sure these floaters are observing the inventory. -	if(!gInventory.containsObserver(LLPropertiesObserver::getInstance())) +	if (!sPropertiesObserver)  	{ -		// Note: this is where gPropertiesObserver used to be constructed. -		gInventory.addObserver(LLPropertiesObserver::getInstance()); +		sPropertiesObserver = new LLPropertiesObserver;  	} +	sPropertiesObserverCount++; +	  	// add the object to the static structure  	LLUUID key = mItemID ^ mObjectID;  	sInstances.insert(instance_map::value_type(key, this)); @@ -193,6 +206,12 @@ LLFloaterProperties::~LLFloaterProperties()  	{  		sInstances.erase(it);  	} +	sPropertiesObserverCount--; +	if (!sPropertiesObserverCount) +	{ +		delete sPropertiesObserver; +		sPropertiesObserver = NULL; +	}  }  void LLFloaterProperties::refresh() diff --git a/indra/newview/llfloaterproperties.h b/indra/newview/llfloaterproperties.h index 7b1cb5d77c..8f96bf7078 100644 --- a/indra/newview/llfloaterproperties.h +++ b/indra/newview/llfloaterproperties.h @@ -47,6 +47,8 @@ class LLLineEditor;  class LLRadioGroup;  class LLTextBox; +class LLPropertiesObserver; +  class LLFloaterProperties : public LLFloater  {  public: @@ -94,6 +96,8 @@ protected:  	typedef std::map<LLUUID, LLFloaterProperties*, lluuid_less> instance_map;  	static instance_map sInstances; +	static LLPropertiesObserver* sPropertiesObserver; +	static S32 sPropertiesObserverCount;  };  class LLMultiProperties : public LLMultiFloater diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp index 7950b127f0..b2301808a1 100644 --- a/indra/newview/llfloatersnapshot.cpp +++ b/indra/newview/llfloatersnapshot.cpp @@ -1694,13 +1694,13 @@ void LLFloaterSnapshot::Impl::resetSnapshotSizeOnUI(LLFloaterSnapshot *view, S32  	LLSpinCtrl *sctrl = view->getChild<LLSpinCtrl>("snapshot_width") ;  	if(sctrl)  	{ -		sctrl->setValue(width) ; +		sctrl->forceSetValue(width) ;  	}  	sctrl = view->getChild<LLSpinCtrl>("snapshot_height") ;  	if(sctrl)  	{ -		sctrl->setValue(height) ; +		sctrl->forceSetValue(height) ;  	}  	gSavedSettings.setS32("LastSnapshotWidth", width); @@ -1727,8 +1727,30 @@ void LLFloaterSnapshot::Impl::onCommitCustomResolution(LLUICtrl *ctrl, void* dat  			if (w != curw || h != curh)  			{ +				BOOL update_ = FALSE ; +				//if to upload a snapshot, process spinner input in a special way. +				if(LLSnapshotLivePreview::SNAPSHOT_TEXTURE == gSavedSettings.getS32("LastSnapshotType")) +				{ +					S32 spinner_increment = (S32)((LLSpinCtrl*)ctrl)->getIncrement() ; +					S32 dw = w - curw ; +					S32 dh = h - curh ; +					dw = (dw == spinner_increment) ? 1 : ((dw == -spinner_increment) ? -1 : 0) ; +					dh = (dh == spinner_increment) ? 1 : ((dh == -spinner_increment) ? -1 : 0) ; + +					if(dw) +					{ +						w = (dw > 0) ? curw << dw : curw >> -dw ; +						update_ = TRUE ; +					} +					if(dh) +					{ +						h = (dh > 0) ? curh << dh : curh >> -dh ; +						update_ = TRUE ; +					} +				} +  				previewp->setMaxImageSize((S32)((LLSpinCtrl *)ctrl)->getMaxValue()) ; -				if(checkImageSize(previewp, w, h, w != curw, previewp->getMaxImageSize())) +				if(checkImageSize(previewp, w, h, w != curw, previewp->getMaxImageSize()) || update_)  				{  					resetSnapshotSizeOnUI(view, w, h) ;  				} diff --git a/indra/newview/llhudobject.cpp b/indra/newview/llhudobject.cpp index 07b0379f7a..136974df2e 100644 --- a/indra/newview/llhudobject.cpp +++ b/indra/newview/llhudobject.cpp @@ -282,7 +282,6 @@ void LLHUDObject::renderAll()  		}  	} -	// cleanup any leftover client state, etc  	LLVertexBuffer::unbind();  } diff --git a/indra/newview/llviewerjoystick.cpp b/indra/newview/llviewerjoystick.cpp index c109ca10a0..1717153810 100644 --- a/indra/newview/llviewerjoystick.cpp +++ b/indra/newview/llviewerjoystick.cpp @@ -228,8 +228,38 @@ void LLViewerJoystick::init(bool autoenable)  			mDriverState = JDS_UNINITIALIZED;  		}  	} + +	// Autoenable the joystick for recognized devices if nothing was connected previously +	if (!autoenable) +	{ +		autoenable = gSavedSettings.getString("JoystickInitialized").empty() ? true : false; +	}  	updateEnabled(autoenable); +	if (mDriverState == JDS_INITIALIZED) +	{ +		// A Joystick device is plugged in +		if (isLikeSpaceNavigator()) +		{ +			// It's a space navigator, we have defaults for it. +			if (gSavedSettings.getString("JoystickInitialized") != "SpaceNavigator") +			{ +				// Only set the defaults if we haven't already (in case they were overridden) +				setSNDefaults(); +				gSavedSettings.setString("JoystickInitialized", "SpaceNavigator"); +			} +		} +		else +		{ +			// It's not a Space Navigator +			gSavedSettings.setString("JoystickInitialized", "UnknownDevice"); +		} +	} +	else +	{ +		// No device connected, don't change any settings +	} +	  	llinfos << "ndof: mDriverState=" << mDriverState << "; mNdofDev="   			<< mNdofDev << "; libinit=" << libinit << llendl;  #endif diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index e32564faa6..c4cd7a3a3d 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -1064,7 +1064,7 @@ void init_client_menu(LLMenuGL* menu)  	menu->appendSeparator();  -	menu->append(new LLMenuItemCallGL("Compress Image...",  +	menu->append(new LLMenuItemCallGL("Compress Images...",   		&handle_compress_image, NULL, NULL));  	menu->append(new LLMenuItemCheckGL("Limit Select Distance",  @@ -1507,7 +1507,8 @@ void init_debug_avatar_menu(LLMenuGL* menu)  	menu->append(new LLMenuItemToggleGL("Disable LOD", &LLViewerJoint::sDisableLOD));  	menu->append(new LLMenuItemToggleGL("Debug Character Vis", &LLVOAvatar::sDebugInvisible));  	//menu->append(new LLMenuItemToggleGL("Show Attachment Points", &LLVOAvatar::sShowAttachmentPoints)); -	menu->append(new LLMenuItemToggleGL("Show Collision Plane", &LLVOAvatar::sShowFootPlane)); +	//diabling collision plane due to DEV-14477 -brad +	//menu->append(new LLMenuItemToggleGL("Show Collision Plane", &LLVOAvatar::sShowFootPlane));  	menu->append(new LLMenuItemToggleGL("Show Collision Skeleton", &LLVOAvatar::sShowCollisionVolumes));  	menu->append(new LLMenuItemToggleGL( "Display Agent Target", &LLAgent::sDebugDisplayTarget));  	menu->append(new LLMenuItemToggleGL( "Debug Rotation", &gDebugAvatarRotation)); diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp index 864c1dd570..9dc3208adb 100644 --- a/indra/newview/llviewermenufile.cpp +++ b/indra/newview/llviewermenufile.cpp @@ -436,25 +436,31 @@ void handle_upload(void* data)  void handle_compress_image(void*)  {  	LLFilePicker& picker = LLFilePicker::instance(); -	if (picker.getOpenFile(LLFilePicker::FFLOAD_IMAGE)) +	if (picker.getMultipleOpenFiles(LLFilePicker::FFLOAD_IMAGE))  	{ -		std::string infile(picker.getFirstFile()); -		std::string outfile = infile + ".j2c"; +		const char* input_file = picker.getFirstFile(); +		while (input_file) +		{ +			std::string infile(input_file); +			std::string outfile = infile + ".j2c"; -		llinfos << "Input:  " << infile << llendl; -		llinfos << "Output: " << outfile << llendl; +			llinfos << "Input:  " << infile << llendl; +			llinfos << "Output: " << outfile << llendl; -		BOOL success; +			BOOL success; -		success = LLViewerImageList::createUploadFile(infile, outfile, IMG_CODEC_TGA); +			success = LLViewerImageList::createUploadFile(infile, outfile, IMG_CODEC_TGA); -		if (success) -		{ -			llinfos << "Compression complete" << llendl; -		} -		else -		{ -			llinfos << "Compression failed: " << LLImageBase::getLastError() << llendl; +			if (success) +			{ +				llinfos << "Compression complete" << llendl; +			} +			else +			{ +				llinfos << "Compression failed: " << LLImageBase::getLastError() << llendl; +			} + +			input_file = picker.getNextFile();  		}  	}  } diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 577e76b957..3b2b82e1f9 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -1823,7 +1823,6 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)  		}  		break;  	case IM_BUSY_AUTO_RESPONSE: -		// fix for JIRA issue VWR-20 submitted 13-JAN-2007 - Paul Churchill  		if (is_muted)  		{  			lldebugs << "Ignoring busy response from " << from_id << llendl; @@ -1831,8 +1830,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)  		}  		else  		{ -			// original code resumes -			gIMMgr->addMessage(session_id, from_id, name, message); +			// TODO: after LLTrans hits release, get "busy response" into translatable file +			snprintf(buffer, sizeof(buffer), "%s (%s): %s", name, "busy response", (message+message_offset)); /* Flawfinder: ignore */ +			gIMMgr->addMessage(session_id, from_id, name, buffer);  		}  		break; diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp index 8398c3c9d7..b902599e88 100644 --- a/indra/newview/llviewerobjectlist.cpp +++ b/indra/newview/llviewerobjectlist.cpp @@ -1212,6 +1212,7 @@ U32 LLViewerObjectList::renderObjectsForSelect(LLCamera &camera, BOOL pick_parce  	// render pickable ui elements, like names, etc.  	LLHUDObject::renderAllForSelect();  	gGL.flush(); +	LLVertexBuffer::unbind();  	gRenderForSelect = FALSE; diff --git a/indra/newview/llviewerparcelmedia.cpp b/indra/newview/llviewerparcelmedia.cpp index 2b475ce9f9..0259d4896c 100644 --- a/indra/newview/llviewerparcelmedia.cpp +++ b/indra/newview/llviewerparcelmedia.cpp @@ -103,6 +103,12 @@ void LLViewerParcelMedia::update(LLParcel* parcel)  			// we're in a parcel  			bool new_parcel = false;  			S32 parcelid = parcel->getLocalID(); +			 +			if(!gAgent.getRegion()) +			{ +				llerrs << "gAgent's region is NULL." << llendl ;				 +			} +  			LLUUID regionid = gAgent.getRegion()->getRegionID();  			if (parcelid != sMediaParcelLocalID || regionid != sMediaRegionID)  			{ diff --git a/indra/newview/llviewerparceloverlay.cpp b/indra/newview/llviewerparceloverlay.cpp index d190d2f12c..342d8c7222 100644 --- a/indra/newview/llviewerparceloverlay.cpp +++ b/indra/newview/llviewerparceloverlay.cpp @@ -48,6 +48,8 @@  #include "llagent.h"  #include "llviewercamera.h"  #include "llviewerimagelist.h" +#include "llselectmgr.h" +#include "llfloatertools.h"  #include "llglheaders.h"  const U8  OVERLAY_IMG_COMPONENTS = 4; @@ -839,31 +841,34 @@ S32 LLViewerParcelOverlay::renderPropertyLines	()  		gGL.end(); -		LLGLDepthTest depth(GL_TRUE, GL_FALSE, GL_GREATER); -		 -		colorp  = mColorArray  + BYTES_PER_COLOR   * i; -		vertexp = mVertexArray + FLOATS_PER_VERTEX * i; +		if (LLSelectMgr::sRenderHiddenSelections && gFloaterTools && gFloaterTools->getVisible()) +		{ +			LLGLDepthTest depth(GL_TRUE, GL_FALSE, GL_GREATER); +			 +			colorp  = mColorArray  + BYTES_PER_COLOR   * i; +			vertexp = mVertexArray + FLOATS_PER_VERTEX * i; -		gGL.begin(LLVertexBuffer::TRIANGLE_STRIP); +			gGL.begin(LLVertexBuffer::TRIANGLE_STRIP); -		for (j = 0; j < vertex_per_edge; j++) -		{ -			U8 color[4]; -			color[0] = colorp[0]; -			color[1] = colorp[1]; -			color[2] = colorp[2]; -			color[3] = colorp[3]/4; +			for (j = 0; j < vertex_per_edge; j++) +			{ +				U8 color[4]; +				color[0] = colorp[0]; +				color[1] = colorp[1]; +				color[2] = colorp[2]; +				color[3] = colorp[3]/4; -			gGL.color4ubv(color); -			gGL.vertex3fv(vertexp); +				gGL.color4ubv(color); +				gGL.vertex3fv(vertexp); -			colorp  += BYTES_PER_COLOR; -			vertexp += FLOATS_PER_VERTEX;			 -		} +				colorp  += BYTES_PER_COLOR; +				vertexp += FLOATS_PER_VERTEX;			 +			} -		drawn += vertex_per_edge; +			drawn += vertex_per_edge; -		gGL.end(); +			gGL.end(); +		}  	} diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 292fa83918..d7dfd8ac4a 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -4048,7 +4048,10 @@ U32 LLVOAvatar::renderSkinned(EAvatarRenderPass pass)  	}  	// render collision normal -	if (sShowFootPlane && mDrawable.notNull()) +	// *NOTE: this is disabled (there is no UI for enabling sShowFootPlane) due +	// to DEV-14477.  the code is left here to aid in tracking down the cause +	// of the crash in the future. -brad +	if (!gRenderForSelect && sShowFootPlane && mDrawable.notNull())  	{  		LLVector3 slaved_pos = mDrawable->getPositionAgent();  		LLVector3 foot_plane_normal(mFootPlane.mV[VX], mFootPlane.mV[VY], mFootPlane.mV[VZ]); @@ -4076,7 +4079,9 @@ U32 LLVOAvatar::renderSkinned(EAvatarRenderPass pass)  			gGL.vertex3f(collide_point.mV[VX], collide_point.mV[VY], collide_point.mV[VZ]);  			gGL.vertex3f(collide_point.mV[VX] + mFootPlane.mV[VX], collide_point.mV[VY] + mFootPlane.mV[VY], collide_point.mV[VZ] + mFootPlane.mV[VZ]); -		}gGL.end(); +		} +		gGL.end(); +		gGL.flush();  	}  	//--------------------------------------------------------------------  	// render all geomety attached to the skeleton diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 4972ce33ea..18b99d8b74 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -1643,6 +1643,8 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)  	LLFastTimer ftm(LLFastTimer::FTM_STATESORT);  	LLMemType mt(LLMemType::MTYPE_PIPELINE); +	//LLVertexBuffer::unbind(); +  	grabReferences(result);  	{ @@ -2466,6 +2468,8 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)  		}  	} +	LLVertexBuffer::unbind(); +  	LLGLState::checkStates();  	LLGLState::checkTextureChannels();  	LLGLState::checkClientArrays(); @@ -4759,7 +4763,6 @@ void LLPipeline::renderBloom(BOOL for_snapshot)  		LLGLDisable blend(GL_BLEND); -  		//tex unit 0  		glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB);  		glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE); @@ -4806,6 +4809,8 @@ void LLPipeline::renderBloom(BOOL for_snapshot)  	glMatrixMode(GL_MODELVIEW);  	glPopMatrix(); +	LLVertexBuffer::unbind(); +  	LLGLState::checkStates();  	LLGLState::checkTextureChannels();  | 
