A lot of changes.
1) main vertex shader: remove support for degree_object. This functionality will hopefully come back when we introduce other than circular regions.2) MeshBase: remove the need to set a Bounding box (this is the point of the whole thing - we wanted to get rid of this so that the advances in MeshJoined will be easier)...
Port Deform to the new setStretch-less API.
Moving the Vertex and Fragment centers of effect to the center of the Mesh.
Fixes for the merge.
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.
Adjustment to Static's API.
Simplify the way applications can get notifications when an effect finishes.
Now, instead of the 'DistortedEffects.(de)registerForNotifications()' 2 APIs, we call a single 'Effect.notifyWhenFinished()'.
Correct the Legal notice.
Rename all the classes that are not exported to application to 'Internal'
Many things.
1) make the Dynamic.setDuration() able to be called AFTER the Dynamic has already been run. (and rename it to 'makeRunNowFor()' )2) remove the automatic removal of zero Effects from EffectQueues.3) adjust several Apps to cope with 2)4) add post-rotation to Rubik (still not finished)
Fix several more apps for the 'center-of-matrix-effects-in-screen-center' change.
Move the default center of the matrix effects to the center of the screen (rather than the bottom-left like before)
Massive: make the coordinate system agree with that of OpenGL (i.e. invert the Y axis).
Make the Fragment effects truly 3D: change their 4D 'region' into a 3D 'center' (a point in 3D) and 3D 'region' (which is now a set of 3 radii defining an ellipsoid around the center)
Also corresponding changes to the applications.
Redefine the Vertex Region from (x,y,r,unused) to (x,y,z,r). This takes into account the 'Z', which makes it possible to warp only one side of a 3D Mesh like Sphere.
Also corresponding changes in applications.
Rename MeshObject to MeshBase.
Fully move the Meshes to their own package.
Reengineer DistortedScreen
Simplify Statics.
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.
Fixes for removing effects.
Bugfixes for the recent 'Effect classes' API change.
Further progress with Apps.
Progress with support for Effect classes.
Correct the FPS work (now works even after a Pause() ! )
Move showing FPS in the uppoer-left corner of the Screen to the Library.App can enable/disable this at any time with a single API call.
Simplify setting up DistortedScreen.
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.
Revert "Major refactoring: convert the Matrix Effects to be independent of the resolution of the surface we render to."
This reverts commit d79a56d3bc6cc7a22b21abeb180353a1818bd6ad.
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.
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
Improve Deform.
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.
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!)
Correct 'Deform'
Rename Grid to Mesh
New DistortedProgram class.
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.
Fix 'Deform' and 'Projection's behaviour after onPause().
Hide the 'depth' of a DistortedTexture inside the library, so users do not get exposed to this weirdness.
Complete the split DistortedObject -> (DistortedTexture,DistortedEffectQueue)
Rename various classes; fix a bug in Around the World.
Major change in API: separate the GRID from DistortedObject; completely remove classes derived from DistortedObject.
Simplify SurfaceViews
Improve the Deform app
DEFORM: add support for Regions
Minor stuff
Remove 'statics' from the Deform app
make the 'Deform' app much more flexible (now we can mix effects atthe same time!)
- Javadoc for EffectNames- make Matrix effects consistent with the rest (center of effect as last parameter!)- bugfix for yesterday's bugfix (we only want to send 'EFFECT_REMOVED' messages if it was really the Application that called 'abortAll' and not when we are cleaning up everything)
Further reduce the distortedObject's API - now only 26 methods, 1/4 of the 104 before the reorganization.
Some more progress with porting apps to new VERTEX API.
Major push towards simplifying DistortedObject's public API.All MATRIX effects are using the new API - the 'DataND' marker interfaces.
move data types, like FlatND and InterpolatorND, to a separate package.
Add License
Improve aborting Effects.
Introduce ENUM EffectTypes
Switch to sending a Context (rather than a GLSurfaceView) to the library.
Initial commit