// // Created by lukas on 05.02.22. // #include "BlockRenderer.h" #define GL_GLEXT_PROTOTYPES #include VertexArray *BlockRenderer::setVertexArray() { float cube_vertices[] = { // front -1.0, -1.0, 1.0, 1.0, -1.0, 1.0, 1.0, 1.0, 1.0, -1.0, 1.0, 1.0, // back -1.0, -1.0, -1.0, 1.0, -1.0, -1.0, 1.0, 1.0, -1.0, -1.0, 1.0, -1.0 }; GLfloat cube_colors[] = { // front colors 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, // back colors 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0 }; // Generate a vertex buffer auto *vb = new VertexBuffer(cube_vertices, sizeof(cube_vertices)); // return new VertexArray(*vb); } IndexBuffer *BlockRenderer::setIndexBuffer() { unsigned cube_elements[] = { // front 0, 1, 2, 2, 3, 0, // right 1, 5, 6, 6, 2, 1, // back 7, 6, 5, 5, 4, 7, // left 4, 0, 3, 3, 7, 4, // bottom 4, 5, 1, 1, 0, 4, // top 3, 2, 6, 6, 7, 3 }; return new IndexBuffer(cube_elements, 36);; } Shader BlockRenderer::setShader() { const std::string vertsrc = #include "vertex.shader" const std::string geosrc = #include "geometry.shader" const std::string fragsrc = #include "fragment.shader" Shader s; s.loadShader(vertsrc, geosrc, fragsrc); s.Bind(); return s; } BlockRenderer::BlockRenderer() {}