Improve the Dynamic app.
Minor improvements in the Dynamics.
1. Change the API of Dynamic: split makeNowRunFor into two separate 'setDuration' and 'resetToBeginning'2. Major changes to the 'Dynamic' app so that we can check more about the Dynamics.
Invert the order of Matrix Effects. Now, just as in the other queues, the first matrix effect is actually the first to act on the object - not the other way around!
Simplify the way applications can get notifications when an effect finishes.
Now, instead of the 'DistortedEffects.(de)registerForNotifications()' 2 APIs, we call a single 'Effect.notifyWhenFinished()'.
Progress with DistortedCube.
Correct the EffectMessageSender.
Correct the Legal notice.
Rename all the classes that are not exported to application to 'Internal'
Finally move the EffectQueues to their own package.
Cut another interdependency between the Queues and the rest: it is no longer necessary to add DNodes to PostprocessQueue to rearrange the Nodes by buckets. The rearranging is now done on next render instead.
Move all Program-related stuff to Distorted. Now the DistortedEffects class is very simple.
Make DistortedEffects oblivious of the effect types.
Cut one interdependency between the EffectQueuePreprocess and DistortedNode
Cut one interdependency between the EffectQueuePreprocess and DistortedEffects
Carve the 'children list' from DOutputSurface and DNode into a separate class of its own, DistortedChildrenList.
Minor.
Split the DistortedNode class into two - DistortedNode and DistortedNodeData
Some simplifications to the Node.
Fixes for memory leak problems uncovered by the 'Rubik' app. (mainly: new method DistortedNode.markForDeletion)
We don't have to mark Textures for creation until we fill them up with data.
Correct the same bug for DistortedTextures and DistortedFramebuffers: only mark them for creation when we actually have everything ready, i.e. as the last statement in the constructor.
Correct a bug in DistortedBuffer: we only mark it for creation when we actually have all the data ready, otherwise it can happen that create(0 is called before setData() !
Improve locking in DistortedObject.DistortedMaster: slaves can be NULL !
Also available in: Atom