Hermet Park [Wed, 23 Sep 2020 02:59:44 +0000 (11:59 +0900)]
examples: added stress test.
Change-Id: I2e48dada86608b5494bc56bcc9fbec1f98936642
JunsuChoi [Tue, 22 Sep 2020 05:28:51 +0000 (14:28 +0900)]
SvgPath: When path end(Z,z), Current point are returned to starting point(M,m)
When path ends with 'z' or 'Z' command, if 'm' comes as next command,
the current point is incorrectly referenced.
Since 'Z', 'z' means to close the path,
so, Save point and reuse it when 'M' or 'm' is called.
Change-Id: I6b47ec0d424dbc7dfc3bcf1344cf2ae4c15a1081
Hermet Park [Tue, 22 Sep 2020 04:47:23 +0000 (13:47 +0900)]
common picture: implement duplicate() method.
Change-Id: I2fae44b8981560cefd6430e068bf3221535090a5
Hermet Park [Tue, 22 Sep 2020 04:20:13 +0000 (13:20 +0900)]
common scene: implement duplicate() method.
Change-Id: I132776aa42a4f170bd3dd0c36a02dbdeaa9613f7
Hermet Park [Tue, 22 Sep 2020 01:56:53 +0000 (10:56 +0900)]
common fill: code refactoring
removed unique_ptr in the interface because it's hard to get polymorphism benefits in programming perspective.
Change-Id: I1c1fc0a0b5047f365efb17ece3645291a4719224
Hermet Park [Mon, 21 Sep 2020 10:22:47 +0000 (19:22 +0900)]
examples: update testDuplicate.
Added shape gradient fill to check duplication feature.
Change-Id: If2bbfb35d2a6cb4241bfcc8923788cd42512e733
Hermet Park [Mon, 21 Sep 2020 10:20:51 +0000 (19:20 +0900)]
common fill: implement duplicate() method.
Change-Id: Ia47a13d4a124d91f84bd5ed755b831ea5c35e3ff
Hermet Park [Fri, 18 Sep 2020 16:04:34 +0000 (01:04 +0900)]
Update README.md
Add examples section.
Change-Id: I0f6a954caebad0051490f894b3ea89e6fa26760b
Hermet Park [Fri, 18 Sep 2020 15:34:46 +0000 (00:34 +0900)]
examples: move tests to src/examples
tests is now officially placed in src/examples,
default is turned off, only necessaries turn it on.
ex) meson . build -Dexamples=true
+ this examples are required efl 'elementary' package.
Change-Id: I60be4a45d520eab138e25212fbc4de3691bf1127
Hermet Park [Fri, 18 Sep 2020 14:36:33 +0000 (23:36 +0900)]
bindings/capi: fix c compatibility warnings.
Change-Id: Idcd5736851950459ea7ad4af96662ea64013be75
warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
Hermet Park [Fri, 18 Sep 2020 07:34:12 +0000 (16:34 +0900)]
common: binary optimization. (#65)
removed unique_ptr usages from pImpl pattern.
that increased binary size.
2204082 -> 2045672
Change-Id: Idb2c25769704b246d51dce6da5bf85b240787205
Hermet Park [Fri, 18 Sep 2020 03:14:01 +0000 (12:14 +0900)]
common: code refactoring.
revise duplicate() approach with stategy pattern.
Change-Id: Id829e6ed5bad481ed317f036ee82991a01faa1c1
Hermet Park [Thu, 17 Sep 2020 11:57:43 +0000 (20:57 +0900)]
Update README.md
fix typos.
Change-Id: Ibd3b4b860e2223f2366cb7867d468c7cb913171c
Hermet Park [Thu, 17 Sep 2020 11:53:25 +0000 (20:53 +0900)]
build: renamed utilities to tools
Change-Id: Ia0675ebbbdfec9aeb8f97ff43804457b68cb30b4
Hermet Park [Thu, 17 Sep 2020 11:49:47 +0000 (20:49 +0900)]
Update README.md
Change-Id: I7b1f3868b35cee3f1f10cb4606758607a8f57534
Hermet Park [Thu, 17 Sep 2020 11:49:10 +0000 (20:49 +0900)]
Update README.md
Updated Svg to Png section.
Change-Id: I669fac4f0c2d05e4a55251ffedd8cae8b7ef4f76
JunsuChoi [Thu, 17 Sep 2020 11:35:43 +0000 (20:35 +0900)]
ReadMe: Add description for svg2png (#62)
Change-Id: Ieec329b35070308614fa6f774e1b92f2c52e62b1
Hermet Park [Thu, 17 Sep 2020 03:06:42 +0000 (12:06 +0900)]
Update README.md
retouch the layout and fix some grammars.
Change-Id: I9ee6a7abaa0a1b4e160639b7f3dbea5fc81851c5
Hermet Park [Thu, 17 Sep 2020 02:30:31 +0000 (11:30 +0900)]
updated gitignore
Change-Id: I44923c66890b746c8fb09156aad093a315d48e52
Hermet Park [Thu, 17 Sep 2020 02:29:02 +0000 (11:29 +0900)]
common shape: fix grammar mistake.
array values are not copied by *a = *b;
Change-Id: Ic7b4efa9597778f0a6545a8f80155ba692abe08f
Hermet Park [Thu, 17 Sep 2020 02:28:05 +0000 (11:28 +0900)]
common path: code refactoring.
revise duplicate() method for clean & neat code.
Change-Id: I040c2a5f05094a284f870806faf2eaf569d8657d
Michal Szczecinski [Thu, 10 Sep 2020 10:55:08 +0000 (12:55 +0200)]
shape: added duplicate api.
Changes:
1. New shape->duplicate(Shape) api.
2. New example: testDuplicate
3. Added capi binding for duploicate api
4. Added capi duplication test in testCapi.c
Description:
Added implementation of duplicate api. For now it supports stroke
properties and shape properties (fill color, path) duplication.
TODO:
Implement gradient properties duplication
Change-Id: I69e006982aec946fd5a26e5be6d29c6191cd461f
Hermet Park [Wed, 16 Sep 2020 12:01:43 +0000 (21:01 +0900)]
test: fix typo
dash size must be 2, not 4.
Change-Id: Iefaa241bb330ca0a83401518d0415a9480197727
Hermet Park [Wed, 16 Sep 2020 11:58:00 +0000 (20:58 +0900)]
Update README.md
Change-Id: I4f0e7f7749db9ef9424a17371d37cc3afaaf358a
Hermet Park [Wed, 16 Sep 2020 11:48:29 +0000 (20:48 +0900)]
Update README.md
Change-Id: Ie4a13d75348c8e63b4822a497d60c16df077c77d
Hermet Park [Wed, 16 Sep 2020 11:31:49 +0000 (20:31 +0900)]
Update README.md
Change-Id: I1d7067b871f51051611424cb209258349e2be1f9
Hermet Park [Wed, 16 Sep 2020 11:28:56 +0000 (20:28 +0900)]
Update README.md
Change-Id: I7185f92c51a33f189eac4f8e46fdde9f027d3436
Hermet Park [Wed, 16 Sep 2020 11:27:50 +0000 (20:27 +0900)]
README: updated example
Change-Id: I9dd2006af98a74766da63bd6f3192c3b5ba7a677
Hermet Park [Wed, 16 Sep 2020 10:48:12 +0000 (19:48 +0900)]
Update README.md
Change-Id: I1ef76ccfb58dd8e5ca325174104cd89e4d90d321
Hermet Park [Wed, 16 Sep 2020 10:45:00 +0000 (19:45 +0900)]
Update README.md
Change-Id: Ieb4a1e7135c88b79302d5a9fa9f41f08ca718b6e
Hermet Park [Wed, 16 Sep 2020 10:42:42 +0000 (19:42 +0900)]
updated README
Change-Id: Ie90c9db06824ce2028e35969b777e5d582018d58
Hermet Park [Wed, 16 Sep 2020 10:32:43 +0000 (19:32 +0900)]
Update README.md
updated sample code
Change-Id: I9af0929d93da1d768876f4d02852dc8111ee9cc6
Hermet Park [Wed, 16 Sep 2020 10:00:19 +0000 (19:00 +0900)]
capi: code refactoring (#58)
* capi: refactoring code.
init/term method allows mixing enum values,
we don't need to call them separatetly.
Change-Id: I900137b5578173895ba695c86703ee0035f19e69
Hermet Park [Wed, 16 Sep 2020 08:53:24 +0000 (17:53 +0900)]
capi: correct interfaces.
put missing const parameter and correct set/get naming.
attention, these two apis are changed!
tvg_gradient_color_stops() => tvg_gradient_set_color_stops()
tvg_gradient_spread() = tvg_gradient_set_spread()
Change-Id: I309b973b8e88bdf33232f95e5da30061b9c2a22b
Piotr Kalota [Tue, 15 Sep 2020 12:06:05 +0000 (14:06 +0200)]
bindings/capi: Added path getters + test in testCapi.c
Change-Id: I5ce453509d16c06f5649f08fcd2d16414e7e0f18
Hermet Park [Wed, 16 Sep 2020 02:22:54 +0000 (11:22 +0900)]
bin svg2png: revise
abe7187f5bd3041609ee27b8637b6d55d7353bf0
revise previous patch code.
1. turned off it in default.
2. + copyright declaration.
3. fix coding convention.
Change-Id: I52577a21240a2abec3ee9a99c0f6614740d65540
JunsuChoi [Wed, 16 Sep 2020 02:11:50 +0000 (11:11 +0900)]
ThorVG/Utils: Convert svg to png (#8)
* thorVG/example: added thorVG example app to convert svg to png
Rasterazing the svg file and extracting it as a png file.
The png encoder uses the 'lodepng' library.
(https://lodev.org/lodepng/)
Usage:
svg2png [svgFileName] [Resolution] [bgColor]
Examples:
$ svg2png input.svg
$ svg2png input.svg 200x200
$ svg2png input.svg 200x200 ff00ff
* ThorVG/Utils: Change examples to utils
* ThorVG/Utils: Move svg2png from util to src/bin
Renamed the build option for svg2png.
Change-Id: Ifa4f3bfc94c1df2f6e207b07ad523a882e754886
Michal Szczecinski [Tue, 15 Sep 2020 06:29:32 +0000 (08:29 +0200)]
bindings/capi: Added stroke/gradient getters.
Change-Id: I2b08b9f8867baa4614274c7848e599690c321215
Hermet Park [Tue, 15 Sep 2020 03:35:52 +0000 (12:35 +0900)]
common: fix compiler warnings.
Change-Id: I4462c9ed073e8ed4ae777e21a57f00481406b931
warning: some methods overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
Hermet Park [Tue, 15 Sep 2020 03:29:54 +0000 (12:29 +0900)]
sw_engine: fix build warning
Change-Id: I5c5e7bcb4e038b10193a02517b9f7598d48154eb
warning: absolute value function 'fabsf' given an argument of type 'double' but has parameter of type 'float' which may cause truncation of value [-Wabsolute-value]
Hermet Park [Tue, 15 Sep 2020 03:26:57 +0000 (12:26 +0900)]
sw_engine: code refactoring.
removed unused macro.
Change-Id: I894050103e4c4a939da4f4cb526759a40a9ccd58
JunsuChoi [Tue, 15 Sep 2020 02:39:08 +0000 (11:39 +0900)]
SvgLoader: Fix wrong display when dasharray size is 1
If dash array size is 1, it means that dash and gap size are the same.
Change-Id: I40efd6e9152bee013d735a131cbfe5bde65e3783
JunsuChoi [Mon, 14 Sep 2020 11:54:55 +0000 (20:54 +0900)]
Update README.md
Add build status
Change-Id: Iddc00e94cf865878153a8f445102f437dd51a9f1
JunsuChoi [Mon, 14 Sep 2020 11:50:09 +0000 (20:50 +0900)]
Add travis ci build
Change-Id: Iabe0669b1b55f8cdb1c851b7252a6c768e934bdf
Hermet Park [Fri, 11 Sep 2020 10:49:22 +0000 (19:49 +0900)]
Update README.md
Fix typo
Change-Id: If5af278c08d84b7bb183dda61f3426b16272bfbf
Mira Grudzinska [Thu, 10 Sep 2020 11:48:06 +0000 (13:48 +0200)]
SvgLoader: Fixing issues with a A/a command
Cmd 'A' from an svg path should not be connected with any other commands via the control points.
Change-Id: I3ef798693660263f16a74d9f068b341f78ecee6e
Mira Grudzinska [Wed, 9 Sep 2020 21:31:30 +0000 (23:31 +0200)]
svg_loader: fixing issue with parsing an svg path (A/a cmd)
The large_arc and sweep flags should be type checked and
whether their value is 1 or 0.
Change-Id: Ia122cd651e8efab06e68cd45cfa252eedbb0e848
Hermet Park [Fri, 11 Sep 2020 02:15:00 +0000 (11:15 +0900)]
updated AUTHORS
Change-Id: I20ae1591ed854d57eed1063a0ecdc481de86b562
JunsuChoi [Thu, 10 Sep 2020 11:13:31 +0000 (20:13 +0900)]
SvgLoader: Fix missing doc.gradients update
When both <defs> and <svg> gradients are declared,
the update of gradient declared in <svg> is omitted.
Therefore, this patch fixes any missing gradient updates.
Change-Id: I21f5c31dbc679f8308e19c17bf942b23c4b2bebe
JunsuChoi [Thu, 10 Sep 2020 10:00:16 +0000 (19:00 +0900)]
SvgLoader: Modify calculation formula of linear gradient matrix
When there is a matrix of linear gradient, the applied formula is this.
= T(x - cx, y - cy) x g->transform x T(cx, cy)
This patch has modified this formula to work properly.
Change-Id: I861b796f5c0b375a318e444446eff82a0e922e8a
Hermet Park [Thu, 10 Sep 2020 06:28:44 +0000 (15:28 +0900)]
sw_engine: code refactoring.
use macro for single maintenance.
Change-Id: I8a76b5f13abc371cd1f9fa3c9d797becc294f0b2
Mira Grudzinska [Tue, 8 Sep 2020 13:30:41 +0000 (15:30 +0200)]
sw_engine: the check if the stroke width > 0 after conversion its value from float to long
During stroke width interpolation, if the width value after conversion
to long was 0, the bbox size was undefined.
Change-Id: I9425b9c16665bdb8346bd00092f73c109cbf9fb9
Hermet Park [Thu, 10 Sep 2020 01:53:44 +0000 (10:53 +0900)]
Update README.md
Change-Id: I44554322cdca1b716459d197b60e576d0cb81861
JunsuChoi [Wed, 9 Sep 2020 10:36:15 +0000 (19:36 +0900)]
SvgLoader: Supports case when only rx or ry is declared
In relation to the declaration of rx and ry attribute of rect, the following three cases occur.
rx="10" (or ry="10"
rx="10" ry = "0" (or rx="0" ry = "10")
rx="10" ry = "10"
To cover these case, we check the rx and ry declarations.
Change-Id: Ibf1d258a093319ce21b2b907eee58f2a45f17352
Hermet Park [Wed, 9 Sep 2020 02:11:24 +0000 (11:11 +0900)]
Update README.md
Change-Id: I82d5ff41586a65d4694b766bd5a7979e48e22ae2
Hermet Park [Wed, 9 Sep 2020 01:52:45 +0000 (10:52 +0900)]
sw_engine: fix shape rendering skip issue.
tvg canvas must draw retained shapes for every draw call
even though user missed call update() for shapes.
that case canvs must draw shapes without update,
it means drawing them within previous condition.
Change-Id: If15933bd1a04cd3c55dc04a7913f4833094b2b5d
Hermet Park [Tue, 8 Sep 2020 11:29:24 +0000 (20:29 +0900)]
changed file permission
Change-Id: Ic39e9e678584f7f46f730799d90c66b063b9817b
Hermet Park [Tue, 8 Sep 2020 06:24:00 +0000 (15:24 +0900)]
gl_engine: fix by coding convention.
A *a; (x)
A* a; (o)
A &a; (x)
A& a; (o)
Change-Id: I1b9f176293252266938920900fed04996effce7e
Pranay Kumar Samanta [Fri, 4 Sep 2020 04:56:28 +0000 (10:26 +0530)]
gl_engine: gradient implementation
Change-Id: If2413328437847d52ba1badc3b5c510fdd47ccd3
Hermet Park [Tue, 8 Sep 2020 03:27:30 +0000 (12:27 +0900)]
Update README.md
Change-Id: Ib828a44f2be3876e47d6aa826c2950817ad7b207
Hermet Park [Tue, 8 Sep 2020 03:26:23 +0000 (12:26 +0900)]
Update README.md
updated logo.
Change-Id: I1bcf3dddecd368247ea60782b5fc9ca09ae0f1fe
Hermet Park [Sat, 5 Sep 2020 10:49:05 +0000 (19:49 +0900)]
svg_loader: refactoring code.
merge loader class with task to simplfy code.
Change-Id: I89953b8842d061503caefe6932d515ce2ae54063
Hermet Park [Mon, 7 Sep 2020 08:57:41 +0000 (17:57 +0900)]
svg_loader: remove dead code.
default covers all left enumeration values.
Change-Id: I917d49a10be00ba9e8aab7a6a9cd3826ca43fddb
Hermet Park [Mon, 7 Sep 2020 08:40:39 +0000 (17:40 +0900)]
sw_engine: fix memory leak.
free resources properly at exceptional case.
Change-Id: Ie6c35f4b3dcb5c25fca945ea0bb4cbcb8aa52a8e
Hermet Park [Mon, 7 Sep 2020 05:12:07 +0000 (14:12 +0900)]
Update README.md
Change-Id: I07f601da6e86fe32df4772babc8d2637958177cf
Hermet Park [Mon, 7 Sep 2020 05:08:14 +0000 (14:08 +0900)]
README: introduced our new logo.
Change-Id: I41f8f973b33eefe21515317a8ddacd1c32749d7a
Hermet Park [Sat, 5 Sep 2020 10:05:17 +0000 (19:05 +0900)]
test: +++ missing test file.
Change-Id: Ib7459b9a31342a144f5bd708a73dd328d2a6bd24
Hermet Park [Sat, 5 Sep 2020 09:33:23 +0000 (18:33 +0900)]
common: fix context corruption among the multiple canvases.
previous implementation didn't consider multiple canvases,
multiple canvas shared one renderer engine that brought corrupted contexts.
Thus, each canvas instances should have designated renderer engine instances.
Now fixed.
Change-Id: I2649d55c4ba3bd44853006332b2ee83096906abe
Hermet Park [Sat, 5 Sep 2020 05:26:56 +0000 (14:26 +0900)]
Update README.md
Update Sample code
Change-Id: I62cc381f06df664182cf304f4846328b26199fa4
JunsuChoi [Fri, 4 Sep 2020 10:34:28 +0000 (19:34 +0900)]
SvgLoader: Add Mask, ClipPath nodees as dummy.
Mask and clippath TAG are not supported yet.
If this TAG is used, the Child TAG declared with this TAG may cause problems.
To prevent that, declare them as Unknown types until they are supported. (display=none)
Change-Id: I0afac47d4e0bda92e7caa2234e605060d6cab901
JunsuChoi [Fri, 4 Sep 2020 07:26:12 +0000 (16:26 +0900)]
SvgLoader: Support DashArray attribute for stroke
It supports stroke-dasharray, one of the stroke properties of svg.
https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dasharray
Change-Id: Ief1317f56ec707e2a696fcbf355af805e4f041c5
JunsuChoi [Fri, 4 Sep 2020 05:00:08 +0000 (14:00 +0900)]
SvgLoader: Fix memory leak for loader's gradient
Release the memory that was not released.
Change-Id: I33cd35d69e7a363ebd3292b01fe69aedc04a81f3
JunsuChoi [Fri, 4 Sep 2020 04:56:24 +0000 (13:56 +0900)]
SvgLoader: Add null check
Since the pointer actually used inside the if condition is loader->def,
add a null check for this.
Change-Id: I5578553fcfef42b04d02bb0c6de012e5e0f586f2
JunsuChoi [Fri, 4 Sep 2020 04:53:36 +0000 (13:53 +0900)]
SvgLoaderCommon: Add initialization in SvgVector
A segfault occurs when calling clear() a list without push.
This patch prevents it.
Change-Id: Ifb238def28990c2ac9621affadf23803a5e01fb2
JunsuChoi [Fri, 4 Sep 2020 03:23:20 +0000 (12:23 +0900)]
SvgLoader: Gradient use non-premultipied color
Follow color policy of tvg:Shape.
Change-Id: Id99f2e3dcfb3cdb245ba5ab947c997cc87b7ce41
Hermet Park [Fri, 4 Sep 2020 03:12:18 +0000 (12:12 +0900)]
sw_engine: step backward optimization.
As profiled, raster parallelization is not so efficient,
we revert this behavior.
We will come again with a better fine-tuned method.
Change-Id: I53ffb683c1b4e7d3be8d01ae79a1f8e9ac5c5019
JunsuChoi [Fri, 4 Sep 2020 03:11:08 +0000 (12:11 +0900)]
SvgLoader: Use non-premultipied color
Follow color policy of tvg:Shape.
Change-Id: I282c45de62225c01547988ec019cf31146524167
Hermet Park [Fri, 4 Sep 2020 02:47:16 +0000 (11:47 +0900)]
svg_loader: prevent dangling node in exception case.
We prefer the independent unit function behavior.
Change-Id: I1653e9cc0d8a8f3d7d2136a28151636d2c07530d
JunsuChoi [Fri, 4 Sep 2020 01:28:54 +0000 (10:28 +0900)]
SvgLoader: Remove unnecessary declaration
This declaration is no longer needed,
removing unnecessary actions.(
69e8b54be2467f17418b84c8bc5819dce92a36b2)
Change-Id: Iac2d80ec420e8e9a3010c6ea7fd83f4416d4e05e
JunsuChoi [Thu, 3 Sep 2020 10:18:49 +0000 (19:18 +0900)]
SvgLoader: Do not delete the cloned node
Reverted incorrectly modified code in
3b9bb51321bb9b6aa5aba78ac984915a8eb9d854.
The newly created node becomes a child of the parent parameter
and is deleted together when parsing ends.
Change-Id: I3043e6f115dca83dbcf21c7ec43946eb75b2812e
JunsuChoi [Thu, 3 Sep 2020 10:18:12 +0000 (19:18 +0900)]
SvgLoader: Fix pointing to wrong parent
If defs type is open empty style, it is not included in stack.
Change-Id: I208fdbd86e47862e5b57f517aff5e34ee4dba91f
JunsuChoi [Wed, 2 Sep 2020 08:10:50 +0000 (17:10 +0900)]
SvgLoader: Prevent underflow when stack.cnt is 0
If graphic node is directly located in the <svg>(root) node,
it may cause underflow because stack.cnt is 0.
Change-Id: I04b8aac9354cb33a9e7b5d277e6681fbcecce975
JunsuChoi [Wed, 2 Sep 2020 07:05:06 +0000 (16:05 +0900)]
SvgLoader: Defs type nodes are not saved in loader's node list.
If there is an empty (unused) <defs /> inside the svg file, this can cause problems.
<defs> node is managed separately in loader->def.
So it doesn't have to be added to loader's list.
Change-Id: Ic5d9e2ac247dd9ad022f9f7403b71c17537a557d
Michal Szczecinski [Tue, 1 Sep 2020 07:38:07 +0000 (09:38 +0200)]
bindings/capi: Check invalid parameters in capi.
Added checks to capi bindings to avoid crash when api is used
with invalid parameters.
Change-Id: Id141b8448730bea7a23b9a5bebe0fe33b734e2bd
Hermet Park [Tue, 1 Sep 2020 11:13:07 +0000 (20:13 +0900)]
svg_loader: fix vector memory leaks.
vector is designed for c++ syntaxes,
it works properly when c++ memory allocator is applied,
Here svg_loader uses c style structures which allocated using malloc()/calloc().
That brings the memory broken of stl vectors.
So, we replaced it with our customized SvgVector to easily fix it.
Change-Id: Iccf5090b13322671893bb8b185bba6d8253e96f5
Hermet Park [Tue, 1 Sep 2020 11:40:18 +0000 (20:40 +0900)]
test async: fix wrong time unit.
Change-Id: I2ea2b2e6176cc3384bdfe2b5f96b7ee1dc42d93f
Hermet Park [Tue, 1 Sep 2020 10:47:33 +0000 (19:47 +0900)]
canvas: fix memory leak.
call flush() to make engine sure working done before canvas is terminated.
Change-Id: I5769557801802ab3eb0868d2b6881aa053074bb1
Hermet Park [Tue, 1 Sep 2020 06:42:33 +0000 (15:42 +0900)]
svg_loader: code refactoring
revise code for simple & better readibility.
Change-Id: Idb20ac6c05b8dcd451a1627d796bf422f6d9d39f
Hermet Park [Fri, 28 Aug 2020 10:16:01 +0000 (19:16 +0900)]
sw_engine: fix memory leak.
free dash outline stroke data memory properly.
Change-Id: I25bebc38c2d6d7f69d04f6288a5b6863324b70d6
Hermet Park [Fri, 28 Aug 2020 09:55:03 +0000 (18:55 +0900)]
capi: fix memory leak.
Here canvas type should be explicitly defined,
it deleted its instance as a Canvas.
Change-Id: I85664462cad675ba537a3e79f02ccd6f263f613b
Hermet Park [Fri, 28 Aug 2020 05:03:38 +0000 (05:03 +0000)]
Merge "tvgShape: fixed missing check in Shape::fill" into tizen
Hermet Park [Fri, 28 Aug 2020 02:28:59 +0000 (11:28 +0900)]
sw_engine: + exceptional handling for safety
Change-Id: I3ee6ca40590c5af5fd7243f419eaf96197ba757b
Mateusz Palkowski [Wed, 26 Aug 2020 09:26:40 +0000 (11:26 +0200)]
tvgShape: fixed missing check in Shape::fill
Without this check, setting same fill twice results in crash later.
Change-Id: I38e7026c52a250f65923c4e3008868ed471bf885
Hermet Park [Wed, 26 Aug 2020 07:39:10 +0000 (16:39 +0900)]
sw_engine: applied async rasterizing based on task scheduler.
Now, we have 2 points for asynchronous behaviors.
1. update shapes:
Each shape update will be performed by async when you push shape to canvas.
Meaning, if you have time gap between update and rendering in process main-loop,
you can have a benefit by this.
2. rasterization by canvas:
Canvas.draw() will be performed asynchnously until you call canvas.sync();
Meaing, if you can trigger tvg rendering eariler than composition time.
You can have a benefit by this.
If these 1, 2 points might not work for your program,
You can just toggle off async by setting threads number zero at initialization.
Or if you could apply either point of them for your program,
It might be good for performance.
But the best approach is to make both async properly.
Though this might need to fine-grained tuning integration between your program & tvg,
You could achieve the best peformance by parallelzing tasks as possible without any jobs delaying.
Change-Id: I04f9a61ebb426fd897624f5b24c83841737e6b5b
Mira Grudzinska [Mon, 24 Aug 2020 21:31:50 +0000 (23:31 +0200)]
SwRenderer: fixing unnecessary nesting in prepare()
Validating the above by adding shape/canvas update to testCapi.cpp
Change-Id: I7db8d014f4aff7b5b2884c2dca5af119329e9d43
Hermet Park [Fri, 21 Aug 2020 12:13:39 +0000 (21:13 +0900)]
svg_loader: applied asynchronous threads tasks for optimal performance.
Change-Id: I6575a6a6302c0ae52d1256a5f79f4c080002a4aa
Shinwoo Kim [Mon, 24 Aug 2020 08:06:26 +0000 (17:06 +0900)]
taskscheduler: initialize member correctly
This patch will fix runtime crash caused by incorrect init variables.
Hermet Park [Mon, 24 Aug 2020 05:45:36 +0000 (14:45 +0900)]
Update README.md
update gitter channel address.
Subhransu Mohanty [Fri, 21 Aug 2020 07:53:56 +0000 (16:53 +0900)]
meson: added compiler flags to optimize binary size
this reduced library size from 153KB to 119KB.
Change-Id: Ie70e5412b42d864fbaa827eec21b3cbc1e8f26af
Hermet Park [Fri, 21 Aug 2020 06:56:04 +0000 (15:56 +0900)]
common initializer: don't try initialize engine duplicatedly.
Change-Id: I58c715745b8db40fe759582545082f2e6e10626a