platform/core/uifw/dali-core.git
18 months agoUse map instead of hashmap in signal cache 64/282564/3
Eunki, Hong [Thu, 6 Oct 2022 04:15:06 +0000 (13:15 +0900)]
Use map instead of hashmap in signal cache

std::unordered_map is heavy than std::map for small case.
Let make the signal more lightweight.

Change-Id: I7868b44831fa095b8cdd0f963c6ac66ac741e6a7
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
18 months agoFix Window Rotation issue 90/282390/10
seungho [Fri, 30 Sep 2022 10:30:47 +0000 (19:30 +0900)]
Fix Window Rotation issue

 - Viewport was incorrectly computed when viewport is not fullscreen and window is rotated.
 - Scissor rect was incorrectly computed when viewport is not fullscreen and window is rotated.

Change-Id: I44c64a2216f6364d2d29e0bcdd38c5e0cbc7467c
Signed-off-by: seungho <sbsh.baek@samsung.com>
18 months agoMerge "Calculrate screen position with RenderTask" into devel/master
Adeel Kazmi [Mon, 3 Oct 2022 16:53:55 +0000 (16:53 +0000)]
Merge "Calculrate screen position with RenderTask" into devel/master

18 months agoDALi Version 2.1.42 78/282378/1 dali_2.1.42
Richard Huang [Fri, 30 Sep 2022 10:28:13 +0000 (11:28 +0100)]
DALi Version 2.1.42

Change-Id: I0f7ebbd5a33d3949c60995deb4af56c02ef20b25

18 months agoCalculrate screen position with RenderTask 13/280813/16
Eunki, Hong [Mon, 5 Sep 2022 10:14:39 +0000 (19:14 +0900)]
Calculrate screen position with RenderTask

Previous ScreenPosition / ScreenExtents consider
only the scene's default camera.
Now we make a new API that consider Custom camera's
View/Projection matrix.

Calculate screen position & extents is quite heavy
operation. So we need to seperate it for
simple 2D layer or 3D layer.

So, we add mLayer3DParentsCount value in actor.
It will be generated when actor is scene on,
or some layer's behaviour changed during on scene.

Change-Id: I7a6162bea84965f70800a6e7cbf2332e9933e20d
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
19 months agoMerge "Optimize transform level propagate" into devel/master
David Steele [Tue, 27 Sep 2022 16:56:42 +0000 (16:56 +0000)]
Merge "Optimize transform level propagate" into devel/master

19 months agoMerge "Submit a empty command buffer when rendering is skipped to flush" into devel...
Heeyong Song [Tue, 27 Sep 2022 03:49:54 +0000 (03:49 +0000)]
Merge "Submit a empty command buffer when rendering is skipped to flush" into devel/master

19 months agoMerge "Moved event side actor world calculation" into devel/master
David Steele [Mon, 26 Sep 2022 10:45:00 +0000 (10:45 +0000)]
Merge "Moved event side actor world calculation" into devel/master

19 months agoSubmit a empty command buffer when rendering is skipped to flush 85/281985/1
Heeyong Song [Mon, 26 Sep 2022 02:24:37 +0000 (11:24 +0900)]
Submit a empty command buffer when rendering is skipped to flush

Change-Id: Id0be7a139f6b990a8c17212102a0619aaeb8ea80

19 months agoDALi Version 2.1.41 54/281954/1 dali_2.1.41
David Steele [Fri, 23 Sep 2022 10:56:24 +0000 (11:56 +0100)]
DALi Version 2.1.41

Change-Id: Ib771ee6b62ff43b1d08feefc0f66918e0512eb9f

19 months agoMoved event side actor world calculation 66/281866/1
David Steele [Thu, 22 Sep 2022 15:10:47 +0000 (16:10 +0100)]
Moved event side actor world calculation

Transition effects used event side calculation of world
transform and color. These are more useful in devel core
than internally in toolkit.

Change-Id: I1a86cee588e3c7beecf5ba1665b1464c5e54939f
Signed-off-by: David Steele <david.steele@samsung.com>
19 months agoOptimize transform level propagate 14/281814/1
Eunki, Hong [Thu, 22 Sep 2022 05:45:25 +0000 (14:45 +0900)]
Optimize transform level propagate

We can assume that if mIds[mParent[i]] < i,
then parent's mOrderedCompoents data validated.
So, if we can, we can use this valid parent value.

Change-Id: I464008a53d61258fcff846e07f92aee0a9d5cb8d
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
19 months agoFix transform sceneId order issue 74/281674/3
Eunki, Hong [Tue, 20 Sep 2022 11:13:27 +0000 (20:13 +0900)]
Fix transform sceneId order issue

When mIds[mPanret[i]] is bigger then i,
mOrderedCOmponents[~~].sceneId become garbage.

To fix this issue, let we store sceneId first,
and propargate sceneId later.

Note : sceneId become the lastest parent's sceneId.
So, it always valid.

Change-Id: I27c6e51cda0ae696bf1ff5179ddb735f3e24aa65
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
19 months agoSubmit command buffer when rendering is skipped 30/281430/1
Heeyong Song [Mon, 19 Sep 2022 02:56:45 +0000 (11:56 +0900)]
Submit command buffer when rendering is skipped

Change-Id: I4b9be39763b82d96982454e9bad356a38aceb600

19 months agoDALi Version 2.1.40 02/281402/1 dali_2.1.40
Adeel Kazmi [Fri, 16 Sep 2022 11:04:40 +0000 (12:04 +0100)]
DALi Version 2.1.40

Change-Id: I651c897ab226bc14064c9f4659550f9162e72c26

19 months agoMerge "(Partial Update) Fix window rotation issue" into devel/master
Heeyong Song [Thu, 15 Sep 2022 14:29:12 +0000 (14:29 +0000)]
Merge "(Partial Update) Fix window rotation issue" into devel/master

19 months agoMerge "Ensure the processor unregistered during the callback is not executed" into...
Heeyong Song [Thu, 15 Sep 2022 14:28:41 +0000 (14:28 +0000)]
Merge "Ensure the processor unregistered during the callback is not executed" into devel/master

19 months ago(Partial Update) Fix window rotation issue 64/281264/1
Heeyong Song [Thu, 15 Sep 2022 05:25:34 +0000 (14:25 +0900)]
(Partial Update) Fix window rotation issue

Set the dirty flag of the root layer when the surface size is changed

Change-Id: I5347d11859dc3deb0830f3086012241eb0708882

19 months agoDo not reset properties when properties are explicitly set 30/281130/5
seungho [Tue, 13 Sep 2022 05:36:11 +0000 (14:36 +0900)]
Do not reset properties when properties are explicitly set

 + Change property type of Camera::Type, Camera::ProjectionMode from string to integer

Change-Id: I312d5b2a29b7dcbe3c683189a8b5aa519b928933
Signed-off-by: seungho <sbsh.baek@samsung.com>
19 months agoEnsure the processor unregistered during the callback is not executed 82/281182/2
Heeyong Song [Wed, 14 Sep 2022 05:50:53 +0000 (14:50 +0900)]
Ensure the processor unregistered during the callback is not executed

Change-Id: I11215bc7bb6fdec892723f176ad6497bbf61f2a7

19 months agoDALi Version 2.1.39 83/281083/1 dali_2.1.39
Adam Bialogonski [Fri, 9 Sep 2022 09:05:19 +0000 (10:05 +0100)]
DALi Version 2.1.39

Change-Id: I100376a31675d71920664e083f5bc09ebbacd0fe

19 months agoTest harness sync (Framebuffer) 48/280748/1
Eunki, Hong [Fri, 2 Sep 2022 13:41:30 +0000 (22:41 +0900)]
Test harness sync (Framebuffer)

Change-Id: I8b6dcab39cd527230015d6721ebbe48d16c2571b
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
19 months agoDALi Version 2.1.38 29/280729/1 dali_2.1.38
Richard Huang [Fri, 2 Sep 2022 12:00:06 +0000 (13:00 +0100)]
DALi Version 2.1.38

Change-Id: I15c88f188621c7e8344c77549ae7913b3e3c6e53

20 months agoDALi Version 2.1.37 07/280307/1 dali_2.1.37
David Steele [Fri, 26 Aug 2022 11:15:16 +0000 (12:15 +0100)]
DALi Version 2.1.37

Change-Id: Ieb1fa8b7eafaacd96718ede447468f33043783d7

20 months agoMerge "(Partial Update) Change damaged rect calcutation" into devel/master
Heeyong Song [Mon, 22 Aug 2022 05:55:48 +0000 (05:55 +0000)]
Merge "(Partial Update) Change damaged rect calcutation" into devel/master

20 months agoDALi Version 2.1.36 50/279950/1 dali_2.1.36
Adam Bialogonski [Fri, 19 Aug 2022 10:07:44 +0000 (11:07 +0100)]
DALi Version 2.1.36

Change-Id: I82376a7d0b8bd5ddc897535d94cc64212a375307

20 months ago(Partial Update) Change damaged rect calcutation 96/279796/1
Heeyong Song [Thu, 18 Aug 2022 04:49:13 +0000 (13:49 +0900)]
(Partial Update) Change damaged rect calcutation

Use only the previous frame's rect
The buffer age is considered by adaptor

Change-Id: Idba3977ba6987aba984d11141a3f45612f7e5cbe

20 months agoAdd ViewportGuideActor to RenderTask 97/279397/10
seungho [Mon, 8 Aug 2022 14:13:14 +0000 (23:13 +0900)]
Add ViewportGuideActor to RenderTask

Change-Id: Ie33b8b1c9587649e6f173c664cc781d76d281b1a
Signed-off-by: seungho <sbsh.baek@samsung.com>
20 months agoMerge "DALi Version 2.1.35" into devel/master
Adeel Kazmi [Fri, 12 Aug 2022 11:36:13 +0000 (11:36 +0000)]
Merge "DALi Version 2.1.35" into devel/master

20 months agoDALi Version 2.1.35 38/279638/1 dali_2.1.35
Adeel Kazmi [Fri, 12 Aug 2022 11:22:46 +0000 (12:22 +0100)]
DALi Version 2.1.35

Change-Id: I47794cf71c5826ed8a3da25b1c29555ae75df5d5

20 months agoUnify the way to handle on/off screen render task hit test 94/279294/5
seungho [Fri, 5 Aug 2022 07:24:29 +0000 (16:24 +0900)]
Unify the way to handle on/off screen render task hit test

Change-Id: I72e3eedb85f4697b64e617a39e7371027517c1c2
Signed-off-by: seungho <sbsh.baek@samsung.com>
20 months agoDALi Version 2.1.34 24/279324/1 dali_2.1.34
David Steele [Fri, 5 Aug 2022 11:50:59 +0000 (12:50 +0100)]
DALi Version 2.1.34

Change-Id: I2417f70f60cfcaa1e36c37b48ffd1991db18bf1f

20 months agoAdd operator for Matirx3 * Vector3 19/278819/5
Eunki, Hong [Tue, 26 Jul 2022 10:21:40 +0000 (19:21 +0900)]
Add operator for Matirx3 * Vector3

We might need to multiply for some non-transition matrix.

Change-Id: I5a8aa02ce8c1e68b623aea07d9e7540f7074368f
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
20 months agoDALi Version 2.1.33 17/279017/1 dali_2.1.33
Richard Huang [Fri, 29 Jul 2022 11:11:57 +0000 (12:11 +0100)]
DALi Version 2.1.33

Change-Id: Id601d3c3c857d1c0fab7a14ca8c0cc79716b012d

21 months agoMerge "Remove std::vector dependency for dali-signal.h" into devel/master
Eunki Hong [Thu, 28 Jul 2022 03:15:33 +0000 (03:15 +0000)]
Merge "Remove std::vector dependency for dali-signal.h" into devel/master

21 months agoAdd new header files to dali-core.h 11/278811/1
Heeyong Song [Tue, 26 Jul 2022 09:01:06 +0000 (18:01 +0900)]
Add new header files to dali-core.h

Change-Id: Ib2e30ca1d715265b9b6f6727f18901a3717a266a

21 months ago(Partial Update) Change UPDATE_SIZE_HINT to UPDATE_AREA_HINT 73/278673/2
Heeyong Song [Mon, 25 Jul 2022 03:07:45 +0000 (12:07 +0900)]
(Partial Update) Change UPDATE_SIZE_HINT to UPDATE_AREA_HINT

Change the property name and the type to Vector4 to support offset also

Change-Id: I589855950cf158d833506a782d0983da9d0e97cc

21 months agoRemove std::vector dependency for dali-signal.h 68/278768/3
Eunki, Hong [Tue, 26 Jul 2022 03:12:34 +0000 (12:12 +0900)]
Remove std::vector dependency for dali-signal.h

Change-Id: Ie76bfbb60cfdc2039adc83c14877bb7dd99645ab
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
21 months agoMerge "Reduced the cyclomatic complexity of several functions" into devel/master
Adeel Kazmi [Fri, 22 Jul 2022 17:59:51 +0000 (17:59 +0000)]
Merge "Reduced the cyclomatic complexity of several functions" into devel/master

21 months agoReduced the cyclomatic complexity of several functions 56/278456/8
Adeel Kazmi [Thu, 21 Jul 2022 14:40:32 +0000 (15:40 +0100)]
Reduced the cyclomatic complexity of several functions

Change-Id: Iafbf6a58d9b152ad2c0a69db3f51fffefb6bcd93

21 months agoMerge "DALi Version 2.1.32" into devel/master
Adeel Kazmi [Fri, 22 Jul 2022 13:30:31 +0000 (13:30 +0000)]
Merge "DALi Version 2.1.32" into devel/master

21 months agoUpload PixelData's sub image to Texture 35/277735/12
Eunki, Hong [Tue, 12 Jul 2022 13:46:45 +0000 (22:46 +0900)]
Upload PixelData's sub image to Texture

Add API to upload subimage of inputed PixelData.
It will be useful when we want to make multiple tiling textures
with one single big PixelData.

Change-Id: Ia07ddc96cdaf7006239a21a307dbb0995c755bb4
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
21 months agoDALi Version 2.1.32 10/278610/1 dali_2.1.32
Adam Bialogonski [Fri, 22 Jul 2022 09:27:05 +0000 (10:27 +0100)]
DALi Version 2.1.32

Change-Id: I4389984828fbe097cfa7ffcb9c7f10b1ca189c76

21 months ago(Partial Update) Fix renderer opacity issue 47/278547/1
Heeyong Song [Fri, 22 Jul 2022 01:43:19 +0000 (10:43 +0900)]
(Partial Update) Fix renderer opacity issue

It was not detected when the renderer opacity is changed from the translucent value to another translucent value

Change-Id: If8448e03c0b106e5820c854e8878039ee93d9dc6

21 months agoReduced the cyclomatic complexity of DecoratedVisualRenderer::SetDefaultProperty 50/278450/1
Adeel Kazmi [Wed, 20 Jul 2022 13:41:57 +0000 (14:41 +0100)]
Reduced the cyclomatic complexity of DecoratedVisualRenderer::SetDefaultProperty

Change-Id: I620c95d62b1f42a1ae50b19753fc11a3e8d000d2

21 months agoMerge "Change dali-scene-loader to dali-scene3d" into devel/master
Seungho BAEK [Mon, 18 Jul 2022 11:09:07 +0000 (11:09 +0000)]
Merge "Change dali-scene-loader to dali-scene3d" into devel/master

21 months agoMerge "Fix an issue where TapGesture Events are not being received." into devel/master
joogab yun [Mon, 18 Jul 2022 06:06:25 +0000 (06:06 +0000)]
Merge "Fix an issue where TapGesture Events are not being received." into devel/master

21 months agoChange dali-scene-loader to dali-scene3d 51/277851/2
seungho [Thu, 14 Jul 2022 06:10:11 +0000 (15:10 +0900)]
Change dali-scene-loader to dali-scene3d

Change-Id: I9215482e82be1093c7cd838c5463b2b2e3ab9e09
Signed-off-by: seungho <sbsh.baek@samsung.com>
21 months agoDALi Version 2.1.31 68/277968/1 dali_2.1.31
Richard Huang [Fri, 15 Jul 2022 12:16:22 +0000 (13:16 +0100)]
DALi Version 2.1.31

Change-Id: Ic09a53977da5c19a49ebc0be6b87e4262573a337

21 months agoFix an issue where TapGesture Events are not being received. 23/277923/2
joogab.yun [Fri, 15 Jul 2022 05:01:19 +0000 (14:01 +0900)]
Fix an issue where TapGesture Events are not being received.

If MaximumTapsRequired is greater than 1, TapEvent may not be received when mMaximumAllowedTime is checked in touch-up.

So, move the mMaximumAllowedTime check code to Touchdown.

And in touch-up, the time between previous touch-down and touch-up is checked.

Change-Id: Iec05c9c902fda5c04a8ddde54bec1d887224d5fe

21 months agoProperty::Value operator== for the same type. 75/277575/7
Eunki, Hong [Fri, 8 Jul 2022 09:05:35 +0000 (18:05 +0900)]
Property::Value operator== for the same type.

Implement equal operator for the Property::Value.
It can be compare only for the same type.

NOTE : Property::Array and Property::Map don't support equal operator.
We always return false in that case.

Change-Id: Id474dbf403355b2f5d2375004694cfc18d3c8614
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
21 months agoMerge "Fix an issue where TapGesture Events are not being received." into devel/master
joogab yun [Mon, 11 Jul 2022 05:23:28 +0000 (05:23 +0000)]
Merge "Fix an issue where TapGesture Events are not being received." into devel/master

21 months agoAdd ALLOW_ONLY_OWN_TOUCH property. 32/276632/12
joogab.yun [Wed, 22 Jun 2022 07:52:58 +0000 (16:52 +0900)]
Add ALLOW_ONLY_OWN_TOUCH property.

It only receive for touch events that started from itself.
So if it's not a touch started  by myself, actor doesn't receive a touch event.

Change-Id: I58151d7072a4f1dbae1a015e6b3fc0b298745773

21 months agoDALi Version 2.1.30 47/277547/1 dali_2.1.30
Adeel Kazmi [Fri, 8 Jul 2022 05:47:39 +0000 (06:47 +0100)]
DALi Version 2.1.30

Change-Id: I61ee6970d3b31b7c511b82a4497d4183e2fc86e2

21 months agoFix an issue where TapGesture Events are not being received. 85/277385/4
joogab.yun [Tue, 5 Jul 2022 05:29:22 +0000 (14:29 +0900)]
Fix an issue where TapGesture Events are not being received.

If multiple Tap GestureDetectors are registered, you may not receive gesture events depending on the setting of MaximumTapsRequired.

example)
TapGestureDetector detector1 = TapGestureDetector::New();
detector1.SetMaximumTapsRequired(1u);
detector1.Attach(actor1);

TapGestureDetector detector2 = TapGestureDetector::New();
detector2.SetMaximumTapsRequired(2u);
detector2.Attach(actor2);

When actor1 is tapped multiple times, I expect to receive a gesture event on every tap because MaximumTapsRequired is 1u, but I don't get the event every tap.

It is because the MaximumTapsRequred of detector2 is set to 2u, the MaximumTaps of the tap-gesture-recognizer is set to 2u.

So, if there is a double tap, the tap event is not delivered to detector1 because it exceeds the MaximumTaps of detector1.

For this reason, the check of MaximumTapsRequired is modified to be checked by each detector.

Change-Id: I297debdf7ff680affafc763d4af3db323f80a095

21 months agoDirectRendering with DrawableView support and list of used resources 11/276111/8
Adam Bialogonski [Wed, 6 Jul 2022 10:40:40 +0000 (11:40 +0100)]
DirectRendering with DrawableView support and list of used resources

- Added GLESNativeInfo inner struct (in NativeDrawInfo) to extract shared context
- The native draw can use list of textures and buffers that the callback will use
- The used resources are being passed into the callback so it can access DALi objects

Change-Id: I6b162c0741d95ab3698185d05e2a78f4b0ab02f7

21 months agoMerge "DALi Version 2.1.29" into devel/master
David Steele [Fri, 1 Jul 2022 11:12:12 +0000 (11:12 +0000)]
Merge "DALi Version 2.1.29" into devel/master

21 months agoDALi Version 2.1.29 89/277189/1 dali_2.1.29
David Steele [Fri, 1 Jul 2022 11:06:54 +0000 (12:06 +0100)]
DALi Version 2.1.29

Change-Id: Icb5bea910e30730302e73906f873469afb3146f4

21 months agoAdd InterceptKeyEvent 83/276883/4
joogab.yun [Mon, 27 Jun 2022 09:18:20 +0000 (18:18 +0900)]
Add InterceptKeyEvent

Intercepts KeyEvents in the window before dispatching KeyEvents to the control.
If a KeyEvent is consumed, no KeyEvent is delivered to the control.

Change-Id: If6ee2b2fb03d936a7840b4c984129a31bb8b948d

22 months agoAdd GetPixelFormat to Texture 89/276889/1
Heeyong Song [Mon, 27 Jun 2022 09:32:09 +0000 (18:32 +0900)]
Add GetPixelFormat to Texture

Change-Id: Ib9cf0b03f409c909e7c7187d8ea19661296d36d5

22 months agoMerge "DALi Version 2.1.28" into devel/master
David Steele [Fri, 24 Jun 2022 13:26:05 +0000 (13:26 +0000)]
Merge "DALi Version 2.1.28" into devel/master

22 months agoDALi Version 2.1.28 88/276788/1 dali_2.1.28
Adeel Kazmi [Fri, 24 Jun 2022 13:08:24 +0000 (14:08 +0100)]
DALi Version 2.1.28

Change-Id: I7cea4233901b6d16f8edba3eb3be48317ae49e23

22 months agoAdd default logs in key event processor 84/276484/2
Heeyong Song [Fri, 17 Jun 2022 07:11:11 +0000 (16:11 +0900)]
Add default logs in key event processor

Change-Id: I3b8352cb57afe5b6de381f6285d7020786df0578

22 months agoEnable ENABLE_BACKTRACE 79/276479/4
Heeyong Song [Fri, 17 Jun 2022 06:22:36 +0000 (15:22 +0900)]
Enable ENABLE_BACKTRACE

Change-Id: Ib992346a029132000b2558b41a934c2b6115b647

22 months agoFixed SVACE error in pan-gesture-processor.cpp 53/276553/1
Adeel Kazmi [Mon, 20 Jun 2022 09:58:06 +0000 (10:58 +0100)]
Fixed SVACE error in pan-gesture-processor.cpp

Change-Id: Ia4b8d58e4dcffd1f4da85a0a5a4c8fd077693532

22 months agoFix logical bug on Pan MotionEventAge 14/276514/1
Eunki, Hong [Mon, 20 Jun 2022 01:23:51 +0000 (10:23 +0900)]
Fix logical bug on Pan MotionEventAge

Fix incorrect operation direction of age check-up.

Change-Id: Ia76f9cdda639c0417da1002906e63a02f97d1b67
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
22 months agoMerge "DALi Version 2.1.27" into devel/master
David Steele [Fri, 17 Jun 2022 10:40:03 +0000 (10:40 +0000)]
Merge "DALi Version 2.1.27" into devel/master

22 months agoDALi Version 2.1.27 95/276495/1 dali_2.1.27
David Steele [Fri, 17 Jun 2022 10:27:55 +0000 (11:27 +0100)]
DALi Version 2.1.27

Change-Id: I079653c71810ddbf0469601c0e2f594c23fb630a

22 months agoDiscard some motion during pan gesture 78/276378/7
Eunki, Hong [Wed, 15 Jun 2022 12:57:34 +0000 (21:57 +0900)]
Discard some motion during pan gesture

When event spend so long time, a lot of events are queued.

Ecore cannot skip these event, so we make some heuristic
threshold of discard motion events on pan gesture.

We can setup this value by PanGestuerDetector's member vaule.
The name is "MaximumMotionEventAge".
the time scale is millisecond.

Default age is UINT_MAX ms (~= 49 days)
That mean, we will not discard every motion events.
(Ecore event callback also use uint32_t type in ms.)

Change-Id: Ib721e81d690327dcbc6c6c58383b33c7d5560922
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
22 months agoMake mScene nullptr when the Actor is disconnected from Scene recursively 46/276246/2
Heeyong Song [Mon, 13 Jun 2022 09:27:58 +0000 (18:27 +0900)]
Make mScene nullptr when the Actor is disconnected from Scene recursively

Change-Id: I2ef30d3ba471d87baae32d082e91426990d46463

22 months agoDALi Version 2.1.26 72/276172/1 dali_2.1.26
Adam Bialogonski [Fri, 10 Jun 2022 08:53:22 +0000 (09:53 +0100)]
DALi Version 2.1.26

Change-Id: Ie428ca744a9fbb266251cb3cdc36eafa3022214b

22 months agoMinor optimize during iterate of uniform map 79/275879/1
Eunki, Hong [Fri, 3 Jun 2022 12:30:57 +0000 (21:30 +0900)]
Minor optimize during iterate of uniform map

Dali::Vector.End() operation is heavy.
We don't need to calculate this value every iteration. So just precalculate
the end-of-iterate. It will increase performance.

Change-Id: I475d01367348943f0f4b12a6aeb870c413db0dfc
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
22 months agoDALi Version 2.1.25 69/275769/1 dali_2.1.25
Richard Huang [Wed, 1 Jun 2022 10:14:51 +0000 (11:14 +0100)]
DALi Version 2.1.25

Change-Id: Ia40d6c528558b1c2b7223acf67240ef63e43a91a

23 months agoMerge "DALi Version 2.1.24" into devel/master
Adeel Kazmi [Fri, 27 May 2022 12:19:14 +0000 (12:19 +0000)]
Merge "DALi Version 2.1.24" into devel/master

23 months agoDALi Version 2.1.24 36/275636/1 dali_2.1.24
Adeel Kazmi [Fri, 27 May 2022 12:00:48 +0000 (13:00 +0100)]
DALi Version 2.1.24

Change-Id: I8fe305f73b9987fd87366d06cb3c9225d3375231

23 months agoRevrert "Enable assert alwayd in Dali::Vector" 87/275587/3
Eunki, Hong [Thu, 26 May 2022 16:46:38 +0000 (01:46 +0900)]
Revrert "Enable assert alwayd in Dali::Vector"

Due to the DALI_ASSERT_ALWAYS, Dali::Vector try to check
the range of index every times.
It might make some performance reducing.

Change-Id: I2fdcf435bda147f9ea102c3106cb44f0772a4899
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
23 months agoMerge "DALi Version 2.1.23" into devel/master
Adeel Kazmi [Fri, 20 May 2022 12:26:26 +0000 (12:26 +0000)]
Merge "DALi Version 2.1.23" into devel/master

23 months agoDALi Version 2.1.23 10/275310/1 dali_2.1.23
Adam Bialogonski [Fri, 20 May 2022 10:16:21 +0000 (11:16 +0100)]
DALi Version 2.1.23

Change-Id: Ie34538906bedaf4a85e012130fe9c11a0ca78fb0

23 months agoFix when shader changeness not applied issue 63/275163/9
Eunki, Hong [Tue, 17 May 2022 11:52:00 +0000 (20:52 +0900)]
Fix when shader changeness not applied issue

If RenderList was reused, SG::Renderer::UpdateUniformMap didn't called.

So Render::Renderer will render with not-updated uniform-map
(But uniform map change counter is updated.)

This patch make sure that renderer's uniformMap changeness in Prepare time.
So it will be applied well before render call.

Change-Id: I06618e99f38fecd19d263afd7eaff2c30f241cc3
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
23 months agoMerge "base-signal connect and disconnect in O(1)" into devel/master
Eunki Hong [Wed, 18 May 2022 09:09:12 +0000 (09:09 +0000)]
Merge "base-signal connect and disconnect in O(1)" into devel/master

23 months agoMinor optimize during build uniform index maps 77/275077/6
Eunki, Hong [Mon, 16 May 2022 09:43:39 +0000 (18:43 +0900)]
Minor optimize during build uniform index maps

If node don't have any uniform properies,
we don't need to create about that node's index map.
Because that mean, this node will use only for renderItem's uniform.

Change-Id: Ife3bd0fc35293945786e52755ddaed49d31ae177
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
23 months agoKeyframe->GetValue works on O(log n) 01/275101/3
Eunki, Hong [Mon, 16 May 2022 17:00:41 +0000 (02:00 +0900)]
Keyframe->GetValue works on O(log n)

Previous code iterate whole key-frame to get interpolated progress value.
This patch make this job in O(log n).

So we can run animation faster even it have near 500 key-frames.

Change-Id: I14ee07db7aa75142aaaf323af7cfde9522d3851d
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
23 months agobase-signal connect and disconnect in O(1) 17/274617/13
Eunki, Hong [Tue, 3 May 2022 14:24:22 +0000 (23:24 +0900)]
base-signal connect and disconnect in O(1)

Make base-signal control the connection in O(1)
by std::unordered_map and std::list<>::iterator.
and make connection-tracker control the connection in O(1)
by std::unordered_map

std::unordered_map can found duplicated value fast
and std::list<>::iterator can access & remove value fast.
And also, std::list can keep ordered by inputed time.

TODO : Remove the dependency of std::vector header in dali-signal.h
is quite big process. Will be done in other patch

Change-Id: I940d33c46b1470973219c7a9fb10ac89dd70f1ff
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
23 months agoMerge "Apply Visual's transform + borderline properties for partial update" into...
David Steele [Fri, 13 May 2022 15:10:41 +0000 (15:10 +0000)]
Merge "Apply Visual's transform + borderline properties for partial update" into devel/master

23 months agoDALi Version 2.1.22 18/275018/1 dali_2.1.22
Richard Huang [Fri, 13 May 2022 11:01:03 +0000 (12:01 +0100)]
DALi Version 2.1.22

Change-Id: I4f1ac3a9a654f2b1469d6d8a1f189e646df30ebc

23 months agoApply Visual's transform + borderline properties for partial update 82/274182/21
Eunki, Hong [Fri, 22 Apr 2022 10:02:47 +0000 (19:02 +0900)]
Apply Visual's transform + borderline properties for partial update

Previously, PartialUpdate cannot know the vertex positions
after transform the visual.
But now, we can use VisualRender's animatable properties.

This patch re-calculate the partial update size
so we can consider Visual Transform.

And more, We make DecoratedVisualRenderer so we can use
CornerRadius + etc as default property
and also can re-calculate update size consider with BorderlineWidth or BlurRadius

Change-Id: I99962f7cda3fb51defc439cf5f1517278aa0daa4
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
23 months agoDelete Renderers before Shaders 30/274930/1
Heeyong Song [Thu, 12 May 2022 07:16:07 +0000 (16:16 +0900)]
Delete Renderers before Shaders

Change-Id: Ib7744acb7f4bed8032c50f7a388f74027afb55b2

23 months agoRemove duplicated scene object deletion from VisualRenderer 28/274928/1
Heeyong Song [Thu, 12 May 2022 07:13:59 +0000 (16:13 +0900)]
Remove duplicated scene object deletion from VisualRenderer

Change-Id: I50ef48dd8d5253360f2bc0b564ad6e84395f329a

23 months agoMerge "Add API to UpdateProxy" into devel/master
Heeyong Song [Mon, 9 May 2022 00:59:19 +0000 (00:59 +0000)]
Merge "Add API to UpdateProxy" into devel/master

23 months agoDALi Version 2.1.21 11/274711/1 dali_2.1.21
David Steele [Fri, 6 May 2022 11:37:06 +0000 (12:37 +0100)]
DALi Version 2.1.21

Change-Id: I87bb688c0b7635d23bc6f0d85237ba14549dfb34

23 months agoAdd API to UpdateProxy 53/274253/3
Heeyong Song [Mon, 25 Apr 2022 09:39:06 +0000 (18:39 +0900)]
Add API to UpdateProxy

Change-Id: Icd9ef2011a6381ccad62a9f3edea750e392500ae

23 months agoMerge "DALi Version 2.1.20" into devel/master
Adeel Kazmi [Fri, 29 Apr 2022 12:23:01 +0000 (12:23 +0000)]
Merge "DALi Version 2.1.20" into devel/master

23 months agoMerge "Simplifying UniformMap updating" into devel/master
David Steele [Fri, 29 Apr 2022 11:13:33 +0000 (11:13 +0000)]
Merge "Simplifying UniformMap updating" into devel/master

23 months agoDALi Version 2.1.20 99/274499/1 dali_2.1.20
Adam Bialogonski [Fri, 29 Apr 2022 09:52:34 +0000 (10:52 +0100)]
DALi Version 2.1.20

Change-Id: I1c92a82a41be6d385c7ab307b24edc04b25b730e

2 years agoFix memory leak of visual renderer 12/274412/1
Eunki, Hong [Thu, 28 Apr 2022 01:54:47 +0000 (10:54 +0900)]
Fix memory leak of visual renderer

SceneGraph::Renderer didn't remove the memory of
ANimatableVisualProperties.

This patch make AnimatableVIsualProperties as OwnerPointer
so SceneGraph::Renderer will delete it's memory well.

Change-Id: I85f0c40af0fc594b86bd0b9f93f13c24e93b9f8e
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 years agoSimplifying UniformMap updating 86/261286/14
David Steele [Mon, 12 Jul 2021 18:18:25 +0000 (19:18 +0100)]
Simplifying UniformMap updating

Removed scene-graph ConnectionChangePropagator - now only need to know
if shader is attached to renderer, and that is already done through a
different mechanism.

Changed CollectedUniformMap into it's own struct. Now has a change
counter that increments any time the map is altered.

Instead of having lots of flags indicating if uniform maps have
changed, UniformMap now updates it's change counter whenever a
property is registered with the PropertyOwner (e.g. Node, Renderer or
Shader).

During Update, SceneGraph::Renderer collects the uniform maps into one
only if the renderer is added to a RenderList, i.e. if it's going to
be rendered. At this point, the change counter is updated.
Nothing is done if the renderer is not visible.

During Render, the Render::Renderer checks if the node uniform map
change counter or the renderer data provider's uniform map change
counter are different, if so, then it knows it needs to update the
uniform locations for newly registered properties.

Change-Id: I0ff861a7e97736dae059d94f54618195d0471343

2 years agoCalculate hash by Dali::Vector<std::uint8_t> 21/274221/1
Eunki, Hong [Mon, 25 Apr 2022 03:36:10 +0000 (12:36 +0900)]
Calculate hash by Dali::Vector<std::uint8_t>

Change-Id: Ic5b640856c8e1f5710d3c0eb961612428e893990
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 years agoMerge "DALi Version 2.1.19" into devel/master
David Steele [Fri, 22 Apr 2022 13:10:21 +0000 (13:10 +0000)]
Merge "DALi Version 2.1.19" into devel/master

2 years agoDALi Version 2.1.19 84/274184/1 dali_2.1.19
Adeel Kazmi [Fri, 22 Apr 2022 12:54:08 +0000 (13:54 +0100)]
DALi Version 2.1.19

Change-Id: I9be4ce8eef03b28d4e208cd648e1210446967801

2 years agoMerge "Relayout only if the actor is on Scene" into devel/master
Heeyong Song [Fri, 22 Apr 2022 00:30:20 +0000 (00:30 +0000)]
Merge "Relayout only if the actor is on Scene" into devel/master