Bug 283606 - Multibrushes : missing dab, mirror isn't perfect
Summary: Multibrushes : missing dab, mirror isn't perfect
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: General (show other bugs)
Version: git master (please specify the git hash!)
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Dmitry Kazakov
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-10-08 15:45 UTC by David REVOY
Modified: 2011-12-20 10:19 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Multibrush random spacing bug screenshot (151.66 KB, application/octet-stream)
2011-12-20 07:39 UTC, Dmitry Kazakov
Details

Note You need to log in before you can comment on or make changes to this bug.
Description David REVOY 2011-10-08 15:45:28 UTC
Version:           svn trunk
OS:                Linux

picture describing the problem here : http://img607.imageshack.us/img607/6135/mirrorproblem.jpg



Reproducible: Didn't try

Steps to Reproduce:
-Download on GHNS my brush 'Rigger brush or brush inking'
-Select it as a preset with the multibrushes tools ( mirror )
-paint , apply pressure, slow or speed up the movement

Actual Results:  
Mirror is not perfect, missing dabs

Expected Results:  
perfect mirror , of course :)
Comment 1 LukasT 2011-11-12 13:55:49 UTC
Yep, I was able to reproduce.

First I thought that it is due to size sensor set to fuzzy (random), what would be expected behaviour for me, because in case of fuzzy, you get two parallel brush engines with different random seed.

Some guesses - not really investigations:
I suppose now that it might be related to curve widget, getting the data from it in multi-thread environment? There used to be problem with that curve widget in multithreading.

Multihand was in before Dmitry introduced strokes framework, so some bug there maybe?
Comment 2 Dmitry Kazakov 2011-12-20 07:38:47 UTC
It looks like the spacing of the brushes in the multibrush is not preserved right.

You can see a screenshot in the attachment: the usual brush in the center and the multibrush around it. The spacing of the multibrush is random. I don't know what is the cause of it.
Comment 3 Dmitry Kazakov 2011-12-20 07:39:39 UTC
Created attachment 66928 [details]
Multibrush random spacing bug screenshot
Comment 4 Dmitry Kazakov 2011-12-20 07:48:52 UTC
Got it, the drag distance is shared between all the brushes, will fix it.
Comment 5 Dmitry Kazakov 2011-12-20 10:19:33 UTC
Git commit aeb430c47850bbfc4f42e3093cbdc493ab138340 by Dmitry Kazakov.
Committed on 20/12/2011 at 12:17.
Pushed by dkazakov into branch 'master'.

The distance information must be associated with the painter

Each painter of the multihand tool must have its own distance information.
Otherwise the result of the painting is quite random. Now we store both
KisPainter and KisDistanceInformation in a single struct and operate
with them as a single struct as well.

BUG:283606

M  +10   -5    krita/ui/tests/freehand_stroke_test.cpp
M  +26   -32   krita/ui/tool/kis_tool_freehand_helper.cpp
M  +12   -7    krita/ui/tool/kis_tool_freehand_helper.h
M  +11   -11   krita/ui/tool/kis_tool_multihand_helper.cpp
M  +4    -4    krita/ui/tool/kis_tool_multihand_helper.h
M  +18   -17   krita/ui/tool/strokes/freehand_stroke.cpp
M  +15   -23   krita/ui/tool/strokes/freehand_stroke.h
M  +25   -8    krita/ui/tool/strokes/kis_painter_based_stroke_strategy.cpp
M  +18   -3    krita/ui/tool/strokes/kis_painter_based_stroke_strategy.h

http://commits.kde.org/calligra/aeb430c47850bbfc4f42e3093cbdc493ab138340