From 33e6264954ac787430bcd54a773e709ece171a1a Mon Sep 17 00:00:00 2001 From: Kostas Nakos Date: Sat, 10 Jun 2006 11:08:34 +0000 Subject: new landscape aspect scaler (n0p) svn-id: r23003 --- backends/wince/CEScaler.cpp | 57 +++++++++++++++++++++++++++++++++++++++++++++ backends/wince/CEScaler.h | 1 + 2 files changed, 58 insertions(+) (limited to 'backends') diff --git a/backends/wince/CEScaler.cpp b/backends/wince/CEScaler.cpp index 9c118a8d80..86fe2a7104 100644 --- a/backends/wince/CEScaler.cpp +++ b/backends/wince/CEScaler.cpp @@ -72,6 +72,63 @@ void PocketPCPortrait(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint3 } } +void PocketPCLandscapeAspect(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, int width, int height) { + +#define RB(x) ((x & redblueMasks[maskUsed])<<8) +#define G(x) ((x & greenMasks[maskUsed])<<3) + +#define P20(x) (((x)>>2)-((x)>>4)) +#define P40(x) (((x)>>1)-((x)>>3)) +#define P60(x) (((x)>>1)+((x)>>3)) +#define P80(x) (((x)>>1)+((x)>>2)+((x)>>4)) + +#define MAKEPIXEL(rb,g) ((((rb)>>8) & redblueMasks[maskUsed] | ((g)>>3) & greenMasks[maskUsed])) + + int i,j; + unsigned int p1; + unsigned int p2; + uint16 * inbuf; + uint16 * outbuf; + inbuf=(uint16 *)srcPtr; + outbuf=(uint16 *)dstPtr; + + uint16 srcPitch16 = (uint16)(srcPitch / sizeof(uint16)); + uint16 dstPitch16 = (uint16)(dstPitch / sizeof(uint16)); + + for (i=0; i<((height)/6); i++) { + for (j=0; j