Lower requirements - now only OpenGL ES 3.0 is required; if running on such platform, OIT part of the API ( which is the only one which actually requires 3.1) is switched off.
1. library: new API DistortedNode.setProjection()2. cube: adjustments for Pyraminx.
Size of the FBO internal to Nodes is now NO MORE taken from the Mesh's stretch values.Instead, the size is copied from child's FBO size (if there is one) or if the child is a leaf with texture in it (which is sizeless) then we get the default 100x100 ( which means we probably have to explicitly call Node.resizeFBO() )
Remove width & height from InternalSurface and move it to InternalOutputSurface.
Move the Effects.setStretch to Meshbase.setStretch
Move the 'pre-multiply mesh before applying any effects' thing from [(Xsize of texture, Ysize of texture) x Mesh's zFactor] to Effects.setStretch(sx,sy,sz)
Making the Dialogs more consistent.
remove an unused, redundant API.
Correct the Legal notice.
Rename all the classes that are not exported to application to 'Internal'
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.
Cut one interdependency between the EffectQueuePreprocess and DistortedNode
Carve the 'children list' from DOutputSurface and DNode into a separate class of its own, DistortedChildrenList.
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)
Progress with Inflate (building block of postprocessing effects: the proper way of marking a halo around a Mesh)'Inflate' app testing the machanism. MeshFlat appears to be working, now we only need to fill up the per-vertex Inflate vector in the MeshCubes.
Rename MeshObject to MeshBase.
Fully move the Meshes to their own package.
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()
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)
Give users API to render OutputSerfaces and attached Nodes in either the 'normal' way of OIT way.
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....
Try and avoid re-sorting the children by buckets (if we can!). This makes change in rendering order in the 'Transparency' app actually work.
OIT: lots of progress on all fronts. Still a few bugs to solve though!
Disable blending during postprocessing.
Internal API change around postprocessing.
Make Postprocessing quality per-effect (rather than applied to the whole queue)
Minor.
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 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!
Progress with support for Effect classes.