fenbf / SOIL_ext

Updates to the SOIL image lib: mipmaps, core opengl

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

#Simple OpenGL Image Library Ext# The original SOIL from July 7, 2008 is released with Public Domain Licence.

The Ext version contains the following changes:

  • [in progress] Added option to use immutable texture storage
  • When possible (when extension is supported) library can create texture using glTextureStorage and then call glTexSubImage.
  • See more here OpenGL wiki
  • [done] Mipmap generation using glGenerateMipmap
  • Original library scaled image to be POT and then used custom procedure to generate mipmaps. This can take some time.
  • This change uses glGenerateMipmapEXT (if GL_EXT_framebuffer_object extension is available). This way Soil can create mipmaps for NPOT textures and use hardware support.
  • New flag is added: SOIL_FLAG_GL_MIPMAPS. It can be passed to the SOIL_load_OGL_texture* procedures. If the extension (GL_EXT_framebuffer_object) is not supported then function uses the same process as when passing SOIL_FLAG_MIPMAPS.
  • [done] upgraded to the version 1.33 of stb_image
  • stb_image_write.c/.h were created. Those files contain missing functionality that was cut from the newer version of stbi (cut in 1.22)
  • [done] Using only Modern OpenGL functionalities (when possible)
  • CLAMP_TO_EDGE instead of GL_CLAMP
  • glGetStringi instead of glGetString(GL_EXTENSIONS)
  • [done] Visual Studio 2012 Express solution
  • It compiles without any warnings: used _CRT_SECURE_NO_WARNINGS and several code changes regarding int/float cast and signed/unsigned comparisons.
  • Added test_soil project to the solution. Console is showed to display basic loader info.
  • Building with Debug Information Format set to "" (Empty). That way output file is smaller and there are no warnings about missing pdb files.
  • [done] Added test_perf_SOIL test project
  • Tests performance of SOIL_FLAG_GL_MIPMAPS vs SOIL_FLAG_MIPMAPS
  • Loads 10... or 100 textures and measures elapsed time.

###Notes###

  • Original functionality is preserved and should work as expected.
  • Doc comments were updated to describe changes
  • Needs more testing :)

About

Updates to the SOIL image lib: mipmaps, core opengl

License:The Unlicense


Languages

Language:C 95.6%Language:Objective-C 2.5%Language:C++ 1.9%