aboutsummaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
authorCameron Cawley2019-12-16 19:21:22 +0000
committerFilippos Karapetis2019-12-17 01:18:11 +0200
commitde096f56a524ce32b598c6b5902252c62ddc8f9b (patch)
tree31fe865e3ba60ba9e7f5f0ddace4206bf75c7691 /graphics
parent7d13c60a8bb7a1d71d2eb86b6530749a791d4792 (diff)
downloadscummvm-rg350-de096f56a524ce32b598c6b5902252c62ddc8f9b.tar.gz
scummvm-rg350-de096f56a524ce32b598c6b5902252c62ddc8f9b.tar.bz2
scummvm-rg350-de096f56a524ce32b598c6b5902252c62ddc8f9b.zip
GRAPHICS: Remove unused scaler code
Diffstat (limited to 'graphics')
-rw-r--r--graphics/scaler/Normal2xARM.s228
-rw-r--r--graphics/scaler/aspect.cpp97
-rw-r--r--graphics/scaler/aspect.h15
3 files changed, 0 insertions, 340 deletions
diff --git a/graphics/scaler/Normal2xARM.s b/graphics/scaler/Normal2xARM.s
index c5684c30e6..f83ce5b21e 100644
--- a/graphics/scaler/Normal2xARM.s
+++ b/graphics/scaler/Normal2xARM.s
@@ -23,7 +23,6 @@
.text
.global Normal2xARM
- .global Normal2xAspectMask
@ Assumes dst is aligned (so did the C)
@@ -83,230 +82,3 @@ thin:
BGT yloop
LDMFD r13!,{r4-r11,PC}
-
-
- @ Horrid filter calculations
- @ AAAAAAAAAAAABBBBBBBBBBBBCCCCCCCCCCCCDDDDDDDDDDDDEEEEEEEEEEEE
- @ <-+-><-+-><-+-><-+-><-+-><-+-><-+-><-+-><-+-><-+-><-+-><-+->
- @ Ideal: A,A,(A*2+B*3)/5,B,(B*4+C)/5,C,C,(C+D*4)/5,D,(D*3+E*2)/5,E,E
- @ Actual: A,A,(A*3+B*5)/8,B,(B*7+C)/8,C,C,(C+D*7)/8,D,(D*5+E*3)/8,E,E
-
- @ Assumes dst is aligned (so did the C)
- @ Assumes 16bit (so did the C)
- .align 2
-Normal2xAspectMask:
- @ r0 = src
- @ r1 = srcPitch
- @ r2 = dst
- @ r3 = dstPitch
- @ r4 = w
- @ r5 = h
- @ r12= mask
- STMFD r13!,{r4-r11,r14}
- LDR r4, [r13,#4*9] @ r4 = w
- LDR r5, [r13,#4*10] @ r5 = h
- LDR r12,[r13,#4*11] @ r12= mask
- MOV r11,#2
- SUB r11,r11,r1, LSL #2 @ r11= 2-srcPitch*4
- MOV r14,#4
- SUB r14,r14,r3, LSL #3
- SUB r14,r14,r3, LSL #1
- SUB r14,r14,r3 @ r14 = 4-dstPitch*11
- SUBS r5, r5, #4
- BLE last_few_lines
-yloop_aspect:
-xloop_aspect:
- LDRH r6, [r0], r1 @ r6 = A
- LDRH r7, [r0], r1 @ r7 = B
- LDRH r8, [r0], r1 @ r8 = C
- LDRH r9, [r0], r1 @ r9 = D
- LDRH r10,[r0], r11 @ r10= E
- ORR r6, r6, r6, LSL #16 @ r6 = output 0, 1
- ORR r7, r7, r7, LSL #16 @ r7 = output 3
- ORR r8, r8, r8, LSL #16 @ r8 = output 5,6
- ORR r9, r9, r9, LSL #16 @ r9 = output 8
- ORR r10,r10,r10,LSL #16 @ r10= output 10, 11
- STR r6, [r2], r3 @ output 0 (A)
- STR r6, [r2], r3 @ output 1 (A)
- AND r6, r6, r12 @ r6 = A split
- ADD r6, r6, r6, LSL #1 @ r6 = A*3
- STR r7, [r2, r3] @ output 3 (B)
- AND r7, r7, r12 @ r7 = B split
- ADD r6, r6, r7 @ r6 = A*3 + B
- ADD r6, r6, r7, LSL #2 @ r6 = A*3 + B*5
- AND r6, r12,r6, LSR #3 @ r6 = (A*3 + B*5)>>3
- ORR r6, r6, r6, ROR #16 @ r6 = output 2
- STR r6, [r2], r3, LSL #1 @ output 2 (A*3+B*5)>>3
- RSB r7, r7, r7, LSL #3 @ r7 = B*7
- AND r6, r8, r12 @ r6 = C split
- ADD r7, r7, r6 @ r7 = B*7+C
- AND r7, r12,r7, LSR #3 @ r7 = (B*7 + C)>>3
- ORR r7, r7, r7, ROR #16 @ r7 = output 4
- STR r7, [r2], r3 @ output 4 (B*7+C)>>3
- STR r8, [r2], r3 @ output 5 (C)
- STR r8, [r2], r3 @ output 6 (C)
- STR r9, [r2, r3] @ output 8 (D)
- AND r9, r9, r12 @ r9 = D split
- RSB r7, r9, r9, LSL #3 @ r7 = D*7
- ADD r6, r6, r7 @ r6 = C+D*7
- AND r6, r12,r6, LSR #3 @ r6 = (C + D*7)>>3
- ORR r6, r6, r6, ROR #16 @ r6 = output 7
- STR r6, [r2], r3, LSL #1 @ output 7 (C+D*7)>>3
- ADD r9, r9, r9, LSL #2 @ r9 = D*5
- AND r6, r10,r12 @ r6 = E split
- ADD r9, r9, r6 @ r9 = D*5+E
- ADD r9, r9, r6, LSL #1 @ r9 = D*5+E*3
- AND r9, r12,r9, LSR #3 @ r9 = (D*5 + E*3)>>3
- ORR r9, r9, r9, ROR #16 @ r9 = output 9
- STR r9, [r2], r3 @ output 9 (D*5+E*3)>>3
- STR r10,[r2], r3 @ output 10 (E)
- STR r10,[r2], r14 @ output 11 (E)
- SUBS r4, r4, #1
- BGT xloop_aspect
- LDR r4, [r13,#4*9] @ r4 = w
- ADD r0, r0, r1, LSL #2
- ADD r0, r0, r1
- SUB r0, r0, r4, LSL #1
- ADD r2, r2, r3, LSL #3
- ADD r2, r2, r3, LSL #2
- SUB r2, r2, r4, LSL #2
- SUBS r5, r5, #5
- BGT yloop_aspect
-last_few_lines:
- @ r5 = -4 => done, -3 => 1 left, -2 = 2 left, -1 = 3 left, 0 = 4 left
- ADDS r5, r5, #3
- @ r5 = -1 => done, 0 => 1 left, 1 = 2 left, 2 = 3 left, 3 = 4 left
- LDMLTFD r13!,{r4-r11,PC}
- BEQ last1lines
- CMP r5, #2
- BEQ last3lines
- BGT last4lines
-last2lines:
- ADD r11,r11,r1
- ADD r14,r14,r3
- ADD r11,r11,r1, LSL #1
- ADD r14,r14,r3, LSL #3
-xloop_aspect2:
- LDRH r6, [r0], r1 @ r6 = A
- LDRH r7, [r0], r11 @ r7 = B
- SUBS r4, r4, #1
- ORR r6, r6, r6, LSL #16 @ r6 = output 0, 1
- ORR r7, r7, r7, LSL #16 @ r7 = output 3
- STR r6, [r2], r3 @ output 0 (A)
- STR r6, [r2], r3 @ output 1 (A)
- AND r6, r6, r12 @ r6 = A split
- ADD r6, r6, r6, LSL #1 @ r6 = A*3
- STR r7, [r2, r3] @ output 3 (B)
- AND r7, r7, r12 @ r7 = B split
- ADD r6, r6, r7 @ r6 = A*3 + B
- ADD r6, r6, r7, LSL #2 @ r6 = A*3 + B*5
- AND r6, r12,r6, LSR #3 @ r6 = (A*3 + B*5)>>3
- ORR r6, r6, r6, ROR #16 @ r6 = output 2
- STR r6, [r2], r14 @ output 2 (A*3+B*5)>>3
- BGT xloop_aspect2
-
- LDMFD r13!,{r4-r11,PC}
-
-last1lines:
-xloop_aspect1:
- LDRH r6, [r0], #2 @ r6 = A
- ORR r6, r6, r6, LSL #16 @ r6 = output 0, 1
- STR r6, [r2, r3] @ output 0 (A)
- STR r6, [r2], #4 @ output 1 (A)
- SUBS r4, r4, #1
- BGT xloop_aspect1
-
- LDMFD r13!,{r4-r11,PC}
-
-last3lines:
- ADD r14,r14,r3, LSL #2
- ADD r11,r11,r1
-xloop_aspect3:
- LDRH r6, [r0], r1 @ r6 = A
- LDRH r7, [r0], r1 @ r7 = B
- LDRH r8, [r0], r1 @ r8 = C
- LDRH r9, [r0], r11 @ r9 = D
- ORR r6, r6, r6, LSL #16 @ r6 = output 0, 1
- ORR r7, r7, r7, LSL #16 @ r7 = output 3
- ORR r8, r8, r8, LSL #16 @ r8 = output 5,6
- ORR r9, r9, r9, LSL #16 @ r9 = output 8
- STR r6, [r2], r3 @ output 0 (A)
- STR r6, [r2], r3 @ output 1 (A)
- AND r6, r6, r12 @ r6 = A split
- ADD r6, r6, r6, LSL #1 @ r6 = A*3
- STR r7, [r2, r3] @ output 3 (B)
- AND r7, r7, r12 @ r7 = B split
- ADD r6, r6, r7 @ r6 = A*3 + B
- ADD r6, r6, r7, LSL #2 @ r6 = A*3 + B*5
- AND r6, r12,r6, LSR #3 @ r6 = (A*3 + B*5)>>3
- ORR r6, r6, r6, ROR #16 @ r6 = output 2
- STR r6, [r2], r3, LSL #1 @ output 2 (A*3+B*5)>>3
- RSB r7, r7, r7, LSL #3 @ r7 = B*7
- AND r6, r8, r12 @ r6 = C split
- ADD r7, r7, r6 @ r7 = B*7+C
- AND r7, r12,r7, LSR #3 @ r7 = (B*7 + C)>>3
- ORR r7, r7, r7, ROR #16 @ r7 = output 4
- STR r7, [r2], r3 @ output 4 (B*7+C)>>3
- STR r8, [r2], r3 @ output 5 (C)
- STR r8, [r2], r3 @ output 6 (C)
- AND r9, r9, r12 @ r9 = D split
- RSB r7, r9, r9, LSL #3 @ r7 = D*7
- ADD r6, r6, r7 @ r6 = C+D*7
- AND r6, r12,r6, LSR #3 @ r6 = (C + D*7)>>3
- ORR r6, r6, r6, ROR #16 @ r6 = output 7
- STR r6, [r2], r14 @ output 7 (C+D*7)>>3
- SUBS r4, r4, #1
- BGT xloop_aspect3
-
- LDMFD r13!,{r4-r11,PC}
-
-last4lines:
- ADD r14,r14,r3, LSL #1
-xloop_aspect4:
- LDRH r6, [r0], r1 @ r6 = A
- LDRH r7, [r0], r1 @ r7 = B
- LDRH r8, [r0], r1 @ r8 = C
- LDRH r9, [r0], r1 @ r9 = D
- LDRH r10,[r0], r11 @ r10= E
- ORR r6, r6, r6, LSL #16 @ r6 = output 0, 1
- ORR r7, r7, r7, LSL #16 @ r7 = output 3
- ORR r8, r8, r8, LSL #16 @ r8 = output 5,6
- ORR r9, r9, r9, LSL #16 @ r9 = output 8
- ORR r10,r10,r10,LSL #16 @ r10= output 10, 11
- STR r6, [r2], r3 @ output 0 (A)
- STR r6, [r2], r3 @ output 1 (A)
- AND r6, r6, r12 @ r6 = A split
- ADD r6, r6, r6, LSL #1 @ r6 = A*3
- STR r7, [r2, r3] @ output 3 (B)
- AND r7, r7, r12 @ r7 = B split
- ADD r6, r6, r7 @ r6 = A*3 + B
- ADD r6, r6, r7, LSL #2 @ r6 = A*3 + B*5
- AND r6, r12,r6, LSR #3 @ r6 = (A*3 + B*5)>>3
- ORR r6, r6, r6, ROR #16 @ r6 = output 2
- STR r6, [r2], r3, LSL #1 @ output 2 (A*3+B*5)>>3
- RSB r7, r7, r7, LSL #3 @ r7 = B*7
- AND r6, r8, r12 @ r6 = C split
- ADD r7, r7, r6 @ r7 = B*7+C
- AND r7, r12,r7, LSR #3 @ r7 = (B*7 + C)>>3
- ORR r7, r7, r7, ROR #16 @ r7 = output 4
- STR r7, [r2], r3 @ output 4 (B*7+C)>>3
- STR r8, [r2], r3 @ output 5 (C)
- STR r8, [r2], r3 @ output 6 (C)
- STR r9, [r2, r3] @ output 8 (D)
- AND r9, r9, r12 @ r9 = D split
- RSB r7, r9, r9, LSL #3 @ r7 = D*7
- ADD r6, r6, r7 @ r6 = C+D*7
- AND r6, r12,r6, LSR #3 @ r6 = (C + D*7)>>3
- ORR r6, r6, r6, ROR #16 @ r6 = output 7
- STR r6, [r2], r3, LSL #1 @ output 7 (C+D*7)>>3
- ADD r9, r9, r9, LSL #2 @ r9 = D*5
- AND r6, r10,r12 @ r6 = E split
- ADD r9, r9, r6 @ r9 = D*5+E
- ADD r9, r9, r6, LSL #1 @ r9 = D*5+E*3
- AND r9, r12,r9, LSR #3 @ r9 = (D*5 + E*3)>>3
- ORR r9, r9, r9, ROR #16 @ r9 = output 9
- STR r9, [r2], r14 @ output 9 (D*5+E*3)>>3
- SUBS r4, r4, #1
- BGT xloop_aspect4
-
- LDMFD r13!,{r4-r11,PC}
diff --git a/graphics/scaler/aspect.cpp b/graphics/scaler/aspect.cpp
index 0f2b2aed40..dae1d41079 100644
--- a/graphics/scaler/aspect.cpp
+++ b/graphics/scaler/aspect.cpp
@@ -279,100 +279,3 @@ int stretch200To240(uint8 *buf, uint32 pitch, int width, int height, int srcX, i
}
#endif
}
-
-template<typename ColorMask>
-void Normal1xAspectTemplate(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, int width, int height) {
-
- for (int y = 0; y < (height * 6 / 5); ++y) {
-
-#if ASPECT_MODE == kSuperFastAndUglyAspectMode
- if ((y % 6) == 5)
- srcPtr -= srcPitch;
- memcpy(dstPtr, srcPtr, sizeof(uint16) * width);
-#else
- // Bilinear filter five input lines onto six output lines
- switch (y % 6) {
- case 0:
- // First output line is copied from first input line
- memcpy(dstPtr, srcPtr, sizeof(uint16) * width);
- break;
- case 1:
- // Second output line is mixed from first and second input line
- interpolate5Line<ColorMask, 1>((uint16 *)dstPtr, (const uint16 *)(srcPtr - srcPitch), (const uint16 *)srcPtr, width);
- break;
- case 2:
- // Third output line is mixed from second and third input line
- interpolate5Line<ColorMask, 2>((uint16 *)dstPtr, (const uint16 *)(srcPtr - srcPitch), (const uint16 *)srcPtr, width);
- break;
- case 3:
- // Fourth output line is mixed from third and fourth input line
- interpolate5Line<ColorMask, 2>((uint16 *)dstPtr, (const uint16 *)srcPtr, (const uint16 *)(srcPtr - srcPitch), width);
- break;
- case 4:
- // Fifth output line is mixed from fourth and fifth input line
- interpolate5Line<ColorMask, 1>((uint16 *)dstPtr, (const uint16 *)srcPtr, (const uint16 *)(srcPtr - srcPitch), width);
- break;
- case 5:
- // Sixth (and last) output line is copied from fifth (and last) input line
- srcPtr -= srcPitch;
- memcpy(dstPtr, srcPtr, sizeof(uint16) * width);
- break;
- default:
- break;
- }
-#endif
-
- srcPtr += srcPitch;
- dstPtr += dstPitch;
- }
-}
-
-void Normal1xAspect(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, int width, int height) {
- extern int gBitFormat;
- if (gBitFormat == 565)
- Normal1xAspectTemplate<Graphics::ColorMasks<565> >(srcPtr, srcPitch, dstPtr, dstPitch, width, height);
- else
- Normal1xAspectTemplate<Graphics::ColorMasks<555> >(srcPtr, srcPitch, dstPtr, dstPitch, width, height);
-}
-
-#ifdef USE_ARM_SCALER_ASM
-extern "C" void Normal2xAspectMask(const uint8 *srcPtr,
- uint32 srcPitch,
- uint8 *dstPtr,
- uint32 dstPitch,
- int width,
- int height,
- uint32 mask);
-
-/**
- * A 2x scaler which also does aspect ratio correction.
- * This is Normal2x combined with vertical stretching,
- * so it will scale a 320x200 surface to a 640x480 surface.
- */
-void Normal2xAspect(const uint8 *srcPtr,
- uint32 srcPitch,
- uint8 *dstPtr,
- uint32 dstPitch,
- int width,
- int height) {
- extern int gBitFormat;
- if (gBitFormat == 565) {
- Normal2xAspectMask(srcPtr,
- srcPitch,
- dstPtr,
- dstPitch,
- width,
- height,
- 0x07e0F81F);
- } else {
- Normal2xAspectMask(srcPtr,
- srcPitch,
- dstPtr,
- dstPitch,
- width,
- height,
- 0x03e07C1F);
- }
-}
-
-#endif // USE_ARM_SCALER_ASM
diff --git a/graphics/scaler/aspect.h b/graphics/scaler/aspect.h
index bb082ebba0..93201c3d40 100644
--- a/graphics/scaler/aspect.h
+++ b/graphics/scaler/aspect.h
@@ -58,19 +58,4 @@ int stretch200To240(uint8 *buf,
int origSrcY,
bool interpolate);
-
-/**
- * This filter (up)scales the source image vertically by a factor of 6/5.
- * For example, a 320x200 image is scaled to 320x240.
- *
- * The main difference to the code in graphics/scaler/aspect.cpp is the
- * out-of-place operation, omitting a straight blit step the sdl backend
- * does. Also, tests show unaligned access errors with the stock aspect scaler.
- */
-DECLARE_SCALER(Normal1xAspect);
-
-#ifdef USE_ARM_SCALER_ASM
-DECLARE_SCALER(Normal2xAspect);
-#endif
-
#endif