aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/effects/SkGradientShader.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/effects/SkGradientShader.h')
-rw-r--r--include/effects/SkGradientShader.h133
1 files changed, 34 insertions, 99 deletions
diff --git a/include/effects/SkGradientShader.h b/include/effects/SkGradientShader.h
index 2518458697..871b34a41f 100644
--- a/include/effects/SkGradientShader.h
+++ b/include/effects/SkGradientShader.h
@@ -10,6 +10,8 @@
#include "SkShader.h"
+class SkUnitMapper;
+
/** \class SkGradientShader
SkGradientShader hosts factories for creating subclasses of SkShader that
@@ -41,28 +43,14 @@ public:
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
+ @param mapper May be NULL. Callback to modify the spread of the colors.
*/
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);
- }
-
-#ifdef SK_SUPPORT_LEGACY_DEADUNITMAPPERTYPE
- static SkShader* CreateLinear(const SkPoint pts[2],
- const SkColor colors[], const SkScalar pos[], int count,
- SkShader::TileMode mode,
- SkDeadUnitMapperType*, // this type is now gone
- uint32_t flags,
- const SkMatrix* localMatrix) {
- return CreateLinear(pts, colors, pos, count, mode, flags, localMatrix);
- }
-#endif
+ SkUnitMapper* mapper = NULL,
+ uint32_t flags = 0,
+ const SkMatrix* localMatrix = NULL);
/** Returns a shader that generates a radial gradient given the center and radius.
<p />
@@ -79,27 +67,14 @@ public:
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
+ @param mapper May be NULL. Callback to modify the spread of the colors.
*/
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);
- }
-
-#ifdef SK_SUPPORT_LEGACY_DEADUNITMAPPERTYPE
- static SkShader* CreateRadial(const SkPoint& center, SkScalar radius,
- const SkColor colors[], const SkScalar pos[], int count,
- SkShader::TileMode mode,
- SkDeadUnitMapperType*,
- uint32_t flags, const SkMatrix* localMatrix) {
- return CreateRadial(center, radius, colors, pos, count, mode, flags, localMatrix);
- }
-#endif
+ SkUnitMapper* mapper = NULL,
+ uint32_t flags = 0,
+ const SkMatrix* localMatrix = NULL);
/** Returns a shader that generates a radial gradient given the start position, start radius, end position and end radius.
<p />
@@ -119,32 +94,18 @@ public:
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
+ @param mapper May be NULL. Callback to modify the spread of the colors.
*/
- static SkShader* CreateTwoPointRadial(const SkPoint& start, SkScalar startRadius,
- const SkPoint& end, SkScalar endRadius,
- const SkColor colors[], const SkScalar pos[], int count,
+ static SkShader* CreateTwoPointRadial(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* CreateTwoPointRadial(const SkPoint& start, SkScalar startRadius,
- const SkPoint& end, SkScalar endRadius,
- const SkColor colors[], const SkScalar pos[], int count,
- SkShader::TileMode mode) {
- return CreateTwoPointRadial(start, startRadius, end, endRadius, colors, pos, count, mode,
- 0, NULL);
- }
-
-#ifdef SK_SUPPORT_LEGACY_DEADUNITMAPPERTYPE
- static SkShader* CreateTwoPointRadial(const SkPoint& start, SkScalar startRadius,
- const SkPoint& end, SkScalar endRadius,
- const SkColor colors[], const SkScalar pos[], int count,
- SkShader::TileMode mode,
- SkDeadUnitMapperType*,
- uint32_t flags, const SkMatrix* localMatrix) {
- return CreateTwoPointRadial(start, startRadius, end, endRadius, colors, pos, count, mode,
- flags, localMatrix);
- }
-#endif
+ SkUnitMapper* mapper = NULL,
+ uint32_t flags = 0,
+ const SkMatrix* localMatrix = NULL);
/**
* Returns a shader that generates a conical gradient given two circles, or
@@ -152,31 +113,16 @@ 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);
- }
-
-#ifdef SK_SUPPORT_LEGACY_DEADUNITMAPPERTYPE
- static SkShader* CreateTwoPointConical(const SkPoint& start, SkScalar startRadius,
- const SkPoint& end, SkScalar endRadius,
- const SkColor colors[], const SkScalar pos[], int count,
+ static SkShader* CreateTwoPointConical(const SkPoint& start,
+ SkScalar startRadius,
+ const SkPoint& end,
+ SkScalar endRadius,
+ const SkColor colors[],
+ const SkScalar pos[], int count,
SkShader::TileMode mode,
- SkDeadUnitMapperType*,
- uint32_t flags, const SkMatrix* localMatrix) {
- return CreateTwoPointConical(start, startRadius, end, endRadius, colors, pos, count, mode,
- flags, localMatrix);
- }
-#endif
+ SkUnitMapper* mapper = NULL,
+ uint32_t flags = 0,
+ const SkMatrix* localMatrix = NULL);
/** Returns a shader that generates a sweep gradient given a center.
<p />
@@ -192,24 +138,13 @@ public:
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 mapper May be NULL. Callback to modify the spread of the colors.
*/
static SkShader* CreateSweep(SkScalar cx, SkScalar cy,
- const SkColor colors[], const SkScalar pos[], int count,
- uint32_t flags, const SkMatrix* localMatrix);
-
- static SkShader* CreateSweep(SkScalar cx, SkScalar cy,
- const SkColor colors[], const SkScalar pos[], int count) {
- return CreateSweep(cx, cy, colors, pos, count, 0, NULL);
- }
-
-#ifdef SK_SUPPORT_LEGACY_DEADUNITMAPPERTYPE
- static SkShader* CreateSweep(SkScalar cx, SkScalar cy,
- const SkColor colors[], const SkScalar pos[], int count,
- SkDeadUnitMapperType*,
- uint32_t flags, const SkMatrix* localMatrix) {
- return CreateSweep(cx, cy, colors, pos, count, flags, localMatrix);
- }
-#endif
+ const SkColor colors[], const SkScalar pos[],
+ int count, SkUnitMapper* mapper = NULL,
+ uint32_t flags = 0,
+ const SkMatrix* localMatrix = NULL);
SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP()
};