Index: src/core/SkBitmapProcState.h |
diff --git a/src/core/SkBitmapProcState.h b/src/core/SkBitmapProcState.h |
index a644dd1e021c3453c2144bbc1aa203e48ff9176d..c4c4df2cf61a99ff5860f9a1a1772cf31e1c6516 100644 |
--- a/src/core/SkBitmapProcState.h |
+++ b/src/core/SkBitmapProcState.h |
@@ -31,6 +31,7 @@ |
#endif |
class SkPaint; |
+class SkConvolutionProcs; |
struct SkBitmapProcState { |
@@ -59,7 +60,7 @@ struct SkBitmapProcState { |
const uint32_t[], |
int count, |
uint16_t colors[]); |
- |
+ |
typedef U16CPU (*FixedTileProc)(SkFixed); // returns 0..0xFFFF |
typedef U16CPU (*FixedTileLowBitsProc)(SkFixed, int); // returns 0..0xF |
typedef U16CPU (*IntTileProc)(int value, int count); // returns 0..count-1 |
@@ -78,6 +79,8 @@ struct SkBitmapProcState { |
IntTileProc fIntTileProcY; // chooseProcs |
SkFixed fFilterOneX; |
SkFixed fFilterOneY; |
+ |
+ SkConvolutionProcs* fConvolutionProcs; // possiblyScaleImage |
SkPMColor fPaintPMColor; // chooseProcs - A8 config |
SkFixed fInvSx; // chooseProcs |
@@ -113,7 +116,12 @@ struct SkBitmapProcState { |
implementation can do nothing (see SkBitmapProcState_opts_none.cpp) |
*/ |
void platformProcs(); |
- |
+ |
+ /** Platforms can also optionally overwrite the convolution functions |
+ if we have SIMD versions of them. |
+ */ |
+ |
+ void platformConvolutionProcs(); |
/** Given the byte size of the index buffer to be passed to the matrix proc, |
return the maximum number of resulting pixels that can be computed |
@@ -218,8 +226,6 @@ void ClampX_ClampY_nofilter_affine(const SkBitmapProcState& s, |
void S32_D16_filter_DX(const SkBitmapProcState& s, |
const uint32_t* xy, int count, uint16_t* colors); |
-void highQualityFilter_ScaleOnly(const SkBitmapProcState &s, int x, int y, |
- SkPMColor *SK_RESTRICT colors, int count); |
void highQualityFilter(const SkBitmapProcState &s, int x, int y, |
SkPMColor *SK_RESTRICT colors, int count); |