common paint: introduce opacity() method.
authorHermet Park <chuneon.park@samsung.com>
Mon, 26 Oct 2020 09:57:11 +0000 (18:57 +0900)
committerHermet Park <chuneon.park@samsung.com>
Mon, 2 Nov 2020 04:09:35 +0000 (13:09 +0900)
commit765ee0a60a03896d3ab57af3de79dc85c8c629aa
tree483cba702b219d7222cfb7067779d412163181d1
parent396ea43ecaeb5a0393348ad67488b22a424fa81d
common paint: introduce opacity() method.

We introduced separate opacity interface to adjust alpha value by paint.
This opacity will affect to whole paint image if paint is a group of paints.

Also, this opacity is to multipy with fill/stroke alpha values.
This means if the opacity is valid, the paint might deal with a composition step,
which is very expensive due to additional rendering step.

One tip is, if you want to toggle on/off for a certian paint,
you can set opacity to 255 or 0.

@API Additions:

Result Paint::opacity(uint8_t o) noexcept;
uint8_t Paint::opacity() const noexcept;

@Examples: examples/Opacity

@Issues: 94

Change-Id: Ie291890304230c34006fbe7f96a8707e01d9439c
14 files changed:
inc/thorvg.h
src/examples/Opacity.cpp [new file with mode: 0644]
src/examples/meson.build
src/lib/gl_engine/tvgGlRenderer.cpp
src/lib/gl_engine/tvgGlRenderer.h
src/lib/sw_engine/tvgSwRenderer.cpp
src/lib/sw_engine/tvgSwRenderer.h
src/lib/tvgCanvasImpl.h
src/lib/tvgPaint.cpp
src/lib/tvgPaint.h
src/lib/tvgPictureImpl.h
src/lib/tvgRender.h
src/lib/tvgSceneImpl.h
src/lib/tvgShapeImpl.h