Index: include/effects/SkGradientShader.h |
diff --git a/include/effects/SkGradientShader.h b/include/effects/SkGradientShader.h |
index ae11e2dafd1fb81f0580f8e6d71c2d2d56d93fac..e474f38a4e2e0227cfa1d8bdc538a56ce2d09a01 100644 |
--- a/include/effects/SkGradientShader.h |
+++ b/include/effects/SkGradientShader.h |
@@ -42,15 +42,14 @@ public: |
@param count Must be >=2. The number of colors (and pos if not NULL) entries. |
@param mode The tiling mode |
*/ |
- static SkShader* CreateLinear(const SkPoint pts[2], |
- const SkColor colors[], const SkScalar pos[], int count, |
- SkShader::TileMode mode, |
- uint32_t flags, const SkMatrix* localMatrix); |
- |
- static SkShader* CreateLinear(const SkPoint pts[2], |
- const SkColor colors[], const SkScalar pos[], int count, |
- SkShader::TileMode mode) { |
- return CreateLinear(pts, colors, pos, count, mode, 0, NULL); |
+ static sk_sp<SkShader> MakeLinear(const SkPoint pts[2], |
+ const SkColor colors[], const SkScalar pos[], int count, |
+ SkShader::TileMode mode, |
+ uint32_t flags, const SkMatrix* localMatrix); |
+ static sk_sp<SkShader> MakeLinear(const SkPoint pts[2], |
+ const SkColor colors[], const SkScalar pos[], int count, |
+ SkShader::TileMode mode) { |
+ return MakeLinear(pts, colors, pos, count, mode, 0, NULL); |
} |
/** Returns a shader that generates a radial gradient given the center and radius. |
@@ -69,15 +68,14 @@ public: |
@param count Must be >= 2. The number of colors (and pos if not NULL) entries |
@param mode The tiling mode |
*/ |
- static SkShader* CreateRadial(const SkPoint& center, SkScalar radius, |
- const SkColor colors[], const SkScalar pos[], int count, |
- SkShader::TileMode mode, |
- uint32_t flags, const SkMatrix* localMatrix); |
- |
- static SkShader* CreateRadial(const SkPoint& center, SkScalar radius, |
- const SkColor colors[], const SkScalar pos[], int count, |
- SkShader::TileMode mode) { |
- return CreateRadial(center, radius, colors, pos, count, mode, 0, NULL); |
+ static sk_sp<SkShader> MakeRadial(const SkPoint& center, SkScalar radius, |
+ const SkColor colors[], const SkScalar pos[], int count, |
+ SkShader::TileMode mode, |
+ uint32_t flags, const SkMatrix* localMatrix); |
+ static sk_sp<SkShader> MakeRadial(const SkPoint& center, SkScalar radius, |
+ const SkColor colors[], const SkScalar pos[], int count, |
+ SkShader::TileMode mode) { |
+ return MakeRadial(center, radius, colors, pos, count, mode, 0, NULL); |
} |
/** |
@@ -86,18 +84,17 @@ public: |
* two circles according to the following HTML spec. |
* http://dev.w3.org/html5/2dcontext/#dom-context-2d-createradialgradient |
*/ |
- static SkShader* CreateTwoPointConical(const SkPoint& start, SkScalar startRadius, |
- const SkPoint& end, SkScalar endRadius, |
- const SkColor colors[], const SkScalar pos[], int count, |
- SkShader::TileMode mode, |
- uint32_t flags, const SkMatrix* localMatrix); |
- |
- static SkShader* CreateTwoPointConical(const SkPoint& start, SkScalar startRadius, |
- const SkPoint& end, SkScalar endRadius, |
- const SkColor colors[], const SkScalar pos[], int count, |
- SkShader::TileMode mode) { |
- return CreateTwoPointConical(start, startRadius, end, endRadius, colors, pos, count, mode, |
- 0, NULL); |
+ static sk_sp<SkShader> MakeTwoPointConical(const SkPoint& start, SkScalar startRadius, |
+ const SkPoint& end, SkScalar endRadius, |
+ const SkColor colors[], const SkScalar pos[], |
+ int count, SkShader::TileMode mode, |
+ uint32_t flags, const SkMatrix* localMatrix); |
+ static sk_sp<SkShader> MakeTwoPointConical(const SkPoint& start, SkScalar startRadius, |
+ const SkPoint& end, SkScalar endRadius, |
+ const SkColor colors[], const SkScalar pos[], |
+ int count, SkShader::TileMode mode) { |
+ return MakeTwoPointConical(start, startRadius, end, endRadius, colors, pos, count, mode, |
+ 0, NULL); |
} |
/** Returns a shader that generates a sweep gradient given a center. |
@@ -115,14 +112,67 @@ public: |
intermediate values must be strictly increasing. |
@param count Must be >= 2. The number of colors (and pos if not NULL) entries |
*/ |
+ static sk_sp<SkShader> MakeSweep(SkScalar cx, SkScalar cy, |
+ const SkColor colors[], const SkScalar pos[], int count, |
+ uint32_t flags, const SkMatrix* localMatrix); |
+ static sk_sp<SkShader> MakeSweep(SkScalar cx, SkScalar cy, |
+ const SkColor colors[], const SkScalar pos[], int count) { |
+ return MakeSweep(cx, cy, colors, pos, count, 0, NULL); |
+ } |
+ |
+#ifdef SK_SUPPORT_LEGACY_CREATESHADER_PTR |
+ static SkShader* CreateLinear(const SkPoint pts[2], |
+ const SkColor colors[], const SkScalar pos[], int count, |
+ SkShader::TileMode mode, |
+ uint32_t flags, const SkMatrix* localMatrix) { |
+ return MakeLinear(pts, colors, pos, count, mode, flags, localMatrix).release(); |
+ } |
+ static SkShader* CreateLinear(const SkPoint pts[2], |
+ const SkColor colors[], const SkScalar pos[], int count, |
+ SkShader::TileMode mode) { |
+ return CreateLinear(pts, colors, pos, count, mode, 0, NULL); |
+ } |
+ |
+ static SkShader* CreateRadial(const SkPoint& center, SkScalar radius, |
+ const SkColor colors[], const SkScalar pos[], int count, |
+ SkShader::TileMode mode, |
+ uint32_t flags, const SkMatrix* localMatrix) { |
+ return MakeRadial(center, radius, colors, pos, count, mode, flags, localMatrix).release(); |
+ } |
+ |
+ static SkShader* CreateRadial(const SkPoint& center, SkScalar radius, |
+ const SkColor colors[], const SkScalar pos[], int count, |
+ SkShader::TileMode mode) { |
+ return CreateRadial(center, radius, colors, pos, count, mode, 0, NULL); |
+ } |
+ |
+ static SkShader* CreateTwoPointConical(const SkPoint& start, SkScalar startRadius, |
+ const SkPoint& end, SkScalar endRadius, |
+ const SkColor colors[], const SkScalar pos[], int count, |
+ SkShader::TileMode mode, |
+ uint32_t flags, const SkMatrix* localMatrix) { |
+ return MakeTwoPointConical(start, startRadius, end, endRadius, colors, pos, count, mode, |
+ flags, localMatrix).release(); |
+ } |
+ static SkShader* CreateTwoPointConical(const SkPoint& start, SkScalar startRadius, |
+ const SkPoint& end, SkScalar endRadius, |
+ const SkColor colors[], const SkScalar pos[], int count, |
+ SkShader::TileMode mode) { |
+ return CreateTwoPointConical(start, startRadius, end, endRadius, colors, pos, count, mode, |
+ 0, NULL); |
+ } |
+ |
static SkShader* CreateSweep(SkScalar cx, SkScalar cy, |
const SkColor colors[], const SkScalar pos[], int count, |
- uint32_t flags, const SkMatrix* localMatrix); |
- |
+ uint32_t flags, const SkMatrix* localMatrix) { |
+ return MakeSweep(cx, cy, colors, pos, count, flags, localMatrix).release(); |
+ } |
static SkShader* CreateSweep(SkScalar cx, SkScalar cy, |
const SkColor colors[], const SkScalar pos[], int count) { |
return CreateSweep(cx, cy, colors, pos, count, 0, NULL); |
} |
+#endif |
+ |
SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP() |
}; |