[Scummvm-git-logs] scummvm master -> b4bc3a4755433418cd2c7eefb4d54960aa8fcfed
aquadran
noreply at scummvm.org
Sat Oct 19 09:32:24 UTC 2024
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
b4bc3a4755 WINTERMUTE: Fixed regression. Restored previous transformations but using DX
Commit: b4bc3a4755433418cd2c7eefb4d54960aa8fcfed
https://github.com/scummvm/scummvm/commit/b4bc3a4755433418cd2c7eefb4d54960aa8fcfed
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2024-10-19T11:32:19+02:00
Commit Message:
WINTERMUTE: Fixed regression. Restored previous transformations but using DX
Changed paths:
engines/wintermute/base/gfx/xskinmesh.cpp
diff --git a/engines/wintermute/base/gfx/xskinmesh.cpp b/engines/wintermute/base/gfx/xskinmesh.cpp
index 1325e73ebd7..dabab728652 100644
--- a/engines/wintermute/base/gfx/xskinmesh.cpp
+++ b/engines/wintermute/base/gfx/xskinmesh.cpp
@@ -396,12 +396,8 @@ bool DXSkinInfo::updateSkinnedMesh(const DXMatrix *boneTransforms, void *srcVert
}
for (i = 0; i < _numBones; i++) {
- DXMatrix boneInverse, matrix;
-
- DXMatrixInverse(&boneInverse, NULL, &_bones[i]._transform);
- DXMatrixMultiply(&matrix, &boneInverse, &boneTransforms[i]);
- DXMatrixMultiply(&matrix, &_bones[i]._transform, &matrix);
- DXMatrixTranspose(&matrix, &matrix);
+ DXMatrix boneMatrix = boneTransforms[i];
+ DXMatrixTranspose(&boneMatrix, &boneMatrix);
for (j = 0; j < _bones[i]._numInfluences; j++) {
DXVector3 position;
@@ -409,7 +405,7 @@ bool DXSkinInfo::updateSkinnedMesh(const DXMatrix *boneTransforms, void *srcVert
DXVector3 *positionDst = (DXVector3 *)((byte *)dstVertices + vertexSize * _bones[i]._vertices[j]);
float weight = _bones[i]._weights[j];
- DXVec3TransformCoord(&position, positionSrc, &matrix);
+ DXVec3TransformCoord(&position, positionSrc, &boneMatrix);
positionDst->_x += weight * position._x;
positionDst->_y += weight * position._y;
@@ -426,10 +422,8 @@ bool DXSkinInfo::updateSkinnedMesh(const DXMatrix *boneTransforms, void *srcVert
}
for (i = 0; i < _numBones; i++) {
- DXMatrix boneInverse, matrix;
-
- DXMatrixInverse(&boneInverse, nullptr, &_bones[i]._transform);
- DXMatrixMultiply(&matrix, &_bones[i]._transform, &boneTransforms[i]);
+ DXMatrix boneInverse = boneTransforms[i];
+ DXMatrixInverse(&boneInverse, NULL, &boneInverse);
for (j = 0; j < _bones[i]._numInfluences; j++) {
DXVector3 normal;
@@ -438,7 +432,6 @@ bool DXSkinInfo::updateSkinnedMesh(const DXMatrix *boneTransforms, void *srcVert
float weight = _bones[i]._weights[j];
DXVec3TransformNormal(&normal, normalSrc, &boneInverse);
- DXVec3TransformNormal(&normal, &normal, &matrix);
normalDst->_x += weight * normal._x;
normalDst->_y += weight * normal._y;
More information about the Scummvm-git-logs
mailing list