01/10/2010 GLI released

With GLI, the library adds support to DDS 10 files (loading and saving) including all Direct3D 11 compression formats: BC1, BC2, BC3, BC4, BC5, BC6H and BC7. The library still contains DDS 9 and TGA loaders. The support of BC6H and BC7 should be considered experimental as I haven't been able to double check with neither AMD nor nVidia drivers. AMD drivers doesn't report support for GL_ARB_texture_compression_bptc and nVidia drivers seem buggy and display a black screen.

The API has changed so that GLI 0.3.X is not backward compatible with GLI 0.2.X branch. The API better follows OpenGL convensions and introduces some sort of extension system (like GLM). Its reduces the number of headers included because GLI is still a header only library which, despite being very convenient, can significantly slow down the compilation.

GLI requires GLM 0.9 to build.

Creating an OpenGL texture object with GLI manually:
  • #include <gli/gli.hpp>
  • #include <gli/gtx/loader.hpp>
  • ...
  • glGenTextures(1, &TextureName);
  • glBindTexture(GL_TEXTURE_2D, TextureName);
  • gli::texture2D Texture = gli::load("texture-bc3.dds");
  • for(gli::texture2D::level_type Level = 0; Level < Texture.levels(); ++Level)
  • {
  • glCompressedTexImage2D(
  • GLint(Level),
  • GLsizei(Texture[Level].dimensions().x),
  • GLsizei(Texture[Level].dimensions().y),
  • 0,
  • GLsizei(Texture[Level].capacity()),
  • Texture[Level].data());
  • }
  • ...

GLI gives a complete control on the way a texture file used to create an OpenGL texture object. GLI also provides an even simpler way to create an OpenGL texture object using an unique call.

Creating an OpenGL texture object with GLI automatically:
  • #include <gli/gli.hpp>
  • #include <gli/gtx/gl_texture2d.hpp>// Requires OpenGL >= 1.1 to be included before this include
  • ...
  • GLuint TextureName = gli::createTexture2D("texture-bc3.dds");
  • ...

This way, the texture object is created accordingly to the texture file content.

  • There are still some main DDS features: image array, cube maps, texture 3d.
  • Creation of a file format to better map the texture supported my this library and OpenGL with command line tools to convert from DDS10 files.
  • Loading from memory.
  • Improvement of the OpenGL interopability: Loading and saving of a whole framebuffer object in 1 call?
  • Cross format support, eg: loading from one file format, saving in another format.
  • And probably more things, don't hesitate to send me some feedbacks!

I aim to build a simple image library as useful and used than GLM for math so please send me some feedbacks to help the development taking the right direction.

GLM released >
< G-Truc Creation source released
Copyright Christophe Riccio 2002-2014 all rights reserved
Designed for Chrome 9, Firefox 4, Opera 11 and Safari 5