aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/wince/CEScaler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backends/platform/wince/CEScaler.cpp')
-rw-r--r--backends/platform/wince/CEScaler.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/backends/platform/wince/CEScaler.cpp b/backends/platform/wince/CEScaler.cpp
index 86fe2a7104..dac46b801a 100644
--- a/backends/platform/wince/CEScaler.cpp
+++ b/backends/platform/wince/CEScaler.cpp
@@ -128,8 +128,19 @@ void PocketPCLandscapeAspect(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr
}
}
+#ifdef ARM
+extern "C" {
+ void PocketPCHalfARM(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, int width, int height, int mask, int round);
+ // Rounding constants and masks used for different pixel formats
+ int roundingconstants[] = { 0x00200802, 0x00201002 };
+ int redbluegreenMasks[] = { 0x03E07C1F, 0x07E0F81F };
+}
+#endif
void PocketPCHalf(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, int width, int height) {
+#ifdef ARM
+ PocketPCHalfARM(srcPtr, srcPitch, dstPtr, dstPitch, width, height, redbluegreenMasks[maskUsed],roundingconstants[maskUsed]);
+#else
uint8 *work;
int i;
uint16 srcPitch16 = (uint16)(srcPitch / sizeof(uint16));
@@ -151,6 +162,7 @@ void PocketPCHalf(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 ds
srcPtr += 2 * srcPitch;
dstPtr += dstPitch;
}
+#endif
}