10/03/2013 GLI 0.4.1.0 released

GLI 0.4.1.0 essentially add the support of texture export to DDS files. Issues with GCC and XCode have been fixed as well.

Create a texture with GLI 0.4 and save it to a DDS file:
  • #include <glm/glm.hpp>
  • #include <gli/gli.hpp>
  • // Allocated a 32 bits texture with one mipmap level
  • gli::texture2D Texture(1, gli::RGBA8_UNORM, gli::texture2D::dimensions_type(256, 256));
  • glm::u8vec4 * LinearAddress = Texture.data<glm::u8vec4>();
  • ...
  • // Do something
  • ...
  • gli::saveStorageDDS(Texture, "texture.dds");

Already a lot of work as been done for GLI 0.5.0 including an extended support of texture views and copies, comparison operators and texture clearing.

Create an OpenGL 4.2 texture with GLI 0.4:
  • #include <gli/gli.hpp>
  • //
  • gli::texture2D Texture(gli::loadStorageDDS("kueken2.dds"));
  • assert(!Texture.empty());
  • glBindTexture(GL_TEXTURE_2D, TextureName);
  • glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 0);
  • glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, GLint(Texture.levels() - 1));
  • glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_RED);
  • glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_G, GL_GREEN);
  • glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_BLUE);
  • glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_A, GL_ALPHA);
  • glTexStorage2D(GL_TEXTURE_2D,
  • GLint(Texture.levels()),
  • GLenum(gli::internal_format(Texture.format())),
  • GLsizei(Texture.dimensions().x),
  • GLsizei(Texture.dimensions().y));
  • if(gli::is_compressed(Texture.format()))
  • {
  • for(gli::texture2D::size_type Level = 0; Level < Texture.levels(); ++Level)
  • {
  • glCompressedTexSubImage2D(GL_TEXTURE_2D,
  • GLint(Level),
  • 0, 0,
  • GLsizei(Texture[Level].dimensions().x),
  • GLsizei(Texture[Level].dimensions().y),
  • GLenum(gli::internal_format(Texture.format())),
  • GLsizei(Texture[Level].size()),
  • Texture[Level].data());
  • }
  • }
  • else
  • {
  • for(gli::texture2D::size_type Level = 0; Level < Texture.levels(); ++Level)
  • {
  • glTexSubImage2D(GL_TEXTURE_2D,
  • GLint(Level),
  • 0, 0,
  • GLsizei(Texture[Level].dimensions().x),
  • GLsizei(Texture[Level].dimensions().y),
  • GLenum(gli::external_format(Texture.format())),
  • GLenum(gli::type_format(Texture.format())),
  • Texture[Level].data());
  • }
  • }
OpenGL quiz >
< A look at OpenGL and Direct3D performance with Unigine
Copyright © Christophe Riccio 2002-2016 all rights reserved
Designed for Chrome 9, Firefox 4, Opera 11 and Safari 5