GRAPHICS: Replace OverlayColor with uint16 in scaler code.

Scalers are actually fixed at 2Bpp right now and not at the
depth of OverlayColor.
This commit is contained in:
Johannes Schickel 2012-06-12 04:13:00 +02:00
parent ef8239df48
commit 0075fa2f98
2 changed files with 9 additions and 10 deletions

View file

@ -167,12 +167,12 @@ void DestroyScalers(){
void Normal1x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, void Normal1x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch,
int width, int height) { int width, int height) {
// Spot the case when it can all be done in 1 hit // Spot the case when it can all be done in 1 hit
if ((srcPitch == sizeof(OverlayColor) * (uint)width) && (dstPitch == sizeof(OverlayColor) * (uint)width)) { if ((srcPitch == sizeof(uint16) * (uint)width) && (dstPitch == sizeof(uint16) * (uint)width)) {
memcpy(dstPtr, srcPtr, sizeof(OverlayColor) * width * height); memcpy(dstPtr, srcPtr, sizeof(uint16) * width * height);
return; return;
} }
while (height--) { while (height--) {
memcpy(dstPtr, srcPtr, sizeof(OverlayColor) * width); memcpy(dstPtr, srcPtr, sizeof(uint16) * width);
srcPtr += srcPitch; srcPtr += srcPitch;
dstPtr += dstPitch; dstPtr += dstPitch;
} }
@ -207,11 +207,10 @@ void Normal2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPit
uint8 *r; uint8 *r;
assert(IS_ALIGNED(dstPtr, 4)); assert(IS_ALIGNED(dstPtr, 4));
assert(sizeof(OverlayColor) == 2);
while (height--) { while (height--) {
r = dstPtr; r = dstPtr;
for (int i = 0; i < width; ++i, r += 4) { for (int i = 0; i < width; ++i, r += 4) {
uint32 color = *(((const OverlayColor *)srcPtr) + i); uint32 color = *(((const uint16 *)srcPtr) + i);
color |= color << 16; color |= color << 16;

View file

@ -160,14 +160,14 @@ int stretch200To240(uint8 *buf, uint32 pitch, int width, int height, int srcX, i
#if ASPECT_MODE == kSuperFastAndUglyAspectMode #if ASPECT_MODE == kSuperFastAndUglyAspectMode
if (srcPtr == dstPtr) if (srcPtr == dstPtr)
break; break;
memcpy(dstPtr, srcPtr, sizeof(OverlayColor) * width); memcpy(dstPtr, srcPtr, sizeof(uint16) * width);
#else #else
// Bilinear filter // Bilinear filter
switch (y % 6) { switch (y % 6) {
case 0: case 0:
case 5: case 5:
if (srcPtr != dstPtr) if (srcPtr != dstPtr)
memcpy(dstPtr, srcPtr, sizeof(OverlayColor) * width); memcpy(dstPtr, srcPtr, sizeof(uint16) * width);
break; break;
case 1: case 1:
interpolate5Line<ColorMask, 1>((uint16 *)dstPtr, (const uint16 *)(srcPtr - pitch), (const uint16 *)srcPtr, width); interpolate5Line<ColorMask, 1>((uint16 *)dstPtr, (const uint16 *)(srcPtr - pitch), (const uint16 *)srcPtr, width);
@ -206,13 +206,13 @@ void Normal1xAspectTemplate(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr,
#if ASPECT_MODE == kSuperFastAndUglyAspectMode #if ASPECT_MODE == kSuperFastAndUglyAspectMode
if ((y % 6) == 5) if ((y % 6) == 5)
srcPtr -= srcPitch; srcPtr -= srcPitch;
memcpy(dstPtr, srcPtr, sizeof(OverlayColor) * width); memcpy(dstPtr, srcPtr, sizeof(uint16) * width);
#else #else
// Bilinear filter five input lines onto six output lines // Bilinear filter five input lines onto six output lines
switch (y % 6) { switch (y % 6) {
case 0: case 0:
// First output line is copied from first input line // First output line is copied from first input line
memcpy(dstPtr, srcPtr, sizeof(OverlayColor) * width); memcpy(dstPtr, srcPtr, sizeof(uint16) * width);
break; break;
case 1: case 1:
// Second output line is mixed from first and second input line // Second output line is mixed from first and second input line
@ -233,7 +233,7 @@ void Normal1xAspectTemplate(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr,
case 5: case 5:
// Sixth (and last) output line is copied from fifth (and last) input line // Sixth (and last) output line is copied from fifth (and last) input line
srcPtr -= srcPitch; srcPtr -= srcPitch;
memcpy(dstPtr, srcPtr, sizeof(OverlayColor) * width); memcpy(dstPtr, srcPtr, sizeof(uint16) * width);
break; break;
} }
#endif #endif