summaryrefslogtreecommitdiff
path: root/indra/newview/lldrawpoolavatar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/lldrawpoolavatar.cpp')
-rw-r--r--indra/newview/lldrawpoolavatar.cpp32
1 files changed, 12 insertions, 20 deletions
diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp
index 517c69305a..10311044d2 100644
--- a/indra/newview/lldrawpoolavatar.cpp
+++ b/indra/newview/lldrawpoolavatar.cpp
@@ -1708,43 +1708,35 @@ void LLDrawPoolAvatar::renderRigged(LLVOAvatar* avatar, U32 type, bool glow)
stop_glerror();
- F32 mp[LL_MAX_JOINTS_PER_MESH_OBJECT*9];
-
- F32 transp[LL_MAX_JOINTS_PER_MESH_OBJECT*3];
+ F32 mp[LL_MAX_JOINTS_PER_MESH_OBJECT*12];
for (U32 i = 0; i < count; ++i)
{
F32* m = (F32*) mat[i].mMatrix[0].getF32ptr();
- U32 idx = i*9;
+ U32 idx = i*12;
mp[idx+0] = m[0];
mp[idx+1] = m[1];
mp[idx+2] = m[2];
+ mp[idx+3] = m[12];
- mp[idx+3] = m[4];
- mp[idx+4] = m[5];
- mp[idx+5] = m[6];
-
- mp[idx+6] = m[8];
- mp[idx+7] = m[9];
- mp[idx+8] = m[10];
-
- idx = i*3;
+ mp[idx+4] = m[4];
+ mp[idx+5] = m[5];
+ mp[idx+6] = m[6];
+ mp[idx+7] = m[13];
- transp[idx+0] = m[12];
- transp[idx+1] = m[13];
- transp[idx+2] = m[14];
+ mp[idx+8] = m[8];
+ mp[idx+9] = m[9];
+ mp[idx+10] = m[10];
+ mp[idx+11] = m[14];
}
- LLDrawPoolAvatar::sVertexProgram->uniformMatrix3fv(LLViewerShaderMgr::AVATAR_MATRIX,
+ LLDrawPoolAvatar::sVertexProgram->uniformMatrix3x4fv(LLViewerShaderMgr::AVATAR_MATRIX,
count,
FALSE,
(GLfloat*) mp);
- LLDrawPoolAvatar::sVertexProgram->uniform3fv(LLShaderMgr::AVATAR_TRANSLATION, count, transp);
-
-
stop_glerror();
}
else