transform interfaces are getting duplicated in derived classes.
we moved to the super for smaller apis count.
Applied strategy pattern to hide the inheritance.
Change-Id: I7b0c3ff9317e9bf3c97bb0c849bf55e79ee9a591
we can adjust cell size if the cell memory is out.
the main rle logic missed the exception handling.
Change-Id: I4419eefefccafd788729111eafeb65aa4e6a20e9
previous fast track logic is useless,
it actually doesn't helpful for performance, just increase the code complexity.
Change-Id: Ib6ad204edfb241d74c41413dfec7ab42fb02af81
if the transform scale factor for x/y is not identical,
it keeps its both xy scale factor then apply them
for stroking calculation.
Change-Id: I519dfce3ce7b4a12c13da1801d6a00e139e7400f
Basically, stroke width size is linear,
engine couldn't apply scale factor from the matrix which contains 2 dimensional values.
Thus, we can apply it if the scale factor of x/y is identical.
Otherwise, we should transform every stroke points in the stroking process.
That scenario can be improved with another patch.
Change-Id: I070dcf29d2e42f21e182bdf4239781464158ef73
sw_engine simulates floating point by integer bit shifting,
it loses the accuracy while converting the number data.
This occurs the inacculated curve points result if it scales up very large size.
So we transform points before converting data in order to avoid losing the numbers less decimal point.
Change-Id: I0172e83f06b1a19143a2f65f667dc193e9a4396a
If display is none, scene does not create a child shape,
and shape does not draw fills and strokes.
Change-Id: I8af72c904be00107dff115429e27df7ba4cb83b6
Only <svg> tag is parsed first before data get in file open function.
If the <svg> tag is found, the loaded file is valid and stores viewbox information.
After that, the remaining content data is parsed in order with async.
Change-Id: Idb934fbd5e190c7c523abe601a80745ccc767af1
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