platform/core/uifw/dali-core.git
4 years agoRefactored Internal::Actor by moving some methods into the Relayouter 06/248706/2
Adeel Kazmi [Tue, 1 Dec 2020 18:34:58 +0000 (18:34 +0000)]
Refactored Internal::Actor by moving some methods into the Relayouter

This reduces the LOC for Actor

Change-Id: I02201d933ca315581765ea91d8e5ea191201499f

4 years agoMoved sibling order algorithms out of actor-impl 07/248707/1
David Steele [Tue, 1 Dec 2020 18:41:53 +0000 (18:41 +0000)]
Moved sibling order algorithms out of actor-impl

Reducing the line count of Internal::Actor to increase SAM score

Change-Id: Icceb9d6a4d899a988a9d203f1879f1c84df3fe07

4 years agoMerge changes I2dff9828,Ie3c8048a,Ib1b1d3bc into devel/master
David Steele [Tue, 1 Dec 2020 13:06:39 +0000 (13:06 +0000)]
Merge changes I2dff9828,Ie3c8048a,Ib1b1d3bc into devel/master

* changes:
  Avoid Heap allocation in UniformMap.
  Refactor UniformMap, PropertyOwner and Program to use ConstString
  Added String Interning Support to Dali.

4 years agoMake blend for the opaque renderer when advanced blend equation is applied. 27/248327/4
Seungho Baek [Wed, 25 Nov 2020 10:07:17 +0000 (19:07 +0900)]
Make blend for the opaque renderer when advanced blend equation is applied.

 - Not to change BlendMode.

Change-Id: Ic0d085a67d3c49e270a5cd83e703981bfd916f24
Signed-off-by: Seungho Baek <sbsh.baek@samsung.com>
4 years agoAvoid Heap allocation in UniformMap. 90/248590/3
Subhransu Mohanty [Mon, 30 Nov 2020 09:04:20 +0000 (18:04 +0900)]
Avoid Heap allocation in UniformMap.

With the use of ConstString we no need to heap allocate UniformPropertyMapping.
So just keep a Dali::Vector instead of OwnerContainer.

Change-Id: I2dff9828a121f7b6b245c306e0f689f5d2073021

4 years agoRefactor UniformMap, PropertyOwner and Program to use ConstString 69/248569/5
Subhransu Mohanty [Mon, 30 Nov 2020 05:52:58 +0000 (14:52 +0900)]
Refactor UniformMap, PropertyOwner and Program to use ConstString

Change-Id: Ie3c8048a57ad667f4f8e557ba1cc4ec19b2d686f

4 years agoAdded String Interning Support to Dali. 60/248560/5
Subhransu Mohanty [Wed, 25 Nov 2020 09:16:42 +0000 (18:16 +0900)]
Added String Interning Support to Dali.

- thread safe StringPool.
- uses arena allocator to allocate the StringEntry object.
- Internal strings are allocated in String pages instead of indivisual heap allocation.
- Both StringData and length are stored in same location(StringEntry).
- StringPool implements FlatHash with open addresssing and Quadratic Probing (adopted from llvm)

Change-Id: Ib1b1d3bc74718dd613e924236bb1845e83f42353

4 years agoMerge "Reference counting made atomic" into devel/master
Adeel Kazmi [Mon, 30 Nov 2020 17:04:15 +0000 (17:04 +0000)]
Merge "Reference counting made atomic" into devel/master

4 years agoMerge "refactor AlphaFunction class to reduce size" into devel/master
David Steele [Mon, 30 Nov 2020 12:50:50 +0000 (12:50 +0000)]
Merge "refactor AlphaFunction class to reduce size" into devel/master

4 years agoAdd configuration file to enable CodeQL code scanning in github 43/248543/1
Richard Huang [Fri, 27 Nov 2020 16:40:57 +0000 (16:40 +0000)]
Add configuration file to enable CodeQL code scanning in github

Change-Id: I99cd2db52c9beef5d3fedb6199c9f83b3be65c54

4 years agoReference counting made atomic 36/248536/1
adam.b [Fri, 27 Nov 2020 11:58:52 +0000 (11:58 +0000)]
Reference counting made atomic

The ARM assembled code and GCC builtin call have been removed and replace
with std::atomic<>.

Change-Id: I86299c36b82fbc7263e5a463da1475179cb20a04

4 years agoDALi Version 2.0.3 24/248524/1 dali_2.0.3
Richard Huang [Fri, 27 Nov 2020 11:56:42 +0000 (11:56 +0000)]
DALi Version 2.0.3

Change-Id: Idffb204f3a542eef257b7c9c53ee24503abfa5a7

4 years agoMerge "Support screen and client rotation" into devel/master
Adeel Kazmi [Mon, 23 Nov 2020 16:48:36 +0000 (16:48 +0000)]
Merge "Support screen and client rotation" into devel/master

4 years agoImplement a semaphore primitive 32/244732/9
Wander Lairson Costa [Mon, 21 Sep 2020 20:03:52 +0000 (17:03 -0300)]
Implement a semaphore primitive

macOS doesn't implement unnamed POSIX semaphores (sem_*) and semaphores
is only available in the standard C++ library starting with C++20.

We implement a semaphore primitive that tries to mimic as much as
possible std::counting_semaphore, this way when we enable C++20 in the
code base we can easily migrate to the standard implementation.

Change-Id: Ifab8dbe41b57490564ad569cf53d6aa0c4100a13

4 years agoSupport screen and client rotation 21/244821/11
Wonsik Jung [Thu, 24 Sep 2020 11:32:20 +0000 (20:32 +0900)]
Support screen and client rotation

In Tizen embedded system, two types of rotation are supported.
One is Window Rotation and the other is Screen rotation
Although their use-case are different, their rotation itself  almost works are same.
Real surface buffer is not rotated.
When rotation event is received from window server,
then internal contents are rotated and drawn with angle of the event.
This patch is to support the Tizen Rotation.

Change-Id: I1745b8cefaeb1bb6ff7639ac5d942aeb3216262f

4 years agoDALi Version 2.0.2 79/248079/1 dali_2.0.2
György Straub [Fri, 20 Nov 2020 07:45:46 +0000 (07:45 +0000)]
DALi Version 2.0.2

Change-Id: Iba6ed1ee281eb70633c4425a8c55f075455368a4

4 years agoMerge "Clean up the code to build successfully on macOS" into devel/master
Adeel Kazmi [Wed, 18 Nov 2020 17:46:41 +0000 (17:46 +0000)]
Merge "Clean up the code to build successfully on macOS" into devel/master

4 years agoClean up the code to build successfully on macOS 85/243985/9
Wander Lairson Costa [Wed, 12 Aug 2020 17:49:44 +0000 (14:49 -0300)]
Clean up the code to build successfully on macOS

This commit does some code cleanup to successfully build dali-core in
macOS using the Apple provided clang compiler.

The clang version shipped with macOS doesn't have the
-Wno-class-memaccess and the -Wno-cast-function-type switches, so we
test their existence before adding them to the compiler options.

Mutex now has move constructor and assigment operator, so classes with
mutexes members can use their defaults move operations. Classes holding
references cannot have a default move assigment operator.

Virtual functions overriding parent classes are now declared with the
`override` keyword.

MAXIMUM_TIME_DIFF_ALLOWED is a global internal variable nerver used, so
it was removed.

.gitignore was updated to include some artifacts from coc-nvim
extension.

Change-Id: I76201f867240a0822e7e202c2edcbfa07b2dffd6

4 years agoDALi Version 2.0.1 04/247704/1 dali_2.0.1
Cheng-Shiun Tsai [Fri, 13 Nov 2020 14:53:14 +0000 (14:53 +0000)]
DALi Version 2.0.1

Change-Id: I60ab4275600a2a4fd7e0b6cac346357b05a5a2fa

4 years agoMerge "Blend Equation Advanced Supporting" into devel/master
Seungho BAEK [Wed, 11 Nov 2020 03:07:08 +0000 (03:07 +0000)]
Merge "Blend Equation Advanced Supporting" into devel/master

4 years ago(patch-coverage.pl) Outputs covered and total lines as well 05/247305/1
Adeel Kazmi [Mon, 9 Nov 2020 19:07:26 +0000 (19:07 +0000)]
(patch-coverage.pl) Outputs covered and total lines as well

Change-Id: Ia66f4f1fd8134548c94722e55ee3ae824af7c288

4 years agorefactor AlphaFunction class to reduce size 11/247211/1
Subhransu Mohanty [Mon, 9 Nov 2020 02:33:12 +0000 (11:33 +0900)]
refactor AlphaFunction class to reduce size

Change-Id: I4ed9ad6e4367a97ac97f64cb5b82140fc969d99f

4 years agoDALi Version 2.0.0 72/247172/1 dali_2.0.0
Adeel Kazmi [Fri, 6 Nov 2020 09:17:46 +0000 (09:17 +0000)]
DALi Version 2.0.0

Change-Id: I0a32b1d26aa223dd728b36188726693084461e35

4 years agoRenderTaskProcessor::AddRenderablesForTask() optimization. 41/239741/9
György Straub [Wed, 29 Jul 2020 09:55:48 +0000 (10:55 +0100)]
RenderTaskProcessor::AddRenderablesForTask() optimization.

- pulled loop-invariant conditional for which RenderableContainer to add
  to, out of the loop;
- replaced branch for assigning true, with compound or-assignment of the
  result of the check;

Change-Id: I2f36f2b7a5eb95da6e3cc04bddfbede0f8437b69
Signed-off-by: György Straub <g.straub@partner.samsung.com>
4 years agoImplement GetNanoseconds() with std::chrono. 08/242608/7
Victor Cebollada [Fri, 28 Aug 2020 07:15:24 +0000 (08:15 +0100)]
Implement GetNanoseconds() with std::chrono.

* Platform independent.

Change-Id: I484dbfb5a0b6115a6ea8cd6c645420985e9aae0d
Signed-off-by: Victor Cebollada <v.cebollada@samsung.com>
4 years agoImprove the logic using Erase-Remove Idiom. 36/242436/6
Subhransu Mohanty [Thu, 27 Aug 2020 03:57:28 +0000 (12:57 +0900)]
Improve the logic using Erase-Remove Idiom.

instead of erasing each element found and restarting the
loop again . first find all element and move them to the end
of list and then erase them once using std::erase(std::remove_if()).

This will improve the cache locality as this will avoid lot ofpointer chaseing.
Also avoids expensing Dali::Vector::end() call.

Change-Id: I306de3f017ef23ea7d4d1e6e5202940f84fcf872

4 years agoMerge "use string_view instead of const string literals." into devel/master
David Steele [Tue, 3 Nov 2020 15:43:52 +0000 (15:43 +0000)]
Merge "use string_view instead of const string literals." into devel/master

4 years agouse string_view instead of const string literals. 22/245322/4
Subhransu Mohanty [Wed, 7 Oct 2020 05:16:26 +0000 (14:16 +0900)]
use string_view instead of const string literals.

as constexpr stringview calculates the length of the string during
compiletime. the == comparison is fast as it first checks whether
the size of the both string are same before calling the expensive
compare() function.

Change-Id: I996faed4d82e5c478f5f55c31cfe25581aa4bbc9

4 years agorefactor dali-animation. 11/245511/11
sub.mohanty@samsung.com [Sun, 11 Oct 2020 01:26:36 +0000 (10:26 +0900)]
refactor dali-animation.

- refactor keyframeChannel class.
- refactor KeyFrameBaseSpec to avoid heap allocation.
- keep a templated form of GetSpecialization.
- in the keyframeanimation functor keep a copy of keyframeChannel instead of heap allocated object.
- remove AnimatorFunctorBase class and replace it with std::function to avoid heap allocation when possible.
- structure packing of AnimatorBase

Change-Id: I416df4601116547c79f04b2cf8e0bc95e622b869

4 years agoAdded test-harness timeout check 18/246618/2
David Steele [Mon, 2 Nov 2020 13:37:07 +0000 (13:37 +0000)]
Added test-harness timeout check

Change-Id: I82276c59de57bc29a2e6a2e895db26e5072a61e0

4 years agoDALi Version 1.9.36 29/246529/1 dali_1.9.36
David Steele [Fri, 30 Oct 2020 14:33:16 +0000 (14:33 +0000)]
DALi Version 1.9.36

Change-Id: Ie87e252297e782248c1d5222a3cabc58e2c8f76a

4 years agoBlend Equation Advanced Supporting 00/224500/45
Seungho, Baek [Tue, 11 Feb 2020 05:51:46 +0000 (14:51 +0900)]
Blend Equation Advanced Supporting

Change-Id: I7a813e3831424de2b63e1cc53fd5682bbaaa4683
Signed-off-by: Seungho, Baek <sbsh.baek@samsung.com>
4 years agoChange property name from TouchDelegateArea to TouchArea. 91/246391/2
Joogab Yun [Thu, 29 Oct 2020 03:33:55 +0000 (12:33 +0900)]
Change property name from TouchDelegateArea to TouchArea.

Change-Id: I6b2af477ffb8523d7e98ffbc250cbb2deb59c5cc

4 years agoUpdated patch-coverage.pl script 24/246124/1
David Steele [Fri, 23 Oct 2020 14:33:40 +0000 (15:33 +0100)]
Updated patch-coverage.pl script

Change-Id: I01c1e0e7a6959596bea5ff3318e964eda230b519

4 years agouse algorithm and range for 67/243767/3
Subhransu Mohanty [Thu, 10 Sep 2020 01:59:09 +0000 (10:59 +0900)]
use algorithm and range for

Change-Id: I8f276553114fecf8c9f6b60696e2dcd274388958

4 years agoMerge "DALi Version 1.9.35" into devel/master
Adeel Kazmi [Fri, 23 Oct 2020 10:48:15 +0000 (10:48 +0000)]
Merge "DALi Version 1.9.35" into devel/master

4 years agoDALi Version 1.9.35 03/246103/1 dali_1.9.35
adam.b [Fri, 23 Oct 2020 10:44:56 +0000 (11:44 +0100)]
DALi Version 1.9.35

Change-Id: I39bd529cc7846aebdebe06c06145977b3dd6e269

4 years agoMerge "use modern construct '= default' for special functions." into devel/master
David Steele [Fri, 23 Oct 2020 10:32:46 +0000 (10:32 +0000)]
Merge "use modern construct '= default' for special functions." into devel/master

4 years agoMerge "Add TouchDelegateArea property." into devel/master
joogab yun [Fri, 23 Oct 2020 02:02:45 +0000 (02:02 +0000)]
Merge "Add TouchDelegateArea property." into devel/master

4 years agoAdding new patch-coverage script 61/245661/3
David Steele [Tue, 13 Oct 2020 15:57:58 +0000 (16:57 +0100)]
Adding new patch-coverage script

Change-Id: Iaf227f70e10f2af1db928c0f0614619dbee53d5d

4 years agoAdd TouchDelegateArea property. 35/245935/9
Joogab Yun [Tue, 20 Oct 2020 06:46:19 +0000 (15:46 +0900)]
Add TouchDelegateArea property.

TouchDelegateArea can reset the actor's touchable area.
This is usefull when the actor is small, but it should have a larger touch area.

for example

      Actor actor = Actor::New();
      actor.SetProperty(Actor::Property::SIZE, Vector2(10.0f, 10.0f));
      actor.SetProperty(DevelActor::Property::TOUCH_DELEGATE_AREA, Vector2(200.0f, 200.0f));
      actor.TouchedSignal().Connect(OnTouchCallback);

The actor is small, If you want to set the touch area to a larger area,
you can use the TOUCH_DELEGATE_AREA property.

Change-Id: Ic4e3683e09d1636bc61719ea1e83bcd05a1c4153

4 years agoMerge "refactor Property::Map interface." into devel/master
David Steele [Tue, 20 Oct 2020 15:05:45 +0000 (15:05 +0000)]
Merge "refactor Property::Map interface." into devel/master

4 years agoMerge "add base type of enum to reduce class size." into devel/master
David Steele [Mon, 19 Oct 2020 13:35:41 +0000 (13:35 +0000)]
Merge "add  base type of enum to reduce class size." into devel/master

4 years agoMerge "DALi Version 1.9.34" into devel/master
Adeel Kazmi [Fri, 16 Oct 2020 10:39:18 +0000 (10:39 +0000)]
Merge "DALi Version 1.9.34" into devel/master

4 years ago[dali_1.9.34] Merge branch 'devel/master' 42/245842/1
Richard Huang [Fri, 16 Oct 2020 10:33:08 +0000 (11:33 +0100)]
[dali_1.9.34] Merge branch 'devel/master'

Change-Id: I9ad15755abccc4c455918b049bec38c1bcb84b4d

4 years agoDALi Version 1.9.34 36/245836/1 dali_1.9.34
Richard Huang [Fri, 16 Oct 2020 10:30:35 +0000 (11:30 +0100)]
DALi Version 1.9.34

Change-Id: I5f8723bdcce4d478589a8dc72cea88180882d69f

4 years agoMerge "Skip rendering if no animation is currently active" into devel/master
Adeel Kazmi [Fri, 16 Oct 2020 08:03:24 +0000 (08:03 +0000)]
Merge "Skip rendering if no animation is currently active" into devel/master

4 years agoAdd intercept touch event 58/245258/18
Joogab Yun [Tue, 6 Oct 2020 06:38:33 +0000 (15:38 +0900)]
Add intercept touch event

The Touch event calls the TouchEvent callback by going back from the last child actor to the parent via hitTest.
InterceptTouchEvent checks the touch event in the parent first.
Returning false from interceptTouchEvent allows child actors to receive TouchEvents.
If it returns true, the actor will receive a TouchEvent.

for example

   Actor parent = Actor::New();
   Actor actor = Actor::New();
   parent.Add(actor);
   actor.TouchedSignal().Connect(&application, functor);
   parent.TouchedSignal().Connect(&application, parentFunctor);

The callbacks are called in the order functor -> parentFunctor.

If you connect interceptTouchSignal to parentActor.

   Dali::DevelActor::InterceptTouchedSignal(parent).Connect(&application, interceptFunctor);

When interceptFunctor returns false, it is called in the same order functor -> parentFunctor.
If it returns true, it means that the TouchEvent was intercepted.
So the child actor will not be able to receive touch events.
Only the parentFunctor is called.

Change-Id: Ib6887adbcee59168a7caf7f36bcc400500c626e8

4 years agoFix doxygen comments 85/245585/1
Adeel Kazmi [Mon, 12 Oct 2020 19:46:40 +0000 (20:46 +0100)]
Fix doxygen comments

Change-Id: If8c7b64bbf197370ccdcf71d959846a477cee8d1

4 years agoMerge "Fix PropertySetSignalType signal interface signature" into devel/master
David Steele [Fri, 9 Oct 2020 14:07:06 +0000 (14:07 +0000)]
Merge "Fix PropertySetSignalType signal interface signature" into devel/master

4 years agouse modern construct '= default' for special functions. 75/243875/3
Subhransu Mohanty [Fri, 11 Sep 2020 01:17:42 +0000 (10:17 +0900)]
use modern construct '= default' for special functions.

This patch is auto generated by clang-tidy with modernize-use-equals-default.
excluded automated-tests

Change-Id: I50cf90eb5684144a95b263774f3d8b3be8f4518c

4 years agoMerge changes I2769d6ae,I11060630,I5c96789c,I1d0e89be,I331a838c, ... into devel/master
David Steele [Fri, 9 Oct 2020 13:37:15 +0000 (13:37 +0000)]
Merge changes I2769d6ae,I11060630,I5c96789c,I1d0e89be,I331a838c, ... into devel/master

* changes:
  Add template keyword for android compiler
  refactor SignalBase and CallbackBase using variadic template.
  refactor Signal class.
  refactor ConnectionTracker class.
  refactor SlotConnection class.
  refactor CallbackBase class.
  refactor BaseSignal class.
  refactor  SignalConnection class.

4 years ago[dali_1.9.33] Merge branch 'devel/master' 69/245469/1
György Straub [Fri, 9 Oct 2020 13:06:40 +0000 (14:06 +0100)]
[dali_1.9.33] Merge branch 'devel/master'

Change-Id: I58ae05dfbcbb8b9a80a3548de1c051444e9c9f8f

4 years agoDALi Version 1.9.33 63/245463/1 dali_1.9.33
György Straub [Fri, 9 Oct 2020 13:05:41 +0000 (14:05 +0100)]
DALi Version 1.9.33

Change-Id: I055725b0491f27960da25b48a94d6ee3d67dff89

4 years agoFix PropertySetSignalType signal interface signature 04/242604/4
Subhransu Mohanty [Fri, 28 Aug 2020 08:13:41 +0000 (17:13 +0900)]
Fix PropertySetSignalType signal interface signature

because Property::Value class is not a regular type each
time we pass by value it takes a deep copy(2 allocation)
this interface change will fix that issue.

Change-Id: I1c54c1fac00d0387f474c831df4eacf017dbd54b

4 years agoSkip rendering if no animation is currently active 27/244727/4
Richard Huang [Wed, 23 Sep 2020 15:00:31 +0000 (16:00 +0100)]
Skip rendering if no animation is currently active

Change-Id: Ie14194eeee047d908f36ec4c509e3863cc227cb8

4 years agoMerge "skipping the render items outside of the partial rendering merged area." into...
Adeel Kazmi [Thu, 8 Oct 2020 16:19:53 +0000 (16:19 +0000)]
Merge "skipping the render items outside of the partial rendering merged area." into devel/master

4 years agoAdd template keyword for android compiler 60/245360/2
David Steele [Wed, 7 Oct 2020 14:37:59 +0000 (15:37 +0100)]
Add template keyword for android compiler

Android compiler needs template keyword added
to be able to find Emit / EmitReturns methods.

Not needed on latest GCC on Ubuntu or target.

Change-Id: I2769d6ae7e4aa6e56b26361885b8edc9a9277a35

4 years agoadd base type of enum to reduce class size. 31/245331/2
Subhransu Mohanty [Wed, 7 Oct 2020 06:47:29 +0000 (15:47 +0900)]
add  base type of enum to reduce class size.

with base type and structure packing the Animation class size reduced by 16byte.
Also added class member-initializer rather than updating default value in constructor.

Change-Id: I0153e8aefc6bb0128f185996389ba7d85f689049

4 years agorefactor Property::Map interface. 44/244744/4
Subhransu Mohanty [Thu, 24 Sep 2020 02:02:36 +0000 (11:02 +0900)]
refactor Property::Map interface.

- take std::string and Property::Value by value.
- use std::string_view in the find interface.

Change-Id: I8bcedb15f1b84663520a79b0e4a724e0cb28487b

4 years agorefactor SignalBase and CallbackBase using variadic template. 94/245194/3
Subhransu Mohanty [Mon, 5 Oct 2020 07:15:21 +0000 (16:15 +0900)]
refactor SignalBase and CallbackBase using variadic template.

Variadic template and parameter pack makes the Api list much shorter
and enables for future optimization.

Removed assertion from Callback::Execute if an empty callback has
been setup.

Fixed negative test case.

Change-Id: I11060630ef4b82fc9966610b5c63ef2fa27b3779

4 years agoMerge "added Erase and EraseIf function to dali-vector" into devel/master
David Steele [Wed, 7 Oct 2020 11:10:03 +0000 (11:10 +0000)]
Merge "added Erase and EraseIf function to dali-vector" into devel/master

4 years agoadded Erase and EraseIf function to dali-vector 47/245247/2
Subhransu Mohanty [Tue, 6 Oct 2020 02:17:07 +0000 (11:17 +0900)]
added Erase and EraseIf function to dali-vector

These functions uses erase-remove idiom for efficient
removal of more than one item from vector.
The signature is same as the standard erase() and erase_if()
function added to c++20.

Change-Id: I2d6769cde5b6acfbb03447b6576491021ab14fe1

4 years agoskipping the render items outside of the partial rendering merged area. 01/245101/2
adam.b [Thu, 1 Oct 2020 14:11:54 +0000 (15:11 +0100)]
skipping the render items outside of the partial rendering merged area.

Change-Id: I7a9019fc75600f71a5580c4a4956b6324399a2a3

4 years agorefactor Signal class. 06/244206/6
Subhransu Mohanty [Wed, 16 Sep 2020 02:01:05 +0000 (11:01 +0900)]
refactor Signal class.

- current Signal<> class takes 3 Pointer size . 24byte in 64bit system and 12byte in 32bit system.
- The Actor class uses 11 siganls which takes 250bytes almost 50% of the Actor class size.
- With this patch the Signal<> object now occupies 1 pointer size. and allocates only when
  user connects a signal.

Change-Id: I5c96789ca995e50bf54890d1d9048dc4e1b276bb

4 years agorefactor ConnectionTracker class. 05/244205/5
Subhransu Mohanty [Tue, 15 Sep 2020 09:32:14 +0000 (18:32 +0900)]
refactor ConnectionTracker class.

- keep Dali::Vector<SlotConnection> instead of Dali::Vector<SlotConnection*>, this will
  reduce heap allocation as well as performance.

Change-Id: I1d0e89be58a41f89087708d8a59f2e0cbfa454df

4 years agorefactor SlotConnection class. 04/244204/5
Subhransu Mohanty [Tue, 15 Sep 2020 09:24:54 +0000 (18:24 +0900)]
refactor SlotConnection class.

- make SlotConnection a trivial type so that we can keep in container by value.

Change-Id: I331a838ccef8f9fecfd1a2b26830fb3ced801ee4

4 years agorefactor CallbackBase class. 03/244203/5
Subhransu Mohanty [Tue, 15 Sep 2020 07:03:42 +0000 (16:03 +0900)]
refactor CallbackBase class.

- Don't allocate objectdata separately as we allways heap allocate the CallbackBase object.
- keep operator==() in the header to give compiler opertunity for inlining.

Change-Id: Id17214b4c91d27849f67c953d526e4d3789a2cb4

4 years agorefactor BaseSignal class. 02/244202/5
Subhransu Mohanty [Tue, 15 Sep 2020 06:00:03 +0000 (15:00 +0900)]
refactor BaseSignal class.

- replace Dali::Vector<SignalConnection*> with std::vector<SignalConnection>
- Fixed Empty() and GetConnectionCount() implementaion complexity from O(n) to O(1).
- move trivial functions to header to make them inline.
- use erase-remove idiom to cleanup the empty connections.

Change-Id: I941bcf6b0b27a14d29a316f005f37bfca44c3530

4 years agorefactor SignalConnection class. 01/244201/5
Subhransu Mohanty [Tue, 15 Sep 2020 02:20:19 +0000 (11:20 +0900)]
refactor  SignalConnection class.

- make SignalConnection class a move-only type.
- with this change we can use this object as a valuetype
instead of pointer in the std::vector.

- this will reduce the heap allocation as well as search
  inside the container.

Change-Id: I87a0a4b38e979be23bfec75076fbda97ea73e932

4 years agoMerge "Added small buffer optimization to Property::Value." into devel/master
Adeel Kazmi [Tue, 6 Oct 2020 11:37:47 +0000 (11:37 +0000)]
Merge "Added small buffer optimization to Property::Value." into devel/master

4 years agoAdded small buffer optimization to Property::Value. 43/244843/6
Subhransu Mohanty [Fri, 25 Sep 2020 02:33:40 +0000 (11:33 +0900)]
Added small buffer optimization to Property::Value.

With SBO optimization we don't need to allocate memory
for the Pimpl pointer as we will be creating the object
inplace in th Storage buffer.
After this change the Property::Value size will be 16byte
instead of 8. I think the overhead is minimal comparing to
the number of allocation this class does in a dali application.

Note: with the SBO and union trick the implementaion is little
bit complex than before. but as this class is core for property
and animation and used every where. the complexity is justified
in my opinion.

Change-Id: Ibe14fe92f15c2ab93395c9731bd1fca902e98259

4 years agokeep a static vector to avoid memory allocation 70/242970/3
Subhransu Mohanty [Wed, 2 Sep 2020 06:47:22 +0000 (15:47 +0900)]
keep a static  vector to avoid memory allocation

Change-Id: I3ada71c7fd7d5d4ede47f769cc81723e22ac3a77

4 years ago[dali_1.9.32] Merge branch 'devel/master' 16/245116/1
Cheng-Shiun Tsai [Fri, 2 Oct 2020 09:47:01 +0000 (10:47 +0100)]
[dali_1.9.32] Merge branch 'devel/master'

Change-Id: I273fcca7812387ae4d62a455aa69c43ea8f95c9f

4 years agoDALi Version 1.9.32 10/245110/1 dali_1.9.32
Cheng-Shiun Tsai [Fri, 2 Oct 2020 09:46:30 +0000 (10:46 +0100)]
DALi Version 1.9.32

Change-Id: I0e3ec20ed93df4dffc7a6604ae3ef069036f1af7

4 years agoMerge "partial rendering - When calculating the area, a difference of about 1px...
Adeel Kazmi [Wed, 30 Sep 2020 16:24:14 +0000 (16:24 +0000)]
Merge "partial rendering  - When calculating the area, a difference of about 1px occurs.    so change roundf to floor" into devel/master

4 years agoMerge "partial rendering" into devel/master
Adeel Kazmi [Wed, 30 Sep 2020 16:23:46 +0000 (16:23 +0000)]
Merge "partial rendering" into devel/master

4 years agoConst correctness improvements for Property::Value. 74/244974/4
György Straub [Mon, 28 Sep 2020 12:09:02 +0000 (13:09 +0100)]
Const correctness improvements for Property::Value.

GetArray() and GetMap() return non-const pointers, which allow const
objects being modified. While DALi itself doesn't seem to abuse this
in client code it may still lead to hard to trace bugs or UB at worst.

It makes sense that the modification of an element of a Property::Map
or Array that a Property::Value holds, means modification of the
Property::Value itself.

- GetArray/Map() const has been changed to return pointer-to-consts;
- a non-const counterpart has been added to each;

Change-Id: I187770bbb3cf355fbf1df95c909bad3ddc8cdb23
Signed-off-by: György Straub <g.straub@partner.samsung.com>
4 years agoRefactor Property::Value::Impl class 39/242739/16
Subhransu Mohanty [Mon, 31 Aug 2020 01:33:12 +0000 (10:33 +0900)]
Refactor Property::Value::Impl class

- now Impl class object is 16byte for both 32 and 64 bit system.
- inplace constuct the object for type bool , int, float , vector2 , vector3 , Property::Map and Property::Array
- dosen't delete the Impl pointer when type dosen't match.
- all the constructos take argument by value (sink argument).
- marked move constructor and assignment operator as noexcept.

Change-Id: Ic5f4fb8956b67b00a7a68ba8f02d6963fb457221

4 years agopartial rendering 61/244861/2
Joogab Yun [Fri, 25 Sep 2020 07:31:20 +0000 (16:31 +0900)]
partial rendering
 - When calculating the area, a difference of about 1px occurs.
   so change roundf to floor

Change-Id: Id07ecd26456288884585ca58bc2d33e4f8bddb7e

4 years agorefcator demangler to avoid temporary vector and string creation. 21/244921/3
sub.mohanty@samsung.com [Sat, 26 Sep 2020 00:21:29 +0000 (09:21 +0900)]
refcator demangler to avoid temporary vector and string creation.

-this patch reduces heap allocation by 130,000

Change-Id: Ic095319c11aea9e5235683f409b7ee846087d702

4 years agoEnsuring CustomActor behaviour flags retain expected values 05/244905/2
David Steele [Fri, 25 Sep 2020 15:13:36 +0000 (16:13 +0100)]
Ensuring CustomActor behaviour flags retain expected values

Change-Id: Ica035f04ac71d0f514af0dbe3920f235bd775907

4 years ago[dali_1.9.31] Merge branch 'devel/master' 87/244887/1
Adeel Kazmi [Fri, 25 Sep 2020 10:58:50 +0000 (11:58 +0100)]
[dali_1.9.31] Merge branch 'devel/master'

Change-Id: Id3ff79a9e7c09c3aa7b4e7bba1a854913556b762

4 years agoDALi Version 1.9.31 80/244880/1 dali_1.9.31
Adeel Kazmi [Fri, 25 Sep 2020 10:57:47 +0000 (11:57 +0100)]
DALi Version 1.9.31

Change-Id: Ia9d748e582577f2acb0bbfc85968fa9d12e8f92a

4 years agopartial rendering 10/240310/9
Joogab Yun [Wed, 5 Aug 2020 07:42:24 +0000 (16:42 +0900)]
partial rendering

1. Modify dirtyRects to have scene for multi window support.
  - Looking at a single dirtyRect in multiple windows causes problems.

2. Add Scissor for partial rendering

Change-Id: Iec8455c2b948d4344ab805d4426e2a17a447af99

4 years agoMerge "Not use texture bound cache in unexpected cases" into devel/master
Adeel Kazmi [Wed, 23 Sep 2020 12:57:37 +0000 (12:57 +0000)]
Merge "Not use texture bound cache in unexpected cases" into devel/master

4 years agoFix interface to avoid heap allocation. 63/244663/1
Subhransu Mohanty [Wed, 23 Sep 2020 04:44:50 +0000 (13:44 +0900)]
Fix interface to avoid heap allocation.

- take Property::Value and std::string by value.
- use vector::push_back(T&&) version to avoid copy.
- this patch reduces 300,000 memory allocation.

Change-Id: I2da12f4b18cef5967ada18d6c9c58d2bc406d8ea

4 years agoMerge "Include the algorithm header file" into devel/master
Adeel Kazmi [Tue, 22 Sep 2020 21:26:44 +0000 (21:26 +0000)]
Merge "Include the algorithm header file" into devel/master

4 years agoInclude the algorithm header file 41/244641/1
Wander Lairson Costa [Tue, 22 Sep 2020 17:24:58 +0000 (14:24 -0300)]
Include the algorithm header file

It is necessary by std::min and std::max. This fixes dali-demo build on
Windows.

Change-Id: Id10dd27f2b90b675ba68c1504f829853ace5071d

4 years agoNot use texture bound cache in unexpected cases 96/244396/2
Heeyong Song [Fri, 18 Sep 2020 06:14:22 +0000 (15:14 +0900)]
Not use texture bound cache in unexpected cases

Change-Id: I7866750a920a5c9da8c554088f72af501052a239

4 years agoMerge "Fix interface to take sink argument by value." into devel/master
Adeel Kazmi [Mon, 21 Sep 2020 12:29:22 +0000 (12:29 +0000)]
Merge "Fix interface to take sink argument by value." into devel/master

4 years agoMerge "Internal::Actor Refactoring" into devel/master
Adeel Kazmi [Mon, 21 Sep 2020 08:15:54 +0000 (08:15 +0000)]
Merge "Internal::Actor Refactoring" into devel/master

4 years agoFix interface to take sink argument by value. 61/242861/5
Subhransu Mohanty [Tue, 1 Sep 2020 09:38:06 +0000 (18:38 +0900)]
Fix interface to take sink argument by value.

 -Fix RegisterProperty() interface to take name and property by value.
 -Fix SetProperty() interface to take property by value.
 -Fix RegisterProperty() interface to take name and property by value.

Change-Id: I04231da346a62d3aa56892453d36ed0c0b1657f5

4 years ago[dali_1.9.30] Merge branch 'devel/master' 44/244444/1
David Steele [Fri, 18 Sep 2020 10:35:33 +0000 (11:35 +0100)]
[dali_1.9.30] Merge branch 'devel/master'

Change-Id: Ie458776623bc8eabd38c5d20534e1bc5b596c500

4 years agoDALi Version 1.9.30 38/244438/1 dali_1.9.30
David Steele [Fri, 18 Sep 2020 10:35:02 +0000 (11:35 +0100)]
DALi Version 1.9.30

Change-Id: Ib069886ed3b8bdf7d159e2fe5771b22d8de00816

4 years agoMerge "Fix texture bound cache issue" into devel/master
Heeyong Song [Thu, 17 Sep 2020 23:36:37 +0000 (23:36 +0000)]
Merge "Fix texture bound cache issue" into devel/master

4 years agoMerge "Added API to apply native texture modification to shader" into devel/master
Adeel Kazmi [Thu, 17 Sep 2020 21:13:25 +0000 (21:13 +0000)]
Merge "Added API to apply native texture modification to shader" into devel/master

4 years agoInternal::Actor Refactoring 59/243759/8
Adeel Kazmi [Wed, 9 Sep 2020 17:53:17 +0000 (18:53 +0100)]
Internal::Actor Refactoring

Change-Id: Ibeb50bb81a8941fb1e72f8ca8d2db9c998085e7c

4 years agoFix texture bound cache issue 78/244278/2
Heeyong Song [Wed, 16 Sep 2020 15:23:13 +0000 (00:23 +0900)]
Fix texture bound cache issue

ActiveTexture should be called if mActiveTextureUnit is different.
We don't need to check it in BindTextureForUnit().

And the mBoundTextureId should store ids per target.

Change-Id: I30d93784577a2ce261ef047f2ec36c6adb766b0a

4 years agoMerge "Fix AddUniformMapping() interface to take uniform name by value." into devel...
Adeel Kazmi [Wed, 16 Sep 2020 17:44:36 +0000 (17:44 +0000)]
Merge "Fix AddUniformMapping() interface to take uniform name by value." into devel/master