Hermet Park
686e47d2cd
doc: up to date v0.7
2021-12-22 19:11:22 +09:00
Hermet Park
5fd32acf73
infra: just released v0.7.0
2021-12-22 19:10:58 +09:00
Hermet Park
0aefbc3fb8
examples: update tvg binaries.
2021-12-22 18:48:49 +09:00
Hermet Park
8c29caf803
Backup tvg binaries of v0.6
2021-12-22 18:46:26 +09:00
Hermet Park
6a2aaa2064
sw_engine texmap: ++safety
...
Prevent range over just in case.
2021-12-22 16:40:27 +09:00
K. S. Ernest (iFire) Lee
33018aa123
Hide the thorvg LZW implementation.
2021-12-19 10:43:24 +09:00
Hermet Park
df64a7b0dc
sw_engine raster: fix a crash at the texmap clipping.
...
Handle correctly duplicated spans from the multiple y span data.
Previous logic only expected the one single y span data from the rle.
However rle might have multiple y span data if the anti-aliasing is applied.
This patch also removed the bad design of the common engine
which handles the anti-alising option to ignore the anti-aliasing rle generation.
Just realized, it's difficult to control that condition due to scene-composition.
2021-12-17 19:15:27 +09:00
Hermet Park
05fefcf61f
sw_engine raster: ++safety of the scaled image rasterization
...
Prevent out of buffer boundary access.
@Issues: https://github.com/Samsung/thorvg/pull/1119
2021-12-17 16:46:37 +09:00
Hermet Park
e947fef9a4
common: introduce iterator
...
+++
auto picture = tvg::Picture::gen();
auto func = [](const tvg::Paint* paint, const tvg::Paint* parent, bool hasChildren) -> int
{
if (paint->identifier() == Shape::identifier())
//TODO: override properties.
//return true to continue, return false to stop.
return true;
};
picture = tvg::Iteratorv::iterate(move(picture), func);
2021-12-17 12:16:14 +09:00
Mira Grudzinska
5b3252ecf9
capi: missing arg description added
2021-12-17 11:21:08 +09:00
Hermet Park
e258a2a662
sw_engine texmap: implemented fast span-edge anti-aliasing
...
This Anti-Aliasing mechanism is originated from Hermet Park's idea.
To understand this AA logic, you can refer this page:
www.hermet.pe.kr/122 (hermetpark@gmail.com )
@Issue: https://github.com/Samsung/thorvg/issues/161
2021-12-16 15:56:20 +09:00
JunsuChoi
791275c30a
sw_engine SwShape: Fix coding style
2021-12-15 15:19:19 +09:00
JunsuChoi
c326b6ac3e
sw_engine SwShape: Prevent null access
...
strokeOutline returned strokeExportOutline() is the address of mpool->strokeOutline[idx].
Assuming this value is null, mpoolRetStrokeOutline on line 617 will access mpool->strokeOutline[idx].
Logically, the logic of the mpool* functions does not occur in this case.
2021-12-15 15:19:19 +09:00
Hermet Park
45132a7051
sw_engine raster: improve the transformed rle image rasterizer.
...
replace the transformed rle rgba image with the texmap raster.
this patch removes the several scattered transformed image rasterizer,
reuse the unified one texmap method instead.
yay, it's much clean and optimal.
2021-12-14 19:04:16 +09:00
Hermet Park
36da47af80
png_loaders: fix the wrong premultiplying operations.
...
It should not modify the alpha channel value while premultiplying
that turned out with the wrong visual result.
@Issue: https://github.com/Samsung/thorvg/issues/655
2021-12-13 23:46:15 -08:00
Hermet Park
62c9feb80a
common paint: code refactoring
...
Grouping the composite data to add source paint necessarily.
this refactoring is a prerequisite job for the texmap anti-aliasing.
2021-12-13 20:44:07 +09:00
Hermet Park
d3f3a50309
common picture: remove unused variable.
2021-12-13 19:46:09 +09:00
Hermet Park
1d4db59a25
common: revise the identifier() implementation
...
Migrate the id property to the base class internals
so that pimpl classes could access the data easier.
This is a sort of prerequisite change for the coming texmap anti-aliasing.
2021-12-13 19:10:31 +09:00
Hermet Park
4cdf648e14
sw_engine image: support non-premultiplied alpha images.
...
Previously, translucent png images are not displayed properly
due to alpha channels premultiplication.
This patch implements that missing part to support it properly
by introducing the Surface data between canvas engine & rasterizer
@Issue: https://github.com/Samsung/thorvg/issues/655
2021-12-02 17:10:12 +09:00
Hermet Park
e7b7705875
sw_engine raster: remove unnecessary functions.
...
These alpha/inverse alpha blender table is not useful so far,
we remove them since it just decrease the performance by by-pass addressing.
2021-12-01 18:36:12 +09:00
JunsuChoi
d8797092b5
sw_engine SwCommon: Change spans's x,y value type
...
The x and y of spans cannot be negative
because they are specified as coordinates inside the buffer.
Change the type to fix warnings and potential problems
that occur in conversion between int16_t and uint32_t.
2021-12-01 16:55:22 +09:00
JunsuChoi
e36c2029ce
sw_engine SWRaster: Explicitly declare type cast to uint32_t
2021-11-30 15:46:26 +09:00
JunsuChoi
5715270dfb
sw_engine SWRaster: Initialize uninitialized local variable
2021-11-30 14:54:55 +09:00
Hermet Park
c0cd645bb5
sw_engine raster: fix the regression bug of the image simple scaling rendering.
...
Gave up the optimization this logic.
It brings too many digressed code, not good for maintenance...
2021-11-30 12:03:10 +09:00
Hermet Park
46bdc8f1dc
sw_engine texmap: remove unnecessary conditions.
...
remove exceptional handling for the performance.
2021-11-26 20:16:00 +09:00
Mira Grudzinska
4485db4f15
svg_loader: a function to establish shapes boundries without a stroke introduced
...
To handle the objectBoundingBox units, the shape's boundaries have to be known.
According to the SVG standard, a stroke shouldn't be taken into account. Since
the bounds() api uses the shape's stroke information, a new function is introduced,
that compensates this and returns boundaries without any strokes.
2021-11-26 11:47:15 +01:00
Mira Grudzinska
bd7c19a592
svg_loader: struct used to pass 1 args instead of 4 of them
...
The Box struct is introduced to replace the four functions
args: vx, vy, vw, vh, so all of them can be passed at once.
2021-11-26 11:47:15 +01:00
Hermet Park
19aa102749
sw_engine raster: fix the texmap regression bug.
...
Wrong inline function with C-preprocessing doesn't work at all...
Correct them with including the separate files instead.
2021-11-26 17:41:33 +09:00
Hermet Park
d2640c6313
Revert "sw_engine raster: code refactoring."
...
This reverts commit 860068301a
.
found a regression bug. this macro doesn't work actually.
2021-11-26 17:21:27 +09:00
Hermet Park
860068301a
sw_engine raster: code refactoring.
...
+ blending stages using macro magics.
I know this is a bit bad for code readibility but good for the maintanence
2021-11-25 20:07:39 +09:00
Hermet Park
eddaf615c3
sw_engine: code refactoring
...
unified the two color interpolate methods.
2021-11-25 20:04:37 +09:00
Hermet Park
2ca6f76d91
sw_engine texmap: code refactoring.
...
Unrolled the blending stages by applying macro magics.
I know this is a bit bad for code readibility
but good for the performance and the optimal LOC.
2021-11-25 18:51:04 +09:00
Hermet Park
aff755aeb5
sw_engine texmap: introduced texture mapping polygon drawing.
...
Introduced the texture-mapping algorithm for the image-scaler.
With this approach, we can support any arbitrary forms of the transformed shapes
while appling the scale factors - x/y separately.
Also this is more efficient when the transformed image is far from the rectangular form
because our current normal image rasterizer based on the given drawing region whereas
our new approach is span-based.
Thus, we applied this mechanism only for the transformed images.
2021-11-25 17:07:24 +09:00
Hermet Park
72ee1c4343
sw_engien renderer: ++safety
...
+exceptional handling for the drawing region.
2021-11-25 15:04:56 +09:00
Hermet Park
b5e134399d
sw_engine raster: fix a regression bug.
...
mistaken by 8ef31f6cd0
2021-11-25 14:49:14 +09:00
Hermet Park
cc96535778
sw_engine raster: fix compiler warnings.
...
popped up unused-functions when simd enabled.
2021-11-25 11:48:53 +09:00
Hermet Park
8ef31f6cd0
sw_engine raster: fix a mistake by the previous hot refactoring.
2021-11-24 20:51:05 +09:00
Hermet Park
e76091a283
sw_engine raster: code refactoring
...
+neat and clean code
2021-11-24 20:43:18 +09:00
Hermet Park
f7e52e93ed
sw_engine image: improvement sequeqnce of the transformed rle rgba image drawing.
...
implement composition by translucent / opaque.
yet this transformed rle rgba image drawing is on the enhancement stage.
2021-11-24 19:32:42 +09:00
Hermet Park
9fbb8d9b09
sw_engine image: complete sequeqnce of the scaled rgba rle image drawing.
...
implement composition by translucent / opaque
2021-11-24 19:08:07 +09:00
Hermet Park
43233a530a
sw_engine image: improvement sequeqnce of the direct rgba rle image drawing.
...
implement composition by translucent / opaque.
+ correct compositor stride reference.
2021-11-24 18:54:58 +09:00
Hermet Park
a5713cecca
sw_engine image: improvement sequeqnce of the transformed rgba image drawing.
...
implement composition by translucent / opaque.
yet this transformed rgba image drawing is on the enhancement stage.
2021-11-24 18:36:54 +09:00
Hermet Park
f0e7ef1dbc
sw_engine image: complete sequeqnce of the scaled rgb image drawing.
...
implement composition by translucent / opaque.
2021-11-24 17:53:10 +09:00
Hermet Park
c0c37396f7
sw_engine image: complete sequeqnce of the direct rgb image drawing.
...
implement composition by translucent / opaque.
2021-11-24 17:39:02 +09:00
Hermet Park
3fae64c626
sw_engine image: refactoring before further development.
...
separate internal functions per context
and keep the coding convention.
2021-11-24 17:13:16 +09:00
Hermet Park
e379c3e7ee
Update CONTRIBUTING.md
2021-11-24 15:58:49 +09:00
Hermet Park
7c8f651e32
sw_engine image: support separate logics for scaled rle rgba image
...
+ scaled rle rgba image
+ scaled masked rle rgba image
+ scaled translucent rle rga image
2021-11-24 14:32:30 +09:00
Mira Grudzinska
d4c15dcf66
common: nothing was rendered after an empty masked node came across
...
The problem was observed for empty masked scenes (except the fastTrack
cases). Solved by imimediate returning from the func without passing 'false'
as its result.
2021-11-24 12:30:12 +09:00
Hermet Park
3221e27e3e
examples: replaced png resource to verify alpha channel.
...
alpha blending looks a bit awkward.. need to fix it.
2021-11-23 16:16:09 +09:00
Hermet Park
16d5907642
sw_engine image: apply rgba blending.
...
rgba requires the default blending.
2021-11-23 15:22:28 +09:00