<table><tr><td style="">davidedmundson created this revision.<br />davidedmundson added a reviewer: KWin.<br />Herald added a project: KWin.<br />Herald added a subscriber: kwin.<br />davidedmundson requested review of this revision.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D26446">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>There is now a code path to render a generic QtQuick window via the<br />
effects framework. We can use this as the implementation for the<br />
existing EffectFrame API.</p>

<p>This allows us to get rid of a /lot/ of custom rendering that tangles<br />
it's way through the backend, as well as getting rid of lowlevel usage<br />
of Plasma's FrameSVG classes which may not exist in KF6, using the much<br />
more optimised FrameSVGItem.</p>

<p>Cross fade is now done automatically by IconItem.<br />
EffectFrame::setSelection is deprecated as I had no idea what it was<br />
for, and no-one used it.</p>

<p>WIP as:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">I need a slight mod to hook up the path that allows effects to affect frames.</li>
</ul>

<p>Not quite sure what level we want to do that.</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">Even though this new code is super simple, retrofitting to match the</li>
</ul>

<p>old API correctly is somewhat challenging. IMHO we should just break things a bit.</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>Ran flipswitch and windowgeometry effects, on both xrender and opengl.</p>

<p>Places that this is used:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">invert</li>
<li class="remarkup-list-item">desktop grid</li>
<li class="remarkup-list-item">flipswitch</li>
<li class="remarkup-list-item">mouseclick</li>
<li class="remarkup-list-item">presentwindows</li>
<li class="remarkup-list-item">showfps</li>
<li class="remarkup-list-item">windowgeometry</li>
</ul></div></div><br /><div><strong>REPOSITORY</strong><div><div>R108 KWin</div></div></div><br /><div><strong>BRANCH</strong><div><div>davidedmundson/qtquick_effectframe</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D26446">https://phabricator.kde.org/D26446</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>.activation.cpp.kate-swp<br />
.clang-format<br />
CMakeCache.txt<br />
CMakeLists.txt<br />
effects.cpp<br />
effects.h<br />
libkwineffects/kwineffectquickview.cpp<br />
libkwineffects/kwineffectquickview.h<br />
libkwineffects/kwineffects.cpp<br />
libkwineffects/kwineffects.h<br />
plugins/scenes/opengl/scene_opengl.cpp<br />
plugins/scenes/opengl/scene_opengl.h<br />
plugins/scenes/qpainter/scene_qpainter.cpp<br />
plugins/scenes/qpainter/scene_qpainter.h<br />
plugins/scenes/xrender/scene_xrender.cpp<br />
plugins/scenes/xrender/scene_xrender.h<br />
qml/CMakeLists.txt<br />
qml/frame/CMakeLists.txt<br />
qml/frame/frames.qrc<br />
qml/frame/noframe.qml<br />
qml/frame/styledframe.qml<br />
qml/frame/unstyledframe.qml<br />
scene.cpp<br />
scene.h</div></div></div><br /><div><strong>To: </strong>davidedmundson, KWin<br /><strong>Cc: </strong>kwin, LeGast00n, The-Feren-OS-Dev, sbergeron, jraleigh, zachus, fbampaloukas, GB_2, mkulinski, ragreen, jackyalcine, iodelay, crozbo, bwowk, ZrenBot, ngraham, alexeymin, himcesjf, lesliezhai, ali-mohamed, hardening, romangg, jensreuterberg, abetts, sebas, apol, ahiemstra, mart<br /></div>