From e53e626a639c2f9e4c32f7d46e7451a2f09c782f Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Mon, 16 May 2011 16:26:07 -0400 Subject: [PATCH] build mipmaps with GLU for texture shader --- wfobj-view.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/wfobj-view.cc b/wfobj-view.cc index 6c4c2b0..6c7efec 100644 --- a/wfobj-view.cc +++ b/wfobj-view.cc @@ -51,9 +51,18 @@ static GLuint load_texture(const char *fname) GLuint id = loadTexture(fname); if (id != 0) { + int width, height; glBindTexture(GL_TEXTURE_2D, id); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + 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; }