Project

General

Profile

Statistics
| Branch: | Revision:

library / src @ f4a2d97e

# Date Author Comment
f4a2d97e 10/28/2021 01:06 PM Leszek Koltunski

Add testing of MeshPolygon to the MeshFile app.

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)

c38f3d33 10/15/2021 01:07 PM Leszek Koltunski

Correction

cc2367fe 10/11/2021 03:33 PM Leszek Koltunski

By default, do use Halo Depth (this broke the halo around a solved object in distorted-cube!)

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.

06ed13b5 10/08/2021 05:53 PM Leszek Koltunski

New API: set components centers of all components all in one go.

e8a86d16 10/08/2021 12:47 PM Leszek Koltunski

comment.

23691e40 10/08/2021 12:42 PM Leszek Koltunski

New BORDER effect.

f90fe926 10/08/2021 11:05 AM Leszek Koltunski

Comment.

5b567bb4 10/08/2021 09:33 AM Leszek Koltunski

Minor

7b2f81e8 10/07/2021 10:32 PM Leszek Koltunski

Improvements for the new Border effect. Now works, but covers the object - to be corrected.

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

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

ba70e7c9 10/06/2021 05:54 PM Leszek Koltunski

Mesh creation: finished.

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.

9ef86c9f 09/15/2021 10:37 AM Leszek Koltunski

On second thought, come back to Vector. The problem: before we had the potentially blocking function 'effectFinished' inside our synchronized block.

2f40484b 09/15/2021 10:33 AM Leszek Koltunski

Improve EffectMessageSender: ArrayList with explicit locking in place of a Vector.

c337dd1c 09/14/2021 11:55 PM Leszek Koltunski

1) add missing call to BlockController.onPause() / onResume() to the Tutorial activity
2) rearrange BlockController's error reporting to make the case where the MessageSender thread has died separate
3) in such case, resurrect the thread
4) simplify and harden the EffectMessageSender

7d151b69 09/14/2021 05:31 PM Leszek Koltunski

More debugs to the EffectMessageSender.

43eecb4c 09/14/2021 04:17 PM Leszek Koltunski

Firebase shows that we have a problem when an app is rapidly restarted, i.e. when is it paused and resumes within tens of milliseconds. Then sometimes the EffectMessageSender thread dies.

Attempt to limit this by synchronizing the whole 'start' and 'stop' methods, although I suspect this will still happen because the very methods are probably in such case called in the wrong order.

188b3dc0 09/09/2021 11:56 PM Leszek Koltunski

Some more debugs for the case when the UI is blocked.

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

Minor.

0b732630 08/17/2021 05:30 PM Leszek Koltunski

Convert the Ivy corner cubit to the new, 'universal' cubit creation method.

This forces deep changes to 'createRoundSolid' and the underlying 'MeshPolygon' class to make them support arbitrary Polygon 'centers of face convexity'.

Reason: the faces of this cubit are concave and such default 'center of face convexity' (which by default used to be (0,0)) turned to lie outside the face - which produces strange visual artifacts.

bff329fb 07/13/2021 02:03 PM Leszek Koltunski

Copy constructors for the Statics.

c0e4d5cf 06/01/2021 03:04 PM Leszek Koltunski

Dynamics: minor.

d403b466 06/01/2021 01:38 PM Leszek Koltunski

Dynamics: consolidation of code.

9aabc9eb 06/01/2021 12:02 PM Leszek Koltunski

Dynamics: introduce two speed modes - smooth and segment_constant.
Prepare the third mode - globally_constant.

a59b5f2c 05/23/2021 04:02 PM Leszek Koltunski

2 Skewb Ultimate cubits.

24b1f190 05/16/2021 11:19 PM Leszek Koltunski

RubikControl: fixes; progress.

4f9ec5d6 05/14/2021 12:51 AM Leszek Koltunski

Make Dynamic's resetToBegin() done on the next frame.
This is necessary if we want to reset many Dynamics at one go and have all of them start synchronized.
Otherwise it can happen that when we reset, we do it when some objects which the Dynamics belong to are already rendered and others are not, and then some of the Dynamics will be delayed by one frame which is visible already.

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.

35a0f4ed 04/24/2021 12:37 AM Leszek Koltunski

Calibration of the previous workaround.

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.

7958d843 04/23/2021 10:13 PM Leszek Koltunski

MeshBase's 'MAX_NUM_COMPONENTS' is not a constant - rename!

41ed3f0d 04/23/2021 09:20 PM Leszek Koltunski

Correct an crash when trying to run a program with no vertex effects.

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.

5413c8cc 04/14/2021 04:00 PM Leszek Koltunski

Convert the first object, the Cube, to the new Cubit-creating engine.

c0477f7f 04/10/2021 05:45 PM Leszek Koltunski

Face cubit creation: progress: rounded corners

2d732361 04/09/2021 03:00 PM Leszek Koltunski

Face cubit creation: progress, a cube renders correctly :)

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

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

073e5a7a 03/12/2021 10:33 PM Leszek Koltunski

Another attempt at fixing tthings on early Qualcomm OpenGL ES 3.0 drivers.

The previous version does not work on Adreno 405 driver V@100, present for example in a Asus ZenPad 8.
Revert the packed 'ivec2' UBO in the vertex shader back to a 'std140' ivec4. This comes at a price if bumping into the bug on Qualcomm driver version 331 on Adreno 308 - i.e. Samsung Galaxy J4+ again....

fc3b9f16 03/07/2021 10:53 PM Leszek Koltunski

Correct a comment for Javadoc.

ccb4c899 03/07/2021 10:51 PM Leszek Koltunski

Add new comments for Javadoc.

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

Correct comments; hide stuff from Javadoc.

f79c9f57 03/07/2021 10:31 PM Leszek Koltunski

Correct comments.

80961fc1 02/24/2021 11:12 PM Leszek Koltunski

Make the 'Component Associations' UBO (on most devices) twice smaller -
use the 'packed' layout and 'ivec2' in place of 'ivec4'.

This forces us to dynamically probe the 'Stride' - number of 4-byte entities that the UBO's 'ivec4' takes - and correct the already-constructed UniformBlockAssociation objects in case this turns out to be different than the expected 2, i.e. tightly-packed....

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

2acab35b 01/27/2021 01:56 PM Leszek Koltunski

Progress with Megaminx.

2b7d2abb 01/13/2021 12:21 PM Leszek Koltunski

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.

43b28f5b 01/10/2021 11:26 PM Leszek Koltunski

Minor.

3ac42a4c 01/10/2021 01:01 PM Leszek Koltunski

Properly initialize DynamicQuat.

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.

72ef21f7 12/16/2020 09:15 PM Leszek Koltunski

Cleanups

c8484d73 12/11/2020 09:25 PM Leszek Koltunski

Fixes for the Rex Cube (mostly works now)

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.

457bd08e 12/02/2020 02:27 PM Leszek Koltunski

Bugfix: always normalize the normal vector after modifying it, otherwise the next effect might not work correctly (Distort!)

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

Minor.

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

Minor.

87a48d8e 10/16/2020 11:23 PM Leszek Koltunski

Improve the Skewb; set max components to 110 in MeshBase so that all of Professor Skewb's components fit.

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.

92403ff8 10/14/2020 08:24 AM Leszek Koltunski

Do not crash if we try to map a texture component out of range.

c92c163c 10/06/2020 10:08 PM Leszek Koltunski

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.

943b2e18 10/04/2020 11:35 PM Leszek Koltunski

Comments.

8b082b9f 09/14/2020 10:10 AM Leszek Koltunski

Comment.

45b08c37 09/13/2020 12:35 AM Leszek Koltunski

Minor.

d456b075 09/08/2020 06:03 PM Leszek Koltunski

Add an extra option to MeshPolygon: making triangles located around the vertices of the polygon smaller.

eeb5d115 08/29/2020 01:25 PM Leszek Koltunski

Progress with MeshPolygon.

ac6a08e7 08/28/2020 02:56 PM Leszek Koltunski

Progress with MeshPolygon.

b948df7a 08/28/2020 12:37 AM Leszek Koltunski

Rename Meshes.

808ef3aa 08/28/2020 12:36 AM Leszek Koltunski

First attempt at new mesh - Polygon. Unfinished (normal vector!), untested

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.

7a9edb92 08/26/2020 12:24 AM Leszek Koltunski

Add component centers to dmesh version 2.

45d530fc 08/25/2020 05:48 PM Leszek Koltunski

Update all the dmeshes to versions 2. Add the Dino dmesh.

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.

24804c15 08/23/2020 12:00 PM Leszek Koltunski

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)

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

Simplify AssociationUniformBlock

a81e5cf7 08/21/2020 11:28 AM Leszek Koltunski

Bugfix.