aboutsummaryrefslogtreecommitdiff
path: root/graphics/scaler
diff options
context:
space:
mode:
authorMax Horn2010-11-07 00:37:04 +0000
committerMax Horn2010-11-07 00:37:04 +0000
commit7e7ad149c29e14aab82906384676bdae436b6b4e (patch)
tree43d2538668725d17ee3be02983e240c3fc843ded /graphics/scaler
parenta4cd83061eae135f17eefe15ee023817ec734250 (diff)
downloadscummvm-rg350-7e7ad149c29e14aab82906384676bdae436b6b4e.tar.gz
scummvm-rg350-7e7ad149c29e14aab82906384676bdae436b6b4e.tar.bz2
scummvm-rg350-7e7ad149c29e14aab82906384676bdae436b6b4e.zip
GRAPHICS: Cleanup advmame scaler code; don't include assert.h
svn-id: r54104
Diffstat (limited to 'graphics/scaler')
-rw-r--r--graphics/scaler/scale2x.cpp110
-rw-r--r--graphics/scaler/scale3x.cpp71
-rw-r--r--graphics/scaler/scalebit.cpp136
3 files changed, 139 insertions, 178 deletions
diff --git a/graphics/scaler/scale2x.cpp b/graphics/scaler/scale2x.cpp
index 877bbb9509..deae44c1c7 100644
--- a/graphics/scaler/scale2x.cpp
+++ b/graphics/scaler/scale2x.cpp
@@ -37,13 +37,10 @@
#include "graphics/scaler/intern.h"
#include "graphics/scaler/scale2x.h"
-#include <assert.h>
-
/***************************************************************************/
/* Scale2x C implementation */
-static inline void scale2x_8_def_single(scale2x_uint8* __restrict__ dst, const scale2x_uint8* __restrict__ src0, const scale2x_uint8* __restrict__ src1, const scale2x_uint8* __restrict__ src2, unsigned count)
-{
+static inline void scale2x_8_def_single(scale2x_uint8* __restrict__ dst, const scale2x_uint8* __restrict__ src0, const scale2x_uint8* __restrict__ src1, const scale2x_uint8* __restrict__ src2, unsigned count) {
/* central pixels */
while (count) {
if (src0[0] != src2[0] && src1[-1] != src1[1]) {
@@ -62,8 +59,7 @@ static inline void scale2x_8_def_single(scale2x_uint8* __restrict__ dst, const s
}
}
-static inline void scale2x_16_def_single(scale2x_uint16* __restrict__ dst, const scale2x_uint16* __restrict__ src0, const scale2x_uint16* __restrict__ src1, const scale2x_uint16* __restrict__ src2, unsigned count)
-{
+static inline void scale2x_16_def_single(scale2x_uint16* __restrict__ dst, const scale2x_uint16* __restrict__ src0, const scale2x_uint16* __restrict__ src1, const scale2x_uint16* __restrict__ src2, unsigned count) {
/* central pixels */
while (count) {
if (src0[0] != src2[0] && src1[-1] != src1[1]) {
@@ -82,8 +78,7 @@ static inline void scale2x_16_def_single(scale2x_uint16* __restrict__ dst, const
}
}
-static inline void scale2x_32_def_single(scale2x_uint32* __restrict__ dst, const scale2x_uint32* __restrict__ src0, const scale2x_uint32* __restrict__ src1, const scale2x_uint32* __restrict__ src2, unsigned count)
-{
+static inline void scale2x_32_def_single(scale2x_uint32* __restrict__ dst, const scale2x_uint32* __restrict__ src0, const scale2x_uint32* __restrict__ src1, const scale2x_uint32* __restrict__ src2, unsigned count) {
/* central pixels */
while (count) {
if (src0[0] != src2[0] && src1[-1] != src1[1]) {
@@ -107,16 +102,15 @@ static inline void scale2x_32_def_single(scale2x_uint32* __restrict__ dst, const
* The function is implemented in C.
* The pixels over the left and right borders are assumed of the same color of
* the pixels on the border.
- * \param src0 Pointer at the first pixel of the previous row.
- * \param src1 Pointer at the first pixel of the current row.
- * \param src2 Pointer at the first pixel of the next row.
- * \param count Length in pixels of the src0, src1 and src2 rows.
+ * @param src0 Pointer at the first pixel of the previous row.
+ * @param src1 Pointer at the first pixel of the current row.
+ * @param src2 Pointer at the first pixel of the next row.
+ * @param count Length in pixels of the src0, src1 and src2 rows.
* It must be at least 2.
- * \param dst0 First destination row, double length in pixels.
- * \param dst1 Second destination row, double length in pixels.
+ * @param dst0 First destination row, double length in pixels.
+ * @param dst1 Second destination row, double length in pixels.
*/
-void scale2x_8_def(scale2x_uint8* dst0, scale2x_uint8* dst1, const scale2x_uint8* src0, const scale2x_uint8* src1, const scale2x_uint8* src2, unsigned count)
-{
+void scale2x_8_def(scale2x_uint8* dst0, scale2x_uint8* dst1, const scale2x_uint8* src0, const scale2x_uint8* src1, const scale2x_uint8* src2, unsigned count) {
scale2x_8_def_single(dst0, src0, src1, src2, count);
scale2x_8_def_single(dst1, src2, src1, src0, count);
}
@@ -124,16 +118,15 @@ void scale2x_8_def(scale2x_uint8* dst0, scale2x_uint8* dst1, const scale2x_uint8
/**
* Scale by a factor of 2 a row of pixels of 16 bits.
* This function operates like scale2x_8_def() but for 16 bits pixels.
- * \param src0 Pointer at the first pixel of the previous row.
- * \param src1 Pointer at the first pixel of the current row.
- * \param src2 Pointer at the first pixel of the next row.
- * \param count Length in pixels of the src0, src1 and src2 rows.
+ * @param src0 Pointer at the first pixel of the previous row.
+ * @param src1 Pointer at the first pixel of the current row.
+ * @param src2 Pointer at the first pixel of the next row.
+ * @param count Length in pixels of the src0, src1 and src2 rows.
* It must be at least 2.
- * \param dst0 First destination row, double length in pixels.
- * \param dst1 Second destination row, double length in pixels.
+ * @param dst0 First destination row, double length in pixels.
+ * @param dst1 Second destination row, double length in pixels.
*/
-void scale2x_16_def(scale2x_uint16* dst0, scale2x_uint16* dst1, const scale2x_uint16* src0, const scale2x_uint16* src1, const scale2x_uint16* src2, unsigned count)
-{
+void scale2x_16_def(scale2x_uint16* dst0, scale2x_uint16* dst1, const scale2x_uint16* src0, const scale2x_uint16* src1, const scale2x_uint16* src2, unsigned count) {
scale2x_16_def_single(dst0, src0, src1, src2, count);
scale2x_16_def_single(dst1, src2, src1, src0, count);
}
@@ -141,16 +134,15 @@ void scale2x_16_def(scale2x_uint16* dst0, scale2x_uint16* dst1, const scale2x_ui
/**
* Scale by a factor of 2 a row of pixels of 32 bits.
* This function operates like scale2x_8_def() but for 32 bits pixels.
- * \param src0 Pointer at the first pixel of the previous row.
- * \param src1 Pointer at the first pixel of the current row.
- * \param src2 Pointer at the first pixel of the next row.
- * \param count Length in pixels of the src0, src1 and src2 rows.
+ * @param src0 Pointer at the first pixel of the previous row.
+ * @param src1 Pointer at the first pixel of the current row.
+ * @param src2 Pointer at the first pixel of the next row.
+ * @param count Length in pixels of the src0, src1 and src2 rows.
* It must be at least 2.
- * \param dst0 First destination row, double length in pixels.
- * \param dst1 Second destination row, double length in pixels.
+ * @param dst0 First destination row, double length in pixels.
+ * @param dst1 Second destination row, double length in pixels.
*/
-void scale2x_32_def(scale2x_uint32* dst0, scale2x_uint32* dst1, const scale2x_uint32* src0, const scale2x_uint32* src1, const scale2x_uint32* src2, unsigned count)
-{
+void scale2x_32_def(scale2x_uint32* dst0, scale2x_uint32* dst1, const scale2x_uint32* src0, const scale2x_uint32* src1, const scale2x_uint32* src2, unsigned count) {
scale2x_32_def_single(dst0, src0, src1, src2, count);
scale2x_32_def_single(dst1, src2, src1, src0, count);
}
@@ -198,8 +190,7 @@ void scale2x_32_def(scale2x_uint32* dst0, scale2x_uint32* dst1, const scale2x_ui
* %mm6 -> *current_upper
* %mm7 -> *current
*/
-static inline void scale2x_8_mmx_single(scale2x_uint8* dst, const scale2x_uint8* src0, const scale2x_uint8* src1, const scale2x_uint8* src2, unsigned count)
-{
+static inline void scale2x_8_mmx_single(scale2x_uint8* dst, const scale2x_uint8* src0, const scale2x_uint8* src1, const scale2x_uint8* src2, unsigned count) {
assert(count >= 16);
assert(count % 8 == 0);
@@ -276,8 +267,7 @@ static inline void scale2x_8_mmx_single(scale2x_uint8* dst, const scale2x_uint8*
);
}
-static inline void scale2x_16_mmx_single(scale2x_uint16* dst, const scale2x_uint16* src0, const scale2x_uint16* src1, const scale2x_uint16* src2, unsigned count)
-{
+static inline void scale2x_16_mmx_single(scale2x_uint16* dst, const scale2x_uint16* src0, const scale2x_uint16* src1, const scale2x_uint16* src2, unsigned count) {
assert(count >= 8);
assert(count % 4 == 0);
@@ -354,8 +344,7 @@ static inline void scale2x_16_mmx_single(scale2x_uint16* dst, const scale2x_uint
);
}
-static inline void scale2x_32_mmx_single(scale2x_uint32* dst, const scale2x_uint32* src0, const scale2x_uint32* src1, const scale2x_uint32* src2, unsigned count)
-{
+static inline void scale2x_32_mmx_single(scale2x_uint32* dst, const scale2x_uint32* src0, const scale2x_uint32* src1, const scale2x_uint32* src2, unsigned count) {
assert(count >= 4);
assert(count % 2 == 0);
@@ -445,16 +434,15 @@ static inline void scale2x_32_mmx_single(scale2x_uint32* dst, const scale2x_uint
* instruction before any floating-point operation.
* The pixels over the left and right borders are assumed of the same color of
* the pixels on the border.
- * \param src0 Pointer at the first pixel of the previous row.
- * \param src1 Pointer at the first pixel of the current row.
- * \param src2 Pointer at the first pixel of the next row.
- * \param count Length in pixels of the src0, src1 and src2 rows. It must
+ * @param src0 Pointer at the first pixel of the previous row.
+ * @param src1 Pointer at the first pixel of the current row.
+ * @param src2 Pointer at the first pixel of the next row.
+ * @param count Length in pixels of the src0, src1 and src2 rows. It must
* be at least 16 and a multiple of 8.
- * \param dst0 First destination row, double length in pixels.
- * \param dst1 Second destination row, double length in pixels.
+ * @param dst0 First destination row, double length in pixels.
+ * @param dst1 Second destination row, double length in pixels.
*/
-void scale2x_8_mmx(scale2x_uint8* dst0, scale2x_uint8* dst1, const scale2x_uint8* src0, const scale2x_uint8* src1, const scale2x_uint8* src2, unsigned count)
-{
+void scale2x_8_mmx(scale2x_uint8* dst0, scale2x_uint8* dst1, const scale2x_uint8* src0, const scale2x_uint8* src1, const scale2x_uint8* src2, unsigned count) {
if (count % 8 != 0 || count < 16) {
scale2x_8_def(dst0, dst1, src0, src1, src2, count);
} else {
@@ -469,16 +457,15 @@ void scale2x_8_mmx(scale2x_uint8* dst0, scale2x_uint8* dst1, const scale2x_uint8
/**
* Scale by a factor of 2 a row of pixels of 16 bits.
* This function operates like scale2x_8_mmx() but for 16 bits pixels.
- * \param src0 Pointer at the first pixel of the previous row.
- * \param src1 Pointer at the first pixel of the current row.
- * \param src2 Pointer at the first pixel of the next row.
- * \param count Length in pixels of the src0, src1 and src2 rows. It must
+ * @param src0 Pointer at the first pixel of the previous row.
+ * @param src1 Pointer at the first pixel of the current row.
+ * @param src2 Pointer at the first pixel of the next row.
+ * @param count Length in pixels of the src0, src1 and src2 rows. It must
* be at least 8 and a multiple of 4.
- * \param dst0 First destination row, double length in pixels.
- * \param dst1 Second destination row, double length in pixels.
+ * @param dst0 First destination row, double length in pixels.
+ * @param dst1 Second destination row, double length in pixels.
*/
-void scale2x_16_mmx(scale2x_uint16* dst0, scale2x_uint16* dst1, const scale2x_uint16* src0, const scale2x_uint16* src1, const scale2x_uint16* src2, unsigned count)
-{
+void scale2x_16_mmx(scale2x_uint16* dst0, scale2x_uint16* dst1, const scale2x_uint16* src0, const scale2x_uint16* src1, const scale2x_uint16* src2, unsigned count) {
if (count % 4 != 0 || count < 8) {
scale2x_16_def(dst0, dst1, src0, src1, src2, count);
} else {
@@ -493,16 +480,15 @@ void scale2x_16_mmx(scale2x_uint16* dst0, scale2x_uint16* dst1, const scale2x_ui
/**
* Scale by a factor of 2 a row of pixels of 32 bits.
* This function operates like scale2x_8_mmx() but for 32 bits pixels.
- * \param src0 Pointer at the first pixel of the previous row.
- * \param src1 Pointer at the first pixel of the current row.
- * \param src2 Pointer at the first pixel of the next row.
- * \param count Length in pixels of the src0, src1 and src2 rows. It must
+ * @param src0 Pointer at the first pixel of the previous row.
+ * @param src1 Pointer at the first pixel of the current row.
+ * @param src2 Pointer at the first pixel of the next row.
+ * @param count Length in pixels of the src0, src1 and src2 rows. It must
* be at least 4 and a multiple of 2.
- * \param dst0 First destination row, double length in pixels.
- * \param dst1 Second destination row, double length in pixels.
+ * @param dst0 First destination row, double length in pixels.
+ * @param dst1 Second destination row, double length in pixels.
*/
-void scale2x_32_mmx(scale2x_uint32* dst0, scale2x_uint32* dst1, const scale2x_uint32* src0, const scale2x_uint32* src1, const scale2x_uint32* src2, unsigned count)
-{
+void scale2x_32_mmx(scale2x_uint32* dst0, scale2x_uint32* dst1, const scale2x_uint32* src0, const scale2x_uint32* src1, const scale2x_uint32* src2, unsigned count) {
if (count % 2 != 0 || count < 4) {
scale2x_32_def(dst0, dst1, src0, src1, src2, count);
} else {
diff --git a/graphics/scaler/scale3x.cpp b/graphics/scaler/scale3x.cpp
index 8aa33dd170..4e78796ee7 100644
--- a/graphics/scaler/scale3x.cpp
+++ b/graphics/scaler/scale3x.cpp
@@ -37,13 +37,10 @@
#include "graphics/scaler/intern.h"
#include "graphics/scaler/scale3x.h"
-#include <assert.h>
-
/***************************************************************************/
/* Scale3x C implementation */
-static inline void scale3x_8_def_border(scale3x_uint8* __restrict__ dst, const scale3x_uint8* __restrict__ src0, const scale3x_uint8* __restrict__ src1, const scale3x_uint8* __restrict__ src2, unsigned count)
-{
+static inline void scale3x_8_def_border(scale3x_uint8* __restrict__ dst, const scale3x_uint8* __restrict__ src0, const scale3x_uint8* __restrict__ src1, const scale3x_uint8* __restrict__ src2, unsigned count) {
/* central pixels */
while (count) {
if (src0[0] != src2[0] && src1[-1] != src1[1]) {
@@ -64,8 +61,7 @@ static inline void scale3x_8_def_border(scale3x_uint8* __restrict__ dst, const s
}
}
-static inline void scale3x_8_def_center(scale3x_uint8* __restrict__ dst, const scale3x_uint8* __restrict__ src0, const scale3x_uint8* __restrict__ src1, const scale3x_uint8* __restrict__ src2, unsigned count)
-{
+static inline void scale3x_8_def_center(scale3x_uint8* __restrict__ dst, const scale3x_uint8* __restrict__ src0, const scale3x_uint8* __restrict__ src1, const scale3x_uint8* __restrict__ src2, unsigned count) {
/* central pixels */
while (count) {
if (src0[0] != src2[0] && src1[-1] != src1[1]) {
@@ -86,8 +82,7 @@ static inline void scale3x_8_def_center(scale3x_uint8* __restrict__ dst, const s
}
}
-static inline void scale3x_16_def_border(scale3x_uint16* __restrict__ dst, const scale3x_uint16* __restrict__ src0, const scale3x_uint16* __restrict__ src1, const scale3x_uint16* __restrict__ src2, unsigned count)
-{
+static inline void scale3x_16_def_border(scale3x_uint16* __restrict__ dst, const scale3x_uint16* __restrict__ src0, const scale3x_uint16* __restrict__ src1, const scale3x_uint16* __restrict__ src2, unsigned count) {
/* central pixels */
while (count) {
if (src0[0] != src2[0] && src1[-1] != src1[1]) {
@@ -108,8 +103,7 @@ static inline void scale3x_16_def_border(scale3x_uint16* __restrict__ dst, const
}
}
-static inline void scale3x_16_def_center(scale3x_uint16* __restrict__ dst, const scale3x_uint16* __restrict__ src0, const scale3x_uint16* __restrict__ src1, const scale3x_uint16* __restrict__ src2, unsigned count)
-{
+static inline void scale3x_16_def_center(scale3x_uint16* __restrict__ dst, const scale3x_uint16* __restrict__ src0, const scale3x_uint16* __restrict__ src1, const scale3x_uint16* __restrict__ src2, unsigned count) {
/* central pixels */
while (count) {
if (src0[0] != src2[0] && src1[-1] != src1[1]) {
@@ -130,8 +124,7 @@ static inline void scale3x_16_def_center(scale3x_uint16* __restrict__ dst, const
}
}
-static inline void scale3x_32_def_border(scale3x_uint32* __restrict__ dst, const scale3x_uint32* __restrict__ src0, const scale3x_uint32* __restrict__ src1, const scale3x_uint32* __restrict__ src2, unsigned count)
-{
+static inline void scale3x_32_def_border(scale3x_uint32* __restrict__ dst, const scale3x_uint32* __restrict__ src0, const scale3x_uint32* __restrict__ src1, const scale3x_uint32* __restrict__ src2, unsigned count) {
/* central pixels */
while (count) {
if (src0[0] != src2[0] && src1[-1] != src1[1]) {
@@ -152,8 +145,7 @@ static inline void scale3x_32_def_border(scale3x_uint32* __restrict__ dst, const
}
}
-static inline void scale3x_32_def_center(scale3x_uint32* __restrict__ dst, const scale3x_uint32* __restrict__ src0, const scale3x_uint32* __restrict__ src1, const scale3x_uint32* __restrict__ src2, unsigned count)
-{
+static inline void scale3x_32_def_center(scale3x_uint32* __restrict__ dst, const scale3x_uint32* __restrict__ src0, const scale3x_uint32* __restrict__ src1, const scale3x_uint32* __restrict__ src2, unsigned count) {
/* central pixels */
while (count) {
if (src0[0] != src2[0] && src1[-1] != src1[1]) {
@@ -179,17 +171,16 @@ static inline void scale3x_32_def_center(scale3x_uint32* __restrict__ dst, const
* The function is implemented in C.
* The pixels over the left and right borders are assumed of the same color of
* the pixels on the border.
- * \param src0 Pointer at the first pixel of the previous row.
- * \param src1 Pointer at the first pixel of the current row.
- * \param src2 Pointer at the first pixel of the next row.
- * \param count Length in pixels of the src0, src1 and src2 rows.
+ * @param src0 Pointer at the first pixel of the previous row.
+ * @param src1 Pointer at the first pixel of the current row.
+ * @param src2 Pointer at the first pixel of the next row.
+ * @param count Length in pixels of the src0, src1 and src2 rows.
* It must be at least 2.
- * \param dst0 First destination row, triple length in pixels.
- * \param dst1 Second destination row, triple length in pixels.
- * \param dst2 Third destination row, triple length in pixels.
+ * @param dst0 First destination row, triple length in pixels.
+ * @param dst1 Second destination row, triple length in pixels.
+ * @param dst2 Third destination row, triple length in pixels.
*/
-void scale3x_8_def(scale3x_uint8* dst0, scale3x_uint8* dst1, scale3x_uint8* dst2, const scale3x_uint8* src0, const scale3x_uint8* src1, const scale3x_uint8* src2, unsigned count)
-{
+void scale3x_8_def(scale3x_uint8* dst0, scale3x_uint8* dst1, scale3x_uint8* dst2, const scale3x_uint8* src0, const scale3x_uint8* src1, const scale3x_uint8* src2, unsigned count) {
scale3x_8_def_border(dst0, src0, src1, src2, count);
scale3x_8_def_center(dst1, src0, src1, src2, count);
scale3x_8_def_border(dst2, src2, src1, src0, count);
@@ -198,17 +189,16 @@ void scale3x_8_def(scale3x_uint8* dst0, scale3x_uint8* dst1, scale3x_uint8* dst2
/**
* Scale by a factor of 3 a row of pixels of 16 bits.
* This function operates like scale3x_8_def() but for 16 bits pixels.
- * \param src0 Pointer at the first pixel of the previous row.
- * \param src1 Pointer at the first pixel of the current row.
- * \param src2 Pointer at the first pixel of the next row.
- * \param count Length in pixels of the src0, src1 and src2 rows.
+ * @param src0 Pointer at the first pixel of the previous row.
+ * @param src1 Pointer at the first pixel of the current row.
+ * @param src2 Pointer at the first pixel of the next row.
+ * @param count Length in pixels of the src0, src1 and src2 rows.
* It must be at least 2.
- * \param dst0 First destination row, triple length in pixels.
- * \param dst1 Second destination row, triple length in pixels.
- * \param dst2 Third destination row, triple length in pixels.
+ * @param dst0 First destination row, triple length in pixels.
+ * @param dst1 Second destination row, triple length in pixels.
+ * @param dst2 Third destination row, triple length in pixels.
*/
-void scale3x_16_def(scale3x_uint16* dst0, scale3x_uint16* dst1, scale3x_uint16* dst2, const scale3x_uint16* src0, const scale3x_uint16* src1, const scale3x_uint16* src2, unsigned count)
-{
+void scale3x_16_def(scale3x_uint16* dst0, scale3x_uint16* dst1, scale3x_uint16* dst2, const scale3x_uint16* src0, const scale3x_uint16* src1, const scale3x_uint16* src2, unsigned count) {
scale3x_16_def_border(dst0, src0, src1, src2, count);
scale3x_16_def_center(dst1, src0, src1, src2, count);
scale3x_16_def_border(dst2, src2, src1, src0, count);
@@ -217,17 +207,16 @@ void scale3x_16_def(scale3x_uint16* dst0, scale3x_uint16* dst1, scale3x_uint16*
/**
* Scale by a factor of 3 a row of pixels of 32 bits.
* This function operates like scale3x_8_def() but for 32 bits pixels.
- * \param src0 Pointer at the first pixel of the previous row.
- * \param src1 Pointer at the first pixel of the current row.
- * \param src2 Pointer at the first pixel of the next row.
- * \param count Length in pixels of the src0, src1 and src2 rows.
+ * @param src0 Pointer at the first pixel of the previous row.
+ * @param src1 Pointer at the first pixel of the current row.
+ * @param src2 Pointer at the first pixel of the next row.
+ * @param count Length in pixels of the src0, src1 and src2 rows.
* It must be at least 2.
- * \param dst0 First destination row, triple length in pixels.
- * \param dst1 Second destination row, triple length in pixels.
- * \param dst2 Third destination row, triple length in pixels.
+ * @param dst0 First destination row, triple length in pixels.
+ * @param dst1 Second destination row, triple length in pixels.
+ * @param dst2 Third destination row, triple length in pixels.
*/
-void scale3x_32_def(scale3x_uint32* dst0, scale3x_uint32* dst1, scale3x_uint32* dst2, const scale3x_uint32* src0, const scale3x_uint32* src1, const scale3x_uint32* src2, unsigned count)
-{
+void scale3x_32_def(scale3x_uint32* dst0, scale3x_uint32* dst1, scale3x_uint32* dst2, const scale3x_uint32* src0, const scale3x_uint32* src1, const scale3x_uint32* src2, unsigned count) {
scale3x_32_def_border(dst0, src0, src1, src2, count);
scale3x_32_def_center(dst1, src0, src1, src2, count);
scale3x_32_def_border(dst2, src2, src1, src0, count);
diff --git a/graphics/scaler/scalebit.cpp b/graphics/scaler/scalebit.cpp
index 6a3b47b0f5..706fea8f05 100644
--- a/graphics/scaler/scalebit.cpp
+++ b/graphics/scaler/scalebit.cpp
@@ -39,34 +39,26 @@
#include "graphics/scaler/scale2x.h"
#include "graphics/scaler/scale3x.h"
-#if defined(HAVE_ALLOCA_H)
-#include <alloca.h>
-#endif
-
-#include <assert.h>
-#include <stdlib.h>
-
#define DST(bits, num) (scale2x_uint ## bits *)dst ## num
#define SRC(bits, num) (const scale2x_uint ## bits *)src ## num
/**
* Apply the Scale2x effect on a group of rows. Used internally.
*/
-static inline void stage_scale2x(void* dst0, void* dst1, const void* src0, const void* src1, const void* src2, unsigned pixel, unsigned pixel_per_row)
-{
+static inline void stage_scale2x(void* dst0, void* dst1, const void* src0, const void* src1, const void* src2, unsigned pixel, unsigned pixel_per_row) {
switch (pixel) {
#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
- case 1 : scale2x_8_mmx(DST(8,0), DST(8,1), SRC(8,0), SRC(8,1), SRC(8,2), pixel_per_row); break;
- case 2 : scale2x_16_mmx(DST(16,0), DST(16,1), SRC(16,0), SRC(16,1), SRC(16,2), pixel_per_row); break;
- case 4 : scale2x_32_mmx(DST(32,0), DST(32,1), SRC(32,0), SRC(32,1), SRC(32,2), pixel_per_row); break;
+ case 1 : scale2x_8_mmx(DST(8,0), DST(8,1), SRC(8,0), SRC(8,1), SRC(8,2), pixel_per_row); break;
+ case 2 : scale2x_16_mmx(DST(16,0), DST(16,1), SRC(16,0), SRC(16,1), SRC(16,2), pixel_per_row); break;
+ case 4 : scale2x_32_mmx(DST(32,0), DST(32,1), SRC(32,0), SRC(32,1), SRC(32,2), pixel_per_row); break;
#elif defined(USE_ARM_SCALER_ASM)
- case 1 : scale2x_8_arm(DST(8,0), DST(8,1), SRC(8,0), SRC(8,1), SRC(8,2), pixel_per_row); break;
- case 2 : scale2x_16_arm(DST(16,0), DST(16,1), SRC(16,0), SRC(16,1), SRC(16,2), pixel_per_row); break;
- case 4 : scale2x_32_arm(DST(32,0), DST(32,1), SRC(32,0), SRC(32,1), SRC(32,2), pixel_per_row); break;
+ case 1 : scale2x_8_arm(DST(8,0), DST(8,1), SRC(8,0), SRC(8,1), SRC(8,2), pixel_per_row); break;
+ case 2 : scale2x_16_arm(DST(16,0), DST(16,1), SRC(16,0), SRC(16,1), SRC(16,2), pixel_per_row); break;
+ case 4 : scale2x_32_arm(DST(32,0), DST(32,1), SRC(32,0), SRC(32,1), SRC(32,2), pixel_per_row); break;
#else
- case 1 : scale2x_8_def(DST(8,0), DST(8,1), SRC(8,0), SRC(8,1), SRC(8,2), pixel_per_row); break;
- case 2 : scale2x_16_def(DST(16,0), DST(16,1), SRC(16,0), SRC(16,1), SRC(16,2), pixel_per_row); break;
- case 4 : scale2x_32_def(DST(32,0), DST(32,1), SRC(32,0), SRC(32,1), SRC(32,2), pixel_per_row); break;
+ case 1 : scale2x_8_def(DST(8,0), DST(8,1), SRC(8,0), SRC(8,1), SRC(8,2), pixel_per_row); break;
+ case 2 : scale2x_16_def(DST(16,0), DST(16,1), SRC(16,0), SRC(16,1), SRC(16,2), pixel_per_row); break;
+ case 4 : scale2x_32_def(DST(32,0), DST(32,1), SRC(32,0), SRC(32,1), SRC(32,2), pixel_per_row); break;
#endif
}
}
@@ -74,20 +66,18 @@ static inline void stage_scale2x(void* dst0, void* dst1, const void* src0, const
/**
* Apply the Scale3x effect on a group of rows. Used internally.
*/
-static inline void stage_scale3x(void* dst0, void* dst1, void* dst2, const void* src0, const void* src1, const void* src2, unsigned pixel, unsigned pixel_per_row)
-{
+static inline void stage_scale3x(void* dst0, void* dst1, void* dst2, const void* src0, const void* src1, const void* src2, unsigned pixel, unsigned pixel_per_row) {
switch (pixel) {
- case 1 : scale3x_8_def(DST(8,0), DST(8,1), DST(8,2), SRC(8,0), SRC(8,1), SRC(8,2), pixel_per_row); break;
- case 2 : scale3x_16_def(DST(16,0), DST(16,1), DST(16,2), SRC(16,0), SRC(16,1), SRC(16,2), pixel_per_row); break;
- case 4 : scale3x_32_def(DST(32,0), DST(32,1), DST(32,2), SRC(32,0), SRC(32,1), SRC(32,2), pixel_per_row); break;
+ case 1 : scale3x_8_def(DST(8,0), DST(8,1), DST(8,2), SRC(8,0), SRC(8,1), SRC(8,2), pixel_per_row); break;
+ case 2 : scale3x_16_def(DST(16,0), DST(16,1), DST(16,2), SRC(16,0), SRC(16,1), SRC(16,2), pixel_per_row); break;
+ case 4 : scale3x_32_def(DST(32,0), DST(32,1), DST(32,2), SRC(32,0), SRC(32,1), SRC(32,2), pixel_per_row); break;
}
}
/**
* Apply the Scale4x effect on a group of rows. Used internally.
*/
-static inline void stage_scale4x(void* dst0, void* dst1, void* dst2, void* dst3, const void* src0, const void* src1, const void* src2, const void* src3, unsigned pixel, unsigned pixel_per_row)
-{
+static inline void stage_scale4x(void* dst0, void* dst1, void* dst2, void* dst3, const void* src0, const void* src1, const void* src2, const void* src3, unsigned pixel, unsigned pixel_per_row) {
stage_scale2x(dst0, dst1, src0, src1, src2, pixel, 2 * pixel_per_row);
stage_scale2x(dst2, dst3, src1, src2, src3, pixel, 2 * pixel_per_row);
}
@@ -102,16 +92,15 @@ static inline void stage_scale4x(void* dst0, void* dst1, void* dst2, void* dst3,
* The source bitmap isn't modified.
* The destination bitmap must be manually allocated before calling the function,
* note that the resulting size is exactly 2x2 times the size of the source bitmap.
- * \param void_dst Pointer at the first pixel of the destination bitmap.
- * \param dst_slice Size in bytes of a destination bitmap row.
- * \param void_src Pointer at the first pixel of the source bitmap.
- * \param src_slice Size in bytes of a source bitmap row.
- * \param pixel Bytes per pixel of the source and destination bitmap.
- * \param width Horizontal size in pixels of the source bitmap.
- * \param height Vertical size in pixels of the source bitmap.
+ * @param void_dst Pointer at the first pixel of the destination bitmap.
+ * @param dst_slice Size in bytes of a destination bitmap row.
+ * @param void_src Pointer at the first pixel of the source bitmap.
+ * @param src_slice Size in bytes of a source bitmap row.
+ * @param pixel Bytes per pixel of the source and destination bitmap.
+ * @param width Horizontal size in pixels of the source bitmap.
+ * @param height Vertical size in pixels of the source bitmap.
*/
-static void scale2x(void* void_dst, unsigned dst_slice, const void* void_src, unsigned src_slice, unsigned pixel, unsigned width, unsigned height)
-{
+static void scale2x(void* void_dst, unsigned dst_slice, const void* void_src, unsigned src_slice, unsigned pixel, unsigned width, unsigned height) {
unsigned char* dst = (unsigned char*)void_dst;
const unsigned char* src = (const unsigned char*)void_src;
unsigned count;
@@ -140,16 +129,15 @@ static void scale2x(void* void_dst, unsigned dst_slice, const void* void_src, un
* The source bitmap isn't modified.
* The destination bitmap must be manually allocated before calling the function,
* note that the resulting size is exactly 3x3 times the size of the source bitmap.
- * \param void_dst Pointer at the first pixel of the destination bitmap.
- * \param dst_slice Size in bytes of a destination bitmap row.
- * \param void_src Pointer at the first pixel of the source bitmap.
- * \param src_slice Size in bytes of a source bitmap row.
- * \param pixel Bytes per pixel of the source and destination bitmap.
- * \param width Horizontal size in pixels of the source bitmap.
- * \param height Vertical size in pixels of the source bitmap.
+ * @param void_dst Pointer at the first pixel of the destination bitmap.
+ * @param dst_slice Size in bytes of a destination bitmap row.
+ * @param void_src Pointer at the first pixel of the source bitmap.
+ * @param src_slice Size in bytes of a source bitmap row.
+ * @param pixel Bytes per pixel of the source and destination bitmap.
+ * @param width Horizontal size in pixels of the source bitmap.
+ * @param height Vertical size in pixels of the source bitmap.
*/
-static void scale3x(void* void_dst, unsigned dst_slice, const void* void_src, unsigned src_slice, unsigned pixel, unsigned width, unsigned height)
-{
+static void scale3x(void* void_dst, unsigned dst_slice, const void* void_src, unsigned src_slice, unsigned pixel, unsigned width, unsigned height) {
unsigned char* dst = (unsigned char*)void_dst;
const unsigned char* src = (const unsigned char*)void_src;
unsigned count;
@@ -179,18 +167,17 @@ static void scale3x(void* void_dst, unsigned dst_slice, const void* void_src, un
* and a vertical size of 6 rows. The memory of this buffer must not be allocated
* in video memory because it's also read and not only written. Generally
* a heap (malloc) or a stack (alloca) buffer is the best choices.
- * \param void_dst Pointer at the first pixel of the destination bitmap.
- * \param dst_slice Size in bytes of a destination bitmap row.
- * \param void_mid Pointer at the first pixel of the buffer bitmap.
- * \param mid_slice Size in bytes of a buffer bitmap row.
- * \param void_src Pointer at the first pixel of the source bitmap.
- * \param src_slice Size in bytes of a source bitmap row.
- * \param pixel Bytes per pixel of the source and destination bitmap.
- * \param width Horizontal size in pixels of the source bitmap.
- * \param height Vertical size in pixels of the source bitmap.
+ * @param void_dst Pointer at the first pixel of the destination bitmap.
+ * @param dst_slice Size in bytes of a destination bitmap row.
+ * @param void_mid Pointer at the first pixel of the buffer bitmap.
+ * @param mid_slice Size in bytes of a buffer bitmap row.
+ * @param void_src Pointer at the first pixel of the source bitmap.
+ * @param src_slice Size in bytes of a source bitmap row.
+ * @param pixel Bytes per pixel of the source and destination bitmap.
+ * @param width Horizontal size in pixels of the source bitmap.
+ * @param height Vertical size in pixels of the source bitmap.
*/
-static void scale4x_buf(void* void_dst, unsigned dst_slice, void* void_mid, unsigned mid_slice, const void* void_src, unsigned src_slice, unsigned pixel, unsigned width, unsigned height)
-{
+static void scale4x_buf(void* void_dst, unsigned dst_slice, void* void_mid, unsigned mid_slice, const void* void_src, unsigned src_slice, unsigned pixel, unsigned width, unsigned height) {
unsigned char* dst = (unsigned char*)void_dst;
const unsigned char* src = (const unsigned char*)void_src;
unsigned count;
@@ -242,16 +229,15 @@ static void scale4x_buf(void* void_dst, unsigned dst_slice, void* void_mid, unsi
* note that the resulting size is exactly 4x4 times the size of the source bitmap.
* \note This function operates like ::scale4x_buf() but the intermediate buffer is
* automatically allocated in the stack.
- * \param void_dst Pointer at the first pixel of the destination bitmap.
- * \param dst_slice Size in bytes of a destination bitmap row.
- * \param void_src Pointer at the first pixel of the source bitmap.
- * \param src_slice Size in bytes of a source bitmap row.
- * \param pixel Bytes per pixel of the source and destination bitmap.
- * \param width Horizontal size in pixels of the source bitmap.
- * \param height Vertical size in pixels of the source bitmap.
+ * @param void_dst Pointer at the first pixel of the destination bitmap.
+ * @param dst_slice Size in bytes of a destination bitmap row.
+ * @param void_src Pointer at the first pixel of the source bitmap.
+ * @param src_slice Size in bytes of a source bitmap row.
+ * @param pixel Bytes per pixel of the source and destination bitmap.
+ * @param width Horizontal size in pixels of the source bitmap.
+ * @param height Vertical size in pixels of the source bitmap.
*/
-static void scale4x(void* void_dst, unsigned dst_slice, const void* void_src, unsigned src_slice, unsigned pixel, unsigned width, unsigned height)
-{
+static void scale4x(void* void_dst, unsigned dst_slice, const void* void_src, unsigned src_slice, unsigned pixel, unsigned width, unsigned height) {
unsigned mid_slice;
void* mid;
@@ -279,10 +265,10 @@ static void scale4x(void* void_dst, unsigned dst_slice, const void* void_src, un
/**
* Check if the scale implementation is applicable at the given arguments.
- * \param scale Scale factor. 2, 3 or 4.
- * \param pixel Bytes per pixel of the source and destination bitmap.
- * \param width Horizontal size in pixels of the source bitmap.
- * \param height Vertical size in pixels of the source bitmap.
+ * @param scale Scale factor. 2, 3 or 4.
+ * @param pixel Bytes per pixel of the source and destination bitmap.
+ * @param width Horizontal size in pixels of the source bitmap.
+ * @param height Vertical size in pixels of the source bitmap.
* \return
* - -1 on precondition violated.
* - 0 on success.
@@ -332,14 +318,14 @@ int scale_precondition(unsigned scale, unsigned pixel, unsigned width, unsigned
/**
* Apply the Scale effect on a bitmap.
* This function is simply a common interface for ::scale2x(), ::scale3x() and ::scale4x().
- * \param scale Scale factor. 2, 3 or 4.
- * \param void_dst Pointer at the first pixel of the destination bitmap.
- * \param dst_slice Size in bytes of a destination bitmap row.
- * \param void_src Pointer at the first pixel of the source bitmap.
- * \param src_slice Size in bytes of a source bitmap row.
- * \param pixel Bytes per pixel of the source and destination bitmap.
- * \param width Horizontal size in pixels of the source bitmap.
- * \param height Vertical size in pixels of the source bitmap.
+ * @param scale Scale factor. 2, 3 or 4.
+ * @param void_dst Pointer at the first pixel of the destination bitmap.
+ * @param dst_slice Size in bytes of a destination bitmap row.
+ * @param void_src Pointer at the first pixel of the source bitmap.
+ * @param src_slice Size in bytes of a source bitmap row.
+ * @param pixel Bytes per pixel of the source and destination bitmap.
+ * @param width Horizontal size in pixels of the source bitmap.
+ * @param height Vertical size in pixels of the source bitmap.
*/
void scale(unsigned scale, void* void_dst, unsigned dst_slice, const void* void_src, unsigned src_slice, unsigned pixel, unsigned width, unsigned height)
{