diff options
author | Luboš Luňák <l.lunak@collabora.com> | 2019-11-05 12:58:18 +0100 |
---|---|---|
committer | Luboš Luňák <l.lunak@collabora.com> | 2019-11-26 13:24:55 +0100 |
commit | 256c81ac820cdfebc0c28cc8ed7c431334197815 (patch) | |
tree | 053b32c3135c27f7ba183387dba25807b638b45e /vcl | |
parent | ee249e98d7ac3097d2217a231c014d032c89f208 (diff) |
handle properly Skia color endianess
Change-Id: I59af62fa92903823eb7105d82157017e485ba0df
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/skia/gdiimpl.cxx | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/vcl/skia/gdiimpl.cxx b/vcl/skia/gdiimpl.cxx index 18bd87efdc88..d85ba18ffa76 100644 --- a/vcl/skia/gdiimpl.cxx +++ b/vcl/skia/gdiimpl.cxx @@ -831,27 +831,29 @@ void SkiaSalGraphicsImpl::invert(basegfx::B2DPolygon const& rPoly, SalInvert eFl // TODO Cache the bitmap SkBitmap aBitmap; aBitmap.allocN32Pixels(4, 4); + const SkPMColor white = SkPreMultiplyARGB(0xFF, 0xFF, 0xFF, 0xFF); + const SkPMColor black = SkPreMultiplyARGB(0xFF, 0x00, 0x00, 0x00); SkPMColor* scanline; scanline = aBitmap.getAddr32(0, 0); - *scanline++ = 0xFFFFFFFF; - *scanline++ = 0xFFFFFFFF; - *scanline++ = 0xFF000000; - *scanline++ = 0xFF000000; + *scanline++ = white; + *scanline++ = white; + *scanline++ = black; + *scanline++ = black; scanline = aBitmap.getAddr32(0, 1); - *scanline++ = 0xFFFFFFFF; - *scanline++ = 0xFFFFFFFF; - *scanline++ = 0xFF000000; - *scanline++ = 0xFF000000; + *scanline++ = white; + *scanline++ = white; + *scanline++ = black; + *scanline++ = black; scanline = aBitmap.getAddr32(0, 2); - *scanline++ = 0xFF000000; - *scanline++ = 0xFF000000; - *scanline++ = 0xFFFFFFFF; - *scanline++ = 0xFFFFFFFF; + *scanline++ = black; + *scanline++ = black; + *scanline++ = white; + *scanline++ = white; scanline = aBitmap.getAddr32(0, 3); - *scanline++ = 0xFF000000; - *scanline++ = 0xFF000000; - *scanline++ = 0xFFFFFFFF; - *scanline++ = 0xFFFFFFFF; + *scanline++ = black; + *scanline++ = black; + *scanline++ = white; + *scanline++ = white; // The bitmap is repeated in both directions the checker pattern is as big // as the polygon (usually rectangle) aPaint.setShader(aBitmap.makeShader(SkTileMode::kRepeat, SkTileMode::kRepeat)); |