platform/core/graphics/tizenvg.git
3 years agoinfra Documentation: Update main page and remove treeview
JunsuChoi [Tue, 25 May 2021 05:44:35 +0000 (14:44 +0900)]
infra Documentation: Update main page and remove treeview

3 years agoinfra Documentation: Introduce ThorVG documentation page.
JunsuChoi [Tue, 25 May 2021 05:08:47 +0000 (14:08 +0900)]
infra Documentation: Introduce ThorVG documentation page.

This is a documentation page based on doxygen.

CSS: https://jothepro.github.io/doxygen-awesome-css/

3 years agosw_engine: refactoring the linear gradient rle rastering function
Mira Grudzinska [Mon, 24 May 2021 23:50:59 +0000 (01:50 +0200)]
sw_engine: refactoring the linear gradient rle rastering function

The translucent rastering function is split into 3 other (instead of if/else statement).
An additional function is introduced to decide which one of the 3 should be called.
This refactoring is done to preserve the convention used for all other rastering functs.

3 years agosw_engine: gradient shapes with opacity < 255 rastered properly
Mira Grudzinska [Tue, 18 May 2021 11:30:28 +0000 (13:30 +0200)]
sw_engine: gradient shapes with opacity < 255 rastered properly

The cases with gradient shapes with composition are handled
in the same function as gradint shapes with opacity < 255.
Parts of the code from _rasterOpaque... grad functions moved to
_rasterTranslucent... grad functions.

3 years agoUpdate README.md
Hermet Park [Sat, 22 May 2021 07:14:12 +0000 (16:14 +0900)]
Update README.md

Change-Id: I88f2fd48865176e00d7179b72039002c1cb04c1a

3 years agosw_engine rle: ++ precise alpha in anti-aliasing
Hermet Park [Fri, 21 May 2021 10:56:39 +0000 (19:56 +0900)]
sw_engine rle: ++ precise alpha in anti-aliasing

could loss 1 pixel since it divides 255 values by 256.

Change-Id: Ifee20d58ee55b58fd2c09932e2f4e21b55273da7

3 years agosw_engine: fixing wrong 'if else' statement handling when gradient shapes rastered
Mira Grudzinska [Tue, 18 May 2021 00:57:48 +0000 (02:57 +0200)]
sw_engine: fixing wrong 'if else' statement handling when gradient shapes rastered

The cases when composition was applied were handled only for AlphaMask and
InvAlphaMask. When opacity value was to be < 255, there was no code
to handle this.

Change-Id: If2f66230faa9b15ef9741461c92a64a279906d73

3 years agosw_engine: 'inv2a' variable from the SwRadial struct replaced by 'inva'
Mira Grudzinska [Mon, 17 May 2021 00:50:17 +0000 (02:50 +0200)]
sw_engine: 'inv2a' variable from the SwRadial struct replaced by 'inva'

This change reduces the number of multiplications in the fillFetchRadal function.

Change-Id: I84a8ff16ec8cd657ae48833f141c0554ca4829fc

3 years agores: remove icon
Hermet Park [Mon, 17 May 2021 04:58:52 +0000 (13:58 +0900)]
res: remove icon

Change-Id: Ie2cb5ca100208328a78338d680df85b75de9a2ac

3 years agoUpdate README.md
Hermet Park [Sun, 16 May 2021 14:59:02 +0000 (23:59 +0900)]
Update README.md

Change-Id: I84aa9a97504e3919178b6bcf3c349739b75449c7

3 years agoUpdate README.md
Hermet Park [Sat, 15 May 2021 14:14:52 +0000 (23:14 +0900)]
Update README.md

Change-Id: Ibe9f3738bce444884074775f2315172f1bb430d0

3 years agoUpdate README.md
Hermet Park [Sat, 15 May 2021 12:56:31 +0000 (21:56 +0900)]
Update README.md

Change-Id: I351664fa69342f4b6f6543effd0a5851e5e51041

3 years agoAdd files via upload
Hermet Park [Sat, 15 May 2021 11:19:34 +0000 (20:19 +0900)]
Add files via upload

Change-Id: I2350cc753c5e4d5a737ad8b6d2cc3c3cae1a04c9

3 years agoapi doc: replace beta api desc to beta tag
Hermet Park [Fri, 14 May 2021 10:49:28 +0000 (19:49 +0900)]
api doc: replace beta api desc to beta tag

Change-Id: I9b1c1cfe2a8ae53373dfc9bffe15c46daabb907a

3 years agolog SvgLoader: Enhance log message
JunsuChoi [Mon, 26 Apr 2021 06:25:45 +0000 (15:25 +0900)]
log SvgLoader: Enhance log message

- Change tag name "Doc" to "Svg"
- Fix "Mask" tag name.
- Add element to skip output
 - title
- Add attribute to skip output
 - id, data-name, version, overflow=visible, xmlns*, xml:space

Change-Id: I2d5900e46d810c243602cc93c35d25e1224e98d5

3 years agodoc: linguistic changes in C++ API docs
Mira Grudzinska [Sun, 2 May 2021 21:04:54 +0000 (23:04 +0200)]
doc: linguistic changes in C++ API docs

Change-Id: If465d27859480d73c8457c18d216111217e7c342

3 years agoUpdate README.md
Hermet Park [Thu, 13 May 2021 10:47:37 +0000 (19:47 +0900)]
Update README.md

Change-Id: I89687821eeba8f6aa7aae678c076399987d41614

3 years agoUpdate README.md
Hermet Park [Thu, 13 May 2021 10:41:17 +0000 (19:41 +0900)]
Update README.md

Change-Id: I039a1980f28a0aa294ea31eb5309355611c5206e

3 years agosw_engine: fix invalid data sharing at multi-threading.
Hermet Park [Fri, 7 May 2021 10:45:07 +0000 (19:45 +0900)]
sw_engine: fix invalid data sharing at multi-threading.

We have encountered that multi-threading usage that user creates,
multiple canvases owned by multiple user threads.

Current sw_engine memory pool has been considered only for multi-threads,
spawned by tvg task scheduler.

In this case it's safe but when user threads introduced, it can occur race-condition.

Thus, Here is a renewal policy that non-threading tvg(initialized threads with zero),
takes care of multiple user threads bu changing its policy,
each of canvases should have individual memory pool to guarantee mutual-exclusion.

@API additions

enum MempoolPolicy
{
    Default = 0, ///< Default behavior that ThorVG is designed to.
    Shareable,   ///< Memory Pool is shared among the SwCanvases.
    Individual   ///< Allocate designated memory pool that is only used by current instance.
};

Result SwCanvas::mempool(MempoolPolicy policy) noexcept;

All in all, if user calls multiple threads, set memory pool policy to Individual.

3 years agoinfra: remove PULL REQUEST TEMPLATE.
Hermet Park [Tue, 11 May 2021 13:12:14 +0000 (22:12 +0900)]
infra: remove PULL REQUEST TEMPLATE.

By far, this is not so useful since commit message template and PR is very simliar.

It just bring messing up the PR contents.

Rather than it, we don't allow violating commit message rules. So... its unnecessary.

See CONTRIBUTING.md

3 years agoUpdate CONTRIBUTING.md
Hermet Park [Tue, 11 May 2021 13:23:35 +0000 (22:23 +0900)]
Update CONTRIBUTING.md

3 years agocapi: added check against null pointer before dereferencing
Mira Grudzinska [Wed, 5 May 2021 23:57:20 +0000 (01:57 +0200)]
capi: added check against null pointer before dereferencing

TVG_RESULT_INVALID_ARGUMENT returned in case a nullptr passed as an argument
(does not apply to color getters).
The change is addressed in the docs file.

3 years agobump up v0.1.5 submit/tizen/20210510.051321
Hermet Park [Mon, 10 May 2021 05:05:12 +0000 (14:05 +0900)]
bump up v0.1.5

Change-Id: I7b22b76cfc6551077bd5e8eeb655844601dc8462

3 years agodocs: polishing up the C API docs
Mira Grudzinska [Sun, 2 May 2021 23:56:31 +0000 (01:56 +0200)]
docs: polishing up the C API docs

Change-Id: Ifd061b706147ef6e20f5717bf30e768979d0ab85

3 years agoUpdate README.md
Hermet Park [Mon, 3 May 2021 12:14:52 +0000 (21:14 +0900)]
Update README.md

3 years agoUpdate README.md
Hermet Park [Mon, 3 May 2021 10:25:30 +0000 (19:25 +0900)]
Update README.md

3 years agoloader SvgLoader: Fix memory leak
JunsuChoi [Mon, 3 May 2021 07:19:06 +0000 (16:19 +0900)]
loader SvgLoader: Fix memory leak

Add memory release for style->comp.url, which is the leaking memory.

[Valgrind Test Result]
==21595== 32 bytes in 1 blocks are definitely lost in loss record 29 of 152
==21595==    at 0x4C3217F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==21595==    by 0x5C248C6: _idFromUrl(char const*) (tvgSvgLoader.cpp:272)
==21595==    by 0x5C24DE1: _handleClipPathAttr(SvgLoaderData*, SvgNode*, char const*) (tvgSvgLoader.cpp:860)
==21595==    by 0x5C260CC: _attrParseGNode(void*, char const*, char const*) (tvgSvgLoader.cpp:953)
==21595==    by 0x5C2ABA9: simpleXmlParseAttributes(char const*, unsigned int, bool (*)(void*, char const*, char const*), void const*) (tvgXmlParser.cpp:272)
==21595==    by 0x5C26F6E: _createGNode(SvgLoaderData*, SvgNode*, char const*, unsigned int) (tvgSvgLoader.cpp:1063)
==21595==    by 0x5C27A04: _svgLoaderParserXmlOpen(SvgLoaderData*, char const*, unsigned int, bool) (tvgSvgLoader.cpp:2168)
==21595==    by 0x5C27CE9: _svgLoaderParser(void*, SimpleXMLType, char const*, unsigned int) (tvgSvgLoader.cpp:2226)
==21595==    by 0x5C2AC8C: simpleXmlParse(char const*, unsigned int, bool, bool (*)(void*, SimpleXMLType, char const*, unsigned int), void const*) (tvgXmlParser.cpp:378)
==21595==    by 0x5C27E09: SvgLoader::run(unsigned int) (tvgSvgLoader.cpp:2571)
==21595==    by 0x5C1A7C1: operator() (tvgTaskScheduler.h:68)
==21595==    by 0x5C1A7C1: tvg::TaskSchedulerImpl::run(unsigned int) (tvgTaskScheduler.cpp:138)
==21595==    by 0x5EED6DE: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)

3 years agoUpdate README.md
Mira Grudzinska [Sun, 2 May 2021 19:43:33 +0000 (21:43 +0200)]
Update README.md

Fixed example and minor linguistic changes

3 years agoUpdate README.md
Hermet Park [Sat, 1 May 2021 15:19:14 +0000 (00:19 +0900)]
Update README.md

updated contents

3 years agoUpdate README.md
Hermet Park [Sat, 1 May 2021 14:50:07 +0000 (23:50 +0900)]
Update README.md

+ Practices: Tizen, Rive

3 years agoUpdate README.md
Hermet Park [Sat, 1 May 2021 05:58:30 +0000 (14:58 +0900)]
Update README.md

3 years agores: updated images
Hermet Park [Sat, 1 May 2021 05:54:15 +0000 (14:54 +0900)]
res: updated images

3 years agoexamples: fix wrong data size conversion.
Hermet Park [Sat, 1 May 2021 03:52:32 +0000 (12:52 +0900)]
examples: fix wrong data size conversion.

pointer size becomes 32 to 64 bits up to machines.
it has to be 32 bits.

3 years agoexamples: fix wrong data size conversion.
Hermet Park [Sat, 1 May 2021 03:48:08 +0000 (12:48 +0900)]
examples: fix wrong data size conversion.

pointer size becomes 32 to 64 bits up to machines.
it has to be 32 bits.

Change-Id: I2b375dfba1040ff96259e2b338b91b7cd8326d3e

3 years agoloader svg: fix build break due to typo
Hermet Park [Sat, 1 May 2021 03:37:45 +0000 (12:37 +0900)]
loader svg: fix build break due to typo

3 years agosw_engine: Added sanity checks.
Michal Szczecinski [Thu, 29 Apr 2021 08:49:38 +0000 (10:49 +0200)]
sw_engine: Added sanity checks.

This commit fixes crash when update target surface is not created yet.

3 years agores: update images.
Hermet Park [Fri, 30 Apr 2021 11:50:22 +0000 (20:50 +0900)]
res: update images.

Change-Id: I06860f22408945033c6c8784384995ea49959b24

3 years agoremoved gles2 dependency. 71/257971/1
Hermet Park [Fri, 7 May 2021 06:38:02 +0000 (15:38 +0900)]
removed gles2 dependency.

thorvg does not support gl backend yet.

Change-Id: I6c5081d22402ffba7f4d92ce17e4958120c2fa94

3 years agobump up v0.1.4 74/257774/1 accepted/tizen/unified/20210502.124132 submit/tizen/20210430.105132
Hermet Park [Fri, 30 Apr 2021 10:45:22 +0000 (19:45 +0900)]
bump up v0.1.4

Change-Id: Id45999aba84a8a0fe992e2ba841650a229b2b2a7

3 years agoenable capi binding in tizen. 71/257771/1
Hermet Park [Fri, 30 Apr 2021 10:33:17 +0000 (19:33 +0900)]
enable capi binding in tizen.

Tizen needs to use capi for efl integration.

Change-Id: I238e416c9397a6596ae0e028a304569411baefee

3 years agoinfra: disable capi in default.
Hermet Park [Fri, 30 Apr 2021 10:02:06 +0000 (19:02 +0900)]
infra: disable capi in default.

capi is not mandatory option in v0.1.

we can manually toggle it on when it's necessary.

Change-Id: If76d310b411e27129b2bf2a3c728872b305b6b4b

3 years agodoc: polish up api documentation.
Hermet Park [Fri, 30 Apr 2021 09:53:20 +0000 (18:53 +0900)]
doc: polish up api documentation.

3 years agodoc common: Add enum and struct docs in capi
JunsuChoi [Thu, 29 Apr 2021 06:05:30 +0000 (15:05 +0900)]
doc common: Add enum and struct docs in capi

3 years agodoc common: Groupping c APIs
JunsuChoi [Thu, 29 Apr 2021 05:21:07 +0000 (14:21 +0900)]
doc common: Groupping c APIs

C APIs
 - Initializer
 - Canvas
  - SwCanvas
 - Paint
 - Shape
 - Gradient
 - Picture
 - Scene

3 years agosw_engine: fixing overlapping masks
Mira Grudzinska [Wed, 28 Apr 2021 12:10:25 +0000 (14:10 +0200)]
sw_engine: fixing overlapping masks

The buffer to which the mask is rastered is only partially cleared.
If the object to which the mask is applied overlaps an area where
another mask was used, an erroneous image is generated. The buffer
clearing area has been increased to the size of the object to which
the mask is applied.

3 years agodoc common: Add grouping of C++ api and C api
JunsuChoi [Thu, 29 Apr 2021 02:36:12 +0000 (11:36 +0900)]
doc common: Add grouping of C++ api and C api

group ThorVG C++ APIs
group ThorVGCapi C APIs

3 years agocapi: Added Inverted Alpha Mask composition enumeration.
Michal Szczecinski [Fri, 16 Apr 2021 06:37:40 +0000 (08:37 +0200)]
capi: Added Inverted Alpha Mask composition enumeration.

Added missing composite method. Backend supports this compostion type.

Change-Id: I941e9da3ef325e639c2168b8d0ddc59aba8c2d7a

3 years agodoc common: change of the return value in the composite API
Mira Grudzinska [Wed, 28 Apr 2021 13:03:37 +0000 (15:03 +0200)]
doc common: change of the return value in the composite API

3 years agocommon paint: changed result in composite API
Mira Grudzinska [Sun, 25 Apr 2021 21:40:03 +0000 (23:40 +0200)]
common paint: changed result in composite API

A possible error is due to erroneous arguments, so
InvalidArgument is return instead of InsufficientCondition

3 years agoinfra Actions: If no coding style error, no comment
JunsuChoi [Mon, 26 Apr 2021 07:20:35 +0000 (16:20 +0900)]
infra Actions: If no coding style error, no comment

and change action name

3 years agodoc common: adding the documentation for the C++ APIs
Mira Grudzinska [Mon, 26 Apr 2021 19:18:44 +0000 (21:18 +0200)]
doc common: adding the documentation for the C++ APIs

Added the missing descriptions for Sw/Gl/Canvas and Initializer.
@retval command applied.

3 years agodoc README: Update build status badge
JunsuChoi [Tue, 27 Apr 2021 00:39:03 +0000 (09:39 +0900)]
doc README: Update build status badge

The badge provided by travis-ci is no longer used.
Use the badge provided by github action.

3 years agobump up v0.1.3 94/257594/1 accepted/tizen/unified/20210429.011934 submit/tizen/20210428.045034
Hermet Park [Wed, 28 Apr 2021 04:40:14 +0000 (13:40 +0900)]
bump up v0.1.3

Change-Id: If6c037defcf1c240797ae315614aad89dad365a6

3 years agodoc common: Fix typo and missing parameter
JunsuChoi [Tue, 27 Apr 2021 02:21:16 +0000 (11:21 +0900)]
doc common: Fix typo and missing parameter

3 years agoinfra Travis: Remove travis-ci build test
JunsuChoi [Mon, 26 Apr 2021 07:25:21 +0000 (16:25 +0900)]
infra Travis: Remove travis-ci build test

We don't need to build test with travis-ci.
The build test is already being worked in the github-action.
In addition, travis-ci causes unnecessary failures because the recent request count is not properly counted.

3 years agodoc common: adding the documentation for the C++ APIs
Mira Grudzinska [Fri, 23 Apr 2021 01:05:24 +0000 (03:05 +0200)]
doc common: adding the documentation for the C++ APIs

The descriptions have been changed and new ones added.
There are still few apis for which descriptions are missing.

3 years agodoc common: Draft documentation for C++ header APIs
JunsuChoi [Thu, 15 Apr 2021 09:32:58 +0000 (02:32 -0700)]
doc common: Draft documentation for C++ header APIs

Write documentation for some of the APIs that have already been cleared up.

3 years agoloaders svg: code refactoring
Hermet Park [Tue, 20 Apr 2021 11:32:22 +0000 (20:32 +0900)]
loaders svg: code refactoring

split functions as its purpose.

3 years agoloader SvgLoader: Fix wrong debug log
JunsuChoi [Thu, 15 Apr 2021 06:24:56 +0000 (23:24 -0700)]
loader SvgLoader: Fix wrong debug log

1.
Modify that attribute information used for use type
looks like it was used for g type.

2.
Fix clippath node looking like setting "none"
(clippath's display = false is intentional)

3 years agoRevert "** Temporary patch for diagnosing some hideous bugs in Tizen **" 81/257181/1
Hermet Park [Tue, 20 Apr 2021 11:12:05 +0000 (20:12 +0900)]
Revert "** Temporary patch for diagnosing some hideous bugs in Tizen **"

This reverts commit 9996be4c047b5b3b9ced9fabe3c4b888ed795cff.

Change-Id: Ib5f0ee8c5d63012863d22e3ba051278be6e99982

3 years agoloader SvgLoader: add locale-independent strtof function 74/257174/1 accepted/tizen/unified/20210421.002335 submit/tizen/20210420.110608
JunsuChoi [Tue, 20 Apr 2021 09:01:04 +0000 (18:01 +0900)]
loader SvgLoader: add locale-independent strtof function

strtof's behavior is changed by system locale.
https://linux.die.net/man/3/strtof

Because of this, strtof(10.0000) returns 0.0 in some locales.
When a given value string is locale-independent, strtof has to be
replaced to custom function.

Change-Id: I0166c434990ef8b692f0007d24112aa61c6ef679

3 years agobump up v0.1.2 70/257170/1
Hermet Park [Tue, 20 Apr 2021 08:55:18 +0000 (17:55 +0900)]
bump up v0.1.2

Change-Id: Ia351fa777c21654308ae0d717feddbcfa24592ab

3 years agoloaders svg: ++safety
Hermet Park [Tue, 20 Apr 2021 08:43:16 +0000 (17:43 +0900)]
loaders svg: ++safety

prevent buffer overflow just in case.

Change-Id: I58e079d00b4840437632716c3cdd0deea144c5c6

3 years agoresolve some unpexpected code involving while upstream code sync. 52/257052/1 accepted/tizen/unified/20210419.153502 submit/tizen/20210419.030015
Hermet Park [Mon, 19 Apr 2021 02:45:14 +0000 (11:45 +0900)]
resolve some unpexpected code involving while upstream code sync.

Change-Id: Ie818f1db73e997bf6d7eaae24cf55303c55eceba

3 years agobump up v0.1.2 47/257047/1 submit/tizen/20210419.023500
Hermet Park [Mon, 19 Apr 2021 01:48:56 +0000 (10:48 +0900)]
bump up v0.1.2

Change-Id: Ia3f1dddf6c27fbe3894df637f15d8d9b55f7710c

3 years agoloader svg: displaying SVG images without the specified viewBox attribute
Mira Grudzinska [Tue, 13 Apr 2021 23:19:33 +0000 (01:19 +0200)]
loader svg: displaying SVG images without the specified viewBox attribute

If no viewBox attribute is given, the height and width attributes are used
to establish the viewBox size. However, this information was not available
inside the scene builder, even though it was needed.

Change-Id: Icf5a74936d26de5f10c3a3eb428c7800749c1e9d

3 years agocommon: code refactoring.
Hermet Park [Thu, 15 Apr 2021 09:26:11 +0000 (18:26 +0900)]
common: code refactoring.

renamed internal function, no logical changes.

Change-Id: Iea738826315a2f02f6d4f9d56b81a55379c09738

3 years agosw_engine: adding a check before stroke fill dereference
Mira Grudzinska [Wed, 14 Apr 2021 12:45:52 +0000 (14:45 +0200)]
sw_engine: adding a check before stroke fill dereference

The crash was observed for empty shapes.

Change-Id: Ie1a38ebae6a6877caaf307bddcf93dd4ee07bd8d

3 years agocommon initializer: counting engine init count properly.
Hermet Park [Wed, 14 Apr 2021 11:16:19 +0000 (20:16 +0900)]
common initializer: counting engine init count properly.

Manage the reference count in common so that
all common resources can be initialized/terminated identically.

Change-Id: Ica05c031774d212c068bb055aa8f74123d9915dc

3 years agoexamples: ignoring pictures other than svgs in Stress.cpp
Mira Grudzinska [Tue, 13 Apr 2021 11:12:53 +0000 (13:12 +0200)]
examples: ignoring pictures other than svgs in Stress.cpp

The picture->size() function does not work for raw/png pictures.
As a consequence enabling both, the svg and png file loaders,
resulted in the unintended behavior of the example.

3 years ago** Temporary patch for diagnosing some hideous bugs in Tizen ** 47/256847/3 accepted/tizen/unified/20210415.000533 submit/tizen/20210414.041043
Hermet Park [Wed, 14 Apr 2021 02:50:09 +0000 (11:50 +0900)]
** Temporary patch for diagnosing some hideous bugs in Tizen **

This patch puts some prints for analizing a crash issue,
it must be reverted after fixing it.

Change-Id: Iac2db25da27aa85dcfef19d05ced887d821584de

3 years agoloader SvgLoader: Fix for coding convention
JunsuChoi [Tue, 13 Apr 2021 09:34:14 +0000 (18:34 +0900)]
loader SvgLoader: Fix for coding convention

Change-Id: I0c6852eef9d19a8a58d1912ff54084a9c2b2c13d

3 years agoloader SvgLoader: return null if transform attribute invalid
JunsuChoi [Tue, 13 Apr 2021 09:30:04 +0000 (18:30 +0900)]
loader SvgLoader: return null if transform attribute invalid

In transform matrix parsing, null is returned if any of the matrices are invalid.

3 years agoloaders svg: fix a wrongly handles the corner case.
Hermet Park [Tue, 13 Apr 2021 08:17:13 +0000 (17:17 +0900)]
loaders svg: fix a wrongly handles the corner case.

Stop the internel loop quick as possible, and state must be reset.

3 years agoloaders svg: code refactoring.
Hermet Park [Tue, 13 Apr 2021 08:05:08 +0000 (17:05 +0900)]
loaders svg: code refactoring.

keep it clean & neat within tvg coding convention.

3 years agowasm: fix compile errors.
Hermet Park [Fri, 9 Apr 2021 13:18:57 +0000 (22:18 +0900)]
wasm: fix compile errors.

3 years agosync versioning 0.1.0
Hermet Park [Fri, 9 Apr 2021 12:42:12 +0000 (21:42 +0900)]
sync versioning 0.1.0

Change-Id: I6b4eb3d603963d68b01bcf398f59e336ad18e46d

3 years agobump up v0.0.7 13/256713/1 accepted/tizen/unified/20210414.040527 submit/tizen/20210413.021452
Hermet Park [Fri, 9 Apr 2021 12:27:38 +0000 (21:27 +0900)]
bump up v0.0.7

Change-Id: I3e8d10dc94f2931b2898a02c86d851a964f0acb6

3 years agoloader svg: fix composition(mask/clip) issue.
Hermet Park [Fri, 9 Apr 2021 11:50:01 +0000 (20:50 +0900)]
loader svg: fix composition(mask/clip) issue.

composition target missed transform of its source.

That brings incorrect composition area.

This fixes it.

Change-Id: I7e1adc225af2c0177581b3505288de50d77cc411

3 years agosw_engine: fixing stroke gradient
Mira Grudzinska [Fri, 9 Apr 2021 10:34:56 +0000 (12:34 +0200)]
sw_engine: fixing stroke gradient

Instead of checking the stroke's fill, the shape's fill was checked.
As a result the improper rastering function was called (or none).

3 years agoloaders svg: set default color for composition paint.
Hermet Park [Fri, 9 Apr 2021 07:44:46 +0000 (16:44 +0900)]
loaders svg: set default color for composition paint.

not only clippath but alpha compositions might also have any valid color.
Set it default and let it override values while appending shapes if it's necessary.

3 years agoloaders svg: prevent composition setting if the result shape is invalid.
Hermet Park [Fri, 9 Apr 2021 06:57:32 +0000 (15:57 +0900)]
loaders svg: prevent composition setting if the result shape is invalid.

Current loader could return invalid shapes -default, from _appendShape()-
by a certain interpretation result,

Though it's a wrong or exception case, we can prevent worse case by avoiding it.

3 years agoloaders svg: code refactoring
Hermet Park [Fri, 9 Apr 2021 06:34:34 +0000 (15:34 +0900)]
loaders svg: code refactoring

clean up code and remove unnecessary internal class.

this also helps to reduce binary size by 5.5kb

no logical changes.

3 years agoloaders svg: ++ log info for wrong situation.
Hermet Park [Fri, 9 Apr 2021 02:02:35 +0000 (11:02 +0900)]
loaders svg: ++ log info for wrong situation.

if either log is printed, we need to improve the composition method.

3 years agoloaders svg: code refactoring
Hermet Park [Thu, 8 Apr 2021 11:47:57 +0000 (20:47 +0900)]
loaders svg: code refactoring

++ clean code.

3 years agoloaders svg: fix invalid clip path result.
Hermet Park [Thu, 8 Apr 2021 08:39:51 +0000 (17:39 +0900)]
loaders svg: fix invalid clip path result.

tvg engine expects the valid clippath with valid colors,
loaders set any colors values to enable it.

this fixes invalid clippath behavior.

3 years agosw_engine: fix GradientStroke crash
Hermet Park [Thu, 8 Apr 2021 05:15:23 +0000 (14:15 +0900)]
sw_engine: fix GradientStroke crash

++ strict null check.

3 years agosw_engine raster: adding antialiasing to the gradient rastering functions
Mira Grudzinska [Wed, 7 Apr 2021 13:29:22 +0000 (15:29 +0200)]
sw_engine raster: adding antialiasing to the gradient rastering functions

The gradient rastering functions with composition did not take
antialiasing into account. The missing part has been added.

3 years agosw_engine raster: refactoring the gradient rastering functions
Mira Grudzinska [Wed, 7 Apr 2021 13:16:42 +0000 (15:16 +0200)]
sw_engine raster: refactoring the gradient rastering functions

The gradient rastering functions have been splitted into translucent
and opaque.

3 years agosw_engine: rastering the opaque radial gradient with masking
Mira Grudzinska [Sun, 4 Apr 2021 15:09:00 +0000 (17:09 +0200)]
sw_engine: rastering the opaque radial gradient with masking

In the radial gradient rastering functions, the part supporting
the (inverse) masking was added.

3 years agosw_engine: removed unnecessary function parameter
Mira Grudzinska [Thu, 1 Apr 2021 23:41:51 +0000 (01:41 +0200)]
sw_engine: removed unnecessary function parameter

In the fillFetchLinear function the offset parameter was removed.
The destination address may be shifted directly in the dst parameter,
it doesn't need to be passed separately.

3 years agobinary optimization
Hermet Park [Wed, 7 Apr 2021 12:13:29 +0000 (21:13 +0900)]
binary optimization

remove inlining to reduce size by 22kb.

Change-Id: I1036e28cac2de5d42f8a7a08b09897c1fb3dc5a6

3 years agocommon paint: fix wrong fast clippath logic.
Hermet Park [Tue, 6 Apr 2021 13:27:05 +0000 (22:27 +0900)]
common paint: fix wrong fast clippath logic.

it missed to check clippath's transform in fasttrack logic.
now it additionally check it...

3 years agoUpdate README.md
Hermet Park [Mon, 5 Apr 2021 13:33:05 +0000 (22:33 +0900)]
Update README.md

3 years agosw_engine raster: ++ precise alpha multiplying
Hermet Park [Mon, 5 Apr 2021 08:15:37 +0000 (17:15 +0900)]
sw_engine raster: ++ precise alpha multiplying

previously alpha multiplying operation doesn't have perfect precision,
could loss 1 pixel since it divides 255 values by 256.

This improved operation comply with both precision & performance.

3 years agoUpdate CONTRIBUTING.md
Hermet Park [Fri, 2 Apr 2021 04:30:53 +0000 (13:30 +0900)]
Update CONTRIBUTING.md

3 years agoloader png: code refactoring
Hermet Park [Thu, 1 Apr 2021 12:09:41 +0000 (21:09 +0900)]
loader png: code refactoring

Seperate behaviors open/read/close,
free/close pngimage properly,
add copyright for files.

There still left one optimization point by applying Task.

3 years agomeson: revise png loader meson script.
Hermet Park [Fri, 2 Apr 2021 03:49:18 +0000 (12:49 +0900)]
meson: revise png loader meson script.

We hate spagettie code, not even build script.
this revise it to keep the build script consistency.

3 years agosw_engine: unnecessary memory allocation and variables has been removed
Mira Grudzinska [Wed, 31 Mar 2021 23:26:54 +0000 (01:26 +0200)]
sw_engine: unnecessary memory allocation and variables has been removed

3 years agoloader loaderMgr: add a useful debug message.
Hermet Park [Thu, 1 Apr 2021 11:34:54 +0000 (20:34 +0900)]
loader loaderMgr: add a useful debug message.

Print info if file format is not supported.