Proper Colour Resolution
Currently, A Titanium node treats one of it's transparent pixels as if they aren't there during draw time, this results in the parent node filling in the colour during draw time (unless it doesn't have a colour set, in which case it falls through to the next parent -- this can go on until the root application where the colour is forcefully replaced to prevent term.blit
crashed).
This means shaders applied to nodes with no colour are seeing the pixels as '0', even though during draw time the pixel is resolved to another colour. The shader cannot possibly know this ahead of time, as the resolution happens after the shader is used (any other way would require the node to be drawn to it's parent twice, potentially halving performance).
The solution is simple; If a colour is '0', it should not be represented as such on the 'Canvas'. Instead the canvas should resolve the colour in real time, instead of during draw time. Nodes could use a central callback system to request that they are informed when the colour of a certain node is changed.
Fine details of the solution are still a WIP, any feedback is encouraged.