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
Hermet Park [Thu, 21 Oct 2021 06:15:07 +0000 (15:15 +0900)]
svg_loader: code refactoring.
cast to proper value 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
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.
Hermet Park [Wed, 20 Oct 2021 13:50:07 +0000 (22:50 +0900)]
updated license
Add missing original copyright texts in the source code.
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.
JunsuChoi [Wed, 20 Oct 2021 07:01:43 +0000 (16:01 +0900)]
common: Update license infomation
Update LICENSE by adding BSD license.
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.
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.
JunsuChoi [Tue, 19 Oct 2021 06:49:50 +0000 (15:49 +0900)]
common: Fix typo
Mira Grudzinska [Sun, 17 Oct 2021 23:39:54 +0000 (01:39 +0200)]
capi: example modified
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
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
JunsuChoi [Fri, 15 Oct 2021 04:19:03 +0000 (13:19 +0900)]
[Tizen] common: Change dlog tag name for VD profile
Change-Id: Id9c8e235fe86f690b3a9dee2ea0caae954aae0bd
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'
Hermet Park [Thu, 14 Oct 2021 07:18:46 +0000 (16:18 +0900)]
Update README.md
Hermet Park [Thu, 14 Oct 2021 07:16:26 +0000 (16:16 +0900)]
Update README.md
Hermet Park [Thu, 14 Oct 2021 07:16:06 +0000 (16:16 +0900)]
Add files via upload
Hermet Park [Thu, 14 Oct 2021 07:15:21 +0000 (16:15 +0900)]
Delete example_tvg.png
Hermet Park [Thu, 14 Oct 2021 07:14:09 +0000 (16:14 +0900)]
Add files via upload
Hermet Park [Thu, 14 Oct 2021 07:13:34 +0000 (16:13 +0900)]
Delete example_tvg.png
Hermet Park [Thu, 14 Oct 2021 07:12:36 +0000 (16:12 +0900)]
Update README.md
Hermet Park [Thu, 14 Oct 2021 07:12:04 +0000 (16:12 +0900)]
Add files via upload
Hermet Park [Thu, 14 Oct 2021 07:11:37 +0000 (16:11 +0900)]
Delete example_tvg.png
Hermet Park [Wed, 13 Oct 2021 11:24:21 +0000 (20:24 +0900)]
infra: add "all" option for tools.
just for developer convenience.
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.
Mira Grudzinska [Wed, 13 Oct 2021 11:46:41 +0000 (13:46 +0200)]
tests: saver capis added into the tests
Michal Maciola [Wed, 13 Oct 2021 09:12:52 +0000 (11:12 +0200)]
wasm: saveTvg add compress option
Hermet Park [Wed, 13 Oct 2021 11:12:51 +0000 (20:12 +0900)]
svg_loader util: just fix a typo
exponet -> exponent
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.
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
Hermet Park [Wed, 13 Oct 2021 10:02:55 +0000 (19:02 +0900)]
bindings capi: code refactoring
fix for code consistency, no logical changes.
Mira Grudzinska [Tue, 12 Oct 2021 14:32:06 +0000 (16:32 +0200)]
capi: saver capis added
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.
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
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.
Mira Grudzinska [Tue, 12 Oct 2021 21:43:38 +0000 (23:43 +0200)]
tests: tvg_gradient_duplicate added to the capi tests
Mira Grudzinska [Tue, 12 Oct 2021 12:49:31 +0000 (14:49 +0200)]
capi: tvg_gradient_duplicate() added
Mira Grudzinska [Tue, 12 Oct 2021 12:00:05 +0000 (14:00 +0200)]
docs: ++
Mira Grudzinska [Mon, 11 Oct 2021 21:32:06 +0000 (23:32 +0200)]
docs: saver module description ++
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
Hermet Park [Mon, 11 Oct 2021 06:34:42 +0000 (15:34 +0900)]
tools svg2tvg: remove unused header
Mira Grudzinska [Sun, 10 Oct 2021 22:13:11 +0000 (00:13 +0200)]
svg2tvg: added missing array lib
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
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__.
Michal Maciola [Fri, 8 Oct 2021 15:38:18 +0000 (17:38 +0200)]
example: added image-embeded-jpeg.svg (#890)
Hermet Park [Thu, 7 Oct 2021 10:59:33 +0000 (19:59 +0900)]
Update CONTRIBUTING.md
Hermet Park [Thu, 7 Oct 2021 06:24:16 +0000 (15:24 +0900)]
infra: renamed build badge names.
Hermet Park [Thu, 7 Oct 2021 05:59:54 +0000 (14:59 +0900)]
test: ++safety.
add null handlings just in case.
Mira Grudzinska [Tue, 5 Oct 2021 13:20:19 +0000 (15:20 +0200)]
tests: added tests for size and composite C apis
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.
JunsuChoi [Thu, 7 Oct 2021 03:55:13 +0000 (12:55 +0900)]
infra : add window build (with loaders)
projectitis [Thu, 7 Oct 2021 05:51:07 +0000 (18:51 +1300)]
tests: fix stack overflow error in testPicture for windows
Mira Grudzinska [Fri, 24 Sep 2021 11:32:53 +0000 (13:32 +0200)]
all: fix compiler warnings
pow->powf and sqrt->sqrtf
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
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.
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);
Mira Grudzinska [Mon, 4 Oct 2021 00:12:37 +0000 (02:12 +0200)]
docs: c and c++ apis docs improved
JunsuChoi [Wed, 6 Oct 2021 07:07:59 +0000 (16:07 +0900)]
infra: Change test name
Build Test -> Build(Linux)
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" ...
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")))
Mira Grudzinska [Tue, 5 Oct 2021 14:36:41 +0000 (16:36 +0200)]
tests: ++LOC svg loader, tvg saver
Projectitis [Wed, 6 Oct 2021 00:16:39 +0000 (13:16 +1300)]
Update authors
JunsuChoi [Wed, 6 Oct 2021 01:47:21 +0000 (10:47 +0900)]
Readme: Add window build test badge
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
Mira Grudzinska [Tue, 5 Oct 2021 23:08:34 +0000 (01:08 +0200)]
Revert "sw_engine: border cases for gradients"
This reverts commit
284298445b900bbba09beb4673e9d055584e1f81.
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.
Mira Grudzinska [Mon, 4 Oct 2021 13:07:44 +0000 (15:07 +0200)]
docs: ++ docs of the load apis
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
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.
Mira Grudzinska [Mon, 4 Oct 2021 19:40:23 +0000 (21:40 +0200)]
capi: picture size apis added
Mira Grudzinska [Mon, 4 Oct 2021 08:03:48 +0000 (10:03 +0200)]
docs: minor changes (#868)
Mira Grudzinska [Sun, 3 Oct 2021 13:08:46 +0000 (15:08 +0200)]
capi: removed repeated comments
projectitis [Sat, 2 Oct 2021 03:40:31 +0000 (16:40 +1300)]
Readme: Add links to documentation
Projectitis [Fri, 1 Oct 2021 23:38:09 +0000 (12:38 +1300)]
Portable fallthrough attribute
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
Mira Grudzinska [Fri, 1 Oct 2021 06:10:40 +0000 (08:10 +0200)]
docs: improving c++ and c apis docs
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.
Mira Grudzinska [Thu, 30 Sep 2021 21:53:35 +0000 (23:53 +0200)]
capi: added the composite getter
Hermet Park [Fri, 1 Oct 2021 05:53:56 +0000 (14:53 +0900)]
common: code refactoring.
--loc, no logical changes.
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
Projectitis [Wed, 29 Sep 2021 02:08:43 +0000 (15:08 +1300)]
Changes to support MSVC
Projectitis [Wed, 29 Sep 2021 04:29:17 +0000 (17:29 +1300)]
Update readme with optional dependencies
JunsuChoi [Wed, 29 Sep 2021 13:53:09 +0000 (22:53 +0900)]
README: Add license badge
Mira Grudzinska [Tue, 28 Sep 2021 10:03:04 +0000 (12:03 +0200)]
svg_loader: fixing minor warnings
Hermet Park [Fri, 1 Oct 2021 03:05:34 +0000 (12:05 +0900)]
bump up version v0.5.1
Change-Id: Ia0800ca5f93d77b37e65ae46fde8fc60f9b73063
JunsuChoi [Fri, 1 Oct 2021 00:55:05 +0000 (09:55 +0900)]
[Tizen] Enable png, jpg loader
NUI's Picture class has been added, so png and jpg loaders are required.
Change-Id: I46d23d45665325ecc6093639b52745d95eacc2b4
Hermet Park [Mon, 27 Sep 2021 02:28:40 +0000 (11:28 +0900)]
bump up version v0.5.0
Change-Id: If9b1a1615f0add93edeea1dbf0dda791cbf05018
bchrescionko [Fri, 24 Sep 2021 13:19:02 +0000 (15:19 +0200)]
test: creating test for downscaling picture (#837)
Added tests for the functions rastering scaled down images
Change-Id: Ib63690ae5bf4c35022ee5d2cc75b91fcd3324df7
bchrescionko [Fri, 24 Sep 2021 12:08:59 +0000 (14:08 +0200)]
test: added test for tvg_picture_get_viewbox function
Hermet Park [Fri, 24 Sep 2021 12:07:34 +0000 (21:07 +0900)]
Update CONTRIBUTING.md
Hermet Park [Fri, 24 Sep 2021 06:25:18 +0000 (15:25 +0900)]
Update README.md
Hermet Park [Fri, 24 Sep 2021 03:19:02 +0000 (12:19 +0900)]
infra: just released v0.5.0
Change-Id: Ie4dd6cf81cf2c0f4489348e66859df81a385c053
Hermet Park [Fri, 24 Sep 2021 03:11:47 +0000 (12:11 +0900)]
sw_engine: fix compiler a warning
handle them double type values.
Hermet Park [Fri, 24 Sep 2021 03:04:31 +0000 (12:04 +0900)]
tvg_saver: resolve sanitizer report.
"runtime error: load of misaligned address 0x7fb67895c815 for type 'unsigned int', which requires 4 byte alignment"
same to
c8cc973888e6d1148264f619c85fea93ca2f1b7c
Hermet Park [Fri, 24 Sep 2021 02:58:48 +0000 (11:58 +0900)]
tvg_saver: fix the memory leak.
Hermet Park [Fri, 24 Sep 2021 02:53:46 +0000 (11:53 +0900)]
tvg_loader: resolve sanitizer report.
"runtime error: load of misaligned address 0x7fb67895c815 for type 'unsigned int', which requires 4 byte alignment"
This is actually not an issue but we can resolve it with an easy workaround,
since we don't need to see this report repeatedly.
Hermet Park [Thu, 16 Sep 2021 13:03:17 +0000 (22:03 +0900)]
common paint: refine the bounds() api to return the values after applying transformation.
Current paint::bounds() returns the coordinates under the raw status,
the values are not quite useful if the paint object has the transformed children.
Thus, we extends the feature and give an additional parameter "transformed"
to return the coordinates values after transformation by user demands.
This is also necessary for tvg format, since we need the exact view size of the scene information.
The previous api is deprecated and we introduce a new api to replace it.
@APIs:
+ Result Paint::bounds(float* x, float* y, float* w, float* h, bool transformed) const noexcept;
- Result Paint::bounds(float* x, float* y, float* w, float* h) const noexcept;
@Issues: https://github.com/Samsung/thorvg/issues/746
Hermet Park [Thu, 23 Sep 2021 06:17:48 +0000 (15:17 +0900)]
apis: release official apis.
tvg picture is going to be released, we need the Saver as well.
Also, two stable periperal apis are released in v0.5
@APIs:
Result Picture::load(const char* data, uint32_t size, const std::string& mimeType, bool copy = false) noexcept;
CompositeMethod Paint::composite(const Paint** target) const noexcept;
Result Saver::save(std::unique_ptr<Paint> paint, const std::string& path, bool compress = true) noexcept;
Result Saver::sync() noexcept;
static std::unique_ptr<Saver> Saver::gen() noexcept;
Hermet Park [Thu, 23 Sep 2021 07:50:08 +0000 (16:50 +0900)]
api: remove the redundant api, Picture::paint().
tvg::Picture is replaced to tvg::Scene if the picture has the vector tree,
Thus it's useless since it won't be reached logically.