Hermet Park [Fri, 4 Jun 2021 08:46:04 +0000 (17:46 +0900)]
Update CONTRIBUTING.md
fix typos.
Change-Id: Ie31d4fb456fd116c41ec2a11ea81c6ccf1140cbd
Hermet Park [Fri, 4 Jun 2021 08:43:04 +0000 (17:43 +0900)]
Update CONTRIBUTING.md
++ self-test & verification
Change-Id: Iee8406098b57670c02b723bf024876a2e946ba3a
Hermet Park [Thu, 3 Jun 2021 12:01:54 +0000 (21:01 +0900)]
capi: add tvg_paint_get_transform() api.
Change-Id: Iac271fc25e0ec409a17296c359a4a34c9bdb0e6e
Hermet Park [Fri, 4 Jun 2021 07:46:34 +0000 (16:46 +0900)]
tests: introduce catch2 unit tests infrastructure.
Catch2 is a multi-paradigm test framework for C++.
It is primarily distributed as a single header file,
very easy and simple to adopt this to thorvg project.
This patch introduces catch2 infrastsructure and one prototype as a sample.
You can refer "testInitializer.cpp", how to add unit test!
while ignoring else files such as "catch2.hpp", "testMain.cpp"
Also, enable Unit-tests with meson option when you change any thorvg code.
$meson build -Dtests=true.
launch tvgUnitTest in the build result then verify 100% coverage
before submitting any patches.
Change-Id: Icc09d4402dc38c8a92a1cebb2cb502728c092f36
Hermet Park [Thu, 3 Jun 2021 11:48:02 +0000 (20:48 +0900)]
common initializer: correct the result value.
When memory is not allocated successully, it must return the FailedAllocation as the return value.
Previous initializer wrongly returns the value that case, this corrects it.
Change-Id: I244900ed9bce20c74a0ef5fce4e199b7ffa4e67a
Hermet Park [Wed, 2 Jun 2021 11:27:05 +0000 (20:27 +0900)]
infra: install capi header file only its binding option is enabled.
decouple the capi header from the default headers by replacing it in capi folder.
now it's also installed optionally.
Change-Id: I11f6ebc238cfd1e4086026846560464aab44ec98
Hermet Park [Thu, 3 Jun 2021 04:54:54 +0000 (13:54 +0900)]
test: remove gtest & its infra.
thorvg is going to use catch2 framework, this is a cleanup work
before introducing catch2 utc.
See Catch2:
https://github.com/catchorg/Catch2/tree/v2.x
Change-Id: I78a0054d4307b4664353dd0e5376518f3861bb71
Hermet Park [Thu, 3 Jun 2021 02:45:59 +0000 (11:45 +0900)]
sw_engine rle: code refactoring.
keep it neat code, --loc
Change-Id: I0125c712899a8bdf96e4fb0486683d04422cd63f
Hermet Park [Wed, 2 Jun 2021 12:15:58 +0000 (21:15 +0900)]
sw_engine: data optimization.
changed alpha channel data type to 32 bits from 8 bits,
since subsequent data operations requires 32 bits values.
this 8 bits (since channel range is up to 255) doesn't helpful
for saving memory size because it would generate additional data casting by compiler.
I compared the binary size and this patch saves about 600bytes.
Change-Id: Ieeab3a1361fe0a5c58be493d7b3ff70e1b801562
Mira Grudzinska [Wed, 2 Jun 2021 12:01:12 +0000 (14:01 +0200)]
sw_engine common: improving the alpha blending algorithm
Calculations accuracy in ALPHA_BLEND function has been
improved. Until now blending resulted in a slight hue change
(all color channels affected). The chosen method of calculation
is a compromise between the accuracy and the performance.
Change-Id: Ic4dad4c73ab74b6071b69c32f34394474ade6e5a
Hermet Park [Wed, 2 Jun 2021 11:14:10 +0000 (20:14 +0900)]
capi: fix usage after this -
2c37191584b18a532cd01e7986fc5f53ebeea80d.
Change-Id: Iaf6fdb2ab1afdbda0ba6599cadc20cb83d63f561
Mira Grudzinska [Fri, 28 May 2021 01:32:00 +0000 (03:32 +0200)]
common: added API to get the transformation matrix of the object
Change-Id: Ia71ba62f44d342b4d353c7de9dc1377949ab914d
Hermet Park [Wed, 2 Jun 2021 07:38:21 +0000 (16:38 +0900)]
api: --inproper const syntax.
compoiste() requires internal data change, its api syntax should not contain "const"
though this changes the api spec, but won't affect build break
since it allows wider usage.
@API Modification
from:
Result Paint::composite(std::unique_ptr<Paint> target, CompositeMethod method) const noexcept
to:
Result Paint::composite(std::unique_ptr<Paint> target, CompositeMethod method) noexcept
Change-Id: Iece971c4635b0f636a066fa1292c59697cd24d46
Hermet Park [Fri, 28 May 2021 07:22:54 +0000 (16:22 +0900)]
docs: -- beta tag.
Scene::clear() is ready to public.
Change-Id: Ice4dd6b22a1588fecba4e32f549daf6ba847bfa4
Hermet Park [Fri, 14 May 2021 11:19:03 +0000 (20:19 +0900)]
common: fix a potential memory leak after clear()
Paints must clear canvas engine data if they were dismissed from the canvas,
1. Canvas::clear(free = false) must retain all the paints from the paints hierarchy
so that user keeps the all dangled paints lifecycle.
In this scenario, it could leak the engine data of paints, this patch fixes it.
2. Previously, t just keeps the immediate paints lives of canvas, but not them of children of scene nor picture.
This patch changes a policy which was not considered seriously,
Now it keeps the all paints lives through the tree-hieararchy.
3. Also changed the Scene::clear() behavior identical to Canvas::clear() for consistency.
@API Modification:
Change-Id: I58708f7c759f48be30853364da87b70d63adbe22
From: Result Scene::clear() noexcept;
To: Result Scene::clear(bool free = true) noexcept;
Mira Grudzinska [Thu, 27 May 2021 11:05:42 +0000 (13:05 +0200)]
svg_loader: the viewBox clipping composite layer added independently of the shapes bounds
For now the bounding box of all the shapes was established and if it was larger
than the viewBox of the SVG, the clipping layer was added. The bounds api
returns the rectangle that encloses the shapes before any transformations.
So comparing it with the viewBox doesn't make sense. The comparison is removed
and the clipping layer is always added.
Change-Id: Id007587362616e3d646b2ca8f4a17581c4eba74a
Hermet Park [Fri, 28 May 2021 05:22:52 +0000 (14:22 +0900)]
sw_engine renderer: fix aliasing problem.
a corner case is detected that anti-aliasing is missing at shapes
if the shape has the dash-style stroke.
By adding the condition, it applies anti-aliasing properly.
@Issues: 394
Change-Id: Idc9ab48b3200643ce98abe3a10d67de09a9c74c7
Mira Grudzinska [Fri, 28 May 2021 02:30:09 +0000 (04:30 +0200)]
Revert "svg_loader: clipping composite layer is added independently on the bounds of the shapes"
This reverts commit
c38e4e40a7e0a573200e03ea57941a30f88b9939.
It was pushed by mistake. The same changes are currently under rev in PR #399
Change-Id: I7d0e3f473d4c0b185cd01ea782d8aeacb05b273f
Mira Grudzinska [Thu, 27 May 2021 10:54:08 +0000 (12:54 +0200)]
svg_loader: clipping composite layer is added independently on the bounds of the shapes
Change-Id: Ia9fd2315d8e7ba9b335ca70bbc0015fed226a451
JunsuChoi [Thu, 27 May 2021 05:26:23 +0000 (14:26 +0900)]
common Initializer: Fix init count
Calling init repeatedly doesn't increment count.
This leads to unwanted termination due to mismatch of the pair.
Mira Grudzinska [Thu, 27 May 2021 00:49:10 +0000 (02:49 +0200)]
common scene: fixing the initial values of variables in the bounds getter
The values of the most bottom right corner of the scene bounding box
should be initialized with the biggest negative values.
Also an empty line removed.
Mira Grudzinska [Wed, 26 May 2021 00:54:15 +0000 (02:54 +0200)]
sw_engine: refactoring of the radial 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.
Mira Grudzinska [Wed, 26 May 2021 00:39:38 +0000 (02:39 +0200)]
sw_engine: refactoring of the radial gradient rect 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.
Mira Grudzinska [Wed, 26 May 2021 00:10:32 +0000 (02:10 +0200)]
sw_engine: refactoring of the linear gradient rect 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.
Hermet Park [Tue, 25 May 2021 06:31:07 +0000 (15:31 +0900)]
docs: fixed relative thorvg image path to the absolute one.
JunsuChoi [Tue, 25 May 2021 05:44:35 +0000 (14:44 +0900)]
infra Documentation: Update main page and remove treeview
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/
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.
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.
Hermet Park [Sat, 22 May 2021 07:14:12 +0000 (16:14 +0900)]
Update README.md
Change-Id: I88f2fd48865176e00d7179b72039002c1cb04c1a
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
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
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
Hermet Park [Mon, 17 May 2021 04:58:52 +0000 (13:58 +0900)]
res: remove icon
Change-Id: Ie2cb5ca100208328a78338d680df85b75de9a2ac
Hermet Park [Sun, 16 May 2021 14:59:02 +0000 (23:59 +0900)]
Update README.md
Change-Id: I84aa9a97504e3919178b6bcf3c349739b75449c7
Hermet Park [Sat, 15 May 2021 14:14:52 +0000 (23:14 +0900)]
Update README.md
Change-Id: Ibe9f3738bce444884074775f2315172f1bb430d0
Hermet Park [Sat, 15 May 2021 12:56:31 +0000 (21:56 +0900)]
Update README.md
Change-Id: I351664fa69342f4b6f6543effd0a5851e5e51041
Hermet Park [Sat, 15 May 2021 11:19:34 +0000 (20:19 +0900)]
Add files via upload
Change-Id: I2350cc753c5e4d5a737ad8b6d2cc3c3cae1a04c9
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
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
Mira Grudzinska [Sun, 2 May 2021 21:04:54 +0000 (23:04 +0200)]
doc: linguistic changes in C++ API docs
Change-Id: If465d27859480d73c8457c18d216111217e7c342
Hermet Park [Thu, 13 May 2021 10:47:37 +0000 (19:47 +0900)]
Update README.md
Change-Id: I89687821eeba8f6aa7aae678c076399987d41614
Hermet Park [Thu, 13 May 2021 10:41:17 +0000 (19:41 +0900)]
Update README.md
Change-Id: I039a1980f28a0aa294ea31eb5309355611c5206e
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.
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
Hermet Park [Tue, 11 May 2021 13:23:35 +0000 (22:23 +0900)]
Update CONTRIBUTING.md
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.
Hermet Park [Mon, 10 May 2021 05:05:12 +0000 (14:05 +0900)]
bump up v0.1.5
Change-Id: I7b22b76cfc6551077bd5e8eeb655844601dc8462
Mira Grudzinska [Sun, 2 May 2021 23:56:31 +0000 (01:56 +0200)]
docs: polishing up the C API docs
Change-Id: Ifd061b706147ef6e20f5717bf30e768979d0ab85
Hermet Park [Mon, 3 May 2021 12:14:52 +0000 (21:14 +0900)]
Update README.md
Hermet Park [Mon, 3 May 2021 10:25:30 +0000 (19:25 +0900)]
Update README.md
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)
Mira Grudzinska [Sun, 2 May 2021 19:43:33 +0000 (21:43 +0200)]
Update README.md
Fixed example and minor linguistic changes
Hermet Park [Sat, 1 May 2021 15:19:14 +0000 (00:19 +0900)]
Update README.md
updated contents
Hermet Park [Sat, 1 May 2021 14:50:07 +0000 (23:50 +0900)]
Update README.md
+ Practices: Tizen, Rive
Hermet Park [Sat, 1 May 2021 05:58:30 +0000 (14:58 +0900)]
Update README.md
Hermet Park [Sat, 1 May 2021 05:54:15 +0000 (14:54 +0900)]
res: updated images
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.
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
Hermet Park [Sat, 1 May 2021 03:37:45 +0000 (12:37 +0900)]
loader svg: fix build break due to typo
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.
Hermet Park [Fri, 30 Apr 2021 11:50:22 +0000 (20:50 +0900)]
res: update images.
Change-Id: I06860f22408945033c6c8784384995ea49959b24
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
Hermet Park [Fri, 30 Apr 2021 10:45:22 +0000 (19:45 +0900)]
bump up v0.1.4
Change-Id: Id45999aba84a8a0fe992e2ba841650a229b2b2a7
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
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
Hermet Park [Fri, 30 Apr 2021 09:53:20 +0000 (18:53 +0900)]
doc: polish up api documentation.
JunsuChoi [Thu, 29 Apr 2021 06:05:30 +0000 (15:05 +0900)]
doc common: Add enum and struct docs in capi
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
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.
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
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
Mira Grudzinska [Wed, 28 Apr 2021 13:03:37 +0000 (15:03 +0200)]
doc common: change of the return value in the 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
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
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.
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.
Hermet Park [Wed, 28 Apr 2021 04:40:14 +0000 (13:40 +0900)]
bump up v0.1.3
Change-Id: If6c037defcf1c240797ae315614aad89dad365a6
JunsuChoi [Tue, 27 Apr 2021 02:21:16 +0000 (11:21 +0900)]
doc common: Fix typo and missing parameter
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.
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.
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.
Hermet Park [Tue, 20 Apr 2021 11:32:22 +0000 (20:32 +0900)]
loaders svg: code refactoring
split functions as its purpose.
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)
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
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
Hermet Park [Tue, 20 Apr 2021 08:55:18 +0000 (17:55 +0900)]
bump up v0.1.2
Change-Id: Ia351fa777c21654308ae0d717feddbcfa24592ab
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
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
Hermet Park [Mon, 19 Apr 2021 01:48:56 +0000 (10:48 +0900)]
bump up v0.1.2
Change-Id: Ia3f1dddf6c27fbe3894df637f15d8d9b55f7710c
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
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
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
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
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.
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
JunsuChoi [Tue, 13 Apr 2021 09:34:14 +0000 (18:34 +0900)]
loader SvgLoader: Fix for coding convention
Change-Id: I0c6852eef9d19a8a58d1912ff54084a9c2b2c13d
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.
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.
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.