Bug 362985 - LOD / Instant Preview : when the last brush stroke inherit and redraw the next brush size
Summary: LOD / Instant Preview : when the last brush stroke inherit and redraw the nex...
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Instant Preview (other bugs)
Version First Reported In: 3.0 Beta
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-05-12 14:26 UTC by David REVOY
Modified: 2016-05-16 11:13 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David REVOY 2016-05-12 14:26:33 UTC
https://share.kde.org/index.php/s/PdXkKw9GnokZjoG
[ ^ video of the bug (mkv, 20s) 1st stroke is OK, the second and third (tilted canvas) shows the bug ]

Hi, if you change brush-size with shift while LOD compute last stroke ; your previous stroke will be half retraced with the new size.  It can't be triggered at discrete zoom ( 33%,55%,etc.... all zoom of mouse ) but with a bit of non-discrete canvas rotation (shift+space) and random zoom (ctrl+space) input it's easy to reproduce. ( on the video: a 3195x2095 canvas at 22% viewport, slightly tilted . Brush preset used : deevad C4 rake large , starting at size around 300px, and then resized with shift to around 50px )
Comment 1 wolthera 2016-05-12 18:49:17 UTC
yep, have it here as well, with a predefined brush-tip.

I can even reproduce it at 33 and 50%.

Without predefined brush tip(so an auto brush) it works just fine.
Comment 2 Dmitry Kazakov 2016-05-16 11:13:18 UTC
Git commit 03187c24558121a4ce5423cc8f3eb794a7e89dfc by Dmitry Kazakov.
Committed on 16/05/2016 at 11:12.
Pushed by dkazakov into branch 'master'.

Fix brush size change while Lod0 recalculation

We should really clone the brush before passing it to the stroke.

The weird thing about the patch is that we don't use the cloning
functionality for KisAutoBrush anywhere, but it still had to be
implemented. At least it is thoroughly tested by the unittests now.

Fixes T2492

M  +18   -0    libs/brush/kis_abr_brush.cpp
M  +3    -0    libs/brush/kis_abr_brush.h
M  +16   -0    libs/brush/kis_abr_brush_collection.cpp
M  +3    -0    libs/brush/kis_abr_brush_collection.h
M  +27   -7    libs/brush/kis_auto_brush.cpp
M  +6    -1    libs/brush/kis_auto_brush.h
M  +1    -1    libs/brush/kis_auto_brush_factory.cpp
M  +2    -0    libs/brush/kis_brush.h
M  +4    -1    libs/brush/kis_brushes_pipe.h
M  +1    -1    libs/brush/kis_gbr_brush.cpp
M  +1    -1    libs/brush/kis_gbr_brush.h
M  +1    -1    libs/brush/kis_imagepipe_brush.cpp
M  +1    -1    libs/brush/kis_imagepipe_brush.h
M  +5    -0    libs/brush/kis_png_brush.cpp
M  +3    -0    libs/brush/kis_png_brush.h
M  +1    -1    libs/brush/kis_predefined_brush_factory.cpp
M  +11   -0    libs/brush/kis_svg_brush.cpp
M  +3    -0    libs/brush/kis_svg_brush.h
M  +20   -0    libs/brush/tests/kis_auto_brush_test.cpp
M  +2    -0    libs/brush/tests/kis_auto_brush_test.h
M  +22   -0    libs/image/kis_antialiasing_fade_maker.h
M  +47   -7    libs/image/kis_base_mask_generator.cpp
M  +6    -1    libs/image/kis_base_mask_generator.h
M  +1    -1    libs/image/kis_brush_mask_applicator_factories.cpp
M  +16   -5    libs/image/kis_circle_mask_generator.cpp
M  +4    -1    libs/image/kis_circle_mask_generator.h
M  +23   -1    libs/image/kis_circle_mask_generator_p.h
M  +26   -6    libs/image/kis_curve_circle_mask_generator.cpp
M  +4    -1    libs/image/kis_curve_circle_mask_generator.h
M  +24   -4    libs/image/kis_curve_rect_mask_generator.cpp
M  +2    -0    libs/image/kis_curve_rect_mask_generator.h
M  +23   -2    libs/image/kis_gauss_circle_mask_generator.cpp
M  +4    -2    libs/image/kis_gauss_circle_mask_generator.h
M  +21   -1    libs/image/kis_gauss_rect_mask_generator.cpp
M  +3    -7    libs/image/kis_gauss_rect_mask_generator.h
M  +15   -5    libs/image/kis_rect_mask_generator.cpp
M  +5    -1    libs/image/kis_rect_mask_generator.h
M  +79   -0    libs/image/tests/kis_mask_generator_test.cpp
M  +9    -0    libs/image/tests/kis_mask_generator_test.h
M  +1    -1    plugins/paintops/libpaintop/kis_clipboard_brush_widget.cpp
M  +1    -1    plugins/paintops/libpaintop/kis_custom_brush_widget.cpp

http://commits.kde.org/krita/03187c24558121a4ce5423cc8f3eb794a7e89dfc