summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/lldrawpoolsimple.cpp6
-rw-r--r--indra/newview/llhudtext.cpp2
-rw-r--r--indra/newview/pipeline.cpp9
3 files changed, 11 insertions, 6 deletions
diff --git a/indra/newview/lldrawpoolsimple.cpp b/indra/newview/lldrawpoolsimple.cpp
index ca7a1b47c2..0a94e1f45a 100644
--- a/indra/newview/lldrawpoolsimple.cpp
+++ b/indra/newview/lldrawpoolsimple.cpp
@@ -71,7 +71,11 @@ void LLDrawPoolGlow::render(S32 pass)
LLGLDepthTest depth(GL_TRUE, GL_FALSE);
gGL.setColorMask(false, true);
renderTexture(LLRenderPass::PASS_GLOW, getVertexDataMask());
-
+
+ // Render name tags invisibly, zero-ing glow (alpha) where they exist (EXT-5389)
+ gGL.blendFunc(LLRender::BF_ZERO, LLRender::BF_ZERO); // LLHUDText::renderText(true) might clobber this, but right now it doesn't.
+ LLHUDObject::renderAllForSelect(); // we slightly abuse renderForSelect() because it happens to do the right thing for our needs
+
gGL.setColorMask(true, false);
gGL.setSceneBlendType(LLRender::BT_ALPHA);
diff --git a/indra/newview/llhudtext.cpp b/indra/newview/llhudtext.cpp
index 9ed5d13831..b49e14bc7d 100644
--- a/indra/newview/llhudtext.cpp
+++ b/indra/newview/llhudtext.cpp
@@ -374,7 +374,7 @@ void LLHUDText::renderText(BOOL for_select)
{
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
S32 name = mSourceObject->mGLName;
- LLColor4U coloru((U8)(name >> 16), (U8)(name >> 8), (U8)name);
+ LLColor4U coloru((U8)(name >> 16), (U8)(name >> 8), (U8)name, 0);
gGL.color4ubv(coloru.mV);
gl_segmented_rect_3d_tex(border_scale_vec, scaled_border_width, scaled_border_height, width_vec, height_vec);
LLUI::popMatrix();
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 559ae83182..3a37ce8fbb 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -2794,9 +2794,6 @@ void render_hud_elements()
LLWorld::getInstance()->renderPropertyLines();
LLViewerParcelMgr::getInstance()->render();
LLViewerParcelMgr::getInstance()->renderParcelCollision();
-
- // Render name tags.
- LLHUDObject::renderAll();
}
else if (gForceRenderLandFence)
{
@@ -3200,8 +3197,10 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
if (!LLPipeline::sReflectionRender && !LLPipeline::sRenderDeferred && gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI))
{
// Render debugging beacons.
- gObjectList.renderObjectBeacons();
+ gObjectList.renderObjectBeacons();
gObjectList.resetObjectBeacons();
+ // Render name tags
+ LLHUDObject::renderAll();
}
LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderGeomEnd");
@@ -6923,6 +6922,8 @@ void LLPipeline::renderDeferredLighting()
// Render debugging beacons.
gObjectList.renderObjectBeacons();
gObjectList.resetObjectBeacons();
+ // Render name tags
+ LLHUDObject::renderAll();
}
}