Commit Graph

121 Commits

Author SHA1 Message Date
Youngbok Shin
ff13f55ad4 lottie: pass matteSource and bitmap to layer's render function
matteSource layer has to be handled in other way.
For now, matteSource layer does not be applied to layers.
But, matteSource layer will be invisible.
In some test cases, it helps to check other layers which are overlayed by
a wrongly drawn matteSource layer. Anyway, the matte feature will be implemented soon.

Change-Id: Ib1e47e7ce9012b73a1729341d130defa561061c6
2018-08-16 04:16:46 +00:00
subhransu mohanty
308d8cf4ba lottie/parser: refactor lottie model objects.
Change-Id: I89160d918b36300b4f98a8059106c356e96643d0
2018-08-16 02:44:17 +00:00
subhransu mohanty
c326d5464c lottie/parser: inherit from data object instead of group object as composition has only a root layer.
Change-Id: I15f07d5d7ae2f8add4ac2b2de92628a33ab492e0
2018-08-16 02:42:56 +00:00
subhransu mohanty
12bad1cc4e lottie/render: keep mRle object in valid state after moving the object.
Change-Id: I15c377dc53dbe5b87184ca4751c3473f486a3121
2018-08-16 10:03:07 +09:00
subhransu mohanty
95d9dd1447 lottie/player: refactor composition class to keep a precomplayer instead of list of layers.
Change-Id: I7398392e52233e4c3d0452b03bcfd46261253601
2018-08-14 10:09:39 +00:00
Hermet Park
e6b7dd8551 lottieplayer: fix broken animation.
A patch occured regression bug, because its depeneded patch was rebased.
call setPos() properly even in deferred method.

Change-Id: I89fa849304b6e5d260cc88c3863d8879c7bb463b
2018-08-14 18:57:00 +09:00
Hermet Park
49d374788d lottieplayer: simple optmization for deffered update.
This skips unnecessary update process from every user render-request.

Change-Id: Id3123bdb31879e1c559b6048ccf60d88dccb690f
2018-08-14 09:22:44 +00:00
Hermet Park
2d81a0920d lottieplayer: apply lazy update.
update size when it ready to go.

Change-Id: Ic1f27bc3f365526313059d7c9026478c41b557c8
2018-08-14 09:19:21 +00:00
subhransu mohanty
d0b3aa86dd lottie/render: Fixed valgrind warning for uninitialize member variable.
Change-Id: I3c985c00b54d91b936c401febe9dff0d766e1793
2018-08-14 08:47:10 +00:00
Hermet Park
9410d9e32d lottieplayer: code refactoring.
change type to struct and declare type scopes explicitly.

Change-Id: If85fbc97917ba324030c3e65765f315e590239ed
2018-08-14 03:29:35 +00:00
Hermet Park
adddac6180 lottieplayer: merge setPos() with renderList()
renderList() build render tree based on current Position.
merge both api helps user to avoid mistake.

Change-Id: Ia158f28b5ab66ec6e20665726a21d7f1c4e4cc13
2018-08-14 03:27:35 +00:00
Hermet Park
a36f340a0b lottieplayer: remove redundant calls.
Those calls are useless on load time.

Change-Id: If69033eb244078c4f9b9258fcbc71eff17b894c9
2018-08-13 19:08:21 +09:00
subhransu mohanty
b73a2cfdcf lottie/render: remove unused functions.
Change-Id: Ib8d7319da4af0814072ed60869e053896336298d
2018-08-13 14:02:00 +09:00
subhransu mohanty
dfecf07d94 lottie/player: call setPos() only if size is already set.
Change-Id: If08c49c398d6d8d90ab845020108b368ea204505
2018-08-13 13:46:04 +09:00
sub.mohanty@samsung.com
505a208f93 lottie/render: fixed issue with + and - operator implementation of VRle.
Change-Id: Idd852768fde5bdd731c2a85e8abdee094b39f110
2018-08-13 13:36:15 +09:00
subhransu mohanty
1a65665d9c lottie/render: fixed transparency issue in renderer.
Change-Id: I8c1128b5cdd46718deeff6eda21663699dfd4b4c
2018-08-09 19:39:01 +09:00
subhransu mohanty
cf784388d0 lottie/player: Update dirty flag enum value.
Change-Id: I590ac039ca84c6f9b553db017188821ead852abb
2018-08-09 18:03:53 +09:00
subhransu mohanty
7f7cde6b30 lottie/render: Draw layers form back to front in the composition layer.
Change-Id: I41c0aedef7cc76e768c6d4776f7a29b3b1cab474
2018-08-09 02:33:10 +00:00
subhransu mohanty
123f76e7ed lottie/player: take buffer argument by value.
As we have async rendering, we can't rely on the caller to keep the buffer alive till render finish.

Change-Id: Ic7f9670a5e5003424c2b695c171a13717e531b21
2018-08-09 10:10:44 +09:00
subhransu mohanty
de6d53632b lottie/player: make sure model or composition available before calling api.
Change-Id: Ia1351bbd076d0e3189d033f708bd3ec281c30cd4
2018-08-09 09:59:05 +09:00
subhransu mohanty
d424320bd4 lottie/vector: added isEmpty() api in size class.
Change-Id: Ia49254b2d83c047d268ff7510c058c6b25873564
2018-08-09 09:51:43 +09:00
subhransu mohanty
0a7ca8137c lottie/render : fixed dash regression
Change-Id: I7a79295348ba23d8328718014a49760c2e11e731
2018-08-08 14:14:19 +09:00
subhransu mohanty
13966ac8c4 lottie/vector: fixed dasher issue.
Change-Id: If602ac7441469c5ed8bfe0500154a585087f433f
2018-08-08 13:57:39 +09:00
subhransu mohanty
62b1cea9e3 lottie/vector: refactored VRle class to use cow_ptr.
Change-Id: I00dd76c57e94a255efb478a61465ce6b20e8d0b5
2018-08-07 04:35:36 +00:00
subhransu mohanty
92c363da42 lottie/render: Implement drawRle() with position information.
Change-Id: Ia5bbcf911baaaa4b684045a6ac28c4dcfc14f841
2018-08-06 10:25:41 +09:00
Youngbok Shin
296534e3c0 lottie/render: don't redraw stroke/dash if there is no change
It will improve performance.

Change-Id: I3764d126d7eae19d009d72998247789e620205a1
2018-08-03 08:55:34 +00:00
Youngbok Shin
10cb2bda92 lottie: don't redraw path item if its properties are not changed
A path item has few animation frames, it has to be redrawn only in
animated frames. If the path item became static after animation frames,
it shouldn't redraw its path.
It will improve performance.

Change-Id: I583f2b8a889208a07530f6d06ed90469bcee726c
2018-08-03 08:48:32 +00:00
subhransu mohanty
649c463f4e lottie: always get the item by ref or const ref.
Change-Id: Id798812b135d2e1ef1fb593412808f15e2645761
2018-08-02 17:06:41 +09:00
Youngbok Shin
e8cb8100e6 lottie/raster: remove Const qualifier from VPath parameters
The given VPath should be moved by std::move.
The std:move only work as our purpose when it is non-const variable.
And it also fix a crash issue when its path is not changed, but its other properties are changed.

Change-Id: I4135066f99c0eed07e033c368dc4b60e6703ca37
2018-08-02 16:59:59 +09:00
Youngbok Shin
d0d3f36493 lottie/vector: move VPath to raster/drawable methods
It prevents to increase ref count of VPath meaninglessly.
It could be helpful to improve performance by avoiding alloc/dealloc/copy.

Change-Id: I597ca0ea99cdc10bfe9c83a644d20caeab6162b3
2018-08-02 16:05:20 +09:00
Youngbok Shin
a9def49291 lottie/vector: add clone method to copy data without increasing ref count
It helps to improve performance by avoiding copy job from writing COW data.

Change-Id: I72d1c7106fc4fe53fa6db05e7ed8c74f1b70fe95
2018-08-02 13:55:36 +09:00
subhransu mohanty
3ef4a6b6ae lottie/render: fixed logic where the memory will only grow when needed.
Change-Id: I2367433c69083b5c52d109ff854b9fa3b9019247
2018-08-02 13:11:28 +09:00
Youngbok Shin
b9fe04a251 lottie: reuse path for reducing constructor/destructor calls from getPath()/toPath()
It helps to improve performance by avoiding constructor/destructor calls.
The getPath function is renamed to updatePath function.
And it does not return VPath anymore.

Change-Id: I6e6cc52ec3f1560aac2ee0633cdf5a8c224dcc6e
2018-08-02 03:12:59 +00:00
subhransu mohanty
4b823247bd lottie: add support for arm fast path in vector render backend.
Change-Id: I6e2524290eb22cf889033ebb129b9a699bcdaf07
2018-08-02 10:45:10 +09:00
subhransu mohanty
6204af6ab6 lottie: remove dead code.
Change-Id: Ia56674a813a65007f07b2a54d230743ced6b6511
2018-08-01 13:06:44 +09:00
subhransu mohanty
4954721403 lottie/optimization: move the rle object to rletask thread to reuse
the object between frames.

Change-Id: Ia551fea9346c27aa4b6c020670a287b83b8a472e
2018-08-01 11:46:31 +09:00
subhransu mohanty
79af60fc2f lottie/vector: added reset() api to VRle class.
Change-Id: Iace73912f6ab4510c0adb15387029e2038ad15be
2018-08-01 11:43:37 +09:00
subhransu mohanty
14f66bb3b5 lottie/render: fixed rendering backend issue for arm.
Change-Id: I23b2f24b0ed995cb76ba554228e4ff72677806bd
2018-07-31 17:10:30 +09:00
subhransu mohanty
7465055289 lottie/render: add support for arm backend build.
Change-Id: I2cd319c4f599ead2e33056b037828d417d47753b
2018-07-31 17:08:54 +09:00
subhransu mohanty
46d1fec227 lottie: move logging system initialization to player.
disable loggin for tizen till issue resolved.

Change-Id: I24664f43128c6edfacd09f7296d63cad636c0c81
2018-07-31 14:29:51 +09:00
subhransu mohanty
abb7872b79 lottie/vector: reserve memory ahead to minimize reallocation.
Change-Id: Idb973bb7660c4ec95f36aa36d3707aa6030f5ffc
2018-07-30 16:47:18 +09:00
Youngbok Shin
b7f8007431 lottie: use make_unique construct
Change-Id: I8618541470fb636d2315aa39360fadc58c182dd3
2018-07-30 07:02:02 +00:00
Youngbok Shin
33e6a807c9 lottie/vector: reserve memory space ahead for minimizing reallocation - Polystar/Polygon
It also fix to use vIsZero() instead of equal(=) for floating values.

Change-Id: Iebe619a1a7be58b00e7261d8a6079e8ea817e055
2018-07-30 15:24:11 +09:00
Youngbok Shin
29eedc78ea lottie/vector: remove a warning message from 64 bits compilation
uint64_t is same as unsigned long long in 32 bits compilation.
But, it is same as unsigned long in 64 bits compilation.

Change-Id: Ibcddaf17d1fa1f6c972906f6571c05253292b752
2018-07-30 14:48:28 +09:00
Youngbok Shin
e99664a5ca lottie/vector: remove an unused variable warning message
Change-Id: I1ac0b9c3ec314ac01da8d3be3d11a1b21ef9938a
2018-07-30 14:41:23 +09:00
subhransu mohanty
3b5bac83a0 lottie/vector: reserve memory only when required.
Change-Id: Ia86c292d66c1060d33ccffd2fe5922480d219eb4
2018-07-30 14:34:24 +09:00
subhransu mohanty
dfe59f9fd5 lottie/vector: updated paths reserve api policy.
Change-Id: I9b6e97526d887ec6d342384cb7f2046584dbaf04
2018-07-30 14:31:19 +09:00
subhransu mohanty
548051c0e1 lottie: save extra memory allocation by reusing FtOutline object.
Change-Id: Ib3574052524cd38cd106ba27620ac825eb6a3f2a
2018-07-30 14:22:11 +09:00
subhransu mohanty
aa29d857d8 lottie: fixed warning.
Change-Id: Icc12cc76584913dd1f219207c23b987c61bb4829
2018-07-30 14:17:54 +09:00
subhransu mohanty
e527a3d7c0 lottie: remove inline from public api.
Change-Id: Ia6fdd2ddf0029f7aa1af57446e327ac6887708c8
2018-07-30 13:40:24 +09:00