Beginnings of Stencil App.
Some corrections so that most apps still work on the Android emulator (OpenGL ES 2.0-based)
Merge branch 'transform-feedback'
Use Transform Feedback to (optionally) display the Normal vectors.
Minor bugfix.
Beginnings of support for DistortedEffects.drawPrivFeedback()
This commit (and reading the OpenGL ES 3.0 spec) pretty conclusively proves that, sadly, Nexus 4's Transform Feedback implementation is incomplete (doesn't work with GL_TRIANGLES primitiveMode)
Progress with TransferFeedback app - introduce two modes: USEPOINTS 'true' or 'false'.
On Nexus5X, it works with 'true' and 'false'. On Nexus 4, it works with 'true', but returns GL_INVALID_OPERATION with 'false'.
Bugfix (the thing was drawing too many GL_POINTS, this worked on Nexus 5X but not on Nexus 4)
Progress with Transform Feedback.
Progress with VBOs - this time abstract out a new class, DistortedObject - i.e. everything that uploads something to GPU and thus needs to be auto re-created upon loss of the context.
Preparation for Transfer Feedback: Convert the meshes from client-side to VBOs.
Minimize differences from master branch.
Stride should be 0 (but for some reason it worked even with the incorrect 4)
Simplify Transform Feedback App.
Progress with moving Transform Feedback into library.
Minor.
Progress with moving the Transform Feedback functionality from the APP to the library.
Transform Feedback Example.
Mipmap levels!
Make a MeshCubes object rendered with no effects have its front wall at the screen's surface (so that when we just replace MeshFlat with MeshCubes, it looks more similar)
Revert "Major refactoring: convert the Matrix Effects to be independent of the resolution of the surface we render to."
This reverts commit d79a56d3bc6cc7a22b21abeb180353a1818bd6ad.
Revert "Convert a few more APPs to the new resolution-independent Matrix Effects."
This reverts commit 51554e4700774b72e18e97c7cc72ef887dfbf551.
This reverts commit 19938eb7e76e004b164589f0ca6eec2894935e08.
Revert "Minor."
This reverts commit 1a23144587625d973a62c479cf0aef57e2958de1.
Revert "Convert next 4 APPs to the new Matrix effects."
This reverts commit 39a0d81b7482f2925808d661e526aeaa980fb079.
Revert "One more APP converted. Only 2 remain."
This reverts commit 00d86f0fc5d827d8d6d30db9a69f18df56d63428.
Revert "Progress with the last 2 Apps: Effects3D and Wind (not done yet)"
This reverts commit 752c6b57bb227292e6c28438b955fcb892f7acc6.
Progress with the last 2 Apps: Effects3D and Wind (not done yet)
One more APP converted. Only 2 remain.
Convert next 4 APPs to the new Matrix effects.
Convert a few more APPs to the new resolution-independent Matrix Effects.
Major refactoring: convert the Matrix Effects to be independent of the resolution of the surface we render to.
Re-write the first 15 apps to work with this.
Fix PlainMonaLisa's Activity lifecycle (it wouldn't work after a POWER button press, i.e. after a brief time in the background - surfaceCreated is not called in this case)
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...
Multiblur: add FPS
Separate the Postprocessing Effects to their own DistortedEffectsPostprocess queue.This partly breaks Multiblur (to be debugged)
Remove debug prints.
Improve Olimpic part 2 (still buggy!)
Improve Olimpic (still buggy!)
Improve Around the World.
Improve Dynamic and FBO apps.
Improve Deform.
Improve Projection.
Improvements for Multiblur.
1st attempt to restore internal variables in Multiblur.
Still several problems, but the core of Multiblur works now.
Improve the Multiblur app. Things seem to work now!
Enrich the Multiblur app.
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.
as clearing Depth has been fixed in 580f7d10, we can now use this API in the 'FBO' app.
New 'glClearColor' and 'glClearDepthf' APIs in OutputSurface. This fixes the 'transparency' regressions from last commit.
Now there's a single place one can have a look at all the Meshes being rendered to a OutputSurface: OutputSurface.renderChildren().This will need to get modified for per-object post-processing.
Minor
1. Move to Gradle 25.0.02. Bugfix in DistortedNode
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.
Improve Olimpic.
- 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.
Small bugfix
improve Postprocessing; new icon; minor things.