mirror of
https://github.com/thorvg/thorvg.git
synced 2025-07-04 13:45:17 +00:00
sw_engine: ++clean code
Some checks are pending
Android / build_x86_64 (push) Waiting to run
Android / build_aarch64 (push) Waiting to run
iOS / build_x86_64 (push) Waiting to run
iOS / build_arm64 (push) Waiting to run
macOS / build (push) Waiting to run
macOS / compact_test (push) Waiting to run
macOS / unit_test (push) Waiting to run
Ubuntu / build (push) Waiting to run
Ubuntu / compact_test (push) Waiting to run
Ubuntu / unit_test (push) Waiting to run
Windows / build (push) Waiting to run
Windows / compact_test (push) Waiting to run
Windows / unit_test (push) Waiting to run
Some checks are pending
Android / build_x86_64 (push) Waiting to run
Android / build_aarch64 (push) Waiting to run
iOS / build_x86_64 (push) Waiting to run
iOS / build_arm64 (push) Waiting to run
macOS / build (push) Waiting to run
macOS / compact_test (push) Waiting to run
macOS / unit_test (push) Waiting to run
Ubuntu / build (push) Waiting to run
Ubuntu / compact_test (push) Waiting to run
Ubuntu / unit_test (push) Waiting to run
Windows / build (push) Waiting to run
Windows / compact_test (push) Waiting to run
Windows / unit_test (push) Waiting to run
This commit is contained in:
parent
40d75c6276
commit
5e17fe0034
1 changed files with 5 additions and 8 deletions
|
@ -1531,15 +1531,12 @@ bool rasterClear(SwSurface* surface, uint32_t x, uint32_t y, uint32_t w, uint32_
|
||||||
|
|
||||||
uint32_t rasterUnpremultiply(uint32_t data)
|
uint32_t rasterUnpremultiply(uint32_t data)
|
||||||
{
|
{
|
||||||
uint8_t a = data >> 24;
|
auto a = A(data);
|
||||||
if (a == 255 || a == 0) return data;
|
if (a == 255 || a == 0) return data;
|
||||||
uint16_t r = ((data >> 8) & 0xff00) / a;
|
auto r = C1(data) * 255 / a;
|
||||||
uint16_t g = ((data) & 0xff00) / a;
|
auto g = C2(data) * 255 / a;
|
||||||
uint16_t b = ((data << 8) & 0xff00) / a;
|
auto b = C3(data) * 255 / a;
|
||||||
if (r > 0xff) r = 0xff;
|
return JOIN(a, r, g, b);
|
||||||
if (g > 0xff) g = 0xff;
|
|
||||||
if (b > 0xff) b = 0xff;
|
|
||||||
return (a << 24) | (r << 16) | (g << 8) | (b);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue