Index: include/effects/SkGradientShader.h |
diff --git a/include/effects/SkGradientShader.h b/include/effects/SkGradientShader.h |
index 6b86f441eb7b4889d905620e395f58c2609cbe07..2fcce75c30ecfcedf29caeb40ccfc3a63b4d22d0 100644 |
--- a/include/effects/SkGradientShader.h |
+++ b/include/effects/SkGradientShader.h |
@@ -48,6 +48,28 @@ public: |
return MakeLinear(pts, colors, pos, count, mode, 0, NULL); |
} |
+ /** Returns a shader that generates a linear gradient between the two specified points. |
+ <p /> |
+ @param pts The start and end points for the gradient. |
+ @param colors The array[count] of colors, to be distributed between the two points |
+ @param pos May be NULL. array[count] of SkScalars, or NULL, of the relative position of |
+ each corresponding color in the colors array. If this is NULL, |
+ the the colors are distributed evenly between the start and end point. |
+ If this is not null, the values must begin with 0, end with 1.0, and |
+ intermediate values must be strictly increasing. |
+ @param count Must be >=2. The number of colors (and pos if not NULL) entries. |
+ @param mode The tiling mode |
+ */ |
+ static sk_sp<SkShader> MakeLinear(const SkPoint pts[2], |
+ const SkColor4f colors[], sk_sp<SkColorSpace> colorSpace, |
+ const SkScalar pos[], int count, SkShader::TileMode mode, |
+ uint32_t flags, const SkMatrix* localMatrix); |
+ static sk_sp<SkShader> MakeLinear(const SkPoint pts[2], |
+ const SkColor4f colors[], sk_sp<SkColorSpace> colorSpace, |
+ const SkScalar pos[], int count, SkShader::TileMode mode) { |
+ return MakeLinear(pts, colors, std::move(colorSpace), pos, count, mode, 0, NULL); |
+ } |
+ |
/** Returns a shader that generates a radial gradient given the center and radius. |
<p /> |
@param center The center of the circle for this gradient |
@@ -71,6 +93,29 @@ public: |
return MakeRadial(center, radius, colors, pos, count, mode, 0, NULL); |
} |
+ /** Returns a shader that generates a radial gradient given the center and radius. |
+ <p /> |
+ @param center The center of the circle for this gradient |
+ @param radius Must be positive. The radius of the circle for this gradient |
+ @param colors The array[count] of colors, to be distributed between the center and edge of the circle |
+ @param pos May be NULL. The array[count] of SkScalars, or NULL, of the relative position of |
+ each corresponding color in the colors array. If this is NULL, |
+ the the colors are distributed evenly between the center and edge of the circle. |
+ If this is not null, the values must begin with 0, end with 1.0, and |
+ intermediate values must be strictly increasing. |
+ @param count Must be >= 2. The number of colors (and pos if not NULL) entries |
+ @param mode The tiling mode |
+ */ |
+ static sk_sp<SkShader> MakeRadial(const SkPoint& center, SkScalar radius, |
+ const SkColor4f colors[], sk_sp<SkColorSpace> colorSpace, |
+ 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 SkColor4f colors[], sk_sp<SkColorSpace> colorSpace, |
+ const SkScalar pos[], int count, SkShader::TileMode mode) { |
+ return MakeRadial(center, radius, colors, std::move(colorSpace), pos, count, mode, 0, NULL); |
+ } |
+ |
/** |
* Returns a shader that generates a conical gradient given two circles, or |
* returns NULL if the inputs are invalid. The gradient interprets the |
@@ -90,6 +135,27 @@ public: |
0, NULL); |
} |
+ /** |
+ * Returns a shader that generates a conical gradient given two circles, or |
+ * returns NULL if the inputs are invalid. The gradient interprets the |
+ * two circles according to the following HTML spec. |
+ * http://dev.w3.org/html5/2dcontext/#dom-context-2d-createradialgradient |
+ */ |
+ static sk_sp<SkShader> MakeTwoPointConical(const SkPoint& start, SkScalar startRadius, |
+ const SkPoint& end, SkScalar endRadius, |
+ const SkColor4f colors[], |
+ sk_sp<SkColorSpace> colorSpace, 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 SkColor4f colors[], |
+ sk_sp<SkColorSpace> colorSpace, const SkScalar pos[], |
+ int count, SkShader::TileMode mode) { |
+ return MakeTwoPointConical(start, startRadius, end, endRadius, colors, |
+ std::move(colorSpace), pos, count, mode, 0, NULL); |
+ } |
+ |
/** Returns a shader that generates a sweep gradient given a center. |
<p /> |
@param cx The X coordinate of the center of the sweep |
@@ -110,6 +176,28 @@ public: |
return MakeSweep(cx, cy, colors, pos, count, 0, NULL); |
} |
+ /** Returns a shader that generates a sweep gradient given a center. |
+ <p /> |
+ @param cx The X coordinate of the center of the sweep |
+ @param cx The Y coordinate of the center of the sweep |
+ @param colors The array[count] of colors, to be distributed around the center. |
+ @param pos May be NULL. The array[count] of SkScalars, or NULL, of the relative position of |
+ each corresponding color in the colors array. If this is NULL, |
+ the the colors are distributed evenly between the center and edge of the circle. |
+ If this is not null, the values must begin with 0, end with 1.0, and |
+ 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 SkColor4f colors[], sk_sp<SkColorSpace> colorSpace, |
+ const SkScalar pos[], int count, |
+ uint32_t flags, const SkMatrix* localMatrix); |
+ static sk_sp<SkShader> MakeSweep(SkScalar cx, SkScalar cy, |
+ const SkColor4f colors[], sk_sp<SkColorSpace> colorSpace, |
+ const SkScalar pos[], int count) { |
+ return MakeSweep(cx, cy, colors, std::move(colorSpace), 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, |