platform/core/uifw/dali-core.git
3 weeks agoReset memory pool when core terminate 81/315681/1
Eunki, Hong [Tue, 6 Aug 2024 05:41:01 +0000 (14:41 +0900)]
Reset memory pool when core terminate

Since we can create new Core without process terminate, (e.g. offscreen application)
We should ensurely clear the memory usage.

Without this clean-up process, some memory might be remained after
core terminate. For example, some OwnerPointer<Node> are exist at Message during
app terminate, it might not be release surely.

Change-Id: Iaef0b16bcd6631aa8a52e9b52bfa39374be770b6
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
3 weeks agoFix UTC build error 14/315614/1
Eunki, Hong [Mon, 5 Aug 2024 08:07:11 +0000 (17:07 +0900)]
Fix UTC build error

Change-Id: Ie78675bd4a10301423214d163f4c38fe99599451
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
3 weeks agoMerge "Get the actor who trigger visiblity changed signal" into devel/master
Eunki Hong [Mon, 5 Aug 2024 06:22:25 +0000 (06:22 +0000)]
Merge "Get the actor who trigger visiblity changed signal" into devel/master

3 weeks agoMerge "InheritedVisibilityChangedCallback with window Visibility" into devel/master
Seungho BAEK [Mon, 5 Aug 2024 05:13:23 +0000 (05:13 +0000)]
Merge "InheritedVisibilityChangedCallback with window Visibility" into devel/master

3 weeks agoChange the trace filter name : DALI_TRACE_UPDATE/RENDER_PROCESS 85/315585/1
Eunki, Hong [Mon, 5 Aug 2024 03:21:48 +0000 (12:21 +0900)]
Change the trace filter name : DALI_TRACE_UPDATE/RENDER_PROCESS

Now VD performance tracing system prepare the environment value name.

Let we hide the combined keyword at dali core side.

Change-Id: I17dc2cded6b89a1f593335299a092d3034d9ccdf
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
3 weeks agoFix compile error at gcc-13 (Do not use operator< with nullptr) 73/315573/2
Eunki Hong [Sat, 3 Aug 2024 12:43:48 +0000 (21:43 +0900)]
Fix compile error at gcc-13 (Do not use operator< with nullptr)

Change-Id: Ic40ab0752eebbc33f13d1cd7c6f0d14ac424d8c6
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
3 weeks agoMerge "Print more logs when (animation finished case + previous state)" into devel...
Eunki Hong [Sat, 3 Aug 2024 06:58:51 +0000 (06:58 +0000)]
Merge "Print more logs when (animation finished case + previous state)" into devel/master

4 weeks agoMerge "Allow to compare IntrusivePtr comparision" into devel/master
Adeel Kazmi [Fri, 2 Aug 2024 14:43:14 +0000 (14:43 +0000)]
Merge "Allow to compare IntrusivePtr comparision" into devel/master

4 weeks agoMerge "DALi Version 2.3.35" into devel/master
Adeel Kazmi [Fri, 2 Aug 2024 08:34:03 +0000 (08:34 +0000)]
Merge "DALi Version 2.3.35" into devel/master

4 weeks agoPrint more logs when (animation finished case + previous state) 49/315549/2
Eunki, Hong [Fri, 2 Aug 2024 07:09:33 +0000 (16:09 +0900)]
Print more logs when (animation finished case + previous state)

Since we don't print any logs if animation finished naturally,
user might not know whether given rendering loops occured due to animation, or not.

To make ensure the animation state changeness, let we also print log
if animation finished naturally.

Also, print the log before change the animation state. It will be useful
when we trace the animation state changing.

Change-Id: I642057b56b86b2aca27874995ee1ff9adcfae30e
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
4 weeks agoDALi Version 2.3.35 36/315536/1 dali_2.3.35
Adeel Kazmi [Fri, 2 Aug 2024 06:27:05 +0000 (07:27 +0100)]
DALi Version 2.3.35

Change-Id: I463177231febbb34e2e1ef3d8607ebe3f11fdc6a

4 weeks agoMerge "Make bake flag don't chage the set dirty flag for VisualRenderer" into devel...
Eunki Hong [Fri, 2 Aug 2024 04:52:58 +0000 (04:52 +0000)]
Merge "Make bake flag don't chage the set dirty flag for VisualRenderer" into devel/master

4 weeks agoGet the actor who trigger visiblity changed signal 75/315475/3
Eunki, Hong [Thu, 1 Aug 2024 09:25:17 +0000 (18:25 +0900)]
Get the actor who trigger visiblity changed signal

Since we cannot change the parameter of Visibility changed signal,
we need to make another API to get the actor who trigger visibility changed.

Change-Id: I990338910efc72fda941a66b0c9a802b22ff7f49
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
4 weeks agoAdd GetLastPanGestureState 44/315444/8
joogab.yun [Thu, 1 Aug 2024 03:40:55 +0000 (12:40 +0900)]
Add GetLastPanGestureState

Change-Id: Ica2861de9274023bb6f0c7b8c79c105224badea8

4 weeks agoAllow to compare IntrusivePtr comparision 60/315460/1
Eunki, Hong [Thu, 1 Aug 2024 07:00:16 +0000 (16:00 +0900)]
Allow to compare IntrusivePtr comparision

Let we allow to compare IntrusivePtr operator<.

After this patch, we can use std::set<IntrusivePtr<T>> or map, without
custom comparisoin functor.

Change-Id: Ifce5ad1fe951837d21766daba4cda1546c263262
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
4 weeks agoMake bake flag don't chage the set dirty flag for VisualRenderer 47/315447/1
Eunki, Hong [Thu, 1 Aug 2024 03:34:40 +0000 (12:34 +0900)]
Make bake flag don't chage the set dirty flag for VisualRenderer

Since VisualRendererProperty try to call AnimatablePropertyBase::OnBake directly,
it might change the overlaped bake flags.

To avoid this issue, let we call AnimableProperty<T>::OnBake, instead of
supersuper class

Change-Id: Ic57c34834b46e889f438b7b19a8a592e77a7fbcb
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
4 weeks agoInheritedVisibilityChangedCallback with window Visibility 82/315182/9
Seungho Baek [Fri, 26 Jul 2024 06:51:07 +0000 (15:51 +0900)]
InheritedVisibilityChangedCallback with window Visibility

Change-Id: I0b99cb7052380537ff8f0924af3855445d9041cd
Signed-off-by: Seungho Baek <sbsh.baek@samsung.com>
4 weeks agoMake Actor's name don't use ConstString 37/315237/1
Eunki, Hong [Mon, 29 Jul 2024 01:38:40 +0000 (10:38 +0900)]
Make Actor's name don't use ConstString

Since ConstString register into internal string pool
and never be released,
Their might be occured some memory limits if user use randomized name.

Until now, we use raw string comparision at FindChildByName.
So their is no performance issue after this patch.

TODO : How could we resolve same issue for RegisterProperty?

Change-Id: Ia4258d204e986c117f19489a075e3c5afff9fab9
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
5 weeks agoMerge "DALi Version 2.3.34" into devel/master
Adeel Kazmi [Fri, 26 Jul 2024 10:51:01 +0000 (10:51 +0000)]
Merge "DALi Version 2.3.34" into devel/master

5 weeks agoDALi Version 2.3.34 12/315212/1 dali_2.3.34
Richard Huang [Fri, 26 Jul 2024 10:46:56 +0000 (11:46 +0100)]
DALi Version 2.3.34

Change-Id: I41cd021c91e5e4ca71e5aa9bc36b9dfe3b974b54

5 weeks agoMerge "Cache string based shader if required" into devel/master
Eunki Hong [Thu, 25 Jul 2024 23:33:12 +0000 (23:33 +0000)]
Merge "Cache string based shader if required" into devel/master

5 weeks agoMerge "Trigger Program cleaning by the size of cache container" into devel/master
Eunki Hong [Thu, 25 Jul 2024 23:33:01 +0000 (23:33 +0000)]
Merge "Trigger Program cleaning by the size of cache container" into devel/master

5 weeks agoMake bake flag dont change set dirty flag 05/315105/1
Eunki, Hong [Thu, 25 Jul 2024 07:26:31 +0000 (16:26 +0900)]
Make bake flag dont change set dirty flag

Since we can bake componet side, it may have problem
if component property baked, and full property is set.

In this case, property call reset to base value only 1 times.
So it will show flickering.

To fix this issue, let we make mDirtyFlag |= BAKED_FLAG instead of
mDirtyFlag = BAKED_FLAG

Change-Id: I7269ac79ab1ec7796f62eaea438ee47dd104e963
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
5 weeks agoTrigger Program cleaning by the size of cache container 11/299911/34
Eunki, Hong [Thu, 12 Oct 2023 03:19:07 +0000 (12:19 +0900)]
Trigger Program cleaning by the size of cache container

Current logic try to clean program cache every 10 seconds.
That mean, we need to re-create program.
It might make some unneccessary performance slow-down actions.

To avoid it, let we try to GC only if the number of program cache size
is bigger than threshold, not always.

And also, for every GC time, we delete only 5 programs incrementally per each frame.
So make we less-block the rendering time.

It will be useful for real world app who don't use custom shader.

Change-Id: Ie4e3bfb3486984673caa79750f55d813f256c0bf
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
5 weeks agoCache string based shader if required 45/314345/10
Eunki, Hong [Wed, 10 Jul 2024 08:12:26 +0000 (17:12 +0900)]
Cache string based shader if required

Let we cache string based shader's ShaderData.
It will be useful to avoid use multiple ShaderData creation
even if we use same source code.

Change-Id: Ifeaa9c2fa47b402690dab9b650b01ce874002069
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
5 weeks agoMerge "Do not calculate transform if there is nothing changed as transform" into... devel/async_text
Eunki Hong [Tue, 23 Jul 2024 07:08:40 +0000 (07:08 +0000)]
Merge "Do not calculate transform if there is nothing changed as transform" into devel/master

5 weeks agoAdd internal UTC to use ShaderFactory.SaveShader 75/314375/3
Eunki, Hong [Thu, 11 Jul 2024 02:25:21 +0000 (11:25 +0900)]
Add internal UTC to use ShaderFactory.SaveShader

Since there was no UTC relative with it, platform abstraction code become broken.

To make code clean, let we implement something internal UTC about shader cache.

Change-Id: I83f10b5a7231af9f6a68c33336c92bc1f7ea1a68
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
5 weeks agoDo not calculate transform if there is nothing changed as transform 46/312646/10
Eunki, Hong [Wed, 12 Jun 2024 12:21:46 +0000 (21:21 +0900)]
Do not calculate transform if there is nothing changed as transform

Since we can know every cases when the local-world matrix changeness,
we can "skip" if there is nothing changed during current frame.

Transform calculation is kind of heavy operation.
So if there is any timing that we can skip it, it could be
increase performance for non-transform cases (a.k.a Lottie, AniamtedImage, Particle)

Change-Id: Ie7b6fdd8099810e599bf696fca267e48c7f83066
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
5 weeks agoMerge changes Ia910ced0,Ifa949d9b into devel/master
David Steele [Mon, 22 Jul 2024 10:21:46 +0000 (10:21 +0000)]
Merge changes Ia910ced0,Ifa949d9b into devel/master

* changes:
  Print log if TypeInfo asserted + Do not assert if we call SetProperty for readonly + Add keyword LIKELY / UNLIKELY
  Remove useless macro

6 weeks agoMerge "DALi Version 2.3.33" into devel/master
Adeel Kazmi [Fri, 19 Jul 2024 09:59:55 +0000 (09:59 +0000)]
Merge "DALi Version 2.3.33" into devel/master

6 weeks agoDALi Version 2.3.33 82/314782/1 dali_2.3.33
Adam Bialogonski [Fri, 19 Jul 2024 06:54:24 +0000 (07:54 +0100)]
DALi Version 2.3.33

Change-Id: I42061d53504977f1cd2b39eb984ecc9b9625f166

6 weeks agoFix secondary command buffer Begin flag 70/314770/1
David Steele [Thu, 18 Jul 2024 17:38:48 +0000 (18:38 +0100)]
Fix secondary command buffer Begin flag

Change-Id: I52db5f89da394444bcb248ff97ed0a2b0bf2b6da

6 weeks agoAdding Begin/End commands to graphics API 74/314574/1
David Steele [Mon, 15 Jul 2024 16:53:48 +0000 (17:53 +0100)]
Adding Begin/End commands to graphics API

Change-Id: Iff0f91133f4a8646f17ccaebf6d7d95e84c8fc17

6 weeks agoMerge "Cleaned up render pass creation comments" into devel/master
David Steele [Mon, 15 Jul 2024 13:20:00 +0000 (13:20 +0000)]
Merge "Cleaned up render pass creation comments" into devel/master

6 weeks ago(TestApplication) Fix SVACE issue 61/314561/1
Adeel Kazmi [Mon, 15 Jul 2024 09:47:33 +0000 (10:47 +0100)]
(TestApplication) Fix SVACE issue

Change-Id: I654a48b18ef90fb7c0a4737ac9dc273f4c3e661a

7 weeks agoMerge changes I03cb1f37,I66ce8530,Iad1ace55,Ib9eef3cf into devel/master
David Steele [Fri, 12 Jul 2024 15:44:43 +0000 (15:44 +0000)]
Merge changes I03cb1f37,I66ce8530,Iad1ace55,Ib9eef3cf into devel/master

* changes:
  Making test-render-surface.h/cpp common across repos
  Updating framebuffer to use renderpass
  Minor test harness updates
  Updating graphics-api for Vulkan

7 weeks agoCleaned up render pass creation comments 14/314514/1
David Steele [Tue, 9 Jul 2024 17:58:31 +0000 (18:58 +0100)]
Cleaned up render pass creation comments

Change-Id: I92a7a4c4beb236fd2caa9207c7726079374bc480

7 weeks agoDALi Version 2.3.32 95/314495/1 dali_2.3.32
David Steele [Fri, 12 Jul 2024 10:12:04 +0000 (11:12 +0100)]
DALi Version 2.3.32

Change-Id: If9a370530f2668add53306b58726d6cfb7c5f60a

7 weeks agoCalculate Has with std::string_view 20/314420/2
Eunki, Hong [Thu, 11 Jul 2024 10:26:56 +0000 (19:26 +0900)]
Calculate Has with std::string_view

Since convert from std::string_view to std::string
might requred memory copy.

To avoid this overhead, let we make a API that calculate
hash as string_view, instead of full string

Change-Id: Ie5455a5001e1c1f423023708a4988d53badff74c
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
7 weeks agoPrint log if TypeInfo asserted + Do not assert if we call SetProperty for readonly... 53/314153/2
Eunki, Hong [Mon, 8 Jul 2024 01:52:43 +0000 (10:52 +0900)]
Print log if TypeInfo asserted + Do not assert if we call SetProperty for readonly + Add keyword LIKELY / UNLIKELY

Change-Id: Ia910ced0e022f95a262cd508b02b31917b1e3a83
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
7 weeks agoMaking test-render-surface.h/cpp common across repos 52/313552/4
David Steele [Thu, 27 Jun 2024 17:12:20 +0000 (18:12 +0100)]
Making test-render-surface.h/cpp common across repos

Change-Id: I03cb1f37ad9f51bc96b08bb31b6ee9d7d20cd083
Signed-off-by: David Steele <david.steele@samsung.com>
7 weeks agoUpdating framebuffer to use renderpass 80/313480/5
David Steele [Thu, 20 Jun 2024 17:21:04 +0000 (18:21 +0100)]
Updating framebuffer to use renderpass

Vulkan framebuffer requires a renderpass to be defined before
the framebuffer can be created. Currently in gles backend, this
order is irrelevant, and is not defined in the graphics api.

Added Graphics::RenderPass vector to the
Graphics::FramebufferCreateInfo - this vector may have more than one
compatible render pass in it. The first render pass will be used to
create the framebuffer, but BeginRenderPass may use any of the defined
render passes with that framebuffer (as long as they are compatible in
vulkan, i.e. only differ by layout or load/store ops).

Change-Id: I66ce8530a34bcb1da57461db5644771efe0af48c

7 weeks agoMinor test harness updates 70/313170/6
David Steele [Wed, 19 Jun 2024 09:07:58 +0000 (10:07 +0100)]
Minor test harness updates

Adding test-render-surface to dali-core

Change-Id: Iad1ace557fd4bab95a5e5cae5cf8281a9f4d2c64

7 weeks agoUpdating graphics-api for Vulkan 69/313169/5
David Steele [Fri, 14 Jun 2024 08:56:47 +0000 (09:56 +0100)]
Updating graphics-api for Vulkan

Change-Id: Ib9eef3cf2901b4fae094891d9ac82939c5be9d49

7 weeks agoRemove useless macro 52/314152/2
Eunki, Hong [Mon, 8 Jul 2024 01:30:30 +0000 (10:30 +0900)]
Remove useless macro

Since we use IndexedMap for a long time and it doesn't show any problem, let we remove this macro

Change-Id: Ifa949d9b4a2b40238770d63b170d9dd462ff0f95
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
8 weeks agoDALi Version 2.3.31 19/314119/1 dali_2.3.31
Adam Bialogonski [Fri, 5 Jul 2024 09:08:01 +0000 (10:08 +0100)]
DALi Version 2.3.31

Change-Id: Ifa20f9c8ef8faea482e55bcfd24cf71f1460af05

8 weeks agoMerge "Print log if worker thread destruction occured for UI items." into devel/master
Adeel Kazmi [Thu, 4 Jul 2024 15:56:28 +0000 (15:56 +0000)]
Merge "Print log if worker thread destruction occured for UI items." into devel/master

8 weeks agoPrint log if worker thread destruction occured for UI items. 79/313979/7
Eunki, Hong [Wed, 3 Jul 2024 11:24:22 +0000 (20:24 +0900)]
Print log if worker thread destruction occured for UI items.

Change-Id: I15db9dd5d6763b403b4b5015c95e3491c18443dc
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
8 weeks agoMake Log::LogMessage print to stderr / stdout if log function not installed 48/314048/5
Eunki, Hong [Thu, 4 Jul 2024 10:16:18 +0000 (19:16 +0900)]
Make Log::LogMessage print to stderr / stdout if log function not installed

Until now, we just ignore the messages when we use Dali::Integration::Log::LogMessage(Something like, DALI_LOG_ERROR macro) when we don't install log function.

The log function exist per each threads.
But it is difficult to debug something at worker thread jobs
what DALi cannot controled. (Like GC thread for dotnet Application)

For more general and each debugging, let we print 'something' even if
log function is not installed, like stderr.

For now, Tizen platform re-open the stderr / stdout as dlog.
and Linux-friendly + Windows support to print logs into stderr, stdout file.

Change-Id: Iaf6a49d8aa9f53108b4c83bbdb18df406e3b57fa
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
8 weeks agoFix coverity issue : Uninitialized value at HitTestResult + PanGestureDetector SG... 87/313787/3
Eunki, Hong [Tue, 2 Jul 2024 03:35:07 +0000 (12:35 +0900)]
Fix coverity issue : Uninitialized value at HitTestResult + PanGestureDetector SG delete

Since PanGestureDetector use SG::PanGesture, which the memory ownership is on UpdateManager,
we need to take carefully to control the memory usage.

Change-Id: I7c2929c97b57e6e14072e0598bcd1788aa43af98
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 months agoMerge "Added element stride to the UniformInfo" into devel/master
David Steele [Fri, 28 Jun 2024 14:36:30 +0000 (14:36 +0000)]
Merge "Added element stride to the UniformInfo" into devel/master

2 months agoDALi Version 2.3.30 24/313624/1 dali_2.3.30
Richard Huang [Fri, 28 Jun 2024 10:10:21 +0000 (11:10 +0100)]
DALi Version 2.3.30

Change-Id: I4ac6554c928cb7a90cea3574308c40634476147d

2 months agoAdded element stride to the UniformInfo 03/313403/5
Adam Bialogonski [Tue, 25 Jun 2024 11:27:33 +0000 (12:27 +0100)]
Added element stride to the UniformInfo

Added element stride to the UniformInfo when uniform is an array.

Change-Id: Ib006d0ce50589b2ef5cf1a5bd1e6b3ab7fe9ec45

2 months agoMerge "Add TouchPropagationType enum. PARENT events are propagated to parents in...
joogab yun [Tue, 25 Jun 2024 07:15:28 +0000 (07:15 +0000)]
Merge "Add TouchPropagationType enum. PARENT events are propagated to parents in the traditional way. GEOMETRY is a new way in which events are propagated based on geometry." into devel/master

2 months agoAdd TouchPropagationType enum. 65/313365/3
joogab.yun [Tue, 25 Jun 2024 01:24:26 +0000 (10:24 +0900)]
Add TouchPropagationType enum.
PARENT events are propagated to parents in the traditional way.
GEOMETRY is a new way in which events are propagated based on geometry.

Change-Id: I3a717d5433e73f22e835ed3e6cd384a337160688

2 months agoMerge changes I576e6929,Ib8bae68c into devel/master
Eunki Hong [Mon, 24 Jun 2024 02:09:50 +0000 (02:09 +0000)]
Merge changes I576e6929,Ib8bae68c into devel/master

* changes:
  Mark dirty flag into SG::Renderer directly if visual property changed
  Remove static_cast when we try to get decorated visual properties

2 months agoDALi Version 2.3.29 84/313284/1 dali_2.3.29
David Steele [Fri, 21 Jun 2024 11:28:01 +0000 (12:28 +0100)]
DALi Version 2.3.29

Change-Id: I130c77353c8488d8d62b02bbbff076bd016acdb5

2 months agoMark dirty flag into SG::Renderer directly if visual property changed 05/313205/4
Eunki, Hong [Thu, 20 Jun 2024 05:29:47 +0000 (14:29 +0900)]
Mark dirty flag into SG::Renderer directly if visual property changed

Since age-down the visual property every frames make performance down,
let we update VisualRenderer's property send updated flag into SG::Renderer directly.

Now it will reduce some useless call of PrepareProperties of visual renderer.

Change-Id: I576e6929fca6945379b72988b4f3633e2ad70e22
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 months agoRemove static_cast when we try to get decorated visual properties 94/313194/3
Eunki, Hong [Thu, 20 Jun 2024 04:35:07 +0000 (13:35 +0900)]
Remove static_cast when we try to get decorated visual properties

Since we don't have any plan to add extra data for VisualRenderer now,
let we specify the class of Extension of VisualRenderer, instead of void*

Change-Id: Ib8bae68c58082c93fb9a7dbe673c589f3b523766
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 months agoMerge "If Hittable is false, actor should not receive events except INTERRUPTED"...
joogab yun [Thu, 20 Jun 2024 05:02:42 +0000 (05:02 +0000)]
Merge "If Hittable is false, actor should not receive events except INTERRUPTED" into devel/master

2 months agoMerge "For Frame Event" into devel/master
joogab yun [Thu, 20 Jun 2024 01:52:41 +0000 (01:52 +0000)]
Merge "For Frame Event" into devel/master

2 months agoIf Hittable is false, actor should not receive events except INTERRUPTED 75/313175/2
joogab.yun [Thu, 20 Jun 2024 01:02:48 +0000 (10:02 +0900)]
If Hittable is false, actor should not receive events except INTERRUPTED

Change-Id: I6f782f0e3021ea1d3bcc8a9ce630956bd2128fda

2 months agoCall OnBake(), OnSet only if the value is really changed 49/313149/1
Eunki, Hong [Wed, 19 Jun 2024 09:57:05 +0000 (18:57 +0900)]
Call OnBake(), OnSet only if the value is really changed

Let we check the current value and inputed value, so if they are same, ignore.

It will be useful when we don't want to mark dirty for animatable property doesn't changed.

For performance issue, let we just check only for bool / int / float.

TODO : Chould we check them also at Vector2,3,4?

Change-Id: I70b36eab97585a09c2c021da4f37a1d983a771af
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 months agoMerge "If USER_INTERACTION_ENABLED is false, actor should not receive events." into...
joogab yun [Tue, 18 Jun 2024 07:47:36 +0000 (07:47 +0000)]
Merge "If USER_INTERACTION_ENABLED is false, actor should not receive events." into devel/master

2 months agoMerge "A new gesture recognition method. 1. Add HandleEvent(actor, touch) api at...
joogab yun [Tue, 18 Jun 2024 07:33:01 +0000 (07:33 +0000)]
Merge "A new gesture recognition method. 1. Add HandleEvent(actor, touch) api at GestureDetector    This is an API that recognizes gestures by passing the actor for which the gesture should be recognized and the touch event to GestureDetector.    You can use it in the touch event callback. This should be used with SetGeometryHittestEnabled(true). 2. To support multi-gesture, we hit-test each multi-touch" into devel/master

2 months agoMerge "Reverts the previously implemented FeedTouch. The new Logic FeedTouch is comin...
joogab yun [Tue, 18 Jun 2024 07:32:41 +0000 (07:32 +0000)]
Merge "Reverts the previously implemented FeedTouch. The new Logic FeedTouch is coming soon." into devel/master

2 months agoFor Frame Event 04/311804/9
joogab.yun [Tue, 28 May 2024 07:12:24 +0000 (16:12 +0900)]
For Frame Event

When processing multiple multi-touches, they are grouped and processed. Add handledMultiTouch condition for grouping.

Change-Id: I9870485f03c0ef16f7ba7231f47d5bd3e8bc1f84

2 months agoMerge "Make Transform Component dirty as 2 frames, not for true/false" into devel...
Eunki Hong [Mon, 17 Jun 2024 05:52:25 +0000 (05:52 +0000)]
Merge "Make Transform Component dirty as 2 frames, not for true/false" into devel/master

2 months agoDALi Version 2.3.28 01/312801/1 dali_2.3.28
Adam Bialogonski [Fri, 14 Jun 2024 08:32:14 +0000 (09:32 +0100)]
DALi Version 2.3.28

Change-Id: I6208c856efbdcce2f56dc53d8745062c3c012f94

2 months agoIf USER_INTERACTION_ENABLED is false, actor should not receive events. 18/312718/1
joogab.yun [Thu, 13 Jun 2024 09:07:11 +0000 (18:07 +0900)]
If USER_INTERACTION_ENABLED is false, actor should not receive events.

Change-Id: I21ca9b8587dfecf7412d6dff736f0bbcbc9b8bed

2 months agoRemove old pan gesture history when guesture started. 89/312689/1
Eunki, Hong [Thu, 13 Jun 2024 05:02:29 +0000 (14:02 +0900)]
Remove old pan gesture history when guesture started.

Change-Id: I2cec5ea23b801c5dc6e7ac2e0fd0da0c780c42c2
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 months agoA new gesture recognition method. 69/309669/84
joogab.yun [Mon, 15 Apr 2024 07:02:41 +0000 (16:02 +0900)]
A new gesture recognition method.
1. Add HandleEvent(actor, touch) api at GestureDetector
   This is an API that recognizes gestures by passing the actor for which the gesture should be recognized and the touch event to GestureDetector.
   You can use it in the touch event callback. This should be used with SetGeometryHittestEnabled(true).
2. To support multi-gesture, we hit-test each multi-touch

Change-Id: I6ea2d42fe54d1ebd7ce8a1844f91434765f9b478

2 months agoFix partial update issue after VisualRenderer patch applied 47/312647/1
Eunki, Hong [Wed, 12 Jun 2024 13:18:42 +0000 (22:18 +0900)]
Fix partial update issue after VisualRenderer patch applied

Change-Id: I0df716d6a4607ada01119c67f77f127a70566ab2
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 months agoMake Transform Component dirty as 2 frames, not for true/false 15/312615/4
Eunki, Hong [Wed, 12 Jun 2024 09:11:58 +0000 (18:11 +0900)]
Make Transform Component dirty as 2 frames, not for true/false

Since ResetToBaseValue for TransfromProperty doesn't use basic
AnimatableProperty logic, the dirty flag is not match with common sence.

To match it as frame-by-frame, let we make component dirty as 2 bit,
and age-down every frame.

And after we allow to use dirty flag feature for transform,
we can determine whether we need to re-calculate matrix or not.

If that flag be used, we can 'skip' heavy matrix multiply operation.

Change-Id: Icf51e0be37962bee5147c08bb0cd3302bf203f89
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 months agoReverts the previously implemented FeedTouch. The new Logic FeedTouch is coming soon. 63/309663/16
joogab.yun [Mon, 15 Apr 2024 05:52:37 +0000 (14:52 +0900)]
Reverts the previously implemented FeedTouch. The new Logic FeedTouch is coming soon.

Revert "1. Fixes a bug where events do not occur when longPressGestures overlap. This is when using gestures with FeedTouch."

This reverts commit b0516efeefaff68139bee29a7317eccd3729adbb.

Revert "actorCoordinates were missing from TapGesture when FeedTouch was used"

This reverts commit 9e32a10a253c53d66ec41fe915d6d378bf2d8aa4.

Revert "Touch and Hover event propagrated by geometry way.(5)"

This reverts commit c1ead670ee0d10718449be889b6bdacf98d93a60.

Revert "Add FeedTouch api to GestureDetector."

This reverts commit 54e52fd9d4556e19b2e97082b057ad886952e55e.

Change-Id: Iffe838047df670006ad23f7c5d46eb7f938cd16c

2 months agoMerge "Fix for GCC14" into devel/master
Seungho BAEK [Wed, 12 Jun 2024 04:56:04 +0000 (04:56 +0000)]
Merge "Fix for GCC14" into devel/master

2 months agoCall ResetToBaseValue only 1 times per PropertyBase 60/312360/4
Eunki Hong [Fri, 7 Jun 2024 08:26:06 +0000 (17:26 +0900)]
Call ResetToBaseValue only 1 times per PropertyBase

If multiple animation try to change single property, the dirty flag
of PropertyBase would not be works well.

To ensure the dirty flag, let we collect resetter required properties
into single container, and call ResetToBaseValue only one times.

It will ensure that we call the resetter only 1 times per 1 frame.

Change-Id: I1a3792993f2ef681399f72f6f1718731408f2128
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
2 months agoFix for GCC14 62/312462/2
Seungho Baek [Mon, 10 Jun 2024 09:06:51 +0000 (18:06 +0900)]
Fix for GCC14

Change-Id: I3a0528f8c6752e2f042a5cf6bfa11b66d875b22a
Signed-off-by: Seungho Baek <sbsh.baek@samsung.com>
2 months agoFix Animation with EndAction::DISCARD dont reset properties. 43/312143/7
Eunki, Hong [Tue, 4 Jun 2024 12:38:38 +0000 (21:38 +0900)]
Fix Animation with EndAction::DISCARD dont reset properties.

If Animation::EndAction::DISCARD finisehd normally cases,
The mDirtyFlag was not matched with real world

For example

ResetToBaseValue[0](mDirtyFlag become 1)
Animate and finished (mValue[0] changed.)
(update)
ResetToBaseValue[1](mDirtyFlag become 0)
(update)
(ResetToBaseValue did not called. So mValue[0] is last frame value)
(update)
(ResetToBaseValue did not called. So mValue[1] is BaseValue)

Now, mValue become flickering.

To avoid this problem, let we call ResetToBaseValue at least 2 frames
if finished animation's EndAction is DISCARD.
(Note that we don't consider Stop() call cases, since Stop() will not Animate
Animator, so mValue[0] is BaseValue)

And also, There was some issue that visual renderer property changeness not updated to
the dirty rect infomation.
(Since SG::Renderer don't be mark as updated)

To fix this issue, let we ensure to check the visual renderer property dirty.

And also, for apply Animation::EndAction::DISCARD case,
Let we make visual renderer coefficient use double buffered flags,
and age down every frames.

TODO : UpdateManager need to ResetBaseValue at least 2 frames
if Finished animation is EndAction::DISCARD.

This will need update manager side fix. So just keep this bug and fix as another patch.

Change-Id: Ibf654f723e1f986843cda620bc741b1121ee95d7
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 months agoMake InternalState for animation. So ensure Stop() Play() make the playstate is Playing 79/312079/4
Eunki, Hong [Tue, 4 Jun 2024 02:26:51 +0000 (11:26 +0900)]
Make InternalState for animation. So ensure Stop() Play() make the playstate is Playing

Since there is no way to determine that Animation::HasFinished() function called
due to we call Stop() API, or Animation finished normally.

To seperate the state, let we make new internal state
: STOPPING, PLAYING_DURING_STOPPING, PAUSED_DURING_STOPPING

STOPPING will be changed as STOPPED after Animation::HasFinished() function called.

And also, make CLEARED state so we can easly control Clear() function call.

Change-Id: I2acccfaaa034dd1edc956e4a23b0726b5d1b65e7
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 months agoDALi Version 2.3.27 79/312379/1 dali_2.3.27
Adeel Kazmi [Fri, 7 Jun 2024 17:25:58 +0000 (18:25 +0100)]
DALi Version 2.3.27

Change-Id: Icdbaecd822027f41547003ee98b716227d07306d

2 months agoEnsure cleared animation not emit finished signal during finished signal emit 21/312021/1
Eunki, Hong [Mon, 3 Jun 2024 01:51:16 +0000 (10:51 +0900)]
Ensure cleared animation not emit finished signal during finished signal emit

Since we collect all finished animations and emit after,
It is possible that finisehd signal emitted what we should not
(e.g. Animation::Clear() called during another animation's finished signal)

To avoid it, let we ensure to check whether given animation is ignored or not.

Change-Id: I681c2c8e0f1624e0846409eb862862e5392ab7ec
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 months agoMerge "Ignore AnimationFinishedCallback when we call Animation::Clear() hard + Resolv...
Eunki Hong [Mon, 3 Jun 2024 01:35:17 +0000 (01:35 +0000)]
Merge "Ignore AnimationFinishedCallback when we call Animation::Clear() hard + Resolve bug when we call Play multiple times" into devel/master

2 months agoDALi Version 2.3.26 86/311986/1 dali_2.3.26
Adeel Kazmi [Fri, 31 May 2024 10:45:04 +0000 (11:45 +0100)]
DALi Version 2.3.26

Change-Id: I8aa7325ed7b1a0ea7980c47e6c9f062db0c3060b

3 months agoIgnore AnimationFinishedCallback when we call Animation::Clear() hard + Resolve bug... 25/311925/3
Eunki, Hong [Thu, 30 May 2024 11:18:50 +0000 (20:18 +0900)]
Ignore AnimationFinishedCallback when we call Animation::Clear() hard + Resolve bug when we call Play multiple times

There was several bugs at AnimationPlayList.

1. Core::ProcessCoreEvents sequence is like this :
     SceneEvent -> NotificationManager -> Relayout -> Flush.
   If we call Animation::Clear() at SceneEvent timing, Notfication will send animation finished signal
   what we must not send.

   To avoid this system, let we store the cleared animations at AnimationPlayList.

   Since AnimationFinished callback required at least 1 frame times after flush,
   we can ignore whole notify events before Flush done.

2. Scene mPlayList keep the reference of Animation whenever we call Play, there
   were several problems. For example, If we call Play() 2 times and Clear(),
   that Dali::Animation never be removed.

Change-Id: Ie9d5298311b9e5318fecad21b1124c896fcf3a8e
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
3 months agoRemove render once trace log 91/311891/1
Eunki, Hong [Thu, 30 May 2024 04:18:09 +0000 (13:18 +0900)]
Remove render once trace log

Since it print too much logs, let we remove it

Change-Id: I8987d8fe6b184938780f268f0349702456dd0433
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
3 months agoMerge "Add FittingMode for visual fittingMode" into devel/master
sunghyun kim [Wed, 29 May 2024 03:59:11 +0000 (03:59 +0000)]
Merge "Add FittingMode for visual fittingMode" into devel/master

3 months agoMerge "Apply RenderUntil() on sorted RenderList" into devel/master
Jeongmin Lee [Tue, 28 May 2024 14:32:29 +0000 (14:32 +0000)]
Merge "Apply RenderUntil() on sorted RenderList" into devel/master

3 months agoApply RenderUntil() on sorted RenderList 66/311366/14
jmm [Fri, 19 Apr 2024 11:55:52 +0000 (20:55 +0900)]
Apply RenderUntil() on sorted RenderList

Change-Id: I64a3b567984494d1f284095d68e44b7e318a04d5

3 months agoImplement ProcessorOnce 95/311795/2
Eunki, Hong [Tue, 28 May 2024 04:06:18 +0000 (13:06 +0900)]
Implement ProcessorOnce

Since unregister processor during Process will give overhead,
we'd better make another container to process only once time
during ProcessCoreEvent.

Change-Id: I0b38490ccdbd7da4f7ec1acf80253a1aee8c42ad
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
3 months agoOptimize Add/Remove SG::RenderTask from SG::RenderTaskList 04/308204/3
Eunki Hong [Tue, 19 Mar 2024 14:28:22 +0000 (23:28 +0900)]
Optimize Add/Remove SG::RenderTask from SG::RenderTaskList

Let we make render task list use OrderedSet instead of vector container.

Vector container is slow if we call RemoveRenderTask.

TODO : Optimize event side render task list too.
But since it is quite complex, we'd better optimize that points
in another patch

Change-Id: Icd6f2e7a24964eb05c92fa9a5ce0e306814445ee
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
3 months agoDALi Version 2.3.25 18/311718/1 dali_2.3.25
Richard Huang [Fri, 24 May 2024 11:32:58 +0000 (12:32 +0100)]
DALi Version 2.3.25

Change-Id: Ib32a2c7cb1d61bff3955047cb03be7142d14693f

3 months agoControl core policy as one flag 71/311671/1
Eunki, Hong [Thu, 23 May 2024 08:27:59 +0000 (17:27 +0900)]
Control core policy as one flag

Let we collect core creation status, instead of parameter increasement.

It will be useful when we add more features of Core.

Change-Id: I746bdb714eac5dcbd792a1a33a93abd2b96fe4cb
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
3 months agoPerformance trace for some bottleneck of update/render manager 48/311648/3
Eunki, Hong [Thu, 23 May 2024 05:13:06 +0000 (14:13 +0900)]
Performance trace for some bottleneck of update/render manager

Let we check trace the top 5 area of update : update itself / animation /
frame update callback / update renderer / transform
and top 2 area of render : render instruction process / flush

TODO : Since the name of environment need to be sync with peformance
trace tool, we'd better change it after the system prepared.

Change-Id: I4a9e38b6b957508138737ee225c0cfa9ad94a8f9
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
3 months agoMerge changes Ib3f51bd8,Ibfbeca64 into devel/master
Eunki Hong [Thu, 23 May 2024 06:20:51 +0000 (06:20 +0000)]
Merge changes Ib3f51bd8,Ibfbeca64 into devel/master

* changes:
  Pint log if animation play / stop / pause / clear / destroy
  Print top5 longest time spend AnimationFinished & FrameUpdate callbacks

3 months agoPint log if animation play / stop / pause / clear / destroy 46/311646/1
Eunki, Hong [Thu, 23 May 2024 04:53:40 +0000 (13:53 +0900)]
Pint log if animation play / stop / pause / clear / destroy

Let we know the animation's state by id, if user want to know.

Change-Id: Ib3f51bd8035ae6958f37f2340b1dbbe10cfaf029
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
3 months agoPrint top5 longest time spend AnimationFinished & FrameUpdate callbacks 43/311643/1
Eunki, Hong [Tue, 20 Feb 2024 04:55:34 +0000 (13:55 +0900)]
Print top5 longest time spend AnimationFinished & FrameUpdate callbacks

Very rarely, we got some report from performance team that
"DALI_NOTIFICATION_NOTIFY_COMPLETED" and "DALI_FRAME_CALLBACK_UPDATE" is bottleneck.

To escape the false accusation, let we collect the App side callback
execute time and print it.

This time checker already merged at tizen_8.0 branch.

Change-Id: Ibfbeca6440f1b9c46ebb2f71200139de611a2b4a
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
3 months agoEven when multi-touching, the captured actor is used without a hittest every time. 87/311487/5
joogab.yun [Wed, 22 May 2024 05:07:38 +0000 (14:07 +0900)]
Even when multi-touching, the captured actor is used without a hittest every time.

Change-Id: Ib934b4b5626747a9ed7036d7489f82c94e7b4b16

3 months agoMerge "Remove an unneccessary argument at Process()" into devel/master
Jeongmin Lee [Tue, 21 May 2024 04:49:53 +0000 (04:49 +0000)]
Merge "Remove an unneccessary argument at Process()" into devel/master

3 months agoRemove an unneccessary argument at Process() 70/311370/1
jmm [Mon, 20 May 2024 07:05:36 +0000 (16:05 +0900)]
Remove an unneccessary argument at Process()

Change-Id: I62c8ab7fe11b28c67fa3fe5e277142d969af8698