aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--docs/SkBitmap_Reference.bmh18
-rw-r--r--docs/SkCanvas_Reference.bmh65
-rw-r--r--docs/SkColor4f_Reference.bmh210
-rw-r--r--docs/SkColor_Reference.bmh330
-rw-r--r--docs/SkImageInfo_Reference.bmh71
-rw-r--r--docs/SkImage_Reference.bmh35
-rw-r--r--docs/SkMatrix_Reference.bmh18
-rw-r--r--docs/SkPaint_Reference.bmh87
-rw-r--r--docs/SkRect_Reference.bmh17
-rw-r--r--docs/SkSurface_Reference.bmh24
-rw-r--r--docs/undocumented.bmh2
-rw-r--r--site/user/api/SkBitmap_Reference.md22
-rw-r--r--site/user/api/SkCanvas_Reference.md72
-rw-r--r--site/user/api/SkColor4f_Reference.md174
-rw-r--r--site/user/api/SkColor_Reference.md265
-rw-r--r--site/user/api/SkIPoint_Reference.md2
-rw-r--r--site/user/api/SkImageInfo_Reference.md76
-rw-r--r--site/user/api/SkImage_Reference.md39
-rw-r--r--site/user/api/SkMatrix_Reference.md60
-rw-r--r--site/user/api/SkPaint_Reference.md78
-rw-r--r--site/user/api/SkPoint_Reference.md2
-rw-r--r--site/user/api/SkSurface_Reference.md4
-rw-r--r--site/user/api/catalog.htm186
-rw-r--r--site/user/api/undocumented.md4
-rw-r--r--tools/bookmaker/definition.cpp3
-rw-r--r--tools/bookmaker/includeWriter.cpp1
-rw-r--r--tools/bookmaker/mdOut.cpp23
27 files changed, 1099 insertions, 789 deletions
diff --git a/docs/SkBitmap_Reference.bmh b/docs/SkBitmap_Reference.bmh
index 4d949a5887..967b9d1ca9 100644
--- a/docs/SkBitmap_Reference.bmh
+++ b/docs/SkBitmap_Reference.bmh
@@ -1707,7 +1707,7 @@ for (int y : { 0, 64, 128, 192 } ) {
#Method bool SK_WARN_UNUSED_RESULT tryAllocN32Pixels(int width, int height, bool isOpaque = false)
#In Allocate
-#Line # allocates compatible Color_ARGB pixels if possible ##
+#Line # allocates compatible ARGB pixels if possible ##
Sets Image_Info to width, height, and Native_Color_Type; and allocates
pixel memory. If isOpaque is true, sets Image_Info to kOpaque_SkAlphaType;
otherwise, sets to kPremul_SkAlphaType.
@@ -1749,7 +1749,7 @@ the platform. Bitmap drawn to output device skips converting its pixel format.
#Method void allocN32Pixels(int width, int height, bool isOpaque = false)
#In Allocate
-#Line # allocates compatible Color_ARGB pixels, or aborts ##
+#Line # allocates compatible ARGB pixels, or aborts ##
Sets Image_Info to width, height, and the Native_Color_Type; and allocates
pixel memory. If isOpaque is true, sets Image_Info to kPremul_SkAlphaType;
otherwise, sets to kOpaque_SkAlphaType.
@@ -2364,8 +2364,8 @@ getGenerationID() return a different value.
#Line # writes Color to pixels ##
Replaces pixel values with c. All pixels contained by bounds() are affected.
If the colorType is kGray_8_SkColorType or k565_SkColorType, then Color_Alpha
-is ignored; Color_RGB is treated as opaque. If colorType is kAlpha_8_SkColorType,
-then Color_RGB is ignored.
+is ignored; RGB is treated as opaque. If colorType is kAlpha_8_SkColorType,
+then RGB is ignored.
#Param c Unpremultiplied Color ##
@@ -2394,9 +2394,9 @@ is ignored; r, g, and b are treated as opaque. If colorType is kAlpha_8_SkColorT
then r, g, and b are ignored.
#Param a amount of Color_Alpha, from fully transparent (0) to fully opaque (255) ##
-#Param r amount of Color_RGB_Red, from no red (0) to full red (255) ##
-#Param g amount of Color_RGB_Green, from no green (0) to full green (255) ##
-#Param b amount of Color_RGB_Blue, from no blue (0) to full blue (255) ##
+#Param r amount of red, from no red (0) to full red (255) ##
+#Param g amount of green, from no green (0) to full green (255) ##
+#Param b amount of blue, from no blue (0) to full blue (255) ##
#Example
#Height 80
@@ -2427,8 +2427,8 @@ Replaces pixel values inside area with c. If area does not intersect bounds(),
call has no effect.
If the colorType is kGray_8_SkColorType or k565_SkColorType, then Color_Alpha
-is ignored; Color_RGB is treated as opaque. If colorType is kAlpha_8_SkColorType,
-then Color_RGB is ignored.
+is ignored; RGB is treated as opaque. If colorType is kAlpha_8_SkColorType,
+then RGB is ignored.
#Param c Unpremultiplied Color ##
#Param area rectangle to fill ##
diff --git a/docs/SkCanvas_Reference.bmh b/docs/SkCanvas_Reference.bmh
index 063e53ee5d..6c12339ce3 100644
--- a/docs/SkCanvas_Reference.bmh
+++ b/docs/SkCanvas_Reference.bmh
@@ -980,7 +980,7 @@ Does not copy, and returns false if:
#Description
Canvas returned by Raster_Surface has Premultiplied pixel values.
clear() takes Unpremultiplied input with Color_Alpha equal 0x80
- and Color_RGB equal 0x55, 0xAA, 0xFF. Color_RGB is multiplied by Color_Alpha
+ and RGB equal 0x55, 0xAA, 0xFF. RGB is multiplied by Color_Alpha
to generate Premultiplied value 0x802B5580. readPixels converts pixel back
to Unpremultiplied value 0x8056A9FF, introducing error.
##
@@ -1047,7 +1047,7 @@ Does not copy, and returns false if:
#Example
#Description
clear() takes Unpremultiplied input with Color_Alpha equal 0x80
- and Color_RGB equal 0x55, 0xAA, 0xFF. Color_RGB is multiplied by Color_Alpha
+ and RGB equal 0x55, 0xAA, 0xFF. RGB is multiplied by Color_Alpha
to generate Premultiplied value 0x802B5580.
##
void draw(SkCanvas* canvas) {
@@ -1110,7 +1110,7 @@ Does not copy, and returns false if:
#Example
#Description
clear() takes Unpremultiplied input with Color_Alpha equal 0x80
- and Color_RGB equal 0x55, 0xAA, 0xFF. Color_RGB is multiplied by Color_Alpha
+ and RGB equal 0x55, 0xAA, 0xFF. RGB is multiplied by Color_Alpha
to generate Premultiplied value 0x802B5580.
##
void draw(SkCanvas* canvas) {
@@ -1816,7 +1816,7 @@ SaveLayerRec contains the state used to create the Layer.
#Example
#Height 160
#Description
-Canvas Layer captures a red Anti-aliased circle and a blue Aliased circle scaled
+Canvas Layer captures a red Anti_Aliased circle and a blue Aliased circle scaled
up by four. After drawing another red circle without scaling on top, the Layer is
transferred to the main canvas.
##
@@ -2342,14 +2342,14 @@ prior Clip to form the replacement Clip. Use SkClipOp::kDifference
to subtract Path from Clip; use SkClipOp::kIntersect to intersect Path
with Clip.
-A clipping Path may be Anti-aliased; if Path, after transformation, is
-composed of horizontal and vertical lines, clearing Anti-alias allows whole pixels
+A clipping Path may be Anti_Aliased; if Path, after transformation, is
+composed of horizontal and vertical lines, clearing Anti_Alias allows whole pixels
to either be inside or outside the clip. The fastest drawing has a Aliased,
rectangular clip.
-If clipping Path has Anti-alias set, clip may partially clip a pixel, requiring
+If clipping Path has Anti_Alias set, clip may partially clip a pixel, requiring
that drawing blend partially with the destination along the edge. A rotated
-rectangular Anti-aliased clip looks smoother but draws slower.
+rectangular Anti_Aliased clip looks smoother but draws slower.
Clip can combine with Rect and Round_Rect primitives; like
Path, these are transformed by Matrix before they are combined with Clip.
@@ -2360,10 +2360,10 @@ and is unaffected by Matrix.
#Example
#Height 90
#Description
- Draw a red circle with an Aliased clip and an Anti-aliased clip.
+ Draw a red circle with an Aliased clip and an Anti_Aliased clip.
Use an image filter to zoom into the pixels drawn.
The edge of the Aliased clip fully draws pixels in the red circle.
- The edge of the Anti-aliased clip partially draws pixels in the red circle.
+ The edge of the Anti_Aliased clip partially draws pixels in the red circle.
##
SkPaint redPaint, scalePaint;
redPaint.setAntiAlias(true);
@@ -2392,12 +2392,12 @@ and is unaffected by Matrix.
#In Clip
#Line # combines Clip with Rect ##
Replace Clip with the intersection or difference of Clip and rect,
-with an Aliased or Anti-aliased clip edge. rect is transformed by Matrix
+with an Aliased or Anti_Aliased clip edge. rect is transformed by Matrix
before it is combined with Clip.
#Param rect Rect to combine with Clip ##
#Param op Clip_Op to apply to Clip ##
-#Param doAntiAlias true if Clip is to be Anti-aliased ##
+#Param doAntiAlias true if Clip is to be Anti_Aliased ##
#Example
#Height 128
@@ -2457,13 +2457,13 @@ rect is transformed by Matrix
before it is combined with Clip.
#Param rect Rect to combine with Clip ##
-#Param doAntiAlias true if Clip is to be Anti-aliased ##
+#Param doAntiAlias true if Clip is to be Anti_Aliased ##
#Example
#Height 133
#Description
A circle drawn in pieces looks uniform when drawn Aliased.
- The same circle pieces blend with pixels more than once when Anti-aliased,
+ The same circle pieces blend with pixels more than once when Anti_Aliased,
visible as a thin pair of lines through the right circle.
##
void draw(SkCanvas* canvas) {
@@ -2515,13 +2515,13 @@ This is private API to be used only by Android framework.
#In Clip
#Line # combines Clip with Round_Rect ##
Replace Clip with the intersection or difference of Clip and rrect,
-with an Aliased or Anti-aliased clip edge.
+with an Aliased or Anti_Aliased clip edge.
rrect is transformed by Matrix
before it is combined with Clip.
#Param rrect Round_Rect to combine with Clip ##
#Param op Clip_Op to apply to Clip ##
-#Param doAntiAlias true if Clip is to be Anti-aliased ##
+#Param doAntiAlias true if Clip is to be Anti_Aliased ##
#Example
#Height 128
@@ -2570,11 +2570,11 @@ void draw(SkCanvas* canvas) {
#In Clip
Replace Clip with the intersection of Clip and rrect,
-with an Aliased or Anti-aliased clip edge.
+with an Aliased or Anti_Aliased clip edge.
rrect is transformed by Matrix before it is combined with Clip.
#Param rrect Round_Rect to combine with Clip ##
-#Param doAntiAlias true if Clip is to be Anti-aliased ##
+#Param doAntiAlias true if Clip is to be Anti_Aliased ##
#Example
#Height 128
@@ -2596,14 +2596,14 @@ void draw(SkCanvas* canvas) {
#In Clip
#Line # combines Clip with Path ##
Replace Clip with the intersection or difference of Clip and path,
-with an Aliased or Anti-aliased clip edge. Path_Fill_Type determines if path
+with an Aliased or Anti_Aliased clip edge. Path_Fill_Type determines if path
describes the area inside or outside its contours; and if Path_Contour overlaps
itself or another Path_Contour, whether the overlaps form part of the area.
path is transformed by Matrix before it is combined with Clip.
#Param path Path to combine with Clip ##
#Param op Clip_Op to apply to Clip ##
-#Param doAntiAlias true if Clip is to be Anti-aliased ##
+#Param doAntiAlias true if Clip is to be Anti_Aliased ##
#Example
#Description
@@ -2687,7 +2687,7 @@ itself or another Path_Contour, whether the overlaps form part of the area.
path is transformed by Matrix before it is combined with Clip.
#Param path Path to combine with Clip ##
-#Param doAntiAlias true if Clip is to be Anti-aliased ##
+#Param doAntiAlias true if Clip is to be Anti_Aliased ##
#Example
#Height 212
@@ -2849,7 +2849,7 @@ Return bounds of Clip, transformed by inverse of Matrix. If Clip is empty,
return SkRect::MakeEmpty, where all Rect sides equal zero.
Rect returned is outset by one to account for partial pixel coverage if Clip
-is Anti-aliased.
+is Anti_Aliased.
#Return bounds of Clip in local coordinates ##
@@ -2895,7 +2895,7 @@ Return bounds of Clip, transformed by inverse of Matrix. If Clip is empty,
return false, and set bounds to SkRect::MakeEmpty, where all Rect sides equal zero.
bounds is outset by one to account for partial pixel coverage if Clip
-is Anti-aliased.
+is Anti_Aliased.
#Param bounds Rect of Clip in local coordinates ##
@@ -3022,9 +3022,9 @@ Unlike getLocalClipBounds, bounds is not outset.
#In Draw
#Line # fills Clip with Color and Blend_Mode ##
Fill Clip with Color color.
-mode determines how Color_ARGB is combined with destination.
+mode determines how ARGB is combined with destination.
-#Param color Unpremultiplied Color_ARGB ##
+#Param color Unpremultiplied ARGB ##
#Param mode SkBlendMode used to combine source color and destination ##
#Example
@@ -3047,7 +3047,7 @@ mode determines how Color_ARGB is combined with destination.
Fill Clip with Color color using SkBlendMode::kSrc.
This has the effect of replacing all pixels contained by Clip with color.
-#Param color Unpremultiplied Color_ARGB ##
+#Param color Unpremultiplied ARGB ##
#Example
void draw(SkCanvas* canvas) {
@@ -5135,6 +5135,7 @@ filled 12 point black Glyphs.
#Param paint text size, blend, color, and so on, used to draw ##
#Example
+#Height 48
SkPaint paint;
canvas->drawString("a small hello", 20, 20, paint);
##
@@ -5441,7 +5442,7 @@ Draw Text_Blob blob at (x, y), using Clip, Matrix, and Paint paint.
blob contains Glyphs, their positions, and paint attributes specific to text:
Typeface, Paint_Text_Size, Paint_Text_Scale_X, Paint_Text_Skew_X,
-Paint_Text_Align, Paint_Hinting, Anti-alias, Paint_Fake_Bold,
+Paint_Text_Align, Paint_Hinting, Anti_Alias, Paint_Fake_Bold,
Font_Embedded_Bitmaps, Full_Hinting_Spacing, LCD_Text, Linear_Text,
Subpixel_Text, and Paint_Vertical_Text.
@@ -5494,7 +5495,7 @@ Draw Text_Blob blob at (x, y), using Clip, Matrix, and Paint paint.
blob contains Glyphs, their positions, and paint attributes specific to text:
Typeface, Paint_Text_Size, Paint_Text_Scale_X, Paint_Text_Skew_X,
-Paint_Text_Align, Paint_Hinting, Anti-alias, Paint_Fake_Bold,
+Paint_Text_Align, Paint_Hinting, Anti_Alias, Paint_Fake_Bold,
Font_Embedded_Bitmaps, Full_Hinting_Spacing, LCD_Text, Linear_Text,
Subpixel_Text, and Paint_Vertical_Text.
@@ -5898,7 +5899,7 @@ void draw(SkCanvas* canvas) {
#Line # draws sprites using Clip, Matrix, and Paint ##
Draw a set of sprites from atlas, using Clip, Matrix, and optional Paint paint.
-paint uses Anti-alias, Color_Alpha, Color_Filter, Image_Filter, and Blend_Mode
+paint uses Anti_Alias, Color_Alpha, Color_Filter, Image_Filter, and Blend_Mode
to draw, if present. For each entry in the array, Rect tex locates sprite in
atlas, and RSXform xform transforms it into destination space.
@@ -5939,7 +5940,7 @@ void draw(SkCanvas* canvas) {
const SkPaint* paint)
Draw a set of sprites from atlas, using Clip, Matrix, and optional Paint paint.
-paint uses Anti-alias, Color_Alpha, Color_Filter, Image_Filter, and Blend_Mode
+paint uses Anti_Alias, Color_Alpha, Color_Filter, Image_Filter, and Blend_Mode
to draw, if present. For each entry in the array, Rect tex locates sprite in
atlas, and RSXform xform transforms it into destination space.
@@ -5982,7 +5983,7 @@ void draw(SkCanvas* canvas) {
const SkRect* cullRect, const SkPaint* paint)
Draw a set of sprites from atlas, using Clip, Matrix, and optional Paint paint.
-paint uses Anti-alias, Color_Alpha, Color_Filter, Image_Filter, and Blend_Mode
+paint uses Anti_Alias, Color_Alpha, Color_Filter, Image_Filter, and Blend_Mode
to draw, if present. For each entry in the array, Rect tex locates sprite in
atlas, and RSXform xform transforms it into destination space.
@@ -6018,7 +6019,7 @@ void draw(SkCanvas* canvas) {
int count, const SkRect* cullRect, const SkPaint* paint)
Draw a set of sprites from atlas, using Clip, Matrix, and optional Paint paint.
-paint uses Anti-alias, Color_Alpha, Color_Filter, Image_Filter, and Blend_Mode
+paint uses Anti_Alias, Color_Alpha, Color_Filter, Image_Filter, and Blend_Mode
to draw, if present. For each entry in the array, Rect tex locates sprite in
atlas, and RSXform xform transforms it into destination space.
diff --git a/docs/SkColor4f_Reference.bmh b/docs/SkColor4f_Reference.bmh
index eaf762d2e3..a2c3b0ea2d 100644
--- a/docs/SkColor4f_Reference.bmh
+++ b/docs/SkColor4f_Reference.bmh
@@ -3,7 +3,14 @@
#Struct SkColor4f
-The float values are 0...1 Unpremultiplied
+Each component is stored as a 32-bit single precision floating point float value.
+All values are allowed, but only the range from zero to one is meaningful.
+
+Each component is independent of the others; fA Alpha is not Premultiplied
+with fG green, fB blue, or fR red.
+
+Values smaller than zero or larger than one are allowed. Values out of range
+may be used with Blend_Mode so that the final component is in range.
#Subtopic Overview
#Populate
@@ -18,36 +25,47 @@ The float values are 0...1 Unpremultiplied
##
#Member float fR
-#Line # incomplete ##
+#Line # red component ##
+Single precision float for red ranges from no red (0.0) to full red (1.0).
##
#Member float fG
-#Line # incomplete ##
+#Line # green component ##
+Single precision float for green ranges from no green (0.0) to full green (1.0).
##
#Member float fB
-#Line # incomplete ##
+#Line # blue component ##
+Single precision float for blue ranges from no blue (0.0) to full blue (1.0).
##
#Member float fA
-#Line # incomplete ##
+#Line # alpha component ##
+Single precision float for Alpha ranges from no Alpha (0.0) to full Alpha (1.0).
##
# ------------------------------------------------------------------------------
#Method bool operator==(const SkColor4f& other)_const
#In Operator
-#Line # incomplete ##
+#Line # compares Color4f for equality ##
-#Param other incomplete ##
+Compares Color4f with other, and returns true if all components are equivalent.
-#Return incomplete ##
+#Param other Color4f to compare ##
+
+#Return true if Color4f equals other ##
#Example
-// incomplete
+ SkColor4f colorRed = { 1, 0, 0, 1 };
+ SkColor4f colorNamedRed = SkColor4f::FromColor(SK_ColorRED);
+ SkDebugf("colorRed %c= colorNamedRed", colorRed == colorNamedRed ? '=' : '!');
+#StdOut
+colorRed == colorNamedRed
+##
##
-#SeeAlso incomplete
+#SeeAlso operator!=(const SkColor4f& other)_const
#Method ##
@@ -55,122 +73,212 @@ The float values are 0...1 Unpremultiplied
#Method bool operator!=(const SkColor4f& other)_const
#In Operator
-#Line # incomplete ##
+#Line # compares colors for inequality ##
-#Param other incomplete ##
+Compares Color4f with other, and returns true if all components are not
+equivalent.
-#Return incomplete ##
+#Param other Color4f to compare ##
+
+#Return true if Color4f is not equal to other ##
#Example
-// incomplete
+ SkColor4f colorGray = { .5, .5, .5, 1 };
+ SkColor4f colorNamedGray = SkColor4f::FromColor(SK_ColorGRAY);
+ SkDebugf("colorGray %c= colorNamedGray ", colorGray != colorNamedGray ? '!' : '=');
+#StdOut
+colorGray != colorNamedGray
+##
##
-#SeeAlso incomplete
+#SeeAlso operator==(const SkColor4f& other)_const
#Method ##
# ------------------------------------------------------------------------------
#Method const float* vec() const
-#In incomplete
-#Line # incomplete ##
+#In Property
+#Line # returns array of components ##
+
+Returns Color4f components as a read-only array.
-#Return incomplete ##
+#Return components as read-only array ##
#Example
-// incomplete
+ SkColor4f color = SkColor4f::FromColor(0x884488CC);
+ SkDebugf("red=%g green=%g blue=%g alpha=%g\n", color.fR, color.fG, color.fB, color.fA);
+ const float* array = color.vec();
+ SkDebugf("[0]=%g [1]=%g [2]=%g [3]=%g\n", array[0], array[1], array[2], array[3]);
+#StdOut
+red=0.0578054 green=0.246201 blue=0.603827 alpha=0.533333
+[0]=0.0578054 [1]=0.246201 [2]=0.603827 [3]=0.533333
+##
##
-#SeeAlso incomplete
+#SeeAlso SkColor4f
#Method ##
# ------------------------------------------------------------------------------
#Method float* vec()
-#In incomplete
-#Line # incomplete ##
+#In Property
+#Line # returns array of components ##
+
+Returns Color4f components as a writable array.
-#Return incomplete ##
+#Return components as writable array ##
#Example
-// incomplete
+ SkColor4f color = SkColor4f::FromColor(0x884488CC);
+ SkDebugf("red=%g green=%g blue=%g alpha=%g\n", color.fR, color.fG, color.fB, color.fA);
+ float* array = color.vec();
+ array[3] = 1;
+ SkDebugf("[0]=%g [1]=%g [2]=%g [3]=%g\n", array[0], array[1], array[2], array[3]);
+#StdOut
+red=0.0578054 green=0.246201 blue=0.603827 alpha=0.533333
+[0]=0.0578054 [1]=0.246201 [2]=0.603827 [3]=1
+##
##
-#SeeAlso incomplete
+#SeeAlso SkColor4f
#Method ##
# ------------------------------------------------------------------------------
#Method static SkColor4f Pin(float r, float g, float b, float a)
-#In incomplete
-#Line # incomplete ##
+#In Utility
+#Line # sets components to valid range ##
+
+Constructs and returns Color4f with each component pinned from zero to one.
-#Param r incomplete ##
-#Param g incomplete ##
-#Param b incomplete ##
-#Param a incomplete ##
+#Param r red component ##
+#Param g green component ##
+#Param b blue component ##
+#Param a Alpha component ##
-#Return incomplete ##
+#Return Color4f with valid components ##
#Example
-// incomplete
+#Height 40
+ uint32_t storage[8];
+ SkImageInfo info = SkImageInfo::MakeN32Premul(8, 1);
+ SkPixmap pixmap(info, storage, info.minRowBytes());
+ pixmap.erase(SK_ColorWHITE);
+ SkIRect bounds = {0, 0, 1, 1};
+ SkColor4f colors[] = { SkColor4f::Pin(1.5, 0.45f, 0.0, 1),
+ SkColor4f::Pin(1, 0.45f, -0.25, 1),
+ {1.5, 0.45f, 0.0, 1},
+ {1, 0.45f, -0.25, 1},
+ };
+ for (auto color4f : colors) {
+ pixmap.erase(color4f, &bounds);
+ bounds.offset(2, 0);
+ }
+ SkBitmap bitmap;
+ canvas->scale(20, 20);
+ bitmap.installPixels(pixmap);
+ canvas->drawBitmap(bitmap, 0, 0);
##
-#SeeAlso incomplete
+#SeeAlso pin() FromColor
#Method ##
# ------------------------------------------------------------------------------
#Method static SkColor4f FromColor(SkColor)
-#In incomplete
-#Line # incomplete ##
+#In Utility
+#Line # sets components from Color ##
-Convert to SkColor4f, assuming SkColor is sRGB
+Converts to closest Color4f.
-#Param SkColor incomplete ##
+#Param SkColor Color with Alpha, red, blue, and green components ##
-#Return incomplete ##
+#Return Color4f equivalent ##
#Example
-// incomplete
+ uint8_t red = 77, green = 101, blue = 153, alpha = 43;
+ SkColor argb = SkColorSetARGB(alpha, red, green, blue);
+ SkColor4f color4f = SkColor4f::FromColor(argb);
+ SkDebugf("red=%g green=%g blue=%g alpha=%g\n", color4f.fR, color4f.fG, color4f.fB, color4f.fA);
+ SkColor fromColor4f = color4f.toSkColor();
+ SkDebugf("red=%d green=%d blue=%d alpha=%d\n", SkColorGetR(fromColor4f),
+ SkColorGetG(fromColor4f), SkColorGetB(fromColor4f), SkColorGetA(fromColor4f));
+#StdOut
+red=0.0742136 green=0.130136 blue=0.318547 alpha=0.168627
+red=77 green=101 blue=153 alpha=43
+##
##
-#SeeAlso incomplete
+#SeeAlso toSkColor
#Method ##
# ------------------------------------------------------------------------------
#Method SkColor toSkColor() const
-#In incomplete
-#Line # incomplete ##
+#In Utility
+#Line # returns closest Color ##
+
+Converts to closest SkColor.
-#Return incomplete ##
+#Return closest Color ##
#Example
-// incomplete
+ float red = 0.07, green = 0.13, blue = 0.32, alpha = 0.17;
+ SkColor4f color4f = { red, green, blue, alpha };
+ SkColor argb = color4f.toSkColor();
+ SkDebugf("red=%d green=%d blue=%d alpha=%d\n", SkColorGetR(argb),
+ SkColorGetG(argb), SkColorGetB(argb), SkColorGetA(argb));
+ SkColor4f fromSkColor = SkColor4f::FromColor(argb);
+ SkDebugf("red=%g green=%g blue=%g alpha=%g\n", fromSkColor.fR, fromSkColor.fG,
+ fromSkColor.fB, fromSkColor.fA);
+#StdOut
+red=75 green=101 blue=153 alpha=43
+red=0.0703601 green=0.130136 blue=0.318547 alpha=0.168627
+##
##
-#SeeAlso incomplete
+#SeeAlso FromColor
#Method ##
# ------------------------------------------------------------------------------
#Method SkColor4f pin() const
-#In incomplete
-#Line # incomplete ##
+#In Utility
+#Line # sets components to valid range ##
+
+Returns Color4f with all components in the range from zero to one.
-#Return incomplete ##
+#Return Color4f with valid components ##
#Example
-// incomplete
+#Height 40
+ uint32_t storage[8];
+ SkImageInfo info = SkImageInfo::MakeN32Premul(8, 1);
+ SkPixmap pixmap(info, storage, info.minRowBytes());
+ pixmap.erase(SK_ColorWHITE);
+ SkIRect bounds = {0, 0, 1, 1};
+ SkColor4f colors[] = { {1.5, 0.45f, 0.0, 1},
+ {1, 0.45f, -0.25, 1},
+ };
+ for (auto color4f : colors) {
+ pixmap.erase(color4f, &bounds);
+ bounds.offset(2, 0);
+ pixmap.erase(color4f.pin(), &bounds);
+ bounds.offset(2, 0);
+ }
+ SkBitmap bitmap;
+ canvas->scale(20, 20);
+ bitmap.installPixels(pixmap);
+ canvas->drawBitmap(bitmap, 0, 0);
##
-#SeeAlso incomplete
+#SeeAlso Pin
#Method ##
diff --git a/docs/SkColor_Reference.bmh b/docs/SkColor_Reference.bmh
index 349de3803d..67a47a297e 100644
--- a/docs/SkColor_Reference.bmh
+++ b/docs/SkColor_Reference.bmh
@@ -25,36 +25,6 @@ required.
#Populate
##
-
- #Subtopic RGB
- #Substitute RGB
- #Subtopic Red
- #Alias Red
- #Subtopic ##
- #Subtopic Blue
- #Alias Blue
- #Subtopic ##
- #Subtopic Green
- #Alias Green
- #Subtopic ##
- #Subtopic ##
-
- #Subtopic ARGB
- #Substitute ARGB
- #Subtopic ##
-
- #Subtopic RBG
- #Substitute RBG
- #Subtopic ##
-
- #Subtopic RGB-565
- #Substitute RGB-565
- #Alias Color_RGB-565 # quit changing - to _ !
- #Subtopic ##
-
- #Subtopic Gray
- ##
-
# ------------------------------------------------------------------------------
#Subtopic Alpha
@@ -71,6 +41,10 @@ zero, fully transparent, to one, fully opaque.
#Typedef uint8_t SkAlpha
#Line # defines Alpha as eight bits ##
+#Code
+typedef uint8_t SkAlpha;
+##
+
8-bit type for an alpha value. 0xFF is 100% opaque, 0x00 is 100% transparent.
#Typedef ##
@@ -82,6 +56,10 @@ zero, fully transparent, to one, fully opaque.
#Typedef uint32_t SkColor
#Line # defines Color as 32 bits ##
+#Code
+typedef uint32_t SkColor;
+##
+
32-bit ARGB Color value, Unpremultiplied. Color components are always in
a known order. This is different from SkPMColor, which has its bytes in a configuration
dependent order, to match the format of kBGRA_8888_SkColorType bitmaps. SkColor
@@ -99,16 +77,16 @@ component values in a different order.
#Method static constexpr inline SkColor SkColorSetARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b)
#In Function
-#Line # returns Color_Alpha and Color_RGB combined ##
+#Line # returns Color_Alpha and RGB combined ##
Returns Color value from 8-bit component values. Asserts if SK_DEBUG is defined
if a, r, g, or b exceed 255. Since Color is Unpremultiplied, a may be smaller
than the largest of r, g, and b.
#Param a amount of Alpha, from fully transparent (0) to fully opaque (255) ##
-#Param r amount of RGB_Red, from no red (0) to full red (255) ##
-#Param g amount of RGB_Green, from no green (0) to full green (255) ##
-#Param b amount of RGB_Blue, from no blue (0) to full blue (255) ##
+#Param r amount of red, from no red (0) to full red (255) ##
+#Param g amount of green, from no green (0) to full green (255) ##
+#Param b amount of blue, from no blue (0) to full blue (255) ##
#Return color and alpha, Unpremultiplied ##
@@ -120,40 +98,12 @@ than the largest of r, g, and b.
canvas->drawColor(SkColorSetARGB(0x80, 0x00, 0x00, 0xFF));
##
-#SeeAlso SkColorSetRGB SkPaint::setARGB SkPaint::setColor
+#SeeAlso SkColorSetRGB SkPaint::setARGB SkPaint::setColor SkColorSetA
#Method ##
# ------------------------------------------------------------------------------
-#Define SkColorSetARGBInline
-
-#Code
-###$
- #define SkColorSetARGBInline SkColorSetARGB
-$$$#
-##
-
-#Deprecated soon
-
-#Define ##
-
-# ------------------------------------------------------------------------------
-
-#Define SkColorSetARGBMacro
-
-#Code
-###$
- #define SkColorSetARGBMacro SkColorSetARGB
-$$$#
-##
-
-#Deprecated soon
-
-#Define ##
-
-# ------------------------------------------------------------------------------
-
#Define SkColorSetRGB
#Line # returns opaque Color ##
@@ -166,9 +116,9 @@ $$$#
Returns Color value from 8-bit component values, with Alpha set
fully opaque to 255.
-#Param r amount of RGB_Red, from no red (0) to full red (255) ##
-#Param g amount of RGB_Green, from no green (0) to full green (255) ##
-#Param b amount of RGB_Blue, from no blue (0) to full blue (255) ##
+#Param r amount of red, from no red (0) to full red (255) ##
+#Param g amount of green, from no green (0) to full green (255) ##
+#Param b amount of blue, from no blue (0) to full blue (255) ##
#Return color with opaque alpha ##
@@ -180,7 +130,7 @@ fully opaque to 255.
canvas->drawColor(SkColorSetRGB(0x00, 0x00, 0xFF));
##
-#SeeAlso incomplete
+#SeeAlso SkColorSetARGB
#Define ##
@@ -200,17 +150,26 @@ Returns Alpha byte from Color value.
#Param color SkColor, a 32-bit unsigned int, in 0xAARRGGBB format ##
#Example
-// incomplete
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setColor(SK_ColorRED);
+ for (int alpha = 255; alpha >= 0; alpha -= 17) {
+ paint.setAlpha(alpha);
+ canvas->drawRect({5, 5, 100, 20}, paint);
+ SkAlpha alphaInPaint = SkColorGetA(paint.getColor());
+ canvas->drawString(std::to_string(alphaInPaint).c_str(), 110, 18, paint);
+ canvas->translate(0, 15);
+ }
##
-#SeeAlso incomplete
+#SeeAlso SkPaint::getAlpha
#Define ##
# ------------------------------------------------------------------------------
#Define SkColorGetR
-#Line # incomplete ##
+#Line # returns red component ##
#Code
###$
@@ -224,17 +183,24 @@ Returns red component of Color, from zero to 255.
#Return red byte ##
#Example
-// incomplete
+#Image 3
+ canvas->drawBitmap(source, 0, 0);
+ SkPaint bgPaint;
+ bgPaint.setColor(0xafffffff);
+ canvas->drawRect({20, 50, 80, 70}, bgPaint);
+ uint8_t red = SkColorGetR(source.getColor(226, 128));
+ canvas->drawString(std::to_string(red).c_str(), 40, 65, SkPaint());
+ canvas->drawLine(80, 70, 226, 128, SkPaint());
##
-#SeeAlso incomplete
+#SeeAlso SkColorGetG SkColorGetB
#Define ##
# ------------------------------------------------------------------------------
#Define SkColorGetG
-#Line # incomplete ##
+#Line # returns green component ##
#Code
###$
@@ -248,17 +214,24 @@ Returns green component of Color, from zero to 255.
#Return green byte ##
#Example
-// incomplete
+#Image 3
+ canvas->drawBitmap(source, 0, 0);
+ SkPaint bgPaint;
+ bgPaint.setColor(0xafffffff);
+ canvas->drawRect({20, 50, 80, 70}, bgPaint);
+ uint8_t green = SkColorGetG(source.getColor(57, 192));
+ canvas->drawString(std::to_string(green).c_str(), 40, 65, SkPaint());
+ canvas->drawLine(80, 70, 57, 192, SkPaint());
##
-#SeeAlso incomplete
+#SeeAlso SkColorGetR SkColorGetB
#Define ##
# ------------------------------------------------------------------------------
#Define SkColorGetB
-#Line # incomplete ##
+#Line # returns blue component ##
#Code
###$
@@ -272,10 +245,17 @@ Returns blue component of Color, from zero to 255.
#Return blue byte ##
#Example
-// incomplete
+#Image 3
+ canvas->drawBitmap(source, 0, 0);
+ SkPaint bgPaint;
+ bgPaint.setColor(0xafffffff);
+ canvas->drawRect({20, 50, 80, 70}, bgPaint);
+ uint8_t blue = SkColorGetB(source.getColor(168, 170));
+ canvas->drawString(std::to_string(blue).c_str(), 40, 65, SkPaint());
+ canvas->drawLine(80, 70, 168, 170, SkPaint());
##
-#SeeAlso incomplete
+#SeeAlso SkColorGetR SkColorGetG
#Define ##
@@ -283,20 +263,30 @@ Returns blue component of Color, from zero to 255.
#Method static constexpr inline SkColor SkColorSetA(SkColor c, U8CPU a)
#In Function
-#Line # incomplete ##
+#Line # returns Color with transparency ##
-Returns Color with red, blue, and green set from c; and alpha set from a.
+Returns Unpremultiplied Color with red, blue, and green set from c; and alpha set
+from a. Alpha component of c is ignored and is replaced by a in result.
-#Param c Unpremultiplied Color_ARGB ##
-#Param a incomplete ##
+#Param c packed RGB, eight bits per component ##
+#Param a Alpha: transparent at zero, fully opaque at 255 ##
-#Return incomplete ##
+#Return Color with transparency ##
#Example
-// incomplete
+#Image 3
+ canvas->drawBitmap(source, 0, 0);
+ for (int y = 0; y < 256; y += 16) {
+ for (int x = 0; x < 256; x += 16) {
+ SkColor color = source.getColor(x + 8, y + 8);
+ SkPaint paint;
+ paint.setColor(SkColorSetA(color, x + y));
+ canvas->drawRect(SkRect::MakeXYWH(x, y, 16, 16), paint);
+ }
+ }
##
-#SeeAlso incomplete
+#SeeAlso SkColorSetARGB
#Method ##
@@ -535,6 +525,7 @@ $$$#
#Subtopic Transparent
#Example
+#Image 3
std::vector<uint32_t> srcPixels;
constexpr int width = 256;
constexpr int height = 256;
@@ -619,11 +610,11 @@ modulo 360, where zero degrees is red.
#Subtopic Value
##
-#Method SK_API void SkRGBToHSV(U8CPU red, U8CPU green, U8CPU blue, SkScalar hsv[3])
+#Method void SkRGBToHSV(U8CPU red, U8CPU green, U8CPU blue, SkScalar hsv[3])
#In Function
-#Line # incomplete ##
+#Line # converts RGB to HSV ##
-Converts RGB components to HSV.
+Converts RGB to its HSV components.
hsv[0] contains Hue, a value from zero to less than 360.
hsv[1] contains Saturation, a value from zero to one.
hsv[2] contains Value, a value from zero to one.
@@ -634,19 +625,28 @@ hsv[2] contains Value, a value from zero to one.
#Param hsv three element array which holds the resulting HSV components
##
-#Return incomplete ##
-
#Example
-// incomplete
-##
-
-#SeeAlso incomplete
+#Image 3
+ canvas->drawBitmap(source, 0, 0);
+ SkPaint bgPaint;
+ bgPaint.setColor(0xafffffff);
+ canvas->drawRect({20, 30, 110, 90}, bgPaint);
+ SkScalar hsv[3];
+ SkColor c = source.getColor(226, 128);
+ SkRGBToHSV(SkColorGetR(c), SkColorGetG(c), SkColorGetB(c), hsv);
+ canvas->drawString(("h: " + std::to_string(hsv[0]).substr(0, 6)).c_str(), 27, 45, SkPaint());
+ canvas->drawString(("s: " + std::to_string(hsv[1]).substr(0, 6)).c_str(), 27, 65, SkPaint());
+ canvas->drawString(("v: " + std::to_string(hsv[2]).substr(0, 6)).c_str(), 27, 85, SkPaint());
+ canvas->drawLine(110, 90, 226, 128, SkPaint());
+##
+
+#SeeAlso SkColorToHSV SkHSVToColor
#Method ##
# ------------------------------------------------------------------------------
-#Method static inline void SkColorToHSV(SkColor color, SkScalar hsv[3])
+#Method void SkColorToHSV(SkColor color, SkScalar hsv[3])
#In Function
#Line # converts RGB to HSV ##
@@ -660,28 +660,37 @@ hsv[2] contains Value, a value from zero to one.
#Param hsv three element array which holds the resulting HSV components
##
-#Return incomplete ##
-
#Example
-// incomplete
-##
-
-#SeeAlso incomplete
+#Image 3
+ canvas->drawBitmap(source, 0, 0);
+ for (int y = 0; y < 256; ++y) {
+ for (int x = 0; x < 256; ++x) {
+ SkScalar hsv[3];
+ SkColorToHSV(source.getColor(x, y), hsv);
+ SkTSwap(hsv[1], hsv[2]);
+ SkPaint paint;
+ paint.setColor(SkHSVToColor(hsv));
+ canvas->drawRect(SkRect::MakeXYWH(x, y, 1, 1), paint);
+ }
+ }
+##
+
+#SeeAlso SkRGBToHSV SkHSVToColor
#Method ##
# ------------------------------------------------------------------------------
-#Method SK_API SkColor SkHSVToColor(U8CPU alpha, const SkScalar hsv[3])
+#Method SkColor SkHSVToColor(U8CPU alpha, const SkScalar hsv[3])
#In Function
#Line # converts HSV with Alpha to RGB ##
-Converts HSV components to an ARGB color. The alpha component is passed through unchanged.
+Converts HSV components to an ARGB color. Alpha is passed through unchanged.
hsv[0] represents Hue, an angle from zero to less than 360.
hsv[1] represents Saturation, and varies from zero to one.
hsv[2] represents Value, and varies from zero to one.
-If hsv values are out of range, they are pinned.
+Out of range hsv values are pinned.
#Param alpha Alpha component of the returned ARGB color
##
@@ -692,37 +701,61 @@ If hsv values are out of range, they are pinned.
##
#Example
-// incomplete
-##
-
-#SeeAlso incomplete
+#Image 3
+ canvas->drawBitmap(source, 0, 0);
+ for (int y = 0; y < 256; ++y) {
+ for (int x = 0; x < 256; ++x) {
+ SkColor color = source.getColor(x, y);
+ SkScalar hsv[3];
+ SkColorToHSV(color, hsv);
+ hsv[0] = hsv[0] + 90 >= 360 ? hsv[0] - 270 : hsv[0] + 90;
+ SkPaint paint;
+ paint.setColor(SkHSVToColor(x + y, hsv));
+ canvas->drawRect(SkRect::MakeXYWH(x, y, 1, 1), paint);
+ }
+ }
+##
+
+#SeeAlso SkColorToHSV SkRGBToHSV
#Method ##
# ------------------------------------------------------------------------------
-#Method static inline SkColor SkHSVToColor(const SkScalar hsv[3])
+#Method SkColor SkHSVToColor(const SkScalar hsv[3])
#In Function
-#Line # incomplete ##
+#Line # converts HSV to RGB ##
-Convert HSV components to an ARGB color. The alpha component set to 0xFF.
+Convert HSV components to an ARGB color. Alpha is set to 0xFF.
hsv[0] represents Hue, an angle from zero to less than 360.
hsv[1] represents Saturation, and varies from zero to one.
hsv[2] represents Value, and varies from zero to one.
-If hsv values are out of range, they are pinned.
+Out of range hsv values are pinned.
-#Param hsv 3 element array which holds the input HSV components.
+#Param hsv three element array which holds the input HSV components
##
-#Return the resulting ARGB color
+#Return RGB equivalent to HSV
##
#Example
-// incomplete
-##
-
-#SeeAlso incomplete
+#Image 3
+ canvas->drawBitmap(source, 0, 0);
+ for (int y = 0; y < 256; ++y) {
+ for (int x = 0; x < 256; ++x) {
+ SkColor color = source.getColor(x, y);
+ SkScalar hsv[3];
+ SkColorToHSV(color, hsv);
+ hsv[0] = hsv[0] + 90 >= 360 ? hsv[0] - 270 : hsv[0] + 90;
+ SkPaint paint;
+ paint.setColor(SkHSVToColor(hsv));
+ canvas->drawRect(SkRect::MakeXYWH(x, y, 1, 1), paint);
+ }
+ }
+##
+
+#SeeAlso SkColorToHSV SkRGBToHSV
#Method ##
@@ -735,6 +768,10 @@ If hsv values are out of range, they are pinned.
#Typedef uint32_t SkPMColor
#Line # defines Premultiplied Color as 32 bits ##
+#Code
+typedef uint32_t SkPMColor;
+##
+
32-bit ARGB color value, Premultiplied. The byte order for this value is
configuration dependent, matching the format of kBGRA_8888_SkColorType bitmaps.
This is different from SkColor, which is Unpremultiplied, and is always in the
@@ -744,45 +781,70 @@ same byte order.
# ------------------------------------------------------------------------------
-#Method SK_API SkPMColor SkPreMultiplyARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b)
+#Method SkPMColor SkPreMultiplyARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b)
#In Function
#Line # converts Unpremultiplied ARGB to Premultiplied PMColor ##
-Return a SkPMColor value from Unpremultiplied 8-bit component values
+Returns a SkPMColor value from Unpremultiplied 8-bit component values.
-#Param a incomplete ##
-#Param r incomplete ##
-#Param g incomplete ##
-#Param b incomplete ##
+#Param a amount of Alpha, from fully transparent (0) to fully opaque (255) ##
+#Param r amount of red, from no red (0) to full red (255) ##
+#Param g amount of green, from no green (0) to full green (255) ##
+#Param b amount of blue, from no blue (0) to full blue (255) ##
-#Return incomplete ##
+#Return Premultiplied Color ##
#Example
-// incomplete
+#Height 128
+#Width 300
+ SkPMColor premultiplied = SkPreMultiplyARGB(160, 128, 160, 192);
+ canvas->drawString("Unpremultiplied:", 20, 20, SkPaint());
+ canvas->drawString("alpha=160 red=128 green=160 blue=192", 20, 40, SkPaint());
+ canvas->drawString("Premultiplied:", 20, 80, SkPaint());
+ std::string str = "alpha=" + std::to_string(SkColorGetA(premultiplied));
+ str += " red=" + std::to_string(SkColorGetR(premultiplied));
+ str += " green=" + std::to_string(SkColorGetG(premultiplied));
+ str += " blue=" + std::to_string(SkColorGetB(premultiplied));
+ canvas->drawString(str.c_str(), 20, 100, SkPaint());
##
-#SeeAlso incomplete
+#SeeAlso SkPreMultiplyColor
#Method ##
# ------------------------------------------------------------------------------
-#Method SK_API SkPMColor SkPreMultiplyColor(SkColor c)
+#Method SkPMColor SkPreMultiplyColor(SkColor c)
#In Function
#Line # converts Unpremultiplied Color to Premultiplied PMColor ##
Returns PMColor closest to Color c. Multiplies c RGB components by the c Alpha,
and arranges the bytes to match the format of kN32_SkColorType.
-#Param c incomplete ##
+#Param c Unpremultiplied ARGB Color ##
-#Return incomplete ##
+#Return Premultiplied Color ##
#Example
-// incomplete
-##
-
-#SeeAlso incomplete
+#Height 128
+#Width 300
+ SkColor unpremultiplied = SkColorSetARGB(160, 128, 160, 192);
+ SkPMColor premultiplied = SkPreMultiplyColor(unpremultiplied);
+ canvas->drawString("Unpremultiplied:", 20, 20, SkPaint());
+ std::string str = "alpha=" + std::to_string(SkColorGetA(unpremultiplied));
+ str += " red=" + std::to_string(SkColorGetR(unpremultiplied));
+ str += " green=" + std::to_string(SkColorGetG(unpremultiplied));
+ str += " blue=" + std::to_string(SkColorGetB(unpremultiplied));
+ canvas->drawString(str.c_str(), 20, 40, SkPaint());
+ canvas->drawString("Premultiplied:", 20, 80, SkPaint());
+ str = "alpha=" + std::to_string(SkColorGetA(premultiplied));
+ str += " red=" + std::to_string(SkColorGetR(premultiplied));
+ str += " green=" + std::to_string(SkColorGetG(premultiplied));
+ str += " blue=" + std::to_string(SkColorGetB(premultiplied));
+ canvas->drawString(str.c_str(), 20, 100, SkPaint());
+##
+
+#SeeAlso SkPreMultiplyARGB
#Method ##
diff --git a/docs/SkImageInfo_Reference.bmh b/docs/SkImageInfo_Reference.bmh
index 861dabbdee..c477d4f752 100644
--- a/docs/SkImageInfo_Reference.bmh
+++ b/docs/SkImageInfo_Reference.bmh
@@ -55,8 +55,8 @@ color to create a new color. If alpha describes a weight from zero to one:
In practice alpha is encoded in two or more bits, where 1.0 equals all bits set.
-Color_RGB may have Color_Alpha included in each component value; the stored
-value is the original Color_RGB multiplied by Color_Alpha. Premultiplied color
+RGB may have Color_Alpha included in each component value; the stored
+value is the original RGB multiplied by Color_Alpha. Premultiplied color
components improve performance.
#Const kUnknown_SkAlphaType 0
@@ -265,10 +265,10 @@ $$$#
#Code ##
Describes how pixel bits encode color. A pixel may be an alpha mask, a
-gray level, Color_RGB, or Color_ARGB.
+grayscale, RGB, or ARGB.
-kN32_SkColorType selects the native 32-bit Color_ARGB format. On Little_Endian
-processors, pixels containing 8-bit Color_ARGB components pack into 32-bit
+kN32_SkColorType selects the native 32-bit ARGB format. On Little_Endian
+processors, pixels containing 8-bit ARGB components pack into 32-bit
kBGRA_8888_SkColorType. On Big_Endian processors, pixels pack into 32-bit
kRGBA_8888_SkColorType.
@@ -335,7 +335,7 @@ kRGBA_8888_SkColorType.
##
#Const kGray_8_SkColorType 9
-#Line # pixel with Color_Gray level in 8-bit byte ##
+#Line # pixel with grayscale level in 8-bit byte ##
#Details Gray_8
Stores 8-bit byte pixel encoding that equivalent to equal values for red,
blue, and green, representing colors from black to white.
@@ -357,8 +357,8 @@ kRGBA_8888_SkColorType.
#Const kN32_SkColorType 4 or 6
#Alias Native_Color_Type
#NoJustify
-#Line # native Color_ARGB 32-bit encoding ##
- Encodes Color_ARGB as either kRGBA_8888_SkColorType or
+#Line # native ARGB 32-bit encoding ##
+ Encodes ARGB as either kRGBA_8888_SkColorType or
kBGRA_8888_SkColorType, whichever is native to the platform.
##
@@ -398,12 +398,12 @@ kRGBA_8888_SkColorType.
canvas->drawBitmap(bitmap, 2, 2, &orangePaint);
}
##
- #SeeAlso incomplete
+ #SeeAlso Alpha Gray_8
##
#Subtopic RGB_565
-#Line # encodes Color_RGB in 16 bits ##
- kRGB_565_SkColorType encodes Color_RGB to fit in a 16-bit word. Red and Blue
+#Line # encodes RGB in 16 bits ##
+ kRGB_565_SkColorType encodes RGB to fit in a 16-bit word. Red and blue
components use five bits describing 32 levels. Green components, more sensitive
to the eye, use six bits describing 64 levels. kRGB_565_SkColorType has no
bits for Alpha.
@@ -438,12 +438,12 @@ kRGBA_8888_SkColorType.
canvas->drawBitmap(bitmap, 4, 4);
}
##
- #SeeAlso incomplete
+ #SeeAlso ARGB_4444 RGBA_8888
##
#Subtopic ARGB_4444
-#Line # encodes Color_ARGB in 16 bits ##
- kARGB_4444_SkColorType encodes Color_ARGB to fit in 16-bit word. Each
+#Line # encodes ARGB in 16 bits ##
+ kARGB_4444_SkColorType encodes ARGB to fit in 16-bit word. Each
component: alpha, blue, green, and red; use four bits, describing 16 levels.
Note that kARGB_4444_SkColorType is misnamed; the acronym does not
describe the actual component order.
@@ -489,12 +489,12 @@ kRGBA_8888_SkColorType.
canvas->drawBitmap(bitmap, 4, 4);
}
##
- #SeeAlso incomplete
+ #SeeAlso RGBA_8888
##
#Subtopic RGBA_8888
-#Line # encodes Color_ARGB Big_Endian in 32 bits ##
- kRGBA_8888_SkColorType encodes Color_ARGB into a 32-bit word. Each component:
+#Line # encodes ARGB Big_Endian in 32 bits ##
+ kRGBA_8888_SkColorType encodes ARGB into a 32-bit word. Each component:
red, green, blue, alpha; use eight bits, describing 256 levels.
#Illustration
@@ -540,12 +540,12 @@ kRGBA_8888_SkColorType.
canvas->drawBitmap(bitmap, 4, 4);
}
##
- #SeeAlso incomplete
+ #SeeAlso RGB_888 BGRA_8888
##
#Subtopic RGB_888
-#Line # encodes Color_RGB in 32 bits ##
- kRGB_888x_SkColorType encodes Color_RGB into a 32-bit word. Each component:
+#Line # encodes RGB in 32 bits ##
+ kRGB_888x_SkColorType encodes RGB into a 32-bit word. Each component:
red, green, blue; use eight bits, describing 256 levels. Eight bits are
unused. Pixels described by kRGB_888x_SkColorType are fully opaque as if
their Color_Alpha was set to one, and should always be paired with
@@ -578,11 +578,12 @@ kRGBA_8888_SkColorType.
canvas->drawBitmap(bitmap, 4, 4);
}
##
+ #SeeAlso RGBA_8888 BGRA_8888
##
#Subtopic BGRA_8888
-#Line # encodes Color_ARGB Little_Endian in 32 bits ##
- kBGRA_8888_SkColorType encodes Color_ARGB into a 32-bit word. Each component:
+#Line # encodes ARGB Little_Endian in 32 bits ##
+ kBGRA_8888_SkColorType encodes ARGB into a 32-bit word. Each component:
blue, green, red, and alpha; use eight bits, describing 256 levels.
#Illustration
@@ -632,8 +633,8 @@ kRGBA_8888_SkColorType.
##
#Subtopic RGBA_1010102
-#Line # encodes Color_ARGB ten bits per color component ##
- kRGBA_1010102_SkColorType encodes Color_ARGB into a 32-bit word. Each
+#Line # encodes ARGB ten bits per color component ##
+ kRGBA_1010102_SkColorType encodes ARGB into a 32-bit word. Each
Color component: red, green, and blue; use ten bits, describing 1024 levels.
Two bits contain alpha, describing four levels. Possible alpha
values are zero: fully transparent; one: 33% opaque; two: 67% opaque;
@@ -686,12 +687,12 @@ kRGBA_8888_SkColorType.
canvas->drawBitmap(bitmap, 4, 4);
}
##
- #SeeAlso incomplete
+ #SeeAlso RGB_101010 RGBA_8888
##
#Subtopic RGB_101010
-#Line # encodes Color_RGB ten bits per color component ##
- kRGB_101010x_SkColorType encodes Color_RGB into a 32-bit word. Each
+#Line # encodes RGB ten bits per color component ##
+ kRGB_101010x_SkColorType encodes RGB into a 32-bit word. Each
Color component: red, green, and blue; use ten bits, describing 1024 levels.
Two bits are unused. Pixels described by kRGB_101010x_SkColorType are fully
opaque as if its Color_Alpha was set to one, and should always be paired
@@ -728,12 +729,12 @@ kRGBA_8888_SkColorType.
canvas->drawBitmap(bitmap, 4, 4);
}
##
- #SeeAlso incomplete
+ #SeeAlso RGBA_1010102
##
#Subtopic Gray_8
-#Line # encodes level of Color_Gray in 8 bits ##
- kGray_8_SkColorType encodes Color_Gray level in eight bits that is equivalent
+#Line # encodes level of grayscale in 8 bits ##
+ kGray_8_SkColorType encodes grayscale level in eight bits that is equivalent
to equal values for red, blue, and green, representing colors from black to
white. Pixels described by kGray_8_SkColorType are fully
opaque as if its Color_Alpha was set to one, and should always be paired with
@@ -754,12 +755,12 @@ kRGBA_8888_SkColorType.
canvas->drawBitmap(bitmap, 2, 2);
}
##
- #SeeAlso incomplete
+ #SeeAlso Alpha_8
##
#Subtopic RGBA_F16
-#Line # encodes Color_ARGB as half floats ##
- kRGBA_F16_SkColorType encodes Color_ARGB into a 64-bit word. Each component:
+#Line # encodes ARGB as half floats ##
+ kRGBA_F16_SkColorType encodes ARGB into a 64-bit word. Each component:
blue, green, red, and alpha; use 16 bits, describing a floating point value.
from -65500 to 65000 with 3.31 decimal digits of precision.
@@ -841,7 +842,7 @@ kRGBA_8888_SkColorType.
}
}
##
- #SeeAlso incomplete
+ #SeeAlso SkColor4f
##
#Subtopic Color_Type ##
@@ -2155,7 +2156,7 @@ info1 == info2
#Line # compares Image_Info for inequality ##
Compares Image_Info with other, and returns true if width, height, Color_Type,
-Alpha_Type, and Color_Space are equivalent.
+Alpha_Type, and Color_Space are not equivalent.
#Param other Image_Info to compare ##
diff --git a/docs/SkImage_Reference.bmh b/docs/SkImage_Reference.bmh
index 571dc49996..4f2549b03a 100644
--- a/docs/SkImage_Reference.bmh
+++ b/docs/SkImage_Reference.bmh
@@ -144,6 +144,11 @@ pixels is not nullptr, and contains enough data for Image.
#Typedef void* ReleaseContext
#Line # parameter type for MakeFromRaster ##
+
+#Code
+typedef void* ReleaseContext;
+##
+
Caller data passed to RasterReleaseProc; may be nullptr.
#SeeAlso MakeFromRaster RasterReleaseProc
@@ -152,6 +157,11 @@ Caller data passed to RasterReleaseProc; may be nullptr.
#Typedef void (*RasterReleaseProc)(const void* pixels, ReleaseContext)
#Line # parameter type for MakeFromRaster ##
+
+#Code
+typedef void (*RasterReleaseProc)(const void* pixels, ReleaseContext);
+##
+
Function called when Image no longer shares pixels. ReleaseContext is
provided by caller when Image is created, and may be nullptr.
@@ -340,6 +350,11 @@ for (int quality : { 100, 50, 10, 1} ) {
#Typedef void (*TextureReleaseProc)(ReleaseContext releaseContext)
#Line # parameter type for MakeFromTexture ##
+
+#Code
+typedef void (*TextureReleaseProc)(ReleaseContext releaseContext);
+##
+
User function called when supplied texture may be deleted.
#SeeAlso MakeFromTexture
##
@@ -696,11 +711,11 @@ should this be moved to chrome only?
#Const kU8 0
#Line # uses 8-bit unsigned int per Color component ##
-Use 8 bits per Color_ARGB component using unsigned integer format.
+Use 8 bits per ARGB component using unsigned integer format.
##
#Const kF16 1
#Line # uses 16-bit float per Color component ##
-Use 16 bits per Color_ARGB component using half-precision floating point format.
+Use 16 bits per ARGB component using half-precision floating point format.
##
#NoExample
@@ -940,8 +955,7 @@ or was parsed from encoded data.
const char* alphaTypeStr[] = { "Unknown", "Opaque", "Premul", "Unpremul" };
SkAlphaType alphaType = image->alphaType();
canvas->drawImage(image, 16, 0);
- SkPaint paint;
- canvas->drawString(alphaTypeStr[(int) alphaType], 20, image->height() + 20, paint);
+ canvas->drawString(alphaTypeStr[(int) alphaType], 20, image->height() + 20, SkPaint());
##
#SeeAlso SkImageInfo::alphaType
@@ -959,7 +973,13 @@ Returns Color_Type if known; otherwise, returns kUnknown_SkColorType.
#Return Color_Type of Image ##
#Example
-// incomplete
+#Image 4
+#Height 96
+ const char* colors[] = { "Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
+ "BGRA_8888", "RGBA_1010102", "RGB_101010x", "Gray_8", "RGBA_F16" };
+ SkColorType colorType = image->colorType();
+ canvas->drawImage(image, 16, 0);
+ canvas->drawString(colors[(int) colorType], 20, image->height() + 20, SkPaint());
##
#SeeAlso SkImageInfo::colorType
@@ -1994,6 +2014,11 @@ By translating canvas by returned offset, Image appears stationary.
#Typedef std::function<void(GrBackendTexture)> BackendTextureReleaseProc
#Line # parameter type for MakeBackendTextureFromSkImage ##
+
+#Code
+typedef std::function<void(GrBackendTexture)> BackendTextureReleaseProc;
+##
+
Defines a function take one parameter of type
GrBackendTexture with no return value.
##
diff --git a/docs/SkMatrix_Reference.bmh b/docs/SkMatrix_Reference.bmh
index 8cd86bcd3d..e76accdb40 100644
--- a/docs/SkMatrix_Reference.bmh
+++ b/docs/SkMatrix_Reference.bmh
@@ -3720,10 +3720,20 @@ Returns bounds of src corners mapped by Matrix.
#Return mapped bounds ##
#Example
-// incomplete
-##
-
-#SeeAlso incomplete
+ SkRect rect{110, 50, 180, 100};
+ SkMatrix matrix;
+ matrix.setRotate(50, 28, 28);
+ SkRect mapped = matrix.mapRect(rect);
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setStyle(SkPaint::kStroke_Style);
+ canvas->drawRect(rect, paint);
+ canvas->drawRect(mapped, paint);
+ canvas->concat(matrix);
+ canvas->drawRect(rect, paint);
+##
+
+#SeeAlso mapRectToQuad mapRectScaleTranslate
#Method ##
# ------------------------------------------------------------------------------
diff --git a/docs/SkPaint_Reference.bmh b/docs/SkPaint_Reference.bmh
index 6fdf2a0e89..057135414e 100644
--- a/docs/SkPaint_Reference.bmh
+++ b/docs/SkPaint_Reference.bmh
@@ -22,7 +22,7 @@ Paint does not directly implement dashing or blur, but contains the objects that
The objects contained by Paint are opaque, and cannot be edited outside of the Paint
to affect it. The implementation is free to defer computations associated with the
Paint, or ignore them altogether. For instance, some GPU implementations draw all
-Path geometries with Anti-aliasing, regardless of how SkPaint::kAntiAlias_Flag
+Path geometries with Anti_Aliasing, regardless of how SkPaint::kAntiAlias_Flag
is set in Paint.
Paint describes a single color, a single font, a single image quality, and so on.
@@ -71,7 +71,7 @@ Constructs Paint with default values.
#Legend
# attribute # default value ##
#Legend ##
-# Anti-alias # false ##
+# Anti_Alias # false ##
# Blend_Mode # SkBlendMode::kSrcOver ##
# Color # SK_ColorBLACK ##
# Color_Alpha # 255 ##
@@ -546,7 +546,7 @@ All flags can be read and written explicitly; Flags allows manipulating
multiple settings at once.
#Const kAntiAlias_Flag 0x0001
- #Line # mask for setting Anti-alias ##
+ #Line # mask for setting Anti_Alias ##
##
#Const kDither_Flag 0x0004
#Line # mask for setting Dither ##
@@ -648,14 +648,17 @@ All Flags members may be cleared, or one or more may be set.
#Subtopic Flags ##
# ------------------------------------------------------------------------------
-#Subtopic Anti-alias
-#Alias Anti-alias # permit hyphen in topic name, should probably not substitute hyphen with _
-#Alias Anti-aliased
-#Alias Anti-aliasing
+#Subtopic Anti_Alias
+#Alias Anti_Alias
+#Substitute Anti-alias
+#Alias Anti_Aliased
+#Substitute Anti-aliased
+#Alias Anti_Aliasing
+#Substitute Anti-aliasing
#In Related_Function
#Line # approximating coverage with transparency ##
-Anti-alias drawing approximates partial pixel coverage with transparency.
+Anti_Alias drawing approximates partial pixel coverage with transparency.
If kAntiAlias_Flag is clear, pixel centers contained by the shape edge are drawn opaque.
If kAntiAlias_Flag is set, pixels are drawn with Color_Alpha equal to their coverage.
@@ -667,14 +670,14 @@ active Path edge, and whose center is to the left of the end of the active Path
#ToDo add illustration of raster pixels ##
-A platform may only support Anti-aliased drawing. Some GPU-backed platforms use
-Supersampling to Anti-alias all drawing, and have no mechanism to selectively
+A platform may only support Anti_Aliased drawing. Some GPU-backed platforms use
+Supersampling to Anti_Alias all drawing, and have no mechanism to selectively
Alias.
-The amount of coverage computed for Anti-aliased pixels also varies across platforms.
+The amount of coverage computed for Anti_Aliased pixels also varies across platforms.
-Anti-alias is disabled by default.
-Anti-alias can be enabled by default by setting SkPaintDefaults_Flags to kAntiAlias_Flag
+Anti_Alias is disabled by default.
+Anti_Alias can be enabled by default by setting SkPaintDefaults_Flags to kAntiAlias_Flag
at compile time.
#Example
@@ -710,7 +713,7 @@ at compile time.
#Method bool isAntiAlias() const
#In Anti_alias
-#Line # returns true if Anti-alias is set ##
+#Line # returns true if Anti_Alias is set ##
If true, pixels on the active edges of Path may be drawn with partial transparency.
@@ -736,7 +739,7 @@ at compile time.
#Method void setAntiAlias(bool aa)
#In Anti_alias
-#Line # sets or clears Anti-alias ##
+#Line # sets or clears Anti_Alias ##
Requests, but does not require, that Path edge pixels draw opaque or with
partial transparency.
@@ -758,7 +761,7 @@ at compile time.
##
-#Subtopic Anti-alias ##
+#Subtopic Anti_Alias ##
# ------------------------------------------------------------------------------
#Subtopic Dither
#Line # distributing color error ##
@@ -892,7 +895,7 @@ void draw(SkCanvas* canvas) {
##
-#SeeAlso Gradient Color_RGB-565
+#SeeAlso Gradient kRGB_565_SkColorType
#Subtopic Dither ##
# ------------------------------------------------------------------------------
@@ -901,11 +904,11 @@ void draw(SkCanvas* canvas) {
LCD_Text and Subpixel_Text increase the precision of glyph position.
-When set, Flags kLCDRenderText_Flag takes advantage of the organization of Color_RGB stripes that
+When set, Flags kLCDRenderText_Flag takes advantage of the organization of RGB stripes that
create a color, and relies
on the small size of the stripe and visual perception to make the color fringing imperceptible.
LCD_Text can be enabled on devices that orient stripes horizontally or vertically, and that order
-the color components as Color_RGB or Color_RBG.
+the color components as RGB or BGR.
Flags kSubpixelText_Flag uses the pixel transparency to represent a fractional offset.
As the opaqueness
@@ -1083,14 +1086,14 @@ SkDebugf("paint.isSubpixelText() %c= !!(paint.getFlags() & SkPaint::kSubpixelTex
#Subtopic LCD_Text
#Substitute LCD text
-#Line # text relying on the order of Color_RGB stripes ##
+#Line # text relying on the order of RGB stripes ##
#Alias LCD_Text # makes this a top level name, since it is under subtopic Device_Text
-When set, Flags kLCDRenderText_Flag takes advantage of the organization of Color_RGB stripes that
+When set, Flags kLCDRenderText_Flag takes advantage of the organization of RGB stripes that
create a color, and relies
on the small size of the stripe and visual perception to make the color fringing imperceptible.
LCD_Text can be enabled on devices that orient stripes horizontally or vertically, and that order
-the color components as Color_RGB or Color_RBG.
+the color components as RGB or BGR.
#Method bool isLCDRenderText() const
@@ -1628,25 +1631,25 @@ Does not check to see if quality is valid.
#Legend
# name # description ##
#Legend ##
-# getColor # returns Color_Alpha and Color_RGB, one drawing color ##
-# setColor # sets Color_Alpha and Color_RGB, one drawing color ##
+# getColor # returns Color_Alpha and RGB, one drawing color ##
+# setColor # sets Color_Alpha and RGB, one drawing color ##
#Table ##
-Color specifies the Color_RGB_Red, Color_RGB_Blue, Color_RGB_Green, and Color_Alpha
+Color specifies the red, blue, green, and Color_Alpha
values used to draw a filled or stroked shape in a 32-bit value. Each component
occupies 8-bits, ranging from zero: no contribution; to 255: full intensity.
All values in any combination are valid.
Color is not Premultiplied; Color_Alpha sets the transparency independent of
-Color_RGB: Color_RGB_Red, Color_RGB_Blue, and Color_RGB_Green.
+RGB: red, blue, and green.
-The bit positions of Color_Alpha and Color_RGB are independent of the bit
+The bit positions of Color_Alpha and RGB are independent of the bit
positions on the output device, which may have more or fewer bits, and may have
a different arrangement.
#Table
#Legend
-# bit positions # Color_Alpha # Color_RGB_Red # Color_RGB_Blue # Color_RGB_Green ##
+# bit positions # Color_Alpha # red # blue # green ##
#Legend ##
# # 31 - 24 # 23 - 16 # 15 - 8 # 7 - 0 ##
#Table ##
@@ -1668,12 +1671,12 @@ a different arrangement.
#Method SkColor getColor() const
#In Color_Methods
-#Line # returns Color_Alpha and Color_RGB, one drawing color ##
- Retrieves Alpha and Color_RGB, Unpremultiplied, packed into 32 bits.
+#Line # returns Color_Alpha and RGB, one drawing color ##
+ Retrieves Alpha and RGB, Unpremultiplied, packed into 32 bits.
Use helpers SkColorGetA, SkColorGetR, SkColorGetG, and SkColorGetB to extract
a color component.
- #Return Unpremultiplied Color_ARGB ##
+ #Return Unpremultiplied ARGB ##
#Example
SkPaint paint;
@@ -1694,11 +1697,11 @@ a different arrangement.
#Method void setColor(SkColor color)
#In Color_Methods
-#Line # sets Color_Alpha and Color_RGB, one drawing color ##
- Sets Alpha and Color_RGB used when stroking and filling. The color is a 32-bit value,
- Unpremultiplied, packing 8-bit components for Alpha, Red, Blue, and Green.
+#Line # sets Color_Alpha and RGB, one drawing color ##
+ Sets Alpha and RGB used when stroking and filling. The color is a 32-bit value,
+ Unpremultiplied, packing 8-bit components for Alpha, red, blue, and green.
- #Param color Unpremultiplied Color_ARGB ##
+ #Param color Unpremultiplied ARGB ##
#Example
SkPaint green1, green2;
@@ -1723,7 +1726,7 @@ a different arrangement.
#Subtopic Alpha_Methods
#Line # get and set Alpha ##
-Color_Alpha sets the transparency independent of Color_RGB: Color_RGB_Red, Color_RGB_Blue, and Color_RGB_Green.
+Color_Alpha sets the transparency independent of RGB: red, blue, and green.
#Method uint8_t getAlpha() const
@@ -1748,7 +1751,7 @@ Color_Alpha sets the transparency independent of Color_RGB: Color_RGB_Red, Color
#In Alpha_Methods
#Line # sets Color_Alpha, color opacity ##
- Replaces Alpha, leaving Color_RGB
+ Replaces Alpha, leaving RGB
unchanged. An out of range value triggers an assert in the debug
build. a is a value from zero to 255.
a set to zero makes Color fully transparent; a set to 255 makes Color
@@ -1776,12 +1779,12 @@ Color_Alpha sets the transparency independent of Color_RGB: Color_RGB_Red, Color
#In Color_Methods
#Line # sets color by component ##
Sets Color used when drawing solid fills. The color components range from 0 to 255.
- The color is Unpremultiplied; Alpha sets the transparency independent of Color_RGB.
+ The color is Unpremultiplied; Alpha sets the transparency independent of RGB.
#Param a amount of Color_Alpha, from fully transparent (0) to fully opaque (255) ##
- #Param r amount of Color_RGB_Red, from no red (0) to full red (255) ##
- #Param g amount of Color_RGB_Green, from no green (0) to full green (255) ##
- #Param b amount of Color_RGB_Blue, from no blue (0) to full blue (255) ##
+ #Param r amount of red, from no red (0) to full red (255) ##
+ #Param g amount of green, from no green (0) to full green (255) ##
+ #Param b amount of blue, from no blue (0) to full blue (255) ##
#Example
SkPaint transRed1, transRed2;
@@ -1837,7 +1840,7 @@ Stroke_Width of zero has a special meaning and switches drawing to use Hairline.
Hairline draws the thinnest continuous frame. If kAntiAlias_Flag is clear, adjacent pixels
flow horizontally, vertically,or diagonally.
-#ToDo what is the description of Anti-aliased hairlines? ##
+#ToDo what is the description of Anti_Aliased hairlines? ##
Path drawing with Hairline may hit the same pixel more than once. For instance, Path containing
two lines in one Path_Contour will draw the corner point once, but may both lines may draw the adjacent
diff --git a/docs/SkRect_Reference.bmh b/docs/SkRect_Reference.bmh
index 2adfecf5bc..12f5a6208d 100644
--- a/docs/SkRect_Reference.bmh
+++ b/docs/SkRect_Reference.bmh
@@ -904,14 +904,25 @@ added: nan, 8 count: 4 rect: 0, 0, 0, 0 success: false
#Method void setBoundsNoCheck(const SkPoint pts[], int count)
#In Set
#Line # sets to upper and lower limits of Point array ##
-Sets to bounds of Point array with count entries. If any point contains a non-finite value
-then the rect will also be non-finite.
+Sets to bounds of Point pts array with count entries. If any Point in pts
+contains Infinity or NaN, all Rect dimensions are set to NaN.
#Param pts Point array ##
#Param count entries in array ##
#Example
-// incomplete
+ SkPoint points[] = {{3, 4}, {1, 2}, {SkScalar_Inf, 6}, {SK_ScalarNaN, 8}};
+ for (int count = 0; count <= (int) SK_ARRAY_COUNT(points); ++count) {
+ SkRect rect;
+ rect.setBoundsNoCheck(points, count);
+ if (count > 0) {
+ SkDebugf("added: %3g, %g ", points[count - 1].fX, points[count - 1].fY);
+ } else {
+ SkDebugf("%14s", " ");
+ }
+ SkDebugf("count: %d rect: %g, %g, %g, %g\n", count,
+ rect.fLeft, rect.fTop, rect.fRight, rect.fBottom);
+ }
##
#SeeAlso setBoundsCheck
diff --git a/docs/SkSurface_Reference.bmh b/docs/SkSurface_Reference.bmh
index 01df8b80d6..30a3d8fd60 100644
--- a/docs/SkSurface_Reference.bmh
+++ b/docs/SkSurface_Reference.bmh
@@ -1438,7 +1438,20 @@ converting to Surface colorType() and Surface alphaType() if required.
#Param dstY x position relative to Surface to begin copy; may be negative ##
#Example
- // incomplete
+#Image 4
+#Height 96
+ sk_sp<SkSurface> surf(SkSurface::MakeRasterN32Premul(64, 64));
+ auto surfCanvas = surf->getCanvas();
+ surfCanvas->clear(SK_ColorRED);
+ SkPaint paint;
+ paint.setTextSize(40);
+ surfCanvas->drawString("&", 16, 40, paint);
+ SkPixmap pixmap;
+ if (surf->peekPixels(&pixmap)) {
+ surf->writePixels(pixmap, 25, 25);
+ sk_sp<SkImage> image(surf->makeImageSnapshot());
+ canvas->drawImage(image, 0, 0);
+ }
##
#SeeAlso readPixels peekPixels
@@ -1465,7 +1478,14 @@ converting to Surface colorType() and Surface alphaType() if required.
#Param dstY x position relative to Surface to begin copy; may be negative ##
#Example
- // incomplete
+#Image 4
+#Height 96
+ sk_sp<SkSurface> surf(SkSurface::MakeRasterN32Premul(64, 64));
+ auto surfCanvas = surf->getCanvas();
+ surfCanvas->clear(SK_ColorGREEN);
+ surf->writePixels(source, 25, 25);
+ sk_sp<SkImage> image(surf->makeImageSnapshot());
+ canvas->drawImage(image, 0, 0);
##
#SeeAlso readPixels peekPixels
diff --git a/docs/undocumented.bmh b/docs/undocumented.bmh
index d0efc87680..be0c1b5c2c 100644
--- a/docs/undocumented.bmh
+++ b/docs/undocumented.bmh
@@ -3,7 +3,7 @@
DirectWrite TrueType Windows Linux Android iOS __ANDROID_API__ AHardwareBuffer
FreeType FreeType-based Harfbuzz
Descenders Kerning Unhinted
- LCD RGB sRGB YUV SDTV HDTV
+ LCD RGB sRGB ARGB BGR YUV SDTV HDTV
YUV_Component_Y YUV_Component_U YUV_Component_V
Unicode Unicode5 UTF-8 UTF-16 UTF-32 ASCII Unichar
API
diff --git a/site/user/api/SkBitmap_Reference.md b/site/user/api/SkBitmap_Reference.md
index 08898bce08..b55f8cc832 100644
--- a/site/user/api/SkBitmap_Reference.md
+++ b/site/user/api/SkBitmap_Reference.md
@@ -219,7 +219,7 @@ SkBitmap member functions read and modify the structure properties.
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkBitmap_allocN32Pixels'>allocN32Pixels</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>allocates compatible <a href='SkColor_Reference#ARGB'>Color ARGB</a> pixels, or aborts</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>allocates compatible ARGB pixels, or aborts</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkBitmap_allocPixels'>allocPixels</a></td>
@@ -439,7 +439,7 @@ SkBitmap member functions read and modify the structure properties.
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkBitmap_tryAllocN32Pixels'>tryAllocN32Pixels</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>allocates compatible <a href='SkColor_Reference#ARGB'>Color ARGB</a> pixels if possible</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>allocates compatible ARGB pixels if possible</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a></td>
@@ -2132,7 +2132,7 @@ Instructs <a href='#SkBitmap_tryAllocPixelsFlags'>tryAllocPixelsFlags</a> and <a
<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkBitmap_allocN32Pixels'>allocN32Pixels</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>allocates compatible <a href='SkColor_Reference#ARGB'>Color ARGB</a> pixels, or aborts</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>allocates compatible ARGB pixels, or aborts</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkBitmap_allocPixels'>allocPixels</a></td>
@@ -2176,7 +2176,7 @@ Instructs <a href='#SkBitmap_tryAllocPixelsFlags'>tryAllocPixelsFlags</a> and <a
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkBitmap_tryAllocN32Pixels'>tryAllocN32Pixels</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>allocates compatible <a href='SkColor_Reference#ARGB'>Color ARGB</a> pixels if possible</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>allocates compatible ARGB pixels if possible</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a></td>
@@ -3170,8 +3170,8 @@ void <a href='#SkBitmap_eraseColor'>eraseColor</a>(<a href='SkColor_Reference#Sk
Replaces pixel values with <a href='#SkBitmap_eraseColor_c'>c</a>. All pixels contained by <a href='#SkBitmap_bounds'>bounds</a> are affected.
If the <a href='#SkBitmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a> or k565_SkColorType, then <a href='SkColor_Reference#Alpha'>Color Alpha</a>
-is ignored; <a href='SkColor_Reference#RGB'>Color RGB</a> is treated as opaque. If <a href='#SkBitmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
-then <a href='SkColor_Reference#RGB'>Color RGB</a> is ignored.
+is ignored; RGB is treated as opaque. If <a href='#SkBitmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
+then RGB is ignored.
### Parameters
@@ -3209,13 +3209,13 @@ then <a href='#SkBitmap_eraseARGB_r'>r</a>, <a href='#SkBitmap_eraseARGB_g'>g</a
<td>amount of <a href='SkColor_Reference#Alpha'>Color Alpha</a>, from fully transparent (0) to fully opaque (255)</td>
</tr>
<tr> <td><a name='SkBitmap_eraseARGB_r'><code><strong>r</strong></code></a></td>
- <td>amount of <a href='SkColor_Reference#RGB_Red'>Color RGB Red</a>, from no red (0) to full red (255)</td>
+ <td>amount of red, from no red (0) to full red (255)</td>
</tr>
<tr> <td><a name='SkBitmap_eraseARGB_g'><code><strong>g</strong></code></a></td>
- <td>amount of <a href='SkColor_Reference#RGB_Green'>Color RGB Green</a>, from no green (0) to full green (255)</td>
+ <td>amount of green, from no green (0) to full green (255)</td>
</tr>
<tr> <td><a name='SkBitmap_eraseARGB_b'><code><strong>b</strong></code></a></td>
- <td>amount of <a href='SkColor_Reference#RGB_Blue'>Color RGB Blue</a>, from no blue (0) to full blue (255)</td>
+ <td>amount of blue, from no blue (0) to full blue (255)</td>
</tr>
</table>
@@ -3251,8 +3251,8 @@ Replaces pixel values inside <a href='#SkBitmap_erase_area'>area</a> with <a hre
call has no effect.
If the <a href='#SkBitmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a> or k565_SkColorType, then <a href='SkColor_Reference#Alpha'>Color Alpha</a>
-is ignored; <a href='SkColor_Reference#RGB'>Color RGB</a> is treated as opaque. If <a href='#SkBitmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
-then <a href='SkColor_Reference#RGB'>Color RGB</a> is ignored.
+is ignored; RGB is treated as opaque. If <a href='#SkBitmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
+then RGB is ignored.
### Parameters
diff --git a/site/user/api/SkCanvas_Reference.md b/site/user/api/SkCanvas_Reference.md
index 17f6e37c3c..297c37c9be 100644
--- a/site/user/api/SkCanvas_Reference.md
+++ b/site/user/api/SkCanvas_Reference.md
@@ -1543,7 +1543,7 @@ The copied quarter circles overdraw the original circle.
<div><fiddle-embed name="481e990e923a0ed34654f4361b94f096"><div><a href='#Canvas'>Canvas</a> returned by <a href='undocumented#Raster_Surface'>Raster Surface</a> has <a href='undocumented#Premultiply'>Premultiplied</a> pixel values.
<a href='#SkCanvas_clear'>clear</a> takes <a href='undocumented#Unpremultiply'>Unpremultiplied</a> input with <a href='SkColor_Reference#Alpha'>Color Alpha</a> equal 0x80
-and <a href='SkColor_Reference#RGB'>Color RGB</a> equal 0x55, 0xAA, 0xFF. <a href='SkColor_Reference#RGB'>Color RGB</a> is multiplied by <a href='SkColor_Reference#Alpha'>Color Alpha</a>
+and RGB equal 0x55, 0xAA, 0xFF. RGB is multiplied by <a href='SkColor_Reference#Alpha'>Color Alpha</a>
to generate <a href='undocumented#Premultiply'>Premultiplied</a> value 0x802B5580. <a href='#SkCanvas_readPixels'>readPixels</a> converts pixel back
to <a href='undocumented#Unpremultiply'>Unpremultiplied</a> value 0x8056A9FF, introducing error.
</div>
@@ -1625,7 +1625,7 @@ true if pixels were copied
### Example
<div><fiddle-embed name="85f199032943b6483722c34a91c4e20f"><div><a href='#SkCanvas_clear'>clear</a> takes <a href='undocumented#Unpremultiply'>Unpremultiplied</a> input with <a href='SkColor_Reference#Alpha'>Color Alpha</a> equal 0x80
-and <a href='SkColor_Reference#RGB'>Color RGB</a> equal 0x55, 0xAA, 0xFF. <a href='SkColor_Reference#RGB'>Color RGB</a> is multiplied by <a href='SkColor_Reference#Alpha'>Color Alpha</a>
+and RGB equal 0x55, 0xAA, 0xFF. RGB is multiplied by <a href='SkColor_Reference#Alpha'>Color Alpha</a>
to generate <a href='undocumented#Premultiply'>Premultiplied</a> value 0x802B5580.
</div>
@@ -1705,7 +1705,7 @@ true if pixels were copied
### Example
<div><fiddle-embed name="af6dec8ef974aa67bf102f29915bcd6a"><div><a href='#SkCanvas_clear'>clear</a> takes <a href='undocumented#Unpremultiply'>Unpremultiplied</a> input with <a href='SkColor_Reference#Alpha'>Color Alpha</a> equal 0x80
-and <a href='SkColor_Reference#RGB'>Color RGB</a> equal 0x55, 0xAA, 0xFF. <a href='SkColor_Reference#RGB'>Color RGB</a> is multiplied by <a href='SkColor_Reference#Alpha'>Color Alpha</a>
+and RGB equal 0x55, 0xAA, 0xFF. RGB is multiplied by <a href='SkColor_Reference#Alpha'>Color Alpha</a>
to generate <a href='undocumented#Premultiply'>Premultiplied</a> value 0x802B5580.
</div>
@@ -2275,7 +2275,7 @@ depth of saved stack
typedef uint32_t <a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a>;
</pre>
-# <a name='SkCanvas_SaveLayerFlags'>Typedef SkCanvas::SaveLayerFlags</a>
+## <a name='SkCanvas_SaveLayerFlags'>Typedef SkCanvas::SaveLayerFlags</a>
<a href='#SkCanvas_SaveLayerFlags'>SaveLayerFlags</a> provides options that may be used in any combination in <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>,
defining how <a href='#Layer'>Layer</a> allocated by <a href='#SkCanvas_saveLayer'>saveLayer</a> operates. It may be set to zero,
<a href='#SkCanvas_kPreserveLCDText_SaveLayerFlag'>kPreserveLCDText SaveLayerFlag</a>, <a href='#SkCanvas_kInitWithPrevious_SaveLayerFlag'>kInitWithPrevious SaveLayerFlag</a>, or both flags.
@@ -2433,7 +2433,7 @@ contents of the previous <a href='#Layer'>Layer</a>.
### Example
-<div><fiddle-embed name="ee8c0b120234e27364f8c9a786cf8f89"><div><a href='#Canvas'>Canvas</a> <a href='#Layer'>Layer</a> captures a red Anti-aliased circle and a blue <a href='undocumented#Alias'>Aliased</a> circle scaled
+<div><fiddle-embed name="ee8c0b120234e27364f8c9a786cf8f89"><div><a href='#Canvas'>Canvas</a> <a href='#Layer'>Layer</a> captures a red <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a> circle and a blue <a href='undocumented#Alias'>Aliased</a> circle scaled
up by four. After drawing another red circle without scaling on top, the <a href='#Layer'>Layer</a> is
transferred to the main canvas.
</div></fiddle-embed></div>
@@ -2846,9 +2846,9 @@ the result with <a href='#Matrix'>Matrix</a>.
<div><fiddle-embed name="2e2acc21d7774df7e0940a30ad2ca99e"><div>Black text mimics an oblique text style by using a negative skew in x that
shifts the geometry to the right as the y values decrease.
-<a href='SkColor_Reference#RGB_Red'>Red</a> text uses a positive skew in y to shift the geometry down as the x values
+Red text uses a positive skew in y to shift the geometry down as the x values
increase.
-<a href='SkColor_Reference#RGB_Blue'>Blue</a> text combines x and y skew to rotate and scale.
+Blue text combines x and y skew to rotate and scale.
</div></fiddle-embed></div>
### See Also
@@ -2979,14 +2979,14 @@ prior <a href='#Clip'>Clip</a> to form the replacement <a href='#Clip'>Clip</a>.
to subtract <a href='SkPath_Reference#Path'>Path</a> from <a href='#Clip'>Clip</a>; use <a href='undocumented#SkClipOp_kIntersect'>SkClipOp::kIntersect</a> to intersect <a href='SkPath_Reference#Path'>Path</a>
with <a href='#Clip'>Clip</a>.
-A clipping <a href='SkPath_Reference#Path'>Path</a> may be Anti-aliased; if <a href='SkPath_Reference#Path'>Path</a>, after transformation, is
-composed of horizontal and vertical lines, clearing Anti-alias allows whole pixels
+A clipping <a href='SkPath_Reference#Path'>Path</a> may be <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a>; if <a href='SkPath_Reference#Path'>Path</a>, after transformation, is
+composed of horizontal and vertical lines, clearing <a href='SkPaint_Reference#Anti_Alias'>Anti Alias</a> allows whole pixels
to either be inside or outside the clip. The fastest drawing has a <a href='undocumented#Alias'>Aliased</a>,
rectangular clip.
-If clipping <a href='SkPath_Reference#Path'>Path</a> has Anti-alias set, clip may partially clip a pixel, requiring
+If clipping <a href='SkPath_Reference#Path'>Path</a> has <a href='SkPaint_Reference#Anti_Alias'>Anti Alias</a> set, clip may partially clip a pixel, requiring
that drawing blend partially with the destination along the edge. A rotated
-rectangular Anti-aliased clip looks smoother but draws slower.
+rectangular <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a> clip looks smoother but draws slower.
<a href='#Clip'>Clip</a> can combine with <a href='SkRect_Reference#Rect'>Rect</a> and <a href='undocumented#Round_Rect'>Round Rect</a> primitives; like
<a href='SkPath_Reference#Path'>Path</a>, these are transformed by <a href='#Matrix'>Matrix</a> before they are combined with <a href='#Clip'>Clip</a>.
@@ -2996,10 +2996,10 @@ and is unaffected by <a href='#Matrix'>Matrix</a>.
### Example
-<div><fiddle-embed name="862cc026601a41a58df49c0b9f0d7777"><div><a href='#Draw'>Draw</a> a red circle with an <a href='undocumented#Alias'>Aliased</a> clip and an Anti-aliased clip.
+<div><fiddle-embed name="862cc026601a41a58df49c0b9f0d7777"><div><a href='#Draw'>Draw</a> a red circle with an <a href='undocumented#Alias'>Aliased</a> clip and an <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a> clip.
Use an image filter to zoom into the pixels drawn.
The edge of the <a href='undocumented#Alias'>Aliased</a> clip fully draws pixels in the red circle.
-The edge of the Anti-aliased clip partially draws pixels in the red circle.
+The edge of the <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a> clip partially draws pixels in the red circle.
</div></fiddle-embed></div>
<a name='SkCanvas_clipRect'></a>
@@ -3010,7 +3010,7 @@ void <a href='#SkCanvas_clipRect'>clipRect</a>(const <a href='SkRect_Reference#S
</pre>
Replace <a href='#Clip'>Clip</a> with the intersection or difference of <a href='#Clip'>Clip</a> and <a href='#SkCanvas_clipRect_rect'>rect</a>,
-with an <a href='undocumented#Alias'>Aliased</a> or Anti-aliased clip edge. <a href='#SkCanvas_clipRect_rect'>rect</a> is transformed by <a href='#Matrix'>Matrix</a>
+with an <a href='undocumented#Alias'>Aliased</a> or <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a> clip edge. <a href='#SkCanvas_clipRect_rect'>rect</a> is transformed by <a href='#Matrix'>Matrix</a>
before it is combined with <a href='#Clip'>Clip</a>.
### Parameters
@@ -3022,7 +3022,7 @@ before it is combined with <a href='#Clip'>Clip</a>.
<td><a href='undocumented#Clip_Op'>Clip Op</a> to apply to <a href='#Clip'>Clip</a></td>
</tr>
<tr> <td><a name='SkCanvas_clipRect_doAntiAlias'><code><strong>doAntiAlias</strong></code></a></td>
- <td>true if <a href='#Clip'>Clip</a> is to be Anti-aliased</td>
+ <td>true if <a href='#Clip'>Clip</a> is to be <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a></td>
</tr>
</table>
@@ -3083,14 +3083,14 @@ before it is combined with <a href='#Clip'>Clip</a>.
<td><a href='SkRect_Reference#Rect'>Rect</a> to combine with <a href='#Clip'>Clip</a></td>
</tr>
<tr> <td><a name='SkCanvas_clipRect_3_doAntiAlias'><code><strong>doAntiAlias</strong></code></a></td>
- <td>true if <a href='#Clip'>Clip</a> is to be Anti-aliased</td>
+ <td>true if <a href='#Clip'>Clip</a> is to be <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a></td>
</tr>
</table>
### Example
<div><fiddle-embed name="1d4e0632c97e42692775d834fe10aa99"><div>A circle drawn in pieces looks uniform when drawn <a href='undocumented#Alias'>Aliased</a>.
-The same circle pieces blend with pixels more than once when Anti-aliased,
+The same circle pieces blend with pixels more than once when <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a>,
visible as a thin pair of lines through the right circle.
</div></fiddle-embed></div>
@@ -3133,7 +3133,7 @@ void <a href='#SkCanvas_clipRRect'>clipRRect</a>(const <a href='undocumented#SkR
</pre>
Replace <a href='#Clip'>Clip</a> with the intersection or difference of <a href='#Clip'>Clip</a> and <a href='#SkCanvas_clipRRect_rrect'>rrect</a>,
-with an <a href='undocumented#Alias'>Aliased</a> or Anti-aliased clip edge.
+with an <a href='undocumented#Alias'>Aliased</a> or <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a> clip edge.
<a href='#SkCanvas_clipRRect_rrect'>rrect</a> is transformed by <a href='#Matrix'>Matrix</a>
before it is combined with <a href='#Clip'>Clip</a>.
@@ -3146,7 +3146,7 @@ before it is combined with <a href='#Clip'>Clip</a>.
<td><a href='undocumented#Clip_Op'>Clip Op</a> to apply to <a href='#Clip'>Clip</a></td>
</tr>
<tr> <td><a name='SkCanvas_clipRRect_doAntiAlias'><code><strong>doAntiAlias</strong></code></a></td>
- <td>true if <a href='#Clip'>Clip</a> is to be Anti-aliased</td>
+ <td>true if <a href='#Clip'>Clip</a> is to be <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a></td>
</tr>
</table>
@@ -3197,7 +3197,7 @@ void <a href='#SkCanvas_clipRRect'>clipRRect</a>(const <a href='undocumented#SkR
</pre>
Replace <a href='#Clip'>Clip</a> with the intersection of <a href='#Clip'>Clip</a> and <a href='#SkCanvas_clipRRect_3_rrect'>rrect</a>,
-with an <a href='undocumented#Alias'>Aliased</a> or Anti-aliased clip edge.
+with an <a href='undocumented#Alias'>Aliased</a> or <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a> clip edge.
<a href='#SkCanvas_clipRRect_3_rrect'>rrect</a> is transformed by <a href='#Matrix'>Matrix</a> before it is combined with <a href='#Clip'>Clip</a>.
### Parameters
@@ -3206,7 +3206,7 @@ with an <a href='undocumented#Alias'>Aliased</a> or Anti-aliased clip edge.
<td><a href='undocumented#Round_Rect'>Round Rect</a> to combine with <a href='#Clip'>Clip</a></td>
</tr>
<tr> <td><a name='SkCanvas_clipRRect_3_doAntiAlias'><code><strong>doAntiAlias</strong></code></a></td>
- <td>true if <a href='#Clip'>Clip</a> is to be Anti-aliased</td>
+ <td>true if <a href='#Clip'>Clip</a> is to be <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a></td>
</tr>
</table>
@@ -3228,7 +3228,7 @@ void <a href='#SkCanvas_clipPath'>clipPath</a>(const <a href='SkPath_Reference#S
</pre>
Replace <a href='#Clip'>Clip</a> with the intersection or difference of <a href='#Clip'>Clip</a> and <a href='#SkCanvas_clipPath_path'>path</a>,
-with an <a href='undocumented#Alias'>Aliased</a> or Anti-aliased clip edge. <a href='SkPath_Reference#Fill_Type'>Path Fill Type</a> determines if <a href='#SkCanvas_clipPath_path'>path</a>
+with an <a href='undocumented#Alias'>Aliased</a> or <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a> clip edge. <a href='SkPath_Reference#Fill_Type'>Path Fill Type</a> determines if <a href='#SkCanvas_clipPath_path'>path</a>
describes the area inside or outside its contours; and if <a href='SkPath_Reference#Contour'>Path Contour</a> overlaps
itself or another <a href='SkPath_Reference#Contour'>Path Contour</a>, whether the overlaps form part of the area.
<a href='#SkCanvas_clipPath_path'>path</a> is transformed by <a href='#Matrix'>Matrix</a> before it is combined with <a href='#Clip'>Clip</a>.
@@ -3242,7 +3242,7 @@ itself or another <a href='SkPath_Reference#Contour'>Path Contour</a>, whether t
<td><a href='undocumented#Clip_Op'>Clip Op</a> to apply to <a href='#Clip'>Clip</a></td>
</tr>
<tr> <td><a name='SkCanvas_clipPath_doAntiAlias'><code><strong>doAntiAlias</strong></code></a></td>
- <td>true if <a href='#Clip'>Clip</a> is to be Anti-aliased</td>
+ <td>true if <a href='#Clip'>Clip</a> is to be <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a></td>
</tr>
</table>
@@ -3317,7 +3317,7 @@ itself or another <a href='SkPath_Reference#Contour'>Path Contour</a>, whether t
<td><a href='SkPath_Reference#Path'>Path</a> to combine with <a href='#Clip'>Clip</a></td>
</tr>
<tr> <td><a name='SkCanvas_clipPath_3_doAntiAlias'><code><strong>doAntiAlias</strong></code></a></td>
- <td>true if <a href='#Clip'>Clip</a> is to be Anti-aliased</td>
+ <td>true if <a href='#Clip'>Clip</a> is to be <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a></td>
</tr>
</table>
@@ -3475,7 +3475,7 @@ Return bounds of <a href='#Clip'>Clip</a>, transformed by inverse of <a href='#M
return <a href='SkRect_Reference#SkRect_MakeEmpty'>SkRect::MakeEmpty</a>, where all <a href='SkRect_Reference#Rect'>Rect</a> sides equal zero.
<a href='SkRect_Reference#Rect'>Rect</a> returned is outset by one to account for partial pixel coverage if <a href='#Clip'>Clip</a>
-is Anti-aliased.
+is <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a>.
### Return Value
@@ -3514,7 +3514,7 @@ Return <a href='#SkCanvas_getLocalClipBounds_2_bounds'>bounds</a> of <a href='#C
return false, and set <a href='#SkCanvas_getLocalClipBounds_2_bounds'>bounds</a> to <a href='SkRect_Reference#SkRect_MakeEmpty'>SkRect::MakeEmpty</a>, where all <a href='SkRect_Reference#Rect'>Rect</a> sides equal zero.
<a href='#SkCanvas_getLocalClipBounds_2_bounds'>bounds</a> is outset by one to account for partial pixel coverage if <a href='#Clip'>Clip</a>
-is Anti-aliased.
+is <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a>.
### Parameters
@@ -3819,12 +3819,12 @@ void <a href='#SkCanvas_drawColor'>drawColor</a>(<a href='SkColor_Reference#SkCo
</pre>
Fill <a href='#Clip'>Clip</a> with <a href='SkColor_Reference#Color'>Color</a> <a href='#SkCanvas_drawColor_color'>color</a>.
-<a href='#SkCanvas_drawColor_mode'>mode</a> determines how <a href='SkColor_Reference#ARGB'>Color ARGB</a> is combined with destination.
+<a href='#SkCanvas_drawColor_mode'>mode</a> determines how ARGB is combined with destination.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawColor_color'><code><strong>color</strong></code></a></td>
- <td><a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor_Reference#ARGB'>Color ARGB</a></td>
+ <td><a href='undocumented#Unpremultiply'>Unpremultiplied</a> ARGB</td>
</tr>
<tr> <td><a name='SkCanvas_drawColor_mode'><code><strong>mode</strong></code></a></td>
<td><a href='undocumented#SkBlendMode'>SkBlendMode</a> used to combine source <a href='#SkCanvas_drawColor_color'>color</a> and destination</td>
@@ -3854,7 +3854,7 @@ This has the effect of replacing all pixels contained by <a href='#Clip'>Clip</a
### Parameters
<table> <tr> <td><a name='SkCanvas_clear_color'><code><strong>color</strong></code></a></td>
- <td><a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor_Reference#ARGB'>Color ARGB</a></td>
+ <td><a href='undocumented#Unpremultiply'>Unpremultiplied</a> ARGB</td>
</tr>
</table>
@@ -5906,7 +5906,7 @@ ending with a char value of zero</td>
### Example
-<div><fiddle-embed name="65cc4b15cd1a8d067eb1dbfd7e2c17dd"></fiddle-embed></div>
+<div><fiddle-embed name="85442cf8d0bce6b5a777853bc36a4dc4"></fiddle-embed></div>
### See Also
@@ -6242,7 +6242,7 @@ void <a href='#SkCanvas_drawTextBlob'>drawTextBlob</a>(const <a href='undocument
<a href='#SkCanvas_drawTextBlob_blob'>blob</a> contains <a href='undocumented#Glyph'>Glyphs</a>, their positions, and <a href='#SkCanvas_drawTextBlob_paint'>paint</a> attributes specific to text:
<a href='undocumented#Typeface'>Typeface</a>, <a href='SkPaint_Reference#Text_Size'>Paint Text Size</a>, <a href='SkPaint_Reference#Text_Scale_X'>Paint Text Scale X</a>, <a href='SkPaint_Reference#Text_Skew_X'>Paint Text Skew X</a>,
-<a href='SkPaint_Reference#Text_Align'>Paint Text Align</a>, <a href='SkPaint_Reference#Hinting'>Paint Hinting</a>, Anti-alias, <a href='SkPaint_Reference#Fake_Bold'>Paint Fake Bold</a>,
+<a href='SkPaint_Reference#Text_Align'>Paint Text Align</a>, <a href='SkPaint_Reference#Hinting'>Paint Hinting</a>, <a href='SkPaint_Reference#Anti_Alias'>Anti Alias</a>, <a href='SkPaint_Reference#Fake_Bold'>Paint Fake Bold</a>,
<a href='SkPaint_Reference#Font_Embedded_Bitmaps'>Font Embedded Bitmaps</a>, <a href='SkPaint_Reference#Full_Hinting_Spacing'>Full Hinting Spacing</a>, <a href='SkPaint_Reference#LCD_Text'>LCD Text</a>, <a href='SkPaint_Reference#Linear_Text'>Linear Text</a>,
<a href='SkPaint_Reference#Subpixel_Text'>Subpixel Text</a>, and <a href='SkPaint_Reference#Vertical_Text'>Paint Vertical Text</a>.
@@ -6287,7 +6287,7 @@ void <a href='#SkCanvas_drawTextBlob'>drawTextBlob</a>(const <a href='undocument
<a href='#SkCanvas_drawTextBlob_2_blob'>blob</a> contains <a href='undocumented#Glyph'>Glyphs</a>, their positions, and <a href='#SkCanvas_drawTextBlob_2_paint'>paint</a> attributes specific to text:
<a href='undocumented#Typeface'>Typeface</a>, <a href='SkPaint_Reference#Text_Size'>Paint Text Size</a>, <a href='SkPaint_Reference#Text_Scale_X'>Paint Text Scale X</a>, <a href='SkPaint_Reference#Text_Skew_X'>Paint Text Skew X</a>,
-<a href='SkPaint_Reference#Text_Align'>Paint Text Align</a>, <a href='SkPaint_Reference#Hinting'>Paint Hinting</a>, Anti-alias, <a href='SkPaint_Reference#Fake_Bold'>Paint Fake Bold</a>,
+<a href='SkPaint_Reference#Text_Align'>Paint Text Align</a>, <a href='SkPaint_Reference#Hinting'>Paint Hinting</a>, <a href='SkPaint_Reference#Anti_Alias'>Anti Alias</a>, <a href='SkPaint_Reference#Fake_Bold'>Paint Fake Bold</a>,
<a href='SkPaint_Reference#Font_Embedded_Bitmaps'>Font Embedded Bitmaps</a>, <a href='SkPaint_Reference#Full_Hinting_Spacing'>Full Hinting Spacing</a>, <a href='SkPaint_Reference#LCD_Text'>LCD Text</a>, <a href='SkPaint_Reference#Linear_Text'>Linear Text</a>,
<a href='SkPaint_Reference#Subpixel_Text'>Subpixel Text</a>, and <a href='SkPaint_Reference#Vertical_Text'>Paint Vertical Text</a>.
@@ -6644,7 +6644,7 @@ void <a href='#SkCanvas_drawAtlas'>drawAtlas</a>(const <a href='SkImage_Referenc
</pre>
<a href='#Draw'>Draw</a> a set of sprites from <a href='#SkCanvas_drawAtlas_atlas'>atlas</a>, using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawAtlas_paint'>paint</a>.
-<a href='#SkCanvas_drawAtlas_paint'>paint</a> uses Anti-alias, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='undocumented#Blend_Mode'>Blend Mode</a>
+<a href='#SkCanvas_drawAtlas_paint'>paint</a> uses <a href='SkPaint_Reference#Anti_Alias'>Anti Alias</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='undocumented#Blend_Mode'>Blend Mode</a>
to draw, if present. For each entry in the array, <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawAtlas_tex'>tex</a> locates sprite in
<a href='#SkCanvas_drawAtlas_atlas'>atlas</a>, and <a href='undocumented#RSXform'>RSXform</a> <a href='#SkCanvas_drawAtlas_xform'>xform</a> transforms it into destination space.
@@ -6700,7 +6700,7 @@ void <a href='#SkCanvas_drawAtlas'>drawAtlas</a>(const <a href='undocumented#sk_
</pre>
<a href='#Draw'>Draw</a> a set of sprites from <a href='#SkCanvas_drawAtlas_2_atlas'>atlas</a>, using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawAtlas_2_paint'>paint</a>.
-<a href='#SkCanvas_drawAtlas_2_paint'>paint</a> uses Anti-alias, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='undocumented#Blend_Mode'>Blend Mode</a>
+<a href='#SkCanvas_drawAtlas_2_paint'>paint</a> uses <a href='SkPaint_Reference#Anti_Alias'>Anti Alias</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='undocumented#Blend_Mode'>Blend Mode</a>
to draw, if present. For each entry in the array, <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawAtlas_2_tex'>tex</a> locates sprite in
<a href='#SkCanvas_drawAtlas_2_atlas'>atlas</a>, and <a href='undocumented#RSXform'>RSXform</a> <a href='#SkCanvas_drawAtlas_2_xform'>xform</a> transforms it into destination space.
@@ -6755,7 +6755,7 @@ void <a href='#SkCanvas_drawAtlas'>drawAtlas</a>(const <a href='SkImage_Referenc
</pre>
<a href='#Draw'>Draw</a> a set of sprites from <a href='#SkCanvas_drawAtlas_3_atlas'>atlas</a>, using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawAtlas_3_paint'>paint</a>.
-<a href='#SkCanvas_drawAtlas_3_paint'>paint</a> uses Anti-alias, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='undocumented#Blend_Mode'>Blend Mode</a>
+<a href='#SkCanvas_drawAtlas_3_paint'>paint</a> uses <a href='SkPaint_Reference#Anti_Alias'>Anti Alias</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='undocumented#Blend_Mode'>Blend Mode</a>
to draw, if present. For each entry in the array, <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawAtlas_3_tex'>tex</a> locates sprite in
<a href='#SkCanvas_drawAtlas_3_atlas'>atlas</a>, and <a href='undocumented#RSXform'>RSXform</a> <a href='#SkCanvas_drawAtlas_3_xform'>xform</a> transforms it into destination space.
@@ -6803,7 +6803,7 @@ void <a href='#SkCanvas_drawAtlas'>drawAtlas</a>(const <a href='undocumented#sk_
</pre>
<a href='#Draw'>Draw</a> a set of sprites from <a href='#SkCanvas_drawAtlas_4_atlas'>atlas</a>, using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawAtlas_4_paint'>paint</a>.
-<a href='#SkCanvas_drawAtlas_4_paint'>paint</a> uses Anti-alias, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='undocumented#Blend_Mode'>Blend Mode</a>
+<a href='#SkCanvas_drawAtlas_4_paint'>paint</a> uses <a href='SkPaint_Reference#Anti_Alias'>Anti Alias</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='undocumented#Blend_Mode'>Blend Mode</a>
to draw, if present. For each entry in the array, <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawAtlas_4_tex'>tex</a> locates sprite in
<a href='#SkCanvas_drawAtlas_4_atlas'>atlas</a>, and <a href='undocumented#RSXform'>RSXform</a> <a href='#SkCanvas_drawAtlas_4_xform'>xform</a> transforms it into destination space.
diff --git a/site/user/api/SkColor4f_Reference.md b/site/user/api/SkColor4f_Reference.md
index 425b8c271c..6b3b01108b 100644
--- a/site/user/api/SkColor4f_Reference.md
+++ b/site/user/api/SkColor4f_Reference.md
@@ -14,22 +14,29 @@ SkColor4f members may be read and written directly without using a member functi
<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkColor4f_fA'>fA</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>incomplete</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>alpha component</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkColor4f_fB'>fB</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>incomplete</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>blue component</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkColor4f_fG'>fG</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>incomplete</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>green component</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkColor4f_fR'>fR</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>incomplete</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>red component</td>
</tr>
</table>
-The float values are 0...1 <a href='undocumented#Unpremultiply'>Unpremultiplied</a>
+Each component is stored as a 32-bit single precision floating point float value.
+All values are allowed, but only the range from zero to one is meaningful.
+
+Each component is independent of the others; <a href='#SkColor4f_fA'>fA</a> <a href='SkColor_Reference#Alpha'>Alpha</a> is not <a href='undocumented#Premultiply'>Premultiplied</a>
+with <a href='#SkColor4f_fG'>fG</a> green, <a href='#SkColor4f_fB'>fB</a> blue, or <a href='#SkColor4f_fR'>fR</a> red.
+
+Values smaller than zero or larger than one are allowed. Values out of range
+may be used with <a href='undocumented#Blend_Mode'>Blend Mode</a> so that the final component is in range.
## Overview
@@ -60,11 +67,11 @@ SkColor4f operators inline class member functions with arithmetic equivalents.
<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkColor4f_notequal1_operator'>operator!=(const SkColor4f& other) const</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>incomplete</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>compares colors for inequality</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkColor4f_equal1_operator'>operator==(const SkColor4f& other) const</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>incomplete</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>compares <a href='#Color4f'>Color4f</a> for equality</td>
</tr>
</table>
@@ -78,23 +85,23 @@ SkColor4f member functions read and modify the structure properties.
<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkColor4f_FromColor'>FromColor</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>incomplete</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets components from <a href='SkColor_Reference#Color'>Color</a></td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkColor4f_Pin'>Pin</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>incomplete</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets components to valid range</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkColor4f_pin'>pin</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>incomplete</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets components to valid range</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkColor4f_toSkColor'>toSkColor</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>incomplete</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns closest <a href='SkColor_Reference#Color'>Color</a></td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkColor4f_vec'>vec</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>incomplete</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns array of components</td>
</tr>
</table>
@@ -109,25 +116,29 @@ SkColor4f member functions read and modify the structure properties.
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>float</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkColor4f_fR'><code>fR</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-incomplete</td>
+Single precision float for red ranges from no red (0.0) to full red (1.0).
+</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>float</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkColor4f_fG'><code>fG</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-incomplete</td>
+Single precision float for green ranges from no green (0.0) to full green (1.0).
+</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>float</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkColor4f_fB'><code>fB</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-incomplete</td>
+Single precision float for blue ranges from no blue (0.0) to full blue (1.0).
+</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>float</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkColor4f_fA'><code>fA</code></a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-incomplete</td>
+Single precision float for <a href='SkColor_Reference#Alpha'>Alpha</a> ranges from no <a href='SkColor_Reference#Alpha'>Alpha</a> (0.0) to full <a href='SkColor_Reference#Alpha'>Alpha</a> (1.0).
+</td>
</tr>
</table>
@@ -138,24 +149,34 @@ incomplete</td>
bool operator==(const SkColor4f& other) _const
</pre>
+Compares <a href='#Color4f'>Color4f</a> with <a href='#SkColor4f_equal1_operator_other'>other</a>, and returns true if all components are equivalent.
+
### Parameters
<table> <tr> <td><a name='SkColor4f_equal1_operator_other'><code><strong>other</strong></code></a></td>
- <td>incomplete</td>
+ <td><a href='#Color4f'>Color4f</a> to compare</td>
</tr>
</table>
### Return Value
-incomplete
+true if <a href='#Color4f'>Color4f</a> equals <a href='#SkColor4f_equal1_operator_other'>other</a>
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="e5b34bcb7f80f2ed890cdacaa059db0d">
+
+#### Example Output
+
+~~~~
+colorRed == colorNamedRed
+~~~~
+
+</fiddle-embed></div>
### See Also
-incomplete
+<a href='#SkColor4f_notequal1_operator'>operator!=(const SkColor4f& other) const</a>
---
@@ -166,24 +187,35 @@ incomplete
bool operator!=(const SkColor4f& other) _const
</pre>
+Compares <a href='#Color4f'>Color4f</a> with <a href='#SkColor4f_notequal1_operator_other'>other</a>, and returns true if all components are not
+equivalent.
+
### Parameters
<table> <tr> <td><a name='SkColor4f_notequal1_operator_other'><code><strong>other</strong></code></a></td>
- <td>incomplete</td>
+ <td><a href='#Color4f'>Color4f</a> to compare</td>
</tr>
</table>
### Return Value
-incomplete
+true if <a href='#Color4f'>Color4f</a> is not equal to <a href='#SkColor4f_notequal1_operator_other'>other</a>
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="82f1a9b4c2b27aa547061786d1f33dab">
+
+#### Example Output
+
+~~~~
+colorGray != colorNamedGray
+~~~~
+
+</fiddle-embed></div>
### See Also
-incomplete
+<a href='#SkColor4f_equal1_operator'>operator==(const SkColor4f& other) const</a>
---
@@ -194,17 +226,28 @@ incomplete
const float* <a href='#SkColor4f_vec'>vec</a>() const
</pre>
+Returns <a href='#Color4f'>Color4f</a> components as a read-only array.
+
### Return Value
-incomplete
+components as read-only array
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="229057023515224358a36acf15508cf6">
+
+#### Example Output
+
+~~~~
+red=0.0578054 green=0.246201 blue=0.603827 alpha=0.533333
+[0]=0.0578054 [1]=0.246201 [2]=0.603827 [3]=0.533333
+~~~~
+
+</fiddle-embed></div>
### See Also
-incomplete
+<a href='#SkColor4f'>SkColor4f</a>
---
@@ -214,17 +257,28 @@ incomplete
float* <a href='#SkColor4f_vec'>vec</a>()
</pre>
+Returns <a href='#Color4f'>Color4f</a> components as a writable array.
+
### Return Value
-incomplete
+components as writable array
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="7420bf0a7cae5c6577c4c4a4613e7e7e">
+
+#### Example Output
+
+~~~~
+red=0.0578054 green=0.246201 blue=0.603827 alpha=0.533333
+[0]=0.0578054 [1]=0.246201 [2]=0.603827 [3]=1
+~~~~
+
+</fiddle-embed></div>
### See Also
-incomplete
+<a href='#SkColor4f'>SkColor4f</a>
---
@@ -235,33 +289,35 @@ incomplete
static <a href='#SkColor4f'>SkColor4f</a> <a href='#SkColor4f_Pin'>Pin</a>(float r, float g, float b, float a)
</pre>
+Constructs and returns <a href='#Color4f'>Color4f</a> with each component pinned from zero to one.
+
### Parameters
<table> <tr> <td><a name='SkColor4f_Pin_r'><code><strong>r</strong></code></a></td>
- <td>incomplete</td>
+ <td>red component</td>
</tr>
<tr> <td><a name='SkColor4f_Pin_g'><code><strong>g</strong></code></a></td>
- <td>incomplete</td>
+ <td>green component</td>
</tr>
<tr> <td><a name='SkColor4f_Pin_b'><code><strong>b</strong></code></a></td>
- <td>incomplete</td>
+ <td>blue component</td>
</tr>
<tr> <td><a name='SkColor4f_Pin_a'><code><strong>a</strong></code></a></td>
- <td>incomplete</td>
+ <td><a href='SkColor_Reference#Alpha'>Alpha</a> component</td>
</tr>
</table>
### Return Value
-incomplete
+<a href='#Color4f'>Color4f</a> with valid components
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="c989cf16c7f8849874eb008cd701af76"></fiddle-embed></div>
### See Also
-incomplete
+<a href='#SkColor4f_pin'>pin</a> <a href='#SkColor4f_FromColor'>FromColor</a>
---
@@ -272,26 +328,35 @@ incomplete
static <a href='#SkColor4f'>SkColor4f</a> <a href='#SkColor4f_FromColor'>FromColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a>)
</pre>
-Convert to <a href='#SkColor4f'>SkColor4f</a>, assuming <a href='SkColor_Reference#SkColor'>SkColor</a> is sRGB
+Converts to closest <a href='#Color4f'>Color4f</a>.
### Parameters
<table> <tr> <td><a name='SkColor4f_FromColor_SkColor'><code><strong>SkColor</strong></code></a></td>
- <td>incomplete</td>
+ <td><a href='SkColor_Reference#Color'>Color</a> with <a href='SkColor_Reference#Alpha'>Alpha</a>, red, blue, and green components</td>
</tr>
</table>
### Return Value
-incomplete
+<a href='#Color4f'>Color4f</a> equivalent
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="33b029064e8d1928e42a587c953d0e4e">
+
+#### Example Output
+
+~~~~
+red=0.0742136 green=0.130136 blue=0.318547 alpha=0.168627
+red=77 green=101 blue=153 alpha=43
+~~~~
+
+</fiddle-embed></div>
### See Also
-incomplete
+<a href='#SkColor4f_toSkColor'>toSkColor</a>
---
@@ -302,17 +367,28 @@ incomplete
<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkColor4f_toSkColor'>toSkColor</a>() const
</pre>
+Converts to closest <a href='SkColor_Reference#SkColor'>SkColor</a>.
+
### Return Value
-incomplete
+closest <a href='SkColor_Reference#Color'>Color</a>
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="edc5fd18d961f7607d2bcbf7f7d427e5">
+
+#### Example Output
+
+~~~~
+red=75 green=101 blue=153 alpha=43
+red=0.0703601 green=0.130136 blue=0.318547 alpha=0.168627
+~~~~
+
+</fiddle-embed></div>
### See Also
-incomplete
+<a href='#SkColor4f_FromColor'>FromColor</a>
---
@@ -323,17 +399,19 @@ incomplete
<a href='#SkColor4f'>SkColor4f</a> <a href='#SkColor4f_pin'>pin</a>() const
</pre>
+Returns <a href='#Color4f'>Color4f</a> with all components in the range from zero to one.
+
### Return Value
-incomplete
+<a href='#Color4f'>Color4f</a> with valid components
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="9e349862c5189a44d2acef5da24f2e79"></fiddle-embed></div>
### See Also
-incomplete
+<a href='#SkColor4f_Pin'>Pin</a>
---
diff --git a/site/user/api/SkColor_Reference.md b/site/user/api/SkColor_Reference.md
index f2a1475e1c..7677ebd971 100644
--- a/site/user/api/SkColor_Reference.md
+++ b/site/user/api/SkColor_Reference.md
@@ -40,15 +40,15 @@ SkColor uses preprocessor definitions to inline code and constants, and to abstr
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkColorGetB'>SkColorGetB</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>incomplete</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns blue component</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkColorGetG'>SkColorGetG</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>incomplete</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns green component</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkColorGetR'>SkColorGetR</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>incomplete</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns red component</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkColorSetRGB'>SkColorSetRGB</a></td>
@@ -133,11 +133,11 @@ SkColor related constants are defined by <code>enum</code>, <code>enum class</co
<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkColorSetA'>SkColorSetA</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>incomplete</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns <a href='#Color'>Color</a> with transparency</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkColorSetARGB'>SkColorSetARGB</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns <a href='#Alpha'>Color Alpha</a> and <a href='#RGB'>Color RGB</a> combined</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns <a href='#Alpha'>Color Alpha</a> and RGB combined</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkColorToHSV'>SkColorToHSV</a></td>
@@ -153,7 +153,7 @@ SkColor related constants are defined by <code>enum</code>, <code>enum class</co
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkPreMultiplyARGB'>SkPreMultiplyARGB</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>converts <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='#ARGB'>ARGB</a> to <a href='undocumented#Premultiply'>Premultiplied</a> <a href='#PMColor'>PMColor</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>converts <a href='undocumented#Unpremultiply'>Unpremultiplied</a> ARGB to <a href='undocumented#Premultiply'>Premultiplied</a> <a href='#PMColor'>PMColor</a></td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkPreMultiplyColor'>SkPreMultiplyColor</a></td>
@@ -161,7 +161,7 @@ SkColor related constants are defined by <code>enum</code>, <code>enum class</co
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkRGBToHSV'>SkRGBToHSV</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>incomplete</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>converts RGB to <a href='#HSV'>HSV</a></td>
</tr>
</table>
@@ -188,22 +188,6 @@ SkColor <code>typedef</code> define a data type.
</table>
-## <a name='RGB'>RGB</a>
-
-## <a name='RGB_Red'>RGB Red</a>
-
-## <a name='RGB_Blue'>RGB Blue</a>
-
-## <a name='RGB_Green'>RGB Green</a>
-
-## <a name='ARGB'>ARGB</a>
-
-## <a name='RBG'>RBG</a>
-
-## <a name='RGB-565'>RGB-565</a>
-
-## <a name='Gray'>Gray</a>
-
## <a name='Alpha'>Alpha</a>
<a href='#Alpha'>Alpha</a> represents the transparency of <a href='#Color'>Color</a>. <a href='#Color'>Color</a> with <a href='#Alpha'>Alpha</a> of zero is fully
@@ -213,11 +197,21 @@ floating point values. Unsigned integer <a href='#Alpha'>Alpha</a> ranges from z
transparent, to all bits set, fully opaque. Floating point <a href='#Alpha'>Alpha</a> ranges from
zero, fully transparent, to one, fully opaque.
-# <a name='SkAlpha'>Typedef SkAlpha</a>
+## <a name='SkAlpha'>Typedef SkAlpha</a>
+
+<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
+typedef uint8_t <a href='#SkAlpha'>SkAlpha</a>;
+</pre>
+
8-bit type for an alpha value. 0xFF is 100% opaque, 0x00 is 100% transparent.
-# <a name='SkColor'>Typedef SkColor</a>
-32-bit <a href='#ARGB'>ARGB</a> <a href='#Color'>Color</a> value, <a href='undocumented#Unpremultiply'>Unpremultiplied</a>. <a href='#Color'>Color</a> components are always in
+## <a name='SkColor'>Typedef SkColor</a>
+
+<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
+typedef uint32_t <a href='#SkColor'>SkColor</a>;
+</pre>
+
+32-bit ARGB <a href='#Color'>Color</a> value, <a href='undocumented#Unpremultiply'>Unpremultiplied</a>. <a href='#Color'>Color</a> components are always in
a known order. This is different from <a href='#SkPMColor'>SkPMColor</a>, which has its bytes in a configuration
dependent order, to match the format of <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a> bitmaps. <a href='#SkColor'>SkColor</a>
is the type used to specify colors in <a href='SkPaint_Reference#SkPaint'>SkPaint</a> and in gradients.
@@ -247,13 +241,13 @@ than the largest of <a href='#SkColorSetARGB_r'>r</a>, <a href='#SkColorSetARGB_
<td>amount of <a href='#Alpha'>Alpha</a>, from fully transparent (0) to fully opaque (255)</td>
</tr>
<tr> <td><a name='SkColorSetARGB_r'><code><strong>r</strong></code></a></td>
- <td>amount of <a href='#RGB_Red'>RGB Red</a>, from no red (0) to full red (255)</td>
+ <td>amount of red, from no red (0) to full red (255)</td>
</tr>
<tr> <td><a name='SkColorSetARGB_g'><code><strong>g</strong></code></a></td>
- <td>amount of <a href='#RGB_Green'>RGB Green</a>, from no green (0) to full green (255)</td>
+ <td>amount of green, from no green (0) to full green (255)</td>
</tr>
<tr> <td><a name='SkColorSetARGB_b'><code><strong>b</strong></code></a></td>
- <td>amount of <a href='#RGB_Blue'>RGB Blue</a>, from no blue (0) to full blue (255)</td>
+ <td>amount of blue, from no blue (0) to full blue (255)</td>
</tr>
</table>
@@ -267,25 +261,11 @@ color and alpha, <a href='undocumented#Unpremultiply'>Unpremultiplied</a>
### See Also
-<a href='#SkColorSetRGB'>SkColorSetRGB</a> <a href='SkPaint_Reference#SkPaint_setARGB'>SkPaint::setARGB</a> <a href='SkPaint_Reference#SkPaint_setColor'>SkPaint::setColor</a>
+<a href='#SkColorSetRGB'>SkColorSetRGB</a> <a href='SkPaint_Reference#SkPaint_setARGB'>SkPaint::setARGB</a> <a href='SkPaint_Reference#SkPaint_setColor'>SkPaint::setColor</a> <a href='#SkColorSetA'>SkColorSetA</a>
---
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- #define <a href='#SkColorSetARGBInline'>SkColorSetARGBInline</a> <a href='#SkColorSetARGB'>SkColorSetARGB</a>
-</pre>
-
-Deprecated.
-
-soon
-
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- #define <a href='#SkColorSetARGBMacro'>SkColorSetARGBMacro</a> <a href='#SkColorSetARGB'>SkColorSetARGB</a>
-</pre>
-
-Deprecated.
-
-soon
+## <a name='SkColorSetRGB'>Define SkColorSetRGB</a>
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
#define <a href='#SkColorSetRGB'>SkColorSetRGB(r, g, b)</a> <a href='#SkColorSetARGB'>SkColorSetARGB(0xFF, r, g, b)</a>
@@ -297,13 +277,13 @@ fully opaque to 255.
### Parameters
<table> <tr> <td><a name='SkColorSetRGB_r'><code><strong>r</strong></code></a></td>
- <td>amount of <a href='#RGB_Red'>RGB Red</a>, from no red (0) to full red (255)</td>
+ <td>amount of red, from no red (0) to full red (255)</td>
</tr>
<tr> <td><a name='SkColorSetRGB_g'><code><strong>g</strong></code></a></td>
- <td>amount of <a href='#RGB_Green'>RGB Green</a>, from no green (0) to full green (255)</td>
+ <td>amount of green, from no green (0) to full green (255)</td>
</tr>
<tr> <td><a name='SkColorSetRGB_b'><code><strong>b</strong></code></a></td>
- <td>amount of <a href='#RGB_Blue'>RGB Blue</a>, from no blue (0) to full blue (255)</td>
+ <td>amount of blue, from no blue (0) to full blue (255)</td>
</tr>
</table>
@@ -317,7 +297,9 @@ color with opaque alpha
### See Also
-incomplete
+<a href='#SkColorSetARGB'>SkColorSetARGB</a>
+
+## <a name='SkColorGetA'>Define SkColorGetA</a>
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
#define <a href='#SkColorGetA'>SkColorGetA(color)</a> (((color) >> 24) & 0xFF)
@@ -334,11 +316,13 @@ Returns <a href='#Alpha'>Alpha</a> byte from <a href='#Color'>Color</a> value.
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="896ce0316b489608a95af5439ca2aab1"></fiddle-embed></div>
### See Also
-incomplete
+<a href='SkPaint_Reference#SkPaint_getAlpha'>SkPaint::getAlpha</a>
+
+## <a name='SkColorGetR'>Define SkColorGetR</a>
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
#define <a href='#SkColorGetR'>SkColorGetR(color)</a> (((color) >> 16) & 0xFF)
@@ -359,11 +343,13 @@ red byte
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="d6da38577f189eaa6d9df75f6c3ed252"></fiddle-embed></div>
### See Also
-incomplete
+<a href='#SkColorGetG'>SkColorGetG</a> <a href='#SkColorGetB'>SkColorGetB</a>
+
+## <a name='SkColorGetG'>Define SkColorGetG</a>
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
#define <a href='#SkColorGetG'>SkColorGetG(color)</a> (((color) >> 8) & 0xFF)
@@ -384,11 +370,13 @@ green byte
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="535d38b2c019299d915170f7b03d5fea"></fiddle-embed></div>
### See Also
-incomplete
+<a href='#SkColorGetR'>SkColorGetR</a> <a href='#SkColorGetB'>SkColorGetB</a>
+
+## <a name='SkColorGetB'>Define SkColorGetB</a>
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
#define <a href='#SkColorGetB'>SkColorGetB(color)</a> (((color) >> 0) & 0xFF)
@@ -409,11 +397,11 @@ blue byte
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="9ee27675284faea375611dc88123a2c5"></fiddle-embed></div>
### See Also
-incomplete
+<a href='#SkColorGetR'>SkColorGetR</a> <a href='#SkColorGetG'>SkColorGetG</a>
<a name='SkColorSetA'></a>
## SkColorSetA
@@ -422,29 +410,30 @@ incomplete
static constexpr inline <a href='#SkColor'>SkColor</a> <a href='#SkColorSetA'>SkColorSetA</a>(<a href='#SkColor'>SkColor</a> c, <a href='undocumented#U8CPU'>U8CPU</a> a)
</pre>
-Returns <a href='#Color'>Color</a> with red, blue, and green set from <a href='#SkColorSetA_c'>c</a>; and alpha set from <a href='#SkColorSetA_a'>a</a>.
+Returns <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='#Color'>Color</a> with red, blue, and green set from <a href='#SkColorSetA_c'>c</a>; and alpha set
+from <a href='#SkColorSetA_a'>a</a>. <a href='#Alpha'>Alpha</a> component of <a href='#SkColorSetA_c'>c</a> is ignored and is replaced by <a href='#SkColorSetA_a'>a</a> in result.
### Parameters
<table> <tr> <td><a name='SkColorSetA_c'><code><strong>c</strong></code></a></td>
- <td><a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='#ARGB'>Color ARGB</a></td>
+ <td>packed RGB, eight bits per component</td>
</tr>
<tr> <td><a name='SkColorSetA_a'><code><strong>a</strong></code></a></td>
- <td>incomplete</td>
+ <td><a href='#Alpha'>Alpha</a>: transparent at zero, fully opaque at 255</td>
</tr>
</table>
### Return Value
-incomplete
+<a href='#Color'>Color</a> with transparency
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="18f6f376f771f5ffa56d5e5b2ebd20fb"></fiddle-embed></div>
### See Also
-incomplete
+<a href='#SkColorSetARGB'>SkColorSetARGB</a>
---
@@ -459,13 +448,13 @@ incomplete
<th style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>Value</th>
<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
<tr style='background-color: #f0f0f0; '>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Alpha_Constants'><code>Alpha_Constants</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SK_AlphaTRANSPARENT'><code>SK_AlphaTRANSPARENT</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0x00</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>fully transparent SkAlpha</td>
</tr>
<tr>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Alpha_Constants'><code>Alpha_Constants</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SK_AlphaOPAQUE'><code>SK_AlphaOPAQUE</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0xFF</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>fully opaque SkAlpha</td>
</tr>
</table>
@@ -538,63 +527,63 @@ fully transparent; to 255, fully opaque.
<th style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>Value</th>
<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
<tr style='background-color: #f0f0f0; '>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Color_Constants'><code>Color_Constants</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SK_ColorTRANSPARENT'><code>SK_ColorTRANSPARENT</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0x00000000</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>transparent Color</td>
</tr>
<tr>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Color_Constants'><code>Color_Constants</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SK_ColorBLACK'><code>SK_ColorBLACK</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0xFF000000</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>black Color</td>
</tr>
<tr style='background-color: #f0f0f0; '>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Color_Constants'><code>Color_Constants</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SK_ColorDKGRAY'><code>SK_ColorDKGRAY</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0xFF444444</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>dark gray Color</td>
</tr>
<tr>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Color_Constants'><code>Color_Constants</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SK_ColorGRAY'><code>SK_ColorGRAY</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0xFF888888</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>gray Color</td>
</tr>
<tr style='background-color: #f0f0f0; '>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Color_Constants'><code>Color_Constants</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SK_ColorLTGRAY'><code>SK_ColorLTGRAY</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0xFFCCCCCC</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>light gray Color</td>
</tr>
<tr>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Color_Constants'><code>Color_Constants</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SK_ColorWHITE'><code>SK_ColorWHITE</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0xFFFFFFFF</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>white Color</td>
</tr>
<tr style='background-color: #f0f0f0; '>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Color_Constants'><code>Color_Constants</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SK_ColorRED'><code>SK_ColorRED</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0xFFFF0000</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>red Color</td>
</tr>
<tr>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Color_Constants'><code>Color_Constants</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SK_ColorGREEN'><code>SK_ColorGREEN</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0xFF00FF00</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>green Color</td>
</tr>
<tr style='background-color: #f0f0f0; '>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Color_Constants'><code>Color_Constants</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SK_ColorBLUE'><code>SK_ColorBLUE</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0xFF0000FF</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>blue Color</td>
</tr>
<tr>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Color_Constants'><code>Color_Constants</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SK_ColorYELLOW'><code>SK_ColorYELLOW</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0xFFFFFF00</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>yellow Color</td>
</tr>
<tr style='background-color: #f0f0f0; '>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Color_Constants'><code>Color_Constants</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SK_ColorCYAN'><code>SK_ColorCYAN</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0xFF00FFFF</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>cyan Color</td>
</tr>
<tr>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Color_Constants'><code>Color_Constants</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SK_ColorMAGENTA'><code>SK_ColorMAGENTA</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0xFFFF00FF</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>magenta Color</td>
</tr>
</table>
@@ -737,7 +726,7 @@ Represents fully opaque magenta. HTML_Fuchsia is equivalent.
### Example
-<div><fiddle-embed name="cfda8cd3b435bb28e2f4b9c7f15603a6"></fiddle-embed></div>
+<div><fiddle-embed name="9ca1e2a5b9b4c92ecf4409d0813867d6"></fiddle-embed></div>
### See Also
@@ -778,10 +767,10 @@ modulo 360, where zero degrees is red.
## SkRGBToHSV
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-SK_API void <a href='#SkRGBToHSV'>SkRGBToHSV</a>(<a href='undocumented#U8CPU'>U8CPU</a> red, <a href='undocumented#U8CPU'>U8CPU</a> green, <a href='undocumented#U8CPU'>U8CPU</a> blue, <a href='undocumented#SkScalar'>SkScalar</a> hsv[3])
+void <a href='#SkRGBToHSV'>SkRGBToHSV</a>(<a href='undocumented#U8CPU'>U8CPU</a> red, <a href='undocumented#U8CPU'>U8CPU</a> green, <a href='undocumented#U8CPU'>U8CPU</a> blue, <a href='undocumented#SkScalar'>SkScalar</a> hsv[3])
</pre>
-Converts RGB components to <a href='#HSV'>HSV</a>.
+Converts RGB to its <a href='#HSV'>HSV</a> components.
<a href='#SkRGBToHSV_hsv'>hsv</a>[0] contains <a href='#HSV_Hue'>Hue</a>, a value from zero to less than 360.
<a href='#SkRGBToHSV_hsv'>hsv</a>[1] contains <a href='#HSV_Saturation'>Saturation</a>, a value from zero to one.
<a href='#SkRGBToHSV_hsv'>hsv</a>[2] contains <a href='#HSV_Value'>Value</a>, a value from zero to one.
@@ -802,17 +791,13 @@ Converts RGB components to <a href='#HSV'>HSV</a>.
</tr>
</table>
-### Return Value
-
-incomplete
-
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="4fb2da4a3d9b14ca4ac24eefb0f5126a"></fiddle-embed></div>
### See Also
-incomplete
+<a href='#SkColorToHSV'>SkColorToHSV</a> <a href='#SkHSVToColor'>SkHSVToColor</a>
---
@@ -820,10 +805,10 @@ incomplete
## SkColorToHSV
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static inline void <a href='#SkColorToHSV'>SkColorToHSV</a>(<a href='#SkColor'>SkColor</a> color, <a href='undocumented#SkScalar'>SkScalar</a> hsv[3])
+void <a href='#SkColorToHSV'>SkColorToHSV</a>(<a href='#SkColor'>SkColor</a> color, <a href='undocumented#SkScalar'>SkScalar</a> hsv[3])
</pre>
-Converts <a href='#ARGB'>ARGB</a> to its <a href='#HSV'>HSV</a> components. <a href='#Alpha'>Alpha</a> in <a href='#ARGB'>ARGB</a> is ignored.
+Converts ARGB to its <a href='#HSV'>HSV</a> components. <a href='#Alpha'>Alpha</a> in ARGB is ignored.
<a href='#SkColorToHSV_hsv'>hsv</a>[0] contains <a href='#HSV_Hue'>Hue</a>, and is assigned a value from zero to less than 360.
<a href='#SkColorToHSV_hsv'>hsv</a>[1] contains <a href='#HSV_Saturation'>Saturation</a>, a value from zero to one.
<a href='#SkColorToHSV_hsv'>hsv</a>[2] contains <a href='#HSV_Value'>Value</a>, a value from zero to one.
@@ -831,24 +816,20 @@ Converts <a href='#ARGB'>ARGB</a> to its <a href='#HSV'>HSV</a> components. <a h
### Parameters
<table> <tr> <td><a name='SkColorToHSV_color'><code><strong>color</strong></code></a></td>
- <td><a href='#ARGB'>ARGB</a> <a href='#SkColorToHSV_color'>color</a> to convert</td>
+ <td>ARGB <a href='#SkColorToHSV_color'>color</a> to convert</td>
</tr>
<tr> <td><a name='SkColorToHSV_hsv'><code><strong>hsv</strong></code></a></td>
<td>three element array which holds the resulting <a href='#HSV'>HSV</a> components</td>
</tr>
</table>
-### Return Value
-
-incomplete
-
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="7d7e427e2b181c651abad5732bc46cf7"></fiddle-embed></div>
### See Also
-incomplete
+<a href='#SkRGBToHSV'>SkRGBToHSV</a> <a href='#SkHSVToColor'>SkHSVToColor</a>
---
@@ -856,20 +837,20 @@ incomplete
## SkHSVToColor
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-SK_API <a href='#SkColor'>SkColor</a> <a href='#SkHSVToColor'>SkHSVToColor</a>(<a href='undocumented#U8CPU'>U8CPU</a> alpha, const <a href='undocumented#SkScalar'>SkScalar</a> hsv[3])
+<a href='#SkColor'>SkColor</a> <a href='#SkHSVToColor'>SkHSVToColor</a>(<a href='undocumented#U8CPU'>U8CPU</a> alpha, const <a href='undocumented#SkScalar'>SkScalar</a> hsv[3])
</pre>
-Converts <a href='#HSV'>HSV</a> components to an <a href='#ARGB'>ARGB</a> color. The <a href='#SkHSVToColor_alpha'>alpha</a> component is passed through unchanged.
+Converts <a href='#HSV'>HSV</a> components to an ARGB color. <a href='#Alpha'>Alpha</a> is passed through unchanged.
<a href='#SkHSVToColor_hsv'>hsv</a>[0] represents <a href='#HSV_Hue'>Hue</a>, an angle from zero to less than 360.
<a href='#SkHSVToColor_hsv'>hsv</a>[1] represents <a href='#HSV_Saturation'>Saturation</a>, and varies from zero to one.
<a href='#SkHSVToColor_hsv'>hsv</a>[2] represents <a href='#HSV_Value'>Value</a>, and varies from zero to one.
-If <a href='#SkHSVToColor_hsv'>hsv</a> values are out of range, they are pinned.
+Out of range <a href='#SkHSVToColor_hsv'>hsv</a> values are pinned.
### Parameters
<table> <tr> <td><a name='SkHSVToColor_alpha'><code><strong>alpha</strong></code></a></td>
- <td><a href='#Alpha'>Alpha</a> component of the returned <a href='#ARGB'>ARGB</a> color</td>
+ <td><a href='#Alpha'>Alpha</a> component of the returned ARGB color</td>
</tr>
<tr> <td><a name='SkHSVToColor_hsv'><code><strong>hsv</strong></code></a></td>
<td>three element array which holds the input <a href='#HSV'>HSV</a> components</td>
@@ -878,57 +859,61 @@ If <a href='#SkHSVToColor_hsv'>hsv</a> values are out of range, they are pinned.
### Return Value
-<a href='#ARGB'>ARGB</a> equivalent to <a href='#HSV'>HSV</a>
+ARGB equivalent to <a href='#HSV'>HSV</a>
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="311a59931ac340b90f202cd6ac399a0a"></fiddle-embed></div>
### See Also
-incomplete
+<a href='#SkColorToHSV'>SkColorToHSV</a> <a href='#SkRGBToHSV'>SkRGBToHSV</a>
---
<a name='SkHSVToColor_2'></a>
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static inline <a href='#SkColor'>SkColor</a> <a href='#SkHSVToColor'>SkHSVToColor</a>(const <a href='undocumented#SkScalar'>SkScalar</a> hsv[3])
+<a href='#SkColor'>SkColor</a> <a href='#SkHSVToColor'>SkHSVToColor</a>(const <a href='undocumented#SkScalar'>SkScalar</a> hsv[3])
</pre>
-Convert <a href='#HSV'>HSV</a> components to an <a href='#ARGB'>ARGB</a> color. The alpha component set to 0xFF.
+Convert <a href='#HSV'>HSV</a> components to an ARGB color. <a href='#Alpha'>Alpha</a> is set to 0xFF.
<a href='#SkHSVToColor_2_hsv'>hsv</a>[0] represents <a href='#HSV_Hue'>Hue</a>, an angle from zero to less than 360.
<a href='#SkHSVToColor_2_hsv'>hsv</a>[1] represents <a href='#HSV_Saturation'>Saturation</a>, and varies from zero to one.
<a href='#SkHSVToColor_2_hsv'>hsv</a>[2] represents <a href='#HSV_Value'>Value</a>, and varies from zero to one.
-If <a href='#SkHSVToColor_2_hsv'>hsv</a> values are out of range, they are pinned.
+Out of range <a href='#SkHSVToColor_2_hsv'>hsv</a> values are pinned.
### Parameters
<table> <tr> <td><a name='SkHSVToColor_2_hsv'><code><strong>hsv</strong></code></a></td>
- <td>3 element array which holds the input <a href='#HSV'>HSV</a> components.
-</td>
+ <td>three element array which holds the input <a href='#HSV'>HSV</a> components</td>
</tr>
</table>
### Return Value
-the resulting <a href='#ARGB'>ARGB</a> color
+RGB equivalent to <a href='#HSV'>HSV</a>
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="d355a17547908cdbc2c38720974b5d11"></fiddle-embed></div>
### See Also
-incomplete
+<a href='#SkColorToHSV'>SkColorToHSV</a> <a href='#SkRGBToHSV'>SkRGBToHSV</a>
---
## <a name='PMColor'>PMColor</a>
-# <a name='SkPMColor'>Typedef SkPMColor</a>
-32-bit <a href='#ARGB'>ARGB</a> color value, <a href='undocumented#Premultiply'>Premultiplied</a>. The byte order for this value is
+## <a name='SkPMColor'>Typedef SkPMColor</a>
+
+<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
+typedef uint32_t <a href='#SkPMColor'>SkPMColor</a>;
+</pre>
+
+32-bit ARGB color value, <a href='undocumented#Premultiply'>Premultiplied</a>. The byte order for this value is
configuration dependent, matching the format of <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a> bitmaps.
This is different from <a href='#SkColor'>SkColor</a>, which is <a href='undocumented#Unpremultiply'>Unpremultiplied</a>, and is always in the
same byte order.
@@ -937,38 +922,38 @@ same byte order.
## SkPreMultiplyARGB
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-SK_API <a href='#SkPMColor'>SkPMColor</a> <a href='#SkPreMultiplyARGB'>SkPreMultiplyARGB</a>(<a href='undocumented#U8CPU'>U8CPU</a> a, <a href='undocumented#U8CPU'>U8CPU</a> r, <a href='undocumented#U8CPU'>U8CPU</a> g, <a href='undocumented#U8CPU'>U8CPU</a> b)
+<a href='#SkPMColor'>SkPMColor</a> <a href='#SkPreMultiplyARGB'>SkPreMultiplyARGB</a>(<a href='undocumented#U8CPU'>U8CPU</a> a, <a href='undocumented#U8CPU'>U8CPU</a> r, <a href='undocumented#U8CPU'>U8CPU</a> g, <a href='undocumented#U8CPU'>U8CPU</a> b)
</pre>
-Return <a href='#SkPreMultiplyARGB_a'>a</a> <a href='#SkPMColor'>SkPMColor</a> value from <a href='undocumented#Unpremultiply'>Unpremultiplied</a> 8-bit component values
+Returns <a href='#SkPreMultiplyARGB_a'>a</a> <a href='#SkPMColor'>SkPMColor</a> value from <a href='undocumented#Unpremultiply'>Unpremultiplied</a> 8-bit component values.
### Parameters
<table> <tr> <td><a name='SkPreMultiplyARGB_a'><code><strong>a</strong></code></a></td>
- <td>incomplete</td>
+ <td>amount of <a href='#Alpha'>Alpha</a>, from fully transparent (0) to fully opaque (255)</td>
</tr>
<tr> <td><a name='SkPreMultiplyARGB_r'><code><strong>r</strong></code></a></td>
- <td>incomplete</td>
+ <td>amount of red, from no red (0) to full red (255)</td>
</tr>
<tr> <td><a name='SkPreMultiplyARGB_g'><code><strong>g</strong></code></a></td>
- <td>incomplete</td>
+ <td>amount of green, from no green (0) to full green (255)</td>
</tr>
<tr> <td><a name='SkPreMultiplyARGB_b'><code><strong>b</strong></code></a></td>
- <td>incomplete</td>
+ <td>amount of blue, from no blue (0) to full blue (255)</td>
</tr>
</table>
### Return Value
-incomplete
+<a href='undocumented#Premultiply'>Premultiplied</a> <a href='#Color'>Color</a>
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="756345484fd48ca0ea7b6cec350f73b8"></fiddle-embed></div>
### See Also
-incomplete
+<a href='#SkPreMultiplyColor'>SkPreMultiplyColor</a>
---
@@ -976,7 +961,7 @@ incomplete
## SkPreMultiplyColor
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-SK_API <a href='#SkPMColor'>SkPMColor</a> <a href='#SkPreMultiplyColor'>SkPreMultiplyColor</a>(<a href='#SkColor'>SkColor</a> c)
+<a href='#SkPMColor'>SkPMColor</a> <a href='#SkPreMultiplyColor'>SkPreMultiplyColor</a>(<a href='#SkColor'>SkColor</a> c)
</pre>
Returns <a href='#PMColor'>PMColor</a> closest to <a href='#Color'>Color</a> <a href='#SkPreMultiplyColor_c'>c</a>. Multiplies <a href='#SkPreMultiplyColor_c'>c</a> RGB components by the <a href='#SkPreMultiplyColor_c'>c</a> <a href='#Alpha'>Alpha</a>,
@@ -985,21 +970,21 @@ and arranges the bytes to match the format of <a href='SkImageInfo_Reference#kN3
### Parameters
<table> <tr> <td><a name='SkPreMultiplyColor_c'><code><strong>c</strong></code></a></td>
- <td>incomplete</td>
+ <td><a href='undocumented#Unpremultiply'>Unpremultiplied</a> ARGB <a href='#Color'>Color</a></td>
</tr>
</table>
### Return Value
-incomplete
+<a href='undocumented#Premultiply'>Premultiplied</a> <a href='#Color'>Color</a>
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="0bcc0f86a2aefc899f3500503dce6968"></fiddle-embed></div>
### See Also
-incomplete
+<a href='#SkPreMultiplyARGB'>SkPreMultiplyARGB</a>
---
diff --git a/site/user/api/SkIPoint_Reference.md b/site/user/api/SkIPoint_Reference.md
index 4648a6ca4b..68125d1348 100644
--- a/site/user/api/SkIPoint_Reference.md
+++ b/site/user/api/SkIPoint_Reference.md
@@ -717,7 +717,7 @@ Can also be used to add <a href='#IVector'>IVector</a> to <a href='#IVector'>IVe
## <a name='IVector'>IVector</a>
-# <a name='SkIVector'>Typedef SkIVector</a>
+## <a name='SkIVector'>Typedef SkIVector</a>
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
typedef <a href='#SkIPoint'>SkIPoint</a> <a href='#SkIVector'>SkIVector</a>;
diff --git a/site/user/api/SkImageInfo_Reference.md b/site/user/api/SkImageInfo_Reference.md
index eacaa9418a..f6cf52c5d7 100644
--- a/site/user/api/SkImageInfo_Reference.md
+++ b/site/user/api/SkImageInfo_Reference.md
@@ -69,7 +69,7 @@ SkImageInfo related constants are defined by <code>enum</code>, <code>enum class
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#kGray_8_SkColorType'>kGray_8_SkColorType</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>pixel with <a href='SkColor_Reference#Gray'>Color Gray</a> level in 8-bit byte</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>pixel with grayscale level in 8-bit byte</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#kJPEG_SkYUVColorSpace'>kJPEG_SkYUVColorSpace</a></td>
@@ -89,7 +89,7 @@ SkImageInfo related constants are defined by <code>enum</code>, <code>enum class
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#kN32_SkColorType'>kN32_SkColorType</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>native <a href='SkColor_Reference#ARGB'>Color ARGB</a> 32-bit encoding</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>native ARGB 32-bit encoding</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a></td>
@@ -172,8 +172,8 @@ color to create a new color. If alpha describes a weight from zero to one:
In practice alpha is encoded in two or more bits, where 1.0 equals all bits set.
-<a href='SkColor_Reference#RGB'>Color RGB</a> may have <a href='SkColor_Reference#Alpha'>Color Alpha</a> included in each component value; the stored
-value is the original <a href='SkColor_Reference#RGB'>Color RGB</a> multiplied by <a href='SkColor_Reference#Alpha'>Color Alpha</a>. <a href='undocumented#Premultiply'>Premultiplied</a> color
+RGB may have <a href='SkColor_Reference#Alpha'>Color Alpha</a> included in each component value; the stored
+value is the original RGB multiplied by <a href='SkColor_Reference#Alpha'>Color Alpha</a>. <a href='undocumented#Premultiply'>Premultiplied</a> color
components improve performance.
### Constants
@@ -346,10 +346,10 @@ true if <a href='#SkAlphaTypeIsOpaque_at'>at</a> equals <a href='#kOpaque_SkAlph
</pre>
Describes how pixel bits encode color. A pixel may be an alpha mask, a
-gray level, <a href='SkColor_Reference#RGB'>Color RGB</a>, or <a href='SkColor_Reference#ARGB'>Color ARGB</a>.
+grayscale, RGB, or ARGB.
-<a href='#kN32_SkColorType'>kN32_SkColorType</a> selects the native 32-bit <a href='SkColor_Reference#ARGB'>Color ARGB</a> format. On Little_Endian
-processors, pixels containing 8-bit <a href='SkColor_Reference#ARGB'>Color ARGB</a> components pack into 32-bit
+<a href='#kN32_SkColorType'>kN32_SkColorType</a> selects the native 32-bit ARGB format. On Little_Endian
+processors, pixels containing 8-bit ARGB components pack into 32-bit
<a href='#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>. On Big_Endian processors, pixels pack into 32-bit
<a href='#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>.
@@ -472,7 +472,7 @@ Used by tests to iterate through all valid values.
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>4 or 6</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Encodes <a href='SkColor_Reference#ARGB'>Color ARGB</a> as either <a href='#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> or
+Encodes ARGB as either <a href='#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> or
<a href='#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, whichever is native to the platform.
</td>
</tr>
@@ -498,12 +498,12 @@ with its transparency set to alpha8 pixel value.
### See Also
-incomplete
+<a href='SkColor_Reference#Alpha'>Alpha</a> <a href='#Color_Type_Gray_8'>Gray 8</a>
## <a name='Color_Type_RGB_565'>Color Type RGB 565</a>
-<a href='#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> encodes <a href='SkColor_Reference#RGB'>Color RGB</a> to fit in a 16-bit word. <a href='SkColor_Reference#RGB_Red'>Red</a> and <a href='SkColor_Reference#RGB_Blue'>Blue</a>
-components use five bits describing 32 levels. <a href='SkColor_Reference#RGB_Green'>Green</a> components, more sensitive
+<a href='#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> encodes RGB to fit in a 16-bit word. Red and blue
+components use five bits describing 32 levels. Green components, more sensitive
to the eye, use six bits describing 64 levels. <a href='#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> has no
bits for <a href='SkColor_Reference#Alpha'>Alpha</a>.
Pixels are fully opaque as if its <a href='SkColor_Reference#Alpha'>Color Alpha</a> was set to one, and should
@@ -517,11 +517,11 @@ always be paired with <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.
### See Also
-incomplete
+<a href='#Color_Type_ARGB_4444'>ARGB 4444</a> <a href='#Color_Type_RGBA_8888'>RGBA 8888</a>
## <a name='Color_Type_ARGB_4444'>Color Type ARGB 4444</a>
-<a href='#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a> encodes <a href='SkColor_Reference#ARGB'>Color ARGB</a> to fit in 16-bit word. Each
+<a href='#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a> encodes ARGB to fit in 16-bit word. Each
component: alpha, blue, green, and red; use four bits, describing 16 levels.
Note that <a href='#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a> is misnamed; the acronym does not
describe the actual component order.
@@ -546,11 +546,11 @@ less than 15, the drawn result is undefined.
### See Also
-incomplete
+<a href='#Color_Type_RGBA_8888'>RGBA 8888</a>
## <a name='Color_Type_RGBA_8888'>Color Type RGBA 8888</a>
-<a href='#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> encodes <a href='SkColor_Reference#ARGB'>Color ARGB</a> into a 32-bit word. Each component:
+<a href='#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> encodes ARGB into a 32-bit word. Each component:
red, green, blue, alpha; use eight bits, describing 256 levels.
![Color_Type_RGBA_8888](https://fiddle.skia.org/i/4ccd35f27fe73dce8cce8c75e18df23c_raster.png "")
@@ -577,11 +577,11 @@ will have the best performance. Use <a href='#kN32_SkColorType'>kN32_SkColorType
### See Also
-incomplete
+<a href='#Color_Type_RGB_888'>RGB 888</a> <a href='#Color_Type_BGRA_8888'>BGRA 8888</a>
## <a name='Color_Type_RGB_888'>Color Type RGB 888</a>
-<a href='#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a> encodes <a href='SkColor_Reference#RGB'>Color RGB</a> into a 32-bit word. Each component:
+<a href='#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a> encodes RGB into a 32-bit word. Each component:
red, green, blue; use eight bits, describing 256 levels. Eight bits are
unused. Pixels described by <a href='#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a> are fully opaque as if
their <a href='SkColor_Reference#Alpha'>Color Alpha</a> was set to one, and should always be paired with
@@ -593,9 +593,13 @@ their <a href='SkColor_Reference#Alpha'>Color Alpha</a> was set to one, and shou
<div><fiddle-embed name="4260d6cc15db2c60c07f6fdc8d9ae425"></fiddle-embed></div>
+### See Also
+
+<a href='#Color_Type_RGBA_8888'>RGBA 8888</a> <a href='#Color_Type_BGRA_8888'>BGRA 8888</a>
+
## <a name='Color_Type_BGRA_8888'>Color Type BGRA 8888</a>
-<a href='#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a> encodes <a href='SkColor_Reference#ARGB'>Color ARGB</a> into a 32-bit word. Each component:
+<a href='#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a> encodes ARGB into a 32-bit word. Each component:
blue, green, red, and alpha; use eight bits, describing 256 levels.
![Color_Type_BGRA_8888](https://fiddle.skia.org/i/babd0e12db21a88c74d4e88aa40268ab_raster.png "")
@@ -626,7 +630,7 @@ and will have the best performance. Use <a href='#kN32_SkColorType'>kN32_SkColor
## <a name='Color_Type_RGBA_1010102'>Color Type RGBA 1010102</a>
-<a href='#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a> encodes <a href='SkColor_Reference#ARGB'>Color ARGB</a> into a 32-bit word. Each
+<a href='#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a> encodes ARGB into a 32-bit word. Each
<a href='SkColor_Reference#Color'>Color</a> component: red, green, and blue; use ten bits, describing 1024 levels.
Two bits contain alpha, describing four levels. Possible alpha
values are zero: fully transparent; one: 33% opaque; two: 67% opaque;
@@ -655,11 +659,11 @@ less than three, the drawn result is undefined.
### See Also
-incomplete
+<a href='#Color_Type_RGB_101010'>RGB 101010</a> <a href='#Color_Type_RGBA_8888'>RGBA 8888</a>
## <a name='Color_Type_RGB_101010'>Color Type RGB 101010</a>
-<a href='#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a> encodes <a href='SkColor_Reference#RGB'>Color RGB</a> into a 32-bit word. Each
+<a href='#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a> encodes RGB into a 32-bit word. Each
<a href='SkColor_Reference#Color'>Color</a> component: red, green, and blue; use ten bits, describing 1024 levels.
Two bits are unused. Pixels described by <a href='#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a> are fully
opaque as if its <a href='SkColor_Reference#Alpha'>Color Alpha</a> was set to one, and should always be paired
@@ -676,11 +680,11 @@ draw all colors possible to a <a href='#kRGB_101010x_SkColorType'>kRGB_101010x_S
### See Also
-incomplete
+<a href='#Color_Type_RGBA_1010102'>RGBA 1010102</a>
## <a name='Color_Type_Gray_8'>Color Type Gray 8</a>
-<a href='#kGray_8_SkColorType'>kGray_8_SkColorType</a> encodes <a href='SkColor_Reference#Gray'>Color Gray</a> level in eight bits that is equivalent
+<a href='#kGray_8_SkColorType'>kGray_8_SkColorType</a> encodes grayscale level in eight bits that is equivalent
to equal values for red, blue, and green, representing colors from black to
white. Pixels described by <a href='#kGray_8_SkColorType'>kGray_8_SkColorType</a> are fully
opaque as if its <a href='SkColor_Reference#Alpha'>Color Alpha</a> was set to one, and should always be paired with
@@ -692,11 +696,11 @@ opaque as if its <a href='SkColor_Reference#Alpha'>Color Alpha</a> was set to on
### See Also
-incomplete
+<a href='#Color_Type_Alpha_8'>Alpha 8</a>
## <a name='Color_Type_RGBA_F16'>Color Type RGBA F16</a>
-<a href='#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> encodes <a href='SkColor_Reference#ARGB'>Color ARGB</a> into a 64-bit word. Each component:
+<a href='#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> encodes ARGB into a 64-bit word. Each component:
blue, green, red, and alpha; use 16 bits, describing a floating point value.
from -65500 to 65000 with 3.31 decimal digits of precision.
@@ -727,7 +731,7 @@ less than 255, the drawn result is undefined.
### See Also
-incomplete
+<a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a>
<a name='SkColorTypeBytesPerPixel'></a>
## SkColorTypeBytesPerPixel
@@ -1130,7 +1134,7 @@ SkImageInfo global, <code>struct</code>, and <code>class</code> related member f
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Type_ARGB_4444'>Color Type ARGB 4444</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes <a href='SkColor_Reference#ARGB'>Color ARGB</a> in 16 bits</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes ARGB in 16 bits</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Type_Alpha_8'>Color Type Alpha 8</a></td>
@@ -1138,35 +1142,35 @@ SkImageInfo global, <code>struct</code>, and <code>class</code> related member f
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Type_BGRA_8888'>Color Type BGRA 8888</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes <a href='SkColor_Reference#ARGB'>Color ARGB</a> Little_Endian in 32 bits</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes ARGB Little_Endian in 32 bits</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Type_Gray_8'>Color Type Gray 8</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes level of <a href='SkColor_Reference#Gray'>Color Gray</a> in 8 bits</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes level of grayscale in 8 bits</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Type_RGBA_1010102'>Color Type RGBA 1010102</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes <a href='SkColor_Reference#ARGB'>Color ARGB</a> ten bits per color component</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes ARGB ten bits per color component</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Type_RGBA_8888'>Color Type RGBA 8888</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes <a href='SkColor_Reference#ARGB'>Color ARGB</a> Big_Endian in 32 bits</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes ARGB Big_Endian in 32 bits</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Type_RGBA_F16'>Color Type RGBA F16</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes <a href='SkColor_Reference#ARGB'>Color ARGB</a> as half floats</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes ARGB as half floats</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Type_RGB_101010'>Color Type RGB 101010</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes <a href='SkColor_Reference#RGB'>Color RGB</a> ten bits per color component</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes RGB ten bits per color component</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Type_RGB_565'>Color Type RGB 565</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes <a href='SkColor_Reference#RGB'>Color RGB</a> in 16 bits</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes RGB in 16 bits</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Type_RGB_888'>Color Type RGB 888</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes <a href='SkColor_Reference#RGB'>Color RGB</a> in 32 bits</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes RGB in 32 bits</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Property'>Property</a></td>
@@ -2429,7 +2433,7 @@ bool operator!=(const SkImageInfo& other) _const
</pre>
Compares <a href='#Image_Info'>Image Info</a> with <a href='#SkImageInfo_notequal1_operator_other'>other</a>, and returns true if width, height, <a href='#Color_Type'>Color Type</a>,
-<a href='#Alpha_Type'>Alpha Type</a>, and <a href='undocumented#Color_Space'>Color Space</a> are equivalent.
+<a href='#Alpha_Type'>Alpha Type</a>, and <a href='undocumented#Color_Space'>Color Space</a> are not equivalent.
### Parameters
diff --git a/site/user/api/SkImage_Reference.md b/site/user/api/SkImage_Reference.md
index 6403e07b60..ddd4730b89 100644
--- a/site/user/api/SkImage_Reference.md
+++ b/site/user/api/SkImage_Reference.md
@@ -551,14 +551,24 @@ each dimension fits in 29 bits;
---
-# <a name='SkImage_ReleaseContext'>Typedef SkImage::ReleaseContext</a>
+## <a name='SkImage_ReleaseContext'>Typedef SkImage::ReleaseContext</a>
+
+<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
+typedef void* <a href='#SkImage_ReleaseContext'>ReleaseContext</a>;
+</pre>
+
Caller data passed to <a href='#SkImage_RasterReleaseProc'>RasterReleaseProc</a>; may be nullptr.
### See Also
<a href='#SkImage_MakeFromRaster'>MakeFromRaster</a> <a href='#SkImage_RasterReleaseProc'>RasterReleaseProc</a>
-# <a name='SkImage_RasterReleaseProc'>Typedef SkImage::RasterReleaseProc</a>
+## <a name='SkImage_RasterReleaseProc'>Typedef SkImage::RasterReleaseProc</a>
+
+<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
+typedef void (*<a href='#SkImage_RasterReleaseProc'>RasterReleaseProc</a>)(const void* pixels, <a href='#SkImage_ReleaseContext'>ReleaseContext</a>);
+</pre>
+
Function called when <a href='#Image'>Image</a> no longer shares pixels. <a href='#SkImage_ReleaseContext'>ReleaseContext</a> is
provided by caller when <a href='#Image'>Image</a> is created, and may be nullptr.
@@ -750,7 +760,12 @@ created <a href='#Image'>Image</a>, or nullptr
---
-# <a name='SkImage_TextureReleaseProc'>Typedef SkImage::TextureReleaseProc</a>
+## <a name='SkImage_TextureReleaseProc'>Typedef SkImage::TextureReleaseProc</a>
+
+<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
+typedef void (*<a href='#SkImage_TextureReleaseProc'>TextureReleaseProc</a>)(<a href='#SkImage_ReleaseContext'>ReleaseContext</a> releaseContext);
+</pre>
+
User function called when supplied texture may be deleted.
### See Also
@@ -1163,14 +1178,14 @@ created <a href='#Image'>Image</a>, or nullptr
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkImage_BitDepth_kU8'><code>SkImage::BitDepth::kU8</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Use 8 bits per <a href='SkColor_Reference#ARGB'>Color ARGB</a> component using unsigned integer format.
+Use 8 bits per ARGB component using unsigned integer format.
</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkImage_BitDepth_kF16'><code>SkImage::BitDepth::kF16</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-Use 16 bits per <a href='SkColor_Reference#ARGB'>Color ARGB</a> component using half-precision floating point format.
+Use 16 bits per ARGB component using half-precision floating point format.
</td>
</tr>
</table>
@@ -1481,7 +1496,7 @@ or was parsed from encoded data.
### Example
-<div><fiddle-embed name="dac1403132a42459d6881585efbfe74b"></fiddle-embed></div>
+<div><fiddle-embed name="1b9f1f05026ceb14ccb6926a13cdaa83"></fiddle-embed></div>
### See Also
@@ -1504,7 +1519,7 @@ Returns <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> if known; othe
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="50396fad4a128f58e400ca00fe09711f"></fiddle-embed></div>
### See Also
@@ -2499,8 +2514,14 @@ By translating canvas by returned <a href='#SkImage_makeWithFilter_offset'>offse
---
-# <a name='SkImage_BackendTextureReleaseProc'>Typedef SkImage::BackendTextureReleaseProc</a>
-<a href='#SkImage_BackendTextureReleaseProc'>BackendTextureReleaseProc</a>Defines a function take one parameter of type
+## <a name='SkImage_BackendTextureReleaseProc'>Typedef SkImage::BackendTextureReleaseProc</a>
+<a href='#SkImage_BackendTextureReleaseProc'>BackendTextureReleaseProc</a>
+
+<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
+typedef std::function<void(GrBackendTexture)> <a href='#SkImage_BackendTextureReleaseProc'>BackendTextureReleaseProc</a>;
+</pre>
+
+Defines a function take one parameter of type
<a href='undocumented#GrBackendTexture'>GrBackendTexture</a> with no return value.
<a name='SkImage_MakeBackendTextureFromSkImage'></a>
diff --git a/site/user/api/SkMatrix_Reference.md b/site/user/api/SkMatrix_Reference.md
index f7596b414f..3a6852a560 100644
--- a/site/user/api/SkMatrix_Reference.md
+++ b/site/user/api/SkMatrix_Reference.md
@@ -1420,48 +1420,48 @@ Skews are not similar and do not preserve right angles.
<th style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>Value</th>
<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
<tr style='background-color: #f0f0f0; '>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_MemberIndex'><code>MemberIndex</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kMScaleX'><code>SkMatrix::kMScaleX</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>horizontal scale factor</td>
</tr>
<tr>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_MemberIndex'><code>MemberIndex</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kMSkewX'><code>SkMatrix::kMSkewX</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>horizontal skew factor</td>
</tr>
<tr style='background-color: #f0f0f0; '>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_MemberIndex'><code>MemberIndex</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kMTransX'><code>SkMatrix::kMTransX</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>2</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>horizontal translation</td>
</tr>
<tr>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_MemberIndex'><code>MemberIndex</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kMSkewY'><code>SkMatrix::kMSkewY</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>3</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>vertical skew factor</td>
</tr>
<tr style='background-color: #f0f0f0; '>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_MemberIndex'><code>MemberIndex</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kMScaleY'><code>SkMatrix::kMScaleY</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>4</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>vertical scale factor</td>
</tr>
<tr>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_MemberIndex'><code>MemberIndex</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kMTransY'><code>SkMatrix::kMTransY</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>5</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>vertical translation</td>
</tr>
<tr style='background-color: #f0f0f0; '>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_MemberIndex'><code>MemberIndex</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kMPersp0'><code>SkMatrix::kMPersp0</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>6</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>input x perspective factor</td>
</tr>
<tr>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_MemberIndex'><code>MemberIndex</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kMPersp1'><code>SkMatrix::kMPersp1</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>7</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>input y perspective factor</td>
</tr>
<tr style='background-color: #f0f0f0; '>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_MemberIndex'><code>MemberIndex</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kMPersp2'><code>SkMatrix::kMPersp2</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>8</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>perspective bias</td>
</tr>
</table>
@@ -1563,33 +1563,33 @@ perspective bias</td>
<th style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>Value</th>
<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
<tr style='background-color: #f0f0f0; '>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_AffineIndex'><code>AffineIndex</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kAScaleX'><code>SkMatrix::kAScaleX</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>horizontal scale factor</td>
</tr>
<tr>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_AffineIndex'><code>AffineIndex</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kASkewY'><code>SkMatrix::kASkewY</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>1</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>vertical skew factor</td>
</tr>
<tr style='background-color: #f0f0f0; '>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_AffineIndex'><code>AffineIndex</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kASkewX'><code>SkMatrix::kASkewX</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>2</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>horizontal skew factor</td>
</tr>
<tr>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_AffineIndex'><code>AffineIndex</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kAScaleY'><code>SkMatrix::kAScaleY</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>3</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>vertical scale factor</td>
</tr>
<tr style='background-color: #f0f0f0; '>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_AffineIndex'><code>AffineIndex</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kATransX'><code>SkMatrix::kATransX</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>4</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>horizontal translation</td>
</tr>
<tr>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Matrix_AffineIndex'><code>AffineIndex</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>#In Constant</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkMatrix_kATransY'><code>SkMatrix::kATransY</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>5</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>vertical translation</td>
</tr>
</table>
diff --git a/site/user/api/SkPaint_Reference.md b/site/user/api/SkPaint_Reference.md
index 122a4d2b2a..66204867f9 100644
--- a/site/user/api/SkPaint_Reference.md
+++ b/site/user/api/SkPaint_Reference.md
@@ -23,7 +23,7 @@ algorithms that alter the drawing geometry, color, and transparency. For instanc
The objects contained by <a href='#Paint'>Paint</a> are opaque, and cannot be edited outside of the <a href='#Paint'>Paint</a>
to affect it. The implementation is free to defer computations associated with the
<a href='#Paint'>Paint</a>, or ignore them altogether. For instance, some GPU implementations draw all
-<a href='SkPath_Reference#Path'>Path</a> geometries with Anti-aliasing, regardless of how <a href='#SkPaint_kAntiAlias_Flag'>SkPaint::kAntiAlias Flag</a>
+<a href='SkPath_Reference#Path'>Path</a> geometries with <a href='#Anti_Alias'>Anti Aliasing</a>, regardless of how <a href='#SkPaint_kAntiAlias_Flag'>SkPaint::kAntiAlias Flag</a>
is set in <a href='#Paint'>Paint</a>.
<a href='#Paint'>Paint</a> describes a single color, a single font, a single image quality, and so on.
@@ -74,7 +74,7 @@ SkPaint global, <code>struct</code>, and <code>class</code> related member funct
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>get and set <a href='SkColor_Reference#Alpha'>Alpha</a></td>
</tr>
<tr>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Anti-alias</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Anti_Alias'>Anti Alias</a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>approximating coverage with transparency</td>
</tr>
<tr style='background-color: #f0f0f0; '>
@@ -151,7 +151,7 @@ SkPaint global, <code>struct</code>, and <code>class</code> related member funct
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#LCD_Text'>LCD Text</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>text relying on the order of <a href='SkColor_Reference#RGB'>Color RGB</a> stripes</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>text relying on the order of RGB stripes</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Linear_Text'>Linear Text</a></td>
@@ -301,7 +301,7 @@ SkPaint related constants are defined by <code>enum</code>, <code>enum class</co
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias Flag</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>mask for setting Anti-alias</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>mask for setting <a href='#Anti_Alias'>Anti Alias</a></td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting Flag</a></td>
@@ -557,7 +557,7 @@ SkPaint member functions read and modify the structure properties.
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkPaint_getColor'>getColor</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns <a href='SkColor_Reference#Alpha'>Color Alpha</a> and <a href='SkColor_Reference#RGB'>Color RGB</a>, one drawing color</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns <a href='SkColor_Reference#Alpha'>Color Alpha</a> and RGB, one drawing color</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkPaint_getColorFilter'>getColorFilter</a></td>
@@ -693,7 +693,7 @@ SkPaint member functions read and modify the structure properties.
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkPaint_isAntiAlias'>isAntiAlias</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns true if Anti-alias is set</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>returns true if <a href='#Anti_Alias'>Anti Alias</a> is set</td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkPaint_isAutohinted'>isAutohinted</a></td>
@@ -781,7 +781,7 @@ SkPaint member functions read and modify the structure properties.
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkPaint_setAntiAlias'>setAntiAlias</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets or clears Anti-alias</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets or clears <a href='#Anti_Alias'>Anti Alias</a></td>
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkPaint_setAutohinted'>setAutohinted</a></td>
@@ -793,7 +793,7 @@ SkPaint member functions read and modify the structure properties.
</tr>
<tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkPaint_setColor'>setColor</a></td>
- <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets <a href='SkColor_Reference#Alpha'>Color Alpha</a> and <a href='SkColor_Reference#RGB'>Color RGB</a>, one drawing color</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>sets <a href='SkColor_Reference#Alpha'>Color Alpha</a> and RGB, one drawing color</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkPaint_setColorFilter'>setColorFilter</a></td>
@@ -927,7 +927,7 @@ Constructs <a href='#Paint'>Paint</a> with default values.
| attribute | default value |
| --- | --- |
-| Anti-alias | false |
+| <a href='#Anti_Alias'>Anti Alias</a> | false |
| <a href='undocumented#Blend_Mode'>Blend Mode</a> | <a href='undocumented#SkBlendMode_kSrcOver'>SkBlendMode::kSrcOver</a> |
| <a href='SkColor_Reference#Color'>Color</a> | <a href='SkColor_Reference#SK_ColorBLACK'>SK ColorBLACK</a> |
| <a href='SkColor_Reference#Alpha'>Color Alpha</a> | 255 |
@@ -1478,7 +1478,7 @@ multiple settings at once.
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPaint_kAntiAlias_Flag'><code>SkPaint::kAntiAlias_Flag</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>0x0001</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
-mask for setting Anti-alias</td>
+mask for setting Anti_Alias</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPaint_kDither_Flag'><code>SkPaint::kDither_Flag</code></a></td>
@@ -1634,9 +1634,9 @@ paint.isDither()
---
-## <a name='Anti-alias'>Anti-alias</a>
+## <a name='Anti_Alias'>Anti Alias</a>
-Anti-alias drawing approximates partial pixel coverage with transparency.
+<a href='#Anti_Alias'>Anti Alias</a> drawing approximates partial pixel coverage with transparency.
If <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias Flag</a> is clear, pixel centers contained by the shape edge are drawn opaque.
If <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias Flag</a> is set, pixels are drawn with <a href='SkColor_Reference#Alpha'>Color Alpha</a> equal to their coverage.
@@ -1646,14 +1646,14 @@ passing through the pixel center may, but is not required to, draw the pixel.
<a href='undocumented#Raster_Engine'>Raster Engine</a> draws <a href='undocumented#Alias'>Aliased</a> pixels whose centers are on or to the right of the start of an
active <a href='SkPath_Reference#Path'>Path</a> edge, and whose center is to the left of the end of the active <a href='SkPath_Reference#Path'>Path</a> edge.
-A platform may only support Anti-aliased drawing. Some GPU-backed platforms use
-<a href='undocumented#Supersampling'>Supersampling</a> to Anti-alias all drawing, and have no mechanism to selectively
+A platform may only support <a href='#Anti_Alias'>Anti Aliased</a> drawing. Some GPU-backed platforms use
+<a href='undocumented#Supersampling'>Supersampling</a> to <a href='#Anti_Alias'>Anti Alias</a> all drawing, and have no mechanism to selectively
<a href='undocumented#Alias'>Alias</a>.
-The amount of coverage computed for Anti-aliased pixels also varies across platforms.
+The amount of coverage computed for <a href='#Anti_Alias'>Anti Aliased</a> pixels also varies across platforms.
-Anti-alias is disabled by default.
-Anti-alias can be enabled by default by setting <a href='undocumented#SkPaintDefaults_Flags'>SkPaintDefaults Flags</a> to <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias Flag</a>
+<a href='#Anti_Alias'>Anti Alias</a> is disabled by default.
+<a href='#Anti_Alias'>Anti Alias</a> can be enabled by default by setting <a href='undocumented#SkPaintDefaults_Flags'>SkPaintDefaults Flags</a> to <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias Flag</a>
at compile time.
### Example
@@ -1829,17 +1829,17 @@ paint1 == paint2
### See Also
-Gradient <a href='SkColor_Reference#RGB'>Color RGB</a>-565
+Gradient <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>
## <a name='Device_Text'>Device Text</a>
<a href='#LCD_Text'>LCD Text</a> and <a href='#Subpixel_Text'>Subpixel Text</a> increase the precision of glyph position.
-When set, <a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText Flag</a> takes advantage of the organization of <a href='SkColor_Reference#RGB'>Color RGB</a> stripes that
+When set, <a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText Flag</a> takes advantage of the organization of RGB stripes that
create a color, and relies
on the small size of the stripe and visual perception to make the color fringing imperceptible.
<a href='#LCD_Text'>LCD Text</a> can be enabled on devices that orient stripes horizontally or vertically, and that order
-the color components as <a href='SkColor_Reference#RGB'>Color RGB</a> or <a href='SkColor_Reference#RBG'>Color RBG</a>.
+the color components as RGB or BGR.
<a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText Flag</a> uses the pixel transparency to represent a fractional offset.
As the opaqueness
@@ -1989,11 +1989,11 @@ paint1 == paint2
## <a name='LCD_Text'>LCD Text</a>
-When set, <a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText Flag</a> takes advantage of the organization of <a href='SkColor_Reference#RGB'>Color RGB</a> stripes that
+When set, <a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText Flag</a> takes advantage of the organization of RGB stripes that
create a color, and relies
on the small size of the stripe and visual perception to make the color fringing imperceptible.
<a href='#LCD_Text'>LCD Text</a> can be enabled on devices that orient stripes horizontally or vertically, and that order
-the color components as <a href='SkColor_Reference#RGB'>Color RGB</a> or <a href='SkColor_Reference#RBG'>Color RBG</a>.
+the color components as RGB or BGR.
<a name='SkPaint_isLCDRenderText'></a>
## isLCDRenderText
@@ -2544,22 +2544,22 @@ kHigh_SkFilterQuality == paint.getFilterQuality()
| name | description |
| --- | --- |
-| <a href='#SkPaint_getColor'>getColor</a> | returns <a href='SkColor_Reference#Alpha'>Color Alpha</a> and <a href='SkColor_Reference#RGB'>Color RGB</a>, one drawing color |
-| <a href='#SkPaint_setColor'>setColor</a> | sets <a href='SkColor_Reference#Alpha'>Color Alpha</a> and <a href='SkColor_Reference#RGB'>Color RGB</a>, one drawing color |
+| <a href='#SkPaint_getColor'>getColor</a> | returns <a href='SkColor_Reference#Alpha'>Color Alpha</a> and RGB, one drawing color |
+| <a href='#SkPaint_setColor'>setColor</a> | sets <a href='SkColor_Reference#Alpha'>Color Alpha</a> and RGB, one drawing color |
-<a href='SkColor_Reference#Color'>Color</a> specifies the <a href='SkColor_Reference#RGB_Red'>Color RGB Red</a>, <a href='SkColor_Reference#RGB_Blue'>Color RGB Blue</a>, <a href='SkColor_Reference#RGB_Green'>Color RGB Green</a>, and <a href='SkColor_Reference#Alpha'>Color Alpha</a>
+<a href='SkColor_Reference#Color'>Color</a> specifies the red, blue, green, and <a href='SkColor_Reference#Alpha'>Color Alpha</a>
values used to draw a filled or stroked shape in a 32-bit value. Each component
occupies 8-bits, ranging from zero: no contribution; to 255: full intensity.
All values in any combination are valid.
<a href='SkColor_Reference#Color'>Color</a> is not <a href='undocumented#Premultiply'>Premultiplied</a>; <a href='SkColor_Reference#Alpha'>Color Alpha</a> sets the transparency independent of
-<a href='SkColor_Reference#RGB'>Color RGB</a>: <a href='SkColor_Reference#RGB_Red'>Color RGB Red</a>, <a href='SkColor_Reference#RGB_Blue'>Color RGB Blue</a>, and <a href='SkColor_Reference#RGB_Green'>Color RGB Green</a>.
+RGB: red, blue, and green.
-The bit positions of <a href='SkColor_Reference#Alpha'>Color Alpha</a> and <a href='SkColor_Reference#RGB'>Color RGB</a> are independent of the bit
+The bit positions of <a href='SkColor_Reference#Alpha'>Color Alpha</a> and RGB are independent of the bit
positions on the output device, which may have more or fewer bits, and may have
a different arrangement.
-| bit positions | <a href='SkColor_Reference#Alpha'>Color Alpha</a> | <a href='SkColor_Reference#RGB_Red'>Color RGB Red</a> | <a href='SkColor_Reference#RGB_Blue'>Color RGB Blue</a> | <a href='SkColor_Reference#RGB_Green'>Color RGB Green</a> |
+| bit positions | <a href='SkColor_Reference#Alpha'>Color Alpha</a> | red | blue | green |
| --- | --- | --- | --- | --- |
| | 31 - 24 | 23 - 16 | 15 - 8 | 7 - 0 |
@@ -2574,13 +2574,13 @@ a different arrangement.
<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkPaint_getColor'>getColor</a>() const
</pre>
-Retrieves <a href='SkColor_Reference#Alpha'>Alpha</a> and <a href='SkColor_Reference#RGB'>Color RGB</a>, <a href='undocumented#Unpremultiply'>Unpremultiplied</a>, packed into 32 bits.
+Retrieves <a href='SkColor_Reference#Alpha'>Alpha</a> and RGB, <a href='undocumented#Unpremultiply'>Unpremultiplied</a>, packed into 32 bits.
Use helpers <a href='SkColor_Reference#SkColorGetA'>SkColorGetA</a>, <a href='SkColor_Reference#SkColorGetR'>SkColorGetR</a>, <a href='SkColor_Reference#SkColorGetG'>SkColorGetG</a>, and <a href='SkColor_Reference#SkColorGetB'>SkColorGetB</a> to extract
a color component.
### Return Value
-<a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor_Reference#ARGB'>Color ARGB</a>
+<a href='undocumented#Unpremultiply'>Unpremultiplied</a> ARGB
### Example
@@ -2607,13 +2607,13 @@ Yellow is 100% red, 100% green, and 0% blue.
void <a href='#SkPaint_setColor'>setColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> color)
</pre>
-Sets <a href='SkColor_Reference#Alpha'>Alpha</a> and <a href='SkColor_Reference#RGB'>Color RGB</a> used when stroking and filling. The <a href='#SkPaint_setColor_color'>color</a> is a 32-bit value,
-<a href='undocumented#Unpremultiply'>Unpremultiplied</a>, packing 8-bit components for <a href='SkColor_Reference#Alpha'>Alpha</a>, <a href='SkColor_Reference#RGB_Red'>Red</a>, <a href='SkColor_Reference#RGB_Blue'>Blue</a>, and <a href='SkColor_Reference#RGB_Green'>Green</a>.
+Sets <a href='SkColor_Reference#Alpha'>Alpha</a> and RGB used when stroking and filling. The <a href='#SkPaint_setColor_color'>color</a> is a 32-bit value,
+<a href='undocumented#Unpremultiply'>Unpremultiplied</a>, packing 8-bit components for <a href='SkColor_Reference#Alpha'>Alpha</a>, red, blue, and green.
### Parameters
<table> <tr> <td><a name='SkPaint_setColor_color'><code><strong>color</strong></code></a></td>
- <td><a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor_Reference#ARGB'>Color ARGB</a></td>
+ <td><a href='undocumented#Unpremultiply'>Unpremultiplied</a> ARGB</td>
</tr>
</table>
@@ -2637,7 +2637,7 @@ green1 == green2
## <a name='Alpha_Methods'>Alpha Methods</a>
-<a href='SkColor_Reference#Alpha'>Color Alpha</a> sets the transparency independent of <a href='SkColor_Reference#RGB'>Color RGB</a>: <a href='SkColor_Reference#RGB_Red'>Color RGB Red</a>, <a href='SkColor_Reference#RGB_Blue'>Color RGB Blue</a>, and <a href='SkColor_Reference#RGB_Green'>Color RGB Green</a>.
+<a href='SkColor_Reference#Alpha'>Color Alpha</a> sets the transparency independent of RGB: red, blue, and green.
<a name='SkPaint_getAlpha'></a>
## getAlpha
@@ -2673,7 +2673,7 @@ Retrieves <a href='SkColor_Reference#Alpha'>Alpha</a> from the <a href='SkColor_
void <a href='#SkPaint_setAlpha'>setAlpha</a>(<a href='undocumented#U8CPU'>U8CPU</a> a)
</pre>
-Replaces <a href='SkColor_Reference#Alpha'>Alpha</a>, leaving <a href='SkColor_Reference#RGB'>Color RGB</a>
+Replaces <a href='SkColor_Reference#Alpha'>Alpha</a>, leaving RGB
unchanged. An out of range value triggers an assert in the debug
build. <a href='#SkPaint_setAlpha_a'>a</a> is <a href='#SkPaint_setAlpha_a'>a</a> value from zero to 255.
<a href='#SkPaint_setAlpha_a'>a</a> set to zero makes <a href='SkColor_Reference#Color'>Color</a> fully transparent; <a href='#SkPaint_setAlpha_a'>a</a> set to 255 makes <a href='SkColor_Reference#Color'>Color</a>
@@ -2708,7 +2708,7 @@ void <a href='#SkPaint_setARGB'>setARGB</a>(<a href='undocumented#U8CPU'>U8CPU</
</pre>
Sets <a href='SkColor_Reference#Color'>Color</a> used when drawing solid fills. The color components range from 0 to 255.
-The color is <a href='undocumented#Unpremultiply'>Unpremultiplied</a>; <a href='SkColor_Reference#Alpha'>Alpha</a> sets the transparency independent of <a href='SkColor_Reference#RGB'>Color RGB</a>.
+The color is <a href='undocumented#Unpremultiply'>Unpremultiplied</a>; <a href='SkColor_Reference#Alpha'>Alpha</a> sets the transparency independent of RGB.
### Parameters
@@ -2716,13 +2716,13 @@ The color is <a href='undocumented#Unpremultiply'>Unpremultiplied</a>; <a href='
<td>amount of <a href='SkColor_Reference#Alpha'>Color Alpha</a>, from fully transparent (0) to fully opaque (255)</td>
</tr>
<tr> <td><a name='SkPaint_setARGB_r'><code><strong>r</strong></code></a></td>
- <td>amount of <a href='SkColor_Reference#RGB_Red'>Color RGB Red</a>, from no red (0) to full red (255)</td>
+ <td>amount of red, from no red (0) to full red (255)</td>
</tr>
<tr> <td><a name='SkPaint_setARGB_g'><code><strong>g</strong></code></a></td>
- <td>amount of <a href='SkColor_Reference#RGB_Green'>Color RGB Green</a>, from no green (0) to full green (255)</td>
+ <td>amount of green, from no green (0) to full green (255)</td>
</tr>
<tr> <td><a name='SkPaint_setARGB_b'><code><strong>b</strong></code></a></td>
- <td>amount of <a href='SkColor_Reference#RGB_Blue'>Color RGB Blue</a>, from no blue (0) to full blue (255)</td>
+ <td>amount of blue, from no blue (0) to full blue (255)</td>
</tr>
</table>
diff --git a/site/user/api/SkPoint_Reference.md b/site/user/api/SkPoint_Reference.md
index 064bfd8068..a8145ed038 100644
--- a/site/user/api/SkPoint_Reference.md
+++ b/site/user/api/SkPoint_Reference.md
@@ -1738,7 +1738,7 @@ product of input magnitudes and cosine of the angle between them
## <a name='Vector'>Vector</a>
-# <a name='SkVector'>Typedef SkVector</a>
+## <a name='SkVector'>Typedef SkVector</a>
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
typedef <a href='#SkPoint'>SkPoint</a> <a href='#SkVector'>SkVector</a>;
diff --git a/site/user/api/SkSurface_Reference.md b/site/user/api/SkSurface_Reference.md
index 0f38d735cf..559291e944 100644
--- a/site/user/api/SkSurface_Reference.md
+++ b/site/user/api/SkSurface_Reference.md
@@ -1849,7 +1849,7 @@ converting to <a href='#Surface'>Surface</a> colorType() and <a href='#Surface'>
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="760793bcf0ef193fa61ea03e6e8fc825"></fiddle-embed></div>
### See Also
@@ -1887,7 +1887,7 @@ converting to <a href='#Surface'>Surface</a> colorType() and <a href='#Surface'>
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="d77790dd3bc9f678fa4f582347fb8fba"></fiddle-embed></div>
### See Also
diff --git a/site/user/api/catalog.htm b/site/user/api/catalog.htm
index 7e6f3599df..698aed4ded 100644
--- a/site/user/api/catalog.htm
+++ b/site/user/api/catalog.htm
@@ -574,6 +574,48 @@
"name": "SkCanvas::restoreToCount",
"stdout": "depth = 1\\ndepth = 3\\ndepth = 1\\n"
},
+ "SkColor4f_FromColor": {
+ "code": "void draw(SkCanvas* canvas) {\n uint8_t red = 77, green = 101, blue = 153, alpha = 43;\n SkColor argb = SkColorSetARGB(alpha, red, green, blue);\n SkColor4f color4f = SkColor4f::FromColor(argb);\n SkDebugf(\"red=%g green=%g blue=%g alpha=%g\\n\", color4f.fR, color4f.fG, color4f.fB, color4f.fA);\n SkColor fromColor4f = color4f.toSkColor();\n SkDebugf(\"red=%d green=%d blue=%d alpha=%d\\n\", SkColorGetR(fromColor4f),\n SkColorGetG(fromColor4f), SkColorGetB(fromColor4f), SkColorGetA(fromColor4f));\n}",
+ "hash": "33b029064e8d1928e42a587c953d0e4e",
+ "file": "SkColor4f_Reference",
+ "name": "SkColor4f::FromColor",
+ "stdout": "red=0.0742136 green=0.130136 blue=0.318547 alpha=0.168627\\nred=77 green=101 blue=153 alpha=43\\n"
+ },
+ "SkColor4f_equal1_operator": {
+ "code": "void draw(SkCanvas* canvas) {\n SkColor4f colorRed = { 1, 0, 0, 1 };\n SkColor4f colorNamedRed = SkColor4f::FromColor(SK_ColorRED);\n SkDebugf(\"colorRed %c= colorNamedRed\", colorRed == colorNamedRed ? '=' : '!');\n}",
+ "hash": "e5b34bcb7f80f2ed890cdacaa059db0d",
+ "file": "SkColor4f_Reference",
+ "name": "SkColor4f::operator==(const SkColor4f& other)_const",
+ "stdout": "colorRed == colorNamedRed"
+ },
+ "SkColor4f_notequal1_operator": {
+ "code": "void draw(SkCanvas* canvas) {\n SkColor4f colorGray = { .5, .5, .5, 1 };\n SkColor4f colorNamedGray = SkColor4f::FromColor(SK_ColorGRAY);\n SkDebugf(\"colorGray %c= colorNamedGray \", colorGray != colorNamedGray ? '!' : '=');\n}",
+ "hash": "82f1a9b4c2b27aa547061786d1f33dab",
+ "file": "SkColor4f_Reference",
+ "name": "SkColor4f::operator!=(const SkColor4f& other)_const",
+ "stdout": "colorGray != colorNamedGray"
+ },
+ "SkColor4f_toSkColor": {
+ "code": "void draw(SkCanvas* canvas) {\n float red = 0.07, green = 0.13, blue = 0.32, alpha = 0.17;\n SkColor4f color4f = { red, green, blue, alpha };\n SkColor argb = color4f.toSkColor();\n SkDebugf(\"red=%d green=%d blue=%d alpha=%d\\n\", SkColorGetR(argb),\n SkColorGetG(argb), SkColorGetB(argb), SkColorGetA(argb));\n SkColor4f fromSkColor = SkColor4f::FromColor(argb);\n SkDebugf(\"red=%g green=%g blue=%g alpha=%g\\n\", fromSkColor.fR, fromSkColor.fG,\n fromSkColor.fB, fromSkColor.fA);\n}",
+ "hash": "edc5fd18d961f7607d2bcbf7f7d427e5",
+ "file": "SkColor4f_Reference",
+ "name": "SkColor4f::toSkColor",
+ "stdout": "red=75 green=101 blue=153 alpha=43\\nred=0.0703601 green=0.130136 blue=0.318547 alpha=0.168627\\n"
+ },
+ "SkColor4f_vec": {
+ "code": "void draw(SkCanvas* canvas) {\n SkColor4f color = SkColor4f::FromColor(0x884488CC);\n SkDebugf(\"red=%g green=%g blue=%g alpha=%g\\n\", color.fR, color.fG, color.fB, color.fA);\n const float* array = color.vec();\n SkDebugf(\"[0]=%g [1]=%g [2]=%g [3]=%g\\n\", array[0], array[1], array[2], array[3]);\n}",
+ "hash": "229057023515224358a36acf15508cf6",
+ "file": "SkColor4f_Reference",
+ "name": "SkColor4f::vec()",
+ "stdout": "red=0.0578054 green=0.246201 blue=0.603827 alpha=0.533333\\n[0]=0.0578054 [1]=0.246201 [2]=0.603827 [3]=0.533333\\n"
+ },
+ "SkColor4f_vec_2": {
+ "code": "void draw(SkCanvas* canvas) {\n SkColor4f color = SkColor4f::FromColor(0x884488CC);\n SkDebugf(\"red=%g green=%g blue=%g alpha=%g\\n\", color.fR, color.fG, color.fB, color.fA);\n float* array = color.vec();\n array[3] = 1;\n SkDebugf(\"[0]=%g [1]=%g [2]=%g [3]=%g\\n\", array[0], array[1], array[2], array[3]);\n}",
+ "hash": "7420bf0a7cae5c6577c4c4a4613e7e7e",
+ "file": "SkColor4f_Reference",
+ "name": "SkColor4f::vec_2",
+ "stdout": "red=0.0578054 green=0.246201 blue=0.603827 alpha=0.533333\\n[0]=0.0578054 [1]=0.246201 [2]=0.603827 [3]=1\\n"
+ },
"SkIPoint_Make": {
"code": "void draw(SkCanvas* canvas) {\n SkIPoint pt1 = {45, 66};\n SkIPoint pt2 = SkIPoint::Make(45, 66);\n SkDebugf(\"pt1 %c= pt2\\n\", pt1 == pt2 ? '=' : '!');\n}",
"hash": "e5cf5159525bd3140f288a95fe641fae",
@@ -3289,7 +3331,7 @@
"code": "void draw(SkCanvas* canvas) {\n std::vector<uint32_t> srcPixels;\n constexpr int width = 256;\n constexpr int height = 256;\n srcPixels.resize(width * height);\n SkImageInfo imageInfo = SkImageInfo::MakeN32Premul(width, height);\n SkPixmap pixmap(imageInfo, &srcPixels.front(), imageInfo.minRowBytes());\n pixmap.erase(SK_ColorTRANSPARENT);\n pixmap.erase(SK_ColorRED, { 24, 24, 192, 192 } );\n pixmap.erase(SK_ColorTRANSPARENT, { 48, 48, 168, 168 } );\n SkBitmap bitmap;\n bitmap.installPixels(pixmap);\n canvas->drawBitmap(bitmap, 0, 0);\n canvas->drawBitmap(bitmap, 48, 48);\n}",
"width": 256,
"height": 256,
- "hash": "cfda8cd3b435bb28e2f4b9c7f15603a6",
+ "hash": "9ca1e2a5b9b4c92ecf4409d0813867d6",
"file": "SkColor_Reference",
"name": "Color_Constants_Transparent"
},
@@ -3477,13 +3519,13 @@
"file": "SkMatrix_Reference",
"name": "MemberIndex"
},
- "Paint_Anti_alias": {
+ "Paint_Anti_Alias": {
"code": "void draw(SkCanvas* canvas) {\n SkBitmap bitmap;\n bitmap.allocN32Pixels(50, 50);\n SkCanvas offscreen(bitmap);\n SkPaint paint;\n paint.setStyle(SkPaint::kStroke_Style);\n paint.setStrokeWidth(10);\n for (bool antialias : { false, true }) {\n paint.setColor(antialias ? SK_ColorRED : SK_ColorBLUE);\n paint.setAntiAlias(antialias);\n bitmap.eraseColor(0);\n offscreen.drawLine(5, 5, 15, 30, paint);\n canvas->drawLine(5, 5, 15, 30, paint);\n canvas->save();\n canvas->scale(10, 10);\n canvas->drawBitmap(bitmap, antialias ? 12 : 0, 0);\n canvas->restore();\n canvas->translate(15, 0);\n }\n}\n",
"width": 512,
"height": 256,
"hash": "a6575a49467ce8d28bb01cc7638fa04d",
"file": "SkPaint_Reference",
- "name": "Anti-alias"
+ "name": "Anti_Alias"
},
"Paint_Blend_Mode_Methods": {
"code": "void draw(SkCanvas* canvas) {\n SkPaint normal, blender;\n normal.setColor(0xFF58a889);\n blender.setColor(0xFF8958a8);\n canvas->clear(0);\n for (SkBlendMode m : { SkBlendMode::kSrcOver, SkBlendMode::kSrcIn, SkBlendMode::kSrcOut } ) {\n normal.setBlendMode(SkBlendMode::kSrcOver);\n canvas->drawOval(SkRect::MakeXYWH(30, 30, 30, 80), normal);\n blender.setBlendMode(m);\n canvas->drawOval(SkRect::MakeXYWH(10, 50, 80, 30), blender);\n canvas->translate(70, 70);\n }\n}\n",
@@ -4656,8 +4698,8 @@
"SkCanvas_drawString": {
"code": "void draw(SkCanvas* canvas) {\n SkPaint paint;\n canvas->drawString(\"a small hello\", 20, 20, paint);\n}",
"width": 256,
- "height": 256,
- "hash": "65cc4b15cd1a8d067eb1dbfd7e2c17dd",
+ "height": 48,
+ "hash": "85442cf8d0bce6b5a777853bc36a4dc4",
"file": "SkCanvas_Reference",
"name": "SkCanvas::drawString"
},
@@ -4869,107 +4911,59 @@
"file": "SkCanvas_Reference",
"name": "SkCanvas::writePixels_2"
},
- "SkColor4f_FromColor": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
- "width": 256,
- "height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
- "file": "SkColor4f_Reference",
- "name": "SkColor4f::FromColor"
-},
"SkColor4f_Pin": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
+ "code": "void draw(SkCanvas* canvas) {\n uint32_t storage[8];\n SkImageInfo info = SkImageInfo::MakeN32Premul(8, 1);\n SkPixmap pixmap(info, storage, info.minRowBytes());\n pixmap.erase(SK_ColorWHITE);\n SkIRect bounds = {0, 0, 1, 1};\n SkColor4f colors[] = { SkColor4f::Pin(1.5, 0.45f, 0.0, 1), \n SkColor4f::Pin(1, 0.45f, -0.25, 1),\n {1.5, 0.45f, 0.0, 1},\n {1, 0.45f, -0.25, 1},\n };\n for (auto color4f : colors) {\n pixmap.erase(color4f, &bounds);\n bounds.offset(2, 0);\n }\n SkBitmap bitmap;\n canvas->scale(20, 20);\n bitmap.installPixels(pixmap);\n canvas->drawBitmap(bitmap, 0, 0);\n}",
"width": 256,
- "height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
+ "height": 40,
+ "hash": "c989cf16c7f8849874eb008cd701af76",
"file": "SkColor4f_Reference",
"name": "SkColor4f::Pin"
},
- "SkColor4f_equal1_operator": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
- "width": 256,
- "height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
- "file": "SkColor4f_Reference",
- "name": "SkColor4f::operator==(const SkColor4f& other)_const"
-},
- "SkColor4f_notequal1_operator": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
- "width": 256,
- "height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
- "file": "SkColor4f_Reference",
- "name": "SkColor4f::operator!=(const SkColor4f& other)_const"
-},
"SkColor4f_pin": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
+ "code": "void draw(SkCanvas* canvas) {\n uint32_t storage[8];\n SkImageInfo info = SkImageInfo::MakeN32Premul(8, 1);\n SkPixmap pixmap(info, storage, info.minRowBytes());\n pixmap.erase(SK_ColorWHITE);\n SkIRect bounds = {0, 0, 1, 1};\n SkColor4f colors[] = { {1.5, 0.45f, 0.0, 1},\n {1, 0.45f, -0.25, 1},\n };\n for (auto color4f : colors) {\n pixmap.erase(color4f, &bounds);\n bounds.offset(2, 0);\n pixmap.erase(color4f.pin(), &bounds);\n bounds.offset(2, 0);\n }\n SkBitmap bitmap;\n canvas->scale(20, 20);\n bitmap.installPixels(pixmap);\n canvas->drawBitmap(bitmap, 0, 0);\n}",
"width": 256,
- "height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
+ "height": 40,
+ "hash": "9e349862c5189a44d2acef5da24f2e79",
"file": "SkColor4f_Reference",
"name": "SkColor4f::pin()"
},
- "SkColor4f_toSkColor": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
- "width": 256,
- "height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
- "file": "SkColor4f_Reference",
- "name": "SkColor4f::toSkColor"
-},
- "SkColor4f_vec": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
- "width": 256,
- "height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
- "file": "SkColor4f_Reference",
- "name": "SkColor4f::vec()"
-},
- "SkColor4f_vec_2": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
- "width": 256,
- "height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
- "file": "SkColor4f_Reference",
- "name": "SkColor4f::vec_2"
-},
"SkColorGetA": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
+ "code": "void draw(SkCanvas* canvas) {\n SkPaint paint;\n paint.setAntiAlias(true);\n paint.setColor(SK_ColorRED);\n for (int alpha = 255; alpha >= 0; alpha -= 17) {\n paint.setAlpha(alpha);\n canvas->drawRect({5, 5, 100, 20}, paint);\n SkAlpha alphaInPaint = SkColorGetA(paint.getColor());\n canvas->drawString(std::to_string(alphaInPaint).c_str(), 110, 18, paint);\n canvas->translate(0, 15);\n }\n}",
"width": 256,
"height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
+ "hash": "896ce0316b489608a95af5439ca2aab1",
"file": "SkColor_Reference",
"name": "SkColorGetA"
},
"SkColorGetB": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
+ "code": "void draw(SkCanvas* canvas) {\n canvas->drawBitmap(source, 0, 0);\n SkPaint bgPaint;\n bgPaint.setColor(0xafffffff);\n canvas->drawRect({20, 50, 80, 70}, bgPaint);\n uint8_t blue = SkColorGetB(source.getColor(168, 170));\n canvas->drawString(std::to_string(blue).c_str(), 40, 65, SkPaint());\n canvas->drawLine(80, 70, 168, 170, SkPaint());\n}",
"width": 256,
"height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
+ "hash": "9ee27675284faea375611dc88123a2c5",
"file": "SkColor_Reference",
"name": "SkColorGetB"
},
"SkColorGetG": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
+ "code": "void draw(SkCanvas* canvas) {\n canvas->drawBitmap(source, 0, 0);\n SkPaint bgPaint;\n bgPaint.setColor(0xafffffff);\n canvas->drawRect({20, 50, 80, 70}, bgPaint);\n uint8_t green = SkColorGetG(source.getColor(57, 192));\n canvas->drawString(std::to_string(green).c_str(), 40, 65, SkPaint());\n canvas->drawLine(80, 70, 57, 192, SkPaint());\n}",
"width": 256,
"height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
+ "hash": "535d38b2c019299d915170f7b03d5fea",
"file": "SkColor_Reference",
"name": "SkColorGetG"
},
"SkColorGetR": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
+ "code": "void draw(SkCanvas* canvas) {\n canvas->drawBitmap(source, 0, 0);\n SkPaint bgPaint;\n bgPaint.setColor(0xafffffff);\n canvas->drawRect({20, 50, 80, 70}, bgPaint);\n uint8_t red = SkColorGetR(source.getColor(226, 128));\n canvas->drawString(std::to_string(red).c_str(), 40, 65, SkPaint());\n canvas->drawLine(80, 70, 226, 128, SkPaint());\n}",
"width": 256,
"height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
+ "hash": "d6da38577f189eaa6d9df75f6c3ed252",
"file": "SkColor_Reference",
"name": "SkColorGetR"
},
"SkColorSetA": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
+ "code": "void draw(SkCanvas* canvas) {\n canvas->drawBitmap(source, 0, 0);\n for (int y = 0; y < 256; y += 16) {\n for (int x = 0; x < 256; x += 16) {\n SkColor color = source.getColor(x + 8, y + 8);\n SkPaint paint;\n paint.setColor(SkColorSetA(color, x + y));\n canvas->drawRect(SkRect::MakeXYWH(x, y, 16, 16), paint);\n }\n }\n}",
"width": 256,
"height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
+ "hash": "18f6f376f771f5ffa56d5e5b2ebd20fb",
"file": "SkColor_Reference",
"name": "SkColorSetA"
},
@@ -4990,10 +4984,10 @@
"name": "SkColorSetRGB"
},
"SkColorToHSV": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
+ "code": "void draw(SkCanvas* canvas) {\n canvas->drawBitmap(source, 0, 0);\n for (int y = 0; y < 256; ++y) {\n for (int x = 0; x < 256; ++x) {\n SkScalar hsv[3];\n SkColorToHSV(source.getColor(x, y), hsv);\n SkTSwap(hsv[1], hsv[2]);\n SkPaint paint;\n paint.setColor(SkHSVToColor(hsv));\n canvas->drawRect(SkRect::MakeXYWH(x, y, 1, 1), paint);\n }\n }\n}",
"width": 256,
"height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
+ "hash": "7d7e427e2b181c651abad5732bc46cf7",
"file": "SkColor_Reference",
"name": "SkColorToHSV"
},
@@ -5022,18 +5016,18 @@
"name": "SkColorTypeValidateAlphaType"
},
"SkHSVToColor": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
+ "code": "void draw(SkCanvas* canvas) {\n canvas->drawBitmap(source, 0, 0);\n for (int y = 0; y < 256; ++y) {\n for (int x = 0; x < 256; ++x) {\n SkColor color = source.getColor(x, y);\n SkScalar hsv[3];\n SkColorToHSV(color, hsv);\n hsv[0] = hsv[0] + 90 >= 360 ? hsv[0] - 270 : hsv[0] + 90;\n SkPaint paint;\n paint.setColor(SkHSVToColor(x + y, hsv));\n canvas->drawRect(SkRect::MakeXYWH(x, y, 1, 1), paint);\n }\n }\n}",
"width": 256,
"height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
+ "hash": "311a59931ac340b90f202cd6ac399a0a",
"file": "SkColor_Reference",
"name": "SkHSVToColor"
},
"SkHSVToColor_2": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
+ "code": "void draw(SkCanvas* canvas) {\n canvas->drawBitmap(source, 0, 0);\n for (int y = 0; y < 256; ++y) {\n for (int x = 0; x < 256; ++x) {\n SkColor color = source.getColor(x, y);\n SkScalar hsv[3];\n SkColorToHSV(color, hsv);\n hsv[0] = hsv[0] + 90 >= 360 ? hsv[0] - 270 : hsv[0] + 90;\n SkPaint paint;\n paint.setColor(SkHSVToColor(hsv));\n canvas->drawRect(SkRect::MakeXYWH(x, y, 1, 1), paint);\n }\n }\n}",
"width": 256,
"height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
+ "hash": "d355a17547908cdbc2c38720974b5d11",
"file": "SkColor_Reference",
"name": "SkHSVToColor_2"
},
@@ -5326,10 +5320,10 @@
"name": "SkImage::MakeRasterData"
},
"SkImage_alphaType": {
- "code": "void draw(SkCanvas* canvas) {\n const char* alphaTypeStr[] = { \"Unknown\", \"Opaque\", \"Premul\", \"Unpremul\" };\n SkAlphaType alphaType = image->alphaType();\n canvas->drawImage(image, 16, 0);\n SkPaint paint;\n canvas->drawString(alphaTypeStr[(int) alphaType], 20, image->height() + 20, paint);\n}",
+ "code": "void draw(SkCanvas* canvas) {\n const char* alphaTypeStr[] = { \"Unknown\", \"Opaque\", \"Premul\", \"Unpremul\" };\n SkAlphaType alphaType = image->alphaType();\n canvas->drawImage(image, 16, 0);\n canvas->drawString(alphaTypeStr[(int) alphaType], 20, image->height() + 20, SkPaint());\n}",
"width": 256,
"height": 96,
- "hash": "dac1403132a42459d6881585efbfe74b",
+ "hash": "1b9f1f05026ceb14ccb6926a13cdaa83",
"file": "SkImage_Reference",
"name": "SkImage::alphaType"
},
@@ -5358,10 +5352,10 @@
"name": "SkImage::colorSpace"
},
"SkImage_colorType": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
+ "code": "void draw(SkCanvas* canvas) {\n const char* colors[] = { \"Unknown\", \"Alpha_8\", \"RGB_565\", \"ARGB_4444\", \"RGBA_8888\", \"RGB_888x\",\n \"BGRA_8888\", \"RGBA_1010102\", \"RGB_101010x\", \"Gray_8\", \"RGBA_F16\" };\n SkColorType colorType = image->colorType();\n canvas->drawImage(image, 16, 0);\n canvas->drawString(colors[(int) colorType], 20, image->height() + 20, SkPaint());\n}",
"width": 256,
- "height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
+ "height": 96,
+ "hash": "50396fad4a128f58e400ca00fe09711f",
"file": "SkImage_Reference",
"name": "SkImage::colorType"
},
@@ -7150,26 +7144,26 @@
"name": "SkPoint::operator-=(const SkVector& v)"
},
"SkPreMultiplyARGB": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
- "width": 256,
- "height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
+ "code": "void draw(SkCanvas* canvas) {\n SkPMColor premultiplied = SkPreMultiplyARGB(160, 128, 160, 192);\n canvas->drawString(\"Unpremultiplied:\", 20, 20, SkPaint());\n canvas->drawString(\"alpha=160 red=128 green=160 blue=192\", 20, 40, SkPaint());\n canvas->drawString(\"Premultiplied:\", 20, 80, SkPaint());\n std::string str = \"alpha=\" + std::to_string(SkColorGetA(premultiplied));\n str += \" red=\" + std::to_string(SkColorGetR(premultiplied));\n str += \" green=\" + std::to_string(SkColorGetG(premultiplied));\n str += \" blue=\" + std::to_string(SkColorGetB(premultiplied));\n canvas->drawString(str.c_str(), 20, 100, SkPaint());\n}",
+ "width": 300,
+ "height": 128,
+ "hash": "756345484fd48ca0ea7b6cec350f73b8",
"file": "SkColor_Reference",
"name": "SkPreMultiplyARGB"
},
"SkPreMultiplyColor": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
- "width": 256,
- "height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
+ "code": "void draw(SkCanvas* canvas) {\n SkColor unpremultiplied = SkColorSetARGB(160, 128, 160, 192);\n SkPMColor premultiplied = SkPreMultiplyColor(unpremultiplied);\n canvas->drawString(\"Unpremultiplied:\", 20, 20, SkPaint());\n std::string str = \"alpha=\" + std::to_string(SkColorGetA(unpremultiplied));\n str += \" red=\" + std::to_string(SkColorGetR(unpremultiplied));\n str += \" green=\" + std::to_string(SkColorGetG(unpremultiplied));\n str += \" blue=\" + std::to_string(SkColorGetB(unpremultiplied));\n canvas->drawString(str.c_str(), 20, 40, SkPaint());\n canvas->drawString(\"Premultiplied:\", 20, 80, SkPaint());\n str = \"alpha=\" + std::to_string(SkColorGetA(premultiplied));\n str += \" red=\" + std::to_string(SkColorGetR(premultiplied));\n str += \" green=\" + std::to_string(SkColorGetG(premultiplied));\n str += \" blue=\" + std::to_string(SkColorGetB(premultiplied));\n canvas->drawString(str.c_str(), 20, 100, SkPaint());\n}",
+ "width": 300,
+ "height": 128,
+ "hash": "0bcc0f86a2aefc899f3500503dce6968",
"file": "SkColor_Reference",
"name": "SkPreMultiplyColor"
},
"SkRGBToHSV": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
+ "code": "void draw(SkCanvas* canvas) {\n canvas->drawBitmap(source, 0, 0);\n SkPaint bgPaint;\n bgPaint.setColor(0xafffffff);\n canvas->drawRect({20, 30, 110, 90}, bgPaint);\n SkScalar hsv[3];\n SkColor c = source.getColor(226, 128);\n SkRGBToHSV(SkColorGetR(c), SkColorGetG(c), SkColorGetB(c), hsv);\n canvas->drawString((\"h: \" + std::to_string(hsv[0]).substr(0, 6)).c_str(), 27, 45, SkPaint());\n canvas->drawString((\"s: \" + std::to_string(hsv[1]).substr(0, 6)).c_str(), 27, 65, SkPaint());\n canvas->drawString((\"v: \" + std::to_string(hsv[2]).substr(0, 6)).c_str(), 27, 85, SkPaint());\n canvas->drawLine(110, 90, 226, 128, SkPaint());\n}",
"width": 256,
"height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
+ "hash": "4fb2da4a3d9b14ca4ac24eefb0f5126a",
"file": "SkColor_Reference",
"name": "SkRGBToHSV"
},
@@ -7302,18 +7296,18 @@
"name": "SkSurface::readPixels_3"
},
"SkSurface_writePixels": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
+ "code": "void draw(SkCanvas* canvas) {\n sk_sp<SkSurface> surf(SkSurface::MakeRasterN32Premul(64, 64));\n auto surfCanvas = surf->getCanvas();\n surfCanvas->clear(SK_ColorRED);\n SkPaint paint;\n paint.setTextSize(40);\n surfCanvas->drawString(\"&\", 16, 40, paint);\n SkPixmap pixmap;\n if (surf->peekPixels(&pixmap)) {\n surf->writePixels(pixmap, 25, 25);\n sk_sp<SkImage> image(surf->makeImageSnapshot());\n canvas->drawImage(image, 0, 0);\n }\n}",
"width": 256,
- "height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
+ "height": 96,
+ "hash": "760793bcf0ef193fa61ea03e6e8fc825",
"file": "SkSurface_Reference",
"name": "SkSurface::writePixels"
},
"SkSurface_writePixels_2": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
+ "code": "void draw(SkCanvas* canvas) {\n sk_sp<SkSurface> surf(SkSurface::MakeRasterN32Premul(64, 64));\n auto surfCanvas = surf->getCanvas();\n surfCanvas->clear(SK_ColorGREEN);\n surf->writePixels(source, 25, 25);\n sk_sp<SkImage> image(surf->makeImageSnapshot());\n canvas->drawImage(image, 0, 0);\n}",
"width": 256,
- "height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
+ "height": 96,
+ "hash": "d77790dd3bc9f678fa4f582347fb8fba",
"file": "SkSurface_Reference",
"name": "SkSurface::writePixels_2"
}
diff --git a/site/user/api/undocumented.md b/site/user/api/undocumented.md
index b4f83bd4b4..a3034eb73f 100644
--- a/site/user/api/undocumented.md
+++ b/site/user/api/undocumented.md
@@ -504,7 +504,7 @@ void <a href='#SkPixelRef_setImmutable'>setImmutable</a>()
# <a name='SkRasterHandleAllocator'>Class SkRasterHandleAllocator</a>
-# <a name='SkRasterHandleAllocator_Handle'>Typedef SkRasterHandleAllocator::Handle</a>
+## <a name='SkRasterHandleAllocator_Handle'>Typedef SkRasterHandleAllocator::Handle</a>
# <a name='SkRasterHandleAllocator_Rec'>Struct SkRasterHandleAllocator::Rec</a>
@@ -579,7 +579,7 @@ void <a href='#SkRRect_dumpHex'>dumpHex</a>() const
# <a name='Scalar'>Scalar</a>
-# <a name='SkScalar'>Typedef SkScalar</a>
+## <a name='SkScalar'>Typedef SkScalar</a>
# <a name='Shader'>Shader</a>
diff --git a/tools/bookmaker/definition.cpp b/tools/bookmaker/definition.cpp
index 9a6d0f6d49..1c6b1ebbe0 100644
--- a/tools/bookmaker/definition.cpp
+++ b/tools/bookmaker/definition.cpp
@@ -338,9 +338,6 @@ bool Definition::boilerplateIfDef() {
// fixme: this will need to be more complicated to handle all of Skia
// for now, just handle paint -- maybe fiddle will loosen naming restrictions
void Definition::setCanonicalFiddle() {
- if (string::npos != fName.find("SkCanvas::SaveLayerRec")) {
- SkDebugf("");
- }
fMethodType = Definition::MethodType::kNone;
size_t doubleColons = fName.find("::", 0);
SkASSERT(string::npos != doubleColons);
diff --git a/tools/bookmaker/includeWriter.cpp b/tools/bookmaker/includeWriter.cpp
index c1a98cf786..b183a958ec 100644
--- a/tools/bookmaker/includeWriter.cpp
+++ b/tools/bookmaker/includeWriter.cpp
@@ -1826,6 +1826,7 @@ string IncludeWriter::resolveRef(const char* start, const char* end, bool first,
;
} else if (!first) {
this->fChar = start;
+ this->fLine = start;
this->reportError("reference unfound");
return "";
}
diff --git a/tools/bookmaker/mdOut.cpp b/tools/bookmaker/mdOut.cpp
index 7f07bc2d3e..0c88727c88 100644
--- a/tools/bookmaker/mdOut.cpp
+++ b/tools/bookmaker/mdOut.cpp
@@ -334,9 +334,6 @@ string MdOut::addReferences(const char* refStart, const char* refEnd,
continue;
}
ref = string(start, t.fChar - start);
- if (fMethod && "SkSurface::MakeRenderTarget" == fMethod->fName && "is" == ref) {
- SkDebugf("");
- }
if (const Definition* def = this->isDefined(t, ref, resolvable)) {
if (MarkType::kExternal == def->fMarkType) {
(void) this->anchorRef("undocumented#" + ref, ""); // for anchor validate
@@ -800,9 +797,9 @@ void MdOut::summaryOut(const Definition* def, MarkType markType, string name) {
FPRINTF("%s", odd ? kTR_Dark.c_str() : " <tr>");
this->lfAlways(1);
if (MarkType::kConst == markType) {
- FPRINTF("%s", tableDataCodeRef(def).c_str());
+ FPRINTF("%s", tableDataCodeRef(child).c_str());
this->lfAlways(1);
- FPRINTF("%s", table_data_const(def, nullptr).c_str());
+ FPRINTF("%s", table_data_const(child, nullptr).c_str());
} else {
string memberType;
string memberName = this->getMemberTypeName(child, &memberType);
@@ -1214,9 +1211,6 @@ void MdOut::markTypeOut(Definition* def, const Definition** prior) {
bool lookForOneLiner = false;
// #Param and #Const don't have markers to say when the last is seen, so detect that by looking
// for a change in type.
- if (MarkType::kStruct == def->fMarkType) {
- SkDebugf("");
- }
if (writeTableEnd(MarkType::kParam, def, prior) || writeTableEnd(MarkType::kConst, def, prior)
|| writeTableEnd(MarkType::kMember, def, prior)) {
this->writePending();
@@ -1372,6 +1366,9 @@ void MdOut::markTypeOut(Definition* def, const Definition** prior) {
this->lfAlways(1);
} break;
case MarkType::kDefine:
+ this->mdHeaderOut(2);
+ this->htmlOut(anchorDef(def->fFiddle, "Define " + def->fName));
+ this->lf(2);
break;
case MarkType::kDefinedBy:
break;
@@ -1436,7 +1433,6 @@ void MdOut::markTypeOut(Definition* def, const Definition** prior) {
this->lf(2);
break;
case MarkType::kExternal:
- SkDebugf("");
break;
case MarkType::kFormula:
break;
@@ -1708,7 +1704,7 @@ void MdOut::markTypeOut(Definition* def, const Definition** prior) {
this->lf(1);
} break;
case MarkType::kTypedef:
- this->mdHeaderOut(1);
+ this->mdHeaderOut(2);
this->htmlOut(anchorDef(def->fFiddle, "Typedef " + def->fName));
this->lf(1);
break;
@@ -1724,12 +1720,7 @@ void MdOut::markTypeOut(Definition* def, const Definition** prior) {
SkASSERT(0); // handle everything
break;
}
- // TableState saveState = fTableState;
- if (def->fLineCount >= 533 && string::npos != def->fFileName.find("SkSurface")) {
- SkDebugf("");
- }
this->childrenOut(def, textStart);
- // fTableState = saveState;
switch (def->fMarkType) { // post child work, at least for tables
case MarkType::kAnchor:
if (fColumn > 0) {
@@ -1968,8 +1959,6 @@ void MdOut::populateTables(const Definition* def, RootDefinition* root) {
}
if (!builtInTopic) {
root->populator(SubtopicKeys::kRelatedFunctions).fMembers.push_back(child);
- } else {
- SkDebugf("");
}
}
this->populateTables(child, root);