[Scummvm-git-logs] scummvm master -> 8bb6c23df53c4736ae953328266d5fc0bf6fc9b8
aquadran
noreply at scummvm.org
Sat Oct 12 07:02:16 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:
8bb6c23df5 WINTERMUTE: Removed generating adjacency while loading mesh
Commit: 8bb6c23df53c4736ae953328266d5fc0bf6fc9b8
https://github.com/scummvm/scummvm/commit/8bb6c23df53c4736ae953328266d5fc0bf6fc9b8
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2024-10-12T09:02:11+02:00
Commit Message:
WINTERMUTE: Removed generating adjacency while loading mesh
Changed paths:
engines/wintermute/base/gfx/xmesh.cpp
engines/wintermute/base/gfx/xskinmesh.cpp
engines/wintermute/base/gfx/xskinmesh.h
diff --git a/engines/wintermute/base/gfx/xmesh.cpp b/engines/wintermute/base/gfx/xmesh.cpp
index 4bd7f3aa664..7d450ed5386 100644
--- a/engines/wintermute/base/gfx/xmesh.cpp
+++ b/engines/wintermute/base/gfx/xmesh.cpp
@@ -64,14 +64,13 @@ bool XMesh::loadFromXData(const Common::String &filename, XFileData *xobj) {
// load mesh
DXBuffer bufMaterials;
- DXBuffer bufAdjacency;
//DXBuffer bufBoneOffset;
//uint32 numFaces;
uint32 numMaterials;
DXMesh *mesh;
DXSkinInfo *skinInfo = nullptr;
- auto res = DXLoadSkinMesh(xobj, bufAdjacency, bufMaterials, numMaterials, &skinInfo, &mesh);
+ auto res = DXLoadSkinMesh(xobj, bufMaterials, numMaterials, &skinInfo, &mesh);
if (!res) {
BaseEngine::LOG(0, "Error loading skin mesh");
return false;
@@ -151,7 +150,6 @@ bool XMesh::loadFromXData(const Common::String &filename, XFileData *xobj) {
mesh->generateAdjacency(_adjacency);
- bufAdjacency.free();
bufMaterials.free();
//bufBoneOffset.free();
diff --git a/engines/wintermute/base/gfx/xskinmesh.cpp b/engines/wintermute/base/gfx/xskinmesh.cpp
index f5f2e0baca6..6ebb2ceb014 100644
--- a/engines/wintermute/base/gfx/xskinmesh.cpp
+++ b/engines/wintermute/base/gfx/xskinmesh.cpp
@@ -1056,7 +1056,7 @@ static void cleanupMeshData(MeshData *meshData, bool releaseSkin = true) {
delete meshData->_skinInfo;
}
-bool DXLoadSkinMesh(XFileData *fileData, DXBuffer &adjacencyOut, DXBuffer &materialsOut, uint32 &numMaterialsOut, DXSkinInfo **skinInfoOut, DXMesh **meshOut) {
+bool DXLoadSkinMesh(XFileData *fileData, DXBuffer &materialsOut, uint32 &numMaterialsOut, DXSkinInfo **skinInfoOut, DXMesh **meshOut) {
MeshData meshData{};
DXMesh *mesh;
uint32 i;
@@ -1069,7 +1069,6 @@ bool DXLoadSkinMesh(XFileData *fileData, DXBuffer &adjacencyOut, DXBuffer &mater
if (meshData._numVertices == 0) {
createMesh(meshData._numTriFaces, meshData._numVertices, meshData._fvf, &mesh);
*meshOut = mesh;
- adjacencyOut = DXBuffer(meshData._numTriFaces * 3 * sizeof(uint32));
numMaterialsOut = meshData._numMaterials;
materialsOut = DXBuffer(meshData._numMaterials * sizeof(DXMaterial));
*skinInfoOut = meshData._skinInfo;
@@ -1180,24 +1179,7 @@ bool DXLoadSkinMesh(XFileData *fileData, DXBuffer &adjacencyOut, DXBuffer &mater
memcpy(materials.ptr(), meshData._materials, meshData._numMaterials * sizeof(DXMaterial));
- DXBuffer adjacency = DXBuffer(meshData._numTriFaces * 3 * sizeof(uint32));
- if (!adjacency.ptr()) {
- materials.free();
- cleanupMeshData(&meshData);
- delete mesh;
- return false;
- }
- if (!mesh->generateAdjacency((uint32 *)adjacency.ptr())) {
- materials.free();
- adjacency.free();
- cleanupMeshData(&meshData);
- delete mesh;
- return false;
- }
-
-
*meshOut = mesh;
- adjacencyOut = adjacency;
numMaterialsOut = meshData._numMaterials;
materialsOut = materials;
*skinInfoOut = meshData._skinInfo;
diff --git a/engines/wintermute/base/gfx/xskinmesh.h b/engines/wintermute/base/gfx/xskinmesh.h
index 2c46845545d..5512bb5ce88 100644
--- a/engines/wintermute/base/gfx/xskinmesh.h
+++ b/engines/wintermute/base/gfx/xskinmesh.h
@@ -159,7 +159,7 @@ public:
bool generateAdjacency(Common::Array<uint32> &adjacency);
};
-bool DXLoadSkinMesh(XFileData *fileData, DXBuffer &adjacencyOut, DXBuffer &materialsOut, uint32 &numMaterialsOut, DXSkinInfo **skinInfoOut, DXMesh **meshOut);
+bool DXLoadSkinMesh(XFileData *fileData, DXBuffer &materialsOut, uint32 &numMaterialsOut, DXSkinInfo **skinInfoOut, DXMesh **meshOut);
uint32 DXGetFVFVertexSize(uint32 fvf);
} // namespace Wintermute
More information about the Scummvm-git-logs
mailing list