D8664: [platforms/drm] Move cursor dumb buffers to Output
David Edmundson
noreply at phabricator.kde.org
Sun Nov 5 16:53:29 UTC 2017
davidedmundson requested changes to this revision.
davidedmundson added a comment.
This revision now requires changes to proceed.
Idea is good. Few minor comments.
----
I might be wrong, but it looks to me that:
updateCursor now swaps m_cursorIndex which is a signifcant behaviour change from the old separate setCursor/updateCursor
therefore if we ever call
showCursor
updateCursor
updateCursor
you'd end up painting into the front buffer which is bad.
I can see a few code paths that do this.
INLINE COMMENTS
> drm_output.cpp:125
> + c->fill(Qt::transparent);
> + if (m_orientation == Qt::InvertedLandscapeOrientation) {
> + cursorImage = cursorImage.mirrored(true, true);
This will be much faster is you set a matrix (setWorldTransform) on the QPainter.
Then it will do the transformation inside drawImage and get rid of the intermediate data copy
> drm_output.cpp:960
> + // the cursor might need to get rotated
> + updateCursor();
> // TODO: forward to OutputInterface and OutputDeviceInterface
this needs a showCursor() too to be useful
> drm_output.cpp:1164
> + }
> + m_cursor[index]->image()->fill(Qt::transparent);
> + return true;
You fill it transparent before every paint anyway
> drm_output.h:181
> } m_lastWorkingState;
> + DrmDumbBuffer *m_cursor[2];
> + int m_cursorIndex = 0;
Not that you need to, but:
m_cursor[2] = {nullptr,nullptr}
should work just fine instead of doing it in the ctor
REPOSITORY
R108 KWin
REVISION DETAIL
https://phabricator.kde.org/D8664
To: graesslin, #kwin, #plasma, davidedmundson
Cc: davidedmundson, plasma-devel, kwin, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20171105/fd9411eb/attachment-0001.html>
More information about the Plasma-devel
mailing list