aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/wince/CEScaler.cpp
diff options
context:
space:
mode:
authorKostas Nakos2007-04-09 19:41:30 +0000
committerKostas Nakos2007-04-09 19:41:30 +0000
commitc909ae47f69bea2da63c4fc91bd2087382ff18aa (patch)
treebac775db6c34f8951952e7b70d0f2da0f98dbf7e /backends/platform/wince/CEScaler.cpp
parent4bf26957aa41cf3bb30bfcd2727381f4c3cc89c9 (diff)
downloadscummvm-rg350-c909ae47f69bea2da63c4fc91bd2087382ff18aa.tar.gz
scummvm-rg350-c909ae47f69bea2da63c4fc91bd2087382ff18aa.tar.bz2
scummvm-rg350-c909ae47f69bea2da63c4fc91bd2087382ff18aa.zip
applied patch 1696852: ARM 4/1 scaler by Robin Watts
svn-id: r26442
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
}