platform/core/uifw/dali-core.git
2 years agoRemoved old context test cases 57/272057/3
David Steele [Mon, 7 Mar 2022 11:32:39 +0000 (11:32 +0000)]
Removed old context test cases

Synced with toolkit tests

Change-Id: I67f21c445cb9b17972e8994bee558d0bd0836e58

2 years agoAdded VisualRenderer (for visual default properties) 83/271183/6
David Steele [Tue, 15 Feb 2022 10:01:35 +0000 (10:01 +0000)]
Added VisualRenderer (for visual default properties)

Rather than have registered properties for each visual,
embedded them in a specific type of VisualRenderer.

Added UniformMappings to ensure that they can be used as
uniforms. (Properties don't have to have the same name
as the uniform, but it's probably advisable. However, we
have some very specific hardcoded mapping for actor "size"
-> uniform "uSize" in render-renderer...), so it's less
confusing having property "transformSize"->uniform "size".

Changed types to ensure they match the actual uniform types
in the shaders.

Reduces creation time for each visual, as much more is done
at compilation time.

Change-Id: I386504fabf82f8e57f1138e3814897604b094061
Signed-off-by: David Steele <david.steele@samsung.com>
2 years agoMake Dali::InstrusivePtr able to compare with nullptr 07/271907/4
Eunki, Hong [Thu, 3 Mar 2022 05:39:28 +0000 (14:39 +0900)]
Make Dali::InstrusivePtr able to compare with nullptr

After explicit operation bool() patch, Dali::InstrusivePtr == nullptr make compile error.
This patch fix that situation, so keep codes legacy

Change-Id: I6fbdee55203a1a0e9b5d3a90125497957dddeced
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 years agoDALi Version 2.1.12 85/271985/1 dali_2.1.12
Adeel Kazmi [Fri, 4 Mar 2022 10:00:36 +0000 (10:00 +0000)]
DALi Version 2.1.12

Change-Id: I37214142c68799c7c0f2ecea4a7ef26694c6273a

2 years agoDALi Version 2.1.11 29/271729/1 dali_2.1.11
Adam Bialogonski [Fri, 25 Feb 2022 11:46:54 +0000 (11:46 +0000)]
DALi Version 2.1.11

Change-Id: I949fdf526b1c5bd2c16d18751e2014389ca664a1

2 years agoMerge "Implement some more speed-up : Reserve TextureBindings + don't copy geometry...
David Steele [Wed, 23 Feb 2022 17:13:12 +0000 (17:13 +0000)]
Merge "Implement some more speed-up : Reserve TextureBindings + don't copy geometry" into devel/master

2 years agoMerge "Dali::CalculateHash support to hashing raw-buffer" into devel/master
David Steele [Wed, 23 Feb 2022 17:00:35 +0000 (17:00 +0000)]
Merge "Dali::CalculateHash support to hashing raw-buffer" into devel/master

2 years agoAdd Internal::IndexedMap 84/270484/36
Eunki, Hong [Thu, 3 Feb 2022 07:20:06 +0000 (16:20 +0900)]
Add Internal::IndexedMap

Make IndexedMap that key can be std::uint32_t and Internal::ConstString
IndexedMap can only do Register + Get.
We can check unique registration by this API.

IndexedMap use iterator as std::vector<std::pair<KeyType, ElementType>>::iterator.

Get API return iterator that key contained.
If found failed, return End() iterator.

Internally, we make it sorted key-index-element container.
It can search key by binary search. and less element copy action.
(ConstString can be convert const char* == size_t which can comparable)

Time complexity is O(|Element count|) for Register and
O(log|Element count|) for Get

Change some std::vector container as IndexedConstStringMap and IndexedIntegerMap
at type-info and type-register.

type-info is very important area of DALi engine.
So I append some define blocks when we meet some strange problems in future.
It will be remove when this patch is safe enough.

Change-Id: I7ad2e1a4776a4acedb4632053419b4fdcfa043bb
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 years agoDali::CalculateHash support to hashing raw-buffer 44/271344/5
Eunki, Hong [Fri, 18 Feb 2022 05:57:35 +0000 (14:57 +0900)]
Dali::CalculateHash support to hashing raw-buffer

Current Dali::CalculateHash input std::string, but internally
convert as const char * string.
In this case, hashing calculation didn'w works well
when std::string contain \0 character middle of string.

This patch make one more API s.t. allow std::vector<std::uint8_t>
as input so we can specific the length of data what we want to hash.

It will be used in dali-toolkit texture-cache-manager in soon.

Change-Id: I5ceaeb0cbf1140729d1f0f68930c8cbcd8a18594
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 years agoImplement some more speed-up : Reserve TextureBindings + don't copy geometry 33/271533/3
Eunki, Hong [Tue, 22 Feb 2022 12:39:36 +0000 (21:39 +0900)]
Implement some more speed-up : Reserve TextureBindings + don't copy geometry

Make some GraphicsCommand API's input as const vector<>&

These will not copy the internal values. and also we can assume that
inputed data didn't change in that API

+

We reserve textureBinding's capacity as the Count of textures.
Most of texture have graphics object, and it will fitin that
reserved memory area.
This patch reduce unuseful re-allocation internal std::vector.

Change-Id: Ic9eee1ae2fe171431cf20a58c47af344edc977ef
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 years agoIgnore insert/erase function during PreRender's itemsDirtyRects 12/271512/2
Eunki, Hong [Tue, 22 Feb 2022 08:19:22 +0000 (17:19 +0900)]
Ignore insert/erase function during PreRender's itemsDirtyRects

Previous code just insert and erase when the renderer hold dirtyRect
more than 3.
Each insert & erase operation in std::vector cost O(N). and it is expensive.

This patch reduce the insert & erase operation when renderer hold dirtyRect
more than 3. We can do tge same job by just moving data linearly.

(This patch is follow up 250728)

Change-Id: I230f32f07c72c3a4f15c6bb7f6a42bd61ce87d1d
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 years agoAvoid temporary vector creation during Relayout 09/271509/1
Eunki, Hong [Tue, 22 Feb 2022 07:56:56 +0000 (16:56 +0900)]
Avoid temporary vector creation during Relayout

We use temp std::vector stack during NegotiateDimensions.
This patch make we use always same global static value as stack.
So we can avoid create / destroy it every frame.

(This patch is follow up 248736)

Change-Id: I1fa059693d0559b00afbad32dd646e103aba53f7
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 years agoMerge "DALi Version 2.1.10" into devel/master
Adeel Kazmi [Fri, 18 Feb 2022 11:13:24 +0000 (11:13 +0000)]
Merge "DALi Version 2.1.10" into devel/master

2 years agoDALi Version 2.1.10 66/271366/1 dali_2.1.10
Richard Huang [Fri, 18 Feb 2022 11:01:05 +0000 (11:01 +0000)]
DALi Version 2.1.10

Change-Id: I255826e810ab53dc5f41a77c1e2416bfbaf4a517

2 years agoMerge "(Partial Update) Set the updated flag when the Renderer is added/removed"...
Heeyong Song [Fri, 18 Feb 2022 01:56:11 +0000 (01:56 +0000)]
Merge "(Partial Update) Set the updated flag when the Renderer is added/removed" into devel/master

2 years agoAdd EmitWheelEventGeneratedSignal for custom wheel event 62/270162/12
joogab.yun [Thu, 27 Jan 2022 01:11:37 +0000 (10:11 +0900)]
Add EmitWheelEventGeneratedSignal for custom wheel event

For custom wheel events,
we first send the event to the focus manager by WheelEventGeneratedSignal.

Previously, RotaryEvents(CustomWheel type) could always be received only by window.
Now, User can receive Rotary Events in focused View as well.
It is also possible to propagate events to the parent view.

If there is no focused View, the window will receive the event.

This only applies to Rotary Event(CustomWheel type).

Change-Id: I13e2c9b725ee5a65c7408df2f4293c7b61c56035

2 years ago(Partial Update) Set the updated flag when the Renderer is added/removed 72/271172/1
Heeyong Song [Tue, 15 Feb 2022 10:23:23 +0000 (19:23 +0900)]
(Partial Update) Set the updated flag when the Renderer is added/removed

Change-Id: I586777f0bda8dde74ee04d461b54e7165e74b35c

2 years agoMerge "Add stride to PixelData" into devel/master
Heeyong Song [Wed, 16 Feb 2022 05:26:45 +0000 (05:26 +0000)]
Merge "Add stride to PixelData" into devel/master

2 years agoAdded prefix matching to test case execution 44/271044/1
David Steele [Mon, 14 Feb 2022 16:29:32 +0000 (16:29 +0000)]
Added prefix matching to test case execution

Change-Id: I5a836aca4c788a347b383a0b3d23771e22ff8f2b

2 years agoMerge "If MaximumTapsRequired is 1, it is not waiting for a multi-tap, so a Tap gestu...
joogab yun [Sat, 12 Feb 2022 00:22:42 +0000 (00:22 +0000)]
Merge "If MaximumTapsRequired is 1, it is not waiting for a multi-tap, so a Tap gesture send a single tap." into devel/master

2 years agoDALi Version 2.1.9 54/270954/1 dali_2.1.9
David Steele [Fri, 11 Feb 2022 12:01:40 +0000 (12:01 +0000)]
DALi Version 2.1.9

Change-Id: I7e8ba8a3683ccd489e8c6afcdcb0072fe8db2b29

2 years agoAdd stride to PixelData 54/270454/5
Heeyong Song [Thu, 3 Feb 2022 05:18:10 +0000 (14:18 +0900)]
Add stride to PixelData

Change-Id: Ida564386962e1afed91d3f6805b5a14f446a6937

2 years agoIf MaximumTapsRequired is 1, it is not waiting for a multi-tap, so a Tap gesture... 43/270843/1
joogab.yun [Thu, 10 Feb 2022 05:00:00 +0000 (14:00 +0900)]
If MaximumTapsRequired is 1, it is not waiting for a multi-tap, so a Tap gesture send a single tap.

Even if set to tapGestureDetector.SetMaximumTapsRequired(1);
When user tap multiple times quickly, the tap gesture event now fires only once every maximum Allowed Time (500ms).

If MaximumTapsRequired is 1, user want to receive tap gesture events immediately because we are not waiting for a multi-tap.

Change-Id: I9651facb9650982e2e0dc414974677c531481bf8

2 years agoDALi Version 2.1.8 75/270575/1 dali_2.1.8
Adeel Kazmi [Fri, 4 Feb 2022 13:14:39 +0000 (13:14 +0000)]
DALi Version 2.1.8

Change-Id: If05e41c6141e9e20dd655418b04843b9e7b72225

2 years agoMerge "Adding Handle::ReserveCustomProperties method" into devel/master
Adeel Kazmi [Fri, 28 Jan 2022 17:06:43 +0000 (17:06 +0000)]
Merge "Adding Handle::ReserveCustomProperties method" into devel/master

2 years agoDALi Version 2.1.7 53/270353/1 dali_2.1.7
Adam Bialogonski [Fri, 28 Jan 2022 12:10:16 +0000 (12:10 +0000)]
DALi Version 2.1.7

Change-Id: Iccbe522c45fd61d039458b809fa4f86f2423eb78

2 years agoAdding Handle::ReserveCustomProperties method 97/270097/1
David Steele [Tue, 25 Jan 2022 11:00:59 +0000 (11:00 +0000)]
Adding Handle::ReserveCustomProperties method

Change-Id: I2baa3a77e2db557a6a755e66105530cbe72ac442

2 years ago(Partial Update) Use world color to check if the item is updated 16/270016/2
Heeyong Song [Mon, 24 Jan 2022 07:56:47 +0000 (16:56 +0900)]
(Partial Update) Use world color to check if the item is updated

Change-Id: I2d1ca5df07cd1c0456f77c178d60e2bf463448ed

2 years agoMerge "(Partial update) Change resetting the updated flag" into devel/master
Heeyong Song [Tue, 25 Jan 2022 04:54:45 +0000 (04:54 +0000)]
Merge "(Partial update) Change resetting the updated flag" into devel/master

2 years ago(Partial update) Change resetting the updated flag 83/267183/4
Heeyong Song [Fri, 26 Nov 2021 08:23:41 +0000 (17:23 +0900)]
(Partial update) Change resetting the updated flag

Reset the updated flag after calculating all damaged area of the scene

Change-Id: I6abf26012f3053689abb461d42c2960b09886895

2 years agoInitialized SG::Scene::mGraphicsController in constructor 33/270033/2
David Steele [Mon, 24 Jan 2022 12:05:04 +0000 (12:05 +0000)]
Initialized SG::Scene::mGraphicsController in constructor

Change-Id: I813f9643c1e4e92a6e2f01a342a2c6981b479f7a

2 years agoMerge "Changed SceneHolder's RenderTarget initialization" into devel/master
Adeel Kazmi [Fri, 21 Jan 2022 16:14:58 +0000 (16:14 +0000)]
Merge "Changed SceneHolder's RenderTarget initialization" into devel/master

2 years agoChanged SceneHolder's RenderTarget initialization 71/268271/5
David Steele [Fri, 17 Dec 2021 17:24:15 +0000 (17:24 +0000)]
Changed SceneHolder's RenderTarget initialization

SceneHolder currently generates Graphics::RenderTarget in the wrong
thread (Event thread) which can cause crashes in EglController if
there is a heavy load, as Surface/Context pair vector can be modified
in one thread whilst being read in another.

Instead, set up the RenderTarget create info struct, and pass that
through the existing messages instead of RenderTarget. When the
SceneGraph::Scene gets it's second stage Initialize() method
called (by RenderManager), then use that CreateInfo struct to create
the RenderTarget. All modifications to the queues/vectors are now done
in the same thread, and should prevent crashes.

Change-Id: I6d33590ed85085f26c84c5d798abca48dd8affba
Signed-off-by: David Steele <david.steele@samsung.com>
2 years agoDALi Version 2.1.6 20/269920/1 dali_2.1.6
Richard Huang [Fri, 21 Jan 2022 11:44:20 +0000 (11:44 +0000)]
DALi Version 2.1.6

Change-Id: I666c7a31240d367c229ad8516407091e1131c802

2 years agoMerge "Decrease property registration time" into devel/master
David Steele [Thu, 20 Jan 2022 15:59:29 +0000 (15:59 +0000)]
Merge "Decrease property registration time" into devel/master

2 years agoDecrease property registration time 36/269636/3
David Steele [Wed, 19 Jan 2022 10:17:37 +0000 (10:17 +0000)]
Decrease property registration time

For animated custom properties attached to objects, such as uniforms
attached to visual renderers, the registration time is too long.

One of the culprits is the Object::RegisterProperty() method iterating
over all the preceding property names to ensure the uniqueness of the
property name.

In the visual case, we can remove this check, as we can ensure that
each call to RegisterProperty is only done once per uniform.

Added a method RegisterUniqueProperty (which should really be called
RegisterPropertyWithoutUniquenessCheck, but hey!) to perform the same
registration without the name lookup checks.

Change-Id: Id3b78e342415aef65f0ff121ae2c8ec4a9ec80a6
Signed-off-by: David Steele <david.steele@samsung.com>
2 years agoMerge "(Partial Update) Mark as not rendered if the node is transparent or culled...
Heeyong Song [Thu, 20 Jan 2022 04:59:42 +0000 (04:59 +0000)]
Merge "(Partial Update) Mark as not rendered if the node is transparent or culled" into devel/master

2 years agoMerge "Even if only InterceptTouchEvent is registered, it is hittable" into devel...
joogab yun [Wed, 19 Jan 2022 06:40:56 +0000 (06:40 +0000)]
Merge "Even if only InterceptTouchEvent is registered, it is hittable" into devel/master

2 years agoEven if only InterceptTouchEvent is registered, it is hittable 21/268721/6
joogab.yun [Thu, 30 Dec 2021 08:21:49 +0000 (17:21 +0900)]
Even if only InterceptTouchEvent is registered, it is hittable

Change-Id: I724c3bae0741a3ca8537e48474254c3f460deab1

2 years ago(Partial Update) Mark as not rendered if the node is transparent or culled 95/268095/4
Heeyong Song [Tue, 30 Nov 2021 09:15:40 +0000 (18:15 +0900)]
(Partial Update) Mark as not rendered if the node is transparent or culled

Change-Id: I0a6aeaa90e9da1ddb6b61d8ff8397e84a43ac668

2 years agoReplace obsolete safe bool idiom with explicit operator bool 00/269400/2
Artur Świgoń [Thu, 13 Jan 2022 14:23:16 +0000 (15:23 +0100)]
Replace obsolete safe bool idiom with explicit operator bool

C++11 introduces 'explicit operator bool' to prevent unintended implicit
conversions to 'bool', thus making the trick with converting to a
pointer-to-member (a.k.a. "safe bool idiom") obsolete.

The explicit operator is more restrictive than 'safe bool', and it
helped uncover a bug in the test suite where object handles were
implicitly converted to bool before being sent to an std::ostream.

Change-Id: I8c9d33812bc022570f5c286d925914dba508185c

2 years agoDALi Version 2.1.5 64/269464/1 dali_2.1.5
David Steele [Fri, 14 Jan 2022 15:40:23 +0000 (15:40 +0000)]
DALi Version 2.1.5

Change-Id: I4174771a77f5df2693b60fc09e585ee4af03d812

2 years agoDALi Version 2.1.4 87/269087/1 dali_2.1.4
Adam Bialogonski [Fri, 7 Jan 2022 10:05:24 +0000 (10:05 +0000)]
DALi Version 2.1.4

Change-Id: Id10b0af4d5b296d014947b2386ece3488caf6e5d

2 years agoDali::Vector release memory later during Copy 54/268354/2
Eunki, Hong [Tue, 21 Dec 2021 12:07:19 +0000 (21:07 +0900)]
Dali::Vector release memory later during Copy

Change-Id: I1df4a486426d00a2914d73b46cbb3905e1b2b7ef
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 years agoMerge "Move mItemsDirtyRects from Scene to SceneGraph::Scene" into devel/master
Heeyong Song [Fri, 17 Dec 2021 15:03:58 +0000 (15:03 +0000)]
Merge "Move mItemsDirtyRects from Scene to SceneGraph::Scene" into devel/master

2 years agoDALi Version 2.1.3 21/268221/1 dali_2.1.3
Adeel Kazmi [Fri, 17 Dec 2021 06:58:25 +0000 (06:58 +0000)]
DALi Version 2.1.3

Change-Id: I9a39fc16eef86cd02dc9f65ccc6f912efd1993a5

2 years agoMove mItemsDirtyRects from Scene to SceneGraph::Scene 34/267634/4
Heeyong Song [Wed, 8 Dec 2021 05:49:56 +0000 (14:49 +0900)]
Move mItemsDirtyRects from Scene to SceneGraph::Scene

The list is used in the update thread. So move it to SceneGraph::Scene

Change-Id: Ic3b374d2e3840c05d72ed8b55697db4e5eef1f13

2 years agoMerge "Fixed the crash appears after closing app when use ResizePolicy::USE_NATURAL_S...
Bowon Ryu [Wed, 15 Dec 2021 09:04:40 +0000 (09:04 +0000)]
Merge "Fixed the crash appears after closing app when use ResizePolicy::USE_NATURAL_SIZE" into devel/master

2 years agoMerge "Fix the local matrix dirty flag when size is changed" into devel/master
Adeel Kazmi [Fri, 10 Dec 2021 13:54:18 +0000 (13:54 +0000)]
Merge "Fix the local matrix dirty flag when size is changed" into devel/master

2 years agoDALi Version 2.1.2 50/267850/1 dali_2.1.2
Richard Huang [Fri, 10 Dec 2021 11:58:21 +0000 (11:58 +0000)]
DALi Version 2.1.2

Change-Id: I3df4c85dd1dc5537ec39dd593a4d5cbff22a93ba

2 years agoUse a proper projection matrix 75/267175/2
Heeyong Song [Mon, 29 Nov 2021 04:29:26 +0000 (13:29 +0900)]
Use a proper projection matrix

Change-Id: I6bed10bc639a838918919c5621d6f399db5cebe3

2 years agoFixed the crash appears after closing app when use ResizePolicy::USE_NATURAL_SIZE 01/265301/3
Shrouq Sabah [Thu, 14 Oct 2021 08:29:41 +0000 (11:29 +0300)]
Fixed the crash appears after closing app when use ResizePolicy::USE_NATURAL_SIZE

There is a crash when destroying text-editor and the ResizePolicy is USE_NATURAL_SIZE.

textEditor.SetProperty(Dali::Actor::Property::WIDTH_RESIZE_POLICY, ResizePolicy::USE_NATURAL_SIZE);"
then close the application. the below exception appears.
ERROR: DALI: Assert (threadLocal) failed in: static Dali::Internal::ThreadLocalStorage& Dali::Internal::ThreadLocalStorage::Get()
Exception:
threadLocal
 thrown at static Dali::Internal::ThreadLocalStorage& Dali::Internal::ThreadLocalStorage::Get()
terminate called after throwing an instance of 'Dali::DaliException'

The solution applied at RelayoutController::Get().
Checked if ThreadLocalStorage is created then proceed normally otherwise returns null
Because the ThreadLocalStorage::Get() only retrieves STL without checking if it exists.

The caller of RelayoutController::Get() should check if RelayoutController is not null.
There is only one place use this function and already checks if RelayoutController is not null.

Change-Id: I343ef47f03aa86babb4bdd19f95c3e7ccb211dff

2 years agoMerge "Fix ReuseRenderer issue when renderer is nullptr" into devel/master
Eunki Hong [Mon, 6 Dec 2021 04:06:03 +0000 (04:06 +0000)]
Merge "Fix ReuseRenderer issue when renderer is nullptr" into devel/master

2 years agoDALi Version 2.1.1 37/267437/1 dali_2.1.1
David Steele [Fri, 3 Dec 2021 13:57:26 +0000 (13:57 +0000)]
DALi Version 2.1.1

Change-Id: Ie412924e57d35e2605366111e636ee568b9e402e

2 years agoFix ReuseRenderer issue when renderer is nullptr 18/267418/3
Eunki, Hong [Fri, 3 Dec 2021 04:21:51 +0000 (13:21 +0900)]
Fix ReuseRenderer issue when renderer is nullptr

When ClippingMode is CLIP_TO_BOUNDING_BOX and it have no children,
we add nullptr SceneGraph::Renderer into renderables.

Previous codes are assume that that renderers are not nullptr
so they just use many of memberfunctions.

This patch fix the dangerous nullptr access.

TODO : need to make UTC

Change-Id: If04ff5a68ef95c27fbe43166eb64734d681bcdaa
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 years agoFix the local matrix dirty flag when size is changed 91/267391/2
Richard [Thu, 2 Dec 2021 15:55:34 +0000 (15:55 +0000)]
Fix the local matrix dirty flag when size is changed

Change-Id: I009c1a17b037744e6d3c8268651af8543786bb80

2 years agoSort transform components in breadth first order per scene 11/267211/5
Richard Huang [Mon, 29 Nov 2021 17:43:05 +0000 (17:43 +0000)]
Sort transform components in breadth first order per scene

Change-Id: Iad835c30b6d83554bc2a150516c23dbd19183937

2 years agoFix coverity issue 65/267165/1
Eunki, Hong [Fri, 26 Nov 2021 12:16:31 +0000 (21:16 +0900)]
Fix coverity issue

Delete useless member value

Change-Id: I338ace58b987a9cf2ee593fc14a2684d81adf8df
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 years agoDALi Version 2.1.0 44/267144/1 dali_2.1.0
Adam Bialogonski [Fri, 26 Nov 2021 08:40:47 +0000 (08:40 +0000)]
DALi Version 2.1.0

Change-Id: I86132cc32010fd84cb60c9dbee06f8b693e19a99

2 years agoFixed actor relayout dimension dependencies 46/267046/2
David Steele [Wed, 24 Nov 2021 12:25:29 +0000 (12:25 +0000)]
Fixed actor relayout dimension dependencies

Height dimension dependency on child should now work properly.

Retained old behaviour from before refactor - when no size
negotiation, RelayoutDependentOnChildrenBase returned true.

Change-Id: I3a375f64b9bfe6bca8f1909e53aa1e6e133afcd3

2 years agoActorSizer::RelayoutDependentOnXXX return default value 55/266955/8
Eunki, Hong [Tue, 23 Nov 2021 05:31:11 +0000 (14:31 +0900)]
ActorSizer::RelayoutDependentOnXXX return default value

Before refactoring, when mRelayoutData doesn't exist,
RelayoutDependentOnChildrenBase return true.

Because DEFAULT state is "ResizePolicy::USE_NATURAL_SIZE" and
It's case s.t. RelayoutDependentOnChildrenBase is true.

After refactoring, if mRelayoutData is null, it always return false.

This patch just sync with previous behavior.

Change-Id: Id5ac45b4b635308c748fabd50cc52774c67994d6
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 years agoDali::Vector release data more safe (Dali::Vector::Replace) 87/266687/6
Eunki, Hong [Wed, 17 Nov 2021 07:44:38 +0000 (16:44 +0900)]
Dali::Vector release data more safe (Dali::Vector::Replace)

We got some issue when someone use mData
during Dali::Vector is on reserving.

In this case, mData = nullptr (or mData memory is deleted.) very short time.

Now, we add VectorBase::Replace(void* newData) function.
It mean, VectorBase::mData will be replaced as newData.

It can block thread integrity issue.

Note : VectorBase::Copy can have nullptr between Release() <-> Reserve()
There is no way to fix it without any additional memory.
So just keep current implement logic.

Change-Id: Ie09b1bc00146f4c3be9294853a32c093b3597fba
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 years agoLet range for loop don't touch container at RenderManager 45/266045/5
Eunki, Hong [Thu, 4 Nov 2021 13:01:47 +0000 (22:01 +0900)]
Let range for loop don't touch container at RenderManager

Reallocate or Resize the container during range-based-loop is UB.
So many case, we try to not add/erase some items during range-based-loop is working.

There was some codes that erase item during for loop.
So I make it out, for safety.

Change-Id: I919510200adfafbd95a6202ac295ffb7bc06c408
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 years agoRecalculated layer's reusability flags after transform update 97/266497/2
David Steele [Fri, 12 Nov 2021 16:20:09 +0000 (16:20 +0000)]
Recalculated layer's reusability flags after transform update

Layer's reusability flags were being left as true causing
some examples to fail to render properly, as render items
were being reused without being updated after a transform.

Reworked UpdateNodes to move layer reusability calculation
until after TransformManager::Update.

Change-Id: Id0e30489074ae3690984e4f95f0b3cd730d80440

2 years agoReset node animatable properties for two frames after removing the frame callback 94/266094/4
Richard Huang [Fri, 5 Nov 2021 15:47:28 +0000 (15:47 +0000)]
Reset node animatable properties for two frames after removing the frame callback

Change-Id: I67e0ee42b2da8076fa47cadf2af1435c89a4a431

2 years agoFix the local matrix dirty flags for transform components 45/265845/4
Richard Huang [Fri, 29 Oct 2021 13:08:11 +0000 (14:08 +0100)]
Fix the local matrix dirty flags for transform components

Change-Id: I0e54461468d2e0c923757ab9dc2a7d79f93ea2fe

2 years agoFixed node dirty flags when inheriting the flags from the parent node 19/265719/3
Richard Huang [Wed, 27 Oct 2021 16:43:23 +0000 (17:43 +0100)]
Fixed node dirty flags when inheriting the flags from the parent node

Change-Id: I112641e530c0c56f8c793ddf8e263366a16cfe08

2 years agoFix the camera's projection matrix when copying it from the previous frame 77/265577/4
Richard Huang [Fri, 22 Oct 2021 10:14:49 +0000 (11:14 +0100)]
Fix the camera's projection matrix when copying it from the previous frame

Change-Id: Ic189b49d2bd824e5ad8802396bd26b5224701dc2

2 years agoAdd a node resetter that resets the animatable properties for two frames after node... 05/265205/4
Richard Huang [Tue, 12 Oct 2021 15:26:04 +0000 (16:26 +0100)]
Add a node resetter that resets the animatable properties for two frames after node connection

Change-Id: I3a64c3719107c231085a524b05c1302977ccde10

2 years agoMerge "DALi Version 2.0.53" into devel/master
Adeel Kazmi [Thu, 18 Nov 2021 14:15:04 +0000 (14:15 +0000)]
Merge "DALi Version 2.0.53" into devel/master

2 years agoDALi Version 2.0.53 75/266775/1 dali_2.0.53
Richard [Thu, 18 Nov 2021 11:59:43 +0000 (11:59 +0000)]
DALi Version 2.0.53

Change-Id: Ib413dcfba88735cfa6a1bd33d8569ff03cf75beb

2 years agoFix SVACE error in render-manager.cpp 70/266770/1
Adeel Kazmi [Thu, 18 Nov 2021 10:35:20 +0000 (10:35 +0000)]
Fix SVACE error in render-manager.cpp

Change-Id: I4da240f713fef7777d5c653de52397e3f8cb9afc

2 years agoRefactored actor size negotiation 83/266583/3
David Steele [Mon, 15 Nov 2021 13:37:20 +0000 (13:37 +0000)]
Refactored actor size negotiation

Moved all size negotiation implementation to a new
ActorSizer class. This handles size negotiation and
target / animated size.

Moved static methods from ActorRelayouter into ActorSizer.

Change-Id: I5137bb333d0254c80ede361ee7d36899830de21f
Signed-off-by: David Steele <david.steele@samsung.com>
2 years agoMerge "(Partial update) Reset the updated flag after calculating the update area...
Heeyong Song [Wed, 17 Nov 2021 10:34:51 +0000 (10:34 +0000)]
Merge "(Partial update) Reset the updated flag after calculating the update area" into devel/master

2 years agoMerge "Don't do AABB culling if the clipping mode of the node is enabled" into devel...
Heeyong Song [Wed, 17 Nov 2021 10:34:33 +0000 (10:34 +0000)]
Merge "Don't do AABB culling if the clipping mode of the node is enabled" into devel/master

2 years ago(Partial update) Reset the updated flag after calculating the update area 02/266602/1
Heeyong Song [Tue, 16 Nov 2021 06:21:05 +0000 (15:21 +0900)]
(Partial update) Reset the updated flag after calculating the update area

We had an issue that the updated flag of non-renderable actor was not reset.
It should also be reset after calculating the update area.
So reset the updated flag of all nodes.

Change-Id: I8b4d540996565ba2d0ef9e528114dad5e3de2475

2 years agoDon't do AABB culling if the clipping mode of the node is enabled 15/266215/3
Heeyong Song [Tue, 9 Nov 2021 07:33:03 +0000 (16:33 +0900)]
Don't do AABB culling if the clipping mode of the node is enabled

It should not be culled because the clipping rect should be used.

Change-Id: I7d5895c8471720ba808d0c5919adb1b4288c5f18

2 years agoSet TransformId after Initialize finished 94/266594/2
Eunki, Hong [Tue, 16 Nov 2021 04:27:45 +0000 (13:27 +0900)]
Set TransformId after Initialize finished

Setup mTransformManagerData.mId after transform data initialize done.
After this patch, we can assume that
if mTransformManagerData.Id() is INVALID_TRANSFORM_ID, then
mTransformManagerData is not initialized

Change-Id: I282dc1a42765cb6037e4164dd9aecdfe98fb84ba
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 years agoDALi Version 2.0.52 77/266477/1 dali_2.0.52
Adeel Kazmi [Fri, 12 Nov 2021 10:48:16 +0000 (10:48 +0000)]
DALi Version 2.0.52

Change-Id: I2fb8a867bf1c1f2c9a52416f4fd076d583a8eb21

2 years agoRefactored more code into Actor::Relayouter 48/266248/1
David Steele [Tue, 9 Nov 2021 18:19:08 +0000 (18:19 +0000)]
Refactored more code into Actor::Relayouter

Change-Id: I19e711ddc963e62a882679ca0afebfc5e25bb339

2 years agoMoved more actor methods into relayouter 48/265848/2
David Steele [Fri, 29 Oct 2021 15:17:23 +0000 (16:17 +0100)]
Moved more actor methods into relayouter

Change-Id: Ia7cbec6bda7741797463a2bf571073043e628c5e

2 years agoDALi Version 2.0.51 80/266080/1 dali_2.0.51
Adeel Kazmi [Fri, 5 Nov 2021 10:43:55 +0000 (10:43 +0000)]
DALi Version 2.0.51

Change-Id: I40ccf8b1220abaf6b3bbbd9a0960b941720a3d9a

2 years ago(ActorImpl) Reduced LOC 02/266002/1
Adeel Kazmi [Wed, 3 Nov 2021 19:20:39 +0000 (19:20 +0000)]
(ActorImpl) Reduced LOC

Change-Id: Idda1efb9b95056e0cd55b37574bb0e2e87b88db4

2 years agoEnsure a FrameCallback is removed properly from a FrameCallbackInterface 71/265971/3
Adeel Kazmi [Tue, 2 Nov 2021 18:56:41 +0000 (18:56 +0000)]
Ensure a FrameCallback is removed properly from a FrameCallbackInterface

Change-Id: Ib24a383db0512ea757e06137433aef9419b84a5b

2 years agoMerge "Update the preferred size after relayoutting" into devel/master
Heeyong Song [Mon, 1 Nov 2021 00:58:02 +0000 (00:58 +0000)]
Merge "Update the preferred size after relayoutting" into devel/master

2 years agoDALi Version 2.0.50 28/265828/1 dali_2.0.50
David Steele [Fri, 29 Oct 2021 09:05:51 +0000 (10:05 +0100)]
DALi Version 2.0.50

Change-Id: Ia32bcbb9470d0656f64acfe395a62dbf7d5c46d1

2 years agoExact planeclipping for actor's hit algorithm 67/265767/5
Eunki Hong [Thu, 28 Oct 2021 07:11:27 +0000 (00:11 -0700)]
Exact planeclipping for actor's hit algorithm

rayOriginLocal is difference vector betwwen the actor and the Camera(==rayOrigin).
ActorTest API's distance value is the real euclidean distance between rayOrigin and actor.
But we only need difference vector's z-axis value to clipping by View Space Plane.

So we get hitPointWorld and multiply ViewMatrix (get from renderTask's camera actor)
and get z-coordinate value at Camera Space.

Change-Id: I644fc5e9b306423d6fa58f92e492a2a7508047a6
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
2 years agoUpdate the preferred size after relayoutting 46/265646/3
Heeyong Song [Tue, 26 Oct 2021 05:19:58 +0000 (14:19 +0900)]
Update the preferred size after relayoutting

It should be used in the next relayoutting

Change-Id: I3342de587942a9123ebb31cba4eac35c4e2b65ca

2 years agoIf the parent is intercepted, the child is informed that it is INTERRUPTED. 49/265649/3
joogab.yun [Tue, 26 Oct 2021 06:45:28 +0000 (15:45 +0900)]
If the parent is intercepted, the child is informed that it is INTERRUPTED.

Change-Id: I4ef25e7bad0883a9798f86add0b911de36078dea

2 years agoMerge "DALi Version 2.0.49" into devel/master
Adeel Kazmi [Fri, 22 Oct 2021 11:25:28 +0000 (11:25 +0000)]
Merge "DALi Version 2.0.49" into devel/master

2 years agoDALi Version 2.0.49 79/265579/1 dali_2.0.49
Adam Bialogonski [Fri, 22 Oct 2021 10:24:45 +0000 (11:24 +0100)]
DALi Version 2.0.49

Change-Id: I99286537008bce74eb41966539bd4ec2d1915fea

2 years agoFix LogMessage format to print Filename / Functioname / Line 38/265538/2
Eunki, Hong [Thu, 21 Oct 2021 13:31:18 +0000 (22:31 +0900)]
Fix LogMessage format to print Filename / Functioname / Line

Add LogMessageDlogFormat macro to apply these informations :
Filename: Function(Line#) > "messages"

Previous LogMessage function always print like this
logging-tizen.cpp: LogMessage(38) > "messages"
So we fix to print actual informations

Default LogMessage(~~) will be used when someone don't need to follow up
Dlog format. (like ttrace and perfomance logger)

Change-Id: Idd87c1c0de3f842d02c023f32dc3dfef300b5dea
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
2 years agoMoved actor recursion methods to actor-parent-impl 95/265495/1
David Steele [Wed, 20 Oct 2021 16:32:42 +0000 (17:32 +0100)]
Moved actor recursion methods to actor-parent-impl

Change-Id: I01a3153dc8849425f6b8e69f60c224dc36ee7d45

2 years agoRefactored out actor render container 94/265494/1
David Steele [Wed, 20 Oct 2021 14:43:24 +0000 (15:43 +0100)]
Refactored out actor render container

Change-Id: Ib7f45346b92d7c9674833da5c6b54e889e8da28f

2 years agoRefactored Actor screen to local conversion 93/265493/1
David Steele [Wed, 20 Oct 2021 13:40:37 +0000 (14:40 +0100)]
Refactored Actor screen to local conversion

Change-Id: I145644d1702e9e3f9f6571aff5651c811abbf39c

2 years agoMerge "Protect dereferencing null in Node" into devel/master
Heeyong Song [Wed, 20 Oct 2021 01:11:26 +0000 (01:11 +0000)]
Merge "Protect dereferencing null in Node" into devel/master

2 years agoSupports to acknowledge for completing window rotation 71/262971/13
Wonsik Jung [Tue, 24 Aug 2021 06:16:28 +0000 (15:16 +0900)]
Supports to acknowledge for completing  window rotation

It is waited the window rotation completing until a view finishes to draw.
The view is drawn on the other thread.
It means asychronous rendering occurs between dali render thread and the other thread when window is rotated.

Change-Id: Ia9ac33e3719a874c35c58acf91e92b96ac802c7f

2 years agoProtect dereferencing null in Node 18/265418/1
Heeyong Song [Tue, 19 Oct 2021 04:17:17 +0000 (13:17 +0900)]
Protect dereferencing null in Node

Change-Id: I60506f563fefc31c9c70b7067fc45f91d6929b96

2 years agoSkip rendering if the damaged rect is empty 99/265199/5
Heeyong Song [Tue, 12 Oct 2021 14:41:28 +0000 (23:41 +0900)]
Skip rendering if the damaged rect is empty

Change-Id: I9424cf079d68a4afd00fda11a5e01d740be8155a

2 years agoDALi Version 2.0.48 50/265350/1 dali_2.0.48
Richard Huang [Fri, 15 Oct 2021 09:43:41 +0000 (10:43 +0100)]
DALi Version 2.0.48

Change-Id: I1ba13133446071912493467c53f22ba7573eed68