[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-panel-devel
Subject:    Re: Review Request: Add fade effect to wallpaper plugin.
From:       Matthew Dawson <matthewjd () gmail ! com>
Date:       2009-03-03 6:59:43
Message-ID: 200903030159.54909.matthewjd () gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/signed)]


Hey,

On Monday 02 March 2009 15:06:35 Aaron J. Seigo wrote:
<snip
> 
> comments on patch (besides "thanks! always great to receive patches from new 
> faces"):
Thanks for the comments!
> 
> - coding style. {s for methods start on their own line (see updateFadedImage) 
> and there is a space between the keyword and the opening ( in a conditional: 
> "If (" not "if(" and ") {" not "){". 
Fixed!
> 
> - it should be using Plasma::Animator for its timer and a CustomTimer so this 
> can be turned off by policy and share the global timer for this. using your 
> own QTimeLine is, in general, a no-go.
I just looked at Plasma::Animator.  Would I use the Plasma::Animator::CustomAnimation \
function to replace the QTimeLine?  Also I looked through both the documentation and \
the sources, and I can't find a mention of CustomTimer.  I'm just wondering what it \
is.
> 
> - it seems that there should be a more performant way of doing this than 
> creating a third pixmap that is the size of the end result, painting into it 
> and then painting another into it! i'd suggest trying something like just 
> painting both images into the exposed rect as passed into the paint method 
> using the current alpha. if that produces acceptable results, i'd say go for 
> it.
After playing around with a simple demo with two colours, it appears that the 3 \
pixmap method works best.  I pulled most of the code from \
http://techbase.kde.org/Development/Tutorials/Graphics/Performance#QPixmap::setAlphaChannel.28.29 \
.  While 3 pixmaps does seem like overkill, it seems to be the only way that works.  \
I could probably get away with two pixmaps and QPainter.setOpacity, but as the above \
link says that is a performance killer.  I tested different combinations of methods.  \
If you have any other suggestion, I'm happy to try them!
> 
> * remember to free the other pixmap when the animation is done so it isn't 
> sitting around in memory. assigning a QPixmap() to it should be enough.
Will do.
> 
> regardless of how its done (other than "in hardware"), doing full screen 
> repaints isn't going to be precisely brilliant for performance, but as an 
> option it's pretty nice :) which reminds me to check the default caching mode 
> for Plasma::Containment with regards to performance (both memory usage as well 
> as speed)
> 
During testing, it appears (at least for QTimeLine) that it skips frames if it takes \
to long to repaint.  So on slower machines it will work, it will just be choppy.

Matthew


-- 
/*
 * Buddy system. Hairy. You really aren't expected to understand this
 *
 */
		-- From /usr/src/linux/mm/page_alloc.cA


["signature.asc" (application/pgp-signature)]

_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic