[Bf-blender-cvs] [7df2e83f80f] temp-lineart-embree: LineArt: Use reserve() before merging occlusion results.
YimingWu
noreply at git.blender.org
Thu Mar 31 05:34:37 CEST 2022
Commit: 7df2e83f80fbdfb705d022064a061fe1d6dce34e
Author: YimingWu
Date: Thu Mar 31 11:33:46 2022 +0800
Branches: temp-lineart-embree
https://developer.blender.org/rB7df2e83f80fbdfb705d022064a061fe1d6dce34e
LineArt: Use reserve() before merging occlusion results.
===================================================================
M source/blender/gpencil_modifiers/intern/lineart/lineart_cpp_bridge.cpp
===================================================================
diff --git a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpp_bridge.cpp b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpp_bridge.cpp
index 71319d34143..08eb0234b6f 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpp_bridge.cpp
+++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpp_bridge.cpp
@@ -48,10 +48,16 @@ LineartOcclusionPair *lineart_thread_finalize_occlusion_result(
LineartThreadOcclusionDataCombined **r_combined_storage)
{
Vector<LineartOcclusionPair> *result = new Vector<LineartOcclusionPair>;
+ int count = 0;
+ for (const Vector<LineartOcclusionPair> &local : (*(_LineartThreadOcclusionData *)data)) {
+ count += local.size();
+ }
+ /* Reserve once so it's faster to extend. */
+ result->reserve(count);
for (const Vector<LineartOcclusionPair> &local : (*(_LineartThreadOcclusionData *)data)) {
result->extend(local);
}
- *result_count = result->size();
+ *result_count = count;
*r_combined_storage = (LineartThreadOcclusionDataCombined *)result;
return (LineartOcclusionPair *)result->data();
};
More information about the Bf-blender-cvs
mailing list