Files
fishtanks/src/CubemapTexture.cpp
T
Jace 3470a80f40 Revert "Indentation style changed to Horstmann"
This reverts commit f2259f712d.

Conflicts:

	src/GameWorld.cpp
	src/Systems/PhysicsSystem.cpp
2014-04-12 01:48:15 +02:00

62 lines
1.7 KiB
C++
Executable File

#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);
}