assimp/code/AssetLib
Jan Krassnigg 1e93280f47 Infrastructure for reporting progress
This commit adds two classes:
* ProgressTracker
* ProgressScope

The first is for users to implement, and to instantiate when they desire
to get informed about the overall progress.

The second is to be added to all functions that may take a considerable
amount of time, such that they can report back how far along they are.

These are much more convenient to use than the existing ProgressHandler.
ProgressScope is designed such that it only requires "local knowledge"
about upcoming and finished work. Scopes are nested and combined to
form the final global progress.

The active ProgressTracker is stored in a thread_local pointer.
This is a consicius decision since in assimp there is often no 'context'
passed through. The ProgressTracker may be needed anywhere, and it would
be tedious and a huge change to pass it through to every function.
Therefore, using a thread_local variable makes it accessible everywhere,
without a major interface change. Since assimmp is single-threaded,
but may be run in parallel on multiple threads, a thread_local is a
good trade-off, in my opinion.

This change only adds few uses of ProgressScope, to generally show how
it would be used. Also for our use cases these where the most pressing
places to add progress reporting, so this already covers loading from FBX
files pretty well.
2023-08-01 14:06:12 +02:00
..
3DS Merge branch 'master' into kimkulling/refactoring_geoutils 2023-05-04 21:10:00 +02:00
3MF Fix warning related to inconsistent-missing-destructor-override. 2023-04-01 21:49:38 +08:00
AC ACLoader: add support for reading more than one texture per object 2023-02-03 20:29:56 -05:00
AMF Fix warning related to missing-noreturn. 2023-04-01 18:46:12 +08:00
ASE Fix Bad-cast to Assimp::D3DS::Material from invalid vptr in Assimp::ASE::Parser::ParseLV2MaterialBlock 2023-06-14 07:38:38 +02:00
Assbin Trim Trailing Whitespace 2023-01-16 09:12:35 +01:00
Assjson Fix warning related to missing-variable-declarations, add static to global variable. 2023-04-19 23:27:23 +08:00
Assxml Apply various clang-tidy checks for smartprs and modern C++ types 2022-11-08 11:03:55 -05:00
B3D Fix warning related to unreachable-code. 2023-04-01 13:01:22 +08:00
BVH Apply various clang-tidy checks for smartprs and modern C++ types 2022-11-08 11:03:55 -05:00
Blender Unify way to check readable blender files. 2023-06-29 15:10:28 +02:00
C4D Merge branch 'master' into clean-up-ctors-dtors 2023-01-23 21:21:34 +01:00
COB Apply various clang-tidy checks for smartprs and modern C++ types 2022-11-08 11:03:55 -05:00
CSM Apply various clang-tidy checks for smartprs and modern C++ types 2022-11-08 11:03:55 -05:00
Collada Fix warning related to unreachable-code-break. 2023-04-19 22:18:34 +08:00
DXF Fix: Put unused var into comments to later use. 2023-06-19 23:38:57 +02:00
FBX Infrastructure for reporting progress 2023-08-01 14:06:12 +02:00
HMP Fix memory leak 2023-06-07 07:02:50 +00:00
IFC Reafctoring: Add GeoUtils usage 2023-05-04 20:57:20 +02:00
IQM Apply various clang-tidy checks for smartprs and modern C++ types 2022-11-08 11:03:55 -05:00
Irr Remove debugging code, clean up some notes 2023-07-02 14:32:17 -04:00
LWO Merge branch 'master' into kimkulling/refactoring_geoutils 2023-05-04 21:10:00 +02:00
LWS Fix UNKNOWN WRITE in std::__1::list<Assimp::LWO::Envelope, std::__1::allocator<Assimp::LWO::Envelope> 2023-06-14 07:38:47 +02:00
M3D Merge branch 'master' into clean-up-ctors-dtors 2023-01-23 21:21:34 +01:00
MD2 Apply various clang-tidy checks for smartprs and modern C++ types 2022-11-08 11:03:55 -05:00
MD3 Apply various clang-tidy checks for smartprs and modern C++ types 2022-11-08 11:03:55 -05:00
MD4 Move format importer and exporter into its won folder. 2020-05-02 15:14:38 +02:00
MD5 Fix Heap-buffer-overflow READ in Assimp::MD5::MD5Parser::ParseSection 2023-06-14 07:38:57 +02:00
MDC Apply various clang-tidy checks for smartprs and modern C++ types 2022-11-08 11:03:55 -05:00
MDL Merge branch 'master' into 5093294573486080 2023-06-27 17:04:58 +02:00
MMD Fix warning related to missing-noreturn. 2023-04-01 18:46:12 +08:00
MS3D Fix index out of bounds 2023-02-20 19:56:57 +01:00
NDO Apply various clang-tidy checks for smartprs and modern C++ types 2022-11-08 11:03:55 -05:00
NFF Trim Trailing Whitespace 2023-01-16 09:12:35 +01:00
OFF Fix UNKNOWN WRITE in Assimp::SortByPTypeProcess::Execute 2023-06-14 15:50:50 +00:00
Obj Fix memory leak 2023-07-02 14:12:49 -04:00
Ogre Fix warning related to error=return-type. 2023-04-05 07:39:17 +08:00
OpenGEX Fix warning related to unreachable-code-return, remove redundant return. 2023-04-05 07:37:49 +08:00
Ply When "getNextBlock" was called after "getNextLine", the pointer could still on the newline. 2023-02-04 15:16:22 +01:00
Q3BSP Tidy Up Constructors and Destructors 2023-01-16 21:47:11 +01:00
Q3D Fix warning related to unreachable-code-break. 2023-04-19 22:18:35 +08:00
Raw Fix warning related to inconsistent-missing-destructor-override. 2023-04-01 21:49:38 +08:00
SIB Fix warning related to missing-variable-declarations, remove unused global variables. 2023-04-19 23:26:03 +08:00
SMD Fix eternal loop 2023-07-03 09:12:00 +00:00
STEPParser Update copyrights 2022-01-10 21:13:43 +01:00
STL Apply various clang-tidy checks for smartprs and modern C++ types 2022-11-08 11:03:55 -05:00
Step Trim Trailing Whitespace 2023-01-16 09:12:35 +01:00
Terragen Fix Terragen loader 2023-02-03 11:44:27 +02:00
Unreal Fix warning related to inconsistent-missing-destructor-override. 2023-04-01 21:49:38 +08:00
X Merge branch 'master' into master 2023-05-21 18:26:56 +02:00
X3D Merge branch 'master' into kimkulling/refactoring_geoutils 2023-05-04 21:10:00 +02:00
XGL Replace Variables With Literals 2023-01-16 08:18:36 +01:00
glTF Fix compilation on windows. 2023-06-29 08:20:51 +02:00
glTF2 Add missing rapidjson headers. 2023-07-21 11:33:06 +02:00