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. Jonathan