#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 :)