#include "Skybox.h" Skybox::Skybox(CubemapTexture cubemap) { m_Cubemap = cubemap; float cubeVertices[] = { -1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, }; //std::copy(cubeVertices, cubeVertices + (3*8 - 1), m_CubeVertices); unsigned int cubeIndices[] = { // Back 0, 2, 3, 0, 1, 2, // Right 1, 6, 2, 1, 5, 6, // Front 5, 7, 6, 5, 4, 7, // Left 4, 3, 7, 4, 0, 3, // Top 3, 6, 7, 3, 2, 6, // Bottom 4, 1, 0, 4, 5, 1, }; //std::copy(cubeIndices, cubeIndices + (3*12 - 1), m_CubeIndices); GLuint vbo; glGenBuffers(1, &vbo); glBindBuffer(GL_ARRAY_BUFFER, vbo); glBufferData(GL_ARRAY_BUFFER, 3 * 8 * sizeof(float), cubeVertices, GL_STATIC_DRAW); glGenBuffers(1, &ibo); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo); glBufferData(GL_ELEMENT_ARRAY_BUFFER, 3 * 12 * sizeof(int), cubeIndices, GL_STATIC_DRAW); glGenVertexArrays(1, &vao); glBindVertexArray(vao); glBindBuffer(GL_ARRAY_BUFFER, vbo); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0); glEnableVertexAttribArray(0); GLERROR(""); } Skybox::~Skybox() { } void Skybox::Draw() { m_Cubemap.Bind(GL_TEXTURE0); glBindVertexArray(vao); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo); glDepthMask(GL_FALSE); glDrawElements(GL_TRIANGLES, 3 * 12, GL_UNSIGNED_INT, 0); glDepthMask(GL_TRUE); }