[Marble-bugs] [Bug 202353] Earth as desktop background causes noticeable, constant CPU load

Dennis Nienhüser earthwings at gentoo.org
Mon Jan 11 23:52:32 CET 2010


https://bugs.kde.org/show_bug.cgi?id=202353


Dennis Nienhüser <earthwings at gentoo.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
                 CC|                            |earthwings at gentoo.org
         AssignedTo|tackat at kde.org              |marble-bugs at kde.org
            Summary|Earth as desktop background |Earth as desktop background
                   |causes CPU load             |causes noticeable, constant
                   |                            |CPU load
     Ever Confirmed|0                           |1




--- Comment #7 from Dennis Nienhüser <earthwings gentoo org>  2010-01-11 23:52:28 ---
Had the same problem when I last tested it (back in 4.3 though).

The current implementation of the paint() method [1] isn't exactly optimal: It
uses a QPixmap as backend store and always causes a full paint (!) of the whole
map, ignoring the dirty region of paint(). m_map->paint(gp, mapRect) should be
changed to just paint the dirty region inside paint().

Another possibility would be to construct marble's GeoPainter such that it does
not operate on the QPixmap, but directly on the paint device of the given
QPainter. This way the QPixmap backend shouldn't be needed, but the GeoPainter
could be called directly on the dirty region.

I can't test both things currently as it'll take me some time to set up a full
kde development environment. Would be great if someone else could jump in.

[1]
http://websvn.kde.org/trunk/KDE/kdeplasma-addons/wallpapers/marble/marble.cpp?annotate=1012238

-- 
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the Marble-bugs mailing list