diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-11-21 09:56:10 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-11-21 09:56:10 +0300 |
commit | 7de712e1e54e6a94cccee25cef207169898507c5 (patch) | |
tree | a3d9048512d3c43f8a50d7524d510d348354cc9d /source/blender | |
parent | 77a80d9f2ff98619c383a1d46e69c1bbcc3a68b7 (diff) |
Fix uv-sculpt use w/ tool-system
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenkernel/BKE_paint.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/paint.c | 23 |
2 files changed, 14 insertions, 11 deletions
diff --git a/source/blender/blenkernel/BKE_paint.h b/source/blender/blenkernel/BKE_paint.h index e09aed4b372..00425de50e0 100644 --- a/source/blender/blenkernel/BKE_paint.h +++ b/source/blender/blenkernel/BKE_paint.h @@ -90,6 +90,8 @@ typedef enum ePaintMode { PAINT_MODE_INVALID = 7, } ePaintMode; +#define PAINT_MODE_HAS_BRUSH(mode) !ELEM(mode, PAINT_MODE_SCULPT_UV) + /* overlay invalidation */ typedef enum eOverlayControlFlags { PAINT_OVERLAY_INVALID_TEXTURE_PRIMARY = 1, diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c index 24782af4d22..9445981538e 100644 --- a/source/blender/blenkernel/intern/paint.c +++ b/source/blender/blenkernel/intern/paint.c @@ -689,29 +689,30 @@ bool BKE_paint_ensure(const ToolSettings *ts, struct Paint **r_paint) paint->flags |= PAINT_SHOW_BRUSH; + *r_paint = paint; + BKE_paint_runtime_init(ts, paint); - *r_paint = paint; return false; } void BKE_paint_init(Main *bmain, Scene *sce, ePaintMode mode, const char col[3]) { UnifiedPaintSettings *ups = &sce->toolsettings->unified_paint_settings; - Brush *brush; Paint *paint = BKE_paint_get_active_from_paintmode(sce, mode); /* If there's no brush, create one */ - brush = BKE_paint_brush(paint); - if (brush == NULL) { - eObjectMode ob_mode = BKE_paint_object_mode_from_paintmode(mode); - brush = BKE_brush_first_search(bmain, ob_mode); - - if (!brush) { - brush = BKE_brush_add(bmain, "Brush", ob_mode); - id_us_min(&brush->id); /* fake user only */ + if (PAINT_MODE_HAS_BRUSH(mode)) { + Brush *brush = BKE_paint_brush(paint); + if (brush == NULL) { + eObjectMode ob_mode = BKE_paint_object_mode_from_paintmode(mode); + brush = BKE_brush_first_search(bmain, ob_mode); + if (!brush) { + brush = BKE_brush_add(bmain, "Brush", ob_mode); + id_us_min(&brush->id); /* fake user only */ + } + BKE_paint_brush_set(paint, brush); } - BKE_paint_brush_set(paint, brush); } memcpy(paint->paint_cursor_col, col, 3); |