Index: include/effects/SkGradientShader.h |
diff --git a/include/effects/SkGradientShader.h b/include/effects/SkGradientShader.h |
index dbeb2fb069818b4e9dab862bd66cb2aecb3a6f51..ed0f1bf75b5454e5809fbfb1f09449d881b71110 100644 |
--- a/include/effects/SkGradientShader.h |
+++ b/include/effects/SkGradientShader.h |
@@ -1,4 +1,3 @@ |
- |
/* |
* Copyright 2006 The Android Open Source Project |
* |
@@ -6,7 +5,6 @@ |
* found in the LICENSE file. |
*/ |
- |
#ifndef SkGradientShader_DEFINED |
#define SkGradientShader_DEFINED |
@@ -21,6 +19,15 @@ class SkUnitMapper; |
*/ |
class SK_API SkGradientShader { |
public: |
+ enum Flags { |
+ /** By default gradients will interpolate their colors in unpremul space |
+ * and then premultiply each of the results. By setting this flag, the |
+ * gradients will premultiply their colors first, and then interpolate |
+ * between them. |
+ */ |
+ kInterpolateColorsInPremul_Flag = 1 << 0, |
+ }; |
+ |
/** Returns a shader that generates a linear gradient between the two |
specified points. |
<p /> |
@@ -38,10 +45,11 @@ public: |
@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, |
- SkUnitMapper* mapper = NULL); |
+ static SkShader* CreateLinear(const SkPoint pts[2], |
+ const SkColor colors[], const SkScalar pos[], int count, |
+ SkShader::TileMode mode, |
+ SkUnitMapper* mapper = NULL, |
+ uint32_t flags = 0); |
/** Returns a shader that generates a radial gradient given the center and radius. |
<p /> |
@@ -60,10 +68,11 @@ public: |
@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, |
- SkUnitMapper* mapper = NULL); |
+ static SkShader* CreateRadial(const SkPoint& center, SkScalar radius, |
+ const SkColor colors[], const SkScalar pos[], int count, |
+ SkShader::TileMode mode, |
+ SkUnitMapper* mapper = NULL, |
+ uint32_t flags = 0); |
/** Returns a shader that generates a radial gradient given the start position, start radius, end position and end radius. |
<p /> |
@@ -92,7 +101,8 @@ public: |
const SkColor colors[], |
const SkScalar pos[], int count, |
SkShader::TileMode mode, |
- SkUnitMapper* mapper = NULL); |
+ SkUnitMapper* mapper = NULL, |
+ uint32_t flags = 0); |
/** |
* Returns a shader that generates a conical gradient given two circles, or |
@@ -101,13 +111,14 @@ public: |
* 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, |
- SkUnitMapper* mapper = NULL); |
+ SkScalar startRadius, |
+ const SkPoint& end, |
+ SkScalar endRadius, |
+ const SkColor colors[], |
+ const SkScalar pos[], int count, |
+ SkShader::TileMode mode, |
+ SkUnitMapper* mapper = NULL, |
+ uint32_t flags = 0); |
/** Returns a shader that generates a sweep gradient given a center. |
<p /> |
@@ -127,7 +138,8 @@ public: |
*/ |
static SkShader* CreateSweep(SkScalar cx, SkScalar cy, |
const SkColor colors[], const SkScalar pos[], |
- int count, SkUnitMapper* mapper = NULL); |
+ int count, SkUnitMapper* mapper = NULL, |
+ uint32_t flags = 0); |
SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP() |
}; |