sw_engine image: support non-premultiplied alpha images.
authorHermet Park <chuneon.park@samsung.com>
Wed, 1 Dec 2021 05:16:01 +0000 (14:16 +0900)
committerHermet Park <chuneon.park@samsung.com>
Mon, 6 Dec 2021 06:28:16 +0000 (15:28 +0900)
commit3743add5c3bd82d4c1aeca7363a4796ef6cdffa5
tree5df993e09947083f8392479019bfa16fa2230b43
parent34eed8d330a582d3257c61ff445552cbb8beb4e4
sw_engine image: support non-premultiplied alpha images.

Previously, translucent png images are not displayed properly
due to alpha channels premultiplication.

This patch implements that missing part to support it properly
by introducing the Surface data between canvas engine & rasterizer

@Issue: https://github.com/Samsung/thorvg/issues/655

Change-Id: I42d2b8d6854517f61cdc0eaf3ae105a426e0c61b
23 files changed:
inc/thorvg.h
src/examples/images/test.png
src/lib/gl_engine/tvgGlRenderer.cpp
src/lib/gl_engine/tvgGlRenderer.h
src/lib/sw_engine/tvgSwCommon.h
src/lib/sw_engine/tvgSwImage.cpp
src/lib/sw_engine/tvgSwRaster.cpp
src/lib/sw_engine/tvgSwRenderer.cpp
src/lib/sw_engine/tvgSwRenderer.h
src/lib/tvgLoadModule.h
src/lib/tvgPicture.cpp
src/lib/tvgPictureImpl.h
src/lib/tvgRender.h
src/loaders/external_jpg/tvgJpgLoader.cpp
src/loaders/external_jpg/tvgJpgLoader.h
src/loaders/external_png/tvgPngLoader.cpp
src/loaders/external_png/tvgPngLoader.h
src/loaders/jpg/tvgJpgLoader.cpp
src/loaders/jpg/tvgJpgLoader.h
src/loaders/png/tvgPngLoader.cpp
src/loaders/png/tvgPngLoader.h
src/loaders/raw/tvgRawLoader.cpp
src/loaders/raw/tvgRawLoader.h