adam.b [Tue, 8 Dec 2020 14:10:51 +0000 (14:10 +0000)]
Created PartialRenderingDataProvider to store per-frame data
Change-Id: Ief3717a29bced6f30faa96cfe117ffa93bd9a8d0
adam.b [Fri, 18 Dec 2020 11:08:15 +0000 (11:08 +0000)]
DALi Version 2.0.6
Change-Id: I05de7b86bcaf019399edcb2fa6a417a19abd91ba
Adeel Kazmi [Wed, 16 Dec 2020 18:58:37 +0000 (18:58 +0000)]
Added notes to explain the difference between GetProperty & GetCurrentProperty
Change-Id: Iecb8e9d950f6c3bf77090fae82636221ae03e125
David Steele [Wed, 16 Dec 2020 18:08:37 +0000 (18:08 +0000)]
Merge "use std::string_view to avoid shader string duplication." into devel/master
David Steele [Tue, 15 Dec 2020 11:35:37 +0000 (11:35 +0000)]
Merge "Ensure actor size is set to node if different" into devel/master
David Steele [Mon, 14 Dec 2020 14:06:05 +0000 (14:06 +0000)]
Ensure actor size is set to node if different
Change-Id: I9a47c38321d7753747261f7bd140a6cb58330d58
Adeel Kazmi [Mon, 14 Dec 2020 14:04:28 +0000 (14:04 +0000)]
Fix Svace error in actor-parent-impl.cpp
Change-Id: I085d990f1ccbc5a503c1ac84943a0a44bf093d46
Adeel Kazmi [Fri, 11 Dec 2020 12:14:09 +0000 (12:14 +0000)]
Merge "DALi Version 2.0.5" into devel/master
David Steele [Fri, 11 Dec 2020 12:10:16 +0000 (12:10 +0000)]
DALi Version 2.0.5
Change-Id: I3c95f358b861b57145cbd1ca215b648e001da965
Adeel Kazmi [Fri, 11 Dec 2020 10:33:12 +0000 (10:33 +0000)]
Merge "[dali-core] add libhyphen-dev library to dali-env" into devel/master
Adeel Kazmi [Fri, 11 Dec 2020 10:22:42 +0000 (10:22 +0000)]
Merge "Refactored actor impl child/parent handling out" into devel/master
Richard Huang [Tue, 8 Dec 2020 13:23:10 +0000 (13:23 +0000)]
Ensure we use TransformManager const methods to retrieve values from const getter methods
Change-Id: Ibf8208bca7d876bffcc0df309757645adf4ac1d0
David Steele [Tue, 8 Dec 2020 12:34:13 +0000 (12:34 +0000)]
Merge "[dali-core] add all X11 colors to Color namespace" into devel/master
Adeel Kazmi [Tue, 8 Dec 2020 12:26:11 +0000 (12:26 +0000)]
Merge "(UpdateProxy) Ensure we use TransformManager const methods to retrieve values" into devel/master
Adeel Kazmi [Tue, 8 Dec 2020 11:31:51 +0000 (11:31 +0000)]
(UpdateProxy) Ensure we use TransformManager const methods to retrieve values
Change-Id: I4331e41ca50a8f0ca7122218b7ef56e99a184df1
Heeyong Song [Tue, 8 Dec 2020 00:37:02 +0000 (00:37 +0000)]
Merge "Ensure to update nodes even though they are invisible" into devel/master
David Steele [Mon, 7 Dec 2020 16:43:58 +0000 (16:43 +0000)]
Refactored actor impl child/parent handling out
Change-Id: I7f0750da51bff8528f55098e829d5814336e97bc
ali198724 [Sun, 29 Nov 2020 15:44:37 +0000 (17:44 +0200)]
[dali-core] add libhyphen-dev library to dali-env
Change-Id: I174819f4df3b72a6153fe7f78dd3297a30bba65c
Adeel Kazmi [Fri, 4 Dec 2020 14:56:57 +0000 (14:56 +0000)]
DALi Version 2.0.4
Change-Id: I06e9413d20ccf046ce02c01fa4f049c4cb0126da
Subhransu Mohanty [Thu, 3 Dec 2020 01:55:33 +0000 (10:55 +0900)]
refactor Object,TypeInfo and PropertyMetaData to use ConstString
Change-Id: I03e7021895d3089cb1427683accdff426b40286f
Subhransu Mohanty [Thu, 3 Dec 2020 04:19:55 +0000 (13:19 +0900)]
use std::string_view to avoid shader string duplication.
Change-Id: Iacad7e8c45d6176d2347c8ed423edd32e58de61f
Adeel Kazmi [Wed, 2 Dec 2020 18:36:21 +0000 (18:36 +0000)]
Merge "Fixed SVACE errors" into devel/master
David Steele [Wed, 2 Dec 2020 16:30:36 +0000 (16:30 +0000)]
Merge "Optimize Orphan animator Cleanup." into devel/master
Adeel Kazmi [Wed, 2 Dec 2020 09:56:19 +0000 (09:56 +0000)]
Fixed SVACE errors
Change-Id: I8ba9c64b7e20cd58834bc9ca8280840dfa8ea7ef
Subhransu Mohanty [Wed, 2 Dec 2020 05:48:17 +0000 (14:48 +0900)]
Optimize Orphan animator Cleanup.
keep a cleanup falg and update it if cleanup is required.
and then cleanup at onece all the orphan animators.
when there are no orphan animators we don't have to walk the animators twice.
Change-Id: I9c2f7f2bef9a7655481743a22abdf366d8b12f21
Heeyong Song [Mon, 30 Nov 2020 02:34:06 +0000 (11:34 +0900)]
Ensure to update nodes even though they are invisible
Change-Id: I5a7b77fc12ca28b18d207946b89357e9600f7d91
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
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
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.
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>
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
Subhransu Mohanty [Mon, 30 Nov 2020 05:52:58 +0000 (14:52 +0900)]
Refactor UniformMap, PropertyOwner and Program to use ConstString
Change-Id: Ie3c8048a57ad667f4f8e557ba1cc4ec19b2d686f
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
Adeel Kazmi [Mon, 30 Nov 2020 17:04:15 +0000 (17:04 +0000)]
Merge "Reference counting made atomic" 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
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
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
Richard Huang [Fri, 27 Nov 2020 11:56:42 +0000 (11:56 +0000)]
DALi Version 2.0.3
Change-Id: Idffb204f3a542eef257b7c9c53ee24503abfa5a7
Adeel Kazmi [Mon, 23 Nov 2020 16:48:36 +0000 (16:48 +0000)]
Merge "Support screen and client rotation" into devel/master
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
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
György Straub [Fri, 20 Nov 2020 07:45:46 +0000 (07:45 +0000)]
DALi Version 2.0.2
Change-Id: Iba6ed1ee281eb70633c4425a8c55f075455368a4
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
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
Cheng-Shiun Tsai [Fri, 13 Nov 2020 14:53:14 +0000 (14:53 +0000)]
DALi Version 2.0.1
Change-Id: I60ab4275600a2a4fd7e0b6cac346357b05a5a2fa
Seungho BAEK [Wed, 11 Nov 2020 03:07:08 +0000 (03:07 +0000)]
Merge "Blend Equation Advanced Supporting" into devel/master
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
ali198724 [Mon, 2 Nov 2020 10:01:29 +0000 (12:01 +0200)]
[dali-core] add all X11 colors to Color namespace
this is subset used in CSS https://www.w3.org/TR/css-color-3
Change-Id: If180701ffa07fab4b93f36d0d204a6c076653bc7
Subhransu Mohanty [Mon, 9 Nov 2020 02:33:12 +0000 (11:33 +0900)]
refactor AlphaFunction class to reduce size
Change-Id: I4ed9ad6e4367a97ac97f64cb5b82140fc969d99f
Adeel Kazmi [Fri, 6 Nov 2020 09:17:46 +0000 (09:17 +0000)]
DALi Version 2.0.0
Change-Id: I0a32b1d26aa223dd728b36188726693084461e35
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>
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>
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
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
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
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
David Steele [Mon, 2 Nov 2020 13:37:07 +0000 (13:37 +0000)]
Added test-harness timeout check
Change-Id: I82276c59de57bc29a2e6a2e895db26e5072a61e0
David Steele [Fri, 30 Oct 2020 14:33:16 +0000 (14:33 +0000)]
DALi Version 1.9.36
Change-Id: Ie87e252297e782248c1d5222a3cabc58e2c8f76a
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>
Joogab Yun [Thu, 29 Oct 2020 03:33:55 +0000 (12:33 +0900)]
Change property name from TouchDelegateArea to TouchArea.
Change-Id: I6b2af477ffb8523d7e98ffbc250cbb2deb59c5cc
David Steele [Fri, 23 Oct 2020 14:33:40 +0000 (15:33 +0100)]
Updated patch-coverage.pl script
Change-Id: I01c1e0e7a6959596bea5ff3318e964eda230b519
Subhransu Mohanty [Thu, 10 Sep 2020 01:59:09 +0000 (10:59 +0900)]
use algorithm and range for
Change-Id: I8f276553114fecf8c9f6b60696e2dcd274388958
Adeel Kazmi [Fri, 23 Oct 2020 10:48:15 +0000 (10:48 +0000)]
Merge "DALi Version 1.9.35" into devel/master
adam.b [Fri, 23 Oct 2020 10:44:56 +0000 (11:44 +0100)]
DALi Version 1.9.35
Change-Id: I39bd529cc7846aebdebe06c06145977b3dd6e269
David Steele [Fri, 23 Oct 2020 10:32:46 +0000 (10:32 +0000)]
Merge "use modern construct '= default' for special functions." into devel/master
joogab yun [Fri, 23 Oct 2020 02:02:45 +0000 (02:02 +0000)]
Merge "Add TouchDelegateArea property." into devel/master
David Steele [Tue, 13 Oct 2020 15:57:58 +0000 (16:57 +0100)]
Adding new patch-coverage script
Change-Id: Iaf227f70e10f2af1db928c0f0614619dbee53d5d
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
David Steele [Tue, 20 Oct 2020 15:05:45 +0000 (15:05 +0000)]
Merge "refactor Property::Map interface." 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
Adeel Kazmi [Fri, 16 Oct 2020 10:39:18 +0000 (10:39 +0000)]
Merge "DALi Version 1.9.34" into devel/master
Richard Huang [Fri, 16 Oct 2020 10:33:08 +0000 (11:33 +0100)]
[dali_1.9.34] Merge branch 'devel/master'
Change-Id: I9ad15755abccc4c455918b049bec38c1bcb84b4d
Richard Huang [Fri, 16 Oct 2020 10:30:35 +0000 (11:30 +0100)]
DALi Version 1.9.34
Change-Id: I5f8723bdcce4d478589a8dc72cea88180882d69f
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
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
Adeel Kazmi [Mon, 12 Oct 2020 19:46:40 +0000 (20:46 +0100)]
Fix doxygen comments
Change-Id: If8c7b64bbf197370ccdcf71d959846a477cee8d1
David Steele [Fri, 9 Oct 2020 14:07:06 +0000 (14:07 +0000)]
Merge "Fix PropertySetSignalType signal interface signature" into devel/master
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
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.
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
György Straub [Fri, 9 Oct 2020 13:05:41 +0000 (14:05 +0100)]
DALi Version 1.9.33
Change-Id: I055725b0491f27960da25b48a94d6ee3d67dff89
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
Richard Huang [Wed, 23 Sep 2020 15:00:31 +0000 (16:00 +0100)]
Skip rendering if no animation is currently active
Change-Id: Ie14194eeee047d908f36ec4c509e3863cc227cb8
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Adeel Kazmi [Tue, 6 Oct 2020 11:37:47 +0000 (11:37 +0000)]
Merge "Added small buffer optimization to Property::Value." into devel/master
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
Subhransu Mohanty [Wed, 2 Sep 2020 06:47:22 +0000 (15:47 +0900)]
keep a static vector to avoid memory allocation
Change-Id: I3ada71c7fd7d5d4ede47f769cc81723e22ac3a77