PDA

View Full Version : problem loading compressed textures



jefftimesten
10-22-2008, 12:21 PM
I am having trouble getting any DDS textures to show up in my c++ application. They just show up as white. I am getting an "invalid enum" error from my glCompressedTex2d, which is supposed to mean that 1) internalformat is one of the generic compressed internal formats, or 2) target is not set to GL_TEXTURE_2D. Neither of these are true. I am using GL_TEXTURE_2D as the target, and I print out the format right before my call to glCompressedTex2D, and it is GL_COMPRESSED_RGBA_S3TC_EXT5_EXT. A call to glGetString( GL_COMPRESSED_TEXTURE_FORMATS ) returns: GL_EXT_texture_compression_dxt1
GL_EXT_texture_compression_s3tc

This same code and texture works fine on my mac, but when I bring it to Linux, it spits errors at me. I am using Andreas Jonsson's DDS texture loader that I found at the bottom of this page: http://www.codesampler.com/usersrc/usersrc_7.htm

I am running this app in Ubuntu, which is running in Parallels on my MacBook Pro, so the setup is kind of crazy. But I think it should be able to run fine on both platforms.

I am kind of new to OpenGL, so I looked around a bit for what other kinds of information I should provide about my configuration, but I didn't find anything. But if you think you have an idea what is going on, I would very much appreciate some help.

Thanks!

jefftimesten
10-22-2008, 07:26 PM
PS: I explained my situation a little better here: http://www.openframeworks.cc/forum/viewtopic.php?p=6489

PkK
10-25-2008, 11:22 AM
You wrote that there's no GL_EXT_texture_compression_s3tc in your extension string. You're trying to load a DXT5 texture, which is not supported by your current driver configuration.
S3TC (and thus DXT5) is not part of core OpenGL, so you should expect some OpenGL implementations to not support this.

What you can do to get S3TC support: Install libdxtn (AFAIK hosted in neutral switzerland). Depending on where you live this is illegal though. Hmm, in the other forum you said you're in New York. It's illegal there.

Philipp