While there is probably a direct mapping between DirectX and OpenGL texel formats. I took some time to try to find out which solutions exist to load DDS files for OpenGL. Alas, it seems that there's nothing publicly available that is fancy, or complete, or simple. Everyone seems to do the same work over and over again for their own use.
Problems ?
DirectX and OpenGL use different texture orientation conventions. OpenGL is fed with "bottom first" images, while DirectX eats "top first" images. This may lead to problems, and hopefully solutions, described by tfaure - flipping the images, even in their compressed forms. Does this work for BC7 textures ?
Sample code ?
- some code is also available in Humus framework
- simple snippet, neat, but lacks support of DX10 header parsing and DX10+ pixel formats/compressions : http://www.mindcontrol.org/~hplus/graphics/dds-info/
- a whole library, could be stripped down to provide DDS parsing : NVidia texture tools 2
- a whole library, probably can be a source of inspiration, but is GPL : Gimp DDS Plugin
- another library, source of possible inspiration, but LGPL : DevIL
Is there any DDS database or repository available for testing purpose ? It seems that there are texture packs available, but something simple to automate testing would be nice...