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
fix for the first issue uncovered by the new Olimpic.
Introduce 3 types of Surfaces: System, Tree, User
Do not add Screen to the Surface lists.
Fix OutputSurface.resize(): before it couldn't be called mid-render.
- 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.
Change the the render() API!
THis introduces some regressions with the Effects3D app.
Preparation for change of the render API.
Minor
Simplify yesterday's refactoring.
Major: change of API.
Split DFramebuffer into Framebuffer and Screen; introduce the 'DistortedInputSurface' and 'DistortedOutputSurface' interfaces.
Introduce Renderable to the Tree.
Fix the MultiBlur regression
progress with DistortedRenderable.
This introduces a regression with MultiBlur!
progress with DistortedRenderable
Introduce DistortedRenderable, a base class for Texture and Framebuffer
Back out the last change.
Effect-independent normals.
Preparation for effect-independent computation of the nermal vectors.
Some fixes for issues discovered by the Multiblur app.
Beginnings of the 'Multiblur' app.
BLUR: implemented caching of the BLUR kernels.
Minor progress with Gaussian. Still need to cache the Weights and Offests tables.
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.
Precompute the standard normal distribution.
minor.
Separable Box blur fully works now!
Separable Box blur (almost) works.
Small progress with Blur.
Define float precision in Vertex Shaders to the same like in Fragment Shaders.
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.
Minor.
Still one more problem in boundingVertices.
improve Postprocessing; new icon; minor things.
Postprocessing effects: remove support for Center
boundingVertices fully work now!
Debugging
Progress with getting Mesh'es bounding rectangle. Still doesn't quite work yet (visible : 'Cubes' app with a 0111 Mesh)
Correct construction of boundingVertices in MeshCubes.
Progress with getting Mesh'es bounding rectangle.
Correct a bug with Postprocessing Shortcut.
Move more intelligence to EffectQueuePostprocess.
Fix a regression in 'SAVE' app.
Minor reorganization.
Fix the fact the the Buffer FBO in Postprocess Queue wasn't properly re-created after a Context loss.
Progress with multi-program rendering.
Naive implementation of blur works now!
Blurred image visible now!
Initial version of the first post-processing effect - BLUR - ready for the first app!
NUM_POSTPROCESS corectly #defined now.
Further progress with Postprocessing. Now the missing bits are:
- implement Distorted.getFBO()- implement Distorted.clean()- improve compilation of DistortedPrograms so that the NUM_POSTPROCESSING and names of POSTPROCESSING effects will be #defined.
progress with Postprocessing.
Fix issues with the DEPTH attachment to DistortedFramebuffer.
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
Simplify DistortedTexture.
Clean up DFramebuffer's API
Minor stuff in DistortedProgram.
New DistortedProgram class.
Beginnings of support for postprocessing Effects.
First attempt at the 'Mirror' app.
Javadoc
Some more minor fixes.
Fix Lint warnings, correct a lot of comments, adjust EffectListener interface.
Comment!
Add API to render from a FBO to another FBO
Cleanup.
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 StarWars
Bugfix: only add EffectListener ONCE!
Some improvements for StarWars's behaviour after onPause(), but it doesn't really work yet.
Remaining 'onPause-buggy' apps: StarWars, Save.
Attempt to bring DTexture and DFramebuffer closer together.
Speed up ObjectTree: we no longer have to traverse the whole tree before rendering to mark everything as not-rendered-yet.
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.
Minor improvements in DistortedTexture.
Complete the split DistortedObject -> (DistortedTexture,DistortedEffectQueue)