Commit graph

1317 commits

Author SHA1 Message Date
Mira Grudzinska
babb10b7f3 sw_engine: rasterization region edited in the case of fast tracking
Since no antialiasing is applied for the fastTracking cases,
the shape's rasterization region needs to be edited. To establish
the rastered bbox, the rounding is performed before the bbox corners
are casted to the SwCoords.
2021-10-27 12:42:27 +09:00
Hermet Park
07d4db0555 jpg_loader: code refactoring
revise code to satisfy with the tvg world.
no logical changes.

 - modified file names
 - added the samsung copyright
 - removed unnecessary typedefs
 - ++indentation
 - --LOC
2021-10-26 21:16:02 +09:00
Mira Grudzinska
2780d77a52 capi: tvg_paint_transform -> tvg_paint_set_transform 2021-10-26 19:20:15 +09:00
Mira Grudzinska
0dab343ba1 example: gradtransf.svg
The file enables to check the correctness of the gradient transformations
and units.
Removed duplicate file.
2021-10-26 10:47:18 +02:00
Michal Maciola
003f53376e jpg loader: support static jpeg loader using richgel999
Adds an alternative static jpg loader.

The jpg loader copied the jpeg decoding implementation from this open-source
repo: https://github.com/richgel999/jpeg-compressor
That opensource has the public-domain license, it doesn't have any restriction
of the copy.

note: jpgd.cpp is modified version (changed decompress_jpeg_image_from_stream)
for returning BGRA
2021-10-26 15:50:01 +09:00
Mira Grudzinska
8c52f2a870 capi: casting on 'const Paint*' instead of constness removing 2021-10-26 11:51:35 +09:00
Mira Grudzinska
6b7aff560f example: modify the tvg example to plot all of the files 2021-10-26 10:14:23 +09:00
Hermet Park
5be27a151e capi: ++missing const in capis.
Non-changeable apis should keep the const parameter so that
user knows the api won't change the internal data.

Thanksfully, we didn't release the capis, we can change it.
2021-10-25 22:21:09 +09:00
Mira Grudzinska
d25a285b4c capi: gradient transformation apis added 2021-10-25 19:35:00 +09:00
Mira Grudzinska
8cfe4ef708 sw_engine: including gradient transformation into gradient preparation
The gradient transformation has to be taken into account as the last
step of the gradient preparation.
2021-10-25 19:31:38 +09:00
Mira Grudzinska
7b778cd878 sw_engine: proper linear gradient transformation
In the case of any shape transformation, the gradient fill
was not correct.
2021-10-25 19:31:38 +09:00
JunsuChoi
664e95859c svg_loader SvgLoader: Fix gradient default value
If isXXPercentage is true, then it is calculated accordingly.
2021-10-25 11:14:03 +02:00
JunsuChoi
0e57f869bc example: Modify the number of svg image examples
Find the hidden example...
2021-10-25 16:18:15 +09:00
Mira Grudzinska
5fc5fd7f2d svg_loader: requested changes applied 2021-10-25 11:15:58 +09:00
Mira Grudzinska
60029327f0 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).
2021-10-25 11:15:58 +09:00
Mira Grudzinska
280d27ac83 capi: added pointer validation 2021-10-23 12:18:23 +09:00
Mira Grudzinska
a93b5b98a9 svg loader: converting the image path to the absolute one
The href image tag should point to an absolute image path.
2021-10-23 02:26:55 +02:00
Hermet Park
6f3ff2a355 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()
2021-10-22 23:23:09 +09:00
Hermet Park
47334800c6 common: code refactoring
renamed internal module name IteratorModule -> IteratorAccessor
2021-10-22 23:20:29 +09:00
Hermet Park
36270f588e common: replace the id() -> identifier() 2021-10-22 18:47:05 +09:00
Hermet Park
78d85d714a 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
2021-10-22 18:47:05 +09:00
JunsuChoi
d3ba000d80 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.
2021-10-22 16:32:57 +09:00
Ji2z
fcb0258b3c common: Fix typo
Fix typo backeneds to backends
2021-10-22 15:10:02 +09:00
Hermet Park
2e6715ba41 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
2021-10-21 22:39:50 +09:00
Hermet Park
b0c964cbb4 svg_loader: code refactoring.
cast to proper value type.
2021-10-21 15:15:07 +09:00
JunsuChoi
1b675adca4 svg_loader XMLParser: Clean up parameter type
size_t to unsigned int
2021-10-21 15:03:47 +09:00
JunsuChoi
e5196d610d 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.
2021-10-21 15:03:47 +09:00
Hermet Park
9c8e785fdc updated license
Add missing original copyright texts in the source code.
2021-10-20 22:50:07 +09:00
Michal Maciola
d7a3aa580a 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.
2021-10-20 10:34:02 +09:00
Mira Grudzinska
e0aa007659 common: new api for a grad transformation
The new apii allows to transform the gradient fill.
2021-10-19 17:43:24 +09:00
Mira Grudzinska
e6f8aa1379 capi: example modified 2021-10-19 10:27:37 +09:00
Hermet Park
a3ecff9504 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
2021-10-15 15:20:01 +09:00
Mira Grudzinska
1abee9f8d5 svg_loader: fixing viewBox clipping
For vw=width and vh=height, vx or vy > 0 had no effect. Fixed
2021-10-15 12:33:26 +09:00
Michal Maciola
e186bb4a82 svg_loader util: fix missing quot
There was checking for 0 ('\0') that should be checking for '0'
2021-10-15 02:04:17 +09:00
Hermet Park
f4d284df2a infra: add "all" option for tools.
just for developer convenience.
2021-10-14 14:54:24 +09:00
Mira Grudzinska
95430fc645 capi: change defines to enum
Tvg_Engine enum introduced to replace TVG_ENGINE_SW/GL defs.
2021-10-14 12:39:54 +09:00
Michal Maciola
1f42f7da89 wasm: saveTvg add compress option 2021-10-13 21:24:53 +09:00
Hermet Park
d9f421ff4a svg_loader util: just fix a typo
exponet -> exponent
2021-10-13 20:12:51 +09:00
Hermet Park
5a6240bdf3 svg_loader util: code refactoring
fix for thorvg coding convention.

no logical changes.
2021-10-13 20:07:08 +09:00
Mira Grudzinska
e6debdbf15
capi: tvg_swcanvas_set_mempool capi added (#903)
* capi: tvg_swcanvas_set_mempool capi added

* tests: tvg_swcanvas_set_mempool added to the tests
2021-10-13 19:31:39 +09:00
Hermet Park
0f0a0ae4f0 bindings capi: code refactoring
fix for code consistency, no logical changes.
2021-10-13 19:02:55 +09:00
Mira Grudzinska
600055dacd capi: saver capis added 2021-10-13 18:58:18 +09:00
Mira Grudzinska
d40d2ea288 capi: introduced Tvg_Colorspace enum instead of defs
Used in the tvg_swcanvas_set_target() capi.
2021-10-13 18:55:17 +09:00
Mira Grudzinska
0bffe930ad 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
2021-10-13 18:46:21 +09:00
Mira Grudzinska
0497ac894e 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.
2021-10-13 18:40:05 +09:00
Mira Grudzinska
e0488f4a8d capi: tvg_gradient_duplicate() added 2021-10-13 18:34:02 +09:00
Mira Grudzinska
39af185de8 docs: ++ 2021-10-12 14:04:18 +02:00
Mira Grudzinska
c2bbdccac1 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
2021-10-11 18:59:23 +09:00
Hermet Park
4219d2b8ea tools svg2tvg: remove unused header 2021-10-11 15:43:28 +09:00
Mira Grudzinska
883e44ad40 svg2tvg: added missing array lib 2021-10-11 15:30:36 +09:00