diff options
author | Antony Riakiotakis <kalast@gmail.com> | 2012-10-29 23:47:26 +0400 |
---|---|---|
committer | Antony Riakiotakis <kalast@gmail.com> | 2012-10-29 23:47:26 +0400 |
commit | 58f29fc9ab06d7b143ae53fda4afbcd4032240fe (patch) | |
tree | d4205a7a792ecf7351fac62be6a398591bb635c7 | |
parent | 734630fb78e3d700643fbf51ddde06e1c4f946bc (diff) |
Fix: wrong brush drawn in image painting, image editor if uv sculpt is on. Now the correct paint struct is returned and the image zoom is calculated correctly
-rw-r--r-- | source/blender/blenkernel/intern/paint.c | 10 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_image.c | 13 |
2 files changed, 12 insertions, 11 deletions
diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c index 5a302cba2ab..36f96045ced 100644 --- a/source/blender/blenkernel/intern/paint.c +++ b/source/blender/blenkernel/intern/paint.c @@ -36,6 +36,7 @@ #include "DNA_meshdata_types.h" #include "DNA_scene_types.h" #include "DNA_brush_types.h" +#include "DNA_space_types.h" #include "BLI_bitmap.h" #include "BLI_utildefines.h" @@ -87,6 +88,7 @@ Paint *paint_get_active(Scene *sce) Paint *paint_get_active_from_context(const bContext *C) { Scene *sce = CTX_data_scene(C); + SpaceImage *sima; if (sce) { ToolSettings *ts = sce->toolsettings; @@ -95,12 +97,12 @@ Paint *paint_get_active_from_context(const bContext *C) if (sce->basact && sce->basact->object) obact = sce->basact->object; - if (CTX_wm_space_image(C) != NULL) { + if ((sima = CTX_wm_space_image(C)) != NULL) { if (obact && obact->mode == OB_MODE_EDIT) { - if (ts->use_uv_sculpt) - return &ts->uvsculpt->paint; - else + if (sima->mode == SI_MODE_PAINT) return &ts->imapaint.paint; + else if (ts->use_uv_sculpt) + return &ts->uvsculpt->paint; } else { return &ts->imapaint.paint; diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index 91a0a3821c9..e00a8776bea 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -5266,10 +5266,12 @@ static int get_imapaint_zoom(bContext *C, float *zoomx, float *zoomy) if (!rv3d) { SpaceImage *sima = CTX_wm_space_image(C); ARegion *ar = CTX_wm_region(C); - - ED_space_image_get_zoom(sima, ar, zoomx, zoomy); - return 1; + if (sima->mode == SI_MODE_PAINT) { + ED_space_image_get_zoom(sima, ar, zoomx, zoomy); + + return 1; + } } *zoomx = *zoomy = 1; @@ -5290,16 +5292,13 @@ static void brush_drawcursor(bContext *C, int x, int y, void *UNUSED(customdata) Brush *brush = paint_brush(paint); if (paint && brush && paint->flags & PAINT_SHOW_BRUSH) { - ToolSettings *ts; float zoomx, zoomy; const float size = (float)BKE_brush_size_get(scene, brush); short use_zoom; float pixel_size; float alpha = 0.5f; - ts = scene->toolsettings; - use_zoom = get_imapaint_zoom(C, &zoomx, &zoomy) && - !(ts->use_uv_sculpt && (scene->basact->object->mode == OB_MODE_EDIT)); + use_zoom = get_imapaint_zoom(C, &zoomx, &zoomy); if (use_zoom) { pixel_size = size * max_ff(zoomx, zoomy); |