D4990: Update Aurorae Shadow when we copy the buffer, not one frame after painting

David Edmundson noreply at phabricator.kde.org
Thu Mar 9 17:21:30 UTC 2017


davidedmundson created this revision.
Restricted Application added a project: Plasma.
Restricted Application added a subscriber: plasma-devel.

REVISION SUMMARY
  In the current code we update the shadows during the decoration paint.
  
  Because this is called in the middle of the Scene::paintWindow and we
  have already painted the shadows/built quads, the setShadow() was
  deferred to avoid the obvious bugs updating the shadow would cause.
  This sucks because it means we're always out by one frame, and it means
  we always do two updates.
  
  As the shadow is taken from the buffer, we can solve that problem by
  updating the shadow before any painting at the same time that we update the
  buffer. This means we don't need the deferring hack.
  
  This patch also fixes a related issue that m_padding could have
  changed after the buffer is rendered, but before painting. This would lead to rendering a mess.
  This patch caches the relevant padding at the time the buffer is
  created.
  
  @Notmart, this is subtly different from the patch I showed you last night,
  for me it fixes things without your other patch, but I don't know. If it doesn't it's
  still (IMHO) a lot cleaner.

TEST PLAN
  Ran an Aurorae theme
  Maximised, restored, resized. Everything.

BRANCH
  scaling_final

REVISION DETAIL
  https://phabricator.kde.org/D4990

AFFECTED FILES
  plugins/kdecorations/aurorae/src/aurorae.cpp
  plugins/kdecorations/aurorae/src/aurorae.h

To: davidedmundson, #plasma
Cc: plasma-devel, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20170309/58ae0c8d/attachment.html>


More information about the Plasma-devel mailing list