Index: include/core/SkShader.h |
diff --git a/include/core/SkShader.h b/include/core/SkShader.h |
index 47fdc9492f9c645642d29569e10c2ff9c7abe1e2..76b86a6cfe9d9eee4281e855f44f671a332daf45 100644 |
--- a/include/core/SkShader.h |
+++ b/include/core/SkShader.h |
@@ -334,27 +334,20 @@ public: |
/** |
- * Returns true if the shader subclass succeeds in creating an effect or if none is required. |
- * False is returned if it fails or if there is not an implementation of this method in the |
- * shader subclass. |
+ * Returns a GrFragmentProcessor that implements the shader for the GPU backend. NULL is |
+ * returned if there is no GPU implementation. |
* |
- * On success an implementation of this method must inspect the SkPaint and set paintColor to |
- * the color the effect expects as its input color. If the SkShader wishes to emit a solid |
- * color then it should set paintColor to that color and not create an effect. Note that |
- * GrColor is always premul. The common patterns are to convert paint's SkColor to GrColor or |
- * to extract paint's alpha and replicate it to all channels in paintColor. Upon failure |
- * paintColor should not be modified. It is not recommended to specialize the effect to |
- * the paint's color as then many GPU shaders may be generated. |
+ * The GPU device does not call SkShader::createContext(), instead we pass the view matrix, |
+ * local matrix, and filter quality directly. |
* |
- * The GrContext may be used by the effect to create textures. The GPU device does not |
- * call createContext. Instead we pass the SkPaint here in case the shader needs paint info. |
- * |
- * A view matrix is always required to create the correct GrFragmentProcessor. Some shaders |
- * may also use the optional localMatrix to define a matrix relevant only for sampling. |
+ * The GrContext may be used by the to create textures that are required by the returned |
+ * processor. |
*/ |
- virtual bool asFragmentProcessor(GrContext*, const SkPaint&, const SkMatrix& viewM, |
- const SkMatrix* localMatrix, GrColor*, |
- GrProcessorDataManager*, GrFragmentProcessor**) const; |
+ virtual const GrFragmentProcessor* asFragmentProcessor(GrContext*, |
+ const SkMatrix& viewMatrix, |
+ const SkMatrix* localMatrix, |
+ SkFilterQuality, |
+ GrProcessorDataManager*) const; |
/** |
* If the shader can represent its "average" luminance in a single color, return true and |