Add DistortedProgram.stopUsingProgram()
Set possibility for the Postprocessing effects to eclipse the whole object or only work at the edges.
New postprocess effect 'Border' (not working yet) and adding it to the testing app 'Triblur'.
Add debugging option to DistortedEffects.
Move the information when was a EffectQueue last time evaluated from the EffectQueues all the way up to the Node which contains them.The point: we need to reset this time back to 0 every time we attach the Node (and thus start evaluating the Queues inside)
Add a new API DistortedEffects.exists(long id)
Make per-component centers optional, controlled by API MeshBase.setUseCenters()
Remove UBO from the fragment shader and come back to the default of only 5 concurrent fragment effects. All because UBOs in fragment shader crash on Adreno 510 and Adreno 506.
Introduce another Uniform Block Object. Now we can have much more vertex and fragment effects - up their default number to 100.
Plug two more memory leaks. It should be fine now.
Convert the Integer part (i.e. effect names and the two associations) of vertex and fragment shaders to Uniform Buffer Objects.Next: convert the last part, i.e. the float effect parameters.
Put new things to the StackFrame.
Fix the fact that the static DistortedEffects.mAllQueues was global, shared between all Activities.Completely replace this mechanism with a non-static list of links from a VertexEffect to all VertexEffectQueues this effect is a member of.
More support for using the library from more than one activity. Should be working now!
More support for using the library from more than one activity
Remove the 'binding' parameter from the UBO in the vertex shader - this is not part of OpenGL ES 3.0, only introduced in 3.1, and we want to be compatible with 3.0.Now we need to dynamically detect the UBO index and form a BlockBinding ourselves.
Speedup: remember the mesh associations of VertexEffects only once, when they actually change, and not every time we compute() a VertexQueue.
Turn the vName, vEffAnd and vEffEqu integer array uniforms into a one ivec4.The point: ivec4s are always packed tightly in UBOs (which is going to be the next step)
Bugfix.
Introducing UBO to Effect Queues: step 1.
Introduce an UBO to the vertex shader holding info about mesh effect associations.
Fix normals in case of MatrixEffectScale / Shear.Fix displaying the normal vector.
Fixes for pausing and restarting.
Improve setting text size in Spinners (forgotten part).
More progreess porting RubikCube.
Big change to MeshBase:1) split the list of Components into two: 'texture map' components and 'effect' components. Reason: imagine the Rubik Cube with a Solver. When setting up a initial position in the Solver, we need to be able to set texture maps of each individual face of each cubit....
Update Myanmar flag.
DeferredJobs app/lib works now
Progress making it possible to apply Vertex Effects only to some Components of a Mesh.
Change 'tag' to a more appropriate name - 'association'.
Introduce 'tags' (soon to be renamed to 'associations') to Mesh and VertexEffect.A 'tag' is a way to associate a Vertex Effect only to a subgroup of a given Mesh's vertices (more precisely, only to an arbitrary subset of its Components)
Change abortAll to removeAll in effectQueues (for consistency)Remove all pre-effects from the component queues when they are not used anymore.
First attempt at the MeshBase.apply(VertexEffect) API.
Remove the MeshBase.{set/get}Stretch API altogether.
Change the Postprocessing effects: separate the radius and the halo.Reason: we needed a way to specify the size of the halo around a postprocessed object; before it was automatically (and not very correctly) computed from the radius - before we knew the size of the object's bounding box, so this automatic computation was possible. Now we're removing the MashBase.getBounding(0 API, so the size of the halo has to be explicitly given by the user. This way is more correct anyway and gives the user more control (as the Multiblur app proves!)...
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)...
Lower requirements - now only OpenGL ES 3.0 is required; if running on such platform, OIT part of the API ( which is the only one which actually requires 3.1) is switched off.
Fixes for the Projection matrix, FOV.
There was a confusion between the Projection of the Node onto the Screen, and the Projection of the Cubits on the Node.
Further corrections.
Correct the Rubik app for the recent changes to the library's Node.
Hide the InternalSurface class inside its package.
Convert RubikCube to the new V&F center schema!
Moving the Vertex and Fragment centers of effect to the center of the Mesh.
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)
Making the Dialogs more consistent.
remove an unused, redundant API.
library: Fix DynamicQuatcube app: progress with ScrambleEffects
Invert the order of Matrix Effects. Now, just as in the other queues, the first matrix effect is actually the first to act on the object - not the other way around!
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()'.
Progress with DistortedCube.
Correct the Legal notice.
Rename all the classes that are not exported to application to 'Internal'
Finally move the EffectQueues to their own package.