diff options
| author | Dave Parks <davep@lindenlab.com> | 2010-06-10 00:45:48 -0500 | 
|---|---|---|
| committer | Dave Parks <davep@lindenlab.com> | 2010-06-10 00:45:48 -0500 | 
| commit | f9b13d8f8510b1f7f02fcf92685471461b79858e (patch) | |
| tree | 72e3469605fb33aedc211649778c22ada2719d5c /indra/newview | |
| parent | c2da9f5d2cc86af0af34199c53e872fbff22637b (diff) | |
Add "LL_MESH_ENABLED" preprocessor flag for toggling mesh code.  Couple of merge fixes.
Diffstat (limited to 'indra/newview')
25 files changed, 180 insertions, 41 deletions
| diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 79b58bcd7c..df9393c316 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -4908,7 +4908,7 @@      <key>Type</key>      <string>Boolean</string>      <key>Value</key> -    <real>1</real> +    <real>0</real>    </map>    <key>MigrateCacheDirectory</key>      <map> @@ -6818,7 +6818,7 @@      <key>Type</key>      <string>F32</string>      <key>Value</key> -    <real>0.0</real> +    <real>-0.001</real>    </map>    <key>RenderSpotShadowOffset</key>    <map> diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 512b1dde7f..6978cdf672 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -1302,8 +1302,10 @@ bool LLAppViewer::cleanup()  	llinfos << "Cleaning Up" << llendflush; +#if LL_MESH_ENABLED  	// shut down mesh streamer  	gMeshRepo.shutdown(); +#endif  	// Must clean up texture references before viewer window is destroyed.  	LLHUDManager::getInstance()->updateEffects(); @@ -1728,8 +1730,10 @@ bool LLAppViewer::initThreads()  		mFastTimerLogThread->start();  	} +#if LL_MESH_ENABLED  	// Mesh streaming and caching  	gMeshRepo.init(); +#endif  	LLFilePickerThread::initClass(); diff --git a/indra/newview/llassetuploadresponders.cpp b/indra/newview/llassetuploadresponders.cpp index c48dcdb061..afb76735ec 100644 --- a/indra/newview/llassetuploadresponders.cpp +++ b/indra/newview/llassetuploadresponders.cpp @@ -305,6 +305,7 @@ void LLAssetUploadResponder::uploadComplete(const LLSD& content)  {  } +#if LL_MESH_ENABLED  LLNewAgentInventoryResponder::LLNewAgentInventoryResponder(  	const LLSD& post_data,  	const LLUUID& vfile_id, @@ -426,6 +427,7 @@ void LLNewAgentInventoryResponder::uploadComplete(const LLSD& content)  	LLImportColladaAssetCache::getInstance()->assetUploaded(mVFileID, content["new_asset"], TRUE);  } +#endif  LLSendTexLayerResponder::LLSendTexLayerResponder(const LLSD& post_data,  												 const LLUUID& vfile_id, @@ -675,6 +677,7 @@ void LLUpdateTaskInventoryResponder::uploadComplete(const LLSD& content)  } +#if LL_MESH_ENABLED  /////////////////////////////////////////////////////  // LLNewAgentInventoryVariablePriceResponder::Impl //  ///////////////////////////////////////////////////// @@ -1142,3 +1145,5 @@ void LLNewAgentInventoryVariablePriceResponder::showConfirmationDialog(  				boost::intrusive_ptr<LLNewAgentInventoryVariablePriceResponder>(this)));  	}  } +#endif + diff --git a/indra/newview/llassetuploadresponders.h b/indra/newview/llassetuploadresponders.h index af3b3daf46..9abaccfde0 100644 --- a/indra/newview/llassetuploadresponders.h +++ b/indra/newview/llassetuploadresponders.h @@ -61,7 +61,7 @@ protected:  	std::string mFileName;  }; - +#if LL_MESH_ENABLED  // TODO*: Remove this once deprecated  class LLNewAgentInventoryResponder : public LLAssetUploadResponder  { @@ -116,6 +116,7 @@ private:  	class Impl;  	Impl* mImpl;  }; +#endif  struct LLBakedUploadData;  class LLSendTexLayerResponder : public LLAssetUploadResponder diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp index 9268cb1d47..63ca17d62d 100644 --- a/indra/newview/lldrawpoolavatar.cpp +++ b/indra/newview/lldrawpoolavatar.cpp @@ -103,6 +103,7 @@ S32 normal_channel = -1;  S32 specular_channel = -1;  S32 cube_channel = -1; +#if LL_MESH_ENABLED  static const U32 rigged_data_mask[] = {  	LLDrawPoolAvatar::RIGGED_SIMPLE_MASK,  	LLDrawPoolAvatar::RIGGED_FULLBRIGHT_MASK, @@ -114,6 +115,7 @@ static const U32 rigged_data_mask[] = {  	LLDrawPoolAvatar::RIGGED_DEFERRED_BUMP_MASK,						   	LLDrawPoolAvatar::RIGGED_DEFERRED_SIMPLE_MASK,  }; +#endif  static LLFastTimer::DeclareTimer FTM_SHADOW_AVATAR("Avatar Shadow"); @@ -194,12 +196,14 @@ void LLDrawPoolAvatar::beginDeferredPass(S32 pass)  	case 2:  		beginDeferredSkinned();  		break; +#if LL_MESH_ENABLED  	case 3:  		beginDeferredRiggedSimple();  		break;  	case 4:  		beginDeferredRiggedBump();  		break; +#endif  	}  } @@ -226,12 +230,14 @@ void LLDrawPoolAvatar::endDeferredPass(S32 pass)  	case 2:  		endDeferredSkinned();  		break; +#if LL_MESH_ENABLED  	case 3:  		endDeferredRiggedSimple();  		break;  	case 4:  		endDeferredRiggedBump();  		break; +#endif  	}  } @@ -242,7 +248,11 @@ void LLDrawPoolAvatar::renderDeferred(S32 pass)  S32 LLDrawPoolAvatar::getNumPostDeferredPasses()  { +#if LL_MESH_ENABLED  	return 6; +#else +	return 1; +#endif  }  void LLDrawPoolAvatar::beginPostDeferredPass(S32 pass) @@ -252,6 +262,7 @@ void LLDrawPoolAvatar::beginPostDeferredPass(S32 pass)  	case 0:  		beginPostDeferredAlpha();  		break; +#if LL_MESH_ENABLED  	case 1:  		beginRiggedFullbright();  		break; @@ -267,6 +278,7 @@ void LLDrawPoolAvatar::beginPostDeferredPass(S32 pass)  	case 5:  		beginRiggedGlow();  		break; +#endif  	}  } @@ -284,6 +296,7 @@ void LLDrawPoolAvatar::beginPostDeferredAlpha()  	enable_vertex_weighting(sVertexProgram->mAttribute[LLViewerShaderMgr::AVATAR_WEIGHT]);  } +#if LL_MESH_ENABLED  void LLDrawPoolAvatar::beginDeferredRiggedAlpha()  {  	sVertexProgram = &gDeferredSkinnedAlphaProgram; @@ -301,6 +314,7 @@ void LLDrawPoolAvatar::endDeferredRiggedAlpha()  	LLVertexBuffer::sWeight4Loc = -1;  	sVertexProgram = NULL;  } +#endif  void LLDrawPoolAvatar::endPostDeferredPass(S32 pass)  { @@ -309,6 +323,7 @@ void LLDrawPoolAvatar::endPostDeferredPass(S32 pass)  	case 0:  		endPostDeferredAlpha();  		break; +#if LL_MESH_ENABLED  	case 1:  		endRiggedFullbright();  		break; @@ -324,6 +339,7 @@ void LLDrawPoolAvatar::endPostDeferredPass(S32 pass)  	case 5:  		endRiggedGlow();  		break; +#endif  	}  } @@ -357,7 +373,11 @@ void LLDrawPoolAvatar::renderPostDeferred(S32 pass)  S32 LLDrawPoolAvatar::getNumShadowPasses()  { +#if LL_MESH_ENABLED  	return 2; +#else +	return 1; +#endif  }  void LLDrawPoolAvatar::beginShadowPass(S32 pass) @@ -448,6 +468,7 @@ void LLDrawPoolAvatar::renderShadow(S32 pass)  		avatarp->renderSkinned(AVATAR_RENDER_PASS_SINGLE);  	} +#if LL_MESH_ENABLED  	else  	{  		renderRigged(avatarp, RIGGED_SIMPLE); @@ -457,10 +478,12 @@ void LLDrawPoolAvatar::renderShadow(S32 pass)  		renderRigged(avatarp, RIGGED_SHINY);  		renderRigged(avatarp, RIGGED_FULLBRIGHT_ALPHA);  	} +#endif  }  S32 LLDrawPoolAvatar::getNumPasses()  { +#if LL_MESH_ENABLED  	if (LLPipeline::sImpostorRender)  	{  		return 8; @@ -473,8 +496,19 @@ S32 LLDrawPoolAvatar::getNumPasses()  	{  		return 3;  	} +#else +	if (LLPipeline::sImpostorRender) +	{ +		return 1; +	} +	else  +	{ +		return 3; +	} +#endif  } +  S32 LLDrawPoolAvatar::getNumDeferredPasses()  {  	if (LLPipeline::sImpostorRender) @@ -522,6 +556,7 @@ void LLDrawPoolAvatar::beginRenderPass(S32 pass)  	case 2:  		beginSkinned();  		break; +#if LL_MESH_ENABLED  	case 3:  		beginRiggedSimple();  		break; @@ -543,6 +578,7 @@ void LLDrawPoolAvatar::beginRenderPass(S32 pass)  	case 9:  		beginRiggedGlow();  		break; +#endif  	}  } @@ -566,6 +602,7 @@ void LLDrawPoolAvatar::endRenderPass(S32 pass)  	case 2:  		endSkinned();  		break; +#if LL_MESH_ENABLED  	case 3:  		endRiggedSimple();  		break; @@ -587,6 +624,7 @@ void LLDrawPoolAvatar::endRenderPass(S32 pass)  	case 9:  		endRiggedGlow();  		break; +#endif  	}  } @@ -772,6 +810,7 @@ void LLDrawPoolAvatar::endSkinned()  	gGL.getTexUnit(0)->activate();  } +#if LL_MESH_ENABLED  void LLDrawPoolAvatar::beginRiggedSimple()  {  	sVertexProgram = &gSkinnedObjectSimpleProgram; @@ -924,6 +963,7 @@ void LLDrawPoolAvatar::endDeferredRiggedBump()  	sDiffuseChannel = 0;  	sVertexProgram = NULL;  } +#endif  void LLDrawPoolAvatar::beginDeferredSkinned()  { @@ -1069,6 +1109,7 @@ void LLDrawPoolAvatar::renderAvatars(LLVOAvatar* single_avatar, S32 pass)  		return;  	} +#if LL_MESH_ENABLED  	if (pass == 3)  	{  		if (is_deferred_render) @@ -1150,7 +1191,7 @@ void LLDrawPoolAvatar::renderAvatars(LLVOAvatar* single_avatar, S32 pass)  		gGL.setSceneBlendType(LLRender::BT_ALPHA);  		return;  	} - +#endif  	if (sShaderLevel > 0)  	{ @@ -1188,6 +1229,7 @@ void LLDrawPoolAvatar::renderAvatars(LLVOAvatar* single_avatar, S32 pass)  	}  } +#if LL_MESH_ENABLED  void LLDrawPoolAvatar::updateRiggedFaceVertexBuffer(LLFace* face, const LLMeshSkinInfo* skin, LLVolume* volume, const LLVolumeFace& vol_face)  {  	U32 data_mask = 0; @@ -1377,7 +1419,7 @@ void LLDrawPoolAvatar::renderRiggedGlow(LLVOAvatar* avatar)  {  	renderRigged(avatar, RIGGED_GLOW, true);  } - +#endif @@ -1479,6 +1521,7 @@ LLColor3 LLDrawPoolAvatar::getDebugColor() const  	return LLColor3(0.f, 1.f, 0.f);  } +#if LL_MESH_ENABLED  void LLDrawPoolAvatar::addRiggedFace(LLFace* facep, U32 type)  {  	if (facep->mRiggedIndex.empty()) @@ -1533,6 +1576,7 @@ void LLDrawPoolAvatar::removeRiggedFace(LLFace* facep)  		}  	}  } +#endif  LLVertexBufferAvatar::LLVertexBufferAvatar()  : LLVertexBuffer(sDataMask,  diff --git a/indra/newview/lldrawpoolavatar.h b/indra/newview/lldrawpoolavatar.h index 4a5b009412..46ffc42f04 100644 --- a/indra/newview/lldrawpoolavatar.h +++ b/indra/newview/lldrawpoolavatar.h @@ -96,6 +96,23 @@ public:  	void beginRigid();  	void beginImpostor();  	void beginSkinned(); +	 +	void endRigid(); +	void endImpostor(); +	void endSkinned(); + +	void beginDeferredImpostor(); +	void beginDeferredRigid(); +	void beginDeferredSkinned(); +	 +	void endDeferredImpostor(); +	void endDeferredRigid(); +	void endDeferredSkinned(); +	 +	void beginPostDeferredAlpha(); +	void endPostDeferredAlpha(); + +#if LL_MESH_ENABLED  	void beginRiggedSimple();  	void beginRiggedFullbright();  	void beginRiggedFullbrightShiny(); @@ -103,12 +120,8 @@ public:  	void beginRiggedAlpha();  	void beginRiggedFullbrightAlpha();  	void beginRiggedGlow(); -	void beginPostDeferredAlpha();  	void beginDeferredRiggedAlpha(); -	void endRigid(); -	void endImpostor(); -	void endSkinned();  	void endRiggedSimple();  	void endRiggedFullbright();  	void endRiggedFullbrightShiny(); @@ -116,18 +129,11 @@ public:  	void endRiggedAlpha();  	void endRiggedFullbrightAlpha();  	void endRiggedGlow(); -	void endPostDeferredAlpha();  	void endDeferredRiggedAlpha(); -	void beginDeferredImpostor(); -	void beginDeferredRigid(); -	void beginDeferredSkinned();  	void beginDeferredRiggedSimple();  	void beginDeferredRiggedBump(); -	void endDeferredImpostor(); -	void endDeferredRigid(); -	void endDeferredSkinned();  	void endDeferredRiggedSimple();  	void endDeferredRiggedBump(); @@ -147,11 +153,6 @@ public:  	void renderDeferredRiggedSimple(LLVOAvatar* avatar);  	void renderDeferredRiggedBump(LLVOAvatar* avatar); -	/*virtual*/ LLViewerTexture *getDebugTexture(); -	/*virtual*/ LLColor3 getDebugColor() const; // For AGP debug display - -	void renderAvatars(LLVOAvatar *single_avatar, S32 pass = -1); // renders only one avatar if single_avatar is not null. -  	typedef enum  	{  		RIGGED_SIMPLE = 0, @@ -202,6 +203,13 @@ public:  	void removeRiggedFace(LLFace* facep);   	std::vector<LLFace*> mRiggedFace[NUM_RIGGED_PASSES]; +#endif + +	/*virtual*/ LLViewerTexture *getDebugTexture(); +	/*virtual*/ LLColor3 getDebugColor() const; // For AGP debug display + +	void renderAvatars(LLVOAvatar *single_avatar, S32 pass = -1); // renders only one avatar if single_avatar is not null. +  	static BOOL sSkipOpaque;  	static BOOL sSkipTransparent; diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp index e4f9e28c77..c48106863e 100644 --- a/indra/newview/llface.cpp +++ b/indra/newview/llface.cpp @@ -224,11 +224,13 @@ void LLFace::destroy()  	{  		LLFastTimer t(FTM_DESTROY_DRAWPOOL); +#if LL_MESH_ENABLED  		if (this->isState(LLFace::RIGGED) && mDrawPoolp->getType() == LLDrawPool::POOL_AVATAR)  		{  			((LLDrawPoolAvatar*) mDrawPoolp)->removeRiggedFace(this);  		}  		else +#endif  		{  			mDrawPoolp->removeFace(this);  		} diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 78789eb9ce..3999a8ee88 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -917,6 +917,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type,  			// Only should happen for broken links.  			new_listener = new LLLinkItemBridge(inventory, root, uuid);  			break; +#if LL_MESH_ENABLED  	    case LLAssetType::AT_MESH:  			if(!(inv_type == LLInventoryType::IT_MESH))  			{ @@ -924,6 +925,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type,  			}  			new_listener = new LLMeshBridge(inventory, root, uuid);  			break; +#endif  		default:  			llinfos << "Unhandled asset type (llassetstorage.h): " @@ -2765,7 +2767,9 @@ BOOL LLFolderBridge::dragOrDrop(MASK mask, BOOL drop,  		case DAD_ANIMATION:  		case DAD_GESTURE:  		case DAD_LINK: +#if LL_MESH_ENABLED  		case DAD_MESH: +#endif  			accept = dragItemIntoFolder((LLInventoryItem*)cargo_data,  										drop);  			break; @@ -3635,7 +3639,9 @@ BOOL LLCallingCardBridge::dragOrDrop(MASK mask, BOOL drop,  			case DAD_BODYPART:  			case DAD_ANIMATION:  			case DAD_GESTURE: -		case DAD_MESH: +#if LL_MESH_ENABLED +			case DAD_MESH: +#endif  			{  				LLInventoryItem* inv_item = (LLInventoryItem*)cargo_data;  				const LLPermissions& perm = inv_item->getPermissions(); @@ -4843,6 +4849,7 @@ void LLLinkItemBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  	hide_context_entries(menu, items, disabled_items);  } +#if LL_MESH_ENABLED  // +=================================================+  // |        LLMeshBridge                             |  // +=================================================+ @@ -4899,6 +4906,7 @@ void LLMeshBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  	hide_context_entries(menu, items, disabled_items);  } +#endif  // +=================================================+  // |        LLLinkBridge                             | diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h index d637fc6e36..8de7d63173 100644 --- a/indra/newview/llinventorybridge.h +++ b/indra/newview/llinventorybridge.h @@ -527,7 +527,7 @@ protected:  }; - +#if LL_MESH_ENABLED  class LLMeshBridge : public LLItemBridge  {  	friend class LLInvFVBridge; @@ -543,7 +543,7 @@ protected:  		     const LLUUID& uuid) :                         LLItemBridge(inventory, root, uuid) {}  }; - +#endif diff --git a/indra/newview/llpanelgroupnotices.cpp b/indra/newview/llpanelgroupnotices.cpp index 7d82a10ca2..d8cfd4fc5d 100644 --- a/indra/newview/llpanelgroupnotices.cpp +++ b/indra/newview/llpanelgroupnotices.cpp @@ -159,7 +159,9 @@ BOOL LLGroupDropTarget::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,  		case DAD_ANIMATION:  		case DAD_GESTURE:  		case DAD_CALLINGCARD: +#if LL_MESH_ENABLED  		case DAD_MESH: +#endif  		{  			LLViewerInventoryItem* inv_item = (LLViewerInventoryItem*)cargo_data;  			if(gInventory.getItem(inv_item->getUUID()) diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp index 898cabb03d..58df2746f3 100644 --- a/indra/newview/llpanelobjectinventory.cpp +++ b/indra/newview/llpanelobjectinventory.cpp @@ -819,7 +819,9 @@ BOOL LLTaskCategoryBridge::dragOrDrop(MASK mask, BOOL drop,  		case DAD_ANIMATION:  		case DAD_GESTURE:  		case DAD_CALLINGCARD: +#if LL_MESH_ENABLED  		case DAD_MESH: +#endif  			accept = LLToolDragAndDrop::isInventoryDropAcceptable(object, (LLViewerInventoryItem*)cargo_data);  			if(accept && drop)  			{ @@ -1240,6 +1242,7 @@ LLUIImagePtr LLTaskWearableBridge::getIcon() const  	return LLInventoryIcon::getIcon(mAssetType, mInventoryType, FALSE, mFlags, FALSE );  } +#if LL_MESH_ENABLED  ///----------------------------------------------------------------------------  /// Class LLTaskMeshBridge  ///---------------------------------------------------------------------------- @@ -1351,6 +1354,7 @@ void LLTaskMeshBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  	hide_context_entries(menu, items, disabled_items);  } +#endif  ///----------------------------------------------------------------------------  /// LLTaskInvFVBridge impl @@ -1431,11 +1435,13 @@ LLTaskInvFVBridge* LLTaskInvFVBridge::createObjectBridge(LLPanelObjectInventory*  						 object->getUUID(),  						 object->getName());  		break; +#if LL_MESH_ENABLED  	case LLAssetType::AT_MESH:  		new_bridge = new LLTaskMeshBridge(panel,  										  object->getUUID(),  										  object->getName());  		break; +#endif  	default:  		llinfos << "Unhandled inventory type (llassetstorage.h): "  				<< (S32)type << llendl; diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index ceef03d2f8..0ce7ffb077 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -6165,6 +6165,7 @@ S32 LLObjectSelection::getObjectCount(BOOL mesh_adjust)  	cleanupNodes();  	S32 count = mList.size(); +#if LL_MESH_ENABLED  	if (mesh_adjust)  	{  		for (list_t::iterator iter = mList.begin(); iter != mList.end(); ++iter) @@ -6185,6 +6186,7 @@ S32 LLObjectSelection::getObjectCount(BOOL mesh_adjust)  		}  	} +#endif  	return count;  } diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp index 7b57f09e59..6088c31559 100644 --- a/indra/newview/lltexturectrl.cpp +++ b/indra/newview/lltexturectrl.cpp @@ -292,7 +292,11 @@ BOOL LLFloaterTexturePicker::handleDragAndDrop(  {  	BOOL handled = FALSE; -	if ((cargo_type == DAD_TEXTURE) || (cargo_type == DAD_MESH)) +	bool is_mesh = false; +#if LL_MESH_ENABLED +	is_mesh = cargo_type == DAD_MESH; +#endif +	if ((cargo_type == DAD_TEXTURE) || is_mesh)  	{  		LLInventoryItem *item = (LLInventoryItem *)cargo_data; @@ -1177,8 +1181,12 @@ BOOL LLTextureCtrl::handleDragAndDrop(S32 x, S32 y, MASK mask,  	// returns true, then the cast was valid, and we can perform  	// the third test without problems.  	LLInventoryItem* item = (LLInventoryItem*)cargo_data;  +	bool is_mesh = false; +#if LL_MESH_ENABLED +	is_mesh = cargo_type == DAD_MESH; +#endif  	if (getEnabled() && -		((cargo_type == DAD_TEXTURE) || (cargo_type == DAD_MESH)) && +		((cargo_type == DAD_TEXTURE) || is_mesh) &&  		 allowDrop(item))  	{  		if (drop) diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp index 15924d67cf..d679ccd3d8 100644 --- a/indra/newview/lltooldraganddrop.cpp +++ b/indra/newview/lltooldraganddrop.cpp @@ -331,7 +331,9 @@ LLToolDragAndDrop::LLDragAndDropDictionary::LLDragAndDropDictionary()  	addEntry(DAD_ANIMATION, 	new DragAndDropEntry(&LLToolDragAndDrop::dad3dNULL,	&LLToolDragAndDrop::dad3dNULL,					&LLToolDragAndDrop::dad3dGiveInventory,		&LLToolDragAndDrop::dad3dUpdateInventory,			&LLToolDragAndDrop::dad3dNULL));  	addEntry(DAD_GESTURE, 		new DragAndDropEntry(&LLToolDragAndDrop::dad3dNULL,	&LLToolDragAndDrop::dad3dActivateGesture,		&LLToolDragAndDrop::dad3dGiveInventory,		&LLToolDragAndDrop::dad3dUpdateInventory,			&LLToolDragAndDrop::dad3dNULL));  	addEntry(DAD_LINK, 			new DragAndDropEntry(&LLToolDragAndDrop::dad3dNULL,	&LLToolDragAndDrop::dad3dNULL,					&LLToolDragAndDrop::dad3dNULL,					&LLToolDragAndDrop::dad3dNULL,						&LLToolDragAndDrop::dad3dNULL)); +#if LL_MESH_ENABLED  	addEntry(DAD_MESH, 			new DragAndDropEntry(&LLToolDragAndDrop::dad3dNULL,	&LLToolDragAndDrop::dad3dNULL,					&LLToolDragAndDrop::dad3dGiveInventory,		&LLToolDragAndDrop::dad3dMeshObject,			&LLToolDragAndDrop::dad3dNULL)); +#endif  	// TODO: animation on self could play it?  edit it?  	// TODO: gesture on self could play it?  edit it?  }; @@ -1035,6 +1037,7 @@ void LLToolDragAndDrop::dropTextureAllFaces(LLViewerObject* hit_obj,  	hit_obj->sendTEUpdate();  } +#if LL_MESH_EANBLED  void LLToolDragAndDrop::dropMesh(LLViewerObject* hit_obj,  								 LLInventoryItem* item,  								 LLToolDragAndDrop::ESource source, @@ -1059,6 +1062,7 @@ void LLToolDragAndDrop::dropMesh(LLViewerObject* hit_obj,  	dialog_refresh_all();  } +#endif  /*  void LLToolDragAndDrop::dropTextureOneFaceAvatar(LLVOAvatar* avatar, S32 hit_face, LLInventoryItem* item) @@ -1501,7 +1505,9 @@ bool LLToolDragAndDrop::handleGiveDragAndDrop(LLUUID dest_agent, LLUUID session_  	case DAD_ANIMATION:  	case DAD_GESTURE:  	case DAD_CALLINGCARD: +#if LL_MESH_ENABLED  	case DAD_MESH: +#endif  	{  		LLViewerInventoryItem* inv_item = (LLViewerInventoryItem*)cargo_data;  		if(gInventory.getItem(inv_item->getUUID()) @@ -1858,10 +1864,12 @@ EAcceptance LLToolDragAndDrop::dad3dApplyToObject(  				dropTextureOneFace(obj, face, item, mSource, mSourceID);  			}  		} +#if LL_MESH_ENABLED  		else if (cargo_type == DAD_MESH)  		{  			dropMesh(obj, item, mSource, mSourceID);  		} +#endif  		else  		{  			llwarns << "unsupported asset type" << llendl; @@ -1886,11 +1894,13 @@ EAcceptance LLToolDragAndDrop::dad3dTextureObject(  	return dad3dApplyToObject(obj, face, mask, drop, DAD_TEXTURE);  } +#if LL_MESH_ENABLED  EAcceptance LLToolDragAndDrop::dad3dMeshObject(  	LLViewerObject* obj, S32 face, MASK mask, BOOL drop)  {  	return dad3dApplyToObject(obj, face, mask, drop, DAD_MESH);  } +#endif diff --git a/indra/newview/lltooldraganddrop.h b/indra/newview/lltooldraganddrop.h index 596cc2ee88..ceeaa8c820 100644 --- a/indra/newview/lltooldraganddrop.h +++ b/indra/newview/lltooldraganddrop.h @@ -154,8 +154,10 @@ protected:  							   MASK mask, BOOL drop);  	EAcceptance dad3dTextureObject(LLViewerObject* obj, S32 face,  								   MASK mask, BOOL drop); +#if LL_MESH_ENABLED  	EAcceptance dad3dMeshObject(LLViewerObject* obj, S32 face,  								   MASK mask, BOOL drop); +#endif  //	EAcceptance dad3dTextureSelf(LLViewerObject* obj, S32 face,  //								 MASK mask, BOOL drop);  	EAcceptance dad3dWearItem(LLViewerObject* obj, S32 face, @@ -242,10 +244,12 @@ public:  									LLInventoryItem* item,  									ESource source,  									const LLUUID& src_id); +#if LL_MESH_ENABLED  	static void dropMesh(LLViewerObject* hit_obj,  						 LLInventoryItem* item,  						 ESource source,  						 const LLUUID& src_id); +#endif  	//static void	dropTextureOneFaceAvatar(LLVOAvatar* avatar,S32 hit_face,  	//									 LLInventoryItem* item) diff --git a/indra/newview/llviewerassettype.cpp b/indra/newview/llviewerassettype.cpp index 4c088a72b7..370767002a 100644 --- a/indra/newview/llviewerassettype.cpp +++ b/indra/newview/llviewerassettype.cpp @@ -85,7 +85,9 @@ LLViewerAssetDictionary::LLViewerAssetDictionary()  	addEntry(LLViewerAssetType::AT_LINK, 				new ViewerAssetEntry(DAD_LINK));  	addEntry(LLViewerAssetType::AT_LINK_FOLDER, 		new ViewerAssetEntry(DAD_LINK)); +#if LL_MESH_ENABLED  	addEntry(LLViewerAssetType::AT_MESH, 				new ViewerAssetEntry(DAD_MESH)); +#endif  	addEntry(LLViewerAssetType::AT_NONE, 				new ViewerAssetEntry(DAD_NONE));  }; diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index 525610f983..c953fb23e3 100644 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -177,7 +177,9 @@ void LLViewerFloaterReg::registerFloaters()  	LLFloaterReg::add("hud", "floater_hud.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterHUD>);  	LLFloaterReg::add("impanel", "floater_im_session.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLIMFloater>); +#if LL_MESH_ENABLED  	LLFloaterReg::add("import_collada", "floater_import_collada.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterImportCollada>); +#endif  	LLFloaterReg::add("im_container", "floater_im_container.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLIMFloaterContainer>);  	LLFloaterReg::add("im_well_window", "floater_sys_well.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLIMWellWindow>);  	LLFloaterReg::add("incoming_call", "floater_incoming_call.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLIncomingCallDialog>); @@ -258,7 +260,9 @@ void LLViewerFloaterReg::registerFloaters()  	LLFloaterReg::add("upload_anim", "floater_animation_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAnimPreview>, "upload");  	LLFloaterReg::add("upload_image", "floater_image_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterImagePreview>, "upload");  	LLFloaterReg::add("upload_sound", "floater_sound_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSoundPreview>, "upload"); +#if LL_MESH_ENABLED  	LLFloaterReg::add("upload_model", "floater_model_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterModelPreview>, "upload"); +#endif  	LLFloaterReg::add("voice_controls", "floater_voice_controls.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLCallFloater>);  	LLFloaterReg::add("voice_effect", "floater_voice_effect.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterVoiceEffect>); diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp index dd65ca2d25..af4549f7e1 100644 --- a/indra/newview/llviewermenufile.cpp +++ b/indra/newview/llviewermenufile.cpp @@ -350,6 +350,7 @@ class LLFileUploadImage : public view_listener_t  	}  }; +#if LL_MESH_ENABLED  class LLFileUploadScene : public view_listener_t  {  	bool handleEvent(const LLSD& userdata) @@ -376,6 +377,7 @@ class LLFileUploadModel : public view_listener_t  		return TRUE;  	}  }; +#endif  class LLFileUploadSound : public view_listener_t  { @@ -1144,6 +1146,7 @@ void upload_new_resource(  	lldebugs << "Folder: " << gInventory.findCategoryUUIDForType((destination_folder_type == LLFolderType::FT_NONE) ? LLFolderType::assetTypeToFolderType(asset_type) : destination_folder_type) << llendl;  	lldebugs << "Asset Type: " << LLAssetType::lookup(asset_type) << llendl; +#if LL_MESH_ENABLED  	std::string url = gAgent.getRegion()->getCapability(  		"NewFileAgentInventory"); @@ -1171,8 +1174,8 @@ void upload_new_resource(  				asset_type));  	}  	else +#endif  	{ -		llinfos << "NewAgentInventory capability not found, new agent inventory via asset system." << llendl;  		// check for adequate funds  		// TODO: do this check on the sim  		if (LLAssetType::AT_SOUND == asset_type || @@ -1217,6 +1220,7 @@ void upload_new_resource(  	}  } +#if LL_MESH_ENABLED  BOOL upload_new_variable_price_resource(  	const LLTransactionID &tid,   	LLAssetType::EType asset_type, @@ -1288,6 +1292,7 @@ BOOL upload_new_variable_price_resource(  		return FALSE;  	}  } +#endif  LLAssetID generate_asset_id_for_new_upload(const LLTransactionID& tid)  { @@ -1358,8 +1363,10 @@ void init_menu_file()  	view_listener_t::addCommit(new LLFileUploadImage(), "File.UploadImage");  	view_listener_t::addCommit(new LLFileUploadSound(), "File.UploadSound");  	view_listener_t::addCommit(new LLFileUploadAnim(), "File.UploadAnim"); +#if LL_MESH_ENABLED  	view_listener_t::addCommit(new LLFileUploadModel(), "File.UploadModel");  	view_listener_t::addCommit(new LLFileUploadScene(), "File.UploadScene"); +#endif  	view_listener_t::addCommit(new LLFileUploadBulk(), "File.UploadBulk");  	view_listener_t::addCommit(new LLFileCloseWindow(), "File.CloseWindow");  	view_listener_t::addCommit(new LLFileCloseAllWindows(), "File.CloseAllWindows"); diff --git a/indra/newview/llviewermenufile.h b/indra/newview/llviewermenufile.h index 08444551a9..bb7cfce862 100644 --- a/indra/newview/llviewermenufile.h +++ b/indra/newview/llviewermenufile.h @@ -74,6 +74,7 @@ void upload_new_resource(  	S32 expected_upload_cost,  	void *userdata); +#if LL_MESH_ENABLED  // TODO* : Move all uploads to use this new function  // since at some point, that upload path will be deprecated and no longer  // used @@ -91,6 +92,7 @@ BOOL upload_new_variable_price_resource(  	U32 everyone_perms,  	const std::string& display_name,  	const LLSD& asset_resources); +#endif  LLAssetID generate_asset_id_for_new_upload(const LLTransactionID& tid);  void increase_new_upload_stats(LLAssetType::EType asset_type); diff --git a/indra/newview/llviewertexteditor.cpp b/indra/newview/llviewertexteditor.cpp index d35be8e1bf..697e8afa65 100644 --- a/indra/newview/llviewertexteditor.cpp +++ b/indra/newview/llviewertexteditor.cpp @@ -535,7 +535,9 @@ LLUIImagePtr LLEmbeddedItems::getItemImage(llwchar ext_char) const  			case LLAssetType::AT_BODYPART:		img_name = "Inv_Skin";		break;  			case LLAssetType::AT_ANIMATION:		img_name = "Inv_Animation";	break;  			case LLAssetType::AT_GESTURE:		img_name = "Inv_Gesture";	break; +#if LL_MESH_ENABLED  			case LLAssetType::AT_MESH:          img_name = "Inv_Mesh";	    break; +#endif  			default: llassert(0);  		} diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index fc4b590bf4..9f559331b0 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -591,8 +591,10 @@ public:  		if (gSavedSettings.getBOOL("DebugShowUploadCost"))  		{ +#if LL_MESH_ENABLED  			addText(xpos, ypos, llformat("       Meshes: L$%d", gPipeline.mDebugMeshUploadCost));  			ypos += y_inc/2; +#endif  			addText(xpos, ypos, llformat("    Sculpties: L$%d", gPipeline.mDebugSculptUploadCost));  			ypos += y_inc/2;  			addText(xpos, ypos, llformat("     Textures: L$%d", gPipeline.mDebugTextureUploadCost)); @@ -602,6 +604,7 @@ public:  			ypos += y_inc;  		} +#if LL_MESH_ENABLED  		//temporary hack to give feedback on mesh upload progress  		if (!gMeshRepo.mUploads.empty())  		{ @@ -631,6 +634,7 @@ public:  			ypos += y_inc;  		} +#endif  	}  	void draw() diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index db9e0b88e1..d66aa567a8 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -926,6 +926,7 @@ BOOL LLVOVolume::setVolume(const LLVolumeParams ¶ms, const S32 detail, bool  	BOOL is404 = FALSE; +#if LL_MESH_ENABLED  	if (isSculpted())  	{  		// if it's a mesh @@ -945,6 +946,7 @@ BOOL LLVOVolume::setVolume(const LLVolumeParams ¶ms, const S32 detail, bool  			}  		}  	} +#endif  	// Check if we need to change implementations  	bool is_flexible = (volume_params.getPathParams().getCurveType() == LL_PCODE_PATH_FLEXIBLE); @@ -989,10 +991,11 @@ BOOL LLVOVolume::setVolume(const LLVolumeParams ¶ms, const S32 detail, bool  		updateSculptTexture(); +  		if (isSculpted())  		{  			updateSculptTexture(); - +#if LL_MESH_ENABLED  			// if it's a mesh  			if ((volume_params.getSculptType() & LL_SCULPT_TYPE_MASK) == LL_SCULPT_TYPE_MESH)  			{ @@ -1008,6 +1011,7 @@ BOOL LLVOVolume::setVolume(const LLVolumeParams ¶ms, const S32 detail, bool  				}  			}  			else // otherwise is sculptie +#endif  			{  				if (mSculptTexture.notNull())  				{ @@ -2659,12 +2663,13 @@ BOOL LLVOVolume::isMesh() const  	{  		LLSculptParams *sculpt_params = (LLSculptParams *)getParameterEntry(LLNetworkData::PARAMS_SCULPT);  		U8 sculpt_type = sculpt_params->getSculptType(); - +#if LL_MESH_ENABLED  		if ((sculpt_type & LL_SCULPT_TYPE_MASK) == LL_SCULPT_TYPE_MESH)  			// mesh is a mesh  		{  			return TRUE;	  		} +#endif  	}  	return FALSE; @@ -3010,6 +3015,7 @@ F32 LLVOVolume::getBinRadius()  	F32 scale = 1.f; +#if LL_MESH_ENABLED  	if (isSculpted())  	{  		LLSculptParams *sculpt_params = (LLSculptParams *)getParameterEntry(LLNetworkData::PARAMS_SCULPT); @@ -3031,6 +3037,7 @@ F32 LLVOVolume::getBinRadius()  			scale = 1.f/llmax(vert_count/1024.f, 1.f);  		}  	} +#endif  	const LLVector4a* ext = mDrawable->getSpatialExtents(); @@ -3513,9 +3520,11 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)  		drawablep->clearState(LLDrawable::HAS_ALPHA); +#if LL_MESH_ENABLED  		bool rigged = vobj->isAttachment() &&   					vobj->isMesh() &&   					gMeshRepo.getSkinInfo(vobj->getVolume()->getParams().getSculptID()); +#endif  		bool bake_sunlight = LLPipeline::sBakeSunlight && drawablep->isStatic(); @@ -3526,6 +3535,7 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)  			drawablep->updateFaceSize(i);  			LLFace* facep = drawablep->getFace(i); +#if LL_MESH_ENABLED  			if (rigged)   			{  				if (!facep->isState(LLFace::RIGGED)) @@ -3622,6 +3632,7 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)  					facep->clearState(LLFace::RIGGED);  				}  			} +#endif  			if (cur_total > max_total || facep->getIndicesCount() <= 0 || facep->getGeomCount() <= 0)  			{ diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 583b3df0e5..c5c7277211 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -2025,7 +2025,9 @@ void LLPipeline::rebuildPriorityGroups()  	assertInitialized(); +#if LL_MESH_ENABLED  	gMeshRepo.notifyLoadedMeshes(); +#endif  	// Iterate through all drawables on the priority build queue,  	for (LLSpatialGroup::sg_list_t::iterator iter = mGroupQ1.begin(); @@ -3859,6 +3861,7 @@ void LLPipeline::renderDebug()  		gPipeline.mDebugTextureUploadCost = textures.size() * 10;  		gPipeline.mDebugSculptUploadCost = sculpts.size()*10; +#if LL_MESH_ENABLED  		U32 mesh_cost = 0;  		for (std::set<LLUUID>::iterator iter = meshes.begin(); iter != meshes.end(); ++iter) @@ -3867,6 +3870,7 @@ void LLPipeline::renderDebug()  		}  		gPipeline.mDebugMeshUploadCost = mesh_cost; +#endif  	}  	for (LLCullResult::bridge_list_t::const_iterator i = sCull->beginVisibleBridge(); i != sCull->endVisibleBridge(); ++i) diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h index 4e8760947c..95f951b393 100644 --- a/indra/newview/pipeline.h +++ b/indra/newview/pipeline.h @@ -45,6 +45,7 @@  #include "llgl.h"  #include "lldrawable.h"  #include "llrendertarget.h" +#include "llmodel.h" //for LL_MESH_ENaBLED  #include <stack> @@ -61,7 +62,10 @@ class LLCullResult;  class LLVOAvatar;  class LLGLSLShader;  class LLCurlRequest; + +#if LL_MESH_ENABLED  class LLMeshResponder; +#endif  typedef enum e_avatar_skinning_method  { @@ -465,7 +469,9 @@ public:  	S32						 mDebugTextureUploadCost;  	S32						 mDebugSculptUploadCost; +#if LL_MESH_ENABLED  	S32						 mDebugMeshUploadCost; +#endif  	S32						 mLightingChanges;  	S32						 mGeometryChanges; @@ -712,13 +718,6 @@ public:  protected:  	std::vector<LLFace*>		mSelectedFaces; - -	typedef std::map<LLUUID, std::set<LLUUID> > mesh_load_map; -	mesh_load_map mLoadingMeshes[4]; -	 -	typedef std::list<LLMeshResponder*> mesh_response_list; -	mesh_response_list			mMeshResponseList; -  	LLPointer<LLViewerFetchedTexture>	mFaceSelectImagep;  	U32						mLightMask; diff --git a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml index 8b431e9c54..b54bad98d0 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml @@ -160,7 +160,7 @@       layout="topleft"       left="5"       name="CustomGraphics Panel" -     top="101" +     top="76"       width="485">  		<text  		type="string" @@ -397,7 +397,7 @@  		label="Post process quality:"  		label_width="185"  		layout="topleft" -		left_delta="0" +		left="200"  		max_val="9"  		min_val="8"  		name="RenderPostProcess" @@ -542,7 +542,7 @@          layout="topleft"          left="469"          name="PostProcessText" -        top="328" +        top="60"          width="128">             Low          </text> @@ -625,7 +625,7 @@        follows="left|top"        height="12"        layout="topleft" -      left_delta="-260" +      left="200"        name="AvatarRenderingText"        top_pad="8"        width="128"> @@ -673,7 +673,7 @@          left="358"          left_pad="-30"          name="TerrainDetailText" -        top="488" +        top="226"          width="155">             Terrain detail:          </text> | 
