platform/core/uifw/dali-core.git
3 months agoWhen hoverevent of geometry type is used, DispatchHoverMotion is not handled properly... 08/321008/3
joogab.yun [Thu, 13 Mar 2025 04:33:53 +0000 (13:33 +0900)]
When hoverevent of geometry type is used, DispatchHoverMotion is not handled properly when false. This is fixed.

Change-Id: Ibcd68776f55a6779485a36d2d17b030801225b7f

3 months agoIf IsDispatchHoverMotion is false, the move event was not dispatched. So consumedActo... 04/321004/4
joogab.yun [Thu, 13 Mar 2025 00:28:41 +0000 (09:28 +0900)]
If IsDispatchHoverMotion is false, the move event was not dispatched. So consumedActor should keep the previous LastConsumedActor value.

Change-Id: Ifbadde1b21abfca728c9e91be81a8f57c4650a6e

3 months agoDALi Version 2.4.9 06/320806/1 dali_2.4.9
Adeel Kazmi [Fri, 7 Mar 2025 10:29:26 +0000 (10:29 +0000)]
DALi Version 2.4.9

Change-Id: I33fb7c331cf4aab53d6a787060cc409d12ef99f9

3 months agoAllow to create renderer without geometry and shader 98/320698/2
Eunki, Hong [Thu, 6 Mar 2025 04:28:51 +0000 (13:28 +0900)]
Allow to create renderer without geometry and shader

Let we make constructor renderer without geometry and shader.

Also, check some codes s.t. we can allow nullptr mGeometry and mShader.

Change-Id: I99eb3011c4cb7f1a3c9ff69f90842c44005048f6
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
3 months agoClear pipelie cache if geometry destroyed or buffer changed 57/320657/1
Eunki, Hong [Mon, 24 Feb 2025 13:39:07 +0000 (22:39 +0900)]
Clear pipelie cache if geometry destroyed or buffer changed

We also cache pipeline cache the Render::Geometry by the raw pointer.
If someone use duplicated pointer, it might return invalid pipeline
with unmatched vertexInputState.

To avoid this issue, let we erase cache if Render::Geometry destroyed,
same as Render::Program

 - This is the commit message #2:

Reset cached pipeline if geometry buffer changed

Until now, we don't re-cache the geometry
if the vertex buffer added/removed, or data changed.

Since the vertex attribute might be changed if we try to use
same geometry, the rendering result
show some non-common results.

To fix this cache issue, let we ensure to reset the cached infomations
if the vertex buffer / indices buffer changed.

Change-Id: I0dc5b4fb6b0645d4b7763d7aa890d6ad946d54c6
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
3 months agoDALi Version 2.4.8 30/320430/1 dali_2.4.8
Richard Huang [Fri, 28 Feb 2025 12:44:23 +0000 (12:44 +0000)]
DALi Version 2.4.8

Change-Id: I42df6d888f5101778ba29ad50cafed19e33e9746

3 months agoMerge "Make PixelData Stride return byte size, instead of pixel" into devel/master
Eunki Hong [Wed, 26 Feb 2025 22:58:53 +0000 (22:58 +0000)]
Merge "Make PixelData Stride return byte size, instead of pixel" into devel/master

3 months agoIncrease warning message threshold for animator 32/320232/1
Eunki Hong [Tue, 25 Feb 2025 14:13:07 +0000 (23:13 +0900)]
Increase warning message threshold for animator

When we launch benchmark.example, it print too much warning logs :(

Change-Id: I95a8558710ea219fe478d92c567e12f415536373
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
3 months agoMake PixelData Stride return byte size, instead of pixel 28/318828/6
Eunki Hong [Fri, 24 Jan 2025 11:24:30 +0000 (20:24 +0900)]
Make PixelData Stride return byte size, instead of pixel

Some cases doesn't have stride byte as multiply of BytesPerPixel().
But until now, PixelBuffer and PixelData only support Stride as pixels count
(It looks since GL_UNPACK_ROW_LENGTH is pixel scale, not a bytes.)

For example, If we have 2 width image with RGB888 format, stride byte
should be 8 byte, which is not a multiply of 3 byte.

To support those cases, let we set stride value as bytes scale.

Change-Id: I27aa9757e7320475b7f0519a62262d1ae2f7e07b
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
3 months agoMerge "DALi Version 2.4.7" into devel/master
Adeel Kazmi [Fri, 21 Feb 2025 11:31:28 +0000 (11:31 +0000)]
Merge "DALi Version 2.4.7" into devel/master

3 months agoDALi Version 2.4.7 66/320066/1 dali_2.4.7
David Steele [Fri, 21 Feb 2025 11:24:56 +0000 (11:24 +0000)]
DALi Version 2.4.7

Change-Id: Id6252a283cf17a78688548f01d0263369e292bcc

3 months agoMerge "(Partial Update) Ensure to renderer dirty if Geometry changed" into devel...
Eunki Hong [Fri, 21 Feb 2025 04:29:33 +0000 (04:29 +0000)]
Merge "(Partial Update) Ensure to renderer dirty if Geometry changed" into devel/master

3 months agoMerge "Reduce IntrusivePtr<ActorPtr> reference change during PropagateAll" into devel...
Eunki Hong [Fri, 21 Feb 2025 04:29:22 +0000 (04:29 +0000)]
Merge "Reduce IntrusivePtr<ActorPtr> reference change during PropagateAll" into devel/master

3 months agoPrint more debug logs for Animation 94/319994/2
Eunki, Hong [Thu, 20 Feb 2025 12:43:30 +0000 (21:43 +0900)]
Print more debug logs for Animation

Let we print more infomations for dali animations
whenever we call API

Change-Id: I5c7db1144adff6b742536ae08a760f066a7cac3e
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
3 months ago(Animation) Bug fix when Cleared state animation finish normally don't emit signal 39/319939/1
Eunki, Hong [Thu, 20 Feb 2025 02:11:51 +0000 (11:11 +0900)]
(Animation) Bug fix when Cleared state animation finish normally don't emit signal

Their was some bug if

(Event Thread) Clear()
(Render Thread) Finish animation normally
(Event Thread) NotificationManager->ProcessMessages() -> HasFinished() called
...
(Event Thread) Play()
(Render Thread) Finish animation normally
(Event Thread) NotificationManager->ProcessMessages() -> HasFinished() called

progress comes.

The first HasFinished() should not emit finished signal.
But second HasFinisehd() should emit finished signal, but not.

It was bugs since HasFinished() update some values, but we don't use it.
(Cleared state should have mNotificationCount always) It make bug.

Change-Id: I593c9983fe97924638c85f0ef30d3c98064d9415
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
3 months agoReduce float hash collision by squaring valueHash 02/319802/2
ANZ1217 [Tue, 18 Feb 2025 05:17:59 +0000 (14:17 +0900)]
Reduce float hash collision by squaring valueHash

Applied valueHash^2 to reduce frequent hash collisions in similar float values.

Change-Id: I8877b24e2936e8a3cbf7da3ca52998f74d75e65c

3 months agoMerge "Share partial update data info to RenderItem" into devel/master
Eunki Hong [Mon, 17 Feb 2025 04:45:08 +0000 (04:45 +0000)]
Merge "Share partial update data info to RenderItem" into devel/master

3 months agoDALi Version 2.4.6 71/319671/1 dali_2.4.6
Adeel Kazmi [Fri, 14 Feb 2025 12:34:13 +0000 (12:34 +0000)]
DALi Version 2.4.6

Change-Id: I21a91c30091c3b411e9068c450921be029fd4cb1

3 months ago(Partial Update) Ensure to renderer dirty if Geometry changed 00/319500/3
Eunki, Hong [Wed, 12 Feb 2025 03:24:09 +0000 (12:24 +0900)]
(Partial Update) Ensure to renderer dirty if Geometry changed

Let we also make item.mRenderer is Updated() if Render::Geometry information
changed.

For example, Toolkit::TextEditor change the vertex buffer data and indicise
when some texts, or highlighted area are changed.
But if the size of each actors are not be changed, the infomation of
geometry changed not be applied to the PreRender() dirtyrect calculation.

To fix this issue, let we make ensure that geometry is updated at Upload time,
and notify it to Render::Renderer's Update() time.

Change-Id: I67ff3c9e7a155703fba6b3be8b80d5aede8ce02d
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
3 months agoShare partial update data info to RenderItem 75/318475/18
Eunki, Hong [Fri, 17 Jan 2025 07:26:55 +0000 (16:26 +0900)]
Share partial update data info to RenderItem

Let we make RenderItem use Node's PartialUpdateData directly,
instead copy the matrix and etc.

It will reduce each item's memory, and memory copy time.

Change-Id: I42e12b24a6429734f7754db5880524b8bc4e4f32
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
3 months agoReduce IntrusivePtr<ActorPtr> reference change during PropagateAll 03/319603/5
Eunki, Hong [Thu, 13 Feb 2025 10:12:36 +0000 (19:12 +0900)]
Reduce IntrusivePtr<ActorPtr> reference change during PropagateAll

std::atomic value changeness might gave overhead if we call it
very frequencly.

To reduce it's overhead, let we use Interal::Actor& instead Actor handle
if we can.

Note that we cannot remove Dali::Actor handle at RelayoutInfo,
since we need to guard case that Actor itself destruct during
Relayout callback at application side.

Change-Id: I5f058be4706c8c2be77f1677e1f5624f37d50478
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
4 months agoReduce dlog spam per frame 42/319342/3
David Steele [Fri, 7 Feb 2025 18:21:57 +0000 (18:21 +0000)]
Reduce dlog spam per frame

Added debug filter for  animation update and transform manager.
These can be turned on by setting DALI_LOG_ANIMATION or
DALI_LOG_TRANSFORM_MANAGER environment variables to 3 before running.

(Or temporarily turned on in a build by modifying the filter
constructor arguments).

Change-Id: I1ade7dfecb5fd0b9d4a7dc8d043486af52a791bf

4 months agoCheck if scene has something to render 41/319341/3
David Steele [Fri, 7 Feb 2025 12:16:03 +0000 (12:16 +0000)]
Check if scene has something to render

Core::PreRender(scene) now returns true if there is any render instruction
with a render list with render items for that scene.

Change-Id: Ib628f0a03dc9959fc945bdb410a7af52ec54e86b

4 months agoDALi Version 2.4.5 15/319315/1 dali_2.4.5
Richard Huang [Fri, 7 Feb 2025 10:39:27 +0000 (10:39 +0000)]
DALi Version 2.4.5

Change-Id: If0bc883cbcb85fbcb5518e66a1bf3300310d0810

4 months agoDALi Version 2.4.4 19/318919/1 dali_2.4.4
David Steele [Fri, 31 Jan 2025 12:31:31 +0000 (12:31 +0000)]
DALi Version 2.4.4

Change-Id: I02cf6f6f0652bab320bcd0ab7d7a6c5f0669c394

4 months agoMerge "Changed command buffer ownership" into devel/master
David Steele [Fri, 24 Jan 2025 14:18:41 +0000 (14:18 +0000)]
Merge "Changed command buffer ownership" into devel/master

4 months agoDALi Version 2.4.3 13/318813/1 dali_2.4.3
Richard Huang [Fri, 24 Jan 2025 10:47:26 +0000 (10:47 +0000)]
DALi Version 2.4.3

Change-Id: I342647c70b396a90fabad694551d4931a684ae46

4 months agoChanged command buffer ownership 17/317917/7
David Steele [Thu, 9 Jan 2025 18:57:34 +0000 (18:57 +0000)]
Changed command buffer ownership

Each render instruction now has a command buffer.

This enables the backend/gpu to synchronize each command buffer when
rendering to framebuffers.

Because RenderTask API is freeform, the same framebuffer can be written
to more than once in a frame using different actors, so each render pass
needs it's own command buffer.

(May still be potential issue with multiple render tasks against the
scene, e.g. magnifier isn't fixed in Vulkan by this change)

Change-Id: I367f94144ab9670c346b98a8e57ad2b54db96fd5
Signed-off-by: David Steele <david.steele@samsung.com>
4 months agoMake mat2 type uniform also use matrix stride 16/318716/2
Eunki, Hong [Wed, 22 Jan 2025 13:05:50 +0000 (22:05 +0900)]
Make mat2 type uniform also use matrix stride

Dali use mat2 type as Vector4 property.
But if we just use Vector4 type as mat2 uniform,
matrix stride information not be applied.

To fix this issue, let we also check matrixStride value
of uniform reflection, and use it.

Change-Id: I310dd565f73d2af3a58e3a7c40e07db902eb6877
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
4 months agoMerge "Minor optimization (Use l-value of ShaderData + Move matrix + less hash)"...
Eunki Hong [Mon, 20 Jan 2025 01:55:00 +0000 (01:55 +0000)]
Merge "Minor optimization (Use l-value of ShaderData + Move matrix + less hash)" into devel/master

4 months agoDALi Version 2.4.2 58/318458/1 dali_2.4.2
Adeel Kazmi [Fri, 17 Jan 2025 06:42:27 +0000 (06:42 +0000)]
DALi Version 2.4.2

Change-Id: I9d2c3790442d7a7825ea2b442d70278983439ba4

4 months agoMinor optimization (Use l-value of ShaderData + Move matrix + less hash) 43/318443/4
Eunki, Hong [Fri, 17 Jan 2025 02:39:18 +0000 (11:39 +0900)]
Minor optimization (Use l-value of ShaderData + Move matrix + less hash)

- Make SG::Shader::GetShaderData return const l-value.
  (It will not call useless refcount increase + decrease)

- Move Matrix if possible

- Less creation and hashing for PartialUpdateData
  Let we use const l-value and less creation matrix and vector.

After this patch, when render 16,000 view with color animate,
fps increased 32 --> 36

Change-Id: I4e10abc718616e037d768ea915b00f2e95b448f0
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
4 months agoSupport equality operator for Property::Map and Property::Array 41/318241/9
Eunki, Hong [Tue, 14 Jan 2025 12:33:59 +0000 (21:33 +0900)]
Support equality operator for Property::Map and Property::Array

Change-Id: I8528b5cc46be1cd7c1ba2d6c44c0a39018997917
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
5 months agoFix coverity : do not call move to const & type 75/318175/1
Eunki, Hong [Tue, 14 Jan 2025 03:16:23 +0000 (12:16 +0900)]
Fix coverity : do not call move to const & type

Change-Id: I9e053c8e4339ac6ac75f1ac1fd8f987ef80e17db
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
5 months agoSupport DecoratedVisualRenderer borderine with blur radius 87/318087/1
Eunki, Hong [Mon, 13 Jan 2025 05:50:57 +0000 (14:50 +0900)]
Support DecoratedVisualRenderer borderine with blur radius

Change-Id: Ib41f6528bc0814630aa293ac10e1b6d8e3b99596
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
5 months agoDALi Version 2.4.1 36/318036/1 dali_2.4.1
David Steele [Fri, 10 Jan 2025 15:08:54 +0000 (15:08 +0000)]
DALi Version 2.4.1

Change-Id: I90f0d7c3a81bd906ffca9283dc5867985057ce84

5 months agoMerge "Allow to set empty data for vertex buffer" into devel/master
Eunki Hong [Mon, 6 Jan 2025 06:16:11 +0000 (06:16 +0000)]
Merge "Allow to set empty data for vertex buffer" into devel/master

5 months agoAllow to use moved Property::Map & Property::Array 06/316306/7
Eunki, Hong [Thu, 12 Dec 2024 11:35:54 +0000 (20:35 +0900)]
Allow to use moved Property::Map & Property::Array

Until now, we make those value's mImpl as nullptr.
So their was a lots of DALI_ASSERT_DEBUG() to check
whether they are moved or not.

Those codes might not be fair than other moved objects implementation.

we allow to use moved object like WeakHandle, or Dali::Vector.
Let we also allow to use them.

And let we make surely assert by DALI_ASSERT_ALWAYS if we need, instead DALI_ASSERT_DEBUG

Change-Id: If08853a1635a8c33317edc1d25531223f7c427ed
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
5 months agoAllow to set empty data for vertex buffer 90/317490/2
Eunki, Hong [Tue, 31 Dec 2024 05:50:11 +0000 (14:50 +0900)]
Allow to set empty data for vertex buffer

Let we allow to set data with nullptr and size 0 for VertexBuffer

Change-Id: Ife70c7b0a033c883f16a7d36decf1b81c05267d5
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
5 months agoMerge "Implement CircularQueue Resize, Clear. And optimize some useless branch" into...
Eunki Hong [Thu, 2 Jan 2025 09:20:55 +0000 (09:20 +0000)]
Merge "Implement CircularQueue Resize, Clear. And optimize some useless branch" into devel/master

5 months ago(dali_env) Install libuv1-dev 27/317127/1
Adeel Kazmi [Tue, 24 Dec 2024 13:34:18 +0000 (13:34 +0000)]
(dali_env) Install libuv1-dev

Change-Id: I5380e39b7589fa9e5ed54df5b0f5e88dd31fa4f3

5 months agoImplement CircularQueue Resize, Clear. And optimize some useless branch 48/315548/2
Eunki, Hong [Wed, 25 Oct 2023 02:18:43 +0000 (11:18 +0900)]
Implement CircularQueue Resize, Clear. And optimize some useless branch

There was some useless branch behaviour exist for CircularQueue implements.
Let we optimize it.

And also, make a API that we can change the max capacity of queue.

Change-Id: I562778a5b9dfbdecf68f2a949b97c96c1b1c339c
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
5 months agoDALi Version 2.4.0 68/316968/1 dali_2.4.0
Adeel Kazmi [Fri, 20 Dec 2024 11:36:45 +0000 (11:36 +0000)]
DALi Version 2.4.0

Change-Id: I814ba9dc36c6d35a6521f799b592f79f4850b9fc

6 months agoDALi Version 2.3.54 40/316540/1 dali_2.3.54
Adam Bialogonski [Fri, 13 Dec 2024 08:09:08 +0000 (08:09 +0000)]
DALi Version 2.3.54

Change-Id: Ib9a9747a02886b6b17d96da1fbfe76a593aa8119

6 months agoMerge "Moved program resource hints to Controller" into devel/master
Adeel Kazmi [Thu, 12 Dec 2024 10:23:47 +0000 (10:23 +0000)]
Merge "Moved program resource hints to Controller" into devel/master

6 months agoMerge "Fix typo in actor impl docs" into devel/master
Jeongmin Lee [Wed, 11 Dec 2024 09:33:18 +0000 (09:33 +0000)]
Merge "Fix typo in actor impl docs" into devel/master

6 months agoFix typo in actor impl docs 72/316172/1
jmm [Wed, 11 Dec 2024 07:33:14 +0000 (16:33 +0900)]
Fix typo in actor impl docs

Change-Id: I251fa3aad6f582af6364a4021ffa407645697a9d

6 months agoSupport Property::Value::GetHash() + Implement lite equality operator for Map and... 38/315438/6
Eunki, Hong [Thu, 28 Nov 2024 08:21:18 +0000 (17:21 +0900)]
Support Property::Value::GetHash() + Implement lite equality operator for Map and Array

Let we support to get hash value of Property
+
Seperate the hash calculation function as internal,
so we can remove duplicated hash calculation logics in dali-core.
+
Support equality operasion for Property::Map and Property::Array.

TODO : For now, we don't consider Eplison when we check equality.
TODO : For now, we only compare hash value, not an exact value of array and map.
It should be supported in future.

Change-Id: Ie0e19f46f35cf98d84ed9dda0c3dd0fca4a8dd61
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months agoMoved program resource hints to Controller 31/316131/1
David Steele [Tue, 10 Dec 2024 14:30:14 +0000 (14:30 +0000)]
Moved program resource hints to Controller

In each scene, the main command buffer also is used to inform the
backend of all used program resources; in Vk, this is used to create
descriptor pools.

Moved this resource hint from CommandBuffer::Begin() info struct, to
Controller::SetResourceBindingHint()

Change-Id: I6cd66af23ad1981f56e06f962404a2602c6e3026
Signed-off-by: David Steele <david.steele@samsung.com>
6 months agoAdd view offscreen rendering 96/315396/15
jmm [Mon, 2 Dec 2024 01:58:29 +0000 (10:58 +0900)]
Add view offscreen rendering

Change-Id: I4e5b4378a3e953d2382ccb931a54a754c5368ab4
Signed-off-by: jmm <j0064423.lee@samsung.com>
6 months agoDALi Version 2.3.53 46/315946/1 dali_2.3.53
Richard Huang [Fri, 6 Dec 2024 11:48:15 +0000 (11:48 +0000)]
DALi Version 2.3.53

Change-Id: I342b1233f085e8cdcf0bda6fd6371bf4838d1a66

6 months agoKeep rendered buffer in framebuffer 94/315394/3
Seungho Baek [Fri, 15 Nov 2024 06:55:34 +0000 (15:55 +0900)]
Keep rendered buffer in framebuffer

 - Users can use RenderTask API to request and to use the buffer.

Change-Id: Iaf63a60f246df8dc48f152bc8a4b4c0b68cd1e1b
Signed-off-by: Seungho Baek <sbsh.baek@samsung.com>
6 months ago(Automated Tests) Sync AddOn Manager with Toolkit 24/315324/1
Adeel Kazmi [Thu, 28 Nov 2024 12:56:24 +0000 (12:56 +0000)]
(Automated Tests) Sync AddOn Manager with Toolkit

Change-Id: I72861ca0750b419ad25399b8f6bb104956e0d7dd

6 months agoDALi Version 2.3.52 68/321268/1 dali_2.3.52
David Steele [Fri, 29 Nov 2024 14:14:12 +0000 (14:14 +0000)]
DALi Version 2.3.52

Change-Id: I1b1cafca5676da6955c9598ef281f4c7304420d3

6 months agoAdd KeyEventMonitorSignal 67/320967/3
joogab.yun [Tue, 26 Nov 2024 06:31:22 +0000 (15:31 +0900)]
Add KeyEventMonitorSignal

Change-Id: I5f598251bfa1cb1fb6661ded46030c1e0074c62f

6 months agoMerge "TimeChecker filter implement for debug time duration" into devel/master
David Steele [Mon, 25 Nov 2024 13:54:01 +0000 (13:54 +0000)]
Merge "TimeChecker filter implement for debug time duration" into devel/master

6 months agoRemove outdated exclusive render task checker 92/320892/1
jmm [Mon, 25 Nov 2024 07:20:27 +0000 (16:20 +0900)]
Remove outdated exclusive render task checker

Change-Id: Ia3f7b0e7fbd3d48d6b960eb80446b2eef8f50aed

6 months agoTimeChecker filter implement for debug time duration 67/320667/5
Eunki, Hong [Wed, 20 Nov 2024 12:57:56 +0000 (21:57 +0900)]
TimeChecker filter implement for debug time duration

Let we define new filter to check time duration and threshold to print.
It will be useful if we want to check duration of some API

Change-Id: Id1cb5878cb5daac6cf972f5f48f99d9b1695cf26
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months agoDALi Version 2.3.51 08/320808/1 dali_2.3.51
Adeel Kazmi [Fri, 22 Nov 2024 16:02:55 +0000 (16:02 +0000)]
DALi Version 2.3.51

Change-Id: Ic5188d41ad95270fcc265b7131ce83c07fa91195

6 months agoAllow to Rect<float>::Intersect Merge and Inset works well 25/320425/2
Eunki, Hong [Fri, 15 Nov 2024 05:29:22 +0000 (14:29 +0900)]
Allow to Rect<float>::Intersect Merge and Inset works well

Until now, we only use Intersect / Merge / Inset API only for Rect<int>.
Let's allow to use it for Rect<float> case.

Change-Id: I506a81adbb2ee494b70c0c74198232fc74705ce8
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
6 months agoMerge "Wait message queue flush 10 ms if rendering is too late" into devel/master
Eunki Hong [Sat, 16 Nov 2024 03:11:41 +0000 (03:11 +0000)]
Merge "Wait message queue flush 10 ms if rendering is too late" into devel/master

6 months agoDALi Version 2.3.50 40/320440/1 dali_2.3.50
Adam Bialogonski [Fri, 15 Nov 2024 07:18:36 +0000 (07:18 +0000)]
DALi Version 2.3.50

Change-Id: Ica3b9d8888b712d05d0b567b374ddfc7136d51e9

6 months agoWait message queue flush 10 ms if rendering is too late 05/320205/6
Eunki, Hong [Mon, 11 Nov 2024 01:04:35 +0000 (10:04 +0900)]
Wait message queue flush 10 ms if rendering is too late

Let we wait message queue be flushed if the message queue count is too big.

It will be resolved some memory limitation issues when
event thread flush queue very quickly, but render thread cannot
follow up the messages.

To awake as fast as we can, let's use promise-future system.
Since we don't need to call future.get(), let's just use future<void>

Change-Id: I74b81d0267221f14b4447ebfa092dd76cd56d57a
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
7 months agoDo not add or get singletone container if it is removing 69/320369/1
Eunki, Hong [Thu, 14 Nov 2024 05:53:11 +0000 (14:53 +0900)]
Do not add or get singletone container if it is removing

Let we block singletone class don't try to get singletone handle
during it is removing.

Change-Id: I3cbb3e484693c80573fa766ffea4035ab862c044
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
7 months agoMerge "Support OffScreenRenderable Ordering when the sibling order is chaged." into...
Seungho BAEK [Tue, 12 Nov 2024 07:11:54 +0000 (07:11 +0000)]
Merge "Support OffScreenRenderable Ordering when the sibling order is chaged." into devel/master

7 months agoSupport OffScreenRenderable Ordering when the sibling order is chaged. 17/320217/4
Seungho Baek [Mon, 11 Nov 2024 05:33:34 +0000 (14:33 +0900)]
Support OffScreenRenderable Ordering when the sibling order is chaged.

Change-Id: I65ef042f122a114778da87ffb44d2cb2dc9c63fc
Signed-off-by: Seungho Baek <sbsh.baek@samsung.com>
7 months agoDALi Version 2.3.49 63/320163/1 dali_2.3.49
Richard Huang [Fri, 8 Nov 2024 10:27:09 +0000 (10:27 +0000)]
DALi Version 2.3.49

Change-Id: Ic7802432284d54c5775c5a6e1486a81a60296695

7 months agoDon't use mEventThreadService without checkout thread 67/319967/5
Eunki Hong [Tue, 5 Nov 2024 16:08:05 +0000 (01:08 +0900)]
Don't use mEventThreadService without checkout thread

Since member value of EventThreadService can call API at worker thread.
It might make some resource leak.

For example, we can call animation.Clear() at worker thread.
If then, only event thread side informations removed, and nothing changed
for update thread.

To avoid this kind of issue
- Let we define interface class s.t. Get EventThreadService and assert if we access here at workerthread.
- Change every local value usage to using this API.

During test, let we just assert it always.
After several weeks later, it would be change as debug.

Change-Id: I956445c67c40956af2e4219417f6638072ae29e4
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
7 months agoEnsure updatedTextures call OnRenderFinished safety 79/319879/1
Eunki, Hong [Tue, 5 Nov 2024 04:36:18 +0000 (13:36 +0900)]
Ensure updatedTextures call OnRenderFinished safety

Since we can change the updatedTextures container during OnRenderFinished() callback,
we need to move OnRenderFinished() caller into seperated container.

Change-Id: Ida03eb580939dd1d08d21d65a8446ff56f5f0cdc
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
7 months agoMerge "DALi Version 2.3.48" into devel/master
David Steele [Fri, 1 Nov 2024 11:25:45 +0000 (11:25 +0000)]
Merge "DALi Version 2.3.48" into devel/master

7 months agoDALi Version 2.3.48 01/319801/1 dali_2.3.48
David Steele [Fri, 1 Nov 2024 11:17:21 +0000 (11:17 +0000)]
DALi Version 2.3.48

Change-Id: Ifbd240f24487c3c8ea78d810c952e5e0e791f933

7 months agoSupport Squircle factor for DecoratedVisual property : CornerSquareness 62/319662/4
Eunki, Hong [Tue, 29 Oct 2024 10:49:49 +0000 (19:49 +0900)]
Support Squircle factor for DecoratedVisual property : CornerSquareness

Change-Id: I19cec58730559a6bccd10fb2907aa6ccfc92bbab
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
7 months agoMerge changes If6e7b493,Iebcd2ba4 into devel/master
David Steele [Wed, 30 Oct 2024 16:49:25 +0000 (16:49 +0000)]
Merge changes If6e7b493,Iebcd2ba4 into devel/master

* changes:
  Changed Matrix3 uniform write to use stride
  Added comparison ops for Graphics::Viewport and Rect2D

7 months agoMake WeakHandleBase::mImpl as unique_ptr + nullcheck for Reset and comparision 52/319652/2
Eunki, Hong [Tue, 29 Oct 2024 08:58:23 +0000 (17:58 +0900)]
Make WeakHandleBase::mImpl as unique_ptr + nullcheck for Reset and comparision

Until now, WeakHandleBase::Reset() function and == operator
don't check mImpl was nullptr.

But it could be nullptr when we use move operations.

So we should check nullptr before call mImpl->Reset() and operator==.

===

Also, to avoid this kind of leak, let we use std::unique_ptr instead of raw pointer.

Change-Id: Icd0b603b825d6a1f5eb7697466da98af05540b2b
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
7 months agoChanged Matrix3 uniform write to use stride 97/319397/5
David Steele [Tue, 22 Oct 2024 13:45:45 +0000 (14:45 +0100)]
Changed Matrix3 uniform write to use stride

If the uniform is in a block, then each row of 3 is padded
to 4 floats(16 bytes). Can get the stride from GLES/Vulkan reflection.

So, use matrixStride if not in the standalone uniform block
(which means it's gles2 and packed tightly).

Added test cases to check Mat3 uniform writing in both standalone
and uniform buffer.

Change-Id: If6e7b49318dae795972d5ae76092df48f4713cab
Signed-off-by: David Steele <david.steele@samsung.com>
7 months agoDALi Version 2.3.47 52/319552/1 dali_2.3.47
Adeel Kazmi [Fri, 25 Oct 2024 10:45:46 +0000 (11:45 +0100)]
DALi Version 2.3.47

Change-Id: Iead3b5d3edf64e07270662cb024d3b0cd4ea85e7

7 months agoAdded comparison ops for Graphics::Viewport and Rect2D 30/319130/5
David Steele [Tue, 15 Oct 2024 16:34:36 +0000 (17:34 +0100)]
Added comparison ops for Graphics::Viewport and Rect2D

Change-Id: Iebcd2ba4792cd4e6fad6423033fb4f592d32f2fc

7 months ago(AddOn Manager) New API to load addons/libraries rather than via an ENV variable 10/319410/3
Adeel Kazmi [Tue, 22 Oct 2024 17:52:47 +0000 (18:52 +0100)]
(AddOn Manager) New API to load addons/libraries rather than via an ENV variable

Change-Id: Ic11dc6920e390842a1bde610c1a1f732b212ff00

7 months agoMerge "Fixes in handling uniform buffers." into devel/master
Adeel Kazmi [Fri, 18 Oct 2024 13:26:11 +0000 (13:26 +0000)]
Merge "Fixes in handling uniform buffers." into devel/master

7 months agoDALi Version 2.3.46 41/319241/1 dali_2.3.46
Adam Bialogonski [Fri, 18 Oct 2024 06:44:11 +0000 (07:44 +0100)]
DALi Version 2.3.46

Change-Id: I74fe57654290c80020d46791cb51164e73bef230

7 months agoFixes in handling uniform buffers. 15/318815/4
Adam Bialogonski [Tue, 8 Oct 2024 15:38:29 +0000 (16:38 +0100)]
Fixes in handling uniform buffers.

- Using correct binding point for uniform buffers
- Getting correct UBO alignment offset from GL/Vulkan API

Change-Id: I34c752b3bb5ee770d9992c730810c58137b6378e

7 months agoMerge "Adding depth/stencil requirements" into devel/master
David Steele [Wed, 16 Oct 2024 15:18:39 +0000 (15:18 +0000)]
Merge "Adding depth/stencil requirements" into devel/master

7 months agoMerge "Fix partial update issue when clipping mode changed" into devel/master
Eunki Hong [Wed, 16 Oct 2024 06:57:26 +0000 (06:57 +0000)]
Merge "Fix partial update issue when clipping mode changed" into devel/master

7 months agoFix partial update issue when clipping mode changed 27/319127/3
Eunki, Hong [Tue, 15 Oct 2024 12:26:39 +0000 (21:26 +0900)]
Fix partial update issue when clipping mode changed

When some node's ancient node change cliping mode from
ClipChildren | ClipBoundingBox to Disable,

we should partial update descent nodes.

Change-Id: I39d28d7026b45df9dd2ca5d8913f9b542cb0086c
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
7 months agoDo not update componentwise animatable property's Set/Bake 38/319138/1
Eunki, Hong [Wed, 16 Oct 2024 05:09:23 +0000 (14:09 +0900)]
Do not update componentwise animatable property's Set/Bake

We don't update PropertyOwner's update state when the value was
not actuall changed.

But it doesn't reset the dirty flag of AnimatablePropertyBase.

Due to the AnimatablePropertyBase is not a clean flag,
the renderer who use constrait become always check as dirty
when we check dirty rect.

To fix this kind of issue, let we don't call OnSet and OnBake
if the componentwise value is equal.
(Since float comparision is cheap enough)

Change-Id: I3b3744aa420049523ece5bb72b915c8dd192d4f3
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
8 months agoAdding depth/stencil requirements 31/318531/6
David Steele [Tue, 1 Oct 2024 19:37:08 +0000 (20:37 +0100)]
Adding depth/stencil requirements

During ubo/program requirements look, also check to
see if any node/render pairs require depth/stencil
buffer to be switched on for the surface. (This will
have no effect in GLES backend, or for offscreens)

In graphics API command buffer, merged stencilOp & stencilFunc into single
stencilState; as Gl and Vulkan stencil methods take different combinations
of the same params.

Had to fix some stencil clipping test cases, as order of GL method calls
had changed. (Should change to test GraphicsAPI, not GL mock)

Ensured depth clear color defaults to 1.0 (the furthest depth)

Change-Id: Ifbf4f3349b93d4c72b7d1024d40ae21680e65c4e

8 months agoDALi Version 2.3.45 67/318967/1 dali_2.3.45
Richard Huang [Fri, 11 Oct 2024 09:43:06 +0000 (10:43 +0100)]
DALi Version 2.3.45

Change-Id: If1a29d2fd97156f9ba938668bc8a2258f729658d

8 months ago(Automated Tests) Render Surface Sync 36/318836/2
Adeel Kazmi [Wed, 9 Oct 2024 21:46:17 +0000 (22:46 +0100)]
(Automated Tests) Render Surface Sync

Change-Id: I84e317ba916b98f5660e49830b6cafa5389d7642

8 months agoMerge "Implmement ConditionalWait::WaitUntil" into devel/master
Eunki Hong [Thu, 10 Oct 2024 01:34:24 +0000 (01:34 +0000)]
Merge "Implmement ConditionalWait::WaitUntil" into devel/master

8 months agoDALi Version 2.3.44 39/318639/1 dali_2.3.44
David Steele [Fri, 4 Oct 2024 08:53:09 +0000 (09:53 +0100)]
DALi Version 2.3.44

Change-Id: I6722f644d9f0b2b9d184b9426ec4317b05a3dc55

8 months ago(dali_env) Ensure correct gtest libraries are installed 28/318528/1
Adeel Kazmi [Tue, 1 Oct 2024 16:28:29 +0000 (17:28 +0100)]
(dali_env) Ensure correct gtest libraries are installed

Change-Id: I16bedd65bf8c42388a9d852b07190c3a0ad182d3

8 months ago(dali_env) Added option to install USD & its dependencies 24/318524/2
Adeel Kazmi [Tue, 1 Oct 2024 12:27:30 +0000 (13:27 +0100)]
(dali_env) Added option to install USD & its dependencies

Change-Id: Ia4b4d4ffd599f48d32e53f81db366a5cfb27c656

8 months agoImplmement ConditionalWait::WaitUntil 19/318019/4
Eunki Hong [Mon, 23 Sep 2024 16:23:09 +0000 (01:23 +0900)]
Implmement ConditionalWait::WaitUntil

Let we make wait_until feature for conditional wait for dali.

Change-Id: I502c794fd3e5027a907ce31535db545e9afb7222
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
8 months agoDALi Version 2.3.43 42/318342/1 dali_2.3.43
Adeel Kazmi [Fri, 27 Sep 2024 05:52:38 +0000 (06:52 +0100)]
DALi Version 2.3.43

Change-Id: Ib8814b7b42f985f81a5e97e1b07a63754887aaa1

8 months agoMerge "Added clip transform matrix to the Graphics Controller" into devel/master
David Steele [Thu, 26 Sep 2024 10:26:24 +0000 (10:26 +0000)]
Merge "Added clip transform matrix to the Graphics Controller" into devel/master

8 months agoMerge "Fix gcc-14 build error" into devel/master
Eunki Hong [Thu, 26 Sep 2024 01:04:50 +0000 (01:04 +0000)]
Merge "Fix gcc-14 build error" into devel/master

8 months agoMerge "Add Integration code for Shader + Open GenerateTaggedShaderPrefix" into devel...
Eunki Hong [Thu, 26 Sep 2024 01:04:28 +0000 (01:04 +0000)]
Merge "Add Integration code for Shader + Open GenerateTaggedShaderPrefix" into devel/master

8 months agoAdded clip transform matrix to the Graphics Controller 71/317871/6
David Steele [Thu, 19 Sep 2024 09:23:09 +0000 (10:23 +0100)]
Added clip transform matrix to the Graphics Controller

For GL, this matrix should not be used, so doesn't affect
render time. For Vulkan, this will change to Vulkan
clip space, so adds another matrix multiply.

(Consider moving the projection matrix setup to graphics
controller...)

Moved the viewport/scissor setting to the secondary command buffer.
(It's not an issue for GL, but is for Vulkan)

Also ensured that the viewport near/far clip values are set.

Change-Id: I4c1842fad5766d9be769fe9dce79386f84b5459a

8 months agoFix gcc-14 build error 11/318211/1
Eunki Hong [Wed, 25 Sep 2024 14:32:12 +0000 (23:32 +0900)]
Fix gcc-14 build error

Let we include vector wrapper for custom actor impl

Change-Id: I320147a2fe622168c8a1e289c3470117de278036
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
8 months agoMerge "Add CommandBufferResourceBinding add resource well" into devel/master
David Steele [Wed, 25 Sep 2024 12:16:09 +0000 (12:16 +0000)]
Merge "Add CommandBufferResourceBinding add resource well" into devel/master