summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorDavid Tardon <dtardon@redhat.com>2016-06-27 14:17:38 -0400
committerCaolán McNamara <caolanm@redhat.com>2016-06-29 14:43:21 +0000
commitd0a111a397e8fe882ebb7b0431ff4077c611c66f (patch)
tree410cd0ae14a6d9c67f415b15020c79d78ef0e56c /vcl
parent8851333f8aafe84ca9479faf24d9164035aff520 (diff)
rhbz#1341064 fix OutputDevice test on big endian systems
Change-Id: I902acd90797ab26304bc5b239b862cae9f3075ef (cherry picked from commit e9ef81eeefba5c4ec6de3fe72aefb6af26de30c4) Reviewed-on: https://gerrit.libreoffice.org/26758 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/headless/svpgdi.cxx6
-rw-r--r--vcl/inc/headless/svpgdi.hxx4
2 files changed, 9 insertions, 1 deletions
diff --git a/vcl/headless/svpgdi.cxx b/vcl/headless/svpgdi.cxx
index 2cbfb23360c7..2ddc8e5290dc 100644
--- a/vcl/headless/svpgdi.cxx
+++ b/vcl/headless/svpgdi.cxx
@@ -1125,9 +1125,15 @@ SalColor SvpSalGraphics::getPixel( long nX, long nY )
unsigned char *surface_data = cairo_image_surface_get_data(m_pSurface);
unsigned char *row = surface_data + (nStride*nY);
unsigned char *data = row + (nX * 4);
+# if defined OSL_BIGENDIAN
+ sal_uInt8 b = unpremultiply(data[3], data[0]);
+ sal_uInt8 g = unpremultiply(data[2], data[0]);
+ sal_uInt8 r = unpremultiply(data[1], data[0]);
+#else
sal_uInt8 b = unpremultiply(data[0], data[3]);
sal_uInt8 g = unpremultiply(data[1], data[3]);
sal_uInt8 r = unpremultiply(data[2], data[3]);
+#endif
return MAKE_SALCOLOR(r, g, b);
}
diff --git a/vcl/inc/headless/svpgdi.hxx b/vcl/inc/headless/svpgdi.hxx
index dc88a6025995..0d881956617d 100644
--- a/vcl/inc/headless/svpgdi.hxx
+++ b/vcl/inc/headless/svpgdi.hxx
@@ -37,8 +37,10 @@
//which is internal in that case, to swap the rgb components so that
//cairo then matches the OpenGL GL_RGBA format so we can use it there
//where we don't have GL_BGRA support.
-#ifdef ANDROID
+#if defined ANDROID
# define SVP_CAIRO_FORMAT (ScanlineFormat::N32BitTcRgba | ScanlineFormat::TopDown)
+#elif defined OSL_BIGENDIAN
+# define SVP_CAIRO_FORMAT (ScanlineFormat::N32BitTcArgb | ScanlineFormat::TopDown)
#else
# define SVP_CAIRO_FORMAT (ScanlineFormat::N32BitTcBgra | ScanlineFormat::TopDown)
#endif