[Scummvm-git-logs] scummvm master -> 2038894746ab642035b0555e3f1c8265ca039071
aquadran
noreply at scummvm.org
Thu Oct 3 10:32:42 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:
2038894746 WINTERMUTE: WME3D: Update SkinMeshHelper with updated API
Commit: 2038894746ab642035b0555e3f1c8265ca039071
https://github.com/scummvm/scummvm/commit/2038894746ab642035b0555e3f1c8265ca039071
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2024-10-03T12:32:37+02:00
Commit Message:
WINTERMUTE: WME3D: Update SkinMeshHelper with updated API
Changed paths:
engines/wintermute/base/gfx/skin_mesh_helper.cpp
engines/wintermute/base/gfx/skin_mesh_helper.h
diff --git a/engines/wintermute/base/gfx/skin_mesh_helper.cpp b/engines/wintermute/base/gfx/skin_mesh_helper.cpp
index 6bd472ba056..aac2aaa2cf6 100644
--- a/engines/wintermute/base/gfx/skin_mesh_helper.cpp
+++ b/engines/wintermute/base/gfx/skin_mesh_helper.cpp
@@ -54,37 +54,40 @@ uint SkinMeshHelper::getNumFaces() {
//////////////////////////////////////////////////////////////////////////
uint SkinMeshHelper::getNumBones() {
- return 0;//_mesh->getNumBones();
+ return _skinInfo->getNumBones();
}
//////////////////////////////////////////////////////////////////////////
-bool SkinMeshHelper::getOriginalMesh(XSkinMeshLoader **mesh) {
- return true;//_mesh->cloneMeshFVF(_mesh->getOptions(), _mesh->getFVF(), mesh);
+bool SkinMeshHelper::getOriginalMesh(DXMesh **mesh) {
+ return _dxmesh->cloneMesh(mesh);
}
//////////////////////////////////////////////////////////////////////////
-bool SkinMeshHelper::generateSkinnedMesh(uint32 options, float minWeight, uint32 *adjacencyOut, XSkinMeshLoader **mesh) {
+bool SkinMeshHelper::generateSkinnedMesh(uint32 options, float minWeight, uint32 *adjacencyOut, DXMesh **mesh) {
bool res = getOriginalMesh(mesh);
- /* if (res) {
- (*mesh)->generateAdjacency(adjacencyOut);
- }*/
-
+ if (res) {
+ (*mesh)->generateAdjacency(adjacencyOut);
+ }
+
return res;
}
//////////////////////////////////////////////////////////////////////////
-bool SkinMeshHelper::updateSkinnedMesh(const Math::Matrix4 *boneTransforms, XSkinMeshLoader *mesh) {
- return true;//_mesh->updateSkinnedMesh(boneTransforms);
+bool SkinMeshHelper::updateSkinnedMesh(const DXMatrix *boneTransforms, DXMesh *mesh) {
+ void *sourceVerts = reinterpret_cast<void *>(_dxmesh->getVertexBuffer().ptr());
+ void *targetVerts = reinterpret_cast<void *>(mesh->getVertexBuffer().ptr());
+
+ return _skinInfo->updateSkinnedMesh(boneTransforms, sourceVerts, targetVerts);
}
//////////////////////////////////////////////////////////////////////////
const char *SkinMeshHelper::getBoneName(uint boneIndex) {
- return "";//_mesh->getBoneName(boneIndex);
+ return _skinInfo->getBoneName(boneIndex);
}
//////////////////////////////////////////////////////////////////////////
-Math::Matrix4 SkinMeshHelper::getBoneOffsetMatrix(uint boneIndex) {
- return Math::Matrix4();//_mesh->getBoneOffsetMatrix(boneIndex);
+DXMatrix *SkinMeshHelper::getBoneOffsetMatrix(uint boneIndex) {
+ return _skinInfo->getBoneOffsetMatrix(boneIndex);
}
} // namespace Wintermute
diff --git a/engines/wintermute/base/gfx/skin_mesh_helper.h b/engines/wintermute/base/gfx/skin_mesh_helper.h
index 275d7c5723e..55b66fb1932 100644
--- a/engines/wintermute/base/gfx/skin_mesh_helper.h
+++ b/engines/wintermute/base/gfx/skin_mesh_helper.h
@@ -30,6 +30,9 @@
#include "math/matrix4.h"
#include "math/vector3d.h"
+#include "math/vector3d.h"
+
+#include "engines/wintermute/base/gfx/xmath.h"
namespace Wintermute {
@@ -51,11 +54,11 @@ public:
uint getNumFaces();
uint getNumBones();
- bool getOriginalMesh(XSkinMeshLoader **mesh);
- bool generateSkinnedMesh(uint32 options, float minWeight, uint32 *adjacencyOut, XSkinMeshLoader **mesh);
- bool updateSkinnedMesh(const Math::Matrix4 *boneTransforms, XSkinMeshLoader *mesh);
+ bool getOriginalMesh(DXMesh **mesh);
+ bool generateSkinnedMesh(uint32 options, float minWeight, uint32 *adjacencyOut, DXMesh **mesh);
+ bool updateSkinnedMesh(const DXMatrix *boneTransforms, DXMesh *mesh);
const char *getBoneName(uint boneIndex);
- Math::Matrix4 getBoneOffsetMatrix(uint boneIndex);
+ DXMatrix *getBoneOffsetMatrix(uint boneIndex);
private:
XSkinMeshLoader *_mesh;
More information about the Scummvm-git-logs
mailing list