Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/sculpt_paint/sculpt.c
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
| Show First 20 Lines • Show All 8,670 Lines • ▼ Show 20 Lines | if (*vd.mask != final_mask) { | ||||
| BKE_pbvh_node_mark_redraw(node); | BKE_pbvh_node_mark_redraw(node); | ||||
| } | } | ||||
| } | } | ||||
| BKE_pbvh_vertex_iter_end; | BKE_pbvh_vertex_iter_end; | ||||
| } | } | ||||
| static int sculpt_mask_expand_modal(bContext *C, wmOperator *op, const wmEvent *event) | static int sculpt_mask_expand_modal(bContext *C, wmOperator *op, const wmEvent *event) | ||||
| { | { | ||||
| Depsgraph *depsgraph = CTX_data_depsgraph_pointer(C); | |||||
| Object *ob = CTX_data_active_object(C); | Object *ob = CTX_data_active_object(C); | ||||
| SculptSession *ss = ob->sculpt; | SculptSession *ss = ob->sculpt; | ||||
| Sculpt *sd = CTX_data_tool_settings(C)->sculpt; | Sculpt *sd = CTX_data_tool_settings(C)->sculpt; | ||||
| float prevclick_f[2]; | float prevclick_f[2]; | ||||
| copy_v2_v2(prevclick_f, op->customdata); | copy_v2_v2(prevclick_f, op->customdata); | ||||
| int prevclick[2] = {(int)prevclick_f[0], (int)prevclick_f[1]}; | int prevclick[2] = {(int)prevclick_f[0], (int)prevclick_f[1]}; | ||||
| int len = (int)len_v2v2_int(prevclick, event->mval); | int len = (int)len_v2v2_int(prevclick, event->mval); | ||||
| len = ABS(len); | len = ABS(len); | ||||
| Show All 24 Lines | if ((event->type == LEFTMOUSE && event->val == KM_RELEASE) || | ||||
| SculptThreadedTaskData data = { | SculptThreadedTaskData data = { | ||||
| .sd = sd, | .sd = sd, | ||||
| .ob = ob, | .ob = ob, | ||||
| .nodes = ss->filter_cache->nodes, | .nodes = ss->filter_cache->nodes, | ||||
| .filter_type = MASK_FILTER_SMOOTH, | .filter_type = MASK_FILTER_SMOOTH, | ||||
| }; | }; | ||||
| int smooth_iterations = RNA_int_get(op->ptr, "smooth_iterations"); | int smooth_iterations = RNA_int_get(op->ptr, "smooth_iterations"); | ||||
| BKE_sculpt_update_object_for_edit(depsgraph, ob, true, false); | |||||
| for (int i = 0; i < smooth_iterations; i++) { | for (int i = 0; i < smooth_iterations; i++) { | ||||
| TaskParallelSettings settings; | TaskParallelSettings settings; | ||||
| BLI_parallel_range_settings_defaults(&settings); | BLI_parallel_range_settings_defaults(&settings); | ||||
| settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && | settings.use_threading = ((sd->flags & SCULPT_USE_OPENMP) && | ||||
| ss->filter_cache->totnode > SCULPT_THREADED_LIMIT); | ss->filter_cache->totnode > SCULPT_THREADED_LIMIT); | ||||
| BLI_task_parallel_range(0, ss->filter_cache->totnode, &data, mask_filter_task_cb, &settings); | BLI_task_parallel_range(0, ss->filter_cache->totnode, &data, mask_filter_task_cb, &settings); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 365 Lines • Show Last 20 Lines | |||||