dev builds
themes manual
device status forums
mailing lists
IRC bugs
dev guide

Rockbox mail archive

Subject: Possibly skin break again

Possibly skin break again

From: Jonathan Gordon <>
Date: Thu, 7 Jul 2011 13:52:22 +1000

Hi all,
Looking for some feedback on a skin engine change I want to make..

My biggest annoyance with the skin engine is that it doesnt always
draw items in the order you would expect (i.e the order the tags show
up in the theme). When I did the big break at the beginning of the
year I changed that so it did work properly but that caused
interesting draw problems for some (not-insignificant-amount-of)
skins, so it was reverted.

The specific issue is that images are drawn in a semi-random order at
the end of every viewport. This makes it very difficult to layer
images unless you know exactly how the draw ordering is done (which
means pretty much only me and it may change whenever). The way it
should work is as soon as it comes to a %xd() tag the image gets drawn
immediately. The problem with this is some skins are coded BADLY and
doing this causes different draw issues (blank lines showing over
images mostly).

I still hate this behaviour and want to fix it, so unless I get
objections this is what I'm going to do:
* Fix the behaviour so the correct way is used
* Add a new tag which if it is used will cause the skin to draw with
the old behaviour. This is a dead simple solution for users who don't
know how to fix the theme properly but cant wait for the actual themer
to fix it.
* Support the new tag for some unknown timespan, probably 2+ releases,
but more dictated by how hard it is to support more than aggressively
removing the option.

I'm hoping I wont have to do this again but just incase I'm going to
provide a very simple mechanism to say which backwards compat tricks
need to be done for a skin.
%__(1) is going to be the tag, %_ is never going to be used except for
"system" tags, and hopefully this is the only one. I dont want to use
a letter tag incase we run short later. the 1 means "support the first
backwards compat trick), *IF* later on we do this again you would do
%__(1,2) if you want both compat tricks done, or only %__(2) if you
want the new one.
*I'm intentionally making this tag difficult to understand/use to make
it more likely people wont want to use it!*

I expect to have this tested and commited in the next few days (even
tomorrow if i can code on the plane tonight) so comments should come
in quickly if at all.

Received on 2011-07-07

Page was last modified "Jan 10 2012" The Rockbox Crew