|
|
|
@ -441,11 +441,10 @@ static int sculpt_nearest_vertex_get(
|
|
|
|
|
nvtd.nearest_vertex_distance_squared = FLT_MAX;
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
settings.func_finalize = nearest_vertex_get_finalize;
|
|
|
|
|
settings.userdata_chunk = &nvtd;
|
|
|
|
|
settings.userdata_chunk_size = sizeof(NearestVertexTLSData);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &task_data, do_nearest_vertex_get_task_cb, &settings);
|
|
|
|
|
|
|
|
|
|
return task_data.nearest_vertex_index;
|
|
|
|
@ -829,9 +828,7 @@ static void paint_mesh_restore_co(Sculpt *sd, Object *ob)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && !ss->bm &&
|
|
|
|
|
totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP) && !ss->bm, totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, paint_mesh_restore_co_task_cb, &settings);
|
|
|
|
|
|
|
|
|
|
if (nodes) {
|
|
|
|
@ -1524,11 +1521,10 @@ static void calc_area_center(
|
|
|
|
|
AreaNormalCenterTLSData anctd = {{{0}}};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
settings.func_finalize = calc_area_normal_and_center_finalize;
|
|
|
|
|
settings.userdata_chunk = &anctd;
|
|
|
|
|
settings.userdata_chunk_size = sizeof(AreaNormalCenterTLSData);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, calc_area_normal_and_center_task_cb, &settings);
|
|
|
|
|
|
|
|
|
|
/* for flatten center */
|
|
|
|
@ -1547,7 +1543,7 @@ static void calc_area_normal(
|
|
|
|
|
Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode, float r_area_no[3])
|
|
|
|
|
{
|
|
|
|
|
const Brush *brush = BKE_paint_brush(&sd->paint);
|
|
|
|
|
bool use_threading = (sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT;
|
|
|
|
|
bool use_threading = (sd->flags & SCULPT_USE_OPENMP);
|
|
|
|
|
sculpt_pbvh_calc_area_normal(brush, ob, nodes, totnode, use_threading, r_area_no);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1584,11 +1580,10 @@ bool sculpt_pbvh_calc_area_normal(const Brush *brush,
|
|
|
|
|
AreaNormalCenterTLSData anctd = {{{0}}};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, use_threading, totnode);
|
|
|
|
|
settings.func_finalize = calc_area_normal_and_center_finalize;
|
|
|
|
|
settings.userdata_chunk = &anctd;
|
|
|
|
|
settings.userdata_chunk_size = sizeof(AreaNormalCenterTLSData);
|
|
|
|
|
settings.use_threading = use_threading;
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, calc_area_normal_and_center_task_cb, &settings);
|
|
|
|
|
|
|
|
|
|
/* for area normal */
|
|
|
|
@ -1633,11 +1628,10 @@ static void calc_area_normal_and_center(
|
|
|
|
|
AreaNormalCenterTLSData anctd = {{{0}}};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
settings.func_finalize = calc_area_normal_and_center_finalize;
|
|
|
|
|
settings.userdata_chunk = &anctd;
|
|
|
|
|
settings.userdata_chunk_size = sizeof(AreaNormalCenterTLSData);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, calc_area_normal_and_center_task_cb, &settings);
|
|
|
|
|
|
|
|
|
|
/* for flatten center */
|
|
|
|
@ -2714,8 +2708,7 @@ static void smooth(Sculpt *sd,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
|
|
|
|
|
switch (type) {
|
|
|
|
|
case PBVH_GRIDS: {
|
|
|
|
@ -2774,8 +2767,7 @@ static void bmesh_topology_rake(
|
|
|
|
|
.strength = factor,
|
|
|
|
|
};
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_topology_rake_bmesh_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
@ -2832,8 +2824,7 @@ static void do_mask_brush_draw(Sculpt *sd, Object *ob, PBVHNode **nodes, int tot
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_mask_brush_draw_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -2920,8 +2911,7 @@ static void do_draw_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_draw_brush_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -2997,8 +2987,7 @@ static void do_draw_sharp_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int to
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_draw_sharp_brush_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -3114,8 +3103,7 @@ static void do_crease_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnod
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_crease_brush_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -3177,8 +3165,7 @@ static void do_pinch_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_pinch_brush_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -3250,8 +3237,7 @@ static void do_grab_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_grab_brush_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -3500,8 +3486,7 @@ static void do_elastic_deform_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, in
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_elastic_deform_brush_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -3594,8 +3579,7 @@ static void do_pose_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_pose_brush_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -3665,11 +3649,10 @@ static void sculpt_pose_grow_pose_factor(
|
|
|
|
|
PoseGrowFactorTLSData gftd;
|
|
|
|
|
gftd.tot_pos_avg = 0;
|
|
|
|
|
zero_v3(gftd.pos_avg);
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
settings.func_finalize = pose_brush_grow_factor_finalize;
|
|
|
|
|
settings.userdata_chunk = &gftd;
|
|
|
|
|
settings.userdata_chunk_size = sizeof(PoseGrowFactorTLSData);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
|
|
|
|
|
bool grow_next_iteration = true;
|
|
|
|
|
float prev_len = FLT_MAX;
|
|
|
|
@ -3875,8 +3858,7 @@ static void sculpt_pose_brush_init(
|
|
|
|
|
/* Smooth the pose brush factor for cleaner deformation */
|
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, pose_brush_init_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -3944,8 +3926,7 @@ static void do_nudge_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_nudge_brush_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -4066,8 +4047,7 @@ static void do_snake_hook_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int to
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_snake_hook_brush_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -4139,8 +4119,7 @@ static void do_thumb_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_thumb_brush_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -4213,8 +4192,7 @@ static void do_rotate_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnod
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_rotate_brush_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -4311,8 +4289,7 @@ static void do_layer_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode
|
|
|
|
|
BLI_mutex_init(&data.mutex);
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_layer_brush_task_cb_ex, &settings);
|
|
|
|
|
|
|
|
|
|
BLI_mutex_end(&data.mutex);
|
|
|
|
@ -4380,8 +4357,7 @@ static void do_inflate_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totno
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_inflate_brush_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -4590,8 +4566,7 @@ static void do_flatten_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totno
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_flatten_brush_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -4689,8 +4664,7 @@ static void do_clay_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_clay_brush_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -4820,8 +4794,7 @@ static void do_clay_strips_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int t
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_clay_strips_brush_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -4914,8 +4887,7 @@ static void do_fill_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_fill_brush_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -5007,8 +4979,7 @@ static void do_scrape_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnod
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_scrape_brush_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -5077,8 +5048,7 @@ static void do_gravity(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode, fl
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, do_gravity_task_cb_ex, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -5248,8 +5218,7 @@ static void do_brush_action(Sculpt *sd, Object *ob, Brush *brush, UnifiedPaintSe
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &task_data, do_brush_action_task_cb, &settings);
|
|
|
|
|
|
|
|
|
|
if (sculpt_brush_needs_normal(ss, brush)) {
|
|
|
|
@ -5471,8 +5440,7 @@ static void sculpt_combine_proxies(Sculpt *sd, Object *ob)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, sculpt_combine_proxies_task_cb, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -5564,8 +5532,7 @@ static void sculpt_flush_stroke_deform(Sculpt *sd, Object *ob, bool is_proxy_use
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, sculpt_flush_stroke_deform_task_cb, &settings);
|
|
|
|
|
|
|
|
|
|
if (vertCos) {
|
|
|
|
@ -8149,8 +8116,7 @@ static void sculpt_filter_cache_init(Object *ob, Sculpt *sd)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, filter_cache_init_task_cb, &settings);
|
|
|
|
|
|
|
|
|
|
int tot_active_nodes = 0;
|
|
|
|
@ -8363,9 +8329,8 @@ static int sculpt_mesh_filter_modal(bContext *C, wmOperator *op, const wmEvent *
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) &&
|
|
|
|
|
ss->filter_cache->totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(
|
|
|
|
|
&settings, (sd->flags & SCULPT_USE_OPENMP), ss->filter_cache->totnode);
|
|
|
|
|
BLI_task_parallel_range(0, ss->filter_cache->totnode, &data, mesh_filter_task_cb, &settings);
|
|
|
|
|
|
|
|
|
|
if (ss->modifiers_active || ss->kb) {
|
|
|
|
@ -8642,8 +8607,7 @@ static int sculpt_mask_filter_exec(bContext *C, wmOperator *op)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, mask_filter_task_cb, &settings);
|
|
|
|
|
|
|
|
|
|
if (ELEM(filter_type, MASK_FILTER_GROW, MASK_FILTER_SHRINK)) {
|
|
|
|
@ -8795,8 +8759,7 @@ static int sculpt_dirty_mask_exec(bContext *C, wmOperator *op)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(&settings, (sd->flags & SCULPT_USE_OPENMP), totnode);
|
|
|
|
|
BLI_task_parallel_range(0, totnode, &data, dirty_mask_task_cb, &settings);
|
|
|
|
|
|
|
|
|
|
float min = FLT_MAX;
|
|
|
|
@ -8982,9 +8945,8 @@ static int sculpt_mask_expand_modal(bContext *C, wmOperator *op, const wmEvent *
|
|
|
|
|
BKE_sculpt_update_object_for_edit(depsgraph, ob, true, false);
|
|
|
|
|
for (int i = 0; i < smooth_iterations; i++) {
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) &&
|
|
|
|
|
ss->filter_cache->totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(
|
|
|
|
|
&settings, (sd->flags & SCULPT_USE_OPENMP), ss->filter_cache->totnode);
|
|
|
|
|
BLI_task_parallel_range(0, ss->filter_cache->totnode, &data, mask_filter_task_cb, &settings);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -9045,10 +9007,8 @@ static int sculpt_mask_expand_modal(bContext *C, wmOperator *op, const wmEvent *
|
|
|
|
|
.mask_expand_keep_prev_mask = RNA_boolean_get(op->ptr, "keep_previous_mask"),
|
|
|
|
|
};
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) &&
|
|
|
|
|
ss->filter_cache->totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
|
|
|
|
|
BKE_pbvh_parallel_range_settings(
|
|
|
|
|
&settings, (sd->flags & SCULPT_USE_OPENMP), ss->filter_cache->totnode);
|
|
|
|
|
BLI_task_parallel_range(0, ss->filter_cache->totnode, &data, sculpt_expand_task_cb, &settings);
|
|
|
|
|
ss->filter_cache->mask_update_current_it = mask_expand_update_it;
|
|
|
|
|
}
|
|
|
|
@ -9216,10 +9176,8 @@ static int sculpt_mask_expand_invoke(bContext *C, wmOperator *op, const wmEvent
|
|
|
|
|
.mask_expand_keep_prev_mask = RNA_boolean_get(op->ptr, "keep_previous_mask"),
|
|
|
|
|
};
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) &&
|
|
|
|
|
ss->filter_cache->totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
|
|
|
|
|
BKE_pbvh_parallel_range_settings(
|
|
|
|
|
&settings, (sd->flags & SCULPT_USE_OPENMP), ss->filter_cache->totnode);
|
|
|
|
|
BLI_task_parallel_range(0, ss->filter_cache->totnode, &data, sculpt_expand_task_cb, &settings);
|
|
|
|
|
|
|
|
|
|
const char *status_str = TIP_(
|
|
|
|
@ -9539,9 +9497,8 @@ void ED_sculpt_update_modal_transform(struct bContext *C)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TaskParallelSettings settings;
|
|
|
|
|
BLI_parallel_range_settings_defaults(&settings);
|
|
|
|
|
settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) &&
|
|
|
|
|
ss->filter_cache->totnode > SCULPT_THREADED_LIMIT);
|
|
|
|
|
BKE_pbvh_parallel_range_settings(
|
|
|
|
|
&settings, (sd->flags & SCULPT_USE_OPENMP), ss->filter_cache->totnode);
|
|
|
|
|
BLI_task_parallel_range(
|
|
|
|
|
0, ss->filter_cache->totnode, &data, sculpt_transform_task_cb, &settings);
|
|
|
|
|
|
|
|
|
|