Bug 356086

Summary: Double-sized ghost of previous frame when moving a layer with the onion skin enabled
Product: [Applications] krita Reporter: Ilya V. Portnov <portnov>
Component: AnimationAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: dimula73, halla
Priority: NOR    
Version First Reported In: 2.9.9   
Target Milestone: ---   
Platform: Debian unstable   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: Screenshot of that ghost

Description Ilya V. Portnov 2015-11-29 16:53:52 UTC
Looks pretty weird.

Reproducible: Always

Steps to Reproduce:
1. Enable onion skin
2. Draw a frame
3. Use "copy frame" to draw several more frames
4. Use "transform tool" to move layer on last frame


Actual Results:  
 The double-sized ghost of previous layer appears at the random (?) place at the canvas

Expected Results:  
No ghosts

This is krita built from git://anongit.kde.org/calligra.git branch krita-animation-pentikainen  today
Comment 1 Ilya V. Portnov 2015-11-29 16:54:23 UTC
Created attachment 95807 [details]
Screenshot of that ghost
Comment 2 Dmitry Kazakov 2016-04-18 15:15:38 UTC
Ok, in the current version of Krita it draws the scaled copy of the onin scin, and then hides it back. Weird bug, but confirmed :)
Comment 3 Dmitry Kazakov 2016-04-19 09:24:39 UTC
Git commit 3ad36d024d4c22952ca3b3699c0e3b987a6da07c by Dmitry Kazakov.
Committed on 19/04/2016 at 09:11.
Pushed by dkazakov into branch 'master'.

Fix painting onion skins in LoD mode

This patch adds a special cache object that renders all the
onion skins on a separate device and activated LoD on it.

That cache not only fixes ghost strokes appearing on the canvas,
but also reduces the amount of work that have to be done when
rendering the onion skins. So it the end, painting speed with
onion skins should become higher.

Fixes T1141

M  +1    -0    libs/image/CMakeLists.txt
A  +122  -0    libs/image/kis_onion_skin_cache.cpp     [License: GPL (v2+)]
C  +13   -22   libs/image/kis_onion_skin_cache.h [from: libs/image/kis_onion_skin_compositor.h - 053% similarity]
M  +10   -3    libs/image/kis_onion_skin_compositor.cpp
M  +2    -0    libs/image/kis_onion_skin_compositor.h
M  +27   -2    libs/image/kis_paint_layer.cc
M  +2    -0    libs/image/kis_paint_layer.h

http://commits.kde.org/krita/3ad36d024d4c22952ca3b3699c0e3b987a6da07c