aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/image/SkImageShader.h
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2015-09-30 12:21:45 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-09-30 12:21:45 -0700
commit856e9d921462136da8562f8f122d42e114cd4710 (patch)
tree9ebc00a92f5aacdd54d00c528fa3ed19f48f6fd6 /src/image/SkImageShader.h
parent8a6697af95b340aad6dee7e6228048fa305c1e59 (diff)
Revert[4] of add ImageShader, sharing code with its Bitmap cousin
Now with GrTextureMaker subclasses to handle npot usage. This reverts commit 476506d070dbc59b158acc1a00c34bff95ab2968. BUG=skia: Review URL: https://codereview.chromium.org/1370223002
Diffstat (limited to 'src/image/SkImageShader.h')
-rw-r--r--src/image/SkImageShader.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/image/SkImageShader.h b/src/image/SkImageShader.h
new file mode 100644
index 0000000000..fdd7976aad
--- /dev/null
+++ b/src/image/SkImageShader.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef SkImageShader_DEFINED
+#define SkImageShader_DEFINED
+
+#include "SkImage.h"
+#include "SkShader.h"
+
+class SkImageShader : public SkShader {
+public:
+ static SkShader* Create(const SkImage*, TileMode tx, TileMode ty, const SkMatrix* localMatrix);
+
+ bool isOpaque() const override;
+ size_t contextSize() const override;
+
+ SK_TO_STRING_OVERRIDE()
+ SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkImageShader)
+
+#if SK_SUPPORT_GPU
+ const GrFragmentProcessor* asFragmentProcessor(GrContext*, const SkMatrix& viewM,
+ const SkMatrix*, SkFilterQuality,
+ GrProcessorDataManager*) const override;
+#endif
+
+protected:
+ void flatten(SkWriteBuffer&) const override;
+ Context* onCreateContext(const ContextRec&, void* storage) const override;
+
+ SkAutoTUnref<const SkImage> fImage;
+ const TileMode fTileModeX;
+ const TileMode fTileModeY;
+
+private:
+ SkImageShader(const SkImage*, TileMode tx, TileMode ty, const SkMatrix* localMatrix);
+
+ typedef SkShader INHERITED;
+};
+
+#endif