diff --git a/include/resources/mesh.hpp b/include/resources/mesh.hpp index 1f7a06c..e82c68f 100644 --- a/include/resources/mesh.hpp +++ b/include/resources/mesh.hpp @@ -24,8 +24,6 @@ public: Mesh(GFXDevice* gfx, const std::vector& vertices) : m_gfx(gfx) { - m_count = vertices.size(); - m_vb = m_gfx->createBuffer(gfx::BufferType::VERTEX, vertices.size() * sizeof(Vertex), vertices.data()); std::vector indices(m_count); @@ -33,13 +31,15 @@ public: indices[i] = i; } m_ib = m_gfx->createBuffer(gfx::BufferType::INDEX, indices.size() * sizeof(uint32_t), indices.data()); + + m_count = indices.size(); } Mesh(GFXDevice* gfx, const std::vector& vertices, const std::vector& indices) : m_gfx(gfx) { - m_count = vertices.size(); m_vb = m_gfx->createBuffer(gfx::BufferType::VERTEX, vertices.size() * sizeof(Vertex), vertices.data()); m_ib = m_gfx->createBuffer(gfx::BufferType::INDEX, indices.size() * sizeof(uint32_t), indices.data()); + m_count = indices.size(); } ~Mesh() { diff --git a/src/systems/render.cpp b/src/systems/render.cpp index eb36e03..dffacc4 100644 --- a/src/systems/render.cpp +++ b/src/systems/render.cpp @@ -48,9 +48,12 @@ namespace engine { for (uint32_t entity : m_entities) { + auto t = m_scene->getComponent(entity); auto r = m_scene->getComponent(entity); + DEBUG("rendering mesh: {}, parent: {}", t->tag, t->parent); + gfx->updateUniformBuffer(r->material->getShader()->getPipeline(), &projMatrix, sizeof(projMatrix), 0); struct { diff --git a/test/src/game.cpp b/test/src/game.cpp index 663b178..39f6076 100644 --- a/test/src/game.cpp +++ b/test/src/game.cpp @@ -87,7 +87,7 @@ void playGame() myScene->registerResourceManager(); auto camera = myScene->createEntity("camera"); - myScene->addComponent(camera); + myScene->addComponent(camera)->standingHeight = myScene->getComponent(camera)->position.y = 2.0f; myScene->getSystem()->setCameraEntity(camera); engine::resources::Shader::VertexParams vertParams{}; @@ -108,7 +108,7 @@ void playGame() auto keepTexture = myScene->addResource("whiteTexture", std::move(whiteTexture)); auto keepShader = myScene->addResource("theShader", std::move(theShader)); - engine::util::loadMeshFromFile(myScene, app.getResourcePath("models/lego/lego.dae")); + engine::util::loadMeshFromFile(myScene, app.getResourcePath("models/astronaut/astronaut.dae")); app.gameLoop();