Apply tvg Array instead of std::vector
Also Fixed to compList in update() to passed by reference, not copying.
Also Fixed Composition Target memory leak
Here is the binary size result:
[libthorvg.so] 1785376 >> 1607416
[text] 121255 >> 118277
[data] 7792 >> 7736
[dec] 129119 >> 126085
common sw_engine: Implement ClipPath feature
Paint object can composite by using composite API.
ClipPath composite is clipping by path unit of paint.
The following cases are supported.
Shape->composite(Shape);
Scene->composite(Shape);
Picture->composite(Shape);
Add enum
enum CompMethod { None = 0, ClipPath };
Add APIs
Result composite(std::unique_ptr<Paint> comp, CompMethod method) const noexcept;
* Example: Added testClipPath
we should avoid code insertion during file dependencies,
such as #include "xxx.h" which has implementations.
This could increase binary size, we can avoid it as possible.
Current patch improves binary size like this:
From: file(2059008) = text(120360) data(8096) bss(80) dec(128536)
To : file(1921832) = text(118429) data(7872) bss(56) dec(126357)
More additional patches will come in to optmize binary size.
remove unnecessary condition.
implementation won't be included multiple times not like headers.
Thus this condition is unnecessary.
Change-Id: Id37e675c40ce7213a06c950da8e5ca17ff7245c9
Now, stabilizing is pretty enough.
Remove assert code so that we never abort process in any cases.
This also reduce the binary size.
Change-Id: Ia7d2d5c5a0757b12481eaebad7a86aade6a89c1e
we can adjust cell size if the cell memory is out.
the main rle logic missed the exception handling.
Change-Id: I4419eefefccafd788729111eafeb65aa4e6a20e9
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
there are a logical wrong that memory increase size,
it correct that also tune the number to reduce memory allocation time.
Now scene transform test works smoothly.
Change-Id: If0674e33426d794546801a96ad9de711b5de0dcd
there are unnecessary partial spans generated in orthogonal rectangle.
we can merge those partial spans to others if they are on the same scanline...
Change-Id: I35a437a4f2eec106bd50f46f0390c652e617311d
+lineTo()
+moveTo()
+cubicTo()
+close()
These interfaces might not perfect optmizied,
but you can build path commands easier than manual data set.
Change-Id: Icb934ca256d3107ca0c938d28015d767fb93355e
Adjust rle span generation size to reduce memory allocation.
This span growing is experimentally increased, undeterministic.
Thus We need too increase them every requests, if we increase their
size x 4, we can avoid a lot of memory copy in advance.
Change-Id: Idd24024204a69fa3b6857728b95aa63a3ac26c5e