Bug 447466

Summary: pixel art brush outline showing as a regular circle instead of pixelated circle but "outline shape" setting is set to "preview outline" not "circle"
Product: [Applications] krita Reporter: chrisjpe
Component: * UnknownAssignee: Dmitry Kazakov <dimula73>
Status: RESOLVED FIXED    
Severity: normal CC: dimula73, halla
Priority: NOR Keywords: regression
Version: 5.0.0   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Microsoft Windows   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: the brush size is 4, shown is what the brush does and the outline it shows when the outline should be the same shape as the pixels

Description chrisjpe 2021-12-24 14:16:40 UTC
Created attachment 144830 [details]
the brush size is 4, shown is what the brush does and the outline it shows when the outline should be the same shape as the pixels

SUMMARY
***
NOTE: If you are reporting a crash, please try to attach a backtrace with debug symbols.
See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
***


STEPS TO REPRODUCE
1. switch brush to pixel art
2. 
3. 

OBSERVED RESULT
outline is a regular circle at all brush sizes

EXPECTED RESULT
outline is a pixelated circle that is a square at sizes 1-3 conforming to the grid

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
recently downloaded krita 5.0 from 4.4.8
Comment 1 Dmitry Kazakov 2022-03-16 09:01:09 UTC
Git commit 467982f53663227c64c305532025ee7cb1cf2f9a by Dmitry Kazakov.
Committed on 16/03/2022 at 09:00.
Pushed by dkazakov into branch 'master'.

Fix brush outline precision for pixel-art

Our auto-brushes use simplified version of the outline for the
performance reasons. That can interfere with the pipeline of
pixel-art artists.

This patch switches the the outline into the precise mode when
the physical zoom of the image is greater than 200%.

The patch also fixes a few issues with hidpi mode: the outline
flickering prevention and pixel grid activatation algorithms used
"virtual" zoom instead of "physical" zoom, which was not too obvious.

M  +2    -2    libs/brush/kis_auto_brush.cpp
M  +1    -1    libs/brush/kis_auto_brush.h
M  +3    -1    libs/brush/kis_brush.cpp
M  +1    -1    libs/brush/kis_brush.h
M  +3    -1    libs/brush/kis_imagepipe_brush.cpp
M  +1    -1    libs/brush/kis_imagepipe_brush.h
M  +2    -1    libs/resources/KoCanvasResourcesIds.h
M  +13   -0    libs/ui/canvas/kis_coordinates_converter.cpp
M  +1    -0    libs/ui/canvas/kis_coordinates_converter.h
M  +1    -0    libs/ui/kis_canvas_resource_provider.cpp
M  +3    -0    libs/ui/kis_zoom_manager.cc
M  +1    -1    libs/ui/opengl/KisOpenGLCanvasRenderer.cpp
M  +6    -1    libs/ui/tool/kis_tool_freehand_helper.cpp
M  +1    -0    libs/ui/tool/kis_tool_freehand_helper.h
M  +1    -1    libs/ui/tool/kis_tool_paint.cc
M  +1    -1    plugins/paintops/libpaintop/kis_brush_based_paintop_settings.cpp
M  +2    -2    plugins/tools/tool_smart_patch/kis_tool_smart_patch.cpp

https://invent.kde.org/graphics/krita/commit/467982f53663227c64c305532025ee7cb1cf2f9a
Comment 2 Dmitry Kazakov 2022-03-31 13:45:43 UTC
Git commit 09886d4f756738eba0f2fab8342921e239b4a804 by Dmitry Kazakov.
Committed on 31/03/2022 at 13:43.
Pushed by dkazakov into branch 'krita/5.0'.

Fix brush outline precision for pixel-art

Our auto-brushes use simplified version of the outline for the
performance reasons. That can interfere with the pipeline of
pixel-art artists.

This patch switches the the outline into the precise mode when
the physical zoom of the image is greater than 200%.

The patch also fixes a few issues with hidpi mode: the outline
flickering prevention and pixel grid activatation algorithms used
"virtual" zoom instead of "physical" zoom, which was not too obvious.

M  +2    -2    libs/brush/kis_auto_brush.cpp
M  +1    -1    libs/brush/kis_auto_brush.h
M  +3    -1    libs/brush/kis_brush.cpp
M  +1    -1    libs/brush/kis_brush.h
M  +3    -1    libs/brush/kis_imagepipe_brush.cpp
M  +1    -1    libs/brush/kis_imagepipe_brush.h
M  +1    -0    libs/resources/KoCanvasResourcesIds.h
M  +13   -0    libs/ui/canvas/kis_coordinates_converter.cpp
M  +1    -0    libs/ui/canvas/kis_coordinates_converter.h
M  +1    -0    libs/ui/kis_canvas_resource_provider.cpp
M  +3    -0    libs/ui/kis_zoom_manager.cc
M  +1    -1    libs/ui/opengl/kis_opengl_canvas2.cpp
M  +6    -1    libs/ui/tool/kis_tool_freehand_helper.cpp
M  +1    -0    libs/ui/tool/kis_tool_freehand_helper.h
M  +1    -1    libs/ui/tool/kis_tool_paint.cc
M  +1    -1    plugins/paintops/libpaintop/kis_brush_based_paintop_settings.cpp
M  +2    -2    plugins/tools/tool_smart_patch/kis_tool_smart_patch.cpp

https://invent.kde.org/graphics/krita/commit/09886d4f756738eba0f2fab8342921e239b4a804