build mipmaps for textures
This commit is contained in:
parent
d7dfddda4e
commit
73d418b35c
@ -1349,7 +1349,23 @@ bool Engine::loadWFObjFile(const char *fname, WFObj::Buffer & buff)
|
|||||||
GLuint Engine::loadTexture(const char *fname)
|
GLuint Engine::loadTexture(const char *fname)
|
||||||
{
|
{
|
||||||
string path = locateResource(fname);
|
string path = locateResource(fname);
|
||||||
return m_textureCache.load(path.c_str());
|
GLuint id = m_textureCache.load(path.c_str());
|
||||||
|
if (id != 0)
|
||||||
|
{
|
||||||
|
int width, height;
|
||||||
|
glBindTexture(GL_TEXTURE_2D, id);
|
||||||
|
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &width);
|
||||||
|
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &height);
|
||||||
|
char *data = (char *) malloc(4 * width * height);
|
||||||
|
glGetTexImage(GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);
|
||||||
|
gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA, width, height, GL_RGBA,
|
||||||
|
GL_UNSIGNED_BYTE, data);
|
||||||
|
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
|
||||||
|
GL_LINEAR_MIPMAP_LINEAR);
|
||||||
|
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||||
|
free(data);
|
||||||
|
}
|
||||||
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
/******** Engine::PickedObject functions ********/
|
/******** Engine::PickedObject functions ********/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user