[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