platform/core/graphics/tizenvg.git
4 years agocapi: correct interfaces.
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

4 years agobindings/capi: Added path getters + test in testCapi.c
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

4 years agobin svg2png: revise abe7187f5bd3041609ee27b8637b6d55d7353bf0
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

4 years agoThorVG/Utils: Convert svg to png (#8)
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

4 years agobindings/capi: Added stroke/gradient getters.
Michal Szczecinski [Tue, 15 Sep 2020 06:29:32 +0000 (08:29 +0200)]
bindings/capi: Added stroke/gradient getters.

Change-Id: I2b08b9f8867baa4614274c7848e599690c321215

4 years agocommon: fix compiler warnings.
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]

4 years agosw_engine: fix build warning
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]

4 years agosw_engine: code refactoring.
Hermet Park [Tue, 15 Sep 2020 03:26:57 +0000 (12:26 +0900)]
sw_engine: code refactoring.

removed unused macro.

Change-Id: I894050103e4c4a939da4f4cb526759a40a9ccd58

4 years agoSvgLoader: Fix wrong display when dasharray size is 1
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

4 years agoUpdate README.md
JunsuChoi [Mon, 14 Sep 2020 11:54:55 +0000 (20:54 +0900)]
Update README.md

Add build status

Change-Id: Iddc00e94cf865878153a8f445102f437dd51a9f1

4 years agoAdd travis ci build
JunsuChoi [Mon, 14 Sep 2020 11:50:09 +0000 (20:50 +0900)]
Add travis ci build

Change-Id: Iabe0669b1b55f8cdb1c851b7252a6c768e934bdf

4 years agoUpdate README.md
Hermet Park [Fri, 11 Sep 2020 10:49:22 +0000 (19:49 +0900)]
Update README.md

Fix typo

Change-Id: If5af278c08d84b7bb183dda61f3426b16272bfbf

4 years agoSvgLoader: Fixing issues with a A/a command
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

4 years agosvg_loader: fixing issue with parsing an svg path (A/a cmd)
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

4 years agoupdated AUTHORS accepted/tizen/unified/20200914.131341 submit/tizen/20200913.215058
Hermet Park [Fri, 11 Sep 2020 02:15:00 +0000 (11:15 +0900)]
updated AUTHORS

Change-Id: I20ae1591ed854d57eed1063a0ecdc481de86b562

4 years agoSvgLoader: Fix missing doc.gradients update
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

4 years agoSvgLoader: Modify calculation formula of linear gradient matrix
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

4 years agosw_engine: code refactoring.
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

4 years agosw_engine: the check if the stroke width > 0 after conversion its value from float...
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

4 years agoUpdate README.md
Hermet Park [Thu, 10 Sep 2020 01:53:44 +0000 (10:53 +0900)]
Update README.md

Change-Id: I44554322cdca1b716459d197b60e576d0cb81861

4 years agoSvgLoader: Supports case when only rx or ry is declared
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

4 years agoUpdate README.md
Hermet Park [Wed, 9 Sep 2020 02:11:24 +0000 (11:11 +0900)]
Update README.md

Change-Id: I82d5ff41586a65d4694b766bd5a7979e48e22ae2

4 years agosw_engine: fix shape rendering skip issue.
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

4 years agochanged file permission
Hermet Park [Tue, 8 Sep 2020 11:29:24 +0000 (20:29 +0900)]
changed file permission

Change-Id: Ic39e9e678584f7f46f730799d90c66b063b9817b

4 years agogl_engine: fix by coding convention.
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

4 years agogl_engine: gradient implementation 25/243225/3
Pranay Kumar Samanta [Fri, 4 Sep 2020 04:56:28 +0000 (10:26 +0530)]
gl_engine: gradient implementation

Change-Id: If2413328437847d52ba1badc3b5c510fdd47ccd3

4 years agoUpdate README.md
Hermet Park [Tue, 8 Sep 2020 03:27:30 +0000 (12:27 +0900)]
Update README.md

Change-Id: Ib828a44f2be3876e47d6aa826c2950817ad7b207

4 years agoUpdate README.md
Hermet Park [Tue, 8 Sep 2020 03:26:23 +0000 (12:26 +0900)]
Update README.md

updated logo.

Change-Id: I1bcf3dddecd368247ea60782b5fc9ca09ae0f1fe

4 years agosvg_loader: refactoring code.
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

4 years agosvg_loader: remove dead code.
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

4 years agosw_engine: fix memory leak.
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

4 years agoUpdate README.md
Hermet Park [Mon, 7 Sep 2020 05:12:07 +0000 (14:12 +0900)]
Update README.md

Change-Id: I07f601da6e86fe32df4772babc8d2637958177cf

4 years agoREADME: introduced our new logo.
Hermet Park [Mon, 7 Sep 2020 05:08:14 +0000 (14:08 +0900)]
README: introduced our new logo.

Change-Id: I41f8f973b33eefe21515317a8ddacd1c32749d7a

4 years agotest: +++ missing test file. accepted/tizen/unified/20200907.045053 submit/tizen/20200906.212734
Hermet Park [Sat, 5 Sep 2020 10:05:17 +0000 (19:05 +0900)]
test: +++ missing test file.

Change-Id: Ib7459b9a31342a144f5bd708a73dd328d2a6bd24

4 years agocommon: fix context corruption among the multiple canvases.
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

4 years agoUpdate README.md
Hermet Park [Sat, 5 Sep 2020 05:26:56 +0000 (14:26 +0900)]
Update README.md

Update Sample code

Change-Id: I62cc381f06df664182cf304f4846328b26199fa4

4 years agoSvgLoader: Add Mask, ClipPath nodees as dummy.
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

4 years agoSvgLoader: Support DashArray attribute for stroke
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

4 years agoSvgLoader: Fix memory leak for loader's gradient
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

4 years agoSvgLoader: Add null check
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

4 years agoSvgLoaderCommon: Add initialization in SvgVector
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

4 years agoSvgLoader: Gradient use non-premultipied color
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

4 years agosw_engine: step backward optimization.
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

4 years agoSvgLoader: Use non-premultipied color
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

4 years agosvg_loader: prevent dangling node in exception case.
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

4 years agoSvgLoader: Remove unnecessary declaration
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

4 years agoSvgLoader: Do not delete the cloned node
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

4 years agoSvgLoader: Fix pointing to wrong parent
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

4 years agoSvgLoader: Prevent underflow when stack.cnt is 0
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

4 years agoSvgLoader: Defs type nodes are not saved in loader's node list.
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

4 years agobindings/capi: Check invalid parameters in capi.
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

4 years agosvg_loader: fix vector memory leaks.
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

4 years agotest async: fix wrong time unit. submit/tizen/20200901.214039
Hermet Park [Tue, 1 Sep 2020 11:40:18 +0000 (20:40 +0900)]
test async: fix wrong time unit.

Change-Id: I2ea2b2e6176cc3384bdfe2b5f96b7ee1dc42d93f

4 years agocanvas: fix memory leak.
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

4 years agosvg_loader: code refactoring 52/242852/2
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

4 years agosw_engine: fix memory leak. submit/tizen/20200830.214225
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

4 years agocapi: fix memory leak.
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

4 years agoMerge "tvgShape: fixed missing check in Shape::fill" into tizen
Hermet Park [Fri, 28 Aug 2020 05:03:38 +0000 (05:03 +0000)]
Merge "tvgShape: fixed missing check in Shape::fill" into tizen

4 years agosw_engine: + exceptional handling for safety
Hermet Park [Fri, 28 Aug 2020 02:28:59 +0000 (11:28 +0900)]
sw_engine: + exceptional handling for safety

Change-Id: I3ee6ca40590c5af5fd7243f419eaf96197ba757b

4 years agotvgShape: fixed missing check in Shape::fill 97/242397/1
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

4 years agosw_engine: applied async rasterizing based on task scheduler.
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

4 years agoSwRenderer: fixing unnecessary nesting in prepare() 36/242236/3
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

4 years agosvg_loader: applied asynchronous threads tasks for optimal performance. 39/242039/6
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

4 years agotaskscheduler: initialize member correctly
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.

4 years agoUpdate README.md
Hermet Park [Mon, 24 Aug 2020 05:45:36 +0000 (14:45 +0900)]
Update README.md

update gitter channel address.

4 years agomeson: added compiler flags to optimize binary size 93/241993/1
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

4 years agocommon initializer: don't try initialize engine duplicatedly. 64/241964/1 accepted/tizen/unified/20200824.134426 submit/tizen/20200823.213148
Hermet Park [Fri, 21 Aug 2020 06:56:04 +0000 (15:56 +0900)]
common initializer: don't try initialize engine duplicatedly.

Change-Id: I58c715745b8db40fe759582545082f2e6e10626a

4 years agocommon taskscheduler: revise functionalities. 48/241448/10
Hermet Park [Thu, 20 Aug 2020 08:04:32 +0000 (17:04 +0900)]
common taskscheduler: revise functionalities.

initialization interfaces has been changed for threads count.

if you want to set concrete threads count by system, please specify thread count with it.

std threads:
tvg::Initializer::init(tvg::CanvasEngine::Sw, std::thread::hardware_concurrency());

if your system provides designed threads info, you can use it.

efl:
tvg_engine_init(TVG_ENGINE_SW, eina_cpu_count());

I recommend to avoid max threads usage for better performance.

Change-Id: I22cfa315768f73fa941be136956cdbb2cf837c20

4 years agoupdated AUTHORS
Hermet Park [Thu, 20 Aug 2020 08:52:11 +0000 (17:52 +0900)]
updated AUTHORS

Change-Id: Ie0bb862f8ba20e682bf3bb7469455fa52a5d5498

4 years agosvg path: changes in processing cmds T,Q,S 67/240567/4
Mira Grudzinska [Sun, 16 Aug 2020 13:23:42 +0000 (15:23 +0200)]
svg path: changes in processing cmds T,Q,S

Change-Id: I979bb8cbcbdd4fd1374205feac6acedc58bdd3e1

4 years agoMerge "tvg: added task support that runs on a threadpool." into tizen
Hermet Park [Thu, 20 Aug 2020 08:02:07 +0000 (08:02 +0000)]
Merge "tvg: added task support that runs on a  threadpool." into tizen

4 years agocode refactoring 40/241440/1
Hermet Park [Thu, 20 Aug 2020 07:16:46 +0000 (16:16 +0900)]
code refactoring

remove unnecessary condition.
implementation won't be included multiple times not like headers.

Thus this condition is unnecessary.

Change-Id: Id37e675c40ce7213a06c950da8e5ca17ff7245c9

4 years agosw_engine: fix loss of data when it's converting. 14/241414/1
Hermet Park [Thu, 20 Aug 2020 03:18:51 +0000 (12:18 +0900)]
sw_engine: fix loss of data when it's converting.

if SwCoord type is determined to 4byte,
it could lose remarkable value that occur stroking jiggling.

This fixes the issue.

Change-Id: Ib2fed2a3bfc9188a30522f35837439364d446a73

4 years agosw_engine: replace rgba8888 with abgr8888 46/241346/4
Hermet Park [Wed, 19 Aug 2020 09:32:32 +0000 (18:32 +0900)]
sw_engine: replace rgba8888 with abgr8888

Actually Dali rendering system requires abgr8888.

We could add more colorspaces if it's necessary.

Change-Id: Ia42a6575d1313629e55efc3077e302992c47b6c0

4 years agocode refactoring 03/241303/2
Hermet Park [Wed, 19 Aug 2020 05:50:49 +0000 (14:50 +0900)]
code refactoring

Now, stabilizing is pretty enough.

Remove assert code so that we never abort process in any cases.
This also reduce the binary size.

Change-Id: Ia7d2d5c5a0757b12481eaebad7a86aade6a89c1e

4 years agoremove print/cout logs. 96/241196/1
Hermet Park [Tue, 18 Aug 2020 11:35:13 +0000 (20:35 +0900)]
remove print/cout logs.

we need a comprehensive logging interface for this.

right now, leave as "LOG:" to replace later.

Change-Id: I25321223cd48ec13a1de5e4140cfea75a2f42866

4 years agosw_engine: code refactoring 95/241195/3
Hermet Park [Tue, 18 Aug 2020 11:19:31 +0000 (20:19 +0900)]
sw_engine: code refactoring

introduce compositor table for runtime colorspace switching.

Change-Id: If179d1e1625f995e114d66cf1bf13742c54ed4f7

4 years agosw_engine: convert colorspace ARGB -> RGBA in default. 12/241112/5
Hermet Park [Sat, 15 Aug 2020 07:29:46 +0000 (16:29 +0900)]
sw_engine: convert colorspace ARGB -> RGBA in default.

We can use RGBA colorspace rather ARGB for pixel data.
This would be better for many rendering system,
since it's more widely preferred than ARGB including opengl.

Change-Id: Ibbfe6a511d77bf0ef30ce261995467c11164d306

4 years agopicture svg: introduce load() with memory data input source. 86/241086/2 accepted/tizen/unified/20200820.034622 submit/tizen/20200817.223215
Hermet Park [Fri, 14 Aug 2020 10:35:39 +0000 (19:35 +0900)]
picture svg: introduce load() with memory data input source.

picture now affords the memory data as input source so that
user can pass svg data memory directly.

Change-Id: I246c09b682a2d60e53ad556ce0c90337142ee4f1

4 years agocommon initializer: introduce thread count api. 79/241079/2
Hermet Park [Fri, 14 Aug 2020 09:51:38 +0000 (18:51 +0900)]
common initializer: introduce thread count api.

this interface controls the number of threads working behind.

default is 0 == only syncrhonous.

Change-Id: I8404f33359e6213acc5e578061568fede50cd9a6

4 years agoloader svg: code refactoring. 78/241078/2
Hermet Park [Fri, 14 Aug 2020 09:47:03 +0000 (18:47 +0900)]
loader svg: code refactoring.

renamed svg loader path.

Change-Id: I0219721540ea981d15d17b9571c1ee9b37651fb8

4 years agodisable gl_engine in default. 75/241075/1
Hermet Park [Fri, 14 Aug 2020 08:44:17 +0000 (17:44 +0900)]
disable gl_engine in default.

We don't include gl compile before it works properly.

For development & test please turn it on in meson_option.txt locally.

Change-Id: I2ff8b06f8e1b496922f70ec580662e8886a9b93d

4 years agoremove std async usage. 04/241004/11
Hermet Park [Thu, 13 Aug 2020 11:39:34 +0000 (20:39 +0900)]
remove std async usage.

we can't control any threads count that could drop the performance.

remove async() and will come back with fine-tuned threading-pool.

Change-Id: I17c39792234acfce6db334abc0ce12da23978a9a

4 years agotvg: added task support that runs on a threadpool. 39/240939/2
Subhransu Mohanty [Thu, 13 Aug 2020 04:01:53 +0000 (13:01 +0900)]
tvg: added task support that runs on a  threadpool.

this patch adds an async() function that takes a shared_task
and runs asyncronously in a threadpool.

Change-Id: I02a47df6938656828f924fbf5e2bc075073b329b

4 years agocommon: code refactoring. 99/240999/1 submit/tizen/20200813.110752
Hermet Park [Thu, 13 Aug 2020 11:05:37 +0000 (20:05 +0900)]
common: code refactoring.

we can return nullptr directly here.

Change-Id: Ic1d987f2701d20ff1b69af2854f9cfee7e2fe065

4 years agogl_engine: engine should return shape data for resuing it. 96/240996/2
Hermet Park [Thu, 13 Aug 2020 10:59:01 +0000 (19:59 +0900)]
gl_engine: engine should return shape data for resuing it.

Change-Id: I45f7ecbdb707b0751894e01d273b149402e089af

4 years agosw_engine: fix potential data overflow. 95/240995/1
Hermet Park [Thu, 13 Aug 2020 10:50:46 +0000 (19:50 +0900)]
sw_engine: fix potential data overflow.

Change-Id: Ie800fda74d44ad3741f7a92f12681f7f753ee50c

4 years agosvg_loader: free allocated data properly. 91/240991/2
Hermet Park [Thu, 13 Aug 2020 10:41:34 +0000 (19:41 +0900)]
svg_loader: free allocated data properly.

also renamed internal function for consistency.

createNode()
cloneNode()
freeSVGNode() ?

Change-Id: Ie9b22e92d5e918e947f8476ad0d4682fc7a3be65

4 years agosw_engine: remove unnecessary assert() call 87/240987/1
Hermet Park [Thu, 13 Aug 2020 10:29:23 +0000 (19:29 +0900)]
sw_engine: remove unnecessary assert() call

Change-Id: I8cb249b6b7f32992f7ce9c86e408546c14856330

4 years agosw_engine: fix data overflow case. 86/240986/1
Hermet Park [Thu, 13 Aug 2020 10:27:02 +0000 (19:27 +0900)]
sw_engine: fix data overflow case.

Change-Id: I01f90a8a6b3bca38142c8c16d1990b5b1a09d081

4 years agosw_engine renderer: initialize member data in default. 84/240984/1
Hermet Park [Thu, 13 Aug 2020 10:15:33 +0000 (19:15 +0900)]
sw_engine renderer: initialize member data in default.

static analizyer bothers us due to this.
we'd rather initialize members for free of them.

Change-Id: I23b769b94be7514a8bf6e6d683ddb90b3cd613c4

4 years agocommon: code refactoring. 83/240983/1
Hermet Park [Thu, 13 Aug 2020 10:13:17 +0000 (19:13 +0900)]
common: code refactoring.

we can return nullptr directly here.

Change-Id: I35e04dc9850b3b3b75e1e02b4c81a61b79f2c43f

4 years agosvg_loader: initialize member data in default. 82/240982/2
Hermet Park [Thu, 13 Aug 2020 10:08:34 +0000 (19:08 +0900)]
svg_loader: initialize member data in default.

static analizyer bothers us due to this.
we'd rather initialize members for free of them.

Change-Id: I6dd76427b0fe2f9ff09034fe3ab11080a8d72a2e

4 years agogl_engine renderer: initialize member data in default. 79/240979/1
Hermet Park [Thu, 13 Aug 2020 10:02:31 +0000 (19:02 +0900)]
gl_engine renderer: initialize member data in default.

static analizyer bothers us due to this.
we'd rather initialize members for free of them.

Change-Id: Ifa6ebffdfdcb31d2dd3a1d6b911226928f654e3f

4 years agosw_engine: remove unnecessary assert() call 78/240978/1
Hermet Park [Thu, 13 Aug 2020 10:00:09 +0000 (19:00 +0900)]
sw_engine: remove unnecessary assert() call

Change-Id: I7c665bab4ef867f912ea738480e6d9b2b63e014e

4 years agocommon_shape: fixed arc api to draw rectangles lower than 0. 79/240779/2
Michal Szczecinski [Tue, 11 Aug 2020 10:11:06 +0000 (12:11 +0200)]
common_shape: fixed arc api to draw rectangles lower than 0.

Absolute value is used to calculate number of bezier curves used
to approximate arc.

Change-Id: Idedd7fd73590d569417fc646fc7febdaaab65857

4 years agoreplace license from Apache 2.0 to MIT 65/240965/2
Hermet Park [Thu, 13 Aug 2020 07:50:32 +0000 (16:50 +0900)]
replace license from Apache 2.0 to MIT

Change-Id: I61f7cb2b0e407bc035f3b2ec7da9b7f230057e24

4 years agosw_engine: fix one last compile warning. 65/240465/1 accepted/tizen/unified/20200810.123122 submit/tizen/20200809.214919
Hermet Park [Thu, 6 Aug 2020 11:17:34 +0000 (20:17 +0900)]
sw_engine: fix one last compile warning.

casting to loss data in converting data type.

Change-Id: I4c9b45b1c015579807a2d44e0ff2734bd2f655f3

4 years agosvg_loader: fix compile warnings. 64/240464/1
Hermet Park [Thu, 6 Aug 2020 11:09:15 +0000 (20:09 +0900)]
svg_loader: fix compile warnings.

-- warning: moving a local object in a return statement prevents copy elision [-Wpessimizing-move]

Change-Id: I7dec55fe117d27217b7a29d5983b23cedadacb71

4 years agocommon: fix compiler warnings that loss data by mis-matched converision 63/240463/5
Hermet Park [Thu, 6 Aug 2020 10:50:44 +0000 (19:50 +0900)]
common: fix compiler warnings that loss data by mis-matched converision

these conversions are intented, we explicity use casting so that compiler doesn't
catch them anymore.

Change-Id: I9d905c7562c43929b040d034e5ee0d14c6750a80