Commit Graph

1353 Commits (1e93280f471452fe567ca3403bdac8e604135376)

Author SHA1 Message Date
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
sfjohnston dd40b0ccee Changed #define FBX_FOV_UNKNOWN to const float kFovUnknown 2023-07-23 12:05:01 -07:00
sfjohnston 3ec8a36764
Merge branch 'assimp:master' into sfjohnston_mods 2023-07-23 08:37:47 -07:00
Marco Feuerstein 37a1366fb7 Add missing rapidjson headers. 2023-07-21 11:33:06 +02:00
Kim Kulling 64e0ba2625
Merge branch 'master' into sfjohnston_mods 2023-07-20 09:21:13 +00:00
Marco Feuerstein bf38d67935 Fix detection of KHR_materials_specular. 2023-07-13 11:51:56 +02:00
sfjohnston c7afea3cd7
Merge branch 'assimp:master' into sfjohnston_mods 2023-07-10 07:58:21 -07:00
Kim Kulling 90ff723b6c
Merge branch 'master' into gltf_binary 2023-07-03 21:31:28 +02:00
Kim Kulling ed903543a7
Merge branch 'master' into 4879958521806848 2023-07-03 19:50:38 +02:00
Alex 093e35dd54 Fix eternal loop 2023-07-03 09:12:00 +00:00
Alex edb8375702 Fix integer overflow 2023-07-03 09:11:38 +00:00
PencilAmazing f1561f03ce
Merge branch 'master' into irrfix 2023-07-02 15:10:04 -04:00
PencilAmazing 0bacc7134d Remove debugging code, clean up some notes 2023-07-02 14:32:17 -04:00
PencilAmazing 19da9cc84d Port mesh loading to pugixml. Untested. 2023-07-02 14:32:12 -04:00
dog 3e1fd74940 Fix up scene loading. pugixml is a breadth-first parser while irrxml is
a depth first. This only parses scene structure, no mesh loading yet.
2023-07-02 14:30:54 -04:00
PencilAmazing 537b445a59 Apply clang-format to files 2023-07-02 14:17:52 -04:00
Alex 6f3bfb5b60 Fix memory leak 2023-07-02 14:12:49 -04:00
Alex 3838a8aaf8 Fix unknown write in Assimp::ObjFileMtlImporter::getFloatValue 2023-07-02 14:12:49 -04:00
Marco Feuerstein 82d3f47432 Unify way to check readable blender files. 2023-06-29 15:10:28 +02:00
Marco Feuerstein 2875de132f Fix compilation on windows. 2023-06-29 08:20:51 +02:00
Marco Feuerstein 17fac97b04 Fix magic token usage. 2023-06-29 08:20:51 +02:00
Marco Feuerstein 1c0f3c5f87 Fix string length calculation. 2023-06-29 08:20:50 +02:00
Marco Feuerstein a2bdfdd05a Improve binary check for gltf and gltf2.
By checking the magic token we don't depend on the extension any more
and follow the official way to detect a gltf file as binary, see also
https://github.com/KhronosGroup/glTF/blob/main/extensions/1.0/Khronos/KHR_binary_glTF/README.md#header
and https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#binary-header.
2023-06-29 08:20:50 +02:00
Kim Kulling 1ec3dbd11a
Merge branch 'master' into 5093294573486080 2023-06-27 17:04:58 +02:00
Kim Kulling f24224fdc5
Merge branch 'master' into SupportOBJSpecifiedOnlyAPartOfVertexColors 2023-06-27 13:44:31 +02:00
Kim Kulling db6c1a8b1c
Merge branch 'master' into 5921493454815232 2023-06-27 11:03:50 +02:00
Kim Kulling ef6bf03acd
Merge branch 'master' into 5143879191494656 2023-06-27 10:23:36 +02:00
Kim Kulling 141e278e1f
Merge branch 'master' into 5407417422970880 2023-06-27 10:07:21 +02:00
Kim Kulling b1181b1086
Merge branch 'master' into 4508318827937792 2023-06-25 21:20:02 +02:00
Kim Kulling 7005a9caa2
Merge branch 'master' into 6520123362508800 2023-06-25 21:07:34 +02:00
Kim Kulling 3545aab937
Merge branch 'master' into 5781186265350144 2023-06-25 17:51:01 +02:00
Kim Kulling bd65af0d44
Merge branch 'master' into SupportOBJSpecifiedOnlyAPartOfVertexColors 2023-06-20 09:38:53 +02:00
Kim Kulling 6502b97d3e Fix: Put unused var into comments to later use. 2023-06-19 23:38:57 +02:00
Kim Kulling 7f0c388ad8 Fix: Put unused var into comments to later use. 2023-06-19 23:27:32 +02:00
Kim Kulling 10059e6431 Add handling for negative indices. 2023-06-19 23:21:35 +02:00
emaame 22c8d97b54 Support OBJ specified only a part of vertex colors
The omitted vertex colors are treated as (0, 0, 0, 1).

e.g

v  0.0  0.0  0.0
v  0.0  0.0  1.0  0.0  0.0  0.0
v  0.0  1.0  0.0
v  1.0  0.0  0.0  1.0  0.6  0.3
v  1.0  1.0  0.0
2023-06-17 16:31:04 +09:00
Scott Johnston aab3c8010c Correct from full FOV to assimp half-fov in camera. Compute from filmWidth and focalLength if FOV not specified. 2023-06-15 12:16:06 -07:00
Alex 36dfa3bed3 Fix UNKNOWN WRITE in Assimp::SortByPTypeProcess::Execute 2023-06-14 15:50:50 +00:00
Alex 9ef71fe231
Merge branch 'master' into 5781186265350144 2023-06-14 07:40:47 +02:00
Alex 646d3591b6 Fix memory leak 2023-06-14 07:40:21 +02:00
Alex 496a4bf156 Fix unknown write in Assimp::ObjFileMtlImporter::getFloatValue 2023-06-14 07:40:21 +02:00
Alex 8012657169 Fix Heap-buffer-overflow READ in Assimp::MD5::MD5Parser::ParseSection 2023-06-14 07:38:57 +02:00
Alex dbd15fd351 Fix UNKNOWN WRITE in std::__1::list<Assimp::LWO::Envelope, std::__1::allocator<Assimp::LWO::Envelope> 2023-06-14 07:38:47 +02:00
Alex 86aecf395e Fix Bad-cast to Assimp::D3DS::Material from invalid vptr in Assimp::ASE::Parser::ParseLV2MaterialBlock 2023-06-14 07:38:38 +02:00
Alex c6c95b69f6 Use SizeCheck 2023-06-14 07:38:02 +02:00
Alex 54b0c00418 Fix UNKNOWN READ in Assimp::MDLImporter::ParseSkinLump_3DGS_MDL7 2023-06-14 07:38:02 +02:00
Alex f897b0c461
Merge branch 'master' into 6520123362508800 2023-06-13 22:06:08 +02:00
Kim Kulling 3ccf242bdb
Merge branch 'master' into memleak 2023-06-13 19:46:56 +02:00
Kim Kulling bef66deeda
Update glTF2Importer.h 2023-06-08 20:56:14 +02:00
Kim Kulling 1ab4161cd7
Update glTF2Importer.cpp 2023-06-08 20:55:48 +02:00