Add possibility to create FBOs with combined DEPTH/STENCIL.
Simplify setting up DistortedScreen.
1. Correct some bugs in DistortedRenderState2. Thus make the Stencil App work3. New icon for it
Progress with Stencil App; should be working now AFAIK but doesn't.
Beginnings of Stencil App.
Some corrections so that most apps still work on the Android emulator (OpenGL ES 2.0-based)
Merge Transform Feedback
Use Transform Feedback to (optionally) display the Normal vectors.
Dynamic display of bounding rectangles (with coords computed by Vertex Shader and gotten with Transform Feedback) works now.
Major problem: the glMapBufferRange() slows doewn rendering in a major way. Multiblur's FPS:
Nexus5X : 35.4 before -> 12.6 after...
Beginning of support for actual Transform Feedback.
Minor bugfix.
Move from unpacked to packad server-side Vertex attribute buffer.
Make the Feedback APP work again.
Merge remote-tracking branch 'origin/master' into transform-feedback
Revert "Progress with Transform Feedback."
This reverts commit e78a30fd53d9463903521921e177028e5c869514.
Revert "This version appears to be fully working on Nexus 5X (it transfers back all the vertices and, if there are no vertex effects, the vertices transferred back are identical to the ones passed)."
This reverts commit 7cf57d72e238092806b3f833d85d16c1a38ac78d.
Revert "Progress with TransferFeedback app - introduce two modes: USEPOINTS 'true' or 'false'."
This reverts commit 21304c55380460c5882b789ea13eb00ffd9a686c.
Revert "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)"
This reverts commit 5ba19814852de1762e452662a13c4944792014a9.
Revert "Beginnings of support for DistortedEffects.drawPrivFeedback()"
This reverts commit a22c66287b616833b0ad72d81d40cc321e4bc920.
Revert "Some progress with Transform Feedback. Still many bugs all over."
This reverts commit 79921db22e4ff5a3b2e6e3466a39445f5607a695.
Some progress with Transform Feedback. Still many bugs all over.
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'.
This version appears to be fully working on Nexus 5X (it transfers back all the vertices and, if there are no vertex effects, the vertices transferred back are identical to the ones passed).
This however crashes with GL_INVALID_OPERATION during glDrawArrays() when run 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.
Minor.
Progress with moving the Transform Feedback functionality from the APP to the library.
Remember the URL with Transform Feedback example.
Do not change postprocessing Quality mid-render but go through the Master.
1) Bugfix for an issue introduced with previous commit2) scale up the BLUR effect radius with MIPMAP levels.
Mipmap levels!
More MIPMAP work.
Beginning of work on 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)
Simplifications.
Revert "Major refactoring: convert the Matrix Effects to be independent of the resolution of the surface we render to."
This reverts commit ec231614152da2cfdb65c3450cd47da83ee05a6f.
revert the recenr matrix Effects work.
Revert "Minor."
This reverts commit 5fecbdb9d145354d84f0168b434a74d84c192c56.
revert the recent Matrix Effects work.
Revert "Convert next 4 APPs to the new Matrix effects."
This reverts commit d28acefad49451b502424dae12ec8a985007de86.
revert the recent Marix Effects work.
Convert next 4 APPs to the new 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.
Minor
Bugfix: create the Postprocessing buffer immediately.
1) bugfix computing Gaussian BLUR kernel (for odd radii, the last offset was incorrectly computed)2) introduce more advanced method of detecting BLUR halo (compute depths in a new way)
Roll back the recent MIPMAP work.
Preliminary support for MIPMAP levels of the postprocessing buffers. (doesn't work yet)
Node: Sort children IDs when generating their list for the Map of (List<Children IDs>,NodeData).This makes two internal nodes with the same children always isomorphic, no matter what is their order.
Release all TREE FBOs in Distorted.onPause().
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...
Reset EffectsPostprocess' ID back in 0 on Destroy.
Children now properly sorted into Postprocessing Buckets.
Messing around with the AttachDaemon (from now on a more generic DistortedMaster).
In preparation for thr SORT job that will let us sort the children Nodes into postprocessing Buckets.
Actually implement proper postprocessing Buckets.
Bugfix (before we couldn't call postprocess() more than once per frame)
Separate the Postprocessing Effects to their own DistortedEffectsPostprocess queue.This partly breaks Multiblur (to be debugged)
Move the Postprocessing buffers to OutputSurface.
When detaching Nodes, do make sure we also cancel any ATTACH jobs that might be pending.
Improve Projection.
Bugfix - POSTPROCESSING FBOs weren't properly released!
Merging blurred surfaces mostly ok now (blurred image still appears a bit shifted down for some reason)
Bugfix (samplers need to be sent to shaders as INTEGER Uniform
Simplify shaders.
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.
Make it more flexible; now it can run almost all apps on OpenGL 2.0 contexts; OpenGL 3.0 ( with GLSL 3.00) required for POSTPROCESSING.
Upgrade from GLSL 1.00 to GLSL 3.00 ESIntroduce separate BLUR1 and BLUR2 shaders, the second one marging (writing to gl_FragDepth still does not work)
Simplify BLUR shader.
New 'glClearColor' and 'glClearDepthf' APIs in OutputSurface. This fixes the 'transparency' regressions from last commit.
Progress with Multiblur.
This introduces some regressions with transparency (see: 'Different Bitmaps' and 'Around the world' )
Bugfix: we need to have DepthMask and ColorMask both fully on when clearing the FBO in Nodes!
Important bugfix in Dynamic - sometimes it would never stop interpolating and never send a FINISHED message!
Advances in Multiblur - breaks BLUR for now.
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.
New method of rendering.Advantage: now there's one (well, ATM two, but I hope soon really in one) place where we can have a look at all the Meshes that are being rendered to a OutputSurface.This should help with proper per-object POSTPROCESSING effects like Multiblur.
1. Move to Gradle 25.0.02. Bugfix in DistortedNode
Simplify drawRecursive
simplify blitPriv()
Introduce Effects.blitPriv() (faster than previous drawNoEffectsPriv)
Speed up shaders (both compilation and execution) by explicitly enabling only the needed effects.
Preparation for shader optimization
Fixes for z-fighting.
Bug fix in RenderState.
Make it possible to render each DistortedNode with adjustable OpeGL state (writeing to Color, Depth,Stencil buffers, DEPTH, STENCIL, BLENDING on.off, etc)
New 'RenderState' class which will be used to change OpenGL state when rendering Nodes.
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
Exclude still more methods from public documentation.
Exclude certain public methods from Javadoc API.