Index: src/core/SkBitmapProcState_matrixProcs.cpp |
diff --git a/src/core/SkBitmapProcState_matrixProcs.cpp b/src/core/SkBitmapProcState_matrixProcs.cpp |
index 904e9488e721e21ca3691f80aed536e61d6205a2..57376d5699dfcb71f5ce6b308e7d9d9a89a84e15 100644 |
--- a/src/core/SkBitmapProcState_matrixProcs.cpp |
+++ b/src/core/SkBitmapProcState_matrixProcs.cpp |
@@ -33,10 +33,6 @@ |
void decal_nofilter_scale(uint32_t dst[], SkFixed fx, SkFixed dx, int count); |
void decal_filter_scale(uint32_t dst[], SkFixed fx, SkFixed dx, int count); |
-#include "SkBitmapProcState_matrix_template.h" |
- |
-/////////////////////////////////////////////////////////////////////////////// |
- |
// Compile neon code paths if needed |
#if !SK_ARM_NEON_IS_NONE |
@@ -56,35 +52,6 @@ |
#define CHECK_FOR_DECAL |
#include "SkBitmapProcState_matrix.h" |
-struct ClampTileProcs { |
- static unsigned X(const SkBitmapProcState&, SkFixed fx, int max) { |
- return SkClampMax(fx >> 16, max); |
- } |
- static unsigned Y(const SkBitmapProcState&, SkFixed fy, int max) { |
- return SkClampMax(fy >> 16, max); |
- } |
-}; |
- |
-// Referenced in opts_check_SSE2.cpp |
-void ClampX_ClampY_nofilter_scale(const SkBitmapProcState& s, uint32_t xy[], |
- int count, int x, int y) { |
- return NoFilterProc_Scale<ClampTileProcs, true>(s, xy, count, x, y); |
-} |
-void ClampX_ClampY_nofilter_affine(const SkBitmapProcState& s, uint32_t xy[], |
- int count, int x, int y) { |
- return NoFilterProc_Affine<ClampTileProcs>(s, xy, count, x, y); |
-} |
- |
-static SkBitmapProcState::MatrixProc ClampX_ClampY_Procs[] = { |
- // only clamp lives in the right coord space to check for decal |
- ClampX_ClampY_nofilter_scale, |
- ClampX_ClampY_filter_scale, |
- ClampX_ClampY_nofilter_affine, |
- ClampX_ClampY_filter_affine, |
- NoFilterProc_Persp<ClampTileProcs>, |
- ClampX_ClampY_filter_persp |
-}; |
- |
#define MAKENAME(suffix) RepeatX_RepeatY ## suffix |
#define TILEX_PROCF(fx, max) SK_USHIFT16(((fx) & 0xFFFF) * ((max) + 1)) |
#define TILEY_PROCF(fy, max) SK_USHIFT16(((fy) & 0xFFFF) * ((max) + 1)) |
@@ -92,24 +59,6 @@ |
#define TILEY_LOW_BITS(fy, max) ((((fy) & 0xFFFF) * ((max) + 1) >> 12) & 0xF) |
#include "SkBitmapProcState_matrix.h" |
#endif |
- |
-struct RepeatTileProcs { |
- static unsigned X(const SkBitmapProcState&, SkFixed fx, int max) { |
- return SK_USHIFT16(((fx) & 0xFFFF) * ((max) + 1)); |
- } |
- static unsigned Y(const SkBitmapProcState&, SkFixed fy, int max) { |
- return SK_USHIFT16(((fy) & 0xFFFF) * ((max) + 1)); |
- } |
-}; |
- |
-static SkBitmapProcState::MatrixProc RepeatX_RepeatY_Procs[] = { |
- NoFilterProc_Scale<RepeatTileProcs, false>, |
- RepeatX_RepeatY_filter_scale, |
- NoFilterProc_Affine<RepeatTileProcs>, |
- RepeatX_RepeatY_filter_affine, |
- NoFilterProc_Persp<RepeatTileProcs>, |
- RepeatX_RepeatY_filter_persp |
-}; |
#define MAKENAME(suffix) GeneralXY ## suffix |
#define PREAMBLE(state) SkBitmapProcState::FixedTileProc tileProcX = (state).fTileProcX; (void) tileProcX; \ |
@@ -126,27 +75,8 @@ |
#define TILEY_LOW_BITS(fy, max) tileLowBitsProcY(fy, (max) + 1) |
#include "SkBitmapProcState_matrix.h" |
-struct GeneralTileProcs { |
- static unsigned X(const SkBitmapProcState& s, SkFixed fx, int max) { |
- return SK_USHIFT16(s.fTileProcX(fx) * ((max) + 1)); |
- } |
- static unsigned Y(const SkBitmapProcState& s, SkFixed fy, int max) { |
- return SK_USHIFT16(s.fTileProcY(fy) * ((max) + 1)); |
- } |
-}; |
- |
-static SkBitmapProcState::MatrixProc GeneralXY_Procs[] = { |
- NoFilterProc_Scale<GeneralTileProcs, false>, |
- GeneralXY_filter_scale, |
- NoFilterProc_Affine<GeneralTileProcs>, |
- GeneralXY_filter_affine, |
- NoFilterProc_Persp<GeneralTileProcs>, |
- GeneralXY_filter_persp |
-}; |
- |
-/////////////////////////////////////////////////////////////////////////////// |
- |
-static inline U16CPU fixed_clamp(SkFixed x) { |
+static inline U16CPU fixed_clamp(SkFixed x) |
+{ |
if (x < 0) { |
x = 0; |
} |
@@ -156,7 +86,8 @@ |
return x; |
} |
-static inline U16CPU fixed_repeat(SkFixed x) { |
+static inline U16CPU fixed_repeat(SkFixed x) |
+{ |
return x & 0xFFFF; |
} |
@@ -166,7 +97,8 @@ |
#pragma optimize("", off) |
#endif |
-static inline U16CPU fixed_mirror(SkFixed x) { |
+static inline U16CPU fixed_mirror(SkFixed x) |
+{ |
SkFixed s = x << 15 >> 31; |
// s is FFFFFFFF if we're on an odd interval, or 0 if an even interval |
return (x ^ s) & 0xFFFF; |
@@ -176,13 +108,12 @@ |
#pragma optimize("", on) |
#endif |
-static SkBitmapProcState::FixedTileProc choose_tile_proc(unsigned m) { |
- if (SkShader::kClamp_TileMode == m) { |
+static SkBitmapProcState::FixedTileProc choose_tile_proc(unsigned m) |
+{ |
+ if (SkShader::kClamp_TileMode == m) |
return fixed_clamp; |
- } |
- if (SkShader::kRepeat_TileMode == m) { |
+ if (SkShader::kRepeat_TileMode == m) |
return fixed_repeat; |
- } |
SkASSERT(SkShader::kMirror_TileMode == m); |
return fixed_mirror; |
} |
@@ -247,10 +178,12 @@ |
////////////////////////////////////////////////////////////////////////////// |
-void decal_nofilter_scale(uint32_t dst[], SkFixed fx, SkFixed dx, int count) { |
+void decal_nofilter_scale(uint32_t dst[], SkFixed fx, SkFixed dx, int count) |
+{ |
int i; |
- for (i = (count >> 2); i > 0; --i) { |
+ for (i = (count >> 2); i > 0; --i) |
+ { |
*dst++ = pack_two_shorts(fx >> 16, (fx + dx) >> 16); |
fx += dx+dx; |
*dst++ = pack_two_shorts(fx >> 16, (fx + dx) >> 16); |
@@ -264,13 +197,18 @@ |
} |
} |
-void decal_filter_scale(uint32_t dst[], SkFixed fx, SkFixed dx, int count) { |
- if (count & 1) { |
+void decal_filter_scale(uint32_t dst[], SkFixed fx, SkFixed dx, int count) |
+{ |
+ |
+ |
+ if (count & 1) |
+ { |
SkASSERT((fx >> (16 + 14)) == 0); |
*dst++ = (fx >> 12 << 14) | ((fx >> 16) + 1); |
fx += dx; |
} |
- while ((count -= 2) >= 0) { |
+ while ((count -= 2) >= 0) |
+ { |
SkASSERT((fx >> (16 + 14)) == 0); |
*dst++ = (fx >> 12 << 14) | ((fx >> 16) + 1); |
fx += dx; |
@@ -474,7 +412,8 @@ |
/////////////////////////////////////////////////////////////////////////////// |
-SkBitmapProcState::MatrixProc SkBitmapProcState::chooseMatrixProc(bool trivial_matrix) { |
+SkBitmapProcState::MatrixProc |
+SkBitmapProcState::chooseMatrixProc(bool trivial_matrix) { |
// test_int_tileprocs(); |
// check for our special case when there is no scale/affine/perspective |
if (trivial_matrix) { |
@@ -500,7 +439,9 @@ |
index += 2; |
} |
- if (SkShader::kClamp_TileMode == fTileModeX && SkShader::kClamp_TileMode == fTileModeY) { |
+ if (SkShader::kClamp_TileMode == fTileModeX && |
+ SkShader::kClamp_TileMode == fTileModeY) |
+ { |
// clamp gets special version of filterOne |
fFilterOneX = SK_Fixed1; |
fFilterOneY = SK_Fixed1; |
@@ -511,7 +452,9 @@ |
fFilterOneX = SK_Fixed1 / fBitmap->width(); |
fFilterOneY = SK_Fixed1 / fBitmap->height(); |
- if (SkShader::kRepeat_TileMode == fTileModeX && SkShader::kRepeat_TileMode == fTileModeY) { |
+ if (SkShader::kRepeat_TileMode == fTileModeX && |
+ SkShader::kRepeat_TileMode == fTileModeY) |
+ { |
return SK_ARM_NEON_WRAP(RepeatX_RepeatY_Procs)[index]; |
} |