Hermet Park
0503d1d93b
Update README.md
2024-10-28 12:05:28 +09:00
Sergii Liebodkin
c57e2e6c9f
wg_engine: multisampling support
...
Used native hardware MSAA x4
Full multisampling support including custom blend and compositions.
Must be verified on web and 4K resolution for performance issues
2024-10-25 00:14:04 +09:00
Hermet Park
bace4e3e9e
renderer: --shadow variable compiler warning
2024-10-24 21:33:47 +09:00
Sergii Liebodkin
0815366763
wg_engine: clippath optimization
...
Full review of clipping workflow.
Before we are used separate render target for each clip path and compute shader to find clip path intersections with AND logic.
Now we are using depth buffer and transactions from depth to stencil and back to get AND logic intersections,
Compute shaders, layouts and pipelines was removed
2024-10-24 17:49:17 +09:00
Mira Grudzinska
a1296960eb
svg: prevent runtime error
...
runtime error: applying non-zero offset 1 to null pointer
Observed for Bespoke-leather-belt-2016012857.svg
2024-10-24 13:56:47 +07:00
Ayantunji Timilehin
1d7f4be622
doc: fixed a typo in README
2024-10-24 11:10:03 +09:00
Hermet Park
798968e83a
svg: clean up code
2024-10-24 00:37:49 +09:00
Mira Grudzinska
422674b4c9
api: add focal parameters to the radial apis
...
API modification:
- Result RadialGradient::radial(float cx, float cy, float radius)
- Result RadialGradient::radial(float cx, float cy, float r, float fx, float fy, float fr)
- Result RadialGradient::radial(float* cx, float* cy, float* radius)
- Result RadialGradient::radial(float* cx, float* cy, float* r, float* fx = nullptr, float* fy = nullptr, float* fr = nullptr)
@Issue: https://github.com/thorvg/thorvg/issues/2860
2024-10-23 11:10:14 +09:00
Sergii Liebodkin
b851d98805
wg_engine: use tvg math constants
...
Use tvg pi constant instead of cmath. better mingw compiler support on windows
2024-10-22 16:26:55 +03:00
Hermet Park
98700ed2d2
example: ++scene effect
2024-10-22 15:32:09 +09:00
Hermet Park
2d47585c98
renderer: hotfix a broken svg file sharing
...
Do not allow data sharing among same svg instances.
This should be addressed properly.
2024-10-22 14:27:04 +09:00
Hermet Park
41c1171197
sw_engine: corrected the blur feathering region.
...
issue: https://github.com/thorvg/thorvg/issues/2892
2024-10-22 13:49:14 +09:00
Hermet Park
c14382f3e3
svg: wrapping a paint with a scene
...
Apply scene when a clipper or masking was required.
This is a prerequisite task for migrating
the clip()/mask() features from Paint to Scene.
2024-10-22 13:48:13 +09:00
Hermet Park
765f927dd0
gl_engine: code clean up
...
ensure consistency in coding style.
2024-10-20 13:04:24 +09:00
Hermet Park
c4c262fb16
png, gl_engine: fixed an wrong png colorspace.
...
issue: https://github.com/thorvg/thorvg/pull/2880
2024-10-20 13:04:24 +09:00
Hermet Park
7c06fdd7b1
sw_engine: fixed linear gradient filling masking.
...
properly filtering alpha channel of the 8bits linear gradient
masking drawing.
issue: https://github.com/thorvg/thorvg/issues/2204
2024-10-19 20:40:07 +09:00
Hermet Park
a709b16611
Update README.md
2024-10-19 16:49:55 +09:00
Hermet Park
5e629dab41
Update README.md
...
added downloads badges
2024-10-19 16:33:19 +09:00
RuiwenTang
c3772d11af
gl_engine: ignore masking alpha when calculate inv luma masking
2024-10-19 14:04:43 +09:00
Mira Grudzinska
f94e419d2d
example: include mask extension in personal_character.json
2024-10-18 18:04:31 +09:00
Mira Grudzinska
dfd7693158
lottie: offset does not depend on shape direction
...
According to tests in AE, the offset direction should
not depend on the direction of the shape. A positive
offset value expands the shape, while a negative value
contracts it. Fixed.
2024-10-18 18:02:35 +09:00
Hermet Park
b4304b6d1f
gl_engine: code refactoring
...
- clean up code
- resolve some data casting compiler warnings
2024-10-18 13:40:34 +09:00
Mira Grudzinska
9109656800
sw_engine: fix _rasterDirectImage
...
Since the source buffer is 32 bits, not 8 bits,
both alpha and inverse alpha need to be calculated.
2024-10-18 12:15:02 +09:00
Mira Grudzinska
d9bbd433e8
lottie: correct the array reserved size
...
The color input will contain at least colorStops.count * 4
elements (not including alpha). Since the alpha offset values
don't have to much colorStops, estimation is used.
2024-10-18 12:10:11 +09:00
Mira Grudzinska
78285e1cfd
lottie: fix offset
...
For long Bezier curves compared to the offset value,
the offsetting algorithm caused deformation. The problem
became evident after adding mask extension, as the simple
shapes defined there are based on Bezier curves rather
than as shapes like a circle/rect/etc, which is the case
for the offset. Now fixed.
2024-10-18 12:09:45 +09:00
Hermet Park
b2622193b2
gl_engine: initialize members properly.
...
corrected a regression of uninitialized data value access.
2024-10-18 01:06:36 +09:00
Hermet Park
1e9609c6f7
wg_engine: merged math functions with common
...
issue: https://github.com/thorvg/thorvg/issues/2313
2024-10-17 21:08:00 +09:00
Hermet Park
a26a386ccd
gl_engine: merged point/line data structure with common
...
this also contains a code clean up.
issue: https://github.com/thorvg/thorvg/issues/2313
2024-10-17 20:32:19 +09:00
Sergii Liebodkin
81cb7da9f3
wg_engine: MSAA support, part 1 - move blending to fragment shaders
...
Apply custom blending using fragment shaders instead of compute shaders.
2024-10-17 18:00:15 +09:00
Hermet Park
bb253dd3fb
sw_engine: rectify the blending method of grayscale fill
...
issue: https://github.com/thorvg/thorvg/issues/2842
issue: https://github.com/thorvg/thorvg/issues/2841
2024-10-17 17:07:36 +09:00
Hermet Park
f5af7b13a5
lottie: multiply opacity to the fill alpha value,
...
opacity of a shape may bring a composition
when it has both stroke and fill
2024-10-17 17:07:36 +09:00
Hermet Park
7e8eee6e3b
lottie: release memory immediately after loading is complete.
...
there is no need to retain the data,
as the Lottie source is not reusable
and is affected by the parsing mechanism.
issue: https://github.com/thorvg/thorvg/issues/2647
2024-10-17 11:26:05 +09:00
Hermet Park
8492a63052
svg: code refactoring
...
--cyclomatic complexity, no logical changes.
2024-10-16 15:26:34 +09:00
Hermet Park
6357da3b97
svg: remove the condition for white shape fill in luma masking
...
Immediately apply LumaMask when SvgMaskType::Luminance is specified.
2024-10-16 15:24:50 +09:00
Hermet Park
0a16152d75
api: renamed the composite with mask.
...
Since we've separated ClipPath and Masking,
Masking now has a distinct and independent purpose.
API Modification:
- enum class CompositeMethod -> enum class MaskMethod
- Result Paint::composite(std::unique_ptr<Paint> target, CompositeMethod method) -> Result Paint::mask(std::unique_ptr<Paint> target, MaskMethod method)
- CompositeMethod Paint::mask(const Paint** target) const -> MaskMethod Paint::mask(const Paint** target) const
issue: https://github.com/thorvg/thorvg/issues/1372
2024-10-16 14:41:26 +09:00
Sergii Liebodkin
adebbcd4e2
wg_engine: fix miter qdge cases math
2024-10-16 00:52:07 +09:00
Sergii Liebodkin
40cff2d6f5
wg_engine: fix long path support
...
created a singe shared instance of stoke generator in heap, instead of stack. No performace impact
2024-10-16 00:52:07 +09:00
Sergii Liebodkin
c926eebba1
wg_engine: fix empty shape aabb handling
...
see https://github.com/thorvg/thorvg/issues/2843 :
2024-10-16 00:52:07 +09:00
RuiwenTang
0c08dab32f
gl_engine: implement path trim in tvgGlTessellator
...
Implement the path trim claculation, and handle the strokeTrim before
doing Path stroke.
issue: https://github.com/thorvg/thorvg/issues/2435
2024-10-15 20:02:42 +09:00
Hermet Park
b923bfa1ce
doc: added supported platforms
2024-10-15 01:09:34 +09:00
Hermet Park
630cbc48ae
api: revise the api for v1.0
...
- refactored the Fill matrix to hold internal data statically.
- refactored for clean & neat the raster engine / svg loader logic.
API Modification:
- Matrix Fill::transform() const -> Matrix& Fill::transform() const
issue: https://github.com/thorvg/thorvg/issues/1372
2024-10-14 23:32:55 +09:00
Hermet Park
6a45e6e494
api: revise the api for v1.0
...
API Modification:
- Matrix Paint::transform() -> Matrix& Paint::transform()
issue: https://github.com/thorvg/thorvg/issues/1372
2024-10-14 17:22:20 +09:00
Hermet Park
8ee5f5c544
api: path data size reduction (to 1 byte)
...
API Modification:
- enum class PathCommand -> enum class PathCommand : uint8_t
- enum class Result::Unknown (6) -> enum class Result::Unknown = 255
- typedef enum Tvg_Path_Command -> typedef uint8_t Tvg_Path_Command
- TVG_RESULT_UNKNOWN (6) -> TVG_RESULT_UNKNOWN = 255
2024-10-14 14:46:40 +09:00
Hermet Park
005096b9f9
doc: updated SVG
2024-10-13 12:23:45 +09:00
Hermet Park
65916857e2
api: polish the thorvg API usages
...
Use ColorSpace to support various types of raw bitmaps.
API Modifications:
- Result Picture::load(uint32_t* data, uint32_t w, uint32_t h, bool premultiplied, bool copy = false) -> Result Picture::load(uint32_t* data, uint32_t w, uint32_t h, ColorSpace cs, bool copy = false)
- Tvg_Result tvg_picture_load_raw(Tvg_Paint* paint, uint32_t *data, uint32_t w, uint32_t h, bool premultiplied, bool copy) -> Tvg_Result tvg_picture_load_raw(Tvg_Paint* paint, uint32_t *data, uint32_t w, uint32_t h, Tvg_Colorspace cs, bool copy)
issue: https://github.com/thorvg/thorvg/issues/1372
2024-10-13 11:15:57 +09:00
Hermet Park
28885d07d1
doc: ++images
2024-10-12 21:19:01 +09:00
Hermet Park
0e45fabb3d
spec out tvg binary format
...
issue: https://github.com/thorvg/thorvg/issues/2721
2024-10-12 21:07:31 +09:00
Hermet Park
366cbfbc6b
Updated AUTHOR
...
Added Kelly who contributed
the interactive Lottie Demo for ThorVG.
2024-10-12 21:00:54 +09:00
Hermet Park
367ac5f331
api: removed redundant CompisiteMethod::ClipPath
...
issue: https://github.com/thorvg/thorvg/issues/1372
2024-10-12 16:02:38 +09:00
Hermet Park
9bc900206b
api: polish the thorvg API usages.
...
API Modification:
- SwCanvas::Colorspace -> ColorSpace
API Addition:
- ColorSpace::Unknown
issue: https://github.com/thorvg/thorvg/issues/1372
2024-10-12 15:38:03 +09:00