diff options
| -rw-r--r-- | .hgtags | 15 | ||||
| -rw-r--r-- | indra/newview/llappviewer.cpp | 3 | ||||
| -rw-r--r-- | indra/newview/lldrawpool.h | 1 | ||||
| -rw-r--r-- | indra/newview/lldrawpoolalpha.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/lldriverparam.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llinventorybridge.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llmarketplacefunctions.cpp | 15 | ||||
| -rw-r--r-- | indra/newview/llviewerwindow.cpp | 10 | ||||
| -rw-r--r-- | indra/newview/llvoavatarself.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/llvoavatarself.h | 2 | ||||
| -rw-r--r-- | indra/newview/llvovolume.cpp | 10 | ||||
| -rw-r--r-- | indra/newview/llwearable.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_merchant_outbox.xml | 10 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/menu_viewer.xml | 7 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/sidepanel_inventory.xml | 2 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/strings.xml | 2 | 
16 files changed, 69 insertions, 20 deletions
| @@ -259,4 +259,19 @@ c6175c955a19e9b9353d242889ec1779b5762522 3.2.5-release  3d75c836d178c7c7e788f256afe195f6cab764a2 DRTVWR-111_3.2.7-beta1  3d75c836d178c7c7e788f256afe195f6cab764a2 3.2.7-beta1  89980333c99dbaf1787fe20784f1d8849e9b5d4f 3.2.8-start +16f8e2915f3f2e4d732fb3125daf229cb0fd1875 DRTVWR-114_3.2.8-beta1 +16f8e2915f3f2e4d732fb3125daf229cb0fd1875 3.2.8-beta1 +987425b1acf4752379b2e1eb20944b4b35d67a85 DRTVWR-115_3.2.8-beta2 +987425b1acf4752379b2e1eb20944b4b35d67a85 3.2.8-beta2 +51b2fd52e36aab8f670e0874e7e1472434ec4b4a DRTVWR-113_3.2.8-release +51b2fd52e36aab8f670e0874e7e1472434ec4b4a 3.2.8-release  37dd400ad721e2a89ee820ffc1e7e433c68f3ca2 3.2.9-start +e9c82fca5ae6fb8a8af29012d78fb194a29323f3 DRTVWR-117_3.2.9-beta1 +e9c82fca5ae6fb8a8af29012d78fb194a29323f3 3.2.9-beta1 +a01ef9bed28627f4ca543fbc1d70c79cc297a90f DRTVWR-118_3.2.9-beta2 +a01ef9bed28627f4ca543fbc1d70c79cc297a90f 3.2.9-beta2 +987425b1acf4752379b2e1eb20944b4b35d67a85 3.2.8-beta2 +d5f263687f43f278107363365938f0a214920a4b DRTVWR-119 +d5f263687f43f278107363365938f0a214920a4b 3.3.0-beta1 +5e8d2662f38a66eca6c591295f5880d47afc73f7 viewer-release-candidate +5e8d2662f38a66eca6c591295f5880d47afc73f7 3.3.0-release diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 7706cd789f..5a68cd531e 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -1489,6 +1489,9 @@ void LLAppViewer::flushVFSIO()  bool LLAppViewer::cleanup()  { +	//ditch LLVOAvatarSelf instance +	gAgentAvatarp = NULL; +  	// workaround for DEV-35406 crash on shutdown  	LLEventPumps::instance().reset(); diff --git a/indra/newview/lldrawpool.h b/indra/newview/lldrawpool.h index 5a2981e749..64774d06df 100644 --- a/indra/newview/lldrawpool.h +++ b/indra/newview/lldrawpool.h @@ -133,6 +133,7 @@ public:  		PASS_ALPHA,  		PASS_ALPHA_MASK,  		PASS_FULLBRIGHT_ALPHA_MASK, +		PASS_ALPHA_INVISIBLE,  		NUM_RENDER_TYPES,  	}; diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp index ddb7d3ceeb..5b62dbc560 100644 --- a/indra/newview/lldrawpoolalpha.cpp +++ b/indra/newview/lldrawpoolalpha.cpp @@ -337,6 +337,7 @@ void LLDrawPoolAlpha::render(S32 pass)  		pushBatches(LLRenderPass::PASS_ALPHA_MASK, LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0, FALSE);  		pushBatches(LLRenderPass::PASS_FULLBRIGHT_ALPHA_MASK, LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0, FALSE); +		pushBatches(LLRenderPass::PASS_ALPHA_INVISIBLE, LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0, FALSE);  		if(shaders)   		{ diff --git a/indra/newview/lldriverparam.cpp b/indra/newview/lldriverparam.cpp index 8f47d3c5e5..64eb11fc9b 100644 --- a/indra/newview/lldriverparam.cpp +++ b/indra/newview/lldriverparam.cpp @@ -139,7 +139,7 @@ void LLDriverParamInfo::toStream(std::ostream &out)  			}  			else  			{ -				llwarns << "could not get parameter " << driven.mDrivenID << " from avatar " << gAgentAvatarp << " for driver parameter " << getID() << llendl; +				llwarns << "could not get parameter " << driven.mDrivenID << " from avatar " << gAgentAvatarp.get() << " for driver parameter " << getID() << llendl;  			}  			out << std::endl;  		} diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index cebe93f042..c0065a94e6 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -73,7 +73,7 @@  #include "llwearablelist.h"  // Marketplace outbox current disabled -#define ENABLE_MERCHANT_OUTBOX_CONTEXT_MENU	0 +#define ENABLE_MERCHANT_OUTBOX_CONTEXT_MENU	1  #define ENABLE_MERCHANT_SEND_TO_MARKETPLACE_CONTEXT_MENU 0  #define BLOCK_WORN_ITEMS_IN_OUTBOX 1 diff --git a/indra/newview/llmarketplacefunctions.cpp b/indra/newview/llmarketplacefunctions.cpp index a3f0a6062c..93dd82957f 100644 --- a/indra/newview/llmarketplacefunctions.cpp +++ b/indra/newview/llmarketplacefunctions.cpp @@ -30,6 +30,7 @@  #include "llagent.h"  #include "llhttpclient.h" +#include "lltimer.h"  #include "lltrans.h"  #include "llviewercontrol.h"  #include "llviewermedia.h" @@ -115,6 +116,9 @@ namespace LLMarketplaceImport  	static U32 sImportResultStatus = 0;  	static LLSD sImportResults = LLSD::emptyMap(); +	static LLTimer slmGetTimer; +	static LLTimer slmPostTimer; +  	// Responders  	class LLImportPostResponder : public LLHTTPClient::Responder @@ -124,11 +128,15 @@ namespace LLMarketplaceImport  		void completed(U32 status, const std::string& reason, const LLSD& content)  		{ +			slmPostTimer.stop(); +  			if (gSavedSettings.getBOOL("InventoryOutboxLogging"))  			{  				llinfos << " SLM POST status: " << status << llendl;  				llinfos << " SLM POST reason: " << reason << llendl;  				llinfos << " SLM POST content: " << content.asString() << llendl; + +				llinfos << " SLM POST timer: " << slmPostTimer.getElapsedTimeF32() << llendl;  			}  			if ((status == MarketplaceErrorCodes::IMPORT_REDIRECT) || @@ -167,11 +175,15 @@ namespace LLMarketplaceImport  		void completed(U32 status, const std::string& reason, const LLSD& content)  		{ +			slmGetTimer.stop(); +  			if (gSavedSettings.getBOOL("InventoryOutboxLogging"))  			{  				llinfos << " SLM GET status: " << status << llendl;  				llinfos << " SLM GET reason: " << reason << llendl;  				llinfos << " SLM GET content: " << content.asString() << llendl; + +				llinfos << " SLM GET timer: " << slmGetTimer.getElapsedTimeF32() << llendl;  			}  			if ((status == MarketplaceErrorCodes::IMPORT_AUTHENTICATION_ERROR) || @@ -247,6 +259,7 @@ namespace LLMarketplaceImport  			llinfos << " SLM GET: " << url << llendl;  		} +		slmGetTimer.start();  		LLHTTPClient::get(url, new LLImportGetResponder(), LLViewerMedia::getHeaders());  		return true; @@ -277,6 +290,7 @@ namespace LLMarketplaceImport  			llinfos << " SLM GET: " << url << llendl;  		} +		slmGetTimer.start();  		LLHTTPClient::get(url, new LLImportGetResponder(), headers);  		return true; @@ -310,6 +324,7 @@ namespace LLMarketplaceImport  			llinfos << " SLM POST: " << url << llendl;  		} +		slmPostTimer.start();  		LLHTTPClient::post(url, LLSD(), new LLImportPostResponder(), headers);  		return true; diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 8a713ae22c..e0653fec30 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -2021,6 +2021,12 @@ void LLViewerWindow::shutdownGL()  	gSky.cleanup();  	stop_glerror(); +	llinfos << "Cleaning up pipeline" << llendl; +	gPipeline.cleanup(); +	stop_glerror(); + +	//MUST clean up pipeline before cleaning up wearables +	llinfos << "Cleaning up wearables" << llendl;  	LLWearableList::instance().cleanup() ;  	gTextureList.shutdown(); @@ -2031,10 +2037,6 @@ void LLViewerWindow::shutdownGL()  	LLWorldMapView::cleanupTextures(); -	llinfos << "Cleaning up pipeline" << llendl; -	gPipeline.cleanup(); -	stop_glerror(); -  	LLViewerTextureManager::cleanup() ;  	LLImageGL::cleanupClass() ; diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index f1df67494f..e525d6bad0 100644 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -66,10 +66,11 @@  #include <boost/lexical_cast.hpp> -LLVOAvatarSelf *gAgentAvatarp = NULL; +LLPointer<LLVOAvatarSelf> gAgentAvatarp = NULL; +  BOOL isAgentAvatarValid()  { -	return (gAgentAvatarp && +	return (gAgentAvatarp.notNull() &&  			(gAgentAvatarp->getRegion() != NULL) &&  			(!gAgentAvatarp->isDead()));  } diff --git a/indra/newview/llvoavatarself.h b/indra/newview/llvoavatarself.h index 54dbe81993..655fb3a012 100644 --- a/indra/newview/llvoavatarself.h +++ b/indra/newview/llvoavatarself.h @@ -383,7 +383,7 @@ private:  }; -extern LLVOAvatarSelf *gAgentAvatarp; +extern LLPointer<LLVOAvatarSelf> gAgentAvatarp;  BOOL isAgentAvatarValid(); diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index 7492a06784..03d4c51aff 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -4433,10 +4433,10 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)  					else  					{  						if (te->getColor().mV[3] > 0.f) -						{ +						{ //only treat as alpha in the pipeline if < 100% transparent  							drawablep->setState(LLDrawable::HAS_ALPHA); -							alpha_faces.push_back(facep);  						} +						alpha_faces.push_back(facep);  					}  				}  				else @@ -4947,7 +4947,11 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, std::  			if (is_alpha)  			{  				// can we safely treat this as an alpha mask? -				if (facep->canRenderAsMask()) +				if (facep->getFaceColor().mV[3] <= 0.f) +				{ //100% transparent, don't render unless we're highlighting transparent +					registerFace(group, facep, LLRenderPass::PASS_ALPHA_INVISIBLE); +				} +				else if (facep->canRenderAsMask())  				{  					if (te->getFullbright() || LLPipeline::sNoAlpha)  					{ diff --git a/indra/newview/llwearable.cpp b/indra/newview/llwearable.cpp index d8aa0b7d5c..0f7f63061b 100644 --- a/indra/newview/llwearable.cpp +++ b/indra/newview/llwearable.cpp @@ -221,7 +221,7 @@ void LLWearable::createVisualParams()  		param->resetDrivenParams();  		if(!param->linkDrivenParams(boost::bind(wearable_function,(LLWearable*)this, _1), false))  		{ -			if( !param->linkDrivenParams(boost::bind(avatar_function,gAgentAvatarp,_1 ), true)) +			if( !param->linkDrivenParams(boost::bind(avatar_function,gAgentAvatarp.get(),_1 ), true))  			{  				llwarns << "could not link driven params for wearable " << getName() << " id: " << param->getID() << llendl;  				continue; diff --git a/indra/newview/skins/default/xui/en/floater_merchant_outbox.xml b/indra/newview/skins/default/xui/en/floater_merchant_outbox.xml index 498a9b6ce0..6f387f4800 100644 --- a/indra/newview/skins/default/xui/en/floater_merchant_outbox.xml +++ b/indra/newview/skins/default/xui/en/floater_merchant_outbox.xml @@ -132,16 +132,16 @@      </panel>      <layout_stack name="import_progress_indicator" orientation="vertical" left="0" height="440" top="0" width="333" follows="all" visible="false">        <layout_panel /> -      <layout_panel height="45" auto_resize="false"> -        <layout_stack orientation="horizontal" left="0" height="45" top="0" width="333" follows="all"> +      <layout_panel height="24" auto_resize="false"> +        <layout_stack orientation="horizontal" left="0" height="24" top="0" width="333" follows="all">            <layout_panel width="0" /> -          <layout_panel width="45" auto_resize="false"> +          <layout_panel width="24" auto_resize="false">              <loading_indicator -                height="45" +                height="24"                  layout="topleft"                  left="0"                  top="0" -                width="45" /> +                width="24" />            </layout_panel>            <layout_panel width="0" />          </layout_stack> diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index cd8550b00d..1d11abcf73 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -153,6 +153,13 @@           function="BuyCurrency" />        </menu_item_call>        <menu_item_call +         label="Merchant Outbox..." +         name="MerchantOutbox"> +        <menu_item_call.on_click +         function="Floater.ToggleOrBringToFront" +         parameter="outbox" /> +      </menu_item_call> +      <menu_item_call             label="Account dashboard..."             name="Manage My Account">          <menu_item_call.on_click diff --git a/indra/newview/skins/default/xui/en/sidepanel_inventory.xml b/indra/newview/skins/default/xui/en/sidepanel_inventory.xml index fcba937bdb..29aa6d1039 100644 --- a/indra/newview/skins/default/xui/en/sidepanel_inventory.xml +++ b/indra/newview/skins/default/xui/en/sidepanel_inventory.xml @@ -112,7 +112,7 @@                          bg_opaque_color="InventoryBackgroundColor"                          background_visible="true"                          background_opaque="true" -                        tool_tip="Drag and drop items to your inventory to manage and use them" +                        tool_tip="Drag and drop items to your inventory to use them"                          >                          <text  							name="inbox_inventory_placeholder" diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 3351ffe00f..4bc72be49b 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -2037,7 +2037,7 @@ Returns a string with the requested data about the region  	<string name="PlacesNoMatchingItems">Didn't find what you're looking for? Try [secondlife:///app/search/places/[SEARCH_TERM] Search].</string>  	<string name="FavoritesNoMatchingItems">Drag a landmark here to add it to your favorites.</string>  	<string name="InventoryNoTexture">You do not have a copy of this texture in your inventory</string> -	<string name="InventoryInboxNoItems">Certain items you receive, such as premium gifts, will appear here.  You may then drag them into your inventory.</string> +	<string name="InventoryInboxNoItems">Your Marketplace purchases will appear here. You may then drag them into your inventory to use them.</string>  	<string name="MarketplaceURL">https://marketplace.[MARKETPLACE_DOMAIN_NAME]/</string>  	<string name="MarketplaceURL_CreateStore">http://community.secondlife.com/t5/English-Knowledge-Base/Selling-in-the-Marketplace/ta-p/700193#Section_.4</string>  	<string name="MarketplaceURL_Dashboard">https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/dashboard</string> | 
