Hermet Park [Mon, 29 Mar 2021 02:26:03 +0000 (11:26 +0900)]
bump up version
Change-Id: I3d781585fb50498ab660c0d38a41866dedfa20eb
Hermet Park [Fri, 26 Mar 2021 10:37:48 +0000 (19:37 +0900)]
doc: update sample images.
Change-Id: Idc5035f61452f2dd39115c4deb994bd587fe1569
Hermet Park [Fri, 26 Mar 2021 10:35:26 +0000 (19:35 +0900)]
Update README.md
Hermet Park [Fri, 26 Mar 2021 08:24:43 +0000 (17:24 +0900)]
common: fix wrong viewport region.
in the clip rect, viewport must be accumulated to the smaller one.
this patch improves that corner-case.
Hermet Park [Fri, 26 Mar 2021 07:59:52 +0000 (16:59 +0900)]
common sw_engine: optimize single rectangle ClipPath.
If ClipPath is a singular rectangle,
we don't need to apply this to all children nodes to adjust rle span regions.
Rather than its regular sequence,
we can adjust render region as merging viewport that is introduced internally,
All in all,
If a Paint has a single ClipPath that is Rectangle,
it sets viewport with Rectangle area that viewport is applied to
raster engine to cut off the rendering boundary.
In the normal case it brings trivial effects.
but when use SVGs which has a viewbox, it could increase the performance
up to 10% (profiled with 200 svgs rendering at the same time)
Note that, this won't be applied if the Paint has affine or rotation transform.
@Issues: 294
Hermet Park [Wed, 24 Mar 2021 09:48:39 +0000 (18:48 +0900)]
sw_engine: code refactoring
1. unified clip & bounding box in rle processing
2. unified outline boundingbox functions between shape & image.
Hermet Park [Wed, 24 Mar 2021 05:19:01 +0000 (14:19 +0900)]
examples: allow a desianted main thread capacity.
Maximum threads is not always peak the highest performance,
tvg examples guide user the proper threads count.
Hermet Park [Tue, 23 Mar 2021 07:35:22 +0000 (16:35 +0900)]
common paint: fix memory leak case.
free the previous composition target if any,
before reset with the new one.
Hermet Park [Tue, 23 Mar 2021 05:31:58 +0000 (14:31 +0900)]
updated copyright
Hermet Park [Tue, 23 Mar 2021 05:18:17 +0000 (14:18 +0900)]
common engines: code refactoring
Introduce RenderRegion structure for region data
to simplify the methods paratemers.
also depends on the NRVO for the return data.
Mira Grudzinska [Tue, 23 Mar 2021 00:22:46 +0000 (01:22 +0100)]
svg_loader: ommiting xml entities in the svg file (#278)
SVG files created using 'sketch' may contain xml entities,
which are not understandable by the svg loader.
For now only '"' is ommited.
Hermet Park [Mon, 22 Mar 2021 07:28:08 +0000 (16:28 +0900)]
loader svg: fix coding convention
Hermet Park [Mon, 22 Mar 2021 04:52:43 +0000 (13:52 +0900)]
examples: revise StrokeGradient
renamed GradientStroke & repositioned visuals.
Hermet Park [Mon, 22 Mar 2021 04:19:49 +0000 (13:19 +0900)]
bump up version
Change-Id: I0026c758712b068949d61556ca202786627a9fe5
Mira Grudzinska [Thu, 11 Mar 2021 16:20:41 +0000 (17:20 +0100)]
svg_loader: applying AlphaMask during scene building
The AlphaMask composition case was omitted in the _sceneBuilderHelper().
Hermet Park [Fri, 19 Mar 2021 07:30:45 +0000 (16:30 +0900)]
initializer: add reference counting for the engines initialization.
Introduced the reference counting for the backend engines so that
tvg prevents unpaired engine initialization/termination calls by user mistake.
@Issues: 296
Hermet Park [Fri, 19 Mar 2021 10:41:18 +0000 (19:41 +0900)]
common picture: fix crash at picture duplication.
A duplicated picture needs to access internal picture loader data
to get its properties while rasterizing.
But it missed the loader since it's not copied from origin.
Thus, we fix this by sharing the internal loader among the duplications and origin.
@Examples: Duplicate
Mira Grudzinska [Sun, 14 Mar 2021 20:50:00 +0000 (21:50 +0100)]
paint: clip was substracted from the array for any composite method
Only ClipPath composite method should cause clips subtraction.
Michal Szczecinski [Tue, 16 Mar 2021 11:00:00 +0000 (12:00 +0100)]
common shape: Fixed appendArc for negative values.
Description:
Fixed appendArc API for -90 angles. In that case it was drawn in wrong
direction.
@Examples
```cpp
float x = 40.0, y = 40.0;
auto shape1 = tvg::Shape::gen();
//OK
shape1->appendArc(x + 50, y, 25, 0, -91, false);
//NOK
shape1->appendArc(x + 100, y, 25, 0, -90, false);
//OK
shape1->appendArc(x + 150, y, 25, 0, -89, false);
```
Change-Id: Ic9cba89b44e170b3a1411e7d126c912a9fb135d5
Hermet Park [Tue, 16 Mar 2021 04:29:16 +0000 (13:29 +0900)]
loaders svg: remove unnecessary move call, move is guaranteed at the return value.
warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
Hermet Park [Tue, 16 Mar 2021 01:23:11 +0000 (10:23 +0900)]
sw_engine: optimize rle clipping
We don't need to copy the rle data unecessarily,
we can just replace the completed clip rle.
Change-Id: I099a071bdc83937d3a942fc5d08ff2c2d72f96ac
Hermet Park [Mon, 15 Mar 2021 10:19:54 +0000 (19:19 +0900)]
examples: clean up mask resources.
These are not proper for our svg examples.
JunsuChoi [Mon, 15 Mar 2021 06:05:24 +0000 (15:05 +0900)]
sw_engine rleClipPath: Modify clippath spans creation size.
When updating rle for clipped area, realloc size should be larger than spans size.
so this patch prevents the problem while realloc.
JunsuChoi [Mon, 15 Mar 2021 05:56:36 +0000 (14:56 +0900)]
loader SvgSceneBuilder: Add root node to clipping viewBox.
If the boundary of scene created through the scenebuilder is larger than the viewbox,
scene(SVG's root) should be clipped to the size of the viewbox.
So, if scene need a clip, add a parent root and add clippath composition to that root.
Hermet Park [Mon, 15 Mar 2021 05:50:29 +0000 (14:50 +0900)]
bump up version.
Change-Id: I33545ca3d2e437d43471b080cc60a39e52a28bf6
Hermet Park [Fri, 12 Mar 2021 09:00:47 +0000 (18:00 +0900)]
common shape: revise Shape::reset() api.
reset Path is useful rather than reset all properties.
Change-Id: Ic62eaecf9e4129f2ada790ebef6745e7be85db4c
Hermet Park [Fri, 12 Mar 2021 09:09:19 +0000 (18:09 +0900)]
This is too untable.... Stress in example is crashed by this.
Revert "svg_loader: limiting the ploted area of svg to viewBox"
This reverts commit
2bb108b2f13432ac140d9be08daae189fe9c61c5.
Change-Id: Iec82290d6ca080d868471275bc83663adbaf4b56
Hermet Park [Fri, 12 Mar 2021 02:50:46 +0000 (11:50 +0900)]
common canvas: initialize member variable.
to shutdown the static code analizer report.
Change-Id: Id32127ab3caf64f1b8e34e5f3abf6780ac0d3b71
Mira Grudzinska [Sun, 7 Mar 2021 15:02:04 +0000 (16:02 +0100)]
svg_loader: limiting the ploted area of svg to viewBox
The 'viewBox' element given in the svg file determines
the coordinates of the plotted area. ClipPath used in Svg loader.
Change-Id: Idddcbce7cddfe46e2049d6741379c747e76482ed
Hermet Park [Thu, 11 Mar 2021 11:10:11 +0000 (20:10 +0900)]
sw_engine fill: correct value loss by data conversion.
Hermet Park [Thu, 11 Mar 2021 10:05:18 +0000 (19:05 +0900)]
revert unintended code changes while upstream code sync.
Change-Id: I5c95954a470d5a1f330f3044e254b896d445426c
Mira Grudzinska [Tue, 9 Mar 2021 20:00:08 +0000 (21:00 +0100)]
example: Duplicate.cpp modified
Duplication of the Picture with a raw image is added
Change-Id: I8d069e2e829a4f869e477a6aa5076175335a6751
Hermet Park [Tue, 9 Mar 2021 11:20:43 +0000 (20:20 +0900)]
updated AUTHORS
Change-Id: I43defd73b85b000aea191f017c5be30f8e195d93
Hermet Park [Tue, 9 Mar 2021 11:13:44 +0000 (20:13 +0900)]
Revert "sw_engine shape/image: substituting logical 'and' with 'or'"
This reverts commit
74b27c74af220e30fef274e07f8ad4f19430d217.
This patch breaks Stroke example. 1 line drawings...
There is a possibility that less 1 (i.e: 0.5) width axis-aligned line drawings...
So logically "&&" is correct.
Change-Id: Ia98622d7df464f55a255a35ccb37fc9664ed6954
Mira Grudzinska [Mon, 22 Feb 2021 21:18:34 +0000 (22:18 +0100)]
sw_engine raster: functions optimization in the image block
The alpha value calculation pulled out outside the inner loop
to reduce the number of unnecessary operations.
Added local variables to reduce the number of costly
multiplications performed in a loop.
Change-Id: Ib7f68cb05d1ec8fd05df751d933ce7c2c09da484
Mira Grudzinska [Sun, 7 Mar 2021 11:01:32 +0000 (12:01 +0100)]
sw_engine shape/image: substituting logical 'and' with 'or'
In the case when the height or width of the bounding box is 0
it is not necessary to calculate Rle.
Change-Id: Ib5351cf43d68530b83efd71d4c2dd71caf67c904
Patryk Kaczmarek [Mon, 8 Mar 2021 01:22:42 +0000 (02:22 +0100)]
example: AnimateMask images change
Change-Id: Iacd407c3e186f1f91c2bcbd9099f0b83a9dba264
Hermet Park [Tue, 9 Mar 2021 05:26:50 +0000 (14:26 +0900)]
bump up version.
Change-Id: I664ef791eef4afac8ce5b8ecc9dec7166a6f6c52
Hermet Park [Sun, 7 Mar 2021 03:05:58 +0000 (12:05 +0900)]
Update README.md
Hermet Park [Sun, 7 Mar 2021 02:58:01 +0000 (11:58 +0900)]
Update README.md
updated svg part.
JunsuChoi [Fri, 5 Mar 2021 03:40:18 +0000 (12:40 +0900)]
svg_loader SvgPath: Remove unnecessary optimization code
This condition(optimization) is not a step suggested by arc implementation.
https://www.w3.org/TR/SVG11/implnote.html#ArcCorrectionOutOfRangeRadii (Step2)
This code is useful if the arc is too small to represent.
However, scaling often occurs in vectors, which can create unnecessary problems.
example path
<path d="M32.41,20.49a.41.41,0,1,1-.41-.42A.41.41,0,0,1,32.41,20.49Z" transform="translate(0)" fill="#020202"/>
JunsuChoi [Thu, 4 Mar 2021 02:26:52 +0000 (11:26 +0900)]
svg_loader SvgLoader: Fix copy conditions for stop of gradient
When getting a linked stop list, if there is no existing stop list
in current gradient, it is copied.
Mira Grudzinska [Thu, 4 Mar 2021 00:07:42 +0000 (01:07 +0100)]
svgloader: fixing linear gradient transformation
Gradient stop points were incorrectly transformed when building
the scene in the SVG loader.
Hermet Park [Thu, 4 Mar 2021 02:14:16 +0000 (11:14 +0900)]
capi: fix incorrect composite api.
Api prototype is completely wrong, now it's corrected.
Mira Grudzinska [Thu, 4 Mar 2021 00:20:36 +0000 (01:20 +0100)]
svgloader: fixing SVG image display when viewBox size is not given
When viewBox is not given its dimensions should be determined
by the height and width parameters
Mira Grudzinska [Thu, 25 Feb 2021 22:43:26 +0000 (23:43 +0100)]
sw_engine fill: fixing the infinite loop condition
Fixed in the fillFetchLinear() function.
Mira Grudzinska [Tue, 2 Mar 2021 14:17:25 +0000 (15:17 +0100)]
svgloader: fillRule value passed to the shape
The value was loadeed but not set to the shape.
Mira Grudzinska [Sun, 28 Feb 2021 12:01:16 +0000 (13:01 +0100)]
canvas: replacement of the bitwise OR operator with the logical one
Bitwise logical operators do not perform short-circuiting.
Hermet Park [Wed, 3 Mar 2021 01:53:32 +0000 (10:53 +0900)]
sw_engine fill: fix wrong gradient transformation
There transformation logic was not identical between shape & gradient
gradient transform was applied into center of gradient world,
while shape wasn't. So... we correct gradient transform metric to shape like.
@Issues: 255
Juyeong Lee [Thu, 25 Feb 2021 16:29:31 +0000 (01:29 +0900)]
Fix typo in CONTRIBUTING.md
Hermet Park [Thu, 25 Feb 2021 10:14:23 +0000 (19:14 +0900)]
examples images: correct file change mode.
For consistency, thorvg keeps file chmod => 664.
Hermet Park [Thu, 25 Feb 2021 06:59:14 +0000 (15:59 +0900)]
scene: fix a composition regression bug.
Pre-condition is broken when this commit come -
b60a773d12ef5ab558e95066b2deecea8d859e8c
Both condition should be identitcal so that comp logic is perfectly performed.
Hermet Park [Thu, 25 Feb 2021 03:41:20 +0000 (12:41 +0900)]
Update CONTRIBUTING.md
fix typo
Hermet Park [Thu, 25 Feb 2021 03:35:50 +0000 (12:35 +0900)]
updated community guide resource.
Hermet Park [Thu, 25 Feb 2021 03:38:39 +0000 (12:38 +0900)]
common: optimize scene composition
Scene could avoid composition if its children is only child (non scene)
This patch bring it conditionally check so as to avoid unnecesary expensive job.
@Issues: 254
Hermet Park [Thu, 25 Feb 2021 03:35:41 +0000 (12:35 +0900)]
Update CONTRIBUTING.md
updated guideline
Patryk Kaczmarek [Tue, 23 Feb 2021 12:37:36 +0000 (13:37 +0100)]
examples: new AnimateMask example and svg images with masks
Change-Id: I609597a5ecb710e9af9939a3028eeef691b66188
Hermet Park [Thu, 25 Feb 2021 03:18:47 +0000 (12:18 +0900)]
Update CONTRIBUTING.md
++updated
Hermet Park [Wed, 24 Feb 2021 11:01:31 +0000 (20:01 +0900)]
sw_engine: fix a composition crash issue.
Added an exceptional handling for out of buffer boundary.
Hermet Park [Wed, 24 Feb 2021 10:53:39 +0000 (19:53 +0900)]
canvas: fix crash issue.
When canvas target size is changed, it need to update all retained paints again
so that they cannot redraw onto out of buffer boundary.
Hermet Park [Tue, 23 Feb 2021 01:47:46 +0000 (10:47 +0900)]
fixed all wasm build breaks.
Michal Szczecinski [Mon, 22 Feb 2021 04:30:05 +0000 (05:30 +0100)]
Issue 180 example (#212)
* examples: Added resize_cb to Capi example.
resize_cb in capi example is used to verify crash on reize described
in @180 issue.
* examples capi: Fixed file type from dos to unix.
Use the same code style as it is used in other examples.
Michal Szczecinski [Wed, 17 Feb 2021 14:09:28 +0000 (15:09 +0100)]
sw common: Fixed crash in rasterRGBA32
Description:
Crash was observed in examples when composite object was used.
It was caused because __m256i object was used on non aligned
memory to 32bit. Algorithm in this function was changed to use
unaligned __m256i_u object. Code was also simplified.
Mira Grudzinska [Fri, 5 Feb 2021 00:45:26 +0000 (01:45 +0100)]
sw_engine raster: fixing rasterization of an image with InvMask
In case of the image rasterization with an inverse mask the opacity
was omitted and the alpha value instead of the inverse alpha value was used.
Hermet Park [Mon, 22 Feb 2021 03:53:09 +0000 (12:53 +0900)]
sw_engine: enhance log message.
more informational log is better.
Mira Grudzinska [Thu, 21 Jan 2021 02:24:11 +0000 (03:24 +0100)]
sw_engine math: fixing matrix transformation
Unnecessary rounding during matrix transformation has been removed.
The problem occured when scaling a shape with a dashed stroke.
JunsuChoi [Thu, 4 Feb 2021 05:47:01 +0000 (14:47 +0900)]
common Scene: Fix translucent composition condition
If a scene has another scene as a child and
the number of children is 1, the composition of the child does not work.
Therefore, fix that composition works as long as the number of children is not 0.
Patryk Kaczmarek [Tue, 9 Feb 2021 20:03:10 +0000 (21:03 +0100)]
SvgLoader: Mask style implementation
Supprot case when style is defined as <mask> attribute.
[Example SVG file]
```html
<svg version="1.1" id="Layer_1" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve"
xmlns="http://www.w3.org/2000/svg">
<defs>
<mask id="myMask">
<circle id="maskID" cx="40" cy="40" r="10" fill="white" fill-opacity="1" />
</mask>
</defs>
<rect x="0" y="0" width="64" height="64" style="fill: skyblue; mask=url(#myMask);"/>
</svg>
```
Change-Id: I3b856db85204bf7c503a20e4023417ca79aa930c
JunsuChoi [Fri, 19 Feb 2021 08:28:17 +0000 (17:28 +0900)]
sw_engine Renderer: Fix build problem caused by merge conflict.
Mira Grudzinska [Fri, 19 Feb 2021 08:16:10 +0000 (09:16 +0100)]
sw_engine: adding a gradient as a stroke feature
* sw_engine: adding a gradient as a stroke feature
Similarly as a shape may have a gradient fill so can the stroke.
* Capi: adding APIs for a gradient stroke
Co-authored-by: Hermet Park <hermetpark@gmail.com>
Mira Grudzinska [Tue, 19 Jan 2021 11:35:57 +0000 (12:35 +0100)]
example StrokeGradient
Example showing a gradient usage for a stroke.
JunsuChoi [Fri, 19 Feb 2021 07:14:14 +0000 (16:14 +0900)]
common: TVG_UNUSED marking on unused parameter
JunsuChoi [Fri, 19 Feb 2021 07:12:11 +0000 (16:12 +0900)]
shape: Refactoring to use initialize list
Member data should be initialized in-class or in a constructor initialization list
JunsuChoi [Fri, 19 Feb 2021 06:58:00 +0000 (15:58 +0900)]
common: Refactoring incorrectly declared loop variable
Loop variables should be declared in the minimal possible scope
thorvg prefers to declare when using local variables.
JunsuChoi [Fri, 19 Feb 2021 06:47:44 +0000 (15:47 +0900)]
common: Pointer that can declare const are refactored to use const
Pointer and reference parameters should be "const" if the corresponding object is not modified
JunsuChoi [Fri, 19 Feb 2021 06:22:17 +0000 (15:22 +0900)]
common: Functions that can declare const are refactored to use const
Member functions that don't mutate their objects should be declared "const"
Mira Grudzinska [Sat, 6 Feb 2021 23:01:49 +0000 (00:01 +0100)]
sw_engine rle: fixing clipping with non overlaping figures
For clip that did not overlap with the plotted source, the whole
source was plotted - the size of the rle data was not updated.
JunsuChoi [Fri, 19 Feb 2021 05:22:47 +0000 (14:22 +0900)]
common: Fix ubuntu version in build test
github action started updating to ubuntu20.04 for ubuntu-latest.
So fix Ubuntu version 18.04 as we are not ready enough to test for 20.04 yet.
Mira Grudzinska [Mon, 1 Feb 2021 00:33:50 +0000 (01:33 +0100)]
common render: removed unnecessary assignments in update() fun
The rotation part of the transformation matrix can be assigned,
it does not have to be multiplied by the identity matrix.
The values of e13 and e23 of the transformation matrix represents the translation,
so they don't need to be taken into account in the rotation part.
JunsuChoi [Tue, 26 Jan 2021 02:36:09 +0000 (11:36 +0900)]
infra CI: Introduce new build test with github action
This is a build checker using the github action.
When a pull request occurs this action does a basic build,
example build, build with test.
JunsuChoi [Tue, 16 Feb 2021 02:19:19 +0000 (11:19 +0900)]
common: Clean up code
- Combine if condition with the same return value.
- Remove empty space
- Remove tab
JunsuChoi [Wed, 13 Jan 2021 04:12:57 +0000 (13:12 +0900)]
infra coding_style: Add coding style check bot
Add a bot that checks the coding style using cpplint
and reports the result as a review comment.
This feature refers to the repository where cpplint
and docker settings with github-action.
This action works whenever a PR is created and updated.
In cpplint, only the violation of ThorVG's coding style is reported
as a warning using several options.
whitespace/parens
whitespace/indent
whitespace/end_of_line
whitespace/blank_line
The bot will review all of the contents of all files in the current commit file list,
However, in the future, we will improve Bot to only review the changes.
Mira Grudzinska [Wed, 3 Feb 2021 13:00:35 +0000 (14:00 +0100)]
sw_engine raster: checking zero division while inverting the transform matrix
In case the user has provided the transformation matrix, it is possible that
the inverse matrix does not exist.
Mira Grudzinska [Thu, 4 Feb 2021 01:10:14 +0000 (02:10 +0100)]
sw_engine raster: adding rastering functions for image without transformation
Added rastering functions for the image (transparent and not) for the fast
track option - identity transform.
Mira Grudzinska [Sat, 6 Feb 2021 23:33:01 +0000 (00:33 +0100)]
example ClipPath: update
Added example with non-overlaping clip and shape.
Hermet Park [Wed, 3 Feb 2021 02:33:39 +0000 (11:33 +0900)]
Update CONTRIBUTING.md
updated maintainers.
Mira Grudzinska [Mon, 1 Feb 2021 23:55:42 +0000 (00:55 +0100)]
sw_engine raster: removing unnecessary logical 'and' operation
Shifting the 32-bit number by 24 bits leaves only 8 bits,
so there is no need to mask them with 0xFF.
Michal Szczecinski [Tue, 2 Feb 2021 09:43:48 +0000 (10:43 +0100)]
renderer: Fixed RenderUpdate::All flag fields.
All flag should have all bits set to 1.
Michal Szczecinski [Tue, 2 Feb 2021 10:00:30 +0000 (11:00 +0100)]
shape: Fixed reset api.
Added stroke's RLE reset in shape reset function.
Mira Grudzinska [Tue, 26 Jan 2021 00:28:24 +0000 (01:28 +0100)]
sw_engine renderer: rendering optimization of shapes without strokes
The value of 'a' for shapes without a stroke could hold the fill 'a' value.
Added checking if stroke exists before calling rastering functions.
Patryk Kaczmarek [Mon, 18 Jan 2021 03:41:01 +0000 (04:41 +0100)]
sw_engine composition: invert alpha masking
composition invert alpha masking
@Examples: added InvMasking
@Issues: 31
Change-Id: I2ee9d428d5749240ddf2e6adbb7677dccbe1926f
JunsuChoi [Mon, 1 Feb 2021 04:22:44 +0000 (13:22 +0900)]
svg_loader SvgLoader: Prevent memory leak
When OOM of SvgLinear/RadialGradient occurs,
the allocated id, ref, transform may become a memory leak.
Therefore, add free memory.
Patryk Kaczmarek [Tue, 26 Jan 2021 03:57:56 +0000 (04:57 +0100)]
Capi: Composite Method binding
Change-Id: Ia08f08f93aea5c047ef3c397fd63524fcd13d8c6
Michal Szczecinski [Mon, 25 Jan 2021 05:20:46 +0000 (06:20 +0100)]
common: Removed doxyfile
Change-Id: I5a32bdf16034872b37be89906878c95b43adbedd
Michal Szczecinski [Tue, 19 Jan 2021 20:48:30 +0000 (21:48 +0100)]
capi: Added doxygen comments and doxygen config file.
Change-Id: I2ffa5d201d6af4fe0fd353ed04736638fcf9bf19
Hermet Park [Wed, 20 Jan 2021 14:29:15 +0000 (23:29 +0900)]
common picture: fix minor logic.
missing nulling pointer,
also return value properly.
Hermet Park [Wed, 20 Jan 2021 13:57:29 +0000 (22:57 +0900)]
common canvas: fix non-updated paints.
When shapes are poped from canvas while retaining shapes instances,
they have no chances to redraw after pushed again due to missing flag.
This patch fixes it by forcely updating flag on pushing time.
@Issues: 181
Hermet Park [Sun, 10 Jan 2021 14:34:22 +0000 (23:34 +0900)]
common paint: duplicate composition target.
composition target also copied in duplication.
added missing part.
Change-Id: I3ea084de1b5b27f72a80f34c74580d12b0962cc4
Hermet Park [Sun, 10 Jan 2021 11:37:20 +0000 (20:37 +0900)]
sw_engine composition: enhance image masking
composition alpha masking supports scene/paints targets.
@Examples: Masking
@Issues: 31
Change-Id: I7aed18172fab54a2e31ccf8894fcb6fb6925a8a8
Hermet Park [Sun, 10 Jan 2021 10:54:05 +0000 (19:54 +0900)]
sw_engine: optimize raster image.
added a routine that draw non-transformed translucent image.
composition images will use this routine to draw faster.
Also added optimization point comments in raster image.
Change-Id: Ibffb6b9fe06d39b5e1ba342f693f9fc64ccb7314