aboutsummaryrefslogtreecommitdiff
path: root/source/30-game/Mesh.hpp
diff options
context:
space:
mode:
authorrtk0c <[email protected]>2022-05-30 17:03:20 -0700
committerrtk0c <[email protected]>2022-05-30 17:03:20 -0700
commite66286ebe30afc9acc4531fc2bea29b7fb924f93 (patch)
treefa6b76554c3eb88bc8f088fbab68e20c40118ca7 /source/30-game/Mesh.hpp
parent366ef5a5450c6e0e680c924c3454943a9ae9814d (diff)
Changeset: 56 Buildsystem cleanup: change to layered structure for different targets
Diffstat (limited to 'source/30-game/Mesh.hpp')
-rw-r--r--source/30-game/Mesh.hpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/source/30-game/Mesh.hpp b/source/30-game/Mesh.hpp
new file mode 100644
index 0000000..f86fd55
--- /dev/null
+++ b/source/30-game/Mesh.hpp
@@ -0,0 +1,45 @@
+#pragma once
+
+#include "Color.hpp"
+#include "VertexIndex.hpp"
+#include "PodVector.hpp"
+#include "RcPtr.hpp"
+
+#include <cstddef>
+#include <cstdint>
+#include <glm/glm.hpp>
+#include <memory>
+
+struct StandardVertexExtra {
+ float u, v;
+ uint8_t r, g, b, a;
+};
+
+class StandardCpuMeshData {
+public:
+ PodVector<glm::vec3> vertPositions;
+ PodVector<StandardVertexExtra> vertExtra;
+ PodVector<uint32_t> index;
+ size_t vertexCount;
+ size_t triangleCount;
+};
+
+class StandardCpuMesh {
+// private:
+// StandardCpuMeshData* mData = nullptr;
+// RcPtr<GpuMesh> mGpuMesh;
+
+// public:
+// StandardCpuMesh();
+// ~StandardCpuMesh();
+
+// GpuVertexBuffer* GetPosBuffer() const;
+// GpuVertexBuffer* GetExtraBuffer() const;
+// GpuMesh* GetGpuMesh() const { return mGpuMesh.Get(); }
+
+// void CreateCpuData();
+// bool UpdatePositions(glm::vec3* pos, size_t count, size_t startVertIndex);
+// bool UpdateColors(RgbaColor* color, size_t count, size_t starVertIndex);
+// bool UpdateNormals(glm::vec2* normals, size_t count, size_t startVertIndex);
+// bool UpdateIndices(uint32_t* indices, size_t count, size_t startVertIndex);
+};