diff options
| author | ruslantproductengine <ruslantproductengine@lindenlab.com> | 2015-10-14 14:02:42 +0300 | 
|---|---|---|
| committer | ruslantproductengine <ruslantproductengine@lindenlab.com> | 2015-10-14 14:02:42 +0300 | 
| commit | 9fc62bf49863107fc799810102f6de0626ef8e10 (patch) | |
| tree | 2278f3e9a967d8298b89e48e446adf17cdbafbae | |
| parent | bb89ca25d3dd35e0e97deb3e2a77b641d515bd80 (diff) | |
MAINT-933 FIXED [PUBLIC]Show Land Owner color overlay only visible where there is water when rendering of Lights and Shadows is active.
| -rwxr-xr-x | indra/newview/lldrawpoolterrain.cpp | 56 | ||||
| -rwxr-xr-x | indra/newview/lldrawpoolterrain.h | 4 | 
2 files changed, 42 insertions, 18 deletions
| diff --git a/indra/newview/lldrawpoolterrain.cpp b/indra/newview/lldrawpoolterrain.cpp index 33ce3d0111..4ec60d3f98 100755 --- a/indra/newview/lldrawpoolterrain.cpp +++ b/indra/newview/lldrawpoolterrain.cpp @@ -220,24 +220,7 @@ void LLDrawPoolTerrain::render(S32 pass)  	// Special-case for land ownership feedback  	if (gSavedSettings.getBOOL("ShowParcelOwners"))  	{ -		if (mVertexShaderLevel > 1) -		{ //use fullbright shader for highlighting -			LLGLSLShader* old_shader = sShader; -			sShader->unbind(); -			sShader = &gHighlightProgram; -			sShader->bind(); -			gGL.diffuseColor4f(1,1,1,1); -			LLGLEnable polyOffset(GL_POLYGON_OFFSET_FILL); -			glPolygonOffset(-1.0f, -1.0f); -			renderOwnership(); -			sShader = old_shader; -			sShader->bind(); -		} -		else -		{ -			gPipeline.disableLights(); -			renderOwnership(); -		} +		hilightParcelOwners();  	}  } @@ -265,7 +248,15 @@ void LLDrawPoolTerrain::renderDeferred(S32 pass)  	{  		return;  	} +  	renderFullShader(); + +	// Special-case for land ownership feedback +	if (gSavedSettings.getBOOL("ShowParcelOwners")) +	{ +		hilightParcelOwners(); +	} +  }  void LLDrawPoolTerrain::beginShadowPass(S32 pass) @@ -454,6 +445,35 @@ void LLDrawPoolTerrain::renderFullShader()  	gGL.matrixMode(LLRender::MM_MODELVIEW);  } +void LLDrawPoolTerrain::hilightParcelOwners() +{ +	if (mVertexShaderLevel > 1) +	{ //use fullbright shader for highlighting +		LLGLSLShader* old_shader = sShader; + +		if (old_shader->mName != "Terrain Water Shader") +		{ +			int n = 0; +			n++; +		} + +		sShader->unbind(); +		sShader = &gHighlightProgram; +		sShader->bind(); +		gGL.diffuseColor4f(1, 1, 1, 1); +		LLGLEnable polyOffset(GL_POLYGON_OFFSET_FILL); +		glPolygonOffset(-1.0f, -1.0f); +		renderOwnership(); +		sShader = old_shader; +		sShader->bind(); +	} +	else +	{ +		gPipeline.disableLights(); +		renderOwnership(); +	} +} +  void LLDrawPoolTerrain::renderFull4TU()  {  	// Hack! Get the region that this draw pool is rendering from! diff --git a/indra/newview/lldrawpoolterrain.h b/indra/newview/lldrawpoolterrain.h index 2163d087e1..55f75e2644 100755 --- a/indra/newview/lldrawpoolterrain.h +++ b/indra/newview/lldrawpoolterrain.h @@ -76,6 +76,7 @@ public:  	static S32 sDetailMode;  	static F32 sDetailScale; // meters per texture +  protected:  	void renderSimple();  	void renderOwnership(); @@ -84,6 +85,9 @@ protected:  	void renderFull4TU();  	void renderFullShader();  	void drawLoop(); + +private: +	void hilightParcelOwners();  };  #endif // LL_LLDRAWPOOLSIMPLE_H | 
