Some refactoring of GrCustomStage and friends

Review URL: http://codereview.appspot.com/6209071/



git-svn-id: http://skia.googlecode.com/svn/trunk@4003 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/effects/GrConvolutionEffect.h b/src/gpu/effects/GrConvolutionEffect.h
index e3c3aa9..4fdddd9 100644
--- a/src/gpu/effects/GrConvolutionEffect.h
+++ b/src/gpu/effects/GrConvolutionEffect.h
@@ -11,6 +11,8 @@
 #include "GrCustomStage.h"
 #include "GrSamplerState.h" // for MAX_KENEL_WIDTH, FilterDirection
 
+class GrGLConvolutionEffect;
+
 class GrConvolutionEffect : public GrCustomStage {
 
 public:
@@ -19,11 +21,17 @@
                         unsigned int kernelWidth, const float* kernel);
     virtual ~GrConvolutionEffect();
 
-    virtual const char* name() const SK_OVERRIDE;
-    virtual GrProgramStageFactory* getFactory() const SK_OVERRIDE;
-    virtual bool isEqual(const GrCustomStage *) const SK_OVERRIDE;
-
     unsigned int width() const { return fKernelWidth; }
+    const float* kernel() const { return fKernel; }
+    GrSamplerState::FilterDirection direction() const { return fDirection; }
+    
+    static const char* Name() { return "Convolution"; }
+
+    typedef GrGLConvolutionEffect GLProgramStage;
+    
+    virtual const char* name() const SK_OVERRIDE;
+    virtual const GrProgramStageFactory& getFactory() const SK_OVERRIDE;
+    virtual bool isEqual(const GrCustomStage *) const SK_OVERRIDE;
 
 protected:
 
@@ -31,7 +39,6 @@
     unsigned int fKernelWidth;
     float fKernel[MAX_KERNEL_WIDTH];
 
-    friend class GrGLConvolutionEffect;
 
 private: