[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