diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-11-07 00:42:15 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-11-07 00:43:56 +0300 |
commit | fb932bb52a65c147689f5940aa0f347066ba0547 (patch) | |
tree | 700b721559370d073ca83324400bc2415f91b797 /source/blender/blenkernel/intern/paint_toolslots.c | |
parent | 150864dfb95c7b39dfd491805156599609ab3e2a (diff) |
Cleanup: use BKE_brush_tool_get/set macros
Also add API call WM_toolsystem_ref_sync_from_context
(was in rna_workspace_api.c)
Diffstat (limited to 'source/blender/blenkernel/intern/paint_toolslots.c')
-rw-r--r-- | source/blender/blenkernel/intern/paint_toolslots.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/source/blender/blenkernel/intern/paint_toolslots.c b/source/blender/blenkernel/intern/paint_toolslots.c index c0f26c1c9c1..5f6b1d9438d 100644 --- a/source/blender/blenkernel/intern/paint_toolslots.c +++ b/source/blender/blenkernel/intern/paint_toolslots.c @@ -34,6 +34,7 @@ #include "BKE_main.h" #include "BKE_library.h" +#include "BKE_brush.h" #include "BKE_paint.h" void BKE_paint_toolslots_len_ensure(Paint *paint, int len) @@ -51,12 +52,11 @@ static void paint_toolslots_init(Main *bmain, Paint *paint) if (paint == NULL) { return; } - const uint tool_offset = paint->runtime.tool_offset; const eObjectMode ob_mode = paint->runtime.ob_mode; - BLI_assert(tool_offset && ob_mode); + BLI_assert(paint->runtime.tool_offset && ob_mode); for (Brush *brush = bmain->brush.first; brush; brush = brush->id.next) { if (brush->ob_mode & ob_mode) { - const int slot_index = *(char *)POINTER_OFFSET(brush, tool_offset); + const int slot_index = BKE_brush_tool_get(brush, paint); BKE_paint_toolslots_len_ensure(paint, slot_index + 1); if (paint->tool_slots[slot_index].brush == NULL) { paint->tool_slots[slot_index].brush = brush; @@ -83,7 +83,7 @@ void BKE_paint_toolslots_brush_update_ex(Paint *paint, Brush *brush) { const uint tool_offset = paint->runtime.tool_offset; BLI_assert(tool_offset != 0); - int slot_index = *(char *)POINTER_OFFSET(brush, tool_offset); + const int slot_index = BKE_brush_tool_get(brush, paint); BKE_paint_toolslots_len_ensure(paint, slot_index + 1); PaintToolSlot *tslot = &paint->tool_slots[slot_index]; id_us_plus(&brush->id); @@ -112,8 +112,9 @@ void BKE_paint_toolslots_brush_validate(Main *bmain, Paint *paint) for (int i = 0; i < paint->tool_slots_len; i++) { PaintToolSlot *tslot = &paint->tool_slots[i]; if (tslot->brush) { - int slot_index = *(char *)POINTER_OFFSET(tslot->brush, tool_offset); - if ((slot_index != i) || (tslot->brush->ob_mode & ob_mode) == 0) { + if ((i != BKE_brush_tool_get(tslot->brush, paint)) || + (tslot->brush->ob_mode & ob_mode) == 0) + { id_us_min(&tslot->brush->id); tslot->brush = NULL; } |