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....
Port all the 'non-controversial' changes from order-independent-transparency branch.
Fixes ported from the 'OIT' branch:
- remove counting of transparent pixels- various fixes for the Mali GPU
Introduce possibility that an OutputSurface is backed up by a larger texture than necessary and the 'cloneSize()' method.
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)
1) Fix for the last fix in Framebuffer2) in RenderState, reset everything to a known state (rather than mark as unknown)
Fix in Framebuffer
All knowledge about Postporcessing moved to the respective Effect classes.
Progress with support for Effect classes.