summaryrefslogtreecommitdiff
path: root/libreofficekit
diff options
context:
space:
mode:
authorCaolán McNamara <caolan.mcnamara@collabora.com>2023-06-26 16:56:21 +0100
committerCaolán McNamara <caolan.mcnamara@collabora.com>2023-06-27 10:04:36 +0200
commit22ab4f30ac2125579c43ad889f7b8b45b1dda3e3 (patch)
tree94babdffd86dcb0fe6ae7ca80483f1af84da1805 /libreofficekit
parentaa86e7e8c22527eb5da0b8a05dbd4bd749f7a2b8 (diff)
add an --enable-cairo-rgba to set the order of pixels for internal cairo
Change-Id: Ieab2ef59f63a7722bffea3273d2eeefadef47b56 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153628 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Diffstat (limited to 'libreofficekit')
-rw-r--r--libreofficekit/qa/tilebench/tilebench.cxx38
1 files changed, 21 insertions, 17 deletions
diff --git a/libreofficekit/qa/tilebench/tilebench.cxx b/libreofficekit/qa/tilebench/tilebench.cxx
index 382003e9ec5a..3464c589f542 100644
--- a/libreofficekit/qa/tilebench/tilebench.cxx
+++ b/libreofficekit/qa/tilebench/tilebench.cxx
@@ -110,29 +110,33 @@ static void dumpTile(const char *pNameStem,
for (int x = 0; x < nWidth; ++x)
{
const char* pixel = row + x * 4;
- if (mode == LOK_TILEMODE_RGBA)
+
+ const int alpha = *(pixel + 3);
+ char buf[3];
+ if (alpha == 0)
{
- ofs.write(pixel, 3); // Skip alpha
+ buf[0] = 0;
+ buf[1] = 0;
+ buf[2] = 0;
}
- else if (mode == LOK_TILEMODE_BGRA)
+ else
{
- const int alpha = *(pixel + 3);
- char buf[3];
- if (alpha == 0)
- {
- buf[0] = 0;
- buf[1] = 0;
- buf[2] = 0;
- }
- else
+ switch (mode)
{
- buf[0] = (*(pixel + 2) * 255 + alpha / 2) / alpha;
- buf[1] = (*(pixel + 1) * 255 + alpha / 2) / alpha;
- buf[2] = (*(pixel + 0) * 255 + alpha / 2) / alpha;
+ case LOK_TILEMODE_RGBA:
+ buf[0] = (*(pixel + 0) * 255 + alpha / 2) / alpha;
+ buf[1] = (*(pixel + 1) * 255 + alpha / 2) / alpha;
+ buf[2] = (*(pixel + 2) * 255 + alpha / 2) / alpha;
+ break;
+ case LOK_TILEMODE_BGRA:
+ buf[0] = (*(pixel + 2) * 255 + alpha / 2) / alpha;
+ buf[1] = (*(pixel + 1) * 255 + alpha / 2) / alpha;
+ buf[2] = (*(pixel + 0) * 255 + alpha / 2) / alpha;
+ break;
}
-
- ofs.write(buf, 3);
}
+
+ ofs.write(buf, 3);
if (dumpText)
{
int lowResI = (pixel[0] + pixel[1] + pixel[2])/(3*16);