ColorRenderer.cpp 863 B

123456789101112131415161718192021222324
  1. #include "rendering/ColorRenderer.h"
  2. #include "gaming-core/wrapper/Attributes.h"
  3. #include "gaming-core/utils/List.h"
  4. ColorRenderer::ColorRenderer() {
  5. vertexBuffer.setAttributes(Attributes().addFloat(2).addSpacer(0, 0).addColor4());
  6. vertexBuffer.setStreamData(3 * sizeof (float) * 6);
  7. }
  8. void ColorRenderer::draw(const Vertex& v1, const Vertex& v2, const Vertex& v3) {
  9. List<float, 50> buffer;
  10. buffer.add(v1.x);
  11. buffer.add(v1.y);
  12. buffer.add(*reinterpret_cast<const float*>(&(v1.color.data[0])));
  13. buffer.add(v2.x);
  14. buffer.add(v2.y);
  15. buffer.add(*reinterpret_cast<const float*>(&(v2.color.data[0])));
  16. buffer.add(v3.x);
  17. buffer.add(v3.y);
  18. buffer.add(*reinterpret_cast<const float*>(&(v3.color.data[0])));
  19. vertexBuffer.updateData(0, buffer.getLength() * sizeof(float), buffer.begin());
  20. vertexBuffer.draw(3);
  21. }