Adapted Escape the Dawn engine.
This commit is contained in:
Executable
+59
@@ -0,0 +1,59 @@
|
||||
#include "PrecompiledHeader.h"
|
||||
#include "CubemapTexture.h"
|
||||
|
||||
CubemapTexture::CubemapTexture(std::string posXFile, std::string negXFile, std::string posYFile, std::string negYFile, std::string posZFile, std::string negZFile)
|
||||
{
|
||||
m_Loaded = false;
|
||||
m_Texture = 0;
|
||||
m_TextureFiles[0] = posXFile;
|
||||
m_TextureFiles[1] = negXFile;
|
||||
m_TextureFiles[2] = posYFile;
|
||||
m_TextureFiles[3] = negYFile;
|
||||
m_TextureFiles[4] = posZFile;
|
||||
m_TextureFiles[5] = negZFile;
|
||||
}
|
||||
|
||||
CubemapTexture::~CubemapTexture()
|
||||
{
|
||||
if (m_Texture != 0) {
|
||||
//glDeleteTextures(1, &m_Texture);
|
||||
}
|
||||
}
|
||||
|
||||
void CubemapTexture::Load()
|
||||
{
|
||||
m_Loaded = true;
|
||||
|
||||
m_Texture = SOIL_load_OGL_cubemap(
|
||||
m_TextureFiles[0].c_str(),
|
||||
m_TextureFiles[1].c_str(),
|
||||
m_TextureFiles[2].c_str(),
|
||||
m_TextureFiles[3].c_str(),
|
||||
m_TextureFiles[4].c_str(),
|
||||
m_TextureFiles[5].c_str(),
|
||||
SOIL_LOAD_AUTO,
|
||||
SOIL_CREATE_NEW_ID,
|
||||
0);
|
||||
|
||||
if (m_Texture == 0) {
|
||||
LOG_ERROR("SOIL cubemap loading error: %s", SOIL_last_result());
|
||||
return;
|
||||
}
|
||||
|
||||
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
||||
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
|
||||
}
|
||||
|
||||
void CubemapTexture::Bind(GLenum textureUnit)
|
||||
{
|
||||
if (!m_Loaded) {
|
||||
LOG_WARNING("Cubemap \"%s\" was not loaded before being bound! Attempting to load now...", m_TextureFiles[0].c_str());
|
||||
Load();
|
||||
}
|
||||
|
||||
glActiveTexture(textureUnit);
|
||||
glBindTexture(GL_TEXTURE_CUBE_MAP, m_Texture);
|
||||
}
|
||||
Reference in New Issue
Block a user