diff options
author | Philipp Oeser <info@graphics-engineer.com> | 2021-09-28 18:50:50 +0300 |
---|---|---|
committer | Philipp Oeser <info@graphics-engineer.com> | 2021-09-29 16:07:45 +0300 |
commit | b80ed8396d285fd3f63831cb1b6589e7057514ce (patch) | |
tree | 51629fb73ea5e9fd6ca40c92238c6e74092fab04 /source/blender/editors/uvedit | |
parent | c33a005297ea21d0afafea96579d13607b309d7d (diff) |
Fix T89164: Sculpt "Smooth" brush crash with zero pressure
Caused by {rB3e5431fdf439}
Issue is that sculpting could start with using `SCULPT_smooth` and
(because of the Pressure sensitivity dropping to zero) code would switch
to `SCULPT_enhance_details_brush` at strength zero.
Issue with this though is that this can be in the middle or end of a
stroke and the necessary `ss->cache->detail_directions` are only
initialized for the first brush step (see
`SCULPT_stroke_is_first_brush_step` in `SCULPT_enhance_details_brush`).
With these missing, it could only go downhill from there.
Suggest to prevent the "mode-flip" from `SCULPT_smooth` to
`SCULPT_enhance_details_brush` (happening solely because of pressure
strength) by changing the condition.
Now do `SCULPT_enhance_details_brush` only if strength is **below** zero
and `SCULPT_smooth` else (flipping from enhance_details to regular smooth
is fine).
If inverting the brush in the middle of the stroke will be supported at
some point, the codepath of `smooth` would have to inform the cache that
invert changed and detail_directions would have to be initialized then
(even if not at the start of the stroke).
Maniphest Tasks: T89164
Differential Revision: https://developer.blender.org/D12676
Diffstat (limited to 'source/blender/editors/uvedit')
0 files changed, 0 insertions, 0 deletions