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
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
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
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
Convert Svg path in string to tvg::PathCommand.
Draw converted data by adding it as path to shape.
Following tags are supported.
Move, Line, Cubic, SCubic, Vertical, Horizontal and Close.
Change-Id: I3cb31e05bcb233b4c187e0c9e7eef8cdadf84695
SvgSceneBuilder builds Scene using SvgNode tree.
build(root node) function return the root scene.
Following SVG tags are supported.
Polygon, Polyline, Circle, Rect, Line
Change-Id: I8c9b8c28d9a4799af6ddc45c35f77a75f696b2a5
Load svg using fstream and parse it using SimpleXMLparser.
And Make a document tree composed of SvgNodes using the parsed data.
Change-Id: I5715b466638195844798f7b66f54f6015e7c3ae6
this matrix data is volatile since it's coming from stack memory.
thus engine should record its own memory space for keeping it.
Change-Id: I664dd56412f4d236ad04c312220c67da226274e5
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
memset() is more than 10x faster than manual loop.
Thus we replace it to manipulate buffer pixels.
Change-Id: If0f255578f7d49ff6704c4f15e2eefe435cc3c15
this bounding box max indicates absolute positions,
not width/height size.
because of this, shape couldn't rendered properly,
when it's clipped out.
Change-Id: I0afb0d6e63d1b511b83716c55f55e3fd5370fdb8