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.
Cleanups
Fixes for the Rex Cube (mostly works now)
Bugfix: fix a long-standing bug where switching on normal vector drawing would interfere with transparency.
Bugfix: always normalize the normal vector after modifying it, otherwise the next effect might not work correctly (Distort!)
Bugfix: we initially need to set the maxTextureSize to MAX_INT, because otherwise early (i.e. before a call to onSurfaceCreated) calls to setTexture() will fail.
Put new things to the StackFrame.
Minor.
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.
Fix the fact that we would keep adding new InternalBuffers to the 'Done' list - split 'invalidate()' and 'recreate()' to two separate actions!
Start creating the Tutorial Activity.
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
1) Beginnings of support for using the library from more than one activity2) rename DistortedLibrary.onCreate() to onSurfaceCreated()3) (rubik) add Cambodia's flag.
Improve the Skewb; set max components to 110 in MeshBase so that all of Professor Skewb's components fit.
Detect if the texture we are trying to upload is too large and return an error.
Do not crash if we try to map a texture component out of range.
New API for the library: add an empty texture component to a Mesh.Use this in thr Magic Cube to add empty texture components to some types of cubits.
Comments.
Comment.
Add an extra option to MeshPolygon: making triangles located around the vertices of the polygon smaller.
Progress with MeshPolygon.
Rename Meshes.
First attempt at new mesh - Polygon. Unfinished (normal vector!), untested
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.
Add component centers to dmesh version 2.
Remove the 'inflate' vertex attributs from the Mesh and file format, and replace that with a per-component 'inflate centers' (which are as of yet untested)
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)
Simplify AssociationUniformBlock
Bugfix.
Merge branch 'effects-ubo'
Bugfixes.
Introducing UBO to Effect Queues: step 1.
Move the 'effect association' part of MeshBase to a separate class.
Introduce an UBO to the vertex shader holding info about mesh effect associations.
Progress with the MeshFile app.
New effect VertexEffectDisappear
Correct an issue shown by Crashlytics: sometimes it would crash in the library in InternalOutputSurface.setAsOutput() when trying to 'read from null array' mFBOH[].
Fix normals in case of MatrixEffectScale / Shear.Fix displaying the normal vector.
Fix modifications of normals in VertexEffectScale and VertexEffectShear.
Progress with the Dino.
When blurring or glowing, we need to CLAMP_TO_EDGE the texture - otherwise part of the blur or glow could appear on the other end of the texture.
Improve the Blur App to catch the bug where a small part of the Blur (and Glow) halo gets displayed on the other edge of the surface.
Correct Inflate vectors in Triangles mesh
Improve debugging in DistortedScreen
Correct a subtle bug iin Framebuffer: in recreate(), we need to mark the FBOs as deleted on GPU; otherwise later we might delete them - and when we do, they might belong to another Framebuffer already!
Fix the fact that Distort was rotating normals outside of its region!
Fix the fact that the Normal and OIT programs would not work after a period of being paused.
1) rename DistortedTexture's setColor to setColorARGB2) fix the Wiind app to take into account paused time3) fix the Dynamic so that if a single Dynamic is used more than once (in more than one effect) than it doesn't get adjusted for paused time multiple times.
Fixes for pausing and restarting.
Improve setting text size in Spinners (forgotten part).
Fixes for the previous commit.
Only compile the Full, Normal & OIT programs when they are actually needed.
Only insert the 'Mali r12' FBO queue fix if we actually are running on a Mali GPU with driver version <22. (then FBOQueue=4 - unless we manually overide this down to 1 - else, always 1)
Library: introduce a new form of the MeshRectangular grid, where the individual rows and columns can be each of different width. This help reduce the number of vertices in objects as typically we are only interested at distorting a certain subregion.
Modify the Bean app to take advantage of this.
Reading a mesh from the .dmesh file works now.
Reading a mesh from the .dmesh file might work now. Checked on two small meshes.
Initial support for a writing a Mesh to a file and restoring it from a file (new class MeshFile).Untested!
new app icons; skeleton of reading/write a Mesh from/to a file.
- Decrease FBO queue size to 3- do clean the output surface even if it doesn't have any children (in renderChildren)
New option to display current frame number in the upper-left corner of a DistortedScreen.
More progreess porting RubikCube.
Bugfix and new debugging methods in MeshBaseDeferredJob app rewritten to show the (just fixed) bug
Begin porting RubikCube to the new SingleMesh library. This will make rendering much faster - e.g. in case of Cube 5, instead of 98 renders of individual Cubits, there will be one render of the whole Mesh.
Extend the MeshBase.setTextureMaps API so that we are able to set a single texture map to a single texture component, or a few consecutive at a time, not necessarily starting from component 0.
Do NOT sett viewport to (500,500) when pre-appllying vertex effects as that causes the first (few?) frames the pre-applied Mesh is displayed to be displayed in a wrong place on the screen.
Library: make setEffectAssociation a deferred job (because we do copy the uniforms during join!)SingleMesh App: almost finished.
Progres with SingleMesh; bugfix in MeshBase.apply(Matrix)
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 with DeferredJobs app/lib (still does not work though)
Progress with DeferredJobs app (proves with the library part does not work :)
Progress with DeferredJobs (apply, copy, merge & join should be working now - untested)
1. New icon for PreDeform app2. Library: advances with DeferredMeshJobs
Bugfix ( Mesh shallow copy wasn't working )
First attempt at Deferred Mesh Jobs.Only apply(VertexEffect) supported for now.
Correct VertexEffectQueue in the Mesh. There's no need to have a separate Queue in every component.
Only show the OpenGL Error dialog when the underlying hardwarre does not support OpenGL ES 3.0.
Preparation for saving/reading Meshes to/from a file.
Progress making it possible to apply Vertex Effects only to some Components of a Mesh.
Report a Crashlytics non-fatal if we fail to compile some shaders.
1) Cube: convert it to the latest library. Main difference: objects are rendered better, individual cubits have rounded corners.2) Examples: some adjustments to MeshJoin & Predeform3) Library: fix a bug in main_vertex_shader's 'degree' function, which didn't work proprely in case of a vertex which was exactly at the center (i.e. vector PS was zero)
In library: allow a mixture of a deep and shallow copy of a Mesh ( mVertAttribs1 might be copied deeply or shallowly, mVertAttribs2 are always copied deeeply).Port RubikCube to the new library.
Fix VertexEffectRotate.'MeshJoin' app now back it its functionality from 'master'
Some progress with 'MeshJoin' app.
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)
Have VERTEX_QUATERNION, VERTEX_ROTATE and VERTEX_SHEAR modify inflate vectors.Split Vertex attribute array into two (the one modified by preapply effects and the one not)
Change abortAll to removeAll in effectQueues (for consistency)Remove all pre-effects from the component queues when they are not used anymore.
Speedup for preapply
1 more fix for MeshBase.apply(VertexEffect). This still does not (fully) work though.