Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-08-19Outliner: (Refactor) Use C++ map instead of GHashJulian Eisel
This container is type safe and contains a few nice optimizations, although they shouldn't make a big difference here in practice. The hashing now uses our default hashing method which reduces code complexity and seems to perform slightly better in my tests. For a Heist shot with a highly complex library overrides hierarchy in the Outliner this reduces the tree building time from around 25 to 23.6 seconds here. However the main design change for performance is yet to come, all this is just general code refactoring (which at least shouldn't make performance worse).
2022-08-19Cleanup: spelling in commentsCampbell Barton
2022-08-18Outliner: Refactor outliner tree-hash interfaces with C++Julian Eisel
- Turn storage into an object with "automatic" memory management (RAII) so freeing is implicit and reliable. - Turn functions into member functions, to have the data and its functions close together with controlled access that increases encapsulation and hiding implementation details. - Use references to indicate null is not an expected value. - Related minor cleanup (comments, use const etc.) Couldn't spot any changes in performance.
2022-08-18Outliner: Use C++ container for tree hash element storageJulian Eisel
Simplifies code quite a bit, since this was doing the typical work of such a container. I may remove this vector entirely as I'm working on performance fixes, not sure, but simplifying this helps reason about the design. Couldn't spot performance differences in some benchmarks, and I wouldn't expect any. Maybe some minor onces thanks to the small buffer optimization of `blender::Vector`.
2022-08-18Cleanup: General style improvements for Outliner tree hashing codeJulian Eisel
- Use C++ nullptr instead of C's NULL (clang-tidy warns otherwise) - Use early exit/continue to avoid indentation (helps readability because visual scope of no-op branches is minimized). - Use const for local variables, to separate them clearly from the mutable ones. - Avoid struct typedef, this is not needed in C++
2022-08-17Outliner: Compile outliner tree-hashing files in C++Julian Eisel
Some performance issues were found here with a heavy production file and we want to look into using some C++ to improve things for this ancient code.