GUI responsiveness (was Re: SHR first impression : it's slow ?)

Joel Newkirk freerunner at newkirk.us
Tue Feb 24 22:18:43 CET 2009


On Tue, 24 Feb 2009 12:32:09 +0100
Helge Hafting <helge.hafting at hist.no> wrote:

> Yorick Moko wrote:
> >> I (and surely others) am working on a leaner, faster theme - any
> >> eye-candy that distinctly impacts the user experience should NOT be
> >> default, and in this case we desperately need a simple and fast
> >> theme as the default or the immediate impression users will get
> >> is: "Damn, this is slow!"
> >>
> > 
> > nice to hear that
> > ugly and fast beats pretty and damn slow any day for me
> > (pretty and fast would also be acceptable ;-))
> 
> Pretty and fast should be possible then.
> 
> There is no need for multiple layers of transparent icons. They can
> be collapsed into one layer with a single transparent icon, looking 
> _exactly_ the same.
> 
> Effects when a icon is actually selected is another story, but that
> sort of thing should not need to impact scrolling.
> 
> Helge Hafting

Therein lies the problem, in a sense.  (or a large part of it)

With the default.edj theme (Illume doesn't override it for Fileman,
which includes Illume icons) every icon on the 'desktop' initially
displays just the icon image, be it png, jpg, animated edj, whatever.
When you touch the screen to scroll it, it will highlight the touched
icon even if you don't actually select it.  When it highlights it, it
makes visible a 'background' png behind the icon, and two or three
layers of transparent pngs on top of the icon, to give the 'glass
button with an icon embedded in it' effect. Even when not visible (IE,
on at least all but one icon at a time) those extra pngs are there,
their positions are calculated AFAIK and their bitmaps are loaded.
(again, AFAIK - those two are internals of Enlightenment and I'm
guessing)  

But to make the user experience worse, whenever those extra pngs are
made visible or invisible, it uses an animated fade-in/fade-out.  So
every time you drag to scroll, it's busy animating a fade-out on the
previously highlighted icon, animating a fade-in on the one under your
finger, and scrolling all the transparent and invisible PNGs.  The
effect is quite attractive, if only the FR had the horsepower to manage
it while running a phone, GPS, and frameworkd. :(

With the present state of my altered Illume theme (serenity.edj) I've
trimmed the icons down to just the 'icon' image itself and a single png
that appears behind it when highlighted.  Outside the theme itself I've
disabled dropshadows and changed rendering, and disabled the battery
applet display (pending debugging - it sucks CPU apparently) and it
reduced Enlightenment cpu usage dramatically.  

But I found significant further savings by tweaking icons.  I've been
using some Oxygen icons, and because I always have the launcher at
'extra large' (3 icons across in portrait) I started out with the
256x256 oxygen icons.  Which are beautiful, but suck resources like
crazy. I figured changing to 128x128 would help but the problem was
almost exactly the same, while it looked worse on screen. So I did some
investigating and testing and found that if I prescale my icons to the
actual displayed size on the FR it responds great.  In this case,
that's 116x116 pixels.  (that's the icon itself at 'extra large' -
Illume displays the name below that, and the two of them are in IIRC a
162x142 tile)

So by prescaling to 116x116 pixel icons in Gimp I get the same memory
and CPU (hence UI responsiveness) as with much smaller (blotchier
after scaling) images.  'Large' launcher icons appear to be 76x76, and
'medium' 36x36.  This is theme-dependent though, as well as preferences
dependent - within the edje theme they can be scaled or resized or
whatever.  So a prepackaged icon theme would probably need to be scaled
to match a particular Illume theme's resulting sizes...  Even then, if
the user has utilized the useful 'scaling' settings it will probably
differ.  Still pondering the best answer here.

So right now, with the rescaled icons, removing excess icon adornments,
and disabling dropshadows and battery the SHR Illume is /almost/ as
smooth scrolling as 2008.x.  I also found that disabling animation of
the slipshelf drop-down etc helped significantly in making it feel more
responsive.  Overall, it feels like a completely different phone when I
switch back to the Illume theme.

j




More information about the community mailing list