Refactor mesh handling to use templated vertex structures for improved type safety and flexibility

This commit is contained in:
REDxEYE
2025-04-13 17:14:28 +03:00
parent bba647db5c
commit 1ffbeb8148
28 changed files with 591 additions and 521 deletions
+11 -2
View File
@@ -5,12 +5,21 @@
#include <glm/glm.hpp>
#include "commons.hpp"
#include "MeshData.hpp"
template<typename VertexStructure>
class Mesh;
struct LineVertex {
glm::vec3 position;
glm::vec4 color;
static constexpr VertexAttribute ATTRIBUTES[] { {GL_FLOAT,false,3},{GL_FLOAT,false,4}, {0} };
};
class LineBatch : public Flushable {
std::unique_ptr<Mesh> mesh;
std::unique_ptr<float[]> buffer;
std::unique_ptr<Mesh<LineVertex>> mesh;
std::unique_ptr<LineVertex[]> buffer;
size_t index;
size_t capacity;
public: