a mix of two changes:
1) remove the DistortedInputSurface interface (now every Surface is Input)2) make the OIT SSBO self-adjustable in size
Make the OIT SSBO size independent of screen size.
Remove the redundant DistortedNode.onPause()
Fix the fact that back-facing surfaces were invisible.
Largely fix the non-postprocessed OIT. Still, one problem remains: back-facing surfaces seem to disappear (visible in 'Cubes')
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)
Update the 'main' shaders for OIT.
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.
Merge branch 'order-independent-transparency'
Correct a recently introduced bug.
Give users API to render OutputSerfaces and attached Nodes in either the 'normal' way of OIT way.
Start merging master and OIT.
Minor.
Port some obvious stuff from OIT branch.
Correct the way we delay FBOs in DistortedScreen.
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.
Port a commit from the master branch.
Finally properly fix the flashing on ARM Mali T880 GPU.
The flashing is caused by a 'full pipeline flush' (see DarkPhoton, https://www.opengl.org/discussion_boards/showthread.php/200754-Flashes-on-ARM-Mali?p=1291679&viewfull=1#post1291679 ). In order to combat it, first introduce the possibility that a single DistortedOutputSurface is backed up by more than one FBO. Then make DistortedScreen be derived from DistortedFramebuffer (which itself is derived from DistortedOutputSurface) and make it contain 3 FBOs, render to them in a circular queue fashion, and blit from a given FBO to the system FBO. The 'more than 1 intermediate FBO' queue prevents the pipeline flush....
Also available in: Atom