Commit Graph

166 Commits

Author SHA1 Message Date
Jaeun Choi
bbdd2e246f lottie: add getImage() API in lottieview
Change-Id: Ic72bb47752797811cbe7c464e02c81bcfd0a9a11
2018-08-20 06:03:49 +00:00
subhransu mohanty
f41c6624e5 lottie: use unique_ptr instead of raw pointer.
Change-Id: Ic5b416c72a96427dff3a99316550d8edb7ffece9
2018-08-20 13:44:59 +09:00
subhransu mohanty
fa087b44e8 lottie/parser: treat root layer as a special precomp layer.
Change-Id: Ic9a2b171ee349f132e52db5395a92587c9e44c08
2018-08-20 04:42:50 +00:00
subhransu mohanty
5895944d4c lottie/player: refactor to use std::find_if instead of unorder_map.
Change-Id: Ic146357db1312aa0ff122fa6859a64098e350740
2018-08-20 13:38:05 +09:00
subhransu mohanty
9ce5e8138f lottie: build fix.
Change-Id: I5405a17d67066fc5cd10d816f4ed044fb8819471
2018-08-20 12:54:29 +09:00
Hermet Park
ddde576886 lotplayer: improve header format.
1. add namespace.
2. remove unnecessary export attribute.
3. hide prviate member.

This is one ongoing improvement.

Change-Id: I342e4d5e65370190ac55972b02f2fede1aee6d06
2018-08-20 03:30:09 +00:00
Hermet Park
20823b49fe lottieplayer: Add render option to update buffer forcely.
plus code refactoring.

Change-Id: Icef131a7df5fa9766ff9cfe7513b1865692719f5
2018-08-20 03:29:31 +00:00
Hermet Park
9c958d0de5 enable build example in default.
enable this under *aggressive development step.

Change-Id: I8ff728c94ef899441e8f528609248a9451ac7c0b
2018-08-20 12:06:44 +09:00
Hermet Park
d76883080a update gitignore
Change-Id: Ib1ccc3feb6155384c1c0bb7e101abbec19c2386c
2018-08-17 21:27:05 +09:00
subhransu mohanty
02404178e8 lottie/parser: Added support for separate position attribute in transform object.
Transform object can have separate x and y or a point object.

Change-Id: I0ad0073b3cb958336539ad520434c3284894c6b9
2018-08-17 06:33:43 +00:00
subhransu mohanty
5af0cb88f8 lottie/player: refactor lottieplayer.
Change-Id: Ia9b484e8be756d2e90f6b0d2a837f56e46f40e4c
2018-08-16 19:29:43 +09:00
subhransu mohanty
1a6b8c8e0e lottie/vector: refactor VPath class to use emplace_back instead of push_back to avoid temporary object creation.
Change-Id: I0abc1be410a3758c447de8b4600c472f6298bcc7
2018-08-16 14:30:57 +09:00
subhransu mohanty
da553c4dab lottie/optimization: keep drawablelist in layer to avoid memory allocation in every frame.
Change-Id: I80eebb9e1ab16a424a26a17ce67274c7518efca9
2018-08-16 13:37:21 +09:00
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
subhransu mohanty
1c4bd6c966 lottie/example: delete the animator only when its created.
Change-Id: Id6a4a7e704a8da298c0cae91a7065b80163f843d
2018-08-14 10:08:33 +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
43b23f4802 lottie/resource: add more lottie resource.
Change-Id: Ife04ca8de9da22e1188b73aa550aae9df4d262de
2018-08-09 18:06:05 +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
12c88ff4b0 lottie: few more resource for testing.
Change-Id: I11c1bd4d87ca79416698a9f9b6ba9b68d859892d
2018-08-09 04:44:31 +00: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
b4bdebb2d0 lottie: added new resource for testing.
Change-Id: I0050594833dfabf8f3d724d1da1636e2a18e735f
2018-08-09 10:29:00 +09: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