Using unique ptr for indices

This commit is contained in:
Vladyslav Baranovskyi
2025-02-10 15:42:41 +02:00
parent 480b667e5c
commit 3d1be5dfed

View File

@@ -27,8 +27,8 @@
namespace
{
#if __has_include("assimp/Exporter.hpp")
void SetupAssimpScene(OpenVulkano::Scene::Geometry* geometry, aiScene& scene, aiNode& rootNode, aiMesh& mesh, unsigned int*& indices,
bool withTexCoords, float scaling)
void SetupAssimpScene(OpenVulkano::Scene::Geometry* geometry, aiScene& scene, aiNode& rootNode, aiMesh& mesh,
std::unique_ptr<unsigned int[]>& indices, bool withTexCoords, float scaling)
{
mesh.mVertices = nullptr;
mesh.mNormals = nullptr;
@@ -75,7 +75,7 @@ namespace
mesh.mNumFaces = geometry->indexCount / 3;
mesh.mFaces = new aiFace[mesh.mNumFaces];
indices = new unsigned int[geometry->indexCount];
indices = std::make_unique<unsigned int[]>(geometry->indexCount);
for (unsigned int i = 0; i < geometry->indexCount; ++i)
{
@@ -172,7 +172,7 @@ namespace OpenVulkano::Scene
std::unique_ptr<aiScene> scene(new aiScene());
std::unique_ptr<aiNode> rootNode(new aiNode());
std::unique_ptr<aiMesh> mesh(new aiMesh());
unsigned int* indices = nullptr;
std::unique_ptr<unsigned int[]> indices;
SetupAssimpScene(geometry, *scene, *rootNode, *mesh, indices, false, 1.0f);
@@ -187,7 +187,6 @@ namespace OpenVulkano::Scene
aiFace& face = mesh->mFaces[i];
face.mIndices = nullptr;
}
delete[] indices;
if (result != aiReturn_SUCCESS)
{
@@ -204,7 +203,7 @@ namespace OpenVulkano::Scene
std::unique_ptr<aiScene> scene(new aiScene());
std::unique_ptr<aiNode> rootNode(new aiNode());
std::unique_ptr<aiMesh> mesh(new aiMesh());
unsigned int* indices = nullptr;
std::unique_ptr<unsigned int[]> indices;
SetupAssimpScene(geometry, *scene, *rootNode, *mesh, indices, true, 100.0f);
@@ -224,7 +223,6 @@ namespace OpenVulkano::Scene
aiFace& face = mesh->mFaces[i];
face.mIndices = nullptr;
}
delete[] indices;
if (result != aiReturn_SUCCESS)
{