platform/core/graphics/tizenvg.git
2 years agoexample: Modify the number of svg image examples
JunsuChoi [Mon, 25 Oct 2021 05:33:20 +0000 (14:33 +0900)]
example: Modify the number of svg image examples

Find the hidden example...

2 years agosvg_loader: requested changes applied
Mira Grudzinska [Sat, 23 Oct 2021 00:16:40 +0000 (02:16 +0200)]
svg_loader: requested changes applied

2 years agosvg_loader: gradient handling and recalculation changed
Mira Grudzinska [Sun, 10 Oct 2021 15:14:42 +0000 (17:14 +0200)]
svg_loader: gradient handling and recalculation changed

The need to convert the gradient values occurs only when they are given
as nominal values in the current user coordinate system (userSpaceOnUse).

2 years agocapi: added pointer validation
Mira Grudzinska [Fri, 22 Oct 2021 11:49:44 +0000 (13:49 +0200)]
capi: added pointer validation

2 years agodoc: updated api doc.
Hermet Park [Sat, 23 Oct 2021 02:52:10 +0000 (11:52 +0900)]
doc: updated api doc.

use @retval for the multiple return values.

2 years agosvg loader: converting the image path to the absolute one
Mira Grudzinska [Tue, 21 Sep 2021 01:11:47 +0000 (03:11 +0200)]
svg loader: converting the image path to the absolute one

The href image tag should point to an absolute image path.

2 years agowasm: update the code.
Hermet Park [Fri, 22 Oct 2021 14:21:26 +0000 (23:21 +0900)]
wasm: update the code.

Yes, now we have standard apis for getting class types,
don't need to hack it anymore.

Now, replaced the redundant id() calls with identifier()

2 years agocommon: code refactoring
Hermet Park [Fri, 22 Oct 2021 14:14:23 +0000 (23:14 +0900)]
common: code refactoring

renamed internal module name IteratorModule -> IteratorAccessor

Change-Id: Ic317e5738161e697f3dbfe1bc7b9f1fd653f03cd

2 years agotests: fill transformation tests added
Mira Grudzinska [Fri, 22 Oct 2021 10:33:50 +0000 (12:33 +0200)]
tests: fill transformation tests added

2 years agoapi: not allow the inheritance of the Saver.
Hermet Park [Fri, 22 Oct 2021 10:09:25 +0000 (19:09 +0900)]
api: not allow the inheritance of the Saver.

We missed the final keyword for the Saver,
This inheritance is out of our policy.

It might be break apis but Saver class is just opened,
and we're pretty sure that there is no any extension of this.

I know this is the bad decision, but we have a chance yet,
so we must correct it before further late.

2 years agocommon: replace the id() -> identifier()
Hermet Park [Fri, 22 Oct 2021 07:18:35 +0000 (16:18 +0900)]
common: replace the id() -> identifier()

2 years agotest: API coverage up
Hermet Park [Fri, 22 Oct 2021 06:15:33 +0000 (15:15 +0900)]
test: API coverage up

Added identifier() test cases.

2 years agocommon: Introduce class type identifier apis.
Hermet Park [Fri, 22 Oct 2021 05:39:38 +0000 (14:39 +0900)]
common: Introduce class type identifier apis.

This identifier is useful when user identify the instance type in runtime.

ThorVG basically don't prefer to dynamic_cast() nor typeid(),
it compiles with -fno-rtti option for the optimial size.

Here is an example for the simple usage.

if (paint->identifier() == Shape::identifier())
  auto shape = static_cast<Shape*>(paint);

@Issue: https://github.com/Samsung/thorvg/issues/693

2 years agocommon: Fix typo
신지예 [Fri, 22 Oct 2021 09:11:11 +0000 (18:11 +0900)]
common: Fix typo

Change-Id: Idfd45fc9eb3beb1ad720492e55888db57745aaca

2 years agopng_loader meson: Remove dependency check using find_library()
JunsuChoi [Fri, 22 Oct 2021 05:42:33 +0000 (14:42 +0900)]
png_loader meson: Remove dependency check using find_library()

meson's find_library() throws an error when the package cannot be found.
png static library is added, so it should be passed when package is not found.
Therefore, delete unnecessary find_library.

2 years agocommon: Fix typo
Ji2z [Fri, 22 Oct 2021 03:27:31 +0000 (12:27 +0900)]
common: Fix typo
Fix typo backeneds to backends

Change-Id: Idd13c3972ba2fa0fddc2a1eb706c55a9ea46674f

2 years agoupdated README.md
Hermet Park [Fri, 22 Oct 2021 03:33:07 +0000 (12:33 +0900)]
updated README.md

2 years agoUpdate README.md
Hermet Park [Fri, 22 Oct 2021 03:15:42 +0000 (12:15 +0900)]
Update README.md

2 years agodocs: updated example resource.
Hermet Park [Fri, 22 Oct 2021 03:09:32 +0000 (12:09 +0900)]
docs: updated example resource.

2 years agoloader png: support static png loader
Hermet Park [Fri, 15 Oct 2021 10:55:34 +0000 (19:55 +0900)]
loader png: support static png loader

Copied only necessary decoding functions from the lodepng opensource.
See: https://lodev.org/lodepng/

additional changes:
- disabled crc for the optimal size.
- converted the format bgr -> rgb for our png example.

Still we don't have a concrete idea for the image formats,
We should fix the converting methods between bgra <-> rgba.

@Issue: https://github.com/Samsung/thorvg/issues/594

2 years agosvg_loader: code refactoring.
Hermet Park [Thu, 21 Oct 2021 06:15:07 +0000 (15:15 +0900)]
svg_loader: code refactoring.

cast to proper value type.

2 years agosvg_loader XMLParser: Clean up parameter type
JunsuChoi [Thu, 21 Oct 2021 04:13:23 +0000 (13:13 +0900)]
svg_loader XMLParser: Clean up parameter type

size_t to unsigned int

2 years agosvg_loader XMLParser: Refacotring simpleXmlParse method
JunsuChoi [Wed, 20 Oct 2021 06:40:12 +0000 (15:40 +0900)]
svg_loader XMLParser: Refacotring simpleXmlParse method

1.
Remove macro function. The existing macro function
was doing meaningless nested `return false`.

2.
Extract the logic to find the type as a function.

3.
The SimpleXMLType::Error case is not actually used,
and in case of invalid XML, Do 'return false' immediately.

2 years agoupdated license
Hermet Park [Wed, 20 Oct 2021 13:50:07 +0000 (22:50 +0900)]
updated license

Add missing original copyright texts in the source code.

2 years agoRevert "common: Update license infomation"
Hermet Park [Wed, 20 Oct 2021 13:18:19 +0000 (22:18 +0900)]
Revert "common: Update license infomation"

This reverts commit 4c87f18345d65617a89b04347fffd1df810681fc.

Come to think of it, this is not correct.

Apply the copyright to only files from the original source code.

2 years agocommon: Update license infomation
JunsuChoi [Wed, 20 Oct 2021 07:01:43 +0000 (16:01 +0900)]
common: Update license infomation

Update LICENSE by adding BSD license.

2 years agosvg_loader: fix potential mem corruption in _idFromUrl function
Michal Maciola [Wed, 22 Sep 2021 07:48:54 +0000 (09:48 +0200)]
svg_loader: fix potential mem corruption in _idFromUrl function

This patch fixes some potential memory corruptions in _idFromUrl function
when name (url) is longer than 50 chars or is incorrectly terminated.

2 years agocommon: new api for a grad transformation
Mira Grudzinska [Mon, 11 Oct 2021 13:20:03 +0000 (15:20 +0200)]
common: new api for a grad transformation

The new apii allows to transform the gradient fill.

2 years agocommon: Fix typo
JunsuChoi [Tue, 19 Oct 2021 06:49:50 +0000 (15:49 +0900)]
common: Fix typo

2 years agocapi: example modified
Mira Grudzinska [Sun, 17 Oct 2021 23:39:54 +0000 (01:39 +0200)]
capi: example modified

2 years agosvg_loader util: fix the floating constant truncated to zero issue.
Hermet Park [Wed, 13 Oct 2021 11:15:44 +0000 (20:15 +0900)]
svg_loader util: fix the floating constant truncated to zero issue.

fyi, the minimum value of the float is 1.175494351 E-38

@Issue: https://github.com/Samsung/thorvg/issues/899

2 years agosvg_loader: fixing viewBox clipping
Mira Grudzinska [Thu, 14 Oct 2021 00:12:49 +0000 (02:12 +0200)]
svg_loader: fixing viewBox clipping

For vw=width and vh=height, vx or vy > 0 had no effect. Fixed

2 years ago[Tizen] common: Change dlog tag name for VD profile 31/265331/1
JunsuChoi [Fri, 15 Oct 2021 04:19:03 +0000 (13:19 +0900)]
[Tizen] common: Change dlog tag name for VD profile

Change-Id: Id9c8e235fe86f690b3a9dee2ea0caae954aae0bd

2 years agosvg_loader util: fix missing quot
Michal Maciola [Thu, 14 Oct 2021 15:40:31 +0000 (17:40 +0200)]
svg_loader util: fix missing quot

There was checking for 0 ('\0') that should be checking for '0'

2 years agoUpdate README.md
Hermet Park [Thu, 14 Oct 2021 07:18:46 +0000 (16:18 +0900)]
Update README.md

2 years agoUpdate README.md
Hermet Park [Thu, 14 Oct 2021 07:16:26 +0000 (16:16 +0900)]
Update README.md

2 years agoAdd files via upload
Hermet Park [Thu, 14 Oct 2021 07:16:06 +0000 (16:16 +0900)]
Add files via upload

2 years agoDelete example_tvg.png
Hermet Park [Thu, 14 Oct 2021 07:15:21 +0000 (16:15 +0900)]
Delete example_tvg.png

2 years agoAdd files via upload
Hermet Park [Thu, 14 Oct 2021 07:14:09 +0000 (16:14 +0900)]
Add files via upload

2 years agoDelete example_tvg.png
Hermet Park [Thu, 14 Oct 2021 07:13:34 +0000 (16:13 +0900)]
Delete example_tvg.png

2 years agoUpdate README.md
Hermet Park [Thu, 14 Oct 2021 07:12:36 +0000 (16:12 +0900)]
Update README.md

2 years agoAdd files via upload
Hermet Park [Thu, 14 Oct 2021 07:12:04 +0000 (16:12 +0900)]
Add files via upload

2 years agoDelete example_tvg.png
Hermet Park [Thu, 14 Oct 2021 07:11:37 +0000 (16:11 +0900)]
Delete example_tvg.png

2 years agoinfra: add "all" option for tools.
Hermet Park [Wed, 13 Oct 2021 11:24:21 +0000 (20:24 +0900)]
infra: add "all" option for tools.

just for developer convenience.

2 years agocapi: change defines to enum
Mira Grudzinska [Thu, 14 Oct 2021 00:32:35 +0000 (02:32 +0200)]
capi: change defines to enum

Tvg_Engine enum introduced to replace TVG_ENGINE_SW/GL defs.

2 years agotests: saver capis added into the tests
Mira Grudzinska [Wed, 13 Oct 2021 11:46:41 +0000 (13:46 +0200)]
tests: saver capis added into the tests

2 years agowasm: saveTvg add compress option
Michal Maciola [Wed, 13 Oct 2021 09:12:52 +0000 (11:12 +0200)]
wasm: saveTvg add compress option

2 years agosvg_loader util: just fix a typo
Hermet Park [Wed, 13 Oct 2021 11:12:51 +0000 (20:12 +0900)]
svg_loader util: just fix a typo

exponet -> exponent

2 years agosvg_loader util: code refactoring
Hermet Park [Wed, 13 Oct 2021 10:49:24 +0000 (19:49 +0900)]
svg_loader util: code refactoring

fix for thorvg coding convention.

no logical changes.

2 years agocapi: tvg_swcanvas_set_mempool capi added (#903)
Mira Grudzinska [Wed, 13 Oct 2021 10:31:39 +0000 (12:31 +0200)]
capi: tvg_swcanvas_set_mempool capi added (#903)

* capi: tvg_swcanvas_set_mempool capi added

* tests: tvg_swcanvas_set_mempool added to the tests

2 years agobindings capi: code refactoring
Hermet Park [Wed, 13 Oct 2021 10:02:55 +0000 (19:02 +0900)]
bindings capi: code refactoring

fix for code consistency, no logical changes.

2 years agocapi: saver capis added
Mira Grudzinska [Tue, 12 Oct 2021 14:32:06 +0000 (16:32 +0200)]
capi: saver capis added

2 years agocapi: introduced Tvg_Colorspace enum instead of defs
Mira Grudzinska [Tue, 12 Oct 2021 11:13:48 +0000 (13:13 +0200)]
capi: introduced Tvg_Colorspace enum instead of defs

Used in the tvg_swcanvas_set_target() capi.

2 years agotvg_saver: fix the argument of the sizeof call
Mira Grudzinska [Tue, 12 Oct 2021 19:00:19 +0000 (21:00 +0200)]
tvg_saver: fix the argument of the sizeof call

We got the size of a pointer instead of the size of a whole table.
Fixed now

2 years agosvg_loader: removed unused variable
Mira Grudzinska [Mon, 11 Oct 2021 11:36:53 +0000 (13:36 +0200)]
svg_loader: removed unused variable

The gradient values passed to the scene builder are always given as percentages,
so there is no need to mark/check that.

2 years agotests: tvg_gradient_duplicate added to the capi tests
Mira Grudzinska [Tue, 12 Oct 2021 21:43:38 +0000 (23:43 +0200)]
tests: tvg_gradient_duplicate added to the capi tests

2 years agocapi: tvg_gradient_duplicate() added
Mira Grudzinska [Tue, 12 Oct 2021 12:49:31 +0000 (14:49 +0200)]
capi: tvg_gradient_duplicate() added

2 years agodocs: ++
Mira Grudzinska [Tue, 12 Oct 2021 12:00:05 +0000 (14:00 +0200)]
docs: ++

2 years agodocs: saver module description ++
Mira Grudzinska [Mon, 11 Oct 2021 21:32:06 +0000 (23:32 +0200)]
docs: saver module description ++

2 years agosvg_loader: removed unnecessary casting
Mira Grudzinska [Sun, 10 Oct 2021 14:39:06 +0000 (16:39 +0200)]
svg_loader: removed unnecessary casting

The used scaling factor should be a float - casting it to an int caused
misevaluation of the radial gradient radius

2 years agotools svg2tvg: remove unused header
Hermet Park [Mon, 11 Oct 2021 06:34:42 +0000 (15:34 +0900)]
tools svg2tvg: remove unused header

2 years agosvg2tvg: added missing array lib
Mira Grudzinska [Sun, 10 Oct 2021 22:13:11 +0000 (00:13 +0200)]
svg2tvg: added missing array lib

2 years agoall: fix warnings on MSVC
projectitis [Sat, 9 Oct 2021 02:33:45 +0000 (15:33 +1300)]
all:  fix warnings on MSVC

* Explicit casts to suppress warnings
* Fixed compiler warnings

2 years agowasm: fix compilation
Michal Maciola [Fri, 8 Oct 2021 14:55:20 +0000 (16:55 +0200)]
wasm: fix compilation

After 'all: fixing clang warnings' (e7c3a91) there was a problem with wasm
compilation, as strncpy and strdup.
Disable define is __EMSCRIPTEN__.

2 years agoexample: added image-embeded-jpeg.svg (#890)
Michal Maciola [Fri, 8 Oct 2021 15:38:18 +0000 (17:38 +0200)]
example: added image-embeded-jpeg.svg (#890)

2 years agoUpdate CONTRIBUTING.md
Hermet Park [Thu, 7 Oct 2021 10:59:33 +0000 (19:59 +0900)]
Update CONTRIBUTING.md

2 years agoinfra: renamed build badge names.
Hermet Park [Thu, 7 Oct 2021 06:24:16 +0000 (15:24 +0900)]
infra: renamed build badge names.

2 years agotest: ++safety.
Hermet Park [Thu, 7 Oct 2021 05:59:54 +0000 (14:59 +0900)]
test: ++safety.

add null handlings just in case.

2 years agotests: added tests for size and composite C apis
Mira Grudzinska [Tue, 5 Oct 2021 13:20:19 +0000 (15:20 +0200)]
tests: added tests for size and composite C apis

2 years agodocs: TVG logo svg file added to the docs directory
Mira Grudzinska [Thu, 30 Sep 2021 22:06:12 +0000 (00:06 +0200)]
docs: TVG logo svg file added to the docs directory

The logo path is changed in the Doxygen file.

2 years agoinfra : add window build (with loaders)
JunsuChoi [Thu, 7 Oct 2021 03:55:13 +0000 (12:55 +0900)]
infra : add window build (with loaders)

2 years agotests: fix stack overflow error in testPicture for windows
projectitis [Thu, 7 Oct 2021 05:51:07 +0000 (18:51 +1300)]
tests: fix stack overflow error in testPicture for windows

2 years agoall: fix compiler warnings
Mira Grudzinska [Fri, 24 Sep 2021 11:32:53 +0000 (13:32 +0200)]
all: fix compiler warnings

pow->powf and sqrt->sqrtf

2 years agoexamples, tests: replace backslashes with forward slashes for portability (#880)
projectitis [Wed, 6 Oct 2021 13:18:56 +0000 (02:18 +1300)]
examples, tests: replace backslashes with forward slashes for portability (#880)

* Replace backslashes with forward slashes

* Downgrade to older meson syntax

2 years agotest capi: update tvg_paint_get_bounds() utc.
Hermet Park [Fri, 1 Oct 2021 10:31:04 +0000 (19:31 +0900)]
test capi: update tvg_paint_get_bounds() utc.

The api has been changed by 060564cc938f3773467b56e66ccee0562b5192e3
update it according its change.

2 years agocapi: replaced bounds() api with the latest.
Hermet Park [Fri, 1 Oct 2021 10:15:39 +0000 (19:15 +0900)]
capi: replaced bounds() api with the latest.

The next api of c++ version has been deprecated

Tvg_Result tvg_paint_get_bounds(const Tvg_Paint* paint, float* x, float* y, float* w, float* h);

instead, we introduce the next one under the beta.

Tvg_Result tvg_paint_get_bounds(const Tvg_Paint* paint, float* x, float* y, float* w, float* h, bool transformed);

2 years agodocs: c and c++ apis docs improved
Mira Grudzinska [Mon, 4 Oct 2021 00:12:37 +0000 (02:12 +0200)]
docs: c and c++ apis docs improved

2 years agoinfra: Change test name
JunsuChoi [Wed, 6 Oct 2021 07:07:59 +0000 (16:07 +0900)]
infra: Change test name

Build Test -> Build(Linux)

2 years agoinfra: add all option to enable all loader formats.
Hermet Park [Wed, 6 Oct 2021 02:13:49 +0000 (11:13 +0900)]
infra: add all option to enable all loader formats.

just for developer convenience (including me)

ex) $meson . build -Dloaders="all" ...

2 years agoall: fixing clang warnings
Mira Grudzinska [Sun, 3 Oct 2021 12:25:14 +0000 (14:25 +0200)]
all: fixing clang warnings

fopen->fopen_s, strdup -> _strdup, strncpy -> strncpy_s
__declspec(dllexport) -> __attribute__ ((visibility ("default")))

2 years agotests: ++LOC svg loader, tvg saver
Mira Grudzinska [Tue, 5 Oct 2021 14:36:41 +0000 (16:36 +0200)]
tests: ++LOC svg loader, tvg saver

2 years agoUpdate authors
Projectitis [Wed, 6 Oct 2021 00:16:39 +0000 (13:16 +1300)]
Update authors

2 years agoReadme: Add window build test badge
JunsuChoi [Wed, 6 Oct 2021 01:47:21 +0000 (10:47 +0900)]
Readme: Add window build test badge

2 years agoinfra: Add window build test in CI
JunsuChoi [Tue, 28 Sep 2021 02:07:58 +0000 (11:07 +0900)]
infra: Add window build test in CI

Add build test for normal build

2 years agoRevert "sw_engine: border cases for gradients"
Mira Grudzinska [Tue, 5 Oct 2021 23:08:34 +0000 (01:08 +0200)]
Revert "sw_engine: border cases for gradients"

This reverts commit 284298445b900bbba09beb4673e9d055584e1f81.

2 years agosw_engine: border cases for gradients
Mira Grudzinska [Mon, 4 Oct 2021 23:17:30 +0000 (01:17 +0200)]
sw_engine: border cases for gradients

According to the svg standard, in a case when 'x1==x2 and y1==y2'
for a linear gradient or when 'r==0' for a radial gradient, the area
should be painted as a single color - the last gradient stop color.

2 years agodocs: ++ docs of the load apis
Mira Grudzinska [Mon, 4 Oct 2021 13:07:44 +0000 (15:07 +0200)]
docs: ++ docs of the load apis

2 years agoloaders: prepare for static jpg/png loaders.
Hermet Park [Fri, 1 Oct 2021 11:23:16 +0000 (20:23 +0900)]
loaders: prepare for static jpg/png loaders.

This patch has 2 purposes,

1. revise the loaders infrastructure to support both static/external linking loaders.
2. add a template for static jpg/png loaders after external jpg/png.

Our default loaders prefer static linking, external loaders are only available
when dependent libraries on the build system are found.

You might wonder why we have the external loaders together,
they might be faster than static loaders since the popular libraries are likely to be well maintained,
fine-grained optimized.

Thus in this patch, meson tries to apply the external loaders first
then see if the dependencies were found or not,
if it's failed, it turns to the default static loaders.

Next this patch, we need the contribution for actual static jpg/png loaders implementation.

@Issue: https://github.com/Samsung/thorvg/issues/594

2 years agosvg_loader: proper handling width/height units (#851)
Mira Grudzinska [Tue, 5 Oct 2021 10:04:40 +0000 (12:04 +0200)]
svg_loader: proper handling width/height units (#851)

Units of the svg width and height tags were incorrectly assigned.
Percentage values will be handled separately.

2 years agocapi: picture size apis added
Mira Grudzinska [Mon, 4 Oct 2021 19:40:23 +0000 (21:40 +0200)]
capi: picture size apis added

2 years agodocs: minor changes (#868)
Mira Grudzinska [Mon, 4 Oct 2021 08:03:48 +0000 (10:03 +0200)]
docs: minor changes (#868)

2 years agocapi: removed repeated comments
Mira Grudzinska [Sun, 3 Oct 2021 13:08:46 +0000 (15:08 +0200)]
capi: removed repeated comments

2 years agoReadme: Add links to documentation
projectitis [Sat, 2 Oct 2021 03:40:31 +0000 (16:40 +1300)]
Readme: Add links to documentation

2 years agoPortable fallthrough attribute
Projectitis [Fri, 1 Oct 2021 23:38:09 +0000 (12:38 +1300)]
Portable fallthrough attribute

2 years agocapi: tvg_canvas_destroy should be able to destroy SwCanvas and GlCanvasa as well
Mira Grudzinska [Wed, 29 Sep 2021 23:50:50 +0000 (01:50 +0200)]
capi: tvg_canvas_destroy should be able to destroy SwCanvas and GlCanvasa as well

2 years agodocs: improving c++ and c apis docs
Mira Grudzinska [Fri, 1 Oct 2021 06:10:40 +0000 (08:10 +0200)]
docs: improving c++ and c apis docs

2 years agocapi: Release official CAPI's.
Michal Szczecinski [Wed, 29 Sep 2021 08:04:36 +0000 (10:04 +0200)]
capi: Release official CAPI's.

Changes:
- Removed beta api tag from CAPI module
- For some APIs, the tag has not been changed due to main API status
- Moved some documentation changes to have similar descriptions in main
API and CAPI
- Removed deprecation warnings.

2 years agocapi: added the composite getter
Mira Grudzinska [Thu, 30 Sep 2021 21:53:35 +0000 (23:53 +0200)]
capi: added the composite getter

2 years agocommon: code refactoring.
Hermet Park [Fri, 1 Oct 2021 05:53:56 +0000 (14:53 +0900)]
common: code refactoring.

--loc, no logical changes.

2 years agocommon: allow composition on empty scene without insufficient condition error
Michal Maciola [Tue, 28 Sep 2021 11:15:24 +0000 (13:15 +0200)]
common: allow composition on empty scene without insufficient condition error

If there was an empty scene (empty scene, so bounds equal zero) with a mask composition applied,
Paint::Impl::render failed on checking size and Canvas::draw() returned InsufficientCondition.
As a result no other paints was rendered.

@issue: fixes #842