diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-01-08 13:35:48 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-01-09 18:09:33 +0300 |
commit | 4c4a7e84c64472e38811933646f3fefeb071b0b4 (patch) | |
tree | 5145108f3689d4a24e6ed66137165896eeba43f6 /source/blender/modifiers/intern/MOD_surfacedeform.c | |
parent | d2708b0f73d5f0e0a40b36da21c6a0d15405e739 (diff) |
Task scheduler: Use single parallel range function with more flexible function
Now all the fine-tuning is happening using parallel range settings structure,
which avoid passing long lists of arguments, allows extend fine-tuning further,
avoid having lots of various functions which basically does the same thing.
Diffstat (limited to 'source/blender/modifiers/intern/MOD_surfacedeform.c')
-rw-r--r-- | source/blender/modifiers/intern/MOD_surfacedeform.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/source/blender/modifiers/intern/MOD_surfacedeform.c b/source/blender/modifiers/intern/MOD_surfacedeform.c index d947ae148e9..99533289bce 100644 --- a/source/blender/modifiers/intern/MOD_surfacedeform.c +++ b/source/blender/modifiers/intern/MOD_surfacedeform.c @@ -1013,8 +1013,13 @@ static bool surfacedeformBind(SurfaceDeformModifierData *smd, float (*vertexCos) mul_v3_m4v3(data.targetCos[i], smd->mat, mvert[i].co); } - BLI_task_parallel_range_ex(0, numverts, &data, NULL, 0, bindVert, - numverts > 10000, false); + ParallelRangeSettings settings; + BLI_parallel_range_settings_defaults(&settings); + settings.use_threading = (numverts > 10000); + BLI_task_parallel_range(0, numverts, + &data, + bindVert, + &settings); MEM_freeN(data.targetCos); @@ -1170,8 +1175,13 @@ static void surfacedeformModifier_do(ModifierData *md, float (*vertexCos)[3], un mul_v3_m4v3(data.targetCos[i], smd->mat, mvert[i].co); } - BLI_task_parallel_range_ex(0, numverts, &data, NULL, 0, deformVert, - numverts > 10000, false); + ParallelRangeSettings settings; + BLI_parallel_range_settings_defaults(&settings); + settings.use_threading = (numverts > 10000); + BLI_task_parallel_range(0, numverts, + &data, + deformVert, + &settings); if (tdm_vert_alloc) { MEM_freeN((void *)mvert); |