Attributes.cpp 737 B

1234567891011121314151617181920212223242526272829303132
  1. #include "rendering/Attributes.h"
  2. Attributes& Attributes::addFloat(int count) {
  3. attributes.add(GL::Attribute::newFloat(count));
  4. return *this;
  5. }
  6. Attributes& Attributes::addColor4() {
  7. attributes.add(GL::Attribute::newColor(4));
  8. return *this;
  9. }
  10. Attributes& Attributes::addSpacer() {
  11. attributes.add(GL::Attribute::newDummy());
  12. return *this;
  13. }
  14. void Attributes::set() const {
  15. int size = 0;
  16. for(const GL::Attribute& a : attributes) {
  17. size += a.getSize();
  18. }
  19. int index = 0;
  20. int offset = 0;
  21. for(const GL::Attribute& a : attributes) {
  22. if(!a.isDummy()) {
  23. GL::vertexAttribPointer(index, a, size, offset);
  24. }
  25. offset += a.getSize();
  26. index++;
  27. }
  28. }