make SkComposeShader.h private
authorreed <reed@google.com>
Mon, 15 Feb 2016 16:27:14 +0000 (08:27 -0800)
committerCommit bot <commit-bot@chromium.org>
Mon, 15 Feb 2016 16:27:14 +0000 (08:27 -0800)
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1697523003

Review URL: https://codereview.chromium.org/1697523003

gm/composeshader.cpp
gyp/core.gypi
include/core/SkComposeShader.h [deleted file]
samplecode/PerlinPatch.cpp
samplecode/SampleAll.cpp
samplecode/SampleArc.cpp
samplecode/SampleShaders.cpp
src/core/SkComposeShader.cpp
src/core/SkComposeShader.h [new file with mode: 0644]

index d482bc942097299a368fede0cbb9ec959262eff5..2f3d99d36453f5ec586d83ef9819254f6471fa60 100644 (file)
@@ -9,7 +9,6 @@
 
 #include "SkBitmapProcShader.h"
 #include "SkCanvas.h"
-#include "SkComposeShader.h"
 #include "SkGradientShader.h"
 #include "SkGraphics.h"
 #include "SkShader.h"
@@ -36,7 +35,7 @@ static SkShader* make_shader(SkXfermode::Mode mode) {
 
     SkAutoTUnref<SkXfermode> xfer(SkXfermode::Create(mode));
 
-    return new SkComposeShader(shaderA, shaderB, xfer);
+    return SkShader::CreateComposeShader(shaderA, shaderB, xfer);
 }
 
 class ComposeShaderGM : public skiagm::GM {
@@ -194,11 +193,11 @@ protected:
         SkAutoTUnref<SkXfermode> xfer(SkXfermode::Create(SkXfermode::kDstOver_Mode));
 
         // gradient should appear over color bitmap
-        SkAutoTUnref<SkShader> shader0(new SkComposeShader(fLinearGradientShader,
+        SkAutoTUnref<SkShader> shader0(SkShader::CreateComposeShader(fLinearGradientShader,
                                                            fColorBitmapShader,
                                                            xfer));
         // gradient should appear over alpha8 bitmap colorized by the paint color
-        SkAutoTUnref<SkShader> shader1(new SkComposeShader(fLinearGradientShader,
+        SkAutoTUnref<SkShader> shader1(SkShader::CreateComposeShader(fLinearGradientShader,
                                                            fAlpha8BitmapShader,
                                                            xfer));
 
@@ -226,7 +225,7 @@ protected:
     }
     
 private:
-    /** This determines the length and width of the bitmaps used in the SkComposeShaders.  Values
+    /** This determines the length and width of the bitmaps used in the ComposeShaders.  Values
      *  above 20 may cause an SkASSERT to fail in SkSmallAllocator. However, larger values will
      *  work in a release build.  You can change this parameter and then compile a release build
      *  to have this GM draw larger bitmaps for easier visual inspection.
index 1700a0533138c651f2491dc22afd1456071f3d56..fe743c932e2cb3f97d59ea4b679d467750d23333 100644 (file)
         '<(skia_include_path)/core/SkColor.h',
         '<(skia_include_path)/core/SkColorFilter.h',
         '<(skia_include_path)/core/SkColorPriv.h',
-        '<(skia_include_path)/core/SkComposeShader.h',
         '<(skia_include_path)/core/SkData.h',
         '<(skia_include_path)/core/SkDeque.h',
         '<(skia_include_path)/core/SkDevice.h',
diff --git a/include/core/SkComposeShader.h b/include/core/SkComposeShader.h
deleted file mode 100644 (file)
index bc9d932..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-
-/*
- * Copyright 2006 The Android Open Source Project
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-
-#ifndef SkComposeShader_DEFINED
-#define SkComposeShader_DEFINED
-
-#include "SkShader.h"
-
-class SkXfermode;
-
-///////////////////////////////////////////////////////////////////////////////////////////
-
-/** \class SkComposeShader
-    This subclass of shader returns the composition of two other shaders, combined by
-    a xfermode.
-*/
-class SK_API SkComposeShader : public SkShader {
-public:
-    /** Create a new compose shader, given shaders A, B, and a combining xfermode mode.
-        When the xfermode is called, it will be given the result from shader A as its
-        "dst", and the result from shader B as its "src".
-        mode->xfer32(sA_result, sB_result, ...)
-        @param shaderA  The colors from this shader are seen as the "dst" by the xfermode
-        @param shaderB  The colors from this shader are seen as the "src" by the xfermode
-        @param mode     The xfermode that combines the colors from the two shaders. If mode
-                        is null, then SRC_OVER is assumed.
-    */
-    SkComposeShader(SkShader* sA, SkShader* sB, SkXfermode* mode = NULL);
-    virtual ~SkComposeShader();
-
-    size_t contextSize() const override;
-
-#if SK_SUPPORT_GPU
-    const GrFragmentProcessor*  asFragmentProcessor(GrContext*,
-                                                    const SkMatrix& viewM,
-                                                    const SkMatrix* localMatrix,
-                                                    SkFilterQuality) const override;
-#endif
-
-    class ComposeShaderContext : public SkShader::Context {
-    public:
-        // When this object gets destroyed, it will call contextA and contextB's destructor
-        // but it will NOT free the memory.
-        ComposeShaderContext(const SkComposeShader&, const ContextRec&,
-                             SkShader::Context* contextA, SkShader::Context* contextB);
-
-        SkShader::Context* getShaderContextA() const { return fShaderContextA; }
-        SkShader::Context* getShaderContextB() const { return fShaderContextB; }
-
-        virtual ~ComposeShaderContext();
-
-        void shadeSpan(int x, int y, SkPMColor[], int count) override;
-
-    private:
-        SkShader::Context* fShaderContextA;
-        SkShader::Context* fShaderContextB;
-
-        typedef SkShader::Context INHERITED;
-    };
-
-#ifdef SK_DEBUG
-    SkShader* getShaderA() { return fShaderA; }
-    SkShader* getShaderB() { return fShaderB; }
-#endif
-
-    bool asACompose(ComposeRec* rec) const override;
-
-    SK_TO_STRING_OVERRIDE()
-    SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkComposeShader)
-
-protected:
-    SkComposeShader(SkReadBuffer& );
-    void flatten(SkWriteBuffer&) const override;
-    Context* onCreateContext(const ContextRec&, void*) const override;
-
-private:
-    SkShader*   fShaderA;
-    SkShader*   fShaderB;
-    SkXfermode* fMode;
-
-    typedef SkShader INHERITED;
-};
-
-#endif
index 9bb95e52595d01cd4a4f142c7d4f6b763f4e20eb..de4d45164810f14e33e97b20df5f12e0ed063cd4 100644 (file)
@@ -11,7 +11,6 @@
 #include "SkGradientShader.h"
 #include "SkPatchUtils.h"
 #include "SkPerlinNoiseShader2/SkPerlinNoiseShader2.h"
-#include "SkComposeShader.h"
 
 static void draw_control_points(SkCanvas* canvas, const SkPoint cubics[12]) {
     //draw control points
@@ -148,7 +147,7 @@ protected:
         SkScalar scaleFreq = 2.0;
         fShader1 = SkPerlinNoiseShader2::CreateImprovedNoise(fXFreq/scaleFreq, fYFreq/scaleFreq, 4,
                                                              fSeed);
-        fShaderCompose = new SkComposeShader(fShader0, fShader1);
+        fShaderCompose = SkShader::CreateComposeShader(fShader0, fShader1, nullptr);
 
         paint.setShader(fShaderCompose);
         canvas->drawPatch(fPts, nullptr, texCoords, xfer, paint);
index ad3181f7cd57ccc064efd4dfdf3de884fe661692..addca35fdc9346679dad07d1ff33d12562fdb5d6 100644 (file)
@@ -28,7 +28,6 @@
 #include "SkPictureRecorder.h"
 #include "SkRegion.h"
 #include "SkShader.h"
-#include "SkComposeShader.h"
 #include "SkCornerPathEffect.h"
 #include "SkPathMeasure.h"
 #include "SkPicture.h"
@@ -511,7 +510,7 @@ protected:
         SkShader* shaderB = SkGradientShader::CreateLinear(pts, colors2, nullptr,
             2, SkShader::kClamp_TileMode);
         SkXfermode* mode = SkXfermode::Create(SkXfermode::kDstIn_Mode);
-        SkShader* result = new SkComposeShader(shaderA, shaderB, mode);
+        SkShader* result = SkShader::CreateComposeShader(shaderA, shaderB, mode);
         shaderA->unref();
         shaderB->unref();
         mode->unref();
index 834ba90a8f5977be42f985e7a597be93b6892d69..3b5288dd08622ba72643a152a258c7c37db4468e 100644 (file)
@@ -15,7 +15,6 @@
 #include "SkRegion.h"
 #include "SkShader.h"
 #include "SkUtils.h"
-#include "SkComposeShader.h"
 #include "Sk1DPathEffect.h"
 #include "SkCornerPathEffect.h"
 #include "SkPathMeasure.h"
index dd444ec34a80746d56d4b6eb666fe91f300d862c..2c0a6ab749c256e1e3b5bd2c279c8abb6908af10 100644 (file)
@@ -16,7 +16,6 @@
 #include "SkShader.h"
 #include "SkUtils.h"
 #include "SkXfermode.h"
-#include "SkComposeShader.h"
 #include "SkColorPriv.h"
 #include "SkColorFilter.h"
 #include "SkTime.h"
@@ -38,7 +37,7 @@ static SkShader* make_bitmapfade(const SkBitmap& bm)
 
     SkXfermode* mode = SkXfermode::Create(SkXfermode::kDstIn_Mode);
 
-    SkShader* shader = new SkComposeShader(shaderB, shaderA, mode);
+    SkShader* shader = SkShader::CreateComposeShader(shaderB, shaderA, mode);
     shaderA->unref();
     shaderB->unref();
     mode->unref();
@@ -71,7 +70,7 @@ public:
 
         SkXfermode* mode = SkXfermode::Create(SkXfermode::kDstIn_Mode);
 
-        fShader = new SkComposeShader(shaderA, shaderB, mode);
+        fShader = SkShader::CreateComposeShader(shaderA, shaderB, mode);
         shaderA->unref();
         shaderB->unref();
         mode->unref();
index c49d8a48ae261e202d523835fe1753d650824a64..9e5e2c6a4947f99e53859d805266680bdf0c832c 100644 (file)
@@ -1,4 +1,3 @@
-
 /*
  * Copyright 2006 The Android Open Source Project
  *
@@ -6,7 +5,6 @@
  * found in the LICENSE file.
  */
 
-
 #include "SkComposeShader.h"
 #include "SkColorFilter.h"
 #include "SkColorPriv.h"
diff --git a/src/core/SkComposeShader.h b/src/core/SkComposeShader.h
new file mode 100644 (file)
index 0000000..bc9d932
--- /dev/null
@@ -0,0 +1,90 @@
+
+/*
+ * Copyright 2006 The Android Open Source Project
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#ifndef SkComposeShader_DEFINED
+#define SkComposeShader_DEFINED
+
+#include "SkShader.h"
+
+class SkXfermode;
+
+///////////////////////////////////////////////////////////////////////////////////////////
+
+/** \class SkComposeShader
+    This subclass of shader returns the composition of two other shaders, combined by
+    a xfermode.
+*/
+class SK_API SkComposeShader : public SkShader {
+public:
+    /** Create a new compose shader, given shaders A, B, and a combining xfermode mode.
+        When the xfermode is called, it will be given the result from shader A as its
+        "dst", and the result from shader B as its "src".
+        mode->xfer32(sA_result, sB_result, ...)
+        @param shaderA  The colors from this shader are seen as the "dst" by the xfermode
+        @param shaderB  The colors from this shader are seen as the "src" by the xfermode
+        @param mode     The xfermode that combines the colors from the two shaders. If mode
+                        is null, then SRC_OVER is assumed.
+    */
+    SkComposeShader(SkShader* sA, SkShader* sB, SkXfermode* mode = NULL);
+    virtual ~SkComposeShader();
+
+    size_t contextSize() const override;
+
+#if SK_SUPPORT_GPU
+    const GrFragmentProcessor*  asFragmentProcessor(GrContext*,
+                                                    const SkMatrix& viewM,
+                                                    const SkMatrix* localMatrix,
+                                                    SkFilterQuality) const override;
+#endif
+
+    class ComposeShaderContext : public SkShader::Context {
+    public:
+        // When this object gets destroyed, it will call contextA and contextB's destructor
+        // but it will NOT free the memory.
+        ComposeShaderContext(const SkComposeShader&, const ContextRec&,
+                             SkShader::Context* contextA, SkShader::Context* contextB);
+
+        SkShader::Context* getShaderContextA() const { return fShaderContextA; }
+        SkShader::Context* getShaderContextB() const { return fShaderContextB; }
+
+        virtual ~ComposeShaderContext();
+
+        void shadeSpan(int x, int y, SkPMColor[], int count) override;
+
+    private:
+        SkShader::Context* fShaderContextA;
+        SkShader::Context* fShaderContextB;
+
+        typedef SkShader::Context INHERITED;
+    };
+
+#ifdef SK_DEBUG
+    SkShader* getShaderA() { return fShaderA; }
+    SkShader* getShaderB() { return fShaderB; }
+#endif
+
+    bool asACompose(ComposeRec* rec) const override;
+
+    SK_TO_STRING_OVERRIDE()
+    SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkComposeShader)
+
+protected:
+    SkComposeShader(SkReadBuffer& );
+    void flatten(SkWriteBuffer&) const override;
+    Context* onCreateContext(const ContextRec&, void*) const override;
+
+private:
+    SkShader*   fShaderA;
+    SkShader*   fShaderB;
+    SkXfermode* fMode;
+
+    typedef SkShader INHERITED;
+};
+
+#endif