Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / skia / src / effects / gradients / SkTwoPointRadialGradient.h
index ee1b49e..6d36fe4 100644 (file)
@@ -15,7 +15,7 @@ class SkTwoPointRadialGradient : public SkGradientShaderBase {
 public:
     SkTwoPointRadialGradient(const SkPoint& start, SkScalar startRadius,
                               const SkPoint& end, SkScalar endRadius,
-                              const Descriptor&);
+                              const Descriptor&, const SkMatrix* localMatrix);
 
     virtual BitmapType asABitmap(SkBitmap* bitmap,
                                  SkMatrix* matrix,
@@ -23,11 +23,17 @@ public:
     virtual GradientType asAGradient(GradientInfo* info) const SK_OVERRIDE;
     virtual GrEffectRef* asNewEffect(GrContext* context, const SkPaint&) const SK_OVERRIDE;
 
-    virtual void shadeSpan(int x, int y, SkPMColor* dstCParam,
-                           int count) SK_OVERRIDE;
-    virtual bool setContext(const SkBitmap& device,
-                            const SkPaint& paint,
-                            const SkMatrix& matrix) SK_OVERRIDE;
+    virtual size_t contextSize() const SK_OVERRIDE;
+
+    class TwoPointRadialGradientContext : public SkGradientShaderBase::GradientShaderBaseContext {
+    public:
+        TwoPointRadialGradientContext(const SkTwoPointRadialGradient&, const ContextRec&);
+
+        virtual void shadeSpan(int x, int y, SkPMColor dstC[], int count) SK_OVERRIDE;
+
+    private:
+        typedef SkGradientShaderBase::GradientShaderBaseContext INHERITED;
+    };
 
     SkScalar getCenterX1() const { return fDiff.length(); }
     SkScalar getStartRadius() const { return fStartRadius; }
@@ -39,9 +45,9 @@ public:
 protected:
     SkTwoPointRadialGradient(SkReadBuffer& buffer);
     virtual void flatten(SkWriteBuffer& buffer) const SK_OVERRIDE;
+    virtual Context* onCreateContext(const ContextRec&, void* storage) const SK_OVERRIDE;
 
 private:
-    typedef SkGradientShaderBase INHERITED;
     const SkPoint fCenter1;
     const SkPoint fCenter2;
     const SkScalar fRadius1;
@@ -50,6 +56,8 @@ private:
     SkScalar fStartRadius, fDiffRadius, fSr2D2, fA, fOneOverTwoA;
 
     void init();
+
+    typedef SkGradientShaderBase INHERITED;
 };
 
 #endif