summaryrefslogtreecommitdiff
path: root/engine/xe_model.hpp
diff options
context:
space:
mode:
authortylermurphy534 <tylermurphy534@gmail.com>2022-09-26 20:57:53 -0400
committertylermurphy534 <tylermurphy534@gmail.com>2022-09-26 20:57:53 -0400
commit5a08c9c8e230fd952311f29bc02b22c7635d0178 (patch)
tree09bb647986461478ba8cc0671550d8488a6c434f /engine/xe_model.hpp
parenttexture arrays (diff)
downloadminecraftvulkan-5a08c9c8e230fd952311f29bc02b22c7635d0178.tar.gz
minecraftvulkan-5a08c9c8e230fd952311f29bc02b22c7635d0178.tar.bz2
minecraftvulkan-5a08c9c8e230fd952311f29bc02b22c7635d0178.zip
vertex buffer is not a byte vector, multi texture loading
Diffstat (limited to 'engine/xe_model.hpp')
-rw-r--r--engine/xe_model.hpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/engine/xe_model.hpp b/engine/xe_model.hpp
index 09c5913..41dccd5 100644
--- a/engine/xe_model.hpp
+++ b/engine/xe_model.hpp
@@ -14,8 +14,19 @@ namespace xe {
class Model {
public:
+ struct Data {
+ std::vector<unsigned char> data{};
+ template <typename T>
+ void write(T d) {
+ unsigned char const * p = reinterpret_cast<unsigned char const *>(&d);
+ for(std::size_t i = 0; i < sizeof(T); i++){
+ data.push_back(p[i]);
+ }
+ }
+ };
+
struct Builder {
- std::vector<float> vertexData{};
+ Model::Data vertexData{};
uint32_t vertexSize;
std::vector<uint32_t> indices{};
@@ -35,7 +46,7 @@ class Model {
void draw(VkCommandBuffer commandBuffer);
private:
- void createVertexBuffers(const std::vector<float> &vertexData, uint32_t vertexSize);
+ void createVertexBuffers(const std::vector<unsigned char> &vertexData, uint32_t vertexSize);
void createIndexBuffers(const std::vector<uint32_t> &indexData);
Device &xeDevice;