Add VertexBuffer layout ASSERT check

This commit is contained in:
Riyyi
2021-01-01 21:44:24 +01:00
parent 6806743b12
commit 1254a8f0fe
+5 -2
View File
@@ -191,18 +191,21 @@ namespace Inferno {
void VertexArray::addVertexBuffer(const std::shared_ptr<VertexBuffer>& vertexBuffer) void VertexArray::addVertexBuffer(const std::shared_ptr<VertexBuffer>& vertexBuffer)
{ {
const auto& layout = vertexBuffer->getLayout();
ASSERT(layout.getElements().size(), "VertexBuffer has no layout");
this->bind(); this->bind();
vertexBuffer->bind(); vertexBuffer->bind();
uint32_t index = 0; uint32_t index = 0;
for (const auto& element : vertexBuffer->getLayout()) { for (const auto& element : layout) {
glEnableVertexAttribArray(index); glEnableVertexAttribArray(index);
glVertexAttribPointer( glVertexAttribPointer(
index, index,
element.getTypeCount(), element.getTypeCount(),
element.getTypeGL(), element.getTypeGL(),
element.getNormalized() ? GL_TRUE : GL_FALSE, element.getNormalized() ? GL_TRUE : GL_FALSE,
vertexBuffer->getLayout().getStride(), layout.getStride(),
reinterpret_cast<const void*>(element.getOffset())); reinterpret_cast<const void*>(element.getOffset()));
index++; index++;