https://bugs.kde.org/show_bug.cgi?id=414576

Dmitry Kazakov <dimul...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Latest Commit|                            |https://invent.kde.org/kde/
                   |                            |krita/commit/0ca332c7089c69
                   |                            |0a62c6d7b66515fe9aacdabbdb
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED

--- Comment #18 from Dmitry Kazakov <dimul...@gmail.com> ---
Git commit 0ca332c7089c690a62c6d7b66515fe9aacdabbdb by Dmitry Kazakov.
Committed on 31/01/2020 at 14:06.
Pushed by dkazakov into branch 'master'.

Fix hiccups when doing canvas actions

Fixed KisSignalCompressor became too precise and tries to keep
the interval too hard. Sometimes the signal handler is too slow, in
such cases we should still give some time for event loop to execute.

To achieve that, KisSignalCompressor now has an additional operational
mode: "additive interval mode". When this mode is active, then interval
time is counted from the moment, when the execution path is returned from
the signal handler. In "precise interval mode" (default), in reverse, the
interval is counted from the moment, when start() signal arrives.
Related: bug 415773
CC:kimages...@kde.org

M  +23   -3    libs/global/kis_signal_compressor.cpp
M  +7    -0    libs/global/kis_signal_compressor.h
M  +36   -4    libs/global/tests/KisSignalCompressorTest.cpp
M  +2    -0    libs/global/tests/KisSignalCompressorTest.h
M  +3    -1    libs/ui/input/kis_input_manager_p.cpp

https://invent.kde.org/kde/krita/commit/0ca332c7089c690a62c6d7b66515fe9aacdabbdb

--- Comment #19 from Dmitry Kazakov <dimul...@gmail.com> ---
Git commit 2fea6a9b28f5e9ec90cd06f5bbc79c7ef8e40ca2 by Dmitry Kazakov.
Committed on 31/01/2020 at 14:06.
Pushed by dkazakov into branch 'master'.

Implement KisRegion with optimized rects compression

The patch fixes two bugs:

1) Freezes when zooming with Intant Preview enabled. The freezes happened
   due to a very long QRegion calculation in
   KisSyncLodCacheStrokeStrategy::createJobsData(). Now KisRegion does the
   calculation 50 times fister.

2) Short 200ms delay in the end of every stroke in
   KisIndirectPaintingSupport::writeMergeData().

What is KisRegion?

The main difference between KisRegion and QRegion is that KisRegion,
once created, doesn't allow adding/removing rectangles. It lets us
use optimized algorithm for merging rectanges, which is 50-100 times
faster than iterational algorithm used in QRegion.

When to use KisRegion?

By default, use KisRegion. If you need any boolean operation
not supported by KisRegion, then use QRegion. KisRegion can be
converted to/from QRegion via toQRegion() and fromQRegion() calls.

NOTE: these conversion were intentionally made explicit, *not* implicit,
      because accidental use of QRegion may affect performance
      significantly.

M  +1    -0    libs/global/CMakeLists.txt
A  +204  -0    libs/global/KisRegion.cpp     [License: GPL (v2+)]
A  +98   -0    libs/global/KisRegion.h     [License: GPL (v2+)]
M  +1    -1    libs/image/kis_datamanager.h
M  +0    -1    libs/image/kis_image.cc
M  +0    -1    libs/image/kis_image.h
M  +1    -1    libs/image/kis_image_animation_interface.cpp
M  +2    -1    libs/image/kis_image_animation_interface.h
M  +0    -1    libs/image/kis_layer.h
M  +2    -1    libs/image/kis_node.cpp
M  +2    -1    libs/image/kis_node.h
M  +13   -15   libs/image/kis_paint_device.cc
M  +6    -9    libs/image/kis_paint_device.h
M  +3    -3    libs/image/kis_paint_device_cache.h
M  +2    -2    libs/image/kis_paint_device_strategies.h
M  +1    -1    libs/image/kis_perspectivetransform_worker.cpp
M  +3    -3    libs/image/kis_perspectivetransform_worker.h
M  +1    -1    libs/image/kis_processing_applicator.cpp
M  +4    -4    libs/image/kis_regenerate_frame_stroke_strategy.cpp
M  +3    -1    libs/image/kis_regenerate_frame_stroke_strategy.h
M  +1    -1    libs/image/kis_selection_based_layer.h
M  +3    -3    libs/image/kis_suspend_projection_updates_stroke_strategy.cpp
M  +1    -1    libs/image/kis_sync_lod_cache_stroke_strategy.cpp
M  +10   -14   libs/image/krita_utils.cpp
M  +4    -2    libs/image/krita_utils.h
M  +1    -0    libs/image/lazybrush/kis_lazy_fill_capacity_map.h
M  +3    -4    libs/image/lazybrush/kis_lazy_fill_graph.h
M  +2    -1    libs/image/lazybrush/kis_multiway_cut.cpp
M  +2    -2    libs/image/tests/kis_image_animation_interface_test.cpp
M  +3    -8    libs/image/tests/kis_lazy_brush_test.cpp
M  +0    -15   libs/image/tests/kis_node_test.cpp
M  +0    -1    libs/image/tests/kis_node_test.h
M  +3    -3    libs/image/tests/kis_paint_device_test.cpp
M  +5    -4    libs/image/tiles3/kis_tiled_data_manager.cc
M  +2    -2    libs/image/tiles3/kis_tiled_data_manager.h
M  +52   -0    libs/image/tiles3/tests/kis_tiled_data_manager_test.cpp
M  +3    -0    libs/image/tiles3/tests/kis_tiled_data_manager_test.h
M  +1    -1    libs/ui/KisAsyncAnimationCacheRenderer.cpp
M  +1    -1    libs/ui/KisAsyncAnimationCacheRenderer.h
M  +1    -1    libs/ui/KisAsyncAnimationFramesSavingRenderer.cpp
M  +1    -1    libs/ui/KisAsyncAnimationFramesSavingRenderer.h
M  +4    -4    libs/ui/KisAsyncAnimationRendererBase.cpp
M  +4    -2    libs/ui/KisAsyncAnimationRendererBase.h
M  +3    -3    libs/ui/dialogs/KisAsyncAnimationRenderDialogBase.cpp
M  +3    -2    libs/ui/dialogs/KisAsyncAnimationRenderDialogBase.h
M  +1    -1    libs/ui/kis_animation_frame_cache.cpp
M  +2    -1    libs/ui/kis_animation_frame_cache.h
M  +1    -1    libs/ui/tests/KisFrameCacheStoreTest.cpp
M  +1    -1    libs/ui/tool/strokes/kis_painter_based_stroke_strategy.cpp
M  +3    -3    plugins/paintops/experiment/kis_experiment_paintop.cpp
M  +2    -1    plugins/paintops/experiment/kis_experiment_paintop.h
M  +3    -3   
plugins/tools/basictools/strokes/move_selection_stroke_strategy.cpp

https://invent.kde.org/kde/krita/commit/2fea6a9b28f5e9ec90cd06f5bbc79c7ef8e40ca2

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to