SQCSimulator2023/SQCSim2021/skybox.cpp

62 lines
2.7 KiB
C++
Raw Normal View History

2021-10-12 15:58:54 -04:00
#include "skybox.h"
Skybox::Skybox() {}
Skybox::~Skybox() {}
void Skybox::Init(float size){
int count = 0;
VertexBuffer::VertexData* vd = new VertexBuffer::VertexData[24];
2023-10-25 02:06:29 -04:00
vd[count++] = VertexBuffer::VertexData(-size, -size, size, 1.f, 1.f, 1.f, .25f, .5f);
vd[count++] = VertexBuffer::VertexData(-size, size, size, 1.f, 1.f, 1.f, .25f, .75f);
vd[count++] = VertexBuffer::VertexData(size, size, size, 1.f, 1.f, 1.f, 0.f, .75f);
vd[count++] = VertexBuffer::VertexData(size, -size, size, 1.f, 1.f, 1.f, 0.f, .5f);
vd[count++] = VertexBuffer::VertexData(-size, -size, -size, 1.f, 1.f, 1.f, .5f, .5f);
vd[count++] = VertexBuffer::VertexData(-size, size, -size, 1.f, 1.f, 1.f, .5f, .75f);
vd[count++] = VertexBuffer::VertexData(-size, size, size, 1.f, 1.f, 1.f, .25f, .75f);
vd[count++] = VertexBuffer::VertexData(-size, -size, size, 1.f, 1.f, 1.f, .25f, .5f);
vd[count++] = VertexBuffer::VertexData(size, -size, -size, 1.f, 1.f, 1.f, .75f, .5f);
vd[count++] = VertexBuffer::VertexData(size, size, -size, 1.f, 1.f, 1.f, .75f, .75f);
vd[count++] = VertexBuffer::VertexData(-size, size, -size, 1.f, 1.f, 1.f, .5f, .75f);
vd[count++] = VertexBuffer::VertexData(-size, -size, -size, 1.f, 1.f, 1.f, .5f, .5f);
vd[count++] = VertexBuffer::VertexData(size, -size, size, 1.f, 1.f, 1.f, 1.f, .5f);
vd[count++] = VertexBuffer::VertexData(size, size, size, 1.f, 1.f, 1.f, 1.f, .75f);
vd[count++] = VertexBuffer::VertexData(size, size, -size, 1.f, 1.f, 1.f, .75f, .75f);
vd[count++] = VertexBuffer::VertexData(size, -size, -size, 1.f, 1.f, 1.f, .75f, .5f);
vd[count++] = VertexBuffer::VertexData(size, size, size, 1.f, 1.f, 1.f, .25f, 1.f);
2021-10-12 15:58:54 -04:00
vd[count++] = VertexBuffer::VertexData(-size, size, size, 1.f, 1.f, 1.f, .25f, .75f);
vd[count++] = VertexBuffer::VertexData(-size, size, -size, 1.f, 1.f, 1.f, .5f, .75f);
2023-10-25 02:06:29 -04:00
vd[count++] = VertexBuffer::VertexData(size, size, -size, 1.f, 1.f, 1.f, .5f, 1.f);
2021-10-12 15:58:54 -04:00
vd[count++] = VertexBuffer::VertexData(-size, -size, size, 1.f, 1.f, 1.f, .5f, .25f);
vd[count++] = VertexBuffer::VertexData(size, -size, size, 1.f, 1.f, 1.f, .75f, .25f);
vd[count++] = VertexBuffer::VertexData(size, -size, -size, 1.f, 1.f, 1.f, .75f, .5f);
vd[count++] = VertexBuffer::VertexData(-size, -size, -size, 1.f, 1.f, 1.f, .5f, .5f);
m_vertexBuffer.SetMeshData(vd, count);
delete[] vd;
}
void Skybox::Render(Transformation tran) const {
glDisable(GL_DEPTH_TEST);
2021-12-06 09:45:51 -05:00
glDisable(GL_BLEND);
2023-09-30 14:46:54 -04:00
glLoadMatrixf(tran.GetMatrix().GetInternalValues());
2021-10-12 15:58:54 -04:00
m_texture.Bind();
m_shader.Use();
m_vertexBuffer.Render();
2021-10-25 10:50:08 -04:00
m_shader.Disable();
2021-10-12 15:58:54 -04:00
glEnable(GL_DEPTH_TEST);
2021-12-06 09:45:51 -05:00
glEnable(GL_BLEND);
2021-10-12 15:58:54 -04:00
}
Texture& Skybox::GetTexture() { return m_texture; }
Shader& Skybox::GetShader() { return m_shader; }