* Squash development commits for PR
* Fix failing build on armeabi-v7a via android NDK
* Update with blendshape support
* Migrate to auto-cloning and patching tinyusdz (instead of manually copying files)
* Update to latest rendermesh-refactor branch commit
* Remove tracked file
* Update to use recent commit to "dev" branch
"rendermesh-refactor" was merged to "dev" around 9 May 2024 but merge
was not obvious from commit messages
* Add UNUSED() macro
(cherry picked from commit d89fe8f034c353cc5cc5b3ac78cd8845e006de38)
* Update tinyusdz branch
* Prevent per-ABI (x86, x86_64 etc) clone on android
* Add verbose logging cmake option
* Fix macro and patch
* Address compiler warnings
* Address compiler warnings
* Address compiler warnings
* Attempt prevent re-clone/re-patch once downloaded by any ABI build
* Disable tinyusdz clone/build by default
assimp github PR auto-CI checks clone/build the tinyusdz code, and reject PR
due to compiler warnings in the 3rd party external tinyusdz project
---------
Co-authored-by: Steve M <praktique-tellypresence@yahoo.com>
- During UTF32 LE with BOM make sure that the byteswap operation will have enough space when iterating through the text buffer, which shall get encoded.
- closes https://github.com/assimp/assimp/issues/4230
BaseImporter::SearchFileHeaderForToken() expected a pointer to a non-const token list. This was probably an oversight, as nobody would realistically expect the function to change the list. Furthermore, it prevented token lists from being compiled to read-only memory, in some cases even causing the compiler to generate thread-safe initialization.
The list is now const and all callers declare their token lists static const, thus compiling them to read-only memory.
The search for a matching importer had a few issues, see #3791. There were two different mechanisms to determine whether an importer accepts a specific file extension:
1. `aiImporterDesc::mFileExtensions`, which was forwarded to the UI via `BaseImporter::GetExtensionList()`.
2. `BaseImporter::CanRead()` when called with `checkSig == false`, which determines whether to actually use that importer.
Both were redundant and got out of sync repeatedly. I removed 2. completely and replaced it with 1., thereby syncing UI/import and shortening all `BaseImporter::CanRead()` implementations.
Further bugfixes:
- fixed glTF2 importer throwing exceptions when checking whether it can load a file
- removed `BaseImporter::SimpleExtensionCheck()` because it is no longer used and had a bug with case sensitivity
Since the `checkSig` parameter in `BaseImporter::CanRead()` is now useless, it can be removed completely. I’m not sure if this would break ABI compatiblity, so I’ll submit it with a later pull request.
std::string s(""); s = ""; calls the copy constructor, which in turn calls strlen(), … assigning a default-constructed string generates fewer instructions and is therefore preferred.
With C++11 uniform initialization, you’d simply write s = { } instead.
Changed copyright end year to 2020 in every reference "Copyright (c) 2006-XXXX, assimp team".
Changed copyright end year to 2020 in every reference "Copyright (c) 2006-XXXX, ASSIMP Development Team".
Changed copyright end year to 2020 in LICENCE.rtf.
Changed copyright end year in CMakeFiles.txt files and any other places referencing Assimp with a copyright start and end year.