From dfb31cdc3ca614f97d843c8d799e35504ad6b826 Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Sun, 11 Apr 2021 02:13:41 -0400
Subject: [PATCH 2/2] Fix RGBA processing on big-endian machines.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
src/_mplcairo.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/_mplcairo.cpp b/src/_mplcairo.cpp
index 8f16841..fc90572 100644
--- a/src/_mplcairo.cpp
+++ b/src/_mplcairo.cpp
@@ -129,7 +129,7 @@ py::bytes Region::get_straight_argb32_bytes() {
}
} else { // big-endian
auto u32_ptr = static_cast<uint32_t*>(buf.ptr);
- for (auto i = 0; i < size; i += 4) {
+ for (auto i = 0; i < size / 4; i++) {
u32_ptr[i] = (u32_ptr[i] >> 8) + (u32_ptr[i] << 24); // RGBA->ARGB
}
}
@@ -1816,7 +1816,7 @@ py::array_t<uint8_t, py::array::c_style> cairo_to_premultiplied_rgba8888(
}
} else { // big-endian
auto u32_ptr = reinterpret_cast<uint32_t*>(u8.mutable_data());
- for (auto i = 0; i < size; i += 4) {
+ for (auto i = 0; i < size / 4; i++) {
u32_ptr[i] = (u32_ptr[i] << 8) + (u32_ptr[i] >> 24); // ARGB->RGBA
}
}
--
2.29.2