summaryrefslogtreecommitdiff
path: root/indra/newview/llface.cpp
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2012-02-10 20:04:19 -0600
committerDave Parks <davep@lindenlab.com>2012-02-10 20:04:19 -0600
commit3710c6110d65d3a604f7b419cd764cf5b9b98600 (patch)
tree544b689c3c084976b05a69a34726524e6e68f214 /indra/newview/llface.cpp
parente0582d4bc71e2f367b4cf4a6f0b808451620b52f (diff)
SH-2908 Rework indexed texture rendering to use a uvec4 instead of a float for texture indices in the data stream. Also rework gl_FragColor overrides to not collide with some odd driver implementations.
Diffstat (limited to 'indra/newview/llface.cpp')
-rw-r--r--indra/newview/llface.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp
index cd33a19a2a..838e541145 100644
--- a/indra/newview/llface.cpp
+++ b/indra/newview/llface.cpp
@@ -1742,14 +1742,22 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
LLVector4a texIdx;
- F32 index = (F32) (mTextureIndex < 255 ? mTextureIndex : 0);
+ U8 index = mTextureIndex < 255 ? mTextureIndex : 0;
+
+ F32 val = 0.f;
+ U8* vp = (U8*) &val;
+ vp[0] = index;
+ vp[1] = 0;
+ vp[2] = 0;
+ vp[3] = 0;
+
llassert(index <= LLGLSLShader::sIndexedTextureChannels-1);
LLVector4Logical mask;
mask.clear();
mask.setElement<3>();
- texIdx.set(0,0,0,index);
+ texIdx.set(0,0,0,val);
{
LLFastTimer t(FTM_FACE_POSITION_STORE);