Index: src/core/SkLocalMatrixImageFilter.h |
diff --git a/src/core/SkLocalMatrixImageFilter.h b/src/core/SkLocalMatrixImageFilter.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f908d025a5a8d6d483f3e834c5a299829f753917 |
--- /dev/null |
+++ b/src/core/SkLocalMatrixImageFilter.h |
@@ -0,0 +1,40 @@ |
+/* |
+ * Copyright 2015 The Android Open Source Project |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+#ifndef SkLocalMatrixImageFilter_DEFINED |
+#define SkLocalMatrixImageFilter_DEFINED |
+ |
+#include "SkImageFilter.h" |
+#include "SkReadBuffer.h" |
+#include "SkString.h" |
+ |
+/** |
+ * Wraps another imagefilter + matrix, such that using this filter will give the same result |
+ * as using the wrapped filter with the matrix applied to its context. |
+ */ |
+class SkLocalMatrixImageFilter : public SkImageFilter { |
+public: |
+ static SkImageFilter* Create(const SkMatrix& localM, SkImageFilter* input); |
+ |
+ SK_TO_STRING_OVERRIDE() |
+ SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLocalMatrixImageFilter) |
+ |
+protected: |
+ void flatten(SkWriteBuffer&) const override; |
+ bool onFilterImage(Proxy*, const SkBitmap& src, const Context&, |
+ SkBitmap* result, SkIPoint* offset) const override; |
+ bool onFilterBounds(const SkIRect& src, const SkMatrix&, SkIRect* dst) const override; |
+ |
+private: |
+ SkLocalMatrixImageFilter(const SkMatrix& localM, SkImageFilter* input); |
+ |
+ SkMatrix fLocalM; |
+ |
+ typedef SkImageFilter INHERITED; |
+}; |
+ |
+#endif |