SSBO: correct various things.
SSBO: zero out the per-surface transparent fragment counter only when setting the surface as output for the first time in the frame.
SSBO: handle the fact that we might run out of space in our SSBO if we keep creating new Surfaces.
SSBO: counting of transparent fragments more or less works now. Still the counters are zeroed out in the wrong place - every time we start rendering something to a given Surface, rather than once per frame.
SSBO: more and more works...
SSBO: fix problems with endianness.
SSBO: something is working already, although we still get the 4 bytes back from the shader in reverse order ( so '17'=0x00000011 written by the shader becomes '285212672 = 0x11000000' )
First try at the SSBO (doesn't work - reads in the application don't pick up changes in the shader; crashes.
Up library requirements to OpenGL ES 3.1 (needed for the upcoming GL_SHADER_STORAGE_BUFFER)
New Object Counter class - to count OutputSurfaces lazy way, but keep the counters small (reuse)
Remove debugging.
Initialize MessageSender even if compiling some of the programs fails.
Internal API change around postprocessing.
Minor.
1) Fix for the last fix in Framebuffer2) in RenderState, reset everything to a known state (rather than mark as unknown)
Fix in Framebuffer
Empty change (add commented out code)
Bugfix in RenderState
Bugfix (bug visible in 'Olimpic': when we make the last moving circle invisible, to used to stay visible!)'
Fix quality levels in Glow.
Debugging Glow.
Progress with Glow.
Bugfix in calculating blur offsets.
Simplify Statics.
Some progress with GLOW. Still does not look right :)
Introduce concepts of 'in' and 'out' postprocessing qualities.
Make Postprocessing quality per-effect (rather than applied to the whole queue)
Javadoc.
make RenderState package-local.
move EffectQuality to the effect package.
Fixes for dynamic postprocessing.
Minor
Now all PostprocessEffects are truly self-contained, including dynamic enable() and all shader sources.
Simplification in PostprocessEffects
Correction for the last change.
Postprocessing: take quality only from the first child in a bucket.
Simplification in EffectQueueMatrix.
Prevent possibility to enable an effect multiple times.
Now all Postprocessing EffectQueues have the right IDs regardless of number of effects.
Move all the knowledge about Vertex and Fragment effects to their respective classes.
All knowledge about Postporcessing moved to the respective Effect classes.
Move all knowledge about a MatrixEffect from the EffectQueueMatrix to the classes.
Simplify Effect classes.
Change of API: move setting the EGL context back to the APP.
Beginnings of support for the unified Data data type.
Fixes for removing effects.
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.
Small API simplification.
Remove old facility to correct Postprocessing buckets on new Postporcessing effects.
New facility will follow shortly....
Remove DistortedEffectsPostprocess and unify it with DistortedEffects.
Job not finished - doesn't compile now!
Fix 'Different Bitmaps' APP. Now 27 out of 31 APPs work.
Fix 'Cat and Dog' APP. Now 24 out of 31 APPs work.
Bugfix (invert Region's y coord)
Bugfixes for the recent 'Effect classes' API change.
Bugfix in Effect regions.
Progress with Effect classes - everything compiles now!
Some progress with Effect classes.
11 apps compile now.
Further progress with Apps.
Convert the first few Apps to the new Effect API.
Progress with support for Effect classes.
The library compiles now!
Progress with support for Effect classes. Last error in the library before it compiles!
Progress with support for Effect classes. Almost compiles now!
Big mess - nothing compiles now; classes moved around.
Beginnings of support for Effect classes.
Progress with GLOW.
Serious bug sorting Surface's children into postprocessing Buckets detected.
Properly compute the Halo of a queue of postprocess effects.
Still small improvement to FPS
Correct the FPS work (now works even after a Pause() ! )
Move showing FPS in the uppoer-left corner of the Screen to the Library.App can enable/disable this at any time with a single API call.
Beginnings of support for the GLOW effect.
Bugfix in renderChildren again :)
Bugfix in renderChildren (postprocess):
for each bucket, first render all the bucket members , only then render all of their Stencils+Depths (avoids this 'black ring' effect)
Split up postprocessing into queue of effects + blit with depth.
Major speedup, BLUR fully optimized now.
Multiblur app, worst case (all 8 cubes blurred with max radius, HIGHEST quality: Nexus5X: 46.7 FPS, Nexus 4: 29.7 FPS.
Minor speedup.
Move on to Stencil on both stages of the BLUR + separate 'blit with depth'.
This works wonders on Nexus 5X ( r=50 quality=HIGHIEST 1,4,8 cubes: 59.3,43.6,41.0 FPS! ) but it somehow fails to clear the DEPTH and STENCIL buffers on Nexus 4....