Commit graph

677 commits

Author SHA1 Message Date
RuiwenTang
453cba7ddd gl_engine: make GlRenderTask generic with uniform block
* Use uniform block to pack all color informations
* Move the actual gl draw call into GlRenderer::sync function, so all
  data is been uploaded into GPU
* Make GlRenderTask simple and generic for direct gl draw
2023-09-21 22:24:07 +09:00
Hermet Park
9e3b74bac5 sw_engine fill: fixed radial fill focal issue.
This might be a workaround to correct the issue.
The threshold value comes from the mathematical inaccuracy.

@Issue:https://github.com/thorvg/thorvg/issues/1555
2023-09-21 22:19:42 +09:00
Hermet Park
edb156f4fc sw_engine/shape: fix a dash-line infite-loop bug.
a regresion bug was introduced by d683d2e70d
2023-09-21 21:55:53 +09:00
Hermet Park
bd9d0cea6d sw_engine: properly implemented the missing image composition.
The 8-bit masking target is the destination with a 32-bit source image and 8-bit composition.
2023-09-20 18:42:06 +09:00
Martin Capitanio
5ed7034c45 sw_engine: fix VS 2017 issues with Godot's NOMINMAX
Fixes #1661
2023-09-19 21:51:54 +09:00
Hermet Park
8aa12ca468 taskschduler: fix a regression deadlock issue
This fix introduces a workaround to enforce synchronous tasking on worker threads.
Sometimes, out of threads get stuck in a deadlock condition.

@Issue: https://github.com/thorvg/thorvg/issues/1636
2023-09-18 21:06:01 +09:00
Hermet Park
d683d2e70d sw_engine: Do not handle exceptions for zero line length.
While it may represent a dot with a stroke width,
ignoring its length is not a good idea.

this also eliminates 0 size dash dots caused by unexpected empty lengths.
2023-09-15 11:16:38 +09:00
RuiwenTang
5298f338de gl_engine: fix compilation erros due to redundant header inclusion 2023-09-14 19:49:35 +09:00
Hermet Park
ed1b4a4923 sw_engine: allow 8bit grayscale gradient filling 2023-09-14 01:03:22 +09:00
Hermet Park
e9490e375c sw_engine: corrected a wrong blending equation at 8 bits grayscale rle. 2023-09-14 01:03:22 +09:00
Hermet Park
cea63125a4 sw_engine: fix a wrong compuation.
corrected a mistake caused by a dead brain.
2023-09-12 21:40:01 +09:00
Hermet Park
46d831ead7 sw_engine: skip the rendering if possible.
zero scale would not produce any visible artifacts.
we can skip the further processing sonner.
2023-09-12 20:52:33 +09:00
Hermet Park
2257211852 sw_engine: fix a regression bug by 0dafe9ff64
rectified the stroke scale factor acquisition.
2023-09-12 11:44:27 +09:00
Hermet Park
0dafe9ff64 sw_engine: revised code.
add a concrete logic for validating the stroke width
2023-09-05 18:41:20 +09:00
Hermet Park
78cb32794a sw_engine: utilize the memory pool for dash stroking. 2023-09-05 12:38:57 +09:00
Hermet Park
64a444aeb6 loader/lottie: support focal property in the radial gradient 2023-09-05 10:29:12 +09:00
Hermet Park
fa134692b0 Revert "renderer taskscheduler: code refactoring."
This reverts commit 77de62068c.

This fixes the sanitizer thread report (data race) issue.

@Issue: https://github.com/thorvg/thorvg/issues/1623
2023-09-05 10:22:53 +09:00
RuiwenTang
b6e168b315 gl_engine: pack all data into one gpu buffer
Pack all data into one gpu buffer to avoid memory fragmentation
2023-09-05 00:38:27 +09:00
Hermet Park
e0d1c947e6 infra: renamed the files for the consistency. 2023-09-04 17:26:43 +09:00
Mira Grudzinska
ce3c11838c renderer/sw_engine: support the focal property in the radial gradient.
@Issue: https://github.com/thorvg/thorvg/issues/1558
2023-09-04 16:48:38 +09:00
Hermet Park
ad9d9d0ecd loader/lottie: support trimpath feature 2023-09-01 13:16:18 +09:00
Hermet Park
1112444bd2 renderer/shape: fixed the issue of a missing miterlimit property copy. 2023-08-30 21:45:01 +09:00
Hermet Park
735c1cb9e4 sw_engine: fixed a antialiasing issue.
Previously, a mechanism was introduced to skip antialiasing computations
when shapes are invisible due to their stroking. However, this mechanism
failed to account for the scale factor of the stroke; it only considered
the current stroke width as a threshold.

Consequently, when the stroke width is scaled up to a value smaller than
the threshold, the incorrect antialiasing approach is applied. This results
in the appearance of jagged edges.

The implemented fix rectifies this problem and ensures that the antialiasing
computation correctly takes into consideration both the visibility and the
scale factor of the stroke width.
2023-08-30 17:28:41 +09:00
Hermet Park
992891e6a8 sw_engine: a minor optimization.
reduced the point counting since we already know some of them.
2023-08-29 13:24:54 +09:00
Martin Capitanio
ab77e1d3d4 THORVG_LOG: --compiler -Werror=empty-body
Godot CI:
Error: (thirdparty/thorvg/)src/renderer/tvgPaint.h:85:80: error: suggest braces around empty body in an 'if' statement [-Werror=empty-body]
   85 |             if (refCnt == 255) TVGERR("RENDERER", "Corrupted reference count!");
...
2023-08-29 12:30:33 +09:00
Hermet Park
5a73bcaa8f common/array: code refactoring
easy access to a specific data with a operator.
2023-08-29 12:28:38 +09:00
Hermet Park
24711e485c infra: renames the source folders
lib -> renderer
bin -> tools
utils -> common
2023-08-28 13:11:24 +09:00