Commit graph

3796 commits

Author SHA1 Message Date
Mateusz Palkowski
cd699738b6 capi: Added wrapper
for tvg::Shape::transform (fixed)

Change-Id: Ibbb867e828a07af90f38ed506894d026004fa53d
2020-07-29 12:23:18 +02:00
Hermet Park
9e0c4666af common: revise transform interfaces.
transform interfaces are getting duplicated in derived classes.

we moved to the super for smaller apis count.

Applied strategy pattern to hide the inheritance.

Change-Id: I7b0c3ff9317e9bf3c97bb0c849bf55e79ee9a591
2020-07-29 16:52:40 +09:00
Hermet Park
8a924cbd78 sw_engine: fix out of cell memory.
we can adjust cell size if the cell memory is out.
the main rle logic missed the exception handling.

Change-Id: I4419eefefccafd788729111eafeb65aa4e6a20e9
2020-07-29 13:40:11 +09:00
Hermet Park
d2d4a2a3e7 gl_engine: updated file permission.
please keep 664 for files.

Change-Id: Iaddd87b0d35a74bc8c6cbf330fecbd28e14ad57a
2020-07-28 20:57:34 +09:00
Hermet Park
621d607126 updated AUTHORS
Change-Id: Ia3b91f2dff139b80c5e968be2a0ecb725e6b62bd
2020-07-28 20:46:11 +09:00
Mateusz Palkowski
ba17287419 capi: Added wrapper for tvg::Shape::translate
Change-Id: Idcf672926c489148f15c654f85b4d6c3ff8cde80
2020-07-27 15:12:07 +02:00
Mateusz Palkowski
52ece17fc3 capi: Added wrapper for tvg::Shape::rotate
Change-Id: I2cef6600586c037caaf8d2f45fc6d78e93dce925
2020-07-27 15:11:38 +02:00
Mateusz Palkowski
87a6b5219f capi: Added wrapper for tvg::Shape::scale
Change-Id: Ie8380478d9e5bf99c924f3b93cfbb3d80ff55611
2020-07-27 15:11:08 +02:00
Hermet Park
bee94d48fe sw_engine gradient: support x/y scale for linear gradient
Change-Id: Ic58e7cc61a3c90307b6cfb629eb8af69b75fb903
2020-07-24 21:09:24 +09:00
Hermet Park
76a7c900be sw_engine gradient: support x/y scale for radial gradient
Change-Id: Id725637e261642d0e92d100c73841278b7f44c1c
2020-07-24 16:48:41 +09:00
Hermet Park
5fdc1f7fc8 sw_engine: revise stroke scaling logic.
previous fast track logic is useless,
it actually doesn't helpful for performance, just increase the code complexity.

Change-Id: Ib6ad204edfb241d74c41413dfec7ab42fb02af81
2020-07-24 11:03:20 +09:00
Hermet Park
f1aab52958 sw_engine: support bidirectional stroke scaling.
if the transform scale factor for x/y is not identical,
it keeps its both xy scale factor then apply them
for stroking calculation.

Change-Id: I519dfce3ce7b4a12c13da1801d6a00e139e7400f
2020-07-23 17:36:54 +09:00
JunsuChoi
62aa24d9ad SvgLoader: Fix opacity propagation
Remove duplicate opacity calculation of the scene.

Change-Id: I1253ea290e78fdbf946a492ebfcaaa082fbfc121
2020-07-23 01:40:36 +00:00
Hermet Park
4d72eeda15 sw_engine: revise scale transform logic.
Basically, stroke width size is linear,

engine couldn't apply scale factor from the matrix which contains 2 dimensional values.

Thus, we can apply it if the scale factor of x/y is identical.

Otherwise, we should transform every stroke points in the stroking process.
That scenario can be improved with another patch.

Change-Id: I070dcf29d2e42f21e182bdf4239781464158ef73
2020-07-22 20:59:52 +09:00
Hermet Park
5dcafb8b89 comon: code refactoring
renamed internal variable for better readibility.

Change-Id: I07dc66c4bd63f2aec8036aab14ec3ed608820fbc
2020-07-22 18:45:11 +09:00
Hermet Park
96477c0a24 sw_engine: revise outline transform
sw_engine simulates floating point by integer bit shifting,
it loses the accuracy while converting the number data.

This occurs the inacculated curve points result if it scales up very large size.

So we transform points before converting data in order to avoid losing the numbers less decimal point.

Change-Id: I0172e83f06b1a19143a2f65f667dc193e9a4396a
2020-07-21 18:44:27 +09:00
JunsuChoi
27ca82c140 SvgLoader: Support display=none feature
If display is none, scene does not create a child shape,
and shape does not draw fills and strokes.

Change-Id: I8af72c904be00107dff115429e27df7ba4cb83b6
2020-07-21 02:51:28 +00:00
Hermet Park
6cfb3cdb6c test: replaced svg resources.
Change-Id: I30ab48ecc0bbae158baecce1f6173fc36ecfbbb6
2020-07-20 11:44:53 +09:00
Hermet Park
2ba529c8fb common transformation: fix transformation multiply
Change-Id: Ibc95fab0abfc07aa7f0c4ff6c74785d4f73d02c7
2020-07-17 17:54:21 +09:00
Hermet Park
a5d1542e44 test: ++code safety
added null check for exceptional case.

Change-Id: I12a5e9724149f607188b67a84e46a033a16270f7
2020-07-17 17:15:16 +09:00
Hermet Park
56c0235dc5 test: changed file permission.
Change-Id: I8172152f700d10fa1d8c84473d45ff484c0b36d8
2020-07-17 16:57:02 +09:00
Hermet Park
dd1f7875f6 updated AUTHORS
Change-Id: If9412e0598bdfa59dc142aacaec1cb5ae3f5401d
2020-07-17 16:56:05 +09:00
Pranay Kumar Samanta
3b385d1d54 gl_engine: Fix crash in animation callback. Refactor test samples draw function. Fix open shape drawing.
Change-Id: I9ca2cb3951f2229f36292b69221451e0eaf5b6a1
2020-07-17 07:54:58 +00:00
Hermet Park
ca6417ec8d svg_loader: code refactoring.
leave to shape to handle non-effective values.

Change-Id: I4193653710498e0ea31b0ff88fd8f0f8f0238e0e
2020-07-16 17:17:16 +09:00
Hermet Park
231b3779b1 svg_loader: code refactoring
keep clean & neat code.

Change-Id: Ia17139a291fc9934fe2f8d5e51417c44ec50f2ed
2020-07-16 17:11:47 +09:00
Hermet Park
33b067eb0a svg_loader: optimize data delivery.
We know how this shape is passed,
so don't use unique_ptr to save data size.

Change-Id: I02410692199b9cee701c206246ceea5988d06726
2020-07-16 17:03:44 +09:00
JunsuChoi
e3218a8a9a test: Fix typo in makefile
' -> `

Change-Id: Iafacfb78d8f788ef302e5ad7f1a1d9cfbd380ffb
2020-07-16 14:58:35 +09:00
Hermet Park
a6344daa66 sw_engine: fix wrong gradient fill transform.
it missed the offset when transformed gradient positions.

now it's fixed.

Change-Id: I916bd88b40bc29ca57d31411b92e10fe357d720e
2020-07-16 13:45:27 +09:00
JunsuChoi
1b48bf10fe SvgLoader: Verify SVG resource
Only <svg> tag is parsed first before data get in file open function.
If the <svg> tag is found, the loaded file is valid and stores viewbox information.
After that, the remaining content data is parsed in order with async.

Change-Id: Idb934fbd5e190c7c523abe601a80745ccc767af1
2020-07-16 09:36:19 +09:00
Hermet Park
2501c50506 capi: improve code template.
Change-Id: Ia48a21fbd93103b371b41a13adf46d82b76803b1
2020-07-15 16:18:55 +09:00
Hermet Park
9876d685cf capi: support c interfaces
this capi is under the beta,
we quickly provide this working prototype for collaboration.

Change-Id: Ie246abc306feb9a1305d1b593c4f3ef7f40ab5a9
2020-07-15 16:00:09 +09:00
Hermet Park
9e1ba8d2c0 sw_engine: introduce avx simd instruction
avx is the cutting edge method for intel & amd cpus simd instruction.
We are going to support this feature for the desktop environment (instead of sse)

You can turn on this with configuration something like this:

$meson . build -Dvectors=avx

Current patch supports only for raster solid color

Change-Id: I068ba30a1f63d480415e2762f8021fc8d6d28a39
2020-07-11 20:58:09 +09:00
Hermet Park
2deb6919c7 Merge "SvgLoader: Inherit parent opacity" into tizen 2020-07-10 00:50:38 +00:00
Hermet Park
9299c41a21 svg_loader: code refactoring.
simpler code is better for readibility.

Change-Id: I4bc18bb184aea6fea0179bb38b445da5e0acba43
2020-07-10 09:31:50 +09:00
Hermet Park
22581040f3 Merge "SvgLoader: Support to linear, radial gradient" into tizen 2020-07-10 00:19:51 +00:00
Hermet Park
c237eb04c1 Merge "SvgLoader: Fix typo (SCubic draw)" into tizen 2020-07-10 00:16:49 +00:00
JunsuChoi
e86d2ab686 SvgLoader/Parser: Fix typo
Change-Id: Iced0f2196c52f7cc729d6f648f5df6affbda3357
2020-07-09 16:36:30 +09:00
JunsuChoi
581451ea8d SvgLoader: Fix typo (SCubic draw)
Change-Id: Id54cf6a7ca66cdbc96cfb93143aacccab95de822
2020-07-09 15:40:21 +09:00
JunsuChoi
84df3439de SvgLoader: Inherit parent opacity
Change-Id: If52c6581845e9918dc13c4627080ba84d270a07b
2020-07-09 13:37:12 +09:00
JunsuChoi
f644443655 SvgLoader: Support to linear, radial gradient
Change-Id: Ida3f6ccca5f0d6ed1922b7ce99d2d2f3203f5ba9
2020-07-09 13:36:46 +09:00
Hermet Park
99428ee80a build: support features toggling in meson option.
Change-Id: Id1ebda70fe8380aaa913f79af26e5c39893a6df5
2020-07-08 15:30:12 +09:00
Hermet Park
84af527a27 build: refactoring meson script.
move out engine/loader dependency to its immediate parent folders.

Change-Id: I7f08433fc6d2a333951fceaffea81cbe2e5da9e3
2020-07-08 10:56:44 +09:00
Hermet Park
e2fc353846 build: refactoriong meson script.
move gl dependency to gl_engine part which is right position.

Change-Id: I9d4935f94eff96ca1527762c92d07f9b216f19cd
2020-07-08 10:47:04 +09:00
Hermet Park
400ad1c585 Merge "common loader: return viewbox info from the vector resource." into tizen 2020-07-07 10:06:25 +00:00
Hermet Park
c0280e6d57 svg_loader: code refactoring.
initialize members in its own constructor.

Change-Id: I6450971330dd3e3235b0f690a8d9b066cf374212
2020-07-07 17:52:16 +09:00
Hermet Park
018f4919da svg_loader: allow deferred loading.
don't push thread to work hard unless it's necessary.
that might occur performance drop.

Change-Id: Ib71fa0ae46461b10b7ed7ef356512fbf2a7aa0a8
2020-07-07 17:46:29 +09:00
JunsuChoi
feb6aad641 SvgLoader: Fix z-angle calculation
Change-Id: I9220abd9f92dbdf250ea071af128a93a0bbb3d78
2020-07-07 15:24:19 +09:00
Hermet Park
6967b998b6 common loader: return viewbox info from the vector resource.
if a scene loads a vector resource, it must have viewbox info from the design,
That viewbox will be used as bounding box so that user can scale up/down
the scene by its requirements.

Change-Id: Iafa39af23118a03de207c745364d56c837892e1b
2020-07-07 15:17:43 +09:00
Hermet Park
d37cdaf57c Merge "SvgLoader: Support arc_to draw" into tizen 2020-07-07 05:49:20 +00:00
JunsuChoi
1d24838c67 SvgLoader: Support arc_to draw
Change-Id: I950c8e850605f990d6a0aa59a067ced571ffdb51
2020-07-07 14:28:52 +09:00