Change the Postprocessing effects: separate the radius and the halo.Reason: we needed a way to specify the size of the halo around a postprocessed object; before it was automatically (and not very correctly) computed from the radius - before we knew the size of the object's bounding box, so this automatic computation was possible. Now we're removing the MashBase.getBounding(0 API, so the size of the halo has to be explicitly given by the user. This way is more correct anyway and gives the user more control (as the Multiblur app proves!)...
Merge branch 'empty-matrix-effects-in-the-center' into modern-empty-matrix-effects-in-the-center
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)
Rename MeshFlat MeshRectangles.
Invert the order of Matrix Effects. Now, just as in the other queues, the first matrix effect is actually the first to act on the object - not the other way around!
Correct the Legal notice.
Rename all the classes that are not exported to application to 'Internal'
Fix several more apps for the 'center-of-matrix-effects-in-screen-center' change.
Massive: make the coordinate system agree with that of OpenGL (i.e. invert the Y axis).
Fully move the Meshes to their own package.
OIT: more fixes
OIT: fixes. Everything looks correct now except for the curious return of the 'dancing lower-left corner' small glitch in the 'Transparency' app.
Fix the 'OIT' artefacts.
New 'PostprocessTree' app (unfinished)
Progress with Glow.
New 'Glow' app.
Move all the knowledge about Vertex and Fragment effects to their respective classes.
Change of API: move setting the EGL context back to the APP.
Remove DistortedEffectsPostprocess and unify it with DistortedEffects.
Job not finished - doesn't compile now!
Convert the first few Apps to the new Effect API.
Progress with support for Effect classes.
Simplify setting up DistortedScreen.
Revert "Convert a few more APPs to the new resolution-independent Matrix Effects."
This reverts commit 51554e4700774b72e18e97c7cc72ef887dfbf551.
Convert a few more APPs to the new resolution-independent Matrix Effects.
Convert (almost) all remaining Apps to the new API which avoids memory leaks with Surfaces.
Remaining problematic Apps: 15. FBO 16. Star Wars (both leak Tree FBOs) 22. SurfaceView (does not work at all after going to background)
Major:
1) in the Library, fix the fact that some applications (those that were creating their DistortedSurface objects outside of onSurfaceCreated or onSurfaceChanged) would not render after the activity went to background (press POWER to see that).2) in the Apps, call the new 'Distorted.onPause()' API to fix the above problem...
Separate the Postprocessing Effects to their own DistortedEffectsPostprocess queue.This partly breaks Multiblur (to be debugged)
It now automatically chooses OpenGL ES 2.0 and GLSL 100 or OpenGL ES 3.0 and GLSL 300.
Postprocessing effects will not work on OpenGL ES 2.0 contexts.
New 'glClearColor' and 'glClearDepthf' APIs in OutputSurface. This fixes the 'transparency' regressions from last commit.
Speed up shaders (both compilation and execution) by explicitly enabling only the needed effects.
Change the the render() API!
THis introduces some regressions with the Effects3D app.
Major: change of API.
Split DFramebuffer into Framebuffer and Screen; introduce the 'DistortedInputSurface' and 'DistortedOutputSurface' interfaces.
Separable Gaussian Blur with linear sampling done.
Linear sampling implemented - i.e. blurring by a (2N+1)x(2N+1) gaussian kernel (centeral pixel + N pixels in each direction) requires exactly 2N + (N%2==1 ? 4:2) texture fetches.
Separable Box blur (almost) works.
Try using OpenGL ES 3.0 everywhere (but if device does not support it, try creating 2.0 context - this is important because of the emulator!)
improve Postprocessing; new icon; minor things.
Postprocessing effects: remove support for Center
New 'Blur' App. Actual BLUR effect, of course, does not work.