From 40debf85806fb7c0de5051f94f8b62899be62abc Mon Sep 17 00:00:00 2001 From: Dynamitos Date: Tue, 8 Apr 2025 23:18:50 +0200 Subject: [PATCH] VertexData refactoring --- src/Engine/Graphics/StaticMeshVertexData.cpp | 12 +----------- src/Engine/Graphics/StaticMeshVertexData.h | 5 ++--- src/Engine/Graphics/VertexData.cpp | 2 ++ src/Engine/Graphics/VertexData.h | 2 +- 4 files changed, 6 insertions(+), 15 deletions(-) diff --git a/src/Engine/Graphics/StaticMeshVertexData.cpp b/src/Engine/Graphics/StaticMeshVertexData.cpp index 60f39c3..7b43ef5 100644 --- a/src/Engine/Graphics/StaticMeshVertexData.cpp +++ b/src/Engine/Graphics/StaticMeshVertexData.cpp @@ -7,9 +7,7 @@ using namespace Seele; -extern List vertexDataList; - -StaticMeshVertexData::StaticMeshVertexData() { vertexDataList.add(this); } +StaticMeshVertexData::StaticMeshVertexData() { VertexData::addVertexDataInstance(this); } StaticMeshVertexData::~StaticMeshVertexData() {} @@ -168,14 +166,6 @@ void StaticMeshVertexData::destroy() { descriptorLayout = nullptr; } -void StaticMeshVertexData::bindBuffers(Gfx::PRenderCommand) { - // TODO: for legacy vertex buffer binding -} - -Gfx::PDescriptorLayout StaticMeshVertexData::getVertexDataLayout() { return descriptorLayout; } - -Gfx::PDescriptorSet StaticMeshVertexData::getVertexDataSet() { return descriptorSet; } - void StaticMeshVertexData::resizeBuffers() { posData.resize(verticesAllocated); norData.resize(verticesAllocated); diff --git a/src/Engine/Graphics/StaticMeshVertexData.h b/src/Engine/Graphics/StaticMeshVertexData.h index ca6bdb9..52b4f42 100644 --- a/src/Engine/Graphics/StaticMeshVertexData.h +++ b/src/Engine/Graphics/StaticMeshVertexData.h @@ -28,9 +28,8 @@ class StaticMeshVertexData : public VertexData { virtual uint64 deserializeMesh(MeshId id, ArchiveBuffer& buffer) override; virtual void init(Gfx::PGraphics graphics) override; virtual void destroy() override; - virtual void bindBuffers(Gfx::PRenderCommand command) override; - virtual Gfx::PDescriptorLayout getVertexDataLayout() override; - virtual Gfx::PDescriptorSet getVertexDataSet() override; + virtual Gfx::PDescriptorLayout getVertexDataLayout() override { return descriptorLayout; } + virtual Gfx::PDescriptorSet getVertexDataSet() override { return descriptorSet; } virtual std::string getTypeName() const override { return "StaticMeshVertexData"; } virtual Gfx::PShaderBuffer getPositionBuffer() const override { return positions; } diff --git a/src/Engine/Graphics/VertexData.cpp b/src/Engine/Graphics/VertexData.cpp index d30f3a1..b690a82 100644 --- a/src/Engine/Graphics/VertexData.cpp +++ b/src/Engine/Graphics/VertexData.cpp @@ -268,6 +268,8 @@ uint64 VertexData::deserializeMesh(MeshId id, ArchiveBuffer& buffer) { List vertexDataList; +void VertexData::addVertexDataInstance(VertexData* vertexData) { vertexDataList.add(vertexData); } + List VertexData::getList() { return vertexDataList; } VertexData* VertexData::findByTypeName(std::string name) { diff --git a/src/Engine/Graphics/VertexData.h b/src/Engine/Graphics/VertexData.h index 843a3f4..20007b9 100644 --- a/src/Engine/Graphics/VertexData.h +++ b/src/Engine/Graphics/VertexData.h @@ -64,7 +64,6 @@ class VertexData { uint64 getMeshVertexCount(MeshId id) { return meshVertexCounts[id]; } virtual void serializeMesh(MeshId id, ArchiveBuffer& buffer); virtual uint64 deserializeMesh(MeshId id, ArchiveBuffer& buffer); - virtual void bindBuffers(Gfx::PRenderCommand command) = 0; virtual Gfx::PDescriptorLayout getVertexDataLayout() = 0; virtual Gfx::PDescriptorSet getVertexDataSet() = 0; virtual std::string getTypeName() const = 0; @@ -80,6 +79,7 @@ class VertexData { void registerBottomLevelAccelerationStructure(Gfx::PBottomLevelAS blas) { dataToBuild.add(blas); } uint32 getIndicesOffset(uint32 meshletIndex) { return meshlets[meshletIndex].indicesOffset; } uint64 getNumInstances() const { return instanceData.size(); } + static void addVertexDataInstance(VertexData* vertexData); static List getList(); static VertexData* findByTypeName(std::string name); virtual void init(Gfx::PGraphics graphics);