Finally move the EffectQueues to their own package.
Move all Program-related stuff to Distorted. Now the DistortedEffects class is very simple.
Split the DistortedNode class into two - DistortedNode and DistortedNodeData
Fixes for memory leak problems uncovered by the 'Rubik' app. (mainly: new method DistortedNode.markForDeletion)
Minor.
Properly clean up static varaibles in the Effect classes!
Move EffectMessageSender to the 'message' package (duh!)
Progress with a more generic 'preprocess' stage of Postprocessing Effects.
a mix of two changes:
1) remove the DistortedInputSurface interface (now every Surface is Input)2) make the OIT SSBO self-adjustable in size
Remove the redundant DistortedNode.onPause()
Some progress with not-postprocessed OIT.
Progress with non-postprocessed OIT.
Status: compiles, but fails to work on both Adreno and Mali. Crashes the app (Adreno) or the whole system (Mali)
In Distorted.onCreate(), catch and re-throw exceptions, so that even is some Program fails to compile, others will still compile.
Standarize GLSL version across the whole library.
Port the Mali flash fix to the OIT branch.
I am pretty sure this time the flashing issues on Mali T880 r12 driver are finally fixed.
The fix: a queue of FBOs render to, just like before, but this time in DistortedScreen we blit not the current FBO, but the one computed several frames ago.
This of course introduces a delay and uses more memory, but it appears to work and does not seem to have any effects on speed.
Port another commit from master.
I spoke too soon, the ARM Mali flashing is of course not fixed yet. The previous commit fixed Triblur, but the bug is still reproducible elsewhere (only in the 'postprocessed' apps though).
This commit introduces a circular queue in case of the postprocessing FBOs - with little success though.
Properly recreate the Atomic and LinkedList buffers onPause.We have to discard all alpha==0.0 pixels during OIT Pass1.
Order Independent Transparency: some progress
Make the postprocessing buffers static.
Initialize MessageSender even if compiling some of the programs fails.
Now all PostprocessEffects are truly self-contained, including dynamic enable() and all shader sources.
Simplification in PostprocessEffects
Move all the knowledge about Vertex and Fragment effects to their respective classes.
All knowledge about Postporcessing moved to the respective Effect classes.
Change of API: move setting the EGL context back to the APP.
Reorganize the way we add and remove all Effects (do it through DistortedMaster and is POSTPROCES - adjust Bucket and SORT Nodes).
Buggy: removing effects does not work.
Remove DistortedEffectsPostprocess and unify it with DistortedEffects.
Job not finished - doesn't compile now!
Progress with support for Effect classes.