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.