MAINT-933 FIXED [PUBLIC]Show Land Owner color overlay only visible where there is water when rendering of Lights and Shadows is active.

meow-7.2.2
ruslantproductengine 2015-10-14 14:02:42 +03:00
parent bb89ca25d3
commit 9fc62bf498
2 changed files with 42 additions and 18 deletions

View File

@ -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!

View File

@ -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