diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/lldrawpool.h | 13 | ||||
| -rw-r--r-- | indra/newview/lldrawpoolbump.cpp | 25 | ||||
| -rw-r--r-- | indra/newview/lldrawpoolbump.h | 1 | 
3 files changed, 21 insertions, 18 deletions
| diff --git a/indra/newview/lldrawpool.h b/indra/newview/lldrawpool.h index 09c95a1705..eef19199b9 100644 --- a/indra/newview/lldrawpool.h +++ b/indra/newview/lldrawpool.h @@ -349,15 +349,18 @@ public:  	void resetDrawOrders() { }  	static void applyModelMatrix(const LLDrawInfo& params); -	virtual void pushBatches(U32 type, bool texture = true, bool batch_textures = false); -    virtual void pushRiggedBatches(U32 type, bool texture = true, bool batch_textures = false); +    // Use before a non-GLTF batch if it is interleaved with GLTF batches that share the same shader +    static void resetGLTFTextureTransform(); +	void pushBatches(U32 type, bool texture = true, bool batch_textures = false); +    void pushRiggedBatches(U32 type, bool texture = true, bool batch_textures = false);      void pushGLTFBatches(U32 type);      void pushGLTFBatch(LLDrawInfo& params);      void pushRiggedGLTFBatches(U32 type);      void pushRiggedGLTFBatch(LLDrawInfo& params, LLVOAvatar*& lastAvatar, U64& lastMeshId); -	virtual void pushMaskBatches(U32 type, bool texture = true, bool batch_textures = false); -    virtual void pushRiggedMaskBatches(U32 type, bool texture = true, bool batch_textures = false); -	virtual void pushBatch(LLDrawInfo& params, bool texture, bool batch_textures = false); +	void pushMaskBatches(U32 type, bool texture = true, bool batch_textures = false); +    void pushRiggedMaskBatches(U32 type, bool texture = true, bool batch_textures = false); +	void pushBatch(LLDrawInfo& params, bool texture, bool batch_textures = false); +	void pushBumpBatch(LLDrawInfo& params, bool texture, bool batch_textures = false);      static bool uploadMatrixPalette(LLDrawInfo& params);      static bool uploadMatrixPalette(LLVOAvatar* avatar, LLMeshSkinInfo* skinInfo);  	virtual void renderGroup(LLSpatialGroup* group, U32 type, bool texture = true); diff --git a/indra/newview/lldrawpoolbump.cpp b/indra/newview/lldrawpoolbump.cpp index a548740ec4..bd0b05fb33 100644 --- a/indra/newview/lldrawpoolbump.cpp +++ b/indra/newview/lldrawpoolbump.cpp @@ -78,6 +78,7 @@ static LLGLSLShader* shader = NULL;  static S32 cube_channel = -1;  static S32 diffuse_channel = -1;  static S32 bump_channel = -1; +static BOOL shiny = FALSE;  // Enabled after changing LLViewerTexture::mNeedsCreateTexture to an  // LLAtomicBool; this should work just fine, now. HB @@ -198,7 +199,7 @@ void LLStandardBumpmap::destroyGL()  LLDrawPoolBump::LLDrawPoolBump()   :  LLRenderPass(LLDrawPool::POOL_BUMP)  { -	mShiny = FALSE; +	shiny = FALSE;  } @@ -347,7 +348,7 @@ void LLDrawPoolBump::beginFullbrightShiny()  		diffuse_channel = 0;  	} -	mShiny = TRUE; +	shiny = TRUE;  }  void LLDrawPoolBump::renderFullbrightShiny() @@ -399,7 +400,7 @@ void LLDrawPoolBump::endFullbrightShiny()  	diffuse_channel = -1;  	cube_channel = 0; -	mShiny = FALSE; +	shiny = FALSE;  }  void LLDrawPoolBump::renderGroup(LLSpatialGroup* group, U32 type, bool texture = true) @@ -551,7 +552,7 @@ void LLDrawPoolBump::renderDeferred(S32 pass)  {      LL_PROFILE_ZONE_SCOPED_CATEGORY_DRAWPOOL; //LL_RECORD_BLOCK_TIME(FTM_RENDER_BUMP); -    mShiny = TRUE; +    shiny = TRUE;      for (int i = 0; i < 2; ++i)      {          bool rigged = i == 1; @@ -598,11 +599,11 @@ void LLDrawPoolBump::renderDeferred(S32 pass)                      avatar = params.mAvatar;                      skin = params.mSkinInfo->mHash;                  } -                pushBatch(params, true, false); +                pushBumpBatch(params, true, false);              }              else              { -                pushBatch(params, true, false); +                pushBumpBatch(params, true, false);              }          } @@ -612,7 +613,7 @@ void LLDrawPoolBump::renderDeferred(S32 pass)          gGL.getTexUnit(0)->activate();      } -    mShiny = FALSE; +    shiny = FALSE;  } @@ -1249,12 +1250,12 @@ void LLDrawPoolBump::pushBumpBatches(U32 type)                      }                  }              } -			pushBatch(params, false); +			pushBumpBatch(params, false);  		}  	}  } -void LLDrawPoolBump::pushBatch(LLDrawInfo& params, bool texture, bool batch_textures) +void LLRenderPass::pushBumpBatch(LLDrawInfo& params, bool texture, bool batch_textures)  {      LL_PROFILE_ZONE_SCOPED_CATEGORY_DRAWPOOL;  	applyModelMatrix(params); @@ -1275,7 +1276,7 @@ void LLDrawPoolBump::pushBatch(LLDrawInfo& params, bool texture, bool batch_text  	{ //not batching textures or batch has only 1 texture -- might need a texture matrix  		if (params.mTextureMatrix)  		{ -			if (mShiny) +			if (shiny)  			{  				gGL.getTexUnit(0)->activate();  				gGL.matrixMode(LLRender::MM_TEXTURE); @@ -1294,7 +1295,7 @@ void LLDrawPoolBump::pushBatch(LLDrawInfo& params, bool texture, bool batch_text  			tex_setup = true;  		} -		if (mShiny && mShaderLevel > 1 && texture) +		if (shiny && mShaderLevel > 1 && texture)  		{  			if (params.mTexture.notNull())  			{ @@ -1312,7 +1313,7 @@ void LLDrawPoolBump::pushBatch(LLDrawInfo& params, bool texture, bool batch_text      if (tex_setup)  	{ -		if (mShiny) +		if (shiny)  		{  			gGL.getTexUnit(0)->activate();  		} diff --git a/indra/newview/lldrawpoolbump.h b/indra/newview/lldrawpoolbump.h index 840af0c99d..b1fe454c72 100644 --- a/indra/newview/lldrawpoolbump.h +++ b/indra/newview/lldrawpoolbump.h @@ -53,7 +53,6 @@ public:  	LLDrawPoolBump();  	/*virtual*/ void prerender() override; -	void pushBatch(LLDrawInfo& params, bool texture, bool batch_textures = false) override;  	void pushBumpBatches(U32 type);  	void renderGroup(LLSpatialGroup* group, U32 type, bool texture) override; | 
