Index: src/gpu/effects/GrCustomCoordsTextureEffect.h |
diff --git a/src/gpu/effects/GrCustomCoordsTextureEffect.h b/src/gpu/effects/GrCustomCoordsTextureEffect.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..fad35c8804c9f38d9d8c60ff9b164ae62248eff4 |
--- /dev/null |
+++ b/src/gpu/effects/GrCustomCoordsTextureEffect.h |
@@ -0,0 +1,49 @@ |
+/* |
+ * Copyright 2013 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+#ifndef GrCustomCoordsTextureEffect_DEFINED |
+#define GrCustomCoordsTextureEffect_DEFINED |
+ |
+#include "GrEffect.h" |
+ |
+class GrGLCustomCoordsTextureEffect; |
+ |
+/** |
+ * The output color of this effect is a modulation of the input color and a sample from a texture. |
+ * It allows explicit specification of the filtering and wrap modes (GrTextureParams). The input |
+ * coords are a custom attribute. |
+ */ |
+class GrCustomCoordsTextureEffect : public GrEffect { |
+public: |
+ static GrEffectRef* Create(GrTexture* tex, const GrTextureParams& p) { |
+ AutoEffectUnref effect(SkNEW_ARGS(GrCustomCoordsTextureEffect, (tex, p))); |
+ return CreateEffectRef(effect); |
+ } |
+ |
+ virtual ~GrCustomCoordsTextureEffect() {} |
+ |
+ static const char* Name() { return "Texture"; } |
+ |
+ virtual void getConstantColorComponents(GrColor* color, uint32_t* validFlags) const SK_OVERRIDE; |
+ |
+ typedef GrGLCustomCoordsTextureEffect GLEffect; |
+ |
+ virtual const GrBackendEffectFactory& getFactory() const SK_OVERRIDE; |
+ |
+private: |
+ GrCustomCoordsTextureEffect(GrTexture* texture, const GrTextureParams& params); |
+ |
+ virtual bool onIsEqual(const GrEffect& other) const SK_OVERRIDE; |
+ |
+ GrTextureAccess fTextureAccess; |
+ |
+ GR_DECLARE_EFFECT_TEST; |
+ |
+ typedef GrEffect INHERITED; |
+}; |
+ |
+#endif |