freenode/#shirakumo - IRC Chatlog
Search
11:53:01
Colleen
twitter.com/Shinmera/status... Website (HTML), Title: Shinmera auf Twitter: "I have a new styling system for Alloy that seems to work pretty well.… &q
16:03:19
Shinmera
when drawing, if you are caching values, or not using a constant redrawing backend, you would like to avoid spurious redraws by only refreshing parts that changed, and are, thus, "dirty".
16:04:45
Shinmera
- the element's internal state changes, causing changes in its rendered representation, requiring a redraw.
16:05:23
Shinmera
In either case these changes can happen programmatically without the surrounding context of the renderer
16:06:02
Shinmera
Now, typically the suggestion would be that you just keep track of a dirty bit in every renderable element.
16:07:18
Shinmera
This works until you reach the fact that layouts and especially components can appear in multiple rendering backends at once.
16:08:13
Shinmera
Because of this the dirty bit "fails". The element needs to be redrawn in every renderer, but if you clear the bit from the first renderer, it will be left stale in all the others.
16:08:47
Shinmera
So there needs to be some way of knowing when the element has been redrawn in every renderer that applies
16:09:31
Shinmera
but there's no connection from the components to the renderers, so the change in state can't propagate the dirty information to the renderer.
16:10:00
Shinmera
because there's no way to iterate all renderers either, we can't know when the component has been redrawn in all either.
19:21:16
plathrop
I don't know about "clean"... but can rendering objects "register" with the component and when the component is dirtied it "tells" all the renderers? Probably/possibly too slow...
19:25:16
Shinmera
There is a REGISTER function that must be called on every renderable with every renderer.
19:25:56
Shinmera
But I'd rather not have to keep a back link to every renderer from every renderable, because that would make it hard to discard renderers.