- Added function "cleanup" to centralize release of resources.
- Added function "freeTextureIds" to free textureIds memory.
- Added call to freeTextureIds in LoadGLTextures to free memory before it is allocated again.
- Made several changes in KillGLWindow to prevent certain Win32 handle/resources
from being released more than once.
Several places in the sample's code were calling Unicode versions of Win32 functions with "multibyte" strings. A few changes were required to fix it.
I added a class "UTFConverter", which handles calls to unicode/multibyte string conversions. This should help minimize the impacts on code change in case C++'s codecvt_utf8 ever changes.
In addition, seveal memory leaks have been found, but these fixes will come in another PR because it goes beyond the scope of this PR.
DevIL.lib was removed in CMakeFiles.txt, as it is unused in the sample.
Here is a list of the changes:
- Fixed MB string calls to Unicode functions.
- Added class UTFConverter to handle string conversions.
- Removed reference to DevIL.lib.
- Fixed compile warnings.
The following changes were tested with the following projects:
- assimp DLL
- unit tests
- tools/assimp_cmd
- tools/assimp viewer
- samples/SimpleOpenGL
- samples/SimpleTexturedDirectx11
- samples/SimpleTexturedOpenGL
For each program listed above, the results were tested when (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) is true and false.
Also, the "lib" in SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_HOME_DIRECTORY}/lib") was changed to "bin" to allow DLLs to be written to executables/launchables programs directory.
- make use of range for loops
- make use of empty() method for the std::vector
- removed unnecessary std::string initialization
- use ' ' instead of " " for the find methods (should be "faster")
- simplified some function
- make use of emplace_back instead of push_back (should be "faster")
- other small changes