diff options
author | Dave Parks <davep@lindenlab.com> | 2012-02-10 20:04:19 -0600 |
---|---|---|
committer | Dave Parks <davep@lindenlab.com> | 2012-02-10 20:04:19 -0600 |
commit | 3710c6110d65d3a604f7b419cd764cf5b9b98600 (patch) | |
tree | 544b689c3c084976b05a69a34726524e6e68f214 /indra/newview/llface.cpp | |
parent | e0582d4bc71e2f367b4cf4a6f0b808451620b52f (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.cpp | 12 |
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); |