[NUI][API12] Keep DRGLView delegate at least 1 frame rendering
authorEunki, Hong <eunkiki.hong@samsung.com>
Tue, 25 Mar 2025 04:57:43 +0000 (13:57 +0900)
committerEunki Hong <h.pichulia@gmail.com>
Wed, 9 Apr 2025 00:58:51 +0000 (09:58 +0900)
commitb43ee5e0504d012dadce203791e70a51c2b71478
tree2132f25fddd170790de674ff1d7125189c2265bd
parent92d9fb6f04c4669734240271e6bb75a44e1a918d
[NUI][API12] Keep DRGLView delegate at least 1 frame rendering

Backport patch for #6775 and #6826

Keep CustomAlphaFunction's delegate at least 1 frame

Let we collect all custom alpha functor when we all Animate() API.

If we call Clear() or Animation become Dispose(), let we move those
delegates reference to some global static holder, named `RenderThreadObjectHolder`.

The `RenderThreadObjectHolder` will clear the items after at least 1 frame updated.

We determine the frame updated by the Animation's finished callback.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
+

Keep DRGLView delegate at least 1 frame rendering

Since DRGLView's rendering callback invoked at render thread,
we need to keep those delegate at least 1 frame until those
delegate will never be called at native side.

We have good internal class for this case, named `RenderThreadObjectHolder`.

Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
src/Tizen.NUI/src/internal/Common/RenderThreadObjectHolder.cs [new file with mode: 0755]
src/Tizen.NUI/src/internal/NativeBinding/SWIGTYPE_p_f_float__float.cs [deleted file]
src/Tizen.NUI/src/public/Animation/AlphaFunction.cs
src/Tizen.NUI/src/public/Animation/Animation.cs
src/Tizen.NUI/src/public/BaseComponents/DirectRenderingGLView.cs
test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/FrameUpdateCallbackTest.cs
test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/SpringAnimationSample.cs