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

Unified Diff: src/core/SkBitmapProcState.h

Issue 17381008: More general version of image filtering; reworked to be robust and easier to SSE (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: make temp. scale function private; disable GM and bench for that function Created 7 years, 5 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
Index: src/core/SkBitmapProcState.h
diff --git a/src/core/SkBitmapProcState.h b/src/core/SkBitmapProcState.h
index 7d754fe5092b45936097f3e7f0dd42ec45bfe257..d1a37d8bed8dd18a3967281190fe36fcc9d4ecfc 100644
--- a/src/core/SkBitmapProcState.h
+++ b/src/core/SkBitmapProcState.h
@@ -11,6 +11,7 @@
#define SkBitmapProcState_DEFINED
#include "SkBitmap.h"
+#include "SkBitmapFilter.h"
#include "SkMatrix.h"
#define FractionalInt_IS_64BIT
@@ -113,6 +114,8 @@ struct SkBitmapProcState {
// are ignored
ShaderProc32 getShaderProc32() const { return fShaderProc32; }
ShaderProc16 getShaderProc16() const { return fShaderProc16; }
+
+ SkBitmapFilter *getBitmapFilter() const { return fBitmapFilter; }
reed1 2013/07/09 17:26:29 nit: skia places the * on the type, not the other
#ifdef SK_DEBUG
MatrixProc getMatrixProc() const;
@@ -139,12 +142,11 @@ private:
MatrixProc chooseMatrixProc(bool trivial_matrix);
bool chooseProcs(const SkMatrix& inv, const SkPaint&);
ShaderProc32 chooseShaderProc32();
+
+ void buildFilterCoefficients(SkFixed dst[4], float t) const;
+ SkBitmapFilter *fBitmapFilter;
-
- /** test method for choosing a bicubic shading filter
- */
-
- ShaderProc32 chooseBicubicFilterProc(const SkPaint &paint);
+ ShaderProc32 chooseBitmapFilterProc(const SkPaint &paint);
// Return false if we failed to setup for fast translate (e.g. overflow)
bool setupForTranslate();
@@ -200,4 +202,10 @@ 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);
+
+
#endif

Powered by Google App Engine
This is Rietveld 408576698