Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorAntony Riakiotakis <kalast@gmail.com>2012-10-29 23:47:26 +0400
committerAntony Riakiotakis <kalast@gmail.com>2012-10-29 23:47:26 +0400
commit58f29fc9ab06d7b143ae53fda4afbcd4032240fe (patch)
treed4205a7a792ecf7351fac62be6a398591bb635c7 /source
parent734630fb78e3d700643fbf51ddde06e1c4f946bc (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
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/paint.c10
-rw-r--r--source/blender/editors/sculpt_paint/paint_image.c13
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);