Commit graph

3329 commits

Author SHA1 Message Date
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
Hermet Park
a94bd31d56 svg_loader: release resources just in case when it's destroyed.
Change-Id: Ib4a61ae0769d3f9284e3cf450002750c47fba01c
2020-07-07 13:54:33 +09:00
Hermet Park
be6e39eb02 Merge "SvgLoader: Async conversion of svg data" into tizen 2020-07-07 04:49:01 +00:00
JunsuChoi
88ed685f1d SvgLoader: Skip unnecessary transform calc
Change-Id: I58e3baae6d68a2ad4a34c8b460fe67bd36f03b3d
2020-07-07 04:47:08 +00:00
JunsuChoi
d5e78eac71 SvgLoader: Async conversion of svg data
Change-Id: I58025e646b531a0451be096ef1891377e655a3fc
2020-07-07 13:43:00 +09:00
Hermet Park
ef4d7a3956 common shape: expand rectangle arguement to support both corner radius x, y
this is useful for svg loader

Change-Id: Ia11c2d1c6ea88f3fd65c7f75cef8b59bef426bcb
2020-07-07 13:09:46 +09:00
JunsuChoi
02a0e98596 SvgLoader: Support x,y rounded rect
Change-Id: I45d8f7ff3604da0a80c09e2495ed8c0301310094
2020-07-07 02:37:27 +00:00
JunsuChoi
0d19700b4e SvgLoader: Support ellipse draw
Change-Id: I6420673d8341a59b91546224576d1c977c1a08d2
2020-07-07 02:30:06 +00:00
Hermet Park
cfa17c6df6 svg_engine: fix infinit loop dead in stroke rendering.
here logic was wrongly introducedd, we fix the condition check properly.

Change-Id: I97f18f68290c61096f4e7fe54bd6f6fde51e175b
2020-07-07 11:26:28 +09:00
Hermet Park
2929fa5c57 sw_engine: optimize rle rendering.
we don't need to apply anti-aliasing if stroke is there.
here turns off anti-alias if stroke width is more than 2.
magic number 2 is experimentally confirmed.

Change-Id: I09031dc2a0a84f31c5904651ed1e62004645ba9a
2020-07-03 18:32:50 +09:00
Hermet Park
add79b07cd sw_engine: Draw shapes even though there is no explict closed command.
This behavior is not confiremd but it's beneficial for svg spec.

Change-Id: Ia711c057811ae51e472b4e164b36f3dd6af9893f
2020-07-01 16:51:53 +09:00
Hermet Park
e0b66b1c3d Merge "SvgLoader: Don't use custom transform" into tizen 2020-07-01 07:36:15 +00:00
Hermet Park
322174d778 sw_engine: optimize othogonal rectangle drawing.
if the rectangle is not transformed, we don't need to use rle method.
we can directly raster pixels onto the bounding box.

Change-Id: I4e8b57149c0bcd78124d09388bf5115093a43bee
2020-07-01 15:53:47 +09:00
Hermet Park
0d5adb2f03 test: enable gl window only on gl backend.
Change-Id: Iafd790b7fc1df8a58bdce2f18c39029cc0d74945
2020-07-01 14:25:53 +09:00
JunsuChoi
8c815e95c8 SvgLoader: Don't use custom transform
Change-Id: Ia7cd0992bbb8d5ee117806ee62b35604ffd91e16
2020-07-01 14:07:17 +09:00
Hermet Park
5faa94340f sw_engine: fix a regression bug.
Shape must have closed path for filling color.
if closed is skipped, it would take it's a line.

Change-Id: Ie1dcde9edbfc6501a34d6cb9ce54184ade6864db
2020-07-01 12:53:01 +09:00
Hermet Park
f377f33993 sw_engine: fix to update stroking transform
when shape doesn't have fill color, stroking is missed in update.

this fixs that issue.

Change-Id: I49292475e56caa834e79497a16db705b965bcf5f
2020-06-30 17:24:14 +09:00
Hermet Park
61cb144122 test: revise sample.
this patch adds the showcase how to handle exceptional cases.

Change-Id: Ic8e3c740bbf613f4dccace511b6c8d93b987a10c
2020-06-30 13:31:28 +09:00