| Branch: | Revision:

library / src / main / java / org / distorted / library / main @ 3c26029b

# Date Author Comment
3c26029b 03/31/2023 05:48 PM Leszek Koltunski

Decouple (to a large degree) the OpenGL Library from Android.

8c57d77b 03/31/2023 05:24 PM Leszek Koltunski

Decouple (to a large degree) the OpenGL Library from Android.

40f0cea6 12/21/2022 02:02 PM Leszek Koltunski

Debugging the Node piraminds - print the whole piramind along with all the Effects attached to each Node.

178983f4 10/26/2022 02:31 AM Leszek Koltunski

Remove the requirement that not-postprocessed children in the render scene must be in the first bucket.
Seriously simplify renderChildren().

f7c72bd1 10/24/2022 01:31 PM Leszek Koltunski


2e569ff6 07/15/2022 01:42 AM Leszek Koltunski


f85f2943 04/19/2022 02:47 PM Leszek Koltunski

FactorySticker: further improvements.

d2dc25ad 04/10/2022 12:03 PM Leszek Koltunski

Properly detect which drivers are slow with compilation of TF programs.

cbb1de9d 03/30/2022 01:23 AM Leszek Koltunski

Create the bandaged 3x3 icon: something works, the shape is drawn, but it's entirely black. Investigate.

96381044 03/24/2022 10:02 PM Leszek Koltunski

Further progress with Bandaged 3x3.
This requires a new API in DistortedNode to change the Mesh there.

97460908 02/14/2022 12:42 PM Leszek Koltunski

new API to enable/disable face culling

0e1d3d2e 01/02/2022 11:06 PM Leszek Koltunski

Extra API for QuatHelper.

a889148a 12/17/2021 03:02 AM Leszek Koltunski


b48a9939 12/17/2021 12:36 AM Leszek Koltunski

Switch off the OpenGL error debug.

b0ac5b29 12/17/2021 12:34 AM Leszek Koltunski

Important bugfix for the 'cube disappears when its mesh gets changed from nice to simple'.

The reason why recreating an InternalBuffer from within the 'create()' function doesn't work but doing the same from 'createImmediately' does work is not fully understood. Nevertheless the fix is correct in the sense that it...

b11171e8 12/16/2021 10:44 PM Leszek Koltunski

Add DistortedProgram.stopUsingProgram()

fca614bf 12/12/2021 12:26 AM Leszek Koltunski

Add a glGetError() call to the main render loop.

b6947445 12/10/2021 11:19 PM Leszek Koltunski


c840136b 12/08/2021 01:22 AM Leszek Koltunski

Add info about FPS.

07d9e55f 12/05/2021 10:19 PM Leszek Koltunski

Progress replacing the enum ObjetType with the class RubikObjectList.

f0c98ff5 11/15/2021 10:28 PM Leszek Koltunski

Adjust ShapeChanging so that it can handle concave cubit faces.
Now it is working also in case of the Ivy corner cubits.

4c568a67 11/11/2021 04:22 PM Leszek Koltunski

Float vertices - scratchbook

ee238898 11/02/2021 07:44 PM Leszek Koltunski


460a2b7d 10/22/2021 02:59 AM Leszek Koltunski

Major change: separate the notion of a TwistyObject and its Node. Now,

1) the Node stays when we change objects (this makes transitions faster)
2) it's possible to just create an Object without adding it to the Screen (now app needs to explicitly create the Node and add it to its Screen itself)

5c84d9c2 10/08/2021 11:27 PM Leszek Koltunski

Set possibility for the Postprocessing effects to eclipse the whole object or only work at the edges.

d58407a8 10/07/2021 03:23 PM Leszek Koltunski

New postprocess effect 'Border' (not working yet) and adding it to the testing app 'Triblur'.

8d98b65f 10/03/2021 12:40 AM Leszek Koltunski

Move destroying most of statics from onDestroy() earlier, to onPause().

Reason: doing this in onDestroy() is too late, because when we have two activities, and switch between them, first the ending's Activity onPause() is called, then the starting Activity's onResume, then it's onSurfaceCreated(), then we insert all the effects, and only then the ending Activity onDestroy() gets fired off - and this might destroy the already enabled effects, like for example the Programs of the Postprocessing effects.

8fc3b80a 09/30/2021 04:03 PM Leszek Koltunski

Move QuatHelpeer to distorted-library

4c96c7c9 09/30/2021 02:39 PM Leszek Koltunski

Add debugging option to DistortedEffects.

b36227cd 09/07/2021 12:39 PM Leszek Koltunski


b4999b55 05/09/2021 10:11 PM Leszek Koltunski

Progress with RubikControl - sub-stages 1 and 2 of the 'whole' stage finished.

3272cfb8 05/07/2021 12:17 AM Leszek Koltunski

Actually reset Node's mLastTime back to 0 each time we attach it somewhere.

835b197e 05/07/2021 12:06 AM Leszek Koltunski

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)

f3b76541 04/28/2021 11:30 AM Leszek Koltunski

Only switch on 'BuggyUBOs' on Adreno 308 driver versions 331 and 415.

5ec42229 04/24/2021 12:12 AM Leszek Koltunski

Workaround for the fact that one some devices (for example the LG K30's V@415 driver on the Adreno 308) the Glow halo wasn't visible.

07325238 04/23/2021 04:58 PM Leszek Koltunski

Do not switch BuggyUBOs on Adreno 306, as I just saw a device - ZTE ZMax2 - which uses a 306 and driver V@100, which does not like packed UBOs...

a9be24d8 04/23/2021 04:28 PM Leszek Koltunski

Improve the 'buggy UBOs' detection.

a9d4bb9a 04/23/2021 02:18 PM Leszek Koltunski

- report the Graphics driver's Renderer and Version.
- new Diamond, Skewb2 and Skewb3 meshes.

ddd46f8b 04/21/2021 09:21 PM Leszek Koltunski

Always reset static variables in DistortedLibrary to default values.

eff6e3d3 03/14/2021 10:04 AM Leszek Koltunski

Properly solve the issue with Qualcomm driver V@331 having buggy UBO size.

11c187c0 03/07/2021 10:46 PM Leszek Koltunski

Correct comments; hide stuff from Javadoc.

6c3a8db8 02/24/2021 01:34 PM Leszek Koltunski

Add a new API DistortedEffects.exists(long id)

46d463a4 02/24/2021 09:40 AM Leszek Koltunski

Make per-component centers optional, controlled by API MeshBase.setUseCenters()

97b6c85e 02/23/2021 09:54 PM Leszek Koltunski

Bugfixes as a result of the Samsung Galaxy J4+ investigation:

1) By default, switch off transform feedback in the main program.
Create a new API 'needTransformFeedback()' to call if someone still needs TF in the main program.
2) lower the default max number of vertex effects to 30....

8f011621 01/10/2021 12:05 AM Leszek Koltunski

Remove all the calls to DistortedLibrary.setMax() (except for app 'Check', which explictly checks this API)

de77a6c5 01/09/2021 11:49 PM Leszek Koltunski

Introduce another Uniform Block Object. Now we can have much more vertex and fragment effects - up their default number to 100.

fb001aff 01/08/2021 04:08 PM Leszek Koltunski

Plug two more memory leaks. It should be fine now.

8b36dabf 01/08/2021 01:18 AM Leszek Koltunski

Plug a major memory leak.
Still one more leak remains - a similar UniformBuffer has to be markedForDeletion in the EffectQueues.

78ff6ea9 01/07/2021 04:08 PM Leszek Koltunski

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.

c02f32f7 12/03/2020 01:51 PM Leszek Koltunski

Bugfix: fix a long-standing bug where switching on normal vector drawing would interfere with transparency.

0c8e26ea 12/01/2020 10:46 PM Leszek Koltunski

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.

3bbe4d67 11/29/2020 09:55 PM Leszek Koltunski

Put new things to the StackFrame.

3543a3cf 11/28/2020 11:37 PM Leszek Koltunski

Put new things to the StackFrame.

d4d1958a 11/26/2020 11:03 AM Leszek Koltunski


43814a57 11/26/2020 10:29 AM Leszek Koltunski

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.

728a7820 11/25/2020 09:19 AM Leszek Koltunski

Fix the fact that we would keep adding new InternalBuffers to the 'Done' list - split 'invalidate()' and 'recreate()' to two separate actions!

c046f62c 11/17/2020 03:07 PM Leszek Koltunski

Start creating the Tutorial Activity.

30094332 11/16/2020 06:41 PM Leszek Koltunski

More support for using the library from more than one activity. Should be working now!

9ec374e8 11/16/2020 12:04 PM Leszek Koltunski

More support for using the library from more than one activity

9519d1b1 11/11/2020 02:26 PM Leszek Koltunski

1) Beginnings of support for using the library from more than one activity
2) rename DistortedLibrary.onCreate() to onSurfaceCreated()
3) (rubik) add Cambodia's flag.

c8dbce40 11/07/2020 08:37 PM Leszek Koltunski


2bd3d0fb 10/16/2020 03:35 PM Leszek Koltunski

Detect if the texture we are trying to upload is too large and return an error.

9f9924f8 08/26/2020 03:36 PM Leszek Koltunski

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.

a2878a67 08/25/2020 04:39 PM Leszek Koltunski

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)

9becf30e 08/23/2020 11:29 PM Leszek Koltunski

Speedup: remember the mesh associations of VertexEffects only once, when they actually change, and not every time we compute() a VertexQueue.

41b3ada0 08/23/2020 11:25 AM Leszek Koltunski

Simplify AssociationUniformBlock

97755c02 08/19/2020 08:06 PM Leszek Koltunski

Move the 'effect association' part of MeshBase to a separate class.

0bd9f644 08/19/2020 01:31 PM Leszek Koltunski

Introduce an UBO to the vertex shader holding info about mesh effect associations.

fdb60725 08/12/2020 09:53 AM Leszek Koltunski

Correct an issue shown by Crashlytics: sometimes it would crash in the library in InternalOutputSurface.setAsOutput() when trying to 'read from null array' mFBOH[].

62c869ad 08/06/2020 11:50 PM Leszek Koltunski

Fix normals in case of MatrixEffectScale / Shear.
Fix displaying the normal vector.

4db11f0c 07/30/2020 10:38 AM Leszek Koltunski

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.

aa6e92f2 07/28/2020 10:46 PM Leszek Koltunski

Improve debugging in DistortedScreen

22f537a5 07/22/2020 10:09 PM Leszek Koltunski

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!

fd836a41 07/20/2020 07:42 PM Leszek Koltunski

Fix the fact that the Normal and OIT programs would not work after a period of being paused.

246d021c 07/20/2020 05:11 PM Leszek Koltunski

1) rename DistortedTexture's setColor to setColorARGB
2) fix the Wiind app to take into account paused time
3) 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.

0273ef2a 07/18/2020 10:39 PM Leszek Koltunski

Fixes for pausing and restarting.

06ddd60d 06/16/2020 08:26 PM Leszek Koltunski

Fixes for the previous commit.

d99fcc9c 06/16/2020 07:37 PM Leszek Koltunski

Only compile the Full, Normal & OIT programs when they are actually needed.

5f35f1cb 06/16/2020 12:19 PM Leszek Koltunski

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)

22d3c4b4 06/09/2020 10:46 PM Leszek Koltunski

- Decrease FBO queue size to 3
- do clean the output surface even if it doesn't have any children (in renderChildren)

b8f8ef5c 06/09/2020 07:18 PM Leszek Koltunski

New option to display current frame number in the upper-left corner of a DistortedScreen.

93aa7e5a 06/06/2020 04:58 PM Leszek Koltunski

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.

e8925fcd 06/04/2020 11:34 PM Leszek Koltunski

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....

07206c71 05/30/2020 06:44 PM Leszek Koltunski

First attempt at Deferred Mesh Jobs.
Only apply(VertexEffect) supported for now.

60fdf71d 05/29/2020 07:06 PM Leszek Koltunski

Only show the OpenGL Error dialog when the underlying hardwarre does not support OpenGL ES 3.0.

36d65d88 05/29/2020 03:48 PM Leszek Koltunski

Progress making it possible to apply Vertex Effects only to some Components of a Mesh.

a79650a2 05/27/2020 11:43 AM Leszek Koltunski

Report a Crashlytics non-fatal if we fail to compile some shaders.

e54bfada 05/20/2020 02:43 PM Leszek Koltunski

Split Vertex attribute array into two (the one modified by preapply effects and the one not)

ceed2df6 05/20/2020 11:05 AM Leszek Koltunski

Change abortAll to removeAll in effectQueues (for consistency)
Remove all pre-effects from the component queues when they are not used anymore.

667884b0 05/19/2020 08:01 PM Leszek Koltunski

Speedup for preapply

342a6773 05/19/2020 03:08 PM Leszek Koltunski

1 more fix for MeshBase.apply(VertexEffect). This still does not (fully) work though.

b5be333a 05/19/2020 02:43 PM Leszek Koltunski

3 fixes for MeshBase.apply(VertexEffect).
This still does not work though.

f0604575 05/17/2020 09:04 PM Leszek Koltunski

Progress (?) with Predeform: give up trying to render the Mesh in Activity1.

f046b159 05/16/2020 07:54 PM Leszek Koltunski

First attempt at the MeshBase.apply(VertexEffect) API.

f482efa3 04/24/2020 06:25 PM Leszek Koltunski

Do not crash if we failed to compile some programs.

b7074bc6 04/13/2020 10:31 AM Leszek Koltunski

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.

7e53a35f 04/05/2020 06:39 PM Leszek Koltunski

Bugfixes in MeshBase:

1) improper buffer was being invalidated after apply and setTextureMap (TFO rather than VBO!)
2) setTextureMap would only work if all components were being set

66103fb2 04/03/2020 12:31 PM Leszek Koltunski

Speedup: only allocate one postprocessing buffer set of the quality we need, not all in one go.

209ea1c7 03/12/2020 09:47 PM Leszek Koltunski

1. library: new API DistortedNode.setProjection()
2. cube: adjustments for Pyraminx.

7690aab1 03/10/2020 09:51 PM Leszek Koltunski

Fix the memory test - we need to run one thing on the Graphics thread!