Speed up shaders (both compilation and execution) by explicitly enabling only the needed effects.
Fix Crawl transparency in StarWars.
Small improvements for StarWars, but the main issue - non-working transparency of the Crawl - not solved.
Fixes for z-fighting.
Make it possible to render each DistortedNode with adjustable OpeGL state (writeing to Color, Depth,Stencil buffers, DEPTH, STENCIL, BLENDING on.off, etc)
The only operation which is now enabled 'statically' in render() is blending.
1) stop culling back face2) reset OpenGL state beore each render (and not in onCreate)3) Improve Matrix3D so that we can test negative Scales
A Lot of fixes for the issues uncovered by Olimpic.
Still at least 1 known issue: sometimes, when we re-add a Surface, some garbage pops up on the screen for a brief split second. Visible in Olimpic.
a few lame fixes for the issues uncovered by Olimpic but it is still wrong
Further improve Olimpic. This seems to expose some Node bugs.
- workaround for the issue with flashing in StarWars- return number of objects rendered from OutputSurface.render() and use this in Olympic- rework tree isomorphism so that it now works even if we don't render the whole tree (and also we don't have to reset() the Tree anymore!)...
Fix issue with Blur / Multiblur apps
1. Make it possible to enable/disable DEPTH test when rendering to a Screen2. Using this, remove the 'Root' Node from StarWars.
A lot of different fixes.
A lot of issues still there:
1) if we only render part of the tree, tree isomorphism will sometimes not work correctly2) when we change Effects that are inside Trees mid-render, even if we detach() the affected parts of the Tree first, for the last frame the new Effects will be used...
New, cleaner way to create/destroy DistortedSurfaces.
Serious regression in StarWars (crashes!). Looks like the Node's internal FBO is being deleted and not re-created in time.
Fix the Effects3D regression.
Some progress with fixing the efects3D regression. Not done yet.
Change the the render() API!
THis introduces some regressions with the Effects3D app.
Preparation for change of the render API.
Major: change of API.
Split DFramebuffer into Framebuffer and Screen; introduce the 'DistortedInputSurface' and 'DistortedOutputSurface' interfaces.
Introduce Renderable to the Tree.
Some fixes for issues discovered by the Multiblur app.
Beginnings of the 'Multiblur' app.
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.
Correct a bug in Effects3D.
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!)
Manifest: require OpenGL ES 3.0.
Improvements for the 'Cubes' and 'Effects3D' apps.
improve Postprocessing; new icon; minor things.
Postprocessing effects: remove support for Center
Progress with multi-program rendering.
New 'Blur' App. Actual BLUR effect, of course, does not work.
progress with Postprocessing.
FBO APP: add dynamic adding/removing the DEPTH attachment.
First attempt at making it possible to dynamically add and remove DEPTH attachments from an FBO.
rename all the 'grid' variables to 'mesh'.
Rename Grid to Mesh
Correction for the 'Girl' app.
New DistortedProgram class.
Beginnings of support for postprocessing Effects.
Improve the Sink app (funny?)
Mirror: replace the Head bitmap.
Slight improvement for the Mirror app.
Mirror app finished (well, we still need to get some better bitmap for the girl)
First attempt at the 'Mirror' app.
Fix Lint warnings, correct a lot of comments, adjust EffectListener interface.
Fix a lot of Lint warnings in the apps.
Again change of API. Now instead of the 'DistortedEffects.draw() and DistortedTree.draw()' we have 'DistortedFramebuffer.renderTo()'
Change of names.
Change in the API: we always have to create a DistortedFramebuffer to render to.
onPause(): fix the Save app. All apps should behave correctly now.
onPause(): fix StarWars
Some improvements for StarWars's behaviour after onPause(), but it doesn't really work yet.
Remaining 'onPause-buggy' apps: StarWars, Save.
Fix 'FBO' and 'MovingEffects's behaviour after onPause().
Fix 'Deform' and 'Projection's behaviour after onPause().
Improve the 'FBO' app to test more things.
Change of API in DistortedFramebuffer.
Major restructuring with DistortedTexture. One now is able to create Textures anywhere, even from a thread which does not hold the OpenGL context. Same for DistortedFramebuffers.
Hide the 'depth' of a DistortedTexture inside the library, so users do not get exposed to this weirdness.
Star Wars: release memory.
Complete the split DistortedObject -> (DistortedTexture,DistortedEffectQueue)
Beginnings of split of DistortedObject into two separate classes: DistortedEffectQueues and DistortedTexture.
Still does not compile, but pushing already.
Rename various classes; fix a bug in Around the World.
More fixes for the recent API change.
Some fixes for the recent API change
Major change in API: separate the GRID from DistortedObject; completely remove classes derived from DistortedObject.
Various relatively minor cleanups.
1. (hopefully) finish the 'Save' app (now we can adjust the size of the resulting file)2. Fix one long-standing bug in almost every single app.
Move the 'Save' app to using a DistortedFramebuffer.
Improvements for DFramebuffer.
Some more tweaking to the 'Save thread.'
Fix the 'Save' app so that the saving thread does not run all the time in a tight loop
Fix with Projection
Turn the former 'FOV' app into 'Projection' app that also checks the (x,y) the camera looks at.
Fix the 'Save' app on Android API >=23 (we need to explicitly ask for write permission)
Improve the Deform app
DEFORM: add support for Regions
Around The World pretty much finished!
Around The World: implement blackness
Improve Around The World
Progress with Around The World
Matrix3D: implement quaternion effect
progress with Around the World
Allow more than the default number of concurrent VERTEX and FRAGMENT effects in Effects3D.