From 924f59d3627a697f2b0df3299915e814e160f981 Mon Sep 17 00:00:00 2001 From: Mike Reed Date: Tue, 22 Sep 2009 16:16:08 -0400 Subject: refresh from skia/trunk - two-point-radial gradients, needed for and svg --- include/effects/SkGradientShader.h | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/effects/SkGradientShader.h b/include/effects/SkGradientShader.h index 9a8696c..c800c66 100644 --- a/include/effects/SkGradientShader.h +++ b/include/effects/SkGradientShader.h @@ -72,9 +72,37 @@ public: SkShader::TileMode mode, SkUnitMapper* mapper = NULL); + /** Returns a shader that generates a radial gradient given the start position, start radius, end position and end radius. +

+ CreateTwoPointRadial returns a shader with a reference count of 1. + The caller should decrement the shader's reference count when done with the shader. + It is an error for colorCount to be < 2, for startRadius or endRadius to be < 0, or for + startRadius to be equal to endRadius. + @param start The center of the start circle for this gradient + @param startRadius Must be positive. The radius of the start circle for this gradient. + @param end The center of the end circle for this gradient + @param endRadius Must be positive. The radius of the end 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 + @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, + SkShader::TileMode mode, + SkUnitMapper* mapper = NULL); /** Returns a shader that generates a sweep gradient given a center.

- CreateRadial returns a shader with a reference count of 1. + CreateSweep returns a shader with a reference count of 1. The caller should decrement the shader's reference count when done with the shader. It is an error for colorCount to be < 2. @param cx The X coordinate of the center of the sweep -- cgit v1.1