#include #include "wrapper/Attributes.h" Attributes& Attributes::addFloat(int count) { attributes.add({count, sizeof (float), GL_FLOAT, false}); return *this; } Attributes& Attributes::addColor4() { attributes.add({4, sizeof (unsigned char), GL_UNSIGNED_BYTE, true}); return *this; } Attributes& Attributes::addSpacer(int count, int size) { attributes.add({count, size, -1, false}); return *this; } void Attributes::set() const { int size = 0; for(const Attribute& a : attributes) { size += a.count * a.size; } int index = 0; int offset = 0; for(const Attribute& a : attributes) { if(a.type != -1) { glVertexAttribPointer(index, a.count, a.type, a.normalized, size, static_cast (0) + offset); glEnableVertexAttribArray(index); } offset += a.count * a.size; index++; } }