summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2014-03-24 14:04:40 -0500
committerDave Parks <davep@lindenlab.com>2014-03-24 14:04:40 -0500
commit3d80a0858d97012bf24cfb26e4053369c41b068e (patch)
treedf958a4bffa5d3a723d986658dd4142dc392bd1a
parent6bbb86811e02f508323460e875eabe836e4fe40c (diff)
MAINT-3211 Fix for texture animations not working properly on rigged attachments when worn from inventory.
-rwxr-xr-xindra/newview/app_settings/shaders/class1/deferred/diffuseSkinnedV.glsl2
-rwxr-xr-xindra/newview/lldrawpoolavatar.cpp11
-rwxr-xr-xindra/newview/llface.cpp2
3 files changed, 13 insertions, 2 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseSkinnedV.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseSkinnedV.glsl
index a74290bfcd..2487110624 100755
--- a/indra/newview/app_settings/shaders/class1/deferred/diffuseSkinnedV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseSkinnedV.glsl
@@ -40,7 +40,7 @@ mat4 getObjectSkinnedTransform();
void main()
{
vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy;
-
+
mat4 mat = getObjectSkinnedTransform();
mat = modelview_matrix * mat;
diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp
index 24f467f954..716243b381 100755
--- a/indra/newview/lldrawpoolavatar.cpp
+++ b/indra/newview/lldrawpoolavatar.cpp
@@ -1517,6 +1517,17 @@ void LLDrawPoolAvatar::getRiggedGeometry(LLFace* face, LLPointer<LLVertexBuffer>
face->setPoolType(LLDrawPool::POOL_AVATAR);
}
+ //let getGeometryVolume know if a texture matrix is in play
+ if (face->mTextureMatrix)
+ {
+ face->setState(LLFace::TEXTURE_ANIM);
+ }
+ else
+ {
+ face->clearState(LLFace::TEXTURE_ANIM);
+ }
+
+
//llinfos << "Rebuilt face " << face->getTEOffset() << " of " << face->getDrawable() << " at " << gFrameTimeSeconds << llendl;
face->getGeometryVolume(*volume, face->getTEOffset(), mat_vert, mat_normal, offset, true);
diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp
index ae62be0ad0..d69c185a2b 100755
--- a/indra/newview/llface.cpp
+++ b/indra/newview/llface.cpp
@@ -1638,7 +1638,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
do_xform = false;
}
- if (getVirtualSize() >= MIN_TEX_ANIM_SIZE)
+ if (getVirtualSize() >= MIN_TEX_ANIM_SIZE || isState(LLFace::RIGGED))
{ //don't override texture transform during tc bake
tex_mode = 0;
}