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
diff options
context:
space:
mode:
authorAntony Riakiotakis <kalast@gmail.com>2013-03-10 22:46:31 +0400
committerAntony Riakiotakis <kalast@gmail.com>2013-03-10 22:46:31 +0400
commit623902ac511d3bd654fc21f304a4cba4ffa35e9f (patch)
tree9d2b89b640f746dfcd79a24519ea4b04bc14f6b5 /source/blender/editors/sculpt_paint/paint_stroke.c
parentca5f7b778c5cb44b6745e75174c91315aff685f9 (diff)
Fix: stroke spacing fails in image editor, we need to account for
zooming because spacing used to happen in unscaled screen space
Diffstat (limited to 'source/blender/editors/sculpt_paint/paint_stroke.c')
-rw-r--r--source/blender/editors/sculpt_paint/paint_stroke.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/source/blender/editors/sculpt_paint/paint_stroke.c b/source/blender/editors/sculpt_paint/paint_stroke.c
index 4ef52f0c9e5..db4eb08f11e 100644
--- a/source/blender/editors/sculpt_paint/paint_stroke.c
+++ b/source/blender/editors/sculpt_paint/paint_stroke.c
@@ -269,14 +269,21 @@ static int paint_space_stroke(bContext *C, wmOperator *op, wmEvent *event, const
size_pressure = pressure;
if (size_pressure > FLT_EPSILON) {
+ float zoomx, zoomy;
/* brushes can have a minimum size of 1.0 but with pressure it can be smaller then a pixel
* causing very high step sizes, hanging blender [#32381] */
const float size_clamp = max_ff(1.0f, BKE_brush_size_get(scene, stroke->brush) * size_pressure);
float spacing = stroke->brush->spacing;
+ /* stroke system is used for 2d paint too, so we need to account for
+ * the fact that brush can be scaled there. */
+ get_imapaint_zoom(C, &zoomx, &zoomy);
+
if (stroke->brush->flag & BRUSH_SPACING_PRESSURE)
spacing = max_ff(1.0f, spacing * (1.5f - pressure));
+ spacing *= max_ff(zoomx, zoomy);
+
scale = (size_clamp * spacing / 50.0f) / length;
if (scale > FLT_EPSILON) {
mul_v2_fl(vec, scale);
@@ -360,7 +367,7 @@ bool paint_supports_dynamic_size(Brush *br)
bool paint_supports_jitter(PaintMode mode)
{
- return ELEM(mode, PAINT_SCULPT, PAINT_TEXTURE_PROJECTIVE);
+ return ELEM3(mode, PAINT_SCULPT, PAINT_TEXTURE_PROJECTIVE, PAINT_TEXTURE_2D);
}
#define PAINT_STROKE_MODAL_CANCEL 1