Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(526)

Unified Diff: src/core/SkBitmapProcState_matrixProcs.cpp

Issue 236593006: Revert of use templates instead of macros to build blitters (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/core/SkBitmapProcState_matrix.h ('k') | src/core/SkBitmapProcState_matrix_template.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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];
}
« no previous file with comments | « src/core/SkBitmapProcState_matrix.h ('k') | src/core/SkBitmapProcState_matrix_template.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698