mirror of
https://github.com/bailwillharr/engine.git
synced 2024-09-21 04:51:18 +00:00
Fix bug where meshes are rendered by vertex count
This commit is contained in:
parent
b2831e2b5d
commit
cf99262dc8
@ -24,8 +24,6 @@ public:
|
||||
Mesh(GFXDevice* gfx, const std::vector<Vertex>& vertices)
|
||||
: m_gfx(gfx)
|
||||
{
|
||||
m_count = vertices.size();
|
||||
|
||||
m_vb = m_gfx->createBuffer(gfx::BufferType::VERTEX, vertices.size() * sizeof(Vertex), vertices.data());
|
||||
|
||||
std::vector<uint32_t> 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<Vertex>& vertices, const std::vector<uint32_t>& 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()
|
||||
{
|
||||
|
@ -48,9 +48,12 @@ namespace engine {
|
||||
|
||||
for (uint32_t entity : m_entities) {
|
||||
|
||||
|
||||
auto t = m_scene->getComponent<TransformComponent>(entity);
|
||||
auto r = m_scene->getComponent<RenderableComponent>(entity);
|
||||
|
||||
DEBUG("rendering mesh: {}, parent: {}", t->tag, t->parent);
|
||||
|
||||
gfx->updateUniformBuffer(r->material->getShader()->getPipeline(), &projMatrix, sizeof(projMatrix), 0);
|
||||
|
||||
struct {
|
||||
|
@ -87,7 +87,7 @@ void playGame()
|
||||
myScene->registerResourceManager<engine::resources::Texture>();
|
||||
|
||||
auto camera = myScene->createEntity("camera");
|
||||
myScene->addComponent<CameraControllerComponent>(camera);
|
||||
myScene->addComponent<CameraControllerComponent>(camera)->standingHeight = myScene->getComponent<engine::TransformComponent>(camera)->position.y = 2.0f;
|
||||
myScene->getSystem<engine::RenderSystem>()->setCameraEntity(camera);
|
||||
|
||||
engine::resources::Shader::VertexParams vertParams{};
|
||||
@ -108,7 +108,7 @@ void playGame()
|
||||
auto keepTexture = myScene->addResource<engine::resources::Texture>("whiteTexture", std::move(whiteTexture));
|
||||
auto keepShader = myScene->addResource<engine::resources::Shader>("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();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user