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
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/editors/sculpt_paint/paint_vertex.c')
-rw-r--r--source/blender/editors/sculpt_paint/paint_vertex.c103
1 files changed, 68 insertions, 35 deletions
diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c
index 666272bd11a..7abccf6bf62 100644
--- a/source/blender/editors/sculpt_paint/paint_vertex.c
+++ b/source/blender/editors/sculpt_paint/paint_vertex.c
@@ -1450,9 +1450,13 @@ static void precompute_weight_values(
.C = C, .ob = ob, .wpd = wpd, .wpi = wpi, .me = me,
};
- BLI_task_parallel_range_ex(
- 0, me->totvert, &data, NULL, 0, do_wpaint_precompute_weight_cb_ex,
- true, false);
+ ParallelRangeSettings settings;
+ BLI_parallel_range_settings_defaults(&settings);
+ BLI_task_parallel_range(
+ 0, me->totvert,
+ &data,
+ do_wpaint_precompute_weight_cb_ex,
+ &settings);
wpd->precomputed_weight_ready = true;
}
@@ -1775,9 +1779,14 @@ static void calculate_average_weight(SculptThreadedTaskData *data, PBVHNode **UN
struct WPaintAverageAccum *accum = MEM_mallocN(sizeof(*accum) * totnode, __func__);
data->custom_data = accum;
- BLI_task_parallel_range_ex(
- 0, totnode, data, NULL, 0, do_wpaint_brush_calc_average_weight_cb_ex,
- ((data->sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT), false);
+ ParallelRangeSettings settings;
+ BLI_parallel_range_settings_defaults(&settings);
+ settings.use_threading = ((data->sd->flags & SCULPT_USE_OPENMP) && totnode > SCULPT_THREADED_LIMIT);
+ BLI_task_parallel_range(
+ 0, totnode,
+ data,
+ do_wpaint_brush_calc_average_weight_cb_ex,
+ &settings);
uint accum_len = 0;
double accum_weight = 0.0;
@@ -1809,30 +1818,40 @@ static void wpaint_paint_leaves(
/* Use this so average can modify its weight without touching the brush. */
data.strength = BKE_brush_weight_get(scene, brush);
- /* current mirroring code cannot be run in parallel */
- bool use_threading = !(me->editflag & ME_EDIT_MIRROR_X);
+ ParallelRangeSettings settings;
+ BLI_parallel_range_settings_defaults(&settings);
+ /* NOTE: current mirroring code cannot be run in parallel */
+ settings.use_threading = !(me->editflag & ME_EDIT_MIRROR_X);
switch (brush->vertexpaint_tool) {
case PAINT_BLEND_AVERAGE:
calculate_average_weight(&data, nodes, totnode);
- BLI_task_parallel_range_ex(
- 0, totnode, &data, NULL, 0,
- do_wpaint_brush_draw_task_cb_ex, use_threading, false);
+ BLI_task_parallel_range(
+ 0, totnode,
+ &data,
+ do_wpaint_brush_draw_task_cb_ex,
+ &settings);
break;
case PAINT_BLEND_SMEAR:
- BLI_task_parallel_range_ex(
- 0, totnode, &data, NULL, 0,
- do_wpaint_brush_smear_task_cb_ex, use_threading, false);
+ BLI_task_parallel_range(
+ 0, totnode,
+ &data,
+ do_wpaint_brush_smear_task_cb_ex,
+ &settings);
break;
case PAINT_BLEND_BLUR:
- BLI_task_parallel_range_ex(
- 0, totnode, &data, NULL, 0,
- do_wpaint_brush_blur_task_cb_ex, use_threading, false);
+ BLI_task_parallel_range(
+ 0, totnode,
+ &data,
+ do_wpaint_brush_blur_task_cb_ex,
+ &settings);
break;
default:
- BLI_task_parallel_range_ex(
- 0, totnode, &data, NULL, 0,
- do_wpaint_brush_draw_task_cb_ex, use_threading, false);
+ BLI_task_parallel_range(
+ 0, totnode,
+ &data,
+ do_wpaint_brush_draw_task_cb_ex,
+ &settings);
break;
}
}
@@ -2778,9 +2797,13 @@ static void calculate_average_color(SculptThreadedTaskData *data, PBVHNode **UNU
struct VPaintAverageAccum *accum = MEM_mallocN(sizeof(*accum) * totnode, __func__);
data->custom_data = accum;
- BLI_task_parallel_range_ex(
- 0, totnode, data, NULL, 0, do_vpaint_brush_calc_average_color_cb_ex,
- true, false);
+ ParallelRangeSettings settings;
+ BLI_parallel_range_settings_defaults(&settings);
+ BLI_task_parallel_range(
+ 0, totnode,
+ data,
+ do_vpaint_brush_calc_average_color_cb_ex,
+ &settings);
uint accum_len = 0;
uint accum_value[3] = {0};
@@ -2812,27 +2835,37 @@ static void vpaint_paint_leaves(
.sd = sd, .ob = ob, .brush = brush, .nodes = nodes, .vp = vp, .vpd = vpd,
.lcol = (uint *)me->mloopcol, .me = me, .C = C,
};
+ ParallelRangeSettings settings;
+ BLI_parallel_range_settings_defaults(&settings);
switch (brush->vertexpaint_tool) {
case PAINT_BLEND_AVERAGE:
calculate_average_color(&data, nodes, totnode);
- BLI_task_parallel_range_ex(
- 0, totnode, &data, NULL, 0,
- do_vpaint_brush_draw_task_cb_ex, true, false);
+ BLI_task_parallel_range(
+ 0, totnode,
+ &data,
+ do_vpaint_brush_draw_task_cb_ex,
+ &settings);
break;
case PAINT_BLEND_BLUR:
- BLI_task_parallel_range_ex(
- 0, totnode, &data, NULL, 0,
- do_vpaint_brush_blur_task_cb_ex, true, false);
+ BLI_task_parallel_range(
+ 0, totnode,
+ &data,
+ do_vpaint_brush_blur_task_cb_ex,
+ &settings);
break;
case PAINT_BLEND_SMEAR:
- BLI_task_parallel_range_ex(
- 0, totnode, &data, NULL, 0,
- do_vpaint_brush_smear_task_cb_ex, true, false);
+ BLI_task_parallel_range(
+ 0, totnode,
+ &data,
+ do_vpaint_brush_smear_task_cb_ex,
+ &settings);
break;
default:
- BLI_task_parallel_range_ex(
- 0, totnode, &data, NULL, 0,
- do_vpaint_brush_draw_task_cb_ex, true, false);
+ BLI_task_parallel_range(
+ 0, totnode,
+ &data,
+ do_vpaint_brush_draw_task_cb_ex,
+ &settings);
break;
}
}