docs with more pop
Replace a hunk of documentation in docs/*.bmh
with #Populate, which instructs bookmaker to
retrieve the documentation from include/core.
Check spelling for all documentation retrieved
from include/core against Skia declarations
and a list of words in spelling.txt.
TBR=caryclark@google.com
Docs-Preview: https://skia.org/?cl=163491
Bug: skia:
Change-Id: If057c3a1336e312ad59c084a3a130f0276802496
Reviewed-on: https://skia-review.googlesource.com/c/163491
Commit-Queue: Cary Clark <caryclark@skia.org>
Reviewed-by: Cary Clark <caryclark@skia.org>
Auto-Submit: Cary Clark <caryclark@skia.org>
diff --git a/docs/SkAutoCanvasRestore_Reference.bmh b/docs/SkAutoCanvasRestore_Reference.bmh
index a969195..2247c9b 100644
--- a/docs/SkAutoCanvasRestore_Reference.bmh
+++ b/docs/SkAutoCanvasRestore_Reference.bmh
@@ -13,12 +13,7 @@
#Method SkAutoCanvasRestore(SkCanvas* canvas, bool doSave)
#Line # preserves Canvas save count ##
-Preserves Canvas save count. Optionally saves Canvas_Clip and Canvas_Matrix.
-
-#Param canvas Canvas to guard ##
-#Param doSave call SkCanvas::save() ##
-
-#Return utility to restore Canvas state on destructor ##
+#Populate
#Example
#Height 128
@@ -42,8 +37,7 @@
#Method ~SkAutoCanvasRestore()
#Line # restores Canvas to saved state ##
-Restores Canvas to saved state. Destructor is called when container goes out of
-scope.
+#Populate
#NoExample
##
@@ -55,8 +49,7 @@
#Method void restore()
#In Member_Function
#Line # restores Canvas to saved state ##
-Restores Canvas to saved state immediately. Subsequent calls and
-~SkAutoCanvasRestore have no effect.
+#Populate
#Example
for (bool callRestore : { false, true } ) {
diff --git a/docs/SkBitmap_Reference.bmh b/docs/SkBitmap_Reference.bmh
index 7faaf33..8205834 100644
--- a/docs/SkBitmap_Reference.bmh
+++ b/docs/SkBitmap_Reference.bmh
@@ -52,14 +52,7 @@
#Method virtual bool allocPixelRef(SkBitmap* bitmap) = 0
#Line # allocates pixel memory ##
-
-Allocates the pixel memory for the bitmap, given its dimensions and
-Color_Type. Returns true on success, where success means either setPixels
-or setPixelRef was called.
-
-#Param bitmap Bitmap containing Image_Info as input, and Pixel_Ref as output ##
-
-#Return true if Pixel_Ref was allocated ##
+#Populate
#NoExample
##
@@ -87,13 +80,7 @@
#Method bool allocPixelRef(SkBitmap* bitmap) override
#Line # allocates pixel memory ##
-Allocates the pixel memory for the bitmap, given its dimensions and
-Color_Type. Returns true on success, where success means either setPixels
-or setPixelRef was called.
-
-#Param bitmap Bitmap containing Image_Info as input, and Pixel_Ref as output ##
-
-#Return true if pixels are allocated ##
+#Populate
#Example
SkBitmap bitmap;
@@ -123,14 +110,7 @@
#Method SkBitmap()
#Line # constructs with default values ##
-Creates an empty Bitmap without pixels, with kUnknown_SkColorType,
-kUnknown_SkAlphaType, and with a width and height of zero. Pixel_Ref origin is
-set to (0, 0). Bitmap is not volatile.
-
-Use setInfo to associate SkColorType, SkAlphaType, width, and height
-after Bitmap has been created.
-
-#Return empty Bitmap ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -161,12 +141,7 @@
#Method SkBitmap(const SkBitmap& src)
#Line # shares ownership of pixels ##
-Copies settings from src to returned Bitmap. Shares pixels if src has pixels
-allocated, so both bitmaps reference the same pixels.
-
-#Param src Bitmap to copy Image_Info, and share Pixel_Ref ##
-
-#Return copy of src ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -195,12 +170,7 @@
#Method SkBitmap(SkBitmap&& src)
#Line # takes ownership of pixels ##
-Copies settings from src to returned Bitmap. Moves ownership of src pixels to
-Bitmap.
-
-#Param src Bitmap to copy Image_Info, and reassign Pixel_Ref ##
-
-#Return copy of src ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -229,7 +199,7 @@
#Method ~SkBitmap()
#Line # releases ownership of pixels ##
-Decrements Pixel_Ref reference count, if Pixel_Ref is not nullptr.
+#Populate
#NoExample
##
@@ -243,12 +213,7 @@
#Method SkBitmap& operator=(const SkBitmap& src)
#Line # shares ownership of pixels ##
-Copies settings from src to returned Bitmap. Shares pixels if src has pixels
-allocated, so both bitmaps reference the same pixels.
-
-#Param src Bitmap to copy Image_Info, and share Pixel_Ref ##
-
-#Return copy of src ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -277,12 +242,7 @@
#Method SkBitmap& operator=(SkBitmap&& src)
#Line # takes ownership of pixels ##
-Copies settings from src to returned Bitmap. Moves ownership of src pixels to
-Bitmap.
-
-#Param src Bitmap to copy Image_Info, and reassign Pixel_Ref ##
-
-#Return copy of src ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -311,9 +271,7 @@
#Method void swap(SkBitmap& other)
#In Utility
#Line # exchanges Bitmap pair ##
-Swaps the fields of the two bitmaps.
-
-#Param other Bitmap exchanged with original ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -359,10 +317,7 @@
#Method const SkPixmap& pixmap() const
#In Property
#Line # returns Pixmap ##
-Returns a constant reference to the Pixmap holding the Bitmap pixel
-address, row bytes, and Image_Info.
-
-#Return reference to Pixmap describing this Bitmap ##
+#Populate
#Example
SkBitmap bitmap;
@@ -406,9 +361,7 @@
#Method const SkImageInfo& info() const
#In Property
#Line # returns Image_Info ##
-Returns width, height, Alpha_Type, Color_Type, and Color_Space.
-
-#Return reference to Image_Info ##
+#Populate
#Example
#Image 4
@@ -462,12 +415,7 @@
#Method int height() const
#In Property
#Line # returns pixel row count ##
-Returns pixel row count.
-
-Maybe be less than pixelRef().height(). Will not exceed pixelRef().height() less
-pixelRefOrigin().fY.
-
-#Return pixel height in Image_Info ##
+#Populate
#Example
SkImageInfo info = SkImageInfo::MakeA8(16, 32);
@@ -534,11 +482,7 @@
#Method SkColorSpace* colorSpace() const
#In Property
#Line # returns Image_Info Color_Space ##
-Returns Color_Space, the range of colors, associated with Image_Info. The
-reference count of Color_Space is unchanged. The returned Color_Space is
-immutable.
-
-#Return Color_Space in Image_Info, or nullptr ##
+#Populate
#Example
#Description
@@ -567,13 +511,7 @@
#Method sk_sp<SkColorSpace> refColorSpace() const
#In Property
#Line # returns Image_Info Color_Space ##
-Returns smart pointer to Color_Space, the range of colors, associated with
-Image_Info. The smart pointer tracks the number of objects sharing this
-Color_Space reference so the memory is released when the owners destruct.
-
-The returned Color_Space is immutable.
-
-#Return Color_Space in Image_Info wrapped in a smart pointer ##
+#Populate
#Example
SkBitmap bitmap1, bitmap2;
@@ -600,10 +538,7 @@
#Method int bytesPerPixel() const
#In Property
#Line # returns number of bytes in pixel based on Color_Type ##
-Returns number of bytes per pixel required by Color_Type.
-Returns zero if colorType( is kUnknown_SkColorType.
-
-#Return bytes in pixel ##
+#Populate
#Example
const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
@@ -641,10 +576,7 @@
#Method int rowBytesAsPixels() const
#In Property
#Line # returns interval between rows in pixels ##
-Returns number of pixels that fit on row. Should be greater than or equal to
-width().
-
-#Return maximum pixels per row ##
+#Populate
#Example
SkBitmap bitmap;
@@ -670,10 +602,7 @@
#Method int shiftPerPixel() const
#In Property
#Line # returns bit shift from pixels to bytes ##
-Returns bit shift converting row bytes to row pixels.
-Returns zero for kUnknown_SkColorType.
-
-#Return one of: 0, 1, 2, 3; left shift to convert pixels to bytes ##
+#Populate
#Example
const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
@@ -711,12 +640,7 @@
#Method bool empty() const
#In Property
#Line # returns true if Image_Info has zero width() or height() ##
-Returns true if either width() or height() are zero.
-
-Does not check if Pixel_Ref is nullptr; call drawsNothing to check width(),
-height(), and Pixel_Ref.
-
-#Return true if dimensions do not enclose area ##
+#Populate
#Example
SkBitmap bitmap;
@@ -744,12 +668,7 @@
#Method bool isNull() const
#In Property
#Line # returns true if Pixel_Ref is nullptr ##
-Returns true if Pixel_Ref is nullptr.
-
-Does not check if width() or height() are zero; call drawsNothing to check
-width(), height(), and Pixel_Ref.
-
-#Return true if no Pixel_Ref is associated ##
+#Populate
#Example
SkBitmap bitmap;
@@ -774,10 +693,7 @@
#Method bool drawsNothing() const
#In Property
#Line # returns true if no width(), no height(), or no Pixel_Ref ##
-Returns true if width() or height() are zero, or if Pixel_Ref is nullptr.
-If true, Bitmap has no effect when drawn or drawn into.
-
-#Return true if drawing has no effect ##
+#Populate
#Example
SkBitmap bitmap;
@@ -835,33 +751,7 @@
#Method bool setAlphaType(SkAlphaType alphaType)
#In Set
#Line # sets Alpha_Type of shared pixels ##
-Sets Alpha_Type, if alphaType is compatible with Color_Type.
-Returns true unless alphaType is kUnknown_SkAlphaType and current Alpha_Type
-is not kUnknown_SkAlphaType.
-
-Returns true if Color_Type is kUnknown_SkColorType. alphaType is ignored, and
-Alpha_Type remains kUnknown_SkAlphaType.
-
-Returns true if Color_Type is kRGB_565_SkColorType or kGray_8_SkColorType.
-alphaType is ignored, and Alpha_Type remains kOpaque_SkAlphaType.
-
-If Color_Type is kARGB_4444_SkColorType, kRGBA_8888_SkColorType,
-kBGRA_8888_SkColorType, or kRGBA_F16_SkColorType: returns true unless
-alphaType is kUnknown_SkAlphaType and Alpha_Type is not kUnknown_SkAlphaType.
-If Alpha_Type is kUnknown_SkAlphaType, alphaType is ignored.
-
-If Color_Type is kAlpha_8_SkColorType, returns true unless
-alphaType is kUnknown_SkAlphaType and Alpha_Type is not kUnknown_SkAlphaType.
-If Alpha_Type is kUnknown_SkAlphaType, alphaType is ignored. If alphaType is
-kUnpremul_SkAlphaType, it is treated as kPremul_SkAlphaType.
-
-This changes Alpha_Type in Pixel_Ref; all bitmaps sharing Pixel_Ref
-are affected.
-
-#Param alphaType one of: #list_of_alpha_types#
-##
-
-#Return true if Alpha_Type is set ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -897,9 +787,7 @@
#Method void* getPixels() const
#In Property
#Line # returns address of pixels ##
-Returns pixel address, the base address corresponding to the pixel origin.
-
-#Return pixel address ##
+#Populate
#Example
SkBitmap bitmap;
@@ -927,13 +815,7 @@
#Method size_t computeByteSize() const
#In Utility
#Line # returns size required for pixels ##
-Returns minimum memory required for pixel storage.
-Does not include unused memory on last row when rowBytesAsPixels exceeds width().
-Returns zero if result does not fit in size_t.
-Returns zero if height() or width() is 0.
-Returns height() times rowBytes if colorType is kUnknown_SkColorType.
-
-#Return size in bytes of image buffer ##
+#Populate
#Example
SkBitmap bitmap;
@@ -967,11 +849,7 @@
#Method bool isImmutable() const
#In Property
#Line # returns true if pixels will not change ##
-Returns true if pixels can not change.
-
-Most immutable Bitmap checks trigger an assert only on debug builds.
-
-#Return true if pixels are immutable ##
+#Populate
#Example
SkBitmap original;
@@ -998,11 +876,7 @@
#Method void setImmutable()
#In Set
#Line # marks that pixels will not change ##
-Sets internal flag to mark Bitmap as immutable. Once set, pixels can not change.
-Any other bitmap sharing the same Pixel_Ref are also marked as immutable.
-Once Pixel_Ref is marked immutable, the setting cannot be cleared.
-
-Writing to immutable Bitmap pixels triggers an assert on debug builds.
+#Populate
#Example
#Description
@@ -1028,15 +902,7 @@
#Method bool isOpaque() const
#In Property
#Line # returns true if Image_Info describes opaque pixels ##
-
-Returns true if Alpha_Type is set to hint that all pixels are opaque; their
-Color_Alpha value is implicitly or explicitly 1.0. If true, and all pixels are
-not opaque, Skia may draw incorrectly.
-
-Does not check if Color_Type allows Alpha, or if any pixel value has
-transparency.
-
-#Return true if Image_Info Alpha_Type is kOpaque_SkAlphaType ##
+#Populate
#Example
#Description
@@ -1071,12 +937,7 @@
#Method bool isVolatile() const
#In Property
#Line # returns true if pixels should not be cached ##
-Provides a hint to caller that pixels should not be cached. Only true if
-setIsVolatile has been called to mark as volatile.
-
-Volatile state is not shared by other bitmaps sharing the same Pixel_Ref.
-
-#Return true if marked volatile ##
+#Populate
#Example
SkBitmap original;
@@ -1103,14 +964,7 @@
#Method void setIsVolatile(bool isVolatile)
#In Set
#Line # marks if pixels should not be cached ##
-Sets if pixels should be read from Pixel_Ref on every access. Bitmaps are not
-volatile by default; a GPU back end may upload pixel values expecting them to be
-accessed repeatedly. Marking temporary Bitmaps as volatile provides a hint to
-Device that the Bitmap pixels should not be cached. This can
-improve performance by avoiding overhead and reducing resource
-consumption on Device.
-
-#Param isVolatile true if backing pixels are temporary ##
+#Populate
#Example
#Height 20
@@ -1136,14 +990,7 @@
#Method void reset()
#In Constructors
#Line # sets to default values, releases pixel ownership ##
-Resets to its initial state; all fields are set to zero, as if Bitmap had
-been initialized by SkBitmap().
-
-Sets width, height, row bytes to zero; pixel address to nullptr; SkColorType to
-kUnknown_SkColorType; and SkAlphaType to kUnknown_SkAlphaType.
-
-If Pixel_Ref is allocated, its reference count is decreased by one, releasing
-its memory if Bitmap is the sole owner.
+#Populate
#Example
SkBitmap bitmap;
@@ -1169,23 +1016,7 @@
#Method static bool ComputeIsOpaque(const SkBitmap& bm)
#In Utility
#Line # returns true if all pixels are opaque ##
-Returns true if all pixels are opaque. Color_Type determines how pixels
-are encoded, and whether pixel describes Alpha. Returns true for Color_Types
-without alpha in each pixel; for other Color_Types, returns true if all
-pixels have alpha values equivalent to 1.0 or greater.
-
-For Color_Types kRGB_565_SkColorType or kGray_8_SkColorType: always
-returns true. For Color_Types kAlpha_8_SkColorType, kBGRA_8888_SkColorType,
-kRGBA_8888_SkColorType: returns true if all pixel Alpha values are 255.
-For Color_Type kARGB_4444_SkColorType: returns true if all pixel Alpha values are 15.
-For kRGBA_F16_SkColorType: returns true if all pixel Alpha values are 1.0 or
-greater.
-
-Returns false for kUnknown_SkColorType.
-
-#Param bm Bitmap to check ##
-
-#Return true if all pixels have opaque values or Color_Type is opaque ##
+#Populate
#Example
SkBitmap bitmap;
@@ -1215,9 +1046,7 @@
#Method void getBounds(SkRect* bounds) const
#In Property
#Line # returns width() and height() as Rectangle ##
-Returns Rect { 0, 0, width(), height() }.
-
-#Param bounds container for floating point rectangle ##
+#Populate
#Example
#Height 160
@@ -1239,10 +1068,7 @@
# ------------------------------------------------------------------------------
#Method void getBounds(SkIRect* bounds) const
-
-Returns IRect { 0, 0, width(), height() }.
-
-#Param bounds container for integral rectangle ##
+#Populate
#Example
#Image 3
@@ -1264,9 +1090,7 @@
#Method SkIRect bounds() const
#In Property
#Line # returns width() and height() as Rectangle ##
-Returns IRect { 0, 0, width(), height() }.
-
-#Return integral rectangle from origin to width() and height() ##
+#Populate
#Example
#Height 64
@@ -1289,9 +1113,7 @@
#Method SkISize dimensions() const
#In Property
#Line # returns width() and height() ##
-Returns ISize { width(), height() }.
-
-#Return integral size of width() and height() ##
+#Populate
#Example
SkBitmap bitmap;
@@ -1312,9 +1134,7 @@
#Method SkIRect getSubset() const
#In Property
#Line # returns bounds offset by origin ##
-Returns the bounds of this bitmap, offset by its Pixel_Ref origin.
-
-#Return bounds within Pixel_Ref bounds ##
+#Populate
#Example
#Image 3
@@ -1422,25 +1242,7 @@
#Method bool tryAllocPixelsFlags(const SkImageInfo& info, uint32_t flags)
#In Allocate
#Line # allocates pixels from Image_Info with options if possible ##
-Sets Image_Info to info following the rules in setInfo and allocates pixel
-memory. If flags is kZeroPixels_AllocFlag, memory is zeroed.
-
-Returns false and calls reset() if Image_Info could not be set, or memory could
-not be allocated, or memory could not optionally be zeroed.
-
-On most platforms, allocating pixel memory may succeed even though there is
-not sufficient memory to hold pixels; allocation does not take place
-until the pixels are written to. The actual behavior depends on the platform
-implementation of malloc(), if flags is zero, and calloc(), if flags is
-kZeroPixels_AllocFlag.
-
-flags set to kZeroPixels_AllocFlag offers equal or better performance than
-subsequently calling eraseColor with SK_ColorTRANSPARENT.
-
-#Param info contains width, height, Alpha_Type, Color_Type, Color_Space ##
-#Param flags kZeroPixels_AllocFlag, or zero ##
-
-#Return true if pixels allocation is successful ##
+#Populate
#Example
SkBitmap bitmap;
@@ -1464,25 +1266,7 @@
#Method void allocPixelsFlags(const SkImageInfo& info, uint32_t flags)
#In Allocate
#Line # allocates pixels from Image_Info with options, or aborts ##
-Sets Image_Info to info following the rules in setInfo and allocates pixel
-memory. If flags is kZeroPixels_AllocFlag, memory is zeroed.
-
-Aborts execution if Image_Info could not be set, or memory could
-not be allocated, or memory could not optionally
-be zeroed. Abort steps may be provided by the user at compile time by defining
-SK_ABORT.
-
-On most platforms, allocating pixel memory may succeed even though there is
-not sufficient memory to hold pixels; allocation does not take place
-until the pixels are written to. The actual behavior depends on the platform
-implementation of malloc(), if flags is zero, and calloc(), if flags is
-kZeroPixels_AllocFlag.
-
-flags set to kZeroPixels_AllocFlag offers equal or better performance than
-subsequently calling eraseColor with SK_ColorTRANSPARENT.
-
-#Param info contains width, height, Alpha_Type, Color_Type, Color_Space ##
-#Param flags kZeroPixels_AllocFlag, or zero ##
+#Populate
#Example
#Height 128
@@ -1512,30 +1296,7 @@
#Method bool tryAllocPixels(const SkImageInfo& info, size_t rowBytes)
#In Allocate
#Line # allocates pixels from Image_Info if possible ##
-#ToDo am I ever conflicted about setInfo rules. It needs to be able to be replicated
- if, for instance, I generate one-page-per-method HTML-style documentation
- I'm not so sure it makes sense to put the indirection in for .h either unless
- my mantra is that .h should abbreviate full documentation. And, what to do
- for generated markdown? At least there the rules are a click away, although
- a pop-down in place would be way better. Hmmm.
-##
-
-Sets Image_Info to info following the rules in setInfo and allocates pixel
-memory. rowBytes must equal or exceed info.width() times info.bytesPerPixel(),
-or equal zero. Pass in zero for rowBytes to compute the minimum valid value.
-
-Returns false and calls reset() if Image_Info could not be set, or memory could
-not be allocated.
-
-On most platforms, allocating pixel memory may succeed even though there is
-not sufficient memory to hold pixels; allocation does not take place
-until the pixels are written to. The actual behavior depends on the platform
-implementation of malloc().
-
-#Param info contains width, height, Alpha_Type, Color_Type, Color_Space ##
-#Param rowBytes size of pixel row or larger; may be zero ##
-
-#Return true if pixel storage is allocated ##
+#Populate
#Example
#Image 3
@@ -1560,21 +1321,7 @@
#Method void allocPixels(const SkImageInfo& info, size_t rowBytes)
#In Allocate
#Line # allocates pixels from Image_Info, or aborts ##
-Sets Image_Info to info following the rules in setInfo and allocates pixel
-memory. rowBytes must equal or exceed info.width() times info.bytesPerPixel(),
-or equal zero. Pass in zero for rowBytes to compute the minimum valid value.
-
-Aborts execution if Image_Info could not be set, or memory could
-not be allocated. Abort steps may be provided by
-the user at compile time by defining SK_ABORT.
-
-On most platforms, allocating pixel memory may succeed even though there is
-not sufficient memory to hold pixels; allocation does not take place
-until the pixels are written to. The actual behavior depends on the platform
-implementation of malloc().
-
-#Param info contains width, height, Alpha_Type, Color_Type, Color_Space ##
-#Param rowBytes size of pixel row or larger; may be zero ##
+#Populate
#Example
#Image 3
@@ -1596,21 +1343,7 @@
# ------------------------------------------------------------------------------
#Method bool tryAllocPixels(const SkImageInfo& info)
-
-Sets Image_Info to info following the rules in setInfo and allocates pixel
-memory.
-
-Returns false and calls reset() if Image_Info could not be set, or memory could
-not be allocated.
-
-On most platforms, allocating pixel memory may succeed even though there is
-not sufficient memory to hold pixels; allocation does not take place
-until the pixels are written to. The actual behavior depends on the platform
-implementation of malloc().
-
-#Param info contains width, height, Alpha_Type, Color_Type, Color_Space ##
-
-#Return true if pixel storage is allocated ##
+#Populate
#Example
#Image 3
@@ -1632,20 +1365,7 @@
# ------------------------------------------------------------------------------
#Method void allocPixels(const SkImageInfo& info)
-
-Sets Image_Info to info following the rules in setInfo and allocates pixel
-memory.
-
-Aborts execution if Image_Info could not be set, or memory could
-not be allocated. Abort steps may be provided by
-the user at compile time by defining SK_ABORT.
-
-On most platforms, allocating pixel memory may succeed even though there is
-not sufficient memory to hold pixels; allocation does not take place
-until the pixels are written to. The actual behavior depends on the platform
-implementation of malloc().
-
-#Param info contains width, height, Alpha_Type, Color_Type, Color_Space ##
+#Populate
#Example
#Image 4
@@ -1668,23 +1388,7 @@
#Method bool tryAllocN32Pixels(int width, int height, bool isOpaque = false)
#In Allocate
#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.
-
-Calls reset() and returns false if width exceeds 29 bits or is negative,
-or height is negative.
-
-Returns false if allocation fails.
-
-Use to create Bitmap that matches SkPMColor, the native pixel arrangement on
-the platform. Bitmap drawn to output device skips converting its pixel format.
-
-#Param width pixel column count; must be zero or greater ##
-#Param height pixel row count; must be zero or greater ##
-#Param isOpaque true if pixels do not have transparency ##
-
-#Return true if pixel storage is allocated ##
+#Populate
#Example
#Height 160
@@ -1710,20 +1414,7 @@
#Method void allocN32Pixels(int width, int height, bool isOpaque = false)
#In Allocate
#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.
-
-Aborts if width exceeds 29 bits or is negative, or height is negative, or
-allocation fails. Abort steps may be provided by the user at compile time by
-defining SK_ABORT.
-
-Use to create Bitmap that matches SkPMColor, the native pixel arrangement on
-the platform. Bitmap drawn to output device skips converting its pixel format.
-
-#Param width pixel column count; must be zero or greater ##
-#Param height pixel row count; must be zero or greater ##
-#Param isOpaque true if pixels do not have transparency ##
+#Populate
#Example
SkRandom random;
@@ -1753,29 +1444,7 @@
void (*releaseProc)(void* addr, void* context), void* context)
#In Allocate
#Line # creates Pixel_Ref, with optional release function ##
-
-Sets Image_Info to info following the rules in setInfo, and creates Pixel_Ref
-containing pixels and rowBytes. releaseProc, if not nullptr, is called
-immediately on failure or when pixels are no longer referenced. context may be
-nullptr.
-
-If Image_Info could not be set, or rowBytes is less than info.minRowBytes:
-calls releaseProc if present, calls reset(), and returns false.
-
-Otherwise, if pixels equals nullptr: sets Image_Info, calls releaseProc if
-present, returns true.
-
-If Image_Info is set, pixels is not nullptr, and releaseProc is not nullptr:
-when pixels are no longer referenced, calls releaseProc with pixels and context
-as parameters.
-
-#Param info contains width, height, Alpha_Type, Color_Type, Color_Space ##
-#Param pixels address or pixel storage; may be nullptr ##
-#Param rowBytes size of pixel row or larger ##
-#Param releaseProc function called when pixels can be deleted; may be nullptr ##
-#Param context caller state passed to releaseProc; may be nullptr ##
-
-#Return true if Image_Info is set to info ##
+#Populate
#Example
#Description
@@ -1811,22 +1480,7 @@
# ------------------------------------------------------------------------------
#Method bool installPixels(const SkImageInfo& info, void* pixels, size_t rowBytes)
-
-Sets Image_Info to info following the rules in setInfo, and creates Pixel_Ref
-containing pixels and rowBytes.
-
-If Image_Info could not be set, or rowBytes is less than info.minRowBytes:
-calls reset(), and returns false.
-
-Otherwise, if pixels equals nullptr: sets Image_Info, returns true.
-
-Caller must ensure that pixels are valid for the lifetime of Bitmap and Pixel_Ref.
-
-#Param info contains width, height, Alpha_Type, Color_Type, Color_Space ##
-#Param pixels address or pixel storage; may be nullptr ##
-#Param rowBytes size of pixel row or larger ##
-
-#Return true if Image_Info is set to info ##
+#Populate
#Example
#Bug 7079
@@ -1857,20 +1511,7 @@
# ------------------------------------------------------------------------------
#Method bool installPixels(const SkPixmap& pixmap)
-
-Sets Image_Info to pixmap.info() following the rules in setInfo, and creates
-Pixel_Ref containing pixmap.addr() and pixmap.rowBytes.
-
-If Image_Info could not be set, or pixmap.rowBytes is less than
-SkImageInfo::minRowBytes: calls reset(), and returns false.
-
-Otherwise, if pixmap.addr() equals nullptr: sets Image_Info, returns true.
-
-Caller must ensure that pixmap is valid for the lifetime of Bitmap and Pixel_Ref.
-
-#Param pixmap Image_Info, pixel address, and rowBytes ##
-
-#Return true if Image_Info was set to pixmap.info() ##
+#Populate
#Example
#Description
@@ -1911,16 +1552,7 @@
#Method void setPixels(void* pixels)
#In Pixels
#Line # sets Pixel_Ref without an offset ##
-Replaces Pixel_Ref with pixels, preserving Image_Info and rowBytes.
-Sets Pixel_Ref origin to (0, 0).
-
-If pixels is nullptr, or if info().colorType equals kUnknown_SkColorType;
-release reference to Pixel_Ref, and set Pixel_Ref to nullptr.
-
-Caller is responsible for handling ownership pixel memory for the lifetime
-of Bitmap and Pixel_Ref.
-
-#Param pixels address of pixel storage, managed by caller ##
+#Populate
#Example
#Height 50
@@ -1942,13 +1574,7 @@
#Method bool tryAllocPixels()
#In Allocate
-Allocates pixel memory with HeapAllocator, and replaces existing Pixel_Ref.
-The allocation size is determined by Image_Info width, height, and Color_Type.
-
-Returns false if info().colorType is kUnknown_SkColorType, or allocation fails.
-
-#Return true if the allocation succeeds
-##
+#Populate
#Example
#Height 50
@@ -1978,12 +1604,7 @@
#Method void allocPixels()
#In Allocate
-Allocates pixel memory with HeapAllocator, and replaces existing Pixel_Ref.
-The allocation size is determined by Image_Info width, height, and Color_Type.
-
-Aborts if info().colorType is kUnknown_SkColorType, or allocation fails.
-Abort steps may be provided by the user at compile
-time by defining SK_ABORT.
+#Populate
#Example
#Height 50
@@ -2012,17 +1633,7 @@
# ------------------------------------------------------------------------------
#Method bool tryAllocPixels(Allocator* allocator)
-
-Allocates pixel memory with allocator, and replaces existing Pixel_Ref.
-The allocation size is determined by Image_Info width, height, and Color_Type.
-If allocator is nullptr, use HeapAllocator instead.
-
-Returns false if Allocator::allocPixelRef return false.
-
-#Param allocator instance of SkBitmap::Allocator instantiation ##
-
-#Return true if custom allocator reports success
-##
+#Populate
#Example
#Height 100
@@ -2086,15 +1697,7 @@
# ------------------------------------------------------------------------------
#Method void allocPixels(Allocator* allocator)
-
-Allocates pixel memory with allocator, and replaces existing Pixel_Ref.
-The allocation size is determined by Image_Info width, height, and Color_Type.
-If allocator is nullptr, use HeapAllocator instead.
-
-Aborts if Allocator::allocPixelRef return false. Abort steps may be provided by
-the user at compile time by defining SK_ABORT.
-
-#Param allocator instance of SkBitmap::Allocator instantiation ##
+#Populate
#Example
#Height 32
@@ -2139,12 +1742,7 @@
#Method SkPixelRef* pixelRef() const
#In Property
#Line # returns Pixel_Ref, or nullptr ##
-Returns Pixel_Ref, which contains: pixel base address; its dimensions; and
-rowBytes, the interval from one row to the next. Does not change Pixel_Ref
-reference count. Pixel_Ref may be shared by multiple bitmaps.
-If Pixel_Ref has not been set, returns nullptr.
-
-#Return Pixel_Ref, or nullptr ##
+#Populate
#Example
#Image 3
@@ -2164,16 +1762,7 @@
#Method SkIPoint pixelRefOrigin() const
#In Property
#Line # returns offset within Pixel_Ref ##
-Returns origin of pixels within Pixel_Ref. Bitmap bounds is always contained
-by Pixel_Ref bounds, which may be the same size or larger. Multiple Bitmaps
-can share the same Pixel_Ref, where each Bitmap has different bounds.
-
-The returned origin added to Bitmap dimensions equals or is smaller than the
-Pixel_Ref dimensions.
-
-Returns (0, 0) if Pixel_Ref is nullptr.
-
-#Return pixel origin within Pixel_Ref ##
+#Populate
#Example
#Image 3
@@ -2201,18 +1790,7 @@
#Method void setPixelRef(sk_sp<SkPixelRef> pixelRef, int dx, int dy)
#In Set
#Line # sets Pixel_Ref and offset ##
-Replaces pixelRef and origin in Bitmap. dx and dy specify the offset
-within the Pixel_Ref pixels for the top-left corner of the bitmap.
-
-Asserts in debug builds if dx or dy are out of range. Pins dx and dy
-to legal range in release builds.
-
-The caller is responsible for ensuring that the pixels match the
-Color_Type and Alpha_Type in Image_Info.
-
-#Param pixelRef Pixel_Ref describing pixel address and rowBytes ##
-#Param dx column offset in Pixel_Ref for bitmap origin ##
-#Param dy row offset in Pixel_Ref for bitmap origin ##
+#Populate
#Example
#Height 140
@@ -2236,9 +1814,7 @@
#Method bool readyToDraw() const
#In Utility
#Line # returns true if address of pixels is not nullptr ##
-Returns true if Bitmap is can be drawn.
-
-#Return true if getPixels() is not nullptr ##
+#Populate
#Example
#Image 5
@@ -2257,13 +1833,7 @@
#Method uint32_t getGenerationID() const
#In Utility
#Line # returns unique ID ##
-Returns a unique value corresponding to the pixels in Pixel_Ref.
-Returns a different value after notifyPixelsChanged has been called.
-Returns zero if Pixel_Ref is nullptr.
-
-Determines if pixels have changed since last examined.
-
-#Return unique value for pixels in Pixel_Ref ##
+#Populate
#Example
SkBitmap bitmap;
@@ -2289,8 +1859,7 @@
#Method void notifyPixelsChanged() const
#In Pixels
#Line # marks pixels as changed, altering the unique ID ##
-Marks that pixels in Pixel_Ref have changed. Subsequent calls to
-getGenerationID() return a different value.
+#Populate
#Example
#Height 20
@@ -2319,12 +1888,7 @@
#Method void eraseColor(SkColor c) const
#In Draw
#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; RGB is treated as opaque. If colorType is kAlpha_8_SkColorType,
-then RGB is ignored.
-
-#Param c Unpremultiplied Color ##
+#Populate
#Example
#Height 20
@@ -2344,16 +1908,7 @@
#Method void eraseARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b) const
#In Draw
#Line # writes Color to pixels ##
-Replaces pixel values with Unpremultiplied Color built from a, r, g, and b.
-All pixels contained by bounds() are affected.
-If the colorType is kGray_8_SkColorType or k565_SkColorType, then a
-is ignored; r, g, and b are treated as opaque. If colorType is kAlpha_8_SkColorType,
-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 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) ##
+#Populate
#Example
#Height 80
@@ -2374,15 +1929,7 @@
#Method void erase(SkColor c, const SkIRect& area) const
#In Draw
#Line # writes Color to rectangle of pixels ##
-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; RGB is treated as opaque. If colorType is kAlpha_8_SkColorType,
-then RGB is ignored.
-
-#Param c Unpremultiplied Color ##
-#Param area rectangle to fill ##
+#Populate
#Example
#Height 70
@@ -2414,22 +1961,7 @@
#In Property
#In Pixels
#Line # returns one pixel as Unpremultiplied Color ##
-Returns pixel at (x, y) as Unpremultiplied Color.
-Returns black with Alpha if Color_Type is kAlpha_8_SkColorType.
-
-Input is not validated: out of bounds values of x or y trigger an assert() if
-built with SK_DEBUG defined; and returns undefined values or may crash if
-SK_RELEASE is defined. Fails if Color_Type is kUnknown_SkColorType or
-pixel address is nullptr.
-
-Color_Space in Image_Info is ignored. Some Color precision may be lost in the
-conversion to Unpremultiplied Color; original pixel data may have additional
-precision.
-
-#Param x column index, zero or greater, and less than width() ##
-#Param y row index, zero or greater, and less than height() ##
-
-#Return pixel converted to Unpremultiplied Color ##
+#Populate
#Example
const int w = 4;
@@ -2501,19 +2033,7 @@
#Method void* getAddr(int x, int y) const
#In Property
#Line # returns readable pixel address as void pointer ##
-Returns pixel address at (x, y).
-
-Input is not validated: out of bounds values of x or y, or kUnknown_SkColorType,
-trigger an assert() if built with SK_DEBUG defined. Returns nullptr if
-Color_Type is kUnknown_SkColorType, or Pixel_Ref is nullptr.
-
-Performs a lookup of pixel size; for better performance, call
-one of: getAddr8, getAddr16, or getAddr32.
-
-#Param x column index, zero or greater, and less than width() ##
-#Param y row index, zero or greater, and less than height() ##
-
-#Return generic pointer to pixel ##
+#Populate
#Example
#Image 3
@@ -2717,7 +2237,7 @@
#Method bool readPixels(const SkImageInfo& dstInfo, void* dstPixels, size_t dstRowBytes,
int srcX, int srcY) const
#In Pixels
-#Line # copies and converts pixels ##
+#Line # copies and converts pixels ##
Copies a Rect of pixels from Bitmap to dstPixels. Copy starts at (srcX, srcY),
and does not exceed Bitmap (width(), height()).
@@ -2726,7 +2246,7 @@
destination. dstRowBytes specifics the gap from one destination row to the next.
Returns true if pixels are copied. Returns false if:
#List
-# dstInfo.addr() equals nullptr ##
+# dstInfo has no address ##
# dstRowBytes is less than dstInfo.minRowBytes ##
# Pixel_Ref is nullptr ##
##
@@ -2995,10 +2515,7 @@
#Method bool hasHardwareMipMap() const
#In Property
#Line # returns Mip_Map support present; Android only ##
-
-For use by Android framework only.
-
-#Return true if setHasHardwareMipMap has been called with true ##
+#Populate
#NoExample
##
@@ -3012,10 +2529,7 @@
#Method void setHasHardwareMipMap(bool hasHardwareMipMap)
#In Set
#Line # sets Mip_Map support present; Android only ##
-
-For use by Android framework only.
-
-#Param hasHardwareMipMap sets state ##
+#Populate
#NoExample
##
@@ -3029,14 +2543,7 @@
#Method bool extractAlpha(SkBitmap* dst) const
#In Constructors
#Line # creates Bitmap containing Alpha of pixels ##
-Sets dst to Alpha described by pixels. Returns false if dst cannot be written to
-or dst pixels cannot be allocated.
-
-Uses HeapAllocator to reserve memory for dst Pixel_Ref.
-
-#Param dst holds Pixel_Ref to fill with alpha layer ##
-
-#Return true if Alpha layer was constructed in dst Pixel_Ref ##
+#Populate
#Example
#Height 100
@@ -3065,22 +2572,8 @@
#Method bool extractAlpha(SkBitmap* dst, const SkPaint* paint,
SkIPoint* offset) const
+#Populate
-Sets dst to Alpha described by pixels. Returns false if dst cannot be written to
-or dst pixels cannot be allocated.
-
-If paint is not nullptr and contains Mask_Filter, SkMaskFilter
-generates Mask_Alpha from Bitmap. Uses HeapAllocator to reserve memory for dst
-Pixel_Ref. Sets offset to top-left position for dst for alignment with Bitmap;
-(0, 0) unless SkMaskFilter generates mask.
-
-#Param dst holds Pixel_Ref to fill with alpha layer ##
-#Param paint holds optional Mask_Filter; may be nullptr ##
-#Param offset top-left position for dst; may be nullptr ##
-
-#Return true if Alpha layer was constructed in dst Pixel_Ref ##
-
-#Bug 7103
#Example
#Height 160
auto radiusToSigma = [](SkScalar radius) -> SkScalar {
@@ -3114,24 +2607,8 @@
#Method bool extractAlpha(SkBitmap* dst, const SkPaint* paint, Allocator* allocator,
SkIPoint* offset) const
+#Populate
-Sets dst to Alpha described by pixels. Returns false if dst cannot be written to
-or dst pixels cannot be allocated.
-
-If paint is not nullptr and contains Mask_Filter, SkMaskFilter
-generates Mask_Alpha from Bitmap. allocator may reference a custom allocation
-class or be set to nullptr to use HeapAllocator. Sets offset to top-left
-position for dst for alignment with Bitmap; (0, 0) unless SkMaskFilter generates
-mask.
-
-#Param dst holds Pixel_Ref to fill with alpha layer ##
-#Param paint holds optional Mask_Filter; may be nullptr ##
-#Param allocator function to reserve memory for Pixel_Ref; may be nullptr ##
-#Param offset top-left position for dst; may be nullptr ##
-
-#Return true if Alpha layer was constructed in dst Pixel_Ref ##
-
-#Bug 7104
#Example
#Height 128
SkBitmap alpha, bitmap;
@@ -3162,15 +2639,7 @@
#Method bool peekPixels(SkPixmap* pixmap) const
#In Pixels
#Line # returns Pixmap if possible ##
-Copies Bitmap pixel address, row bytes, and Image_Info to pixmap, if address
-is available, and returns true. If pixel address is not available, return
-false and leave pixmap unchanged.
-
-pixmap contents become invalid on any future change to Bitmap.
-
-#Param pixmap storage for pixel state if pixels are readable; otherwise, ignored ##
-
-#Return true if Bitmap has direct access to pixels ##
+#Populate
#Example
SkBitmap bitmap;
@@ -3217,8 +2686,7 @@
#Method void validate() const;
#In Utility
#Line # asserts if Bitmap is invalid (debug only) ##
-Asserts if internal values are illegal or inconsistent. Only available if
-SK_DEBUG is defined at compile time.
+#Populate
#NoExample
##
@@ -3232,4 +2700,3 @@
#Class SkBitmap ##
#Topic Bitmap ##
-
diff --git a/docs/SkBlendMode_Reference.bmh b/docs/SkBlendMode_Reference.bmh
index d3b79d6..a02b012 100644
--- a/docs/SkBlendMode_Reference.bmh
+++ b/docs/SkBlendMode_Reference.bmh
@@ -755,18 +755,18 @@
replacing destination with lighter less darker.
#Example
#Image 5
- canvas->drawImage(image, 0, 0);
- canvas->drawImage(image, 128, 0);
- canvas->drawImage(image, 0, 128);
- canvas->drawImage(image, 128, 128);
- SkPaint paint;
- paint.setBlendMode(SkBlendMode::kDstATop);
- SkColor alphas[] = { SK_ColorBLACK, SK_ColorTRANSPARENT };
- SkPoint vert[] = { { 0, 0 }, { 0, 256 } };
- paint.setShader(SkGradientShader::MakeLinear(vert, alphas, nullptr, SK_ARRAY_COUNT(alphas),
- SkShader::kClamp_TileMode));
- canvas->drawPaint(paint);
- canvas->clipRect( { 30, 30, 226, 226 } );
+ canvas->drawImage(image, 0, 0);
+ canvas->drawImage(image, 128, 0);
+ canvas->drawImage(image, 0, 128);
+ canvas->drawImage(image, 128, 128);
+ SkPaint paint;
+ paint.setBlendMode(SkBlendMode::kDstATop);
+ SkColor alphas[] = { SK_ColorBLACK, SK_ColorTRANSPARENT };
+ SkPoint vert[] = { { 0, 0 }, { 0, 256 } };
+ paint.setShader(SkGradientShader::MakeLinear(vert, alphas, nullptr, SK_ARRAY_COUNT(alphas),
+ SkShader::kClamp_TileMode));
+ canvas->drawPaint(paint);
+ canvas->clipRect( { 30, 30, 226, 226 } );
canvas->drawColor(0x80bb9977, SkBlendMode::kDifference);
##
##
@@ -780,19 +780,19 @@
replacing destination with lighter less darker, ignoring Alpha.
#Example
#Image 5
- canvas->drawImage(image, 0, 0);
- canvas->drawImage(image, 128, 0);
- canvas->drawImage(image, 0, 128);
- canvas->drawImage(image, 128, 128);
- SkPaint paint;
- paint.setBlendMode(SkBlendMode::kDstATop);
- SkColor alphas[] = { SK_ColorBLACK, SK_ColorTRANSPARENT };
- SkPoint vert[] = { { 0, 0 }, { 0, 256 } };
- paint.setShader(SkGradientShader::MakeLinear(vert, alphas, nullptr, SK_ARRAY_COUNT(alphas),
- SkShader::kClamp_TileMode));
- canvas->drawPaint(paint);
- canvas->clipRect( { 30, 30, 226, 226 } );
- canvas->drawColor(0x80bb9977, SkBlendMode::kExclusion);
+ canvas->drawImage(image, 0, 0);
+ canvas->drawImage(image, 128, 0);
+ canvas->drawImage(image, 0, 128);
+ canvas->drawImage(image, 128, 128);
+ SkPaint paint;
+ paint.setBlendMode(SkBlendMode::kDstATop);
+ SkColor alphas[] = { SK_ColorBLACK, SK_ColorTRANSPARENT };
+ SkPoint vert[] = { { 0, 0 }, { 0, 256 } };
+ paint.setShader(SkGradientShader::MakeLinear(vert, alphas, nullptr, SK_ARRAY_COUNT(alphas),
+ SkShader::kClamp_TileMode));
+ canvas->drawPaint(paint);
+ canvas->clipRect( { 30, 30, 226, 226 } );
+ canvas->drawColor(0x80bb9977, SkBlendMode::kExclusion);
##
##
@@ -806,18 +806,18 @@
SkBlendMode::kMultiply makes the image darker.
#Example
#Image 5
- canvas->drawImage(image, 0, 0);
- canvas->drawImage(image, 128, 0);
- canvas->drawImage(image, 0, 128);
- canvas->drawImage(image, 128, 128);
- SkPaint paint;
- paint.setBlendMode(SkBlendMode::kDstATop);
- SkColor alphas[] = { SK_ColorBLACK, SK_ColorTRANSPARENT };
- SkPoint vert[] = { { 0, 0 }, { 0, 256 } };
- paint.setShader(SkGradientShader::MakeLinear(vert, alphas, nullptr, SK_ARRAY_COUNT(alphas),
- SkShader::kClamp_TileMode));
- canvas->drawPaint(paint);
- canvas->clipRect( { 30, 30, 226, 226 } );
+ canvas->drawImage(image, 0, 0);
+ canvas->drawImage(image, 128, 0);
+ canvas->drawImage(image, 0, 128);
+ canvas->drawImage(image, 128, 128);
+ SkPaint paint;
+ paint.setBlendMode(SkBlendMode::kDstATop);
+ SkColor alphas[] = { SK_ColorBLACK, SK_ColorTRANSPARENT };
+ SkPoint vert[] = { { 0, 0 }, { 0, 256 } };
+ paint.setShader(SkGradientShader::MakeLinear(vert, alphas, nullptr, SK_ARRAY_COUNT(alphas),
+ SkShader::kClamp_TileMode));
+ canvas->drawPaint(paint);
+ canvas->clipRect( { 30, 30, 226, 226 } );
canvas->drawColor(0x80bb9977, SkBlendMode::kMultiply);
##
##
@@ -831,7 +831,7 @@
source hue, leaving destination luminosity and saturation unchanged.
#Example
#Image 3
-canvas->drawImage(image, 0, 0);
+canvas->drawImage(image, 0, 0);
canvas->drawColor(0xFF00FF00, SkBlendMode::kHue);
##
##
@@ -845,7 +845,7 @@
source hue, leaving destination luminosity and saturation unchanged.
#Example
#Image 3
-canvas->drawImage(image, 0, 0);
+canvas->drawImage(image, 0, 0);
canvas->drawColor(0xFF00FF00, SkBlendMode::kSaturation);
##
##
@@ -859,7 +859,7 @@
source hue and saturation, leaving destination luminosity unchanged.
#Example
#Image 3
-canvas->drawImage(image, 0, 0);
+canvas->drawImage(image, 0, 0);
canvas->drawColor(0xFF00FF00, SkBlendMode::kColor);
##
##
@@ -873,7 +873,7 @@
source luminosity, leaving destination hue and saturation unchanged.
#Example
#Image 3
-canvas->drawImage(image, 0, 0);
+canvas->drawImage(image, 0, 0);
canvas->drawColor(0xFF00FF00, SkBlendMode::kLuminosity);
##
##
@@ -882,22 +882,16 @@
# ------------------------------------------------------------------------------
-#Method SK_API const char* SkBlendMode_Name(SkBlendMode blendMode)
+#Method const char* SkBlendMode_Name(SkBlendMode blendMode)
#In Utility
#Line # returns mode as C string ##
-
-Returns name of blendMode as null-terminated C string.
-
-#Param blendMode one of: #list_of_blend_modes#
-##
-
-#Return C string ##
+#Populate
#Example
-SkDebugf("default blend: SkBlendMode::k%s\n", SkBlendMode_Name(SkPaint().getBlendMode()));
-#StdOut
-default blend: SkBlendMode::kSrcOver
-##
+SkDebugf("default blend: SkBlendMode::k%s\n", SkBlendMode_Name(SkPaint().getBlendMode()));
+#StdOut
+default blend: SkBlendMode::kSrcOver
+##
##
#SeeAlso SkBlendMode
diff --git a/docs/SkCanvas_Reference.bmh b/docs/SkCanvas_Reference.bmh
index 7a22330..125b659 100644
--- a/docs/SkCanvas_Reference.bmh
+++ b/docs/SkCanvas_Reference.bmh
@@ -22,18 +22,14 @@
Canvas generated by GPU_Surface uses Vulkan or OpenGL to draw to the GPU.
To draw to a document, obtain Canvas from SVG_Canvas, Document_PDF, or Picture_Recorder.
-Document based Canvas and other Canvas Subclasses reference Device describing the
+Document based Canvas and other Canvas subclasses reference Device describing the
destination.
Canvas can be constructed to draw to Bitmap without first creating Raster_Surface.
This approach may be deprecated in the future.
-#Subtopic Constructors
-
-Create the desired type of Surface to obtain its Canvas when possible. Useful
-when no Surface is required, and some helpers implicitly create Raster_Surface.
-
-##
+Canvas may be created directly when no Surface is required; some Canvas methods
+implicitly create Raster_Surface.
# ------------------------------------------------------------------------------
@@ -42,36 +38,7 @@
const SkSurfaceProps* props = nullptr)
#In Constructors
#Line # creates from SkImageInfo and Pixel_Storage ##
-
-Allocates raster Canvas that will draw directly into pixels.
-
-Canvas is returned if all parameters are valid.
-Valid parameters include:
-info dimensions are zero or positive;
-info contains Color_Type and Alpha_Type supported by Raster_Surface;
-pixels is not nullptr;
-rowBytes is zero or large enough to contain info width pixels of Color_Type.
-
-Pass zero for rowBytes to compute rowBytes from info width and size of pixel.
-If rowBytes is greater than zero, it must be equal to or greater than
-info width times bytes required for Color_Type.
-
-Pixel buffer size should be info height times computed rowBytes.
-Pixels are not initialized.
-To access pixels after drawing, call flush() or peekPixels.
-
-#Param info width, height, Color_Type, Alpha_Type, Color_Space, of Raster_Surface;
- width, or height, or both, may be zero
-##
-#Param pixels pointer to destination pixels buffer
-##
-#Param rowBytes interval from one Surface row to the next, or zero
-##
-#Param props LCD striping orientation and setting for device independent fonts;
- may be nullptr
-##
-
-#Return Canvas if all parameters are valid; otherwise, nullptr ##
+#Populate
#Example
#Description
@@ -117,34 +84,7 @@
size_t rowBytes)
#In Constructors
#Line # creates from image data and Pixel_Storage ##
-
-Allocates raster Canvas specified by inline image specification. Subsequent Canvas
-calls draw into pixels.
-Color_Type is set to kN32_SkColorType.
-Alpha_Type is set to kPremul_SkAlphaType.
-To access pixels after drawing, call flush() or peekPixels.
-
-Canvas is returned if all parameters are valid.
-Valid parameters include:
-width and height are zero or positive;
-pixels is not nullptr;
-rowBytes is zero or large enough to contain width pixels of kN32_SkColorType.
-
-Pass zero for rowBytes to compute rowBytes from width and size of pixel.
-If rowBytes is greater than zero, it must be equal to or greater than
-width times bytes required for Color_Type.
-
-Pixel buffer size should be height times rowBytes.
-
-#Param width pixel column count on Raster_Surface created; must be zero or greater ##
-#Param height pixel row count on Raster_Surface created; must be zero or greater ##
-#Param pixels pointer to destination pixels buffer; buffer size should be height
- times rowBytes
-##
-#Param rowBytes interval from one Surface row to the next, or zero
-##
-
-#Return Canvas if all parameters are valid; otherwise, nullptr ##
+#Populate
#Example
#Description
@@ -191,10 +131,7 @@
#Method SkCanvas()
#Line # creates with no Surface, no dimensions ##
-Creates an empty Canvas with no backing device or pixels, with
-a width and height of zero.
-
-#Return empty Canvas ##
+#Populate
#Example
@@ -234,22 +171,7 @@
#Method SkCanvas(int width, int height, const SkSurfaceProps* props = nullptr)
#Line # creates with no Surface, set dimensions, Surface_Properties ##
-Creates Canvas of the specified dimensions without a Surface.
-Used by Subclasses with custom implementations for draw member functions.
-
-If props equals nullptr, Surface_Properties are created with
-Surface_Properties_Legacy_Font_Host settings, which choose the pixel striping
-direction and order. Since a platform may dynamically change its direction when
-the device is rotated, and since a platform may have multiple monitors with
-different characteristics, it is best not to rely on this legacy behavior.
-
-#Param width zero or greater ##
-#Param height zero or greater ##
-#Param props LCD striping orientation and setting for device independent fonts;
- may be nullptr
-##
-
-#Return Canvas placeholder with dimensions ##
+#Populate
#Example
SkCanvas canvas(10, 20); // 10 units wide, 20 units high
@@ -276,21 +198,7 @@
#Method explicit SkCanvas(const SkBitmap& bitmap)
#Line # uses existing Bitmap ##
-Constructs a canvas that draws into bitmap.
-Sets SkSurfaceProps::kLegacyFontHost_InitType in constructed Surface.
-
-Bitmap is copied so that subsequently editing bitmap will not affect
-constructed Canvas.
-
-May be deprecated in the future.
-
-#ToDo Should be deprecated? ##
-
-#Param bitmap width, height, Color_Type, Alpha_Type, and pixel
- storage of Raster_Surface
-##
-
-#Return Canvas that can be used to draw into bitmap ##
+#Populate
#Example
#Description
@@ -353,12 +261,7 @@
#Method SkCanvas(const SkBitmap& bitmap, ColorBehavior behavior)
#Line # exists for Android framework only ##
-
-For use by Android framework only.
-
-#Param bitmap specifies a bitmap for the canvas to draw into ##
-#Param behavior specializes this constructor; value is unused ##
-#Return Canvas that can be used to draw into bitmap ##
+#Populate
#NoExample
##
@@ -369,20 +272,7 @@
#Method SkCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props)
#Line # uses existing Bitmap and Surface_Properties ##
-Constructs a canvas that draws into bitmap.
-Use props to match the device characteristics, like LCD striping.
-
-bitmap is copied so that subsequently editing bitmap will not affect
-constructed Canvas.
-
-#Param bitmap width, height, Color_Type, Alpha_Type,
- and pixel storage of Raster_Surface
-##
-#Param props order and orientation of RGB striping; and whether to use
- device independent fonts
-##
-
-#Return Canvas that can be used to draw into bitmap ##
+#Populate
#Example
#Description
@@ -432,14 +322,13 @@
#Method virtual ~SkCanvas()
#Line # draws saved Layers, frees resources ##
-Draws saved Layers, if any.
-Frees up resources used by Canvas.
+#Populate
#Example
#Description
Canvas Layer draws into bitmap. saveLayerAlpha sets up an additional
drawing surface that blends with the bitmap. When Layer goes out of
-scope, Layer Destructor is called. The saved Layer is restored, drawing
+scope, Layer destructor is called. The saved Layer is restored, drawing
transparent letters.
##
void draw(SkCanvas* canvas) {
@@ -472,10 +361,7 @@
#In Property
#In Utility
#Line # associates additional data with the canvas ##
-Returns storage to associate additional data with the canvas.
-The storage is freed when Canvas is deleted.
-
-#Return storage that can be read from and written to ##
+#Populate
#Example
const char* kHelloMetaData = "HelloMetaData";
@@ -503,10 +389,7 @@
#Method SkImageInfo imageInfo() const
#In Property
#Line # returns Image_Info for Canvas ##
-Returns Image_Info for Canvas. If Canvas is not associated with Raster_Surface or
-GPU_Surface, returned Color_Type is set to kUnknown_SkColorType.
-
-#Return dimensions and Color_Type of Canvas ##
+#Populate
#Example
SkCanvas emptyCanvas;
@@ -528,14 +411,7 @@
#Method bool getProps(SkSurfaceProps* props) const
#In Property
#Line # copies Surface_Properties if available ##
-Copies Surface_Properties, if Canvas is associated with Raster_Surface or
-GPU_Surface, and returns true. Otherwise, returns false and leave props unchanged.
-
-#Param props storage for writable SkSurfaceProps ##
-
-#Return true if Surface_Properties was copied ##
-
-#ToDo This seems old style. Deprecate? ##
+#Populate
#Example
SkBitmap bitmap;
@@ -565,29 +441,8 @@
#Method void flush()
#In Utility
#Line # triggers execution of all pending draw operations ##
-Triggers the immediate execution of all pending draw operations.
-If Canvas is associated with GPU_Surface, resolves all pending GPU operations.
-If Canvas is associated with Raster_Surface, has no effect; raster draw
-operations are never deferred.
+#Populate
-#ToDo
-In an overview section on managing the GPU, include:
-- flush should never change what is drawn
-- call to kick off gpu work
-- calling too much impacts performance
-- some calls (peekPixels, prepareForExternalIO) call it internally
-- canvas call is local, GrContext::flush is global
-- diffentiate between flush, flushAndSignalSemaphores
-- normally never needs to be called
-- call it when sharing gpu resources, feeling memory pressure, swapping out app, and before
- abandoning context
-- also call to say "I'm finished drawing here", e.g., when drawing to a GPU-backed offscreen surface
- (created with SkSurface::MakeRenderTarget)
-
-for posterity: this doesn't show a difference: fiddle.skia.org/c/@flushfail
-##
-
-#ToDo haven't thought of a useful example to put here ##
#NoExample
##
@@ -600,11 +455,7 @@
#Method virtual SkISize getBaseLayerSize() const
#In Property
#Line # returns size of base Layer in global coordinates ##
-Gets the size of the base or root Layer in global canvas coordinates. The
-origin of the base Layer is always (0,0). The area available for drawing may be
-smaller (due to clipping or saveLayer).
-
-#Return integral width and height of base Layer ##
+#Populate
#Example
SkBitmap bitmap;
@@ -636,16 +487,7 @@
#Method sk_sp<SkSurface> makeSurface(const SkImageInfo& info, const SkSurfaceProps* props = nullptr)
#In Constructors
#Line # creates Surface matching SkImageInfo and SkSurfaceProps ##
-Creates Surface matching info and props, and associates it with Canvas.
-Returns nullptr if no match found.
-
-If props is nullptr, matches Surface_Properties in Canvas. If props is nullptr and Canvas
-does not have Surface_Properties, creates Surface with default Surface_Properties.
-
-#Param info width, height, Color_Type, Alpha_Type, and Color_Space ##
-#Param props Surface_Properties to match; may be nullptr to match Canvas ##
-
-#Return Surface matching info and props, or nullptr if no match is available ##
+#Populate
#Example
sk_sp<SkSurface> surface = SkSurface::MakeRasterN32Premul(5, 6);
@@ -670,9 +512,7 @@
#Method virtual GrContext* getGrContext()
#In Property
#Line # returns GPU_Context of the GPU_Surface ##
-Returns GPU_Context of the GPU_Surface associated with Canvas.
-
-#Return GPU_Context, if available; nullptr otherwise ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -696,20 +536,7 @@
#In Utility
#In Property
#Line # returns writable pixel access if available ##
-Returns the pixel base address, Image_Info, rowBytes, and origin if the pixels
-can be read directly. The returned address is only valid
-while Canvas is in scope and unchanged. Any Canvas call or Surface call
-may invalidate the returned address and other returned values.
-
-If pixels are inaccessible, info, rowBytes, and origin are unchanged.
-
-#Param info storage for writable pixels' Image_Info; may be nullptr ##
-#Param rowBytes storage for writable pixels' row bytes; may be nullptr ##
-#Param origin storage for Canvas top Layer origin, its top-left corner;
- may be nullptr
-##
-
-#Return address of pixels, or nullptr if inaccessible ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -780,14 +607,7 @@
#In Utility
#In Property
#Line # returns context that tracks Clip and Matrix ##
-Returns custom context that tracks the Matrix and Clip.
-
-Use Raster_Handle_Allocator to blend Skia drawing with custom drawing, typically performed
-by the host platform user interface. The custom context returned is generated by
-SkRasterHandleAllocator::MakeCanvas, which creates a custom canvas with raster storage for
-the drawing destination.
-
-#Return context of custom allocation ##
+#Populate
#Example
#Description
@@ -843,19 +663,7 @@
#Method bool peekPixels(SkPixmap* pixmap)
#In Pixels
#Line # returns if Canvas has direct access to its pixels ##
-Returns true if Canvas has direct access to its pixels.
-
-Pixels are readable when Device is raster. Pixels are not readable when Canvas
-is returned from GPU_Surface, returned by SkDocument::beginPage, returned by
-SkPictureRecorder::beginRecording, or Canvas is the base of a utility class
-like SkDebugCanvas.
-
-pixmap is valid only while Canvas is in scope and unchanged. Any
-Canvas or Surface call may invalidate the pixmap values.
-
-#Param pixmap storage for pixel state if pixels are readable; otherwise, ignored ##
-
-#Return true if Canvas has direct access to pixels ##
+#Populate
#Example
SkPixmap pixmap;
@@ -1290,19 +1098,7 @@
#In State_Stack
#Line # saves Clip and Matrix on stack ##
-Saves Matrix and Clip.
-Calling restore() discards changes to Matrix and Clip,
-restoring the Matrix and Clip to their state when save() was called.
-
-Matrix may be changed by translate(), scale(), rotate(), skew(), concat(), setMatrix,
-and resetMatrix. Clip may be changed by clipRect, clipRRect, clipPath, clipRegion.
-
-Saved Canvas state is put on a stack; multiple calls to save() should be balance
-by an equal number of calls to restore().
-
-Call restoreToCount with result to restore this and subsequent saves.
-
-#Return depth of saved stack ##
+#Populate
#Example
#Description
@@ -1334,10 +1130,7 @@
#In State_Stack
#Line # restores changes to Clip and Matrix, pops save stack ##
-Removes changes to Matrix and Clip since Canvas state was
-last saved. The state is removed from the stack.
-
-Does nothing if the stack is empty.
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -1358,11 +1151,7 @@
#In State_Stack
#Line # returns depth of stack containing Clip and Matrix ##
-Returns the number of saved states, each containing: Matrix and Clip.
-Equals the number of save() calls less the number of restore() calls plus one.
-The save count of a new canvas is one.
-
-#Return depth of save state stack ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -1390,13 +1179,7 @@
#In State_Stack
#Line # restores changes to Clip and Matrix to given depth ##
-Restores state to Matrix and Clip values when save(), saveLayer,
-saveLayerPreserveLCDTextRequests, or saveLayerAlpha returned saveCount.
-
-Does nothing if saveCount is greater than state stack count.
-Restores state to initial values if saveCount is less than or equal to one.
-
-#Param saveCount depth of state stack to restore ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -1443,25 +1226,7 @@
#In Layer
#Line # saves Clip and Matrix on stack; creates Layer ##
-Saves Matrix and Clip, and allocates a Bitmap for subsequent drawing.
-Calling restore() discards changes to Matrix and Clip, and draws the Bitmap.
-
-Matrix may be changed by translate(), scale(), rotate(), skew(), concat(),
-setMatrix, and resetMatrix. Clip may be changed by clipRect, clipRRect,
-clipPath, clipRegion.
-
-Rect bounds suggests but does not define the Bitmap size. To clip drawing to
-a specific rectangle, use clipRect.
-
-Optional Paint paint applies Color_Alpha, Color_Filter, Image_Filter, and
-Blend_Mode when restore() is called.
-
-Call restoreToCount with returned value to restore this and subsequent saves.
-
-#Param bounds hint to limit the size of the Layer; may be nullptr ##
-#Param paint graphics state for Layer; may be nullptr ##
-
-#Return depth of saved stack ##
+#Populate
#Example
#Description
@@ -1495,25 +1260,7 @@
#Method int saveLayer(const SkRect& bounds, const SkPaint* paint)
#In Layer
-Saves Matrix and Clip, and allocates a Bitmap for subsequent drawing.
-Calling restore() discards changes to Matrix and Clip, and draws the Bitmap.
-
-Matrix may be changed by translate(), scale(), rotate(), skew(), concat(),
-setMatrix, and resetMatrix. Clip may be changed by clipRect, clipRRect,
-clipPath, clipRegion.
-
-Rect bounds suggests but does not define the Layer size. To clip drawing to
-a specific rectangle, use clipRect.
-
-Optional Paint paint applies Color_Alpha, Color_Filter, Image_Filter, and
-Blend_Mode when restore() is called.
-
-Call restoreToCount with returned value to restore this and subsequent saves.
-
-#Param bounds hint to limit the size of Layer; may be nullptr ##
-#Param paint graphics state for Layer; may be nullptr ##
-
-#Return depth of saved stack ##
+#Populate
#Example
#Description
@@ -1549,31 +1296,7 @@
#In Layer
#Line # saves Clip and Matrix on stack; creates Layer for LCD text ##
-Saves Matrix and Clip, and allocates a Bitmap for subsequent drawing.
-LCD_Text is preserved when the Layer is drawn to the prior Layer.
-
-Calling restore() discards changes to Matrix and Clip, and draws Layer.
-
-Matrix may be changed by translate(), scale(), rotate(), skew(), concat(),
-setMatrix, and resetMatrix. Clip may be changed by clipRect, clipRRect,
-clipPath, clipRegion.
-
-Rect bounds suggests but does not define the Layer size. To clip drawing to
-a specific rectangle, use clipRect.
-
-Optional Paint paint applies Color_Alpha, Color_Filter, Image_Filter, and
-Blend_Mode when restore() is called.
-
-Call restoreToCount with returned value to restore this and subsequent saves.
-
-Draw text on an opaque background so that LCD_Text blends correctly with the
-prior Layer. LCD_Text drawn on a background with transparency may result in
-incorrect blending.
-
-#Param bounds hint to limit the size of Layer; may be nullptr ##
-#Param paint graphics state for Layer; may be nullptr ##
-
-#Return depth of saved stack ##
+#Populate
#Example
SkPaint paint;
@@ -1606,26 +1329,7 @@
#In Layer
#Line # saves Clip and Matrix on stack; creates Layer; sets opacity ##
-Saves Matrix and Clip, and allocates Bitmap for subsequent drawing.
-
-Calling restore() discards changes to Matrix and Clip,
-and blends Layer with alpha opacity onto prior Layer.
-
-Matrix may be changed by translate(), scale(), rotate(), skew(), concat(),
-setMatrix, and resetMatrix. Clip may be changed by clipRect, clipRRect,
-clipPath, clipRegion.
-
-Rect bounds suggests but does not define Layer size. To clip drawing to
-a specific rectangle, use clipRect.
-
-alpha of zero is fully transparent, 255 is fully opaque.
-
-Call restoreToCount with returned value to restore this and subsequent saves.
-
-#Param bounds hint to limit the size of Layer; may be nullptr ##
-#Param alpha opacity of Layer ##
-
-#Return depth of saved stack ##
+#Populate
#Example
SkPaint paint;
@@ -1788,9 +1492,7 @@
#Method SaveLayerRec()
#Line # constructs SaveLayerRec ##
-Sets fBounds, fPaint, and fBackdrop to nullptr. Clears fSaveLayerFlags.
-
-#Return empty SaveLayerRec ##
+#Populate
#Example
SkCanvas::SaveLayerRec rec1;
@@ -1810,14 +1512,7 @@
##
#Method SaveLayerRec(const SkRect* bounds, const SkPaint* paint, SaveLayerFlags saveLayerFlags = 0)
-
-Sets fBounds, fPaint, and fSaveLayerFlags; sets fBackdrop to nullptr.
-
-#Param bounds Layer dimensions; may be nullptr ##
-#Param paint applied to Layer when overlaying prior Layer; may be nullptr ##
-#Param saveLayerFlags SaveLayerRec options to modify Layer ##
-
-#Return SaveLayerRec with empty backdrop ##
+#Populate
#Example
SkCanvas::SaveLayerRec rec1;
@@ -1837,18 +1532,7 @@
#Method SaveLayerRec(const SkRect* bounds, const SkPaint* paint, const SkImageFilter* backdrop,
SaveLayerFlags saveLayerFlags)
-
-Sets fBounds, fPaint, fBackdrop, and fSaveLayerFlags.
-
-#Param bounds Layer dimensions; may be nullptr ##
-#Param paint applied to Layer when overlaying prior Layer;
- may be nullptr
-##
-#Param backdrop prior Layer copied with Image_Filter; may be nullptr
-##
-#Param saveLayerFlags SaveLayerRec options to modify Layer ##
-
-#Return SaveLayerRec fully specified ##
+#Populate
#Example
SkCanvas::SaveLayerRec rec1;
@@ -1904,22 +1588,7 @@
#Method int saveLayer(const SaveLayerRec& layerRec)
#In Layer
-Saves Matrix and Clip, and allocates Bitmap for subsequent drawing.
-
-Calling restore() discards changes to Matrix and Clip,
-and blends Bitmap with Color_Alpha opacity onto the prior Layer.
-
-Matrix may be changed by translate(), scale(), rotate(), skew(), concat(),
-setMatrix, and resetMatrix. Clip may be changed by clipRect, clipRRect,
-clipPath, clipRegion.
-
-SaveLayerRec contains the state used to create the Layer.
-
-Call restoreToCount with returned value to restore this and subsequent saves.
-
-#Param layerRec Layer state ##
-
-#Return depth of save state stack ##
+#Populate
#Example
#Description
@@ -1958,16 +1627,7 @@
#In Matrix
#Line # translates Matrix ##
-Translates Matrix by dx along the x-axis and dy along the y-axis.
-
-Mathematically, replaces Matrix with a translation matrix
-Premultiplied with Matrix.
-
-This has the effect of moving the drawing by (dx, dy) before transforming
-the result with Matrix.
-
-#Param dx distance to translate in x ##
-#Param dy distance to translate in y ##
+#Populate
#Example
#Height 128
@@ -2010,16 +1670,7 @@
#In Matrix
#Line # scales Matrix ##
-Scales Matrix by sx on the x-axis and sy on the y-axis.
-
-Mathematically, replaces Matrix with a scale matrix
-Premultiplied with Matrix.
-
-This has the effect of scaling the drawing by (sx, sy) before transforming
-the result with Matrix.
-
-#Param sx amount to scale in x ##
-#Param sy amount to scale in y ##
+#Populate
#Example
#Height 160
@@ -2044,15 +1695,7 @@
#In Matrix
#Line # rotates Matrix ##
-Rotates Matrix by degrees. Positive degrees rotates clockwise.
-
-Mathematically, replaces Matrix with a rotation matrix
-Premultiplied with Matrix.
-
-This has the effect of rotating the drawing by degrees before transforming
-the result with Matrix.
-
-#Param degrees amount to rotate, in degrees ##
+#Populate
#Example
#Description
@@ -2082,19 +1725,7 @@
#Method void rotate(SkScalar degrees, SkScalar px, SkScalar py)
#In Matrix
-Rotates Matrix by degrees about a point at (px, py). Positive degrees rotates
-clockwise.
-
-Mathematically, constructs a rotation matrix; Premultiplies the rotation matrix by
-a translation matrix; then replaces Matrix with the resulting matrix
-Premultiplied with Matrix.
-
-This has the effect of rotating the drawing about a given point before
-transforming the result with Matrix.
-
-#Param degrees amount to rotate, in degrees ##
-#Param px x-axis value of the point to rotate about ##
-#Param py y-axis value of the point to rotate about ##
+#Populate
#Example
#Height 192
@@ -2117,17 +1748,7 @@
#In Matrix
#Line # skews Matrix ##
-Skews Matrix by sx on the x-axis and sy on the y-axis. A positive value of sx
-skews the drawing right as y-axis values increase; a positive value of sy skews
-the drawing down as x-axis values increase.
-
-Mathematically, replaces Matrix with a skew matrix Premultiplied with Matrix.
-
-This has the effect of skewing the drawing by (sx, sy) before transforming
-the result with Matrix.
-
-#Param sx amount to skew on x-axis ##
-#Param sy amount to skew on y-axis ##
+#Populate
#Example
#Description
@@ -2164,12 +1785,7 @@
#In Matrix
#Line # multiplies Matrix by Matrix ##
-Replaces Matrix with matrix Premultiplied with existing Matrix.
-
-This has the effect of transforming the drawn geometry by matrix, before
-transforming the result with existing Matrix.
-
-#Param matrix matrix to Premultiply with existing Matrix ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -2198,10 +1814,7 @@
#In Matrix
#Line # sets Matrix ##
-Replaces Matrix with matrix.
-Unlike concat(), any prior matrix state is overwritten.
-
-#Param matrix matrix to copy, replacing existing Matrix ##
+#Populate
#Example
#Height 128
@@ -2226,8 +1839,7 @@
#In Matrix
#Line # resets Matrix to identity ##
-Sets Matrix to the identity matrix.
-Any prior matrix state is overwritten.
+#Populate
#Example
#Height 128
@@ -2251,10 +1863,7 @@
#In Matrix
#Line # returns Matrix ##
-Returns Matrix.
-This does not account for translation by Device or Surface.
-
-#Return Matrix in Canvas ##
+#Populate
#Example
SkDebugf("isIdentity %s\n", canvas->getTotalMatrix().isIdentity() ? "true" : "false");
@@ -2334,13 +1943,7 @@
#In Clip
#Line # combines Clip with Rect ##
-Replaces Clip with the intersection or difference of Clip and rect,
-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 ##
+#Populate
#Example
#Height 128
@@ -2365,12 +1968,7 @@
#Method void clipRect(const SkRect& rect, SkClipOp op)
#In Clip
-Replaces Clip with the intersection or difference of Clip and rect.
-Resulting Clip is Aliased; pixels are fully contained by the clip.
-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 ##
+#Populate
#Example
#Height 192
@@ -2394,13 +1992,7 @@
#Method void clipRect(const SkRect& rect, bool doAntiAlias = false)
#In Clip
-Replaces Clip with the intersection of Clip and rect.
-Resulting Clip is Aliased; pixels are fully contained by the clip.
-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 ##
+#Populate
#Example
#Height 133
@@ -2457,14 +2049,7 @@
#In Clip
#Line # combines Clip with Round_Rect ##
-Replaces Clip with the intersection or difference of Clip and rrect,
-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 ##
+#Populate
#Example
#Height 128
@@ -2487,12 +2072,7 @@
#Method void clipRRect(const SkRRect& rrect, SkClipOp op)
#In Clip
-Replaces Clip with the intersection or difference of Clip and rrect.
-Resulting Clip is Aliased; pixels are fully contained by the clip.
-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 ##
+#Populate
#Example
#Height 128
@@ -2512,12 +2092,7 @@
#Method void clipRRect(const SkRRect& rrect, bool doAntiAlias = false)
#In Clip
-Replaces Clip with the intersection of Clip and rrect,
-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 ##
+#Populate
#Example
#Height 128
@@ -2538,15 +2113,7 @@
#In Clip
#Line # combines Clip with Path ##
-Replaces Clip with the intersection or difference of Clip and 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 ##
+#Populate
#Example
#Description
@@ -2580,16 +2147,7 @@
#Method void clipPath(const SkPath& path, SkClipOp op)
#In Clip
-Replaces Clip with the intersection or difference of Clip and path.
-Resulting Clip is Aliased; pixels are fully contained by the clip.
-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 ##
+#Populate
#Example
#Description
@@ -2622,15 +2180,7 @@
#Method void clipPath(const SkPath& path, bool doAntiAlias = false)
#In Clip
-Replaces Clip with the intersection of Clip and path.
-Resulting Clip is Aliased; pixels are fully contained by the clip.
-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 doAntiAlias true if Clip is to be Anti_Aliased ##
+#Populate
#Example
#Height 212
@@ -2679,12 +2229,7 @@
#In Clip
#Line # combines Clip with Region ##
-Replaces Clip with the intersection or difference of Clip and Region deviceRgn.
-Resulting Clip is Aliased; pixels are fully contained by the clip.
-deviceRgn is unaffected by Matrix.
-
-#Param deviceRgn Region to combine with Clip ##
-#Param op Clip_Op to apply to Clip ##
+#Populate
#Example
#Description
@@ -2716,14 +2261,7 @@
#In Clip
#Line # returns if Rect is outside Clip ##
-Returns true if Rect rect, transformed by Matrix, can be quickly determined to be
-outside of Clip. May return false even though rect is outside of Clip.
-
-Use to check if an area to be drawn is clipped out, to skip subsequent draw calls.
-
-#Param rect Rect to compare with Clip ##
-
-#Return true if rect, transformed by Matrix, does not intersect Clip ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -2750,14 +2288,7 @@
#Method bool quickReject(const SkPath& path) const
#In Clip
-Returns true if path, transformed by Matrix, can be quickly determined to be
-outside of Clip. May return false even though path is outside of Clip.
-
-Use to check if an area to be drawn is clipped out, to skip subsequent draw calls.
-
-#Param path Path to compare with Clip ##
-
-#Return true if path, transformed by Matrix, does not intersect Clip ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -2788,13 +2319,7 @@
#In Clip
#Line # returns Clip bounds in source coordinates ##
-Returns 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.
-
-#Return bounds of Clip in local coordinates ##
+#Populate
#Example
#Description
@@ -2835,15 +2360,7 @@
#Method bool getLocalClipBounds(SkRect* bounds) const
#In Clip
-Returns 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.
-
-#Param bounds Rect of Clip in local coordinates ##
-
-#Return true if Clip bounds is not empty ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -2873,12 +2390,7 @@
#In Clip
#Line # returns IRect bounds of Clip ##
-Returns IRect bounds of Clip, unaffected by Matrix. If Clip is empty,
-return SkRect::MakeEmpty, where all Rect sides equal zero.
-
-Unlike getLocalClipBounds, returned IRect is not outset.
-
-#Return bounds of Clip in Device coordinates ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -2926,14 +2438,7 @@
#Method bool getDeviceClipBounds(SkIRect* bounds) const
#In Clip
-Returns IRect bounds of Clip, unaffected by Matrix. If Clip is empty,
-return false, and set bounds to SkRect::MakeEmpty, where all Rect sides equal zero.
-
-Unlike getLocalClipBounds, bounds is not outset.
-
-#Param bounds Rect of Clip in device coordinates ##
-
-#Return true if Clip bounds is not empty ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -2965,11 +2470,7 @@
#Method void drawColor(SkColor color, SkBlendMode mode = SkBlendMode::kSrcOver)
#In Draw
#Line # fills Clip with Color and Blend_Mode ##
-Fills Clip with Color color.
-mode determines how ARGB is combined with destination.
-
-#Param color Unpremultiplied ARGB ##
-#Param mode SkBlendMode used to combine source color and destination ##
+#Populate
#Example
canvas->drawColor(SK_ColorRED);
@@ -2988,10 +2489,7 @@
#Method void clear(SkColor color)
#In Draw
#Line # fills Clip with Color ##
-Fills Clip with Color color using SkBlendMode::kSrc.
-This has the effect of replacing all pixels contained by Clip with color.
-
-#Param color Unpremultiplied ARGB ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -3017,24 +2515,13 @@
#Method void discard()
#In Utility
#Line # makes Canvas contents undefined ##
-Makes Canvas contents undefined. Subsequent calls that read Canvas pixels,
-such as drawing with SkBlendMode, return undefined results. discard() does
-not change Clip or Matrix.
-
-discard() may do nothing, depending on the implementation of Surface or Device
-that created Canvas.
-
-discard() allows optimized performance on subsequent draws by removing
-cached data associated with Surface or Device.
-It is not necessary to call discard() once done with Canvas;
-any cached data is deleted when owning Surface or Device is deleted.
-
-#ToDo example? not sure how to make this meaningful w/o more implementation detail ##
-#SeeAlso flush() SkSurface::prepareForExternalIO GrContext::abandonContext
+#Populate
#NoExample
##
+#SeeAlso flush() SkSurface::prepareForExternalIO GrContext::abandonContext
+
##
# ------------------------------------------------------------------------------
@@ -3042,13 +2529,7 @@
#Method void drawPaint(const SkPaint& paint)
#In Draw
#Line # fills Clip with Paint ##
-Fills Clip with Paint paint. Paint components Mask_Filter, Shader,
-Color_Filter, Image_Filter, and Blend_Mode affect drawing;
-Path_Effect in paint is ignored.
-
-# can Path_Effect in paint ever alter drawPaint?
-
-#Param paint graphics state used to fill Canvas ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -3121,34 +2602,7 @@
#Method void drawPoints(PointMode mode, size_t count, const SkPoint pts[], const SkPaint& paint)
#In Draw
#Line # draws array as points, lines, polygon ##
-Draws pts using Clip, Matrix and Paint paint.
-count is the number of points; if count is less than one, has no effect.
-mode may be one of: kPoints_PointMode, kLines_PointMode, or kPolygon_PointMode.
-
-If mode is kPoints_PointMode, the shape of point drawn depends on paint
-Paint_Stroke_Cap. If paint is set to SkPaint::kRound_Cap, each point draws a
-circle of diameter Paint_Stroke_Width. If paint is set to SkPaint::kSquare_Cap
-or SkPaint::kButt_Cap, each point draws a square of width and height
-Paint_Stroke_Width.
-
-If mode is kLines_PointMode, each pair of points draws a line segment.
-One line is drawn for every two points; each point is used once. If count is odd,
-the final point is ignored.
-
-If mode is kPolygon_PointMode, each adjacent pair of points draws a line segment.
-count minus one lines are drawn; the first and last point are used once.
-
-Each line segment respects paint Paint_Stroke_Cap and Paint_Stroke_Width.
-Paint_Style is ignored, as if were set to SkPaint::kStroke_Style.
-
-Always draws each element one at a time; is not affected by
-Paint_Stroke_Join, and unlike drawPath, does not create a mask from all points
-and lines before drawing.
-
-#Param mode whether pts draws points or lines ##
-#Param count number of points in the array ##
-#Param pts array of points to draw ##
-#Param paint stroke, blend, color, and so on, used to draw ##
+#Populate
#Example
#Height 200
@@ -3202,17 +2656,7 @@
#Method void drawPoint(SkScalar x, SkScalar y, const SkPaint& paint)
#In Draw
#Line # draws point at (x, y) position ##
-Draws point at (x, y) using Clip, Matrix and Paint paint.
-
-The shape of point drawn depends on paint Paint_Stroke_Cap.
-If paint is set to SkPaint::kRound_Cap, draw a circle of diameter
-Paint_Stroke_Width. If paint is set to SkPaint::kSquare_Cap or SkPaint::kButt_Cap,
-draw a square of width and height Paint_Stroke_Width.
-Paint_Style is ignored, as if were set to SkPaint::kStroke_Style.
-
-#Param x left edge of circle or square ##
-#Param y top edge of circle or square ##
-#Param paint stroke, blend, color, and so on, used to draw ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -3235,17 +2679,7 @@
##
#Method void drawPoint(SkPoint p, const SkPaint& paint)
-
-Draws point p using Clip, Matrix and Paint paint.
-
-The shape of point drawn depends on paint Paint_Stroke_Cap.
-If paint is set to SkPaint::kRound_Cap, draw a circle of diameter
-Paint_Stroke_Width. If paint is set to SkPaint::kSquare_Cap or SkPaint::kButt_Cap,
-draw a square of width and height Paint_Stroke_Width.
-Paint_Style is ignored, as if were set to SkPaint::kStroke_Style.
-
-#Param p top-left edge of circle or square ##
-#Param paint stroke, blend, color, and so on, used to draw ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -3272,16 +2706,7 @@
#Method void drawLine(SkScalar x0, SkScalar y0, SkScalar x1, SkScalar y1, const SkPaint& paint)
#In Draw
#Line # draws line segment between two points ##
-Draws line segment from (x0, y0) to (x1, y1) using Clip, Matrix, and Paint paint.
-In paint: Paint_Stroke_Width describes the line thickness;
-Paint_Stroke_Cap draws the end rounded or square;
-Paint_Style is ignored, as if were set to SkPaint::kStroke_Style.
-
-#Param x0 start of line segment on x-axis ##
-#Param y0 start of line segment on y-axis ##
-#Param x1 end of line segment on x-axis ##
-#Param y1 end of line segment on y-axis ##
-#Param paint stroke, blend, color, and so on, used to draw ##
+#Populate
#Example
SkPaint paint;
@@ -3299,15 +2724,7 @@
##
#Method void drawLine(SkPoint p0, SkPoint p1, const SkPaint& paint)
-
-Draws line segment from p0 to p1 using Clip, Matrix, and Paint paint.
-In paint: Paint_Stroke_Width describes the line thickness;
-Paint_Stroke_Cap draws the end rounded or square;
-Paint_Style is ignored, as if were set to SkPaint::kStroke_Style.
-
-#Param p0 start of line segment ##
-#Param p1 end of line segment ##
-#Param paint stroke, blend, color, and so on, used to draw ##
+#Populate
#Example
SkPaint paint;
@@ -3329,13 +2746,7 @@
#Method void drawRect(const SkRect& rect, const SkPaint& paint)
#In Draw
#Line # draws Rect using Clip, Matrix, and Paint ##
-Draws Rect rect using Clip, Matrix, and Paint paint.
-In paint: Paint_Style determines if rectangle is stroked or filled;
-if stroked, Paint_Stroke_Width describes the line thickness, and
-Paint_Stroke_Join draws the corners rounded or square.
-
-#Param rect rectangle to draw ##
-#Param paint stroke or fill, blend, color, and so on, used to draw ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -3366,13 +2777,7 @@
#Method void drawIRect(const SkIRect& rect, const SkPaint& paint)
#In Draw
#Line # draws IRect using Clip, Matrix, and Paint ##
-Draws IRect rect using Clip, Matrix, and Paint paint.
-In paint: Paint_Style determines if rectangle is stroked or filled;
-if stroked, Paint_Stroke_Width describes the line thickness, and
-Paint_Stroke_Join draws the corners rounded or square.
-
-#Param rect rectangle to draw ##
-#Param paint stroke or fill, blend, color, and so on, used to draw ##
+#Populate
#Example
SkIRect rect = { 64, 48, 192, 160 };
@@ -3397,13 +2802,7 @@
#Method void drawRegion(const SkRegion& region, const SkPaint& paint)
#In Draw
#Line # draws Region using Clip, Matrix, and Paint ##
-Draws Region region using Clip, Matrix, and Paint paint.
-In paint: Paint_Style determines if rectangle is stroked or filled;
-if stroked, Paint_Stroke_Width describes the line thickness, and
-Paint_Stroke_Join draws the corners rounded or square.
-
-#Param region region to draw ##
-#Param paint Paint stroke or fill, blend, color, and so on, used to draw ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -3428,12 +2827,7 @@
#Method void drawOval(const SkRect& oval, const SkPaint& paint)
#In Draw
#Line # draws Oval using Clip, Matrix, and Paint ##
-Draws Oval oval using Clip, Matrix, and Paint.
-In paint: Paint_Style determines if Oval is stroked or filled;
-if stroked, Paint_Stroke_Width describes the line thickness.
-
-#Param oval Rect bounds of Oval ##
-#Param paint Paint stroke or fill, blend, color, and so on, used to draw ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -3460,15 +2854,7 @@
#Method void drawRRect(const SkRRect& rrect, const SkPaint& paint)
#In Draw
#Line # draws Round_Rect using Clip, Matrix, and Paint ##
-Draws Round_Rect rrect using Clip, Matrix, and Paint paint.
-In paint: Paint_Style determines if rrect is stroked or filled;
-if stroked, Paint_Stroke_Width describes the line thickness.
-
-rrect may represent a rectangle, circle, oval, uniformly rounded rectangle, or
-may have any combination of positive non-square radii for the four corners.
-
-#Param rrect Round_Rect with up to eight corner radii to draw ##
-#Param paint Paint stroke or fill, blend, color, and so on, used to draw ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -3500,21 +2886,7 @@
#Method void drawDRRect(const SkRRect& outer, const SkRRect& inner, const SkPaint& paint)
#In Draw
#Line # draws double Round_Rect stroked or filled ##
-Draws Round_Rect outer and inner
-using Clip, Matrix, and Paint paint.
-outer must contain inner or the drawing is undefined.
-In paint: Paint_Style determines if Round_Rect is stroked or filled;
-if stroked, Paint_Stroke_Width describes the line thickness.
-If stroked and Round_Rect corner has zero length radii, Paint_Stroke_Join can
-draw corners rounded or square.
-
-GPU-backed platforms optimize drawing when both outer and inner are
-concave and outer contains inner. These platforms may not be able to draw
-Path built with identical data as fast.
-
-#Param outer Round_Rect outer bounds to draw ##
-#Param inner Round_Rect inner bounds to draw ##
-#Param paint Paint stroke or fill, blend, color, and so on, used to draw ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -3555,15 +2927,7 @@
#Method void drawCircle(SkScalar cx, SkScalar cy, SkScalar radius, const SkPaint& paint)
#In Draw
#Line # draws Circle using Clip, Matrix, and Paint ##
-Draws Circle at (cx, cy) with radius using Clip, Matrix, and Paint paint.
-If radius is zero or less, nothing is drawn.
-In paint: Paint_Style determines if Circle is stroked or filled;
-if stroked, Paint_Stroke_Width describes the line thickness.
-
-#Param cx Circle center on the x-axis ##
-#Param cy Circle center on the y-axis ##
-#Param radius half the diameter of Circle ##
-#Param paint Paint stroke or fill, blend, color, and so on, used to draw ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -3582,15 +2946,7 @@
##
#Method void drawCircle(SkPoint center, SkScalar radius, const SkPaint& paint)
-
-Draws Circle at center with radius using Clip, Matrix, and Paint paint.
-If radius is zero or less, nothing is drawn.
-In paint: Paint_Style determines if Circle is stroked or filled;
-if stroked, Paint_Stroke_Width describes the line thickness.
-
-#Param center Circle center ##
-#Param radius half the diameter of Circle ##
-#Param paint Paint stroke or fill, blend, color, and so on, used to draw ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -3614,26 +2970,7 @@
bool useCenter, const SkPaint& paint)
#In Draw
#Line # draws Arc using Clip, Matrix, and Paint ##
-
-Draws Arc using Clip, Matrix, and Paint paint.
-
-Arc is part of Oval bounded by oval, sweeping from startAngle to startAngle plus
-sweepAngle. startAngle and sweepAngle are in degrees.
-
-startAngle of zero places start point at the right middle edge of oval.
-A positive sweepAngle places Arc end point clockwise from start point;
-a negative sweepAngle places Arc end point counterclockwise from start point.
-sweepAngle may exceed 360 degrees, a full circle.
-If useCenter is true, draw a wedge that includes lines from oval
-center to Arc end points. If useCenter is false, draw Arc between end points.
-
-If Rect oval is empty or sweepAngle is zero, nothing is drawn.
-
-#Param oval Rect bounds of Oval containing Arc to draw ##
-#Param startAngle angle in degrees where Arc begins ##
-#Param sweepAngle sweep angle in degrees; positive is clockwise ##
-#Param useCenter if true, include the center of the oval ##
-#Param paint Paint stroke or fill, blend, color, and so on, used to draw ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -3679,20 +3016,7 @@
#Method void drawRoundRect(const SkRect& rect, SkScalar rx, SkScalar ry, const SkPaint& paint)
#In Draw
#Line # draws Round_Rect using Clip, Matrix, and Paint ##
-Draws Round_Rect bounded by Rect rect, with corner radii (rx, ry) using Clip,
-Matrix, and Paint paint.
-
-In paint: Paint_Style determines if Round_Rect is stroked or filled;
-if stroked, Paint_Stroke_Width describes the line thickness.
-If rx or ry are less than zero, they are treated as if they are zero.
-If rx plus ry exceeds rect width or rect height, radii are scaled down to fit.
-If rx and ry are zero, Round_Rect is drawn as Rect and if stroked is affected by
-Paint_Stroke_Join.
-
-#Param rect Rect bounds of Round_Rect to draw ##
-#Param rx axis length on x-axis of oval describing rounded corners ##
-#Param ry axis length on y-axis of oval describing rounded corners ##
-#Param paint stroke, blend, color, and so on, used to draw ##
+#Populate
#Example
#Description
@@ -3727,17 +3051,7 @@
#Method void drawPath(const SkPath& path, const SkPaint& paint)
#In Draw
#Line # draws Path using Clip, Matrix, and Paint ##
-Draws Path path using Clip, Matrix, and Paint paint.
-Path contains an array of Path_Contour, each of which may be open or closed.
-
-In paint: Paint_Style determines if Round_Rect is stroked or filled:
-if filled, Path_Fill_Type determines whether Path_Contour describes inside or
-outside of fill; if stroked, Paint_Stroke_Width describes the line thickness,
-Paint_Stroke_Cap describes line ends, and Paint_Stroke_Join describes how
-corners are drawn.
-
-#Param path Path to draw ##
-#Param paint stroke, blend, color, and so on, used to draw ##
+#Populate
#Example
#Description
@@ -3797,22 +3111,7 @@
#In Draw_Image
#In Draw
#Line # draws Image at (x, y) position ##
-Draws Image image, with its top-left corner at (left, top),
-using Clip, Matrix, and optional Paint paint.
-
-If paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter, Blend_Mode,
-and Draw_Looper. If image is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from image bounds. If generated
-mask extends beyond image bounds, replicate image edge colors, just as Shader
-made from SkImage::makeShader with SkShader::kClamp_TileMode set replicates the
-image edge color when it samples outside of its bounds.
-
-#Param image uncompressed rectangular map of pixels ##
-#Param left left side of image ##
-#Param top top side of image ##
-#Param paint Paint containing Blend_Mode, Color_Filter, Image_Filter,
- and so on; or nullptr
-##
+#Populate
#Example
#Height 64
@@ -3836,23 +3135,7 @@
#Method void drawImage(const sk_sp<SkImage>& image, SkScalar left, SkScalar top,
const SkPaint* paint = nullptr)
-
-Draws Image image, with its top-left corner at (left, top),
-using Clip, Matrix, and optional Paint paint.
-
-If Paint paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If image is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from image bounds. If generated
-mask extends beyond image bounds, replicate image edge colors, just as Shader
-made from SkImage::makeShader with SkShader::kClamp_TileMode set replicates the
-image edge color when it samples outside of its bounds.
-
-#Param image uncompressed rectangular map of pixels ##
-#Param left left side of image ##
-#Param top pop side of image ##
-#Param paint Paint containing Blend_Mode, Color_Filter, Image_Filter,
- and so on; or nullptr
-##
+#Populate
#Example
#Height 64
@@ -3947,29 +3230,7 @@
#In Draw_Image
#In Draw
#Line # draws Image, source Rect to destination Rect ##
-
-Draws Rect src of Image image, scaled and translated to fill Rect dst.
-Additionally transform draw using Clip, Matrix, and optional Paint paint.
-
-If Paint paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If image is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from image bounds.
-
-If generated mask extends beyond image bounds, replicate image edge colors, just
-as Shader made from SkImage::makeShader with SkShader::kClamp_TileMode set
-replicates the image edge color when it samples outside of its bounds.
-
-constraint set to kStrict_SrcRectConstraint limits Paint Filter_Quality to
-sample within src; set to kFast_SrcRectConstraint allows sampling outside to
-improve performance.
-
-#Param image Image containing pixels, dimensions, and format ##
-#Param src source Rect of image to draw from ##
-#Param dst destination Rect of image to draw to ##
-#Param paint Paint containing Blend_Mode, Color_Filter, Image_Filter,
- and so on; or nullptr
-##
-#Param constraint filter strictly within src or draw faster ##
+#Populate
#Example
#Height 64
@@ -4013,31 +3274,7 @@
const SkPaint* paint, SrcRectConstraint constraint = kStrict_SrcRectConstraint)
#In Draw_Image
#In Draw
-
-Draws IRect isrc of Image image, scaled and translated to fill Rect dst.
-Note that isrc is on integer pixel boundaries; dst may include fractional
-boundaries. Additionally transform draw using Clip, Matrix, and optional Paint
-paint.
-
-If Paint paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If image is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from image bounds.
-
-If generated mask extends beyond image bounds, replicate image edge colors, just
-as Shader made from SkImage::makeShader with SkShader::kClamp_TileMode set
-replicates the image edge color when it samples outside of its bounds.
-
-constraint set to kStrict_SrcRectConstraint limits Paint Filter_Quality to
-sample within isrc; set to kFast_SrcRectConstraint allows sampling outside to
-improve performance.
-
-#Param image Image containing pixels, dimensions, and format ##
-#Param isrc source IRect of image to draw from ##
-#Param dst destination Rect of image to draw to ##
-#Param paint Paint containing Blend_Mode, Color_Filter, Image_Filter,
- and so on; or nullptr
-##
-#Param constraint filter strictly within isrc or draw faster ##
+#Populate
#Example
#Image 4
@@ -4059,23 +3296,7 @@
#Method void drawImageRect(const SkImage* image, const SkRect& dst, const SkPaint* paint)
#In Draw_Image
#In Draw
-
-Draws Image image, scaled and translated to fill Rect dst, using Clip, Matrix,
-and optional Paint paint.
-
-If Paint paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If image is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from image bounds.
-
-If generated mask extends beyond image bounds, replicate image edge colors, just
-as Shader made from SkImage::makeShader with SkShader::kClamp_TileMode set
-replicates the image edge color when it samples outside of its bounds.
-
-#Param image Image containing pixels, dimensions, and format ##
-#Param dst destination Rect of image to draw to ##
-#Param paint Paint containing Blend_Mode, Color_Filter, Image_Filter,
- and so on; or nullptr
-##
+#Populate
#Example
#Image 4
@@ -4098,28 +3319,7 @@
SrcRectConstraint constraint = kStrict_SrcRectConstraint)
#In Draw_Image
#In Draw
-Draws Rect src of Image image, scaled and translated to fill Rect dst.
-Additionally transform draw using Clip, Matrix, and optional Paint paint.
-
-If Paint paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If image is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from image bounds.
-
-If generated mask extends beyond image bounds, replicate image edge colors, just
-as Shader made from SkImage::makeShader with SkShader::kClamp_TileMode set
-replicates the image edge color when it samples outside of its bounds.
-
-constraint set to kStrict_SrcRectConstraint limits Paint Filter_Quality to
-sample within src; set to kFast_SrcRectConstraint allows sampling outside to
-improve performance.
-
-#Param image Image containing pixels, dimensions, and format ##
-#Param src source Rect of image to draw from ##
-#Param dst destination Rect of image to draw to ##
-#Param paint Paint containing Blend_Mode, Color_Filter, Image_Filter,
- and so on; or nullptr
-##
-#Param constraint filter strictly within src or draw faster ##
+#Populate
#Example
#Height 64
@@ -4154,29 +3354,7 @@
const SkPaint* paint, SrcRectConstraint constraint = kStrict_SrcRectConstraint)
#In Draw_Image
#In Draw
-Draws IRect isrc of Image image, scaled and translated to fill Rect dst.
-isrc is on integer pixel boundaries; dst may include fractional boundaries.
-Additionally transform draw using Clip, Matrix, and optional Paint paint.
-
-If Paint paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If image is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from image bounds.
-
-If generated mask extends beyond image bounds, replicate image edge colors, just
-as Shader made from SkImage::makeShader with SkShader::kClamp_TileMode set
-replicates the image edge color when it samples outside of its bounds.
-
-constraint set to kStrict_SrcRectConstraint limits Paint Filter_Quality to
-sample within image; set to kFast_SrcRectConstraint allows sampling outside to
-improve performance.
-
-#Param image Image containing pixels, dimensions, and format ##
-#Param isrc source IRect of image to draw from ##
-#Param dst destination Rect of image to draw to ##
-#Param paint Paint containing Blend_Mode, Color_Filter, Image_Filter,
- and so on; or nullptr
-##
-#Param constraint filter strictly within image or draw faster ##
+#Populate
#Example
#Height 64
@@ -4206,22 +3384,7 @@
#Method void drawImageRect(const sk_sp<SkImage>& image, const SkRect& dst, const SkPaint* paint)
#In Draw_Image
#In Draw
-Draws Image image, scaled and translated to fill Rect dst,
-using Clip, Matrix, and optional Paint paint.
-
-If Paint paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If image is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from image bounds.
-
-If generated mask extends beyond image bounds, replicate image edge colors, just
-as Shader made from SkImage::makeShader with SkShader::kClamp_TileMode set
-replicates the image edge color when it samples outside of its bounds.
-
-#Param image Image containing pixels, dimensions, and format ##
-#Param dst destination Rect of image to draw to ##
-#Param paint Paint containing Blend_Mode, Color_Filter, Image_Filter,
- and so on; or nullptr
-##
+#Populate
#Example
#Height 64
@@ -4386,25 +3549,7 @@
#In Draw_Image
#In Draw
#Line # draws Bitmap at (x, y) position ##
-
-Draws Bitmap bitmap, with its top-left corner at (left, top),
-using Clip, Matrix, and optional Paint paint.
-
-If Paint paint is not nullptr, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If bitmap is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from bitmap bounds.
-
-If generated mask extends beyond bitmap bounds, replicate bitmap edge colors,
-just as Shader made from SkShader::MakeBitmapShader with
-SkShader::kClamp_TileMode set replicates the bitmap edge color when it samples
-outside of its bounds.
-
-#Param bitmap Bitmap containing pixels, dimensions, and format ##
-#Param left left side of bitmap ##
-#Param top top side of bitmap ##
-#Param paint Paint containing Blend_Mode, Color_Filter, Image_Filter,
- and so on; or nullptr
-##
+#Populate
#Example
#Height 64
@@ -4441,30 +3586,7 @@
#In Draw_Image
#In Draw
#Line # draws Bitmap, source Rect to destination Rect ##
-
-Draws Rect src of Bitmap bitmap, scaled and translated to fill Rect dst.
-Additionally transform draw using Clip, Matrix, and optional Paint paint.
-
-If Paint paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If bitmap is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from bitmap bounds.
-
-If generated mask extends beyond bitmap bounds, replicate bitmap edge colors,
-just as Shader made from SkShader::MakeBitmapShader with
-SkShader::kClamp_TileMode set replicates the bitmap edge color when it samples
-outside of its bounds.
-
-constraint set to kStrict_SrcRectConstraint limits Paint Filter_Quality to
-sample within src; set to kFast_SrcRectConstraint allows sampling outside to
-improve performance.
-
-#Param bitmap Bitmap containing pixels, dimensions, and format ##
-#Param src source Rect of image to draw from ##
-#Param dst destination Rect of image to draw to ##
-#Param paint Paint containing Blend_Mode, Color_Filter, Image_Filter,
- and so on; or nullptr
-##
-#Param constraint filter strictly within src or draw faster ##
+#Populate
#Example
#Height 64
@@ -4500,30 +3622,7 @@
const SkPaint* paint, SrcRectConstraint constraint = kStrict_SrcRectConstraint)
#In Draw_Image
#In Draw
-Draws IRect isrc of Bitmap bitmap, scaled and translated to fill Rect dst.
-isrc is on integer pixel boundaries; dst may include fractional boundaries.
-Additionally transform draw using Clip, Matrix, and optional Paint paint.
-
-If Paint paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If bitmap is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from bitmap bounds.
-
-If generated mask extends beyond bitmap bounds, replicate bitmap edge colors,
-just as Shader made from SkShader::MakeBitmapShader with
-SkShader::kClamp_TileMode set replicates the bitmap edge color when it samples
-outside of its bounds.
-
-constraint set to kStrict_SrcRectConstraint limits Paint Filter_Quality to
-sample within isrc; set to kFast_SrcRectConstraint allows sampling outside to
-improve performance.
-
-#Param bitmap Bitmap containing pixels, dimensions, and format ##
-#Param isrc source IRect of image to draw from ##
-#Param dst destination Rect of image to draw to ##
-#Param paint Paint containing Blend_Mode, Color_Filter, Image_Filter,
- and so on; or nullptr
-##
-#Param constraint sample strictly within isrc, or draw faster ##
+#Populate
#Example
#Height 64
@@ -4559,29 +3658,7 @@
SrcRectConstraint constraint = kStrict_SrcRectConstraint)
#In Draw_Image
#In Draw
-Draws Bitmap bitmap, scaled and translated to fill Rect dst.
-bitmap bounds is on integer pixel boundaries; dst may include fractional boundaries.
-Additionally transform draw using Clip, Matrix, and optional Paint paint.
-
-If Paint paint is supplied, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper. If bitmap is kAlpha_8_SkColorType, apply Shader.
-If paint contains Mask_Filter, generate mask from bitmap bounds.
-
-If generated mask extends beyond bitmap bounds, replicate bitmap edge colors,
-just as Shader made from SkShader::MakeBitmapShader with
-SkShader::kClamp_TileMode set replicates the bitmap edge color when it samples
-outside of its bounds.
-
-constraint set to kStrict_SrcRectConstraint limits Paint Filter_Quality to
-sample within bitmap; set to kFast_SrcRectConstraint allows sampling outside to
-improve performance.
-
-#Param bitmap Bitmap containing pixels, dimensions, and format ##
-#Param dst destination Rect of image to draw to ##
-#Param paint Paint containing Blend_Mode, Color_Filter, Image_Filter,
- and so on; or nullptr
-##
-#Param constraint filter strictly within bitmap or draw faster ##
+#Populate
#Example
#Height 64
@@ -5045,25 +4122,7 @@
#In Draw_Text
#In Draw
#Line # draws text at (x, y), using font advance ##
-
-Draws text, with origin at (x, y), using Clip, Matrix, and Paint paint.
-
-text meaning depends on Paint_Text_Encoding; by default, text is encoded as
-UTF-8.
-
-x and y meaning depends on Paint_Text_Align; by default
-text draws left to right, positioning the first glyph left side bearing at x
-and its baseline at y. Text size is affected by Matrix and Paint_Text_Size.
-
-All elements of paint: Path_Effect, Mask_Filter, Shader,
-Color_Filter, Image_Filter, and Draw_Looper; apply to text. By default, draws
-filled 12 point black Glyphs.
-
-#Param text character code points or Glyphs drawn ##
-#Param byteLength byte length of text array ##
-#Param x start of text on x-axis ##
-#Param y start of text on y-axis ##
-#Param paint text size, blend, color, and so on, used to draw ##
+#Populate
#Example
#Height 200
@@ -5102,26 +4161,7 @@
#In Draw_Text
#In Draw
#Line # draws null terminated string at (x, y) using font advance ##
-Draws null terminated string, with origin at (x, y), using Clip, Matrix, and
-Paint paint.
-
-string meaning depends on Paint_Text_Encoding; by default, strings are encoded
-as UTF-8. Other values of Paint_Text_Encoding are unlikely to produce the desired
-results, since zero bytes may be embedded in the string.
-
-The string draws left to right, positioning the first glyph left side bearing at x
-and its baseline at y. Text size is affected by Matrix and Paint_Text_Size.
-
-All elements of paint: Path_Effect, Mask_Filter, Shader,
-Color_Filter, Image_Filter, and Draw_Looper; apply to text. By default, draws
-filled 12 point black Glyphs.
-
-#Param string character code points or Glyphs drawn,
- ending with a char value of zero
-##
-#Param x start of string on x-axis ##
-#Param y start of string on y-axis ##
-#Param paint text size, blend, color, and so on, used to draw ##
+#Populate
#Example
#Height 48
@@ -5134,27 +4174,7 @@
##
#Method void drawString(const SkString& string, SkScalar x, SkScalar y, const SkPaint& paint)
-
-Draws null terminated string, with origin at (x, y), using Clip, Matrix, and
-Paint paint.
-
-string meaning depends on Paint_Text_Encoding; by default, strings are encoded
-as UTF-8. Other values of Paint_Text_Encoding are unlikely to produce the desired
-results, since zero bytes may be embedded in the string.
-
-The string draws left to right, positioning the first glyph left side bearing at x
-and its baseline at y. Text size is affected by Matrix and Paint_Text_Size.
-
-All elements of paint: Path_Effect, Mask_Filter, Shader,
-Color_Filter, Image_Filter, and Draw_Looper; apply to text. By default, draws
-filled 12 point black Glyphs.
-
-#Param string character code points or Glyphs drawn,
- ending with a char value of zero
-##
-#Param x start of string on x-axis ##
-#Param y start of string on y-axis ##
-#Param paint text size, blend, color, and so on, used to draw ##
+#Populate
#Example
SkPaint paint;
@@ -5173,26 +4193,7 @@
#In Draw_Text
#In Draw
#Line # draws text at array of (x, y) positions ##
-
-Draws each glyph in text with the origin in pos array, using Clip, Matrix, and
-Paint paint. The number of entries in pos array must match the number of Glyphs
-described by byteLength of text.
-
-text meaning depends on Paint_Text_Encoding; by default, text is encoded as
-UTF-8. glyph left side bearing and baseline are relative to Point in pos array.
-Text size is affected by Matrix and Paint_Text_Size.
-
-All elements of paint: Path_Effect, Mask_Filter, Shader,
-Color_Filter, Image_Filter, and Draw_Looper; apply to text. By default, draws
-filled 12 point black Glyphs.
-
-Layout engines such as Harfbuzz typically position each glyph
-rather than using the font advance widths.
-
-#Param text character code points or Glyphs drawn ##
-#Param byteLength byte length of text array ##
-#Param pos array of glyph origins ##
-#Param paint text size, blend, color, and so on, used to draw ##
+#Populate
#Example
#Height 120
@@ -5217,29 +4218,7 @@
#In Draw_Text
#In Draw
#Line # draws text at x positions with common baseline ##
-
-Draws each glyph in text with its (x, y) origin composed from xpos array and
-constY, using Clip, Matrix, and Paint paint. The number of entries in xpos array
-must match the number of Glyphs described by byteLength of text.
-
-text meaning depends on Paint_Text_Encoding; by default, text is encoded as
-UTF-8. Each glyph left side bearing is positioned at an xpos element and
-its baseline is positioned at constY. Text size is affected by Matrix and
-Paint_Text_Size.
-
-All elements of paint: Path_Effect, Mask_Filter, Shader,
-Color_Filter, Image_Filter, and Draw_Looper; apply to text. By default, draws
-filled 12 point black Glyphs.
-
-Layout engines such as Harfbuzz typically position each glyph
-rather than using the font advance widths if all Glyphs share the same
-baseline.
-
-#Param text character code points or Glyphs drawn ##
-#Param byteLength byte length of text array ##
-#Param xpos array of x-axis positions, used to position each glyph ##
-#Param constY shared y-axis value for all of x-axis positions ##
-#Param paint text size, blend, color, and so on, used to draw ##
+#Populate
#Example
#Height 40
@@ -5261,25 +4240,7 @@
#In Draw_Text
#In Draw
#Line # draws text with array of RSXform ##
-
-Draws text, transforming each glyph by the corresponding SkRSXform,
-using Clip, Matrix, and Paint paint.
-
-RSXform xform array specifies a separate square scale, rotation, and translation
-for each glyph. xform does not affect paint Shader.
-
-Optional Rect cullRect is a conservative bounds of text, taking into account
-RSXform and paint. If cullRect is outside of Clip, canvas can skip drawing.
-
-All elements of paint: Path_Effect, Mask_Filter, Shader,
-Color_Filter, Image_Filter, and Draw_Looper; apply to text. By default, draws
-filled 12 point black Glyphs.
-
-#Param text character code points or Glyphs drawn ##
-#Param byteLength byte length of text array ##
-#Param xform RSXform rotates, scales, and translates each glyph individually ##
-#Param cullRect Rect bounds of text for efficient clipping; or nullptr ##
-#Param paint text size, blend, color, and so on, used to draw ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -5411,13 +4372,7 @@
#Method void drawPicture(const SkPicture* picture)
#In Draw
#Line # draws Picture using Clip and Matrix ##
-Draws Picture picture, using Clip and Matrix.
-Clip and Matrix are unchanged by picture contents, as if
-save() was called before and restore() was called after drawPicture.
-
-Picture records a series of draw commands for later playback.
-
-#Param picture recorded drawing commands to play ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -5445,14 +4400,7 @@
# ------------------------------------------------------------------------------
#Method void drawPicture(const sk_sp<SkPicture>& picture)
-
-Draws Picture picture, using Clip and Matrix.
-Clip and Matrix are unchanged by picture contents, as if
-save() was called before and restore() was called after drawPicture.
-
-Picture records a series of draw commands for later playback.
-
-#Param picture recorded drawing commands to play ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -5480,17 +4428,7 @@
# ------------------------------------------------------------------------------
#Method void drawPicture(const SkPicture* picture, const SkMatrix* matrix, const SkPaint* paint)
-
-Draws Picture picture, using Clip and Matrix; transforming picture with
-Matrix matrix, if provided; and use Paint paint Color_Alpha, Color_Filter,
-Image_Filter, and Blend_Mode, if provided.
-
-matrix transformation is equivalent to: save(), concat(), drawPicture, restore().
-paint use is equivalent to: saveLayer, drawPicture, restore().
-
-#Param picture recorded drawing commands to play ##
-#Param matrix Matrix to rotate, scale, translate, and so on; may be nullptr ##
-#Param paint Paint to apply transparency, filtering, and so on; may be nullptr ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -5522,17 +4460,7 @@
# ------------------------------------------------------------------------------
#Method void drawPicture(const sk_sp<SkPicture>& picture, const SkMatrix* matrix, const SkPaint* paint)
-
-Draws Picture picture, using Clip and Matrix; transforming picture with
-Matrix matrix, if provided; and use Paint paint Color_Alpha, Color_Filter,
-Image_Filter, and Blend_Mode, if provided.
-
-matrix transformation is equivalent to: save(), concat(), drawPicture, restore().
-paint use is equivalent to: saveLayer, drawPicture, restore().
-
-#Param picture recorded drawing commands to play ##
-#Param matrix Matrix to rotate, scale, translate, and so on; may be nullptr ##
-#Param paint Paint to apply transparency, filtering, and so on; may be nullptr ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -5565,13 +4493,7 @@
#Method void drawVertices(const SkVertices* vertices, SkBlendMode mode, const SkPaint& paint)
#In Draw
#Line # draws Vertices, a triangle mesh ##
-Draws Vertices vertices, a triangle mesh, using Clip and Matrix.
-If Vertices_Texs and Vertices_Colors are defined in vertices, and Paint paint
-contains Shader, Blend_Mode mode combines Vertices_Colors with Shader.
-
-#Param vertices triangle mesh to draw ##
-#Param mode combines Vertices_Colors with Shader, if both are present ##
-#Param paint specifies the Shader, used as Vertices texture; may be nullptr ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -5591,14 +4513,7 @@
# ------------------------------------------------------------------------------
#Method void drawVertices(const sk_sp<SkVertices>& vertices, SkBlendMode mode, const SkPaint& paint)
-
-Draws Vertices vertices, a triangle mesh, using Clip and Matrix.
-If Vertices_Texs and Vertices_Colors are defined in vertices, and Paint paint
-contains Shader, Blend_Mode mode combines Vertices_Colors with Shader.
-
-#Param vertices triangle mesh to draw ##
-#Param mode combines Vertices_Colors with Shader, if both are present ##
-#Param paint specifies the Shader, used as Vertices texture, may be nullptr ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -5622,21 +4537,7 @@
#Method void drawVertices(const SkVertices* vertices, const SkVertices::Bone bones[],
int boneCount, SkBlendMode mode, const SkPaint& paint)
-
-Draws Vertices vertices, a triangle mesh, using Clip and Matrix. Bone data is used to
-deform vertices with bone weights.
-If Vertices_Texs and Vertices_Colors are defined in vertices, and Paint paint
-contains Shader, Blend_Mode mode combines Vertices_Colors with Shader.
-The first element of bones should be an object to world space transformation matrix that
-will be applied before performing mesh deformations. If no such transformation is needed,
-it should be the identity matrix.
-boneCount must be at most 80, and thus the size of bones should be at most 80.
-
-#Param vertices triangle mesh to draw ##
-#Param bones bone matrix data ##
-#Param boneCount number of bone matrices ##
-#Param mode combines Vertices_Colors with Shader, if both are present ##
-#Param paint specifies the Shader, used as Vertices texture, may be nullptr ##
+#Populate
#NoExample
void draw(SkCanvas* canvas) {
@@ -5672,21 +4573,7 @@
#Method void drawVertices(const sk_sp<SkVertices>& vertices, const SkVertices::Bone bones[],
int boneCount, SkBlendMode mode, const SkPaint& paint)
-
-Draws Vertices vertices, a triangle mesh, using Clip and Matrix. Bone data is used to
-deform vertices with bone weights.
-If Vertices_Texs and Vertices_Colors are defined in vertices, and Paint paint
-contains Shader, Blend_Mode mode combines Vertices_Colors with Shader.
-The first element of bones should be an object to world space transformation matrix that
-will be applied before performing mesh deformations. If no such transformation is needed,
-it should be the identity matrix.
-boneCount must be at most 80, and thus the size of bones should be at most 80.
-
-#Param vertices triangle mesh to draw ##
-#Param bones bone matrix data ##
-#Param boneCount number of bone matrices ##
-#Param mode combines Vertices_Colors with Shader, if both are present ##
-#Param paint specifies the Shader, used as Vertices texture, may be nullptr ##
+#Populate
#NoExample
void draw(SkCanvas* canvas) {
@@ -5724,32 +4611,7 @@
const SkPoint texCoords[4], SkBlendMode mode, const SkPaint& paint)
#In Draw
#Line # draws Coons_Patch ##
-
-Draws a Coons_Patch: the interpolation of four cubics with shared corners,
-associating a color, and optionally a texture Point, with each corner.
-
-Coons_Patch uses Clip and Matrix, paint Shader, Color_Filter,
-Color_Alpha, Image_Filter, and Blend_Mode. If Shader is provided it is treated
-as Coons_Patch texture; Blend_Mode mode combines Color colors and Shader if
-both are provided.
-
-Point array cubics specifies four Cubics starting at the top-left corner,
-in clockwise order, sharing every fourth point. The last Cubic ends at the
-first point.
-
-Color array color associates colors with corners in top-left, top-right,
-bottom-right, bottom-left order.
-
-If paint contains Shader, Point array texCoords maps Shader as texture to
-corners in top-left, top-right, bottom-right, bottom-left order.
-
-#Param cubics Path_Cubic array, sharing common points ##
-#Param colors Color array, one for each corner ##
-#Param texCoords Point array of texture coordinates, mapping Shader to corners;
- may be nullptr
-#Param ##
-#Param mode Blend_Mode for colors, and for Shader if paint has one ##
-#Param paint Shader, Color_Filter, Blend_Mode, used to draw ##
+#Populate
#Example
#Image 5
@@ -5783,31 +4645,7 @@
#Method void drawPatch(const SkPoint cubics[12], const SkColor colors[4],
const SkPoint texCoords[4], const SkPaint& paint)
-
-Draws Cubic Coons_Patch: the interpolation of four cubics with shared corners,
-associating a color, and optionally a texture Point, with each corner.
-
-Coons_Patch uses Clip and Matrix, paint Shader, Color_Filter,
-Color_Alpha, Image_Filter, and Blend_Mode. If Shader is provided it is treated
-as Coons_Patch texture; Blend_Mode mode combines Color colors and Shader if
-both are provided.
-
-Point array cubics specifies four Cubics starting at the top-left corner,
-in clockwise order, sharing every fourth point. The last Cubic ends at the
-first point.
-
-Color array color associates colors with corners in top-left, top-right,
-bottom-right, bottom-left order.
-
-If paint contains Shader, Point array texCoords maps Shader as texture to
-corners in top-left, top-right, bottom-right, bottom-left order.
-
-#Param cubics Path_Cubic array, sharing common points ##
-#Param colors Color array, one for each corner ##
-#Param texCoords Point array of texture coordinates, mapping Shader to corners;
- may be nullptr
-#Param ##
-#Param paint Shader, Color_Filter, Blend_Mode, used to draw ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -5867,28 +4705,7 @@
const SkPaint* paint)
#In Draw
#Line # draws sprites using Clip, Matrix, and Paint ##
-
-Draws 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
-to draw, if present. For each entry in the array, Rect tex locates sprite in
-atlas, and RSXform xform transforms it into destination space.
-
-xform, text, and colors if present, must contain count entries.
-Optional colors are applied for each sprite using Blend_Mode mode, treating
-sprite as source and colors as destination.
-Optional cullRect is a conservative bounds of all transformed sprites.
-If cullRect is outside of Clip, canvas can skip drawing.
-
-
-
-#Param atlas Image containing sprites ##
-#Param xform RSXform mappings for sprites in atlas ##
-#Param tex Rect locations of sprites in atlas ##
-#Param colors one per sprite, blended with sprite using Blend_Mode; may be nullptr ##
-#Param count number of sprites to draw ##
-#Param mode Blend_Mode combining colors and sprites ##
-#Param cullRect bounds of transformed sprites for efficient clipping; may be nullptr ##
-#Param paint Color_Filter, Image_Filter, Blend_Mode, and so on; may be nullptr ##
+#Populate
#Example
#Image 3
@@ -5911,25 +4728,7 @@
#Method void drawAtlas(const sk_sp<SkImage>& atlas, const SkRSXform xform[], const SkRect tex[],
const SkColor colors[], int count, SkBlendMode mode, const SkRect* cullRect,
const SkPaint* paint)
-
-Draws 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
-to draw, if present. For each entry in the array, Rect tex locates sprite in
-atlas, and RSXform xform transforms it into destination space.
-
-xform, text, and colors if present, must contain count entries.
-Optional colors is applied for each sprite using Blend_Mode.
-Optional cullRect is a conservative bounds of all transformed sprites.
-If cullRect is outside of Clip, canvas can skip drawing.
-
-#Param atlas Image containing sprites ##
-#Param xform RSXform mappings for sprites in atlas ##
-#Param tex Rect locations of sprites in atlas ##
-#Param colors one per sprite, blended with sprite using Blend_Mode; may be nullptr ##
-#Param count number of sprites to draw ##
-#Param mode Blend_Mode combining colors and sprites ##
-#Param cullRect bounds of transformed sprites for efficient clipping; may be nullptr ##
-#Param paint Color_Filter, Image_Filter, Blend_Mode, and so on; may be nullptr ##
+#Populate
#Example
#Image 3
@@ -5954,22 +4753,7 @@
#Method void drawAtlas(const SkImage* atlas, const SkRSXform xform[], const SkRect tex[], int count,
const SkRect* cullRect, const SkPaint* paint)
-
-Draws 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
-to draw, if present. For each entry in the array, Rect tex locates sprite in
-atlas, and RSXform xform transforms it into destination space.
-
-xform and text must contain count entries.
-Optional cullRect is a conservative bounds of all transformed sprites.
-If cullRect is outside of Clip, canvas can skip drawing.
-
-#Param atlas Image containing sprites ##
-#Param xform RSXform mappings for sprites in atlas ##
-#Param tex Rect locations of sprites in atlas ##
-#Param count number of sprites to draw ##
-#Param cullRect bounds of transformed sprites for efficient clipping; may be nullptr ##
-#Param paint Color_Filter, Image_Filter, Blend_Mode, and so on; may be nullptr ##
+#Populate
#Example
#Image 3
@@ -5990,22 +4774,7 @@
#Method void drawAtlas(const sk_sp<SkImage>& atlas, const SkRSXform xform[], const SkRect tex[],
int count, const SkRect* cullRect, const SkPaint* paint)
-
-Draws 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
-to draw, if present. For each entry in the array, Rect tex locates sprite in
-atlas, and RSXform xform transforms it into destination space.
-
-xform and text must contain count entries.
-Optional cullRect is a conservative bounds of all transformed sprites.
-If cullRect is outside of Clip, canvas can skip drawing.
-
-#Param atlas Image containing sprites ##
-#Param xform RSXform mappings for sprites in atlas ##
-#Param tex Rect locations of sprites in atlas ##
-#Param count number of sprites to draw ##
-#Param cullRect bounds of transformed sprites for efficient clipping; may be nullptr ##
-#Param paint Color_Filter, Image_Filter, Blend_Mode, and so on; may be nullptr ##
+#Populate
#Example
#Image 3
@@ -6026,16 +4795,7 @@
#Method void drawDrawable(SkDrawable* drawable, const SkMatrix* matrix = nullptr)
#In Draw
#Line # draws Drawable, encapsulated drawing commands ##
-Draws Drawable drawable using Clip and Matrix, concatenated with
-optional matrix.
-
-If Canvas has an asynchronous implementation, as is the case
-when it is recording into Picture, then drawable will be referenced,
-so that SkDrawable::draw() can be called when the operation is finalized. To force
-immediate drawing, call SkDrawable::draw() instead.
-
-#Param drawable custom struct encapsulating drawing commands ##
-#Param matrix transformation applied to drawing; may be nullptr ##
+#Populate
#Example
#Height 100
@@ -6071,17 +4831,7 @@
# ------------------------------------------------------------------------------
#Method void drawDrawable(SkDrawable* drawable, SkScalar x, SkScalar y)
-
-Draws Drawable drawable using Clip and Matrix, offset by (x, y).
-
-If Canvas has an asynchronous implementation, as is the case
-when it is recording into Picture, then drawable will be referenced,
-so that SkDrawable::draw() can be called when the operation is finalized. To force
-immediate drawing, call SkDrawable::draw() instead.
-
-#Param drawable custom struct encapsulating drawing commands ##
-#Param x offset into Canvas writable pixels on x-axis ##
-#Param y offset into Canvas writable pixels on y-axis ##
+#Populate
#Example
#Height 100
@@ -6118,15 +4868,7 @@
#In Draw
#In Utility
#Line # associates a Rect with a key-value pair ##
-Associates Rect on Canvas with an annotation; a key-value pair, where the key is
-a null-terminated utf8 string, and optional value is stored as Data.
-
-Only some canvas implementations, such as recording to Picture, or drawing to
-Document_PDF, use annotations.
-
-#Param rect Rect extent of canvas to annotate ##
-#Param key string used for lookup ##
-#Param value data holding value stored in annotation ##
+#Populate
#Example
#Height 1
@@ -6147,16 +4889,7 @@
# ------------------------------------------------------------------------------
#Method void drawAnnotation(const SkRect& rect, const char key[], const sk_sp<SkData>& value)
-
-Associates Rect on Canvas when an annotation; a key-value pair, where the key is
-a null-terminated utf8 string, and optional value is stored as Data.
-
-Only some canvas implementations, such as recording to Picture, or drawing to
-Document_PDF, use annotations.
-
-#Param rect Rect extent of canvas to annotate ##
-#Param key string used for lookup ##
-#Param value data holding value stored in annotation ##
+#Populate
#Example
#Height 1
@@ -6179,13 +4912,7 @@
#Method virtual bool isClipEmpty() const
#In Property
#Line # returns if Clip is empty ##
-Returns true if Clip is empty; that is, nothing will draw.
-
-May do work when called; it should not be called
-more often than needed. However, once called, subsequent calls perform no
-work until Clip changes.
-
-#Return true if Clip is empty ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -6209,10 +4936,7 @@
#Method virtual bool isClipRect() const
#In Property
#Line # returns if Clip is Rect and not empty ##
-Returns true if Clip is Rect and not empty.
-Returns false if the clip is empty, or if it is not Rect.
-
-#Return true if Clip is Rect and not empty ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
diff --git a/docs/SkColor4f_Reference.bmh b/docs/SkColor4f_Reference.bmh
index 97fabb1..16746d3 100644
--- a/docs/SkColor4f_Reference.bmh
+++ b/docs/SkColor4f_Reference.bmh
@@ -1,6 +1,5 @@
#Topic Color4f
#Alias Color4f_Reference ##
-#Substitute SkColor4f
#Struct SkPM4f
##
diff --git a/docs/SkFILEStream_Reference.bmh b/docs/SkFILEStream_Reference.bmh
index 42e350f..f847547 100644
--- a/docs/SkFILEStream_Reference.bmh
+++ b/docs/SkFILEStream_Reference.bmh
@@ -17,7 +17,7 @@
Initializes Stream by reading data contained by path.
File descriptor is opened here and is closed when SkFILEStream
-Destructor is invoked.
+destructor is invoked.
#Param path incomplete ##
@@ -40,7 +40,7 @@
Initialize the stream with an existing C_FILE stream.
The current position of the C_FILE stream will be considered the
beginning of the SkFILEStream.
-The C_FILE stream is closed when SkFILEStream Destructor is invoked.
+The C_FILE stream is closed when SkFILEStream destructor is invoked.
#Param file incomplete ##
diff --git a/docs/SkIPoint_Reference.bmh b/docs/SkIPoint_Reference.bmh
index c7ba27f..5f8f542 100644
--- a/docs/SkIPoint_Reference.bmh
+++ b/docs/SkIPoint_Reference.bmh
@@ -26,12 +26,7 @@
#In Constructors
#Line # constructs from integer inputs ##
-Sets fX to x, fY to y.
-
-#Param x integer x-axis value of constructed IPoint ##
-#Param y integer y-axis value of constructed IPoint ##
-
-#Return IPoint (x, y) ##
+#Populate
#Example
SkIPoint pt1 = {45, 66};
@@ -56,9 +51,7 @@
#Method int32_t x() const
#In Property
#Line # returns fX ##
-Returns x-axis value of IPoint.
-
-#Return fX ##
+#Populate
#Example
SkIPoint pt1 = {45, 66};
@@ -77,9 +70,7 @@
#Method int32_t y() const
#In Property
#Line # returns fY ##
-Returns y-axis value of IPoint.
-
-#Return fY ##
+#Populate
#Example
SkIPoint pt1 = {45, 66};
@@ -98,9 +89,7 @@
#Method bool isZero() const
#In Property
#Line # returns true if both members equal zero ##
-Returns true if fX and fY are both zero.
-
-#Return true if fX is zero and fY is zero ##
+#Populate
#Example
SkIPoint pt = { 0, -0};
@@ -123,10 +112,7 @@
#Method void set(int32_t x, int32_t y)
#In Set
#Line # sets to integer input ##
-Sets fX to x and fY to y.
-
-#Param x new value for fX ##
-#Param y new value for fY ##
+#Populate
#Example
SkIPoint pt1, pt2 = { SK_MinS32, SK_MaxS32 };
@@ -146,9 +132,7 @@
#Method SkIPoint operator-()_const
#Line # reverses sign of IPoint ##
-Returns IPoint changing the signs of fX and fY.
-
-#Return IPoint as (-fX, -fY) ##
+#Populate
#Example
SkIPoint test[] = { {0, -0}, {-1, -2},
@@ -245,12 +229,7 @@
#Method bool equals(int32_t x, int32_t y) const
#In Operators
#Line # returns true if members are equal ##
-Returns true if IPoint is equivalent to IPoint constructed from (x, y).
-
-#Param x value compared with fX ##
-#Param y value compared with fY ##
-
-#Return true if IPoint equals (x, y) ##
+#Populate
#Example
SkIPoint test[] = { {0, -0}, {-1, -2}, {SK_MaxS32, -1}, {SK_NaN32, -1} };
@@ -274,12 +253,7 @@
#Method bool operator==(const SkIPoint& a, const SkIPoint& b)
#Line # returns true if IPoints are equal ##
-Returns true if a is equivalent to b.
-
-#Param a IPoint to compare ##
-#Param b IPoint to compare ##
-
-#Return true if a.fX == b.fX and a.fY == b.fY ##
+#Populate
#Example
SkIPoint test[] = { {0, -0}, {-1, -2}, {SK_MaxS32, -1}, {SK_NaN32, -1} };
@@ -303,12 +277,7 @@
#Method bool operator!=(const SkIPoint& a, const SkIPoint& b)
#Line # returns true if IPoints are unequal ##
-Returns true if a is not equivalent to b.
-
-#Param a IPoint to compare ##
-#Param b IPoint to compare ##
-
-#Return true if a.fX != b.fX or a.fY != b.fY ##
+#Populate
#Example
SkIPoint test[] = { {0, -0}, {-1, -2}, {SK_MaxS32, -1}, {SK_NaN32, -1} };
@@ -431,4 +400,3 @@
##
#Topic IPoint ##
-
diff --git a/docs/SkIRect_Reference.bmh b/docs/SkIRect_Reference.bmh
index 2d90880..3bbfd68 100644
--- a/docs/SkIRect_Reference.bmh
+++ b/docs/SkIRect_Reference.bmh
@@ -44,12 +44,7 @@
#In Constructors
#Line # returns bounds of (0, 0, 0, 0) ##
-Returns constructed IRect set to (0, 0, 0, 0).
-Many other rectangles are empty; if left is equal to or greater than right,
-or if top is equal to or greater than bottom. Setting all members to zero
-is a convenience, but does not designate a special empty rectangle.
-
-#Return bounds (0, 0, 0, 0) ##
+#Populate
#Example
SkIRect rect = SkIRect::MakeEmpty();
@@ -78,13 +73,7 @@
#In Constructors
#Line # constructs from int input returning (0, 0, width, height) ##
-Returns constructed IRect set to (0, 0, w, h). Does not validate input; w or h
-may be negative.
-
-#Param w width of constructed IRect ##
-#Param h height of constructed IRect ##
-
-#Return bounds (0, 0, w, h) ##
+#Populate
#Example
SkIRect rect1 = SkIRect::MakeWH(25, 35);
@@ -108,12 +97,7 @@
#In Constructors
#Line # constructs from ISize returning (0, 0, width, height) ##
-Returns constructed IRect set to (0, 0, size.width(), size.height()).
-Does not validate input; size.width() or size.height() may be negative.
-
-#Param size values for IRect width and height ##
-
-#Return bounds (0, 0, size.width(), size.height()) ##
+#Populate
#Example
SkSize size = {25.5f, 35.5f};
@@ -137,15 +121,7 @@
#In Constructors
#Line # constructs from int left, top, right, bottom ##
-Returns constructed IRect set to (l, t, r, b). Does not sort input; IRect may
-result in fLeft greater than fRight, or fTop greater than fBottom.
-
-#Param l integer stored in fLeft ##
-#Param t integer stored in fTop ##
-#Param r integer stored in fRight ##
-#Param b integer stored in fBottom ##
-
-#Return bounds (l, t, r, b) ##
+#Populate
#Example
SkIRect rect = SkIRect::MakeLTRB(5, 35, 15, 25);
@@ -170,15 +146,8 @@
#In Constructors
#Line # constructs from int input returning (x, y, width, height) ##
-Returns constructed IRect set to: #Formula # (x, y, x + w, y + h) ##.
-Does not validate input; w or h may be negative.
-#Param x stored in fLeft ##
-#Param y stored in fTop ##
-#Param w added to x and stored in fRight ##
-#Param h added to y and stored in fBottom ##
-
-#Return bounds at (x, y) with width w and height h ##
+#Populate
#Example
SkIRect rect = SkIRect::MakeXYWH(5, 35, -15, 25);
@@ -207,10 +176,7 @@
#In Property
#Line # returns smaller bounds in x, if sorted ##
-Returns left edge of IRect, if sorted.
-Call sort() to reverse fLeft and fRight if needed.
-
-#Return fLeft ##
+#Populate
#Example
SkIRect unsorted = { 15, 5, 10, 25 };
@@ -233,10 +199,7 @@
#In Property
#Line # returns smaller bounds in y, if sorted ##
-Returns top edge of IRect, if sorted. Call isEmpty to see if IRect may be invalid,
-and sort() to reverse fTop and fBottom if needed.
-
-#Return fTop ##
+#Populate
#Example
SkIRect unsorted = { 15, 25, 10, 5 };
@@ -259,10 +222,7 @@
#In Property
#Line # returns larger bounds in x, if sorted ##
-Returns right edge of IRect, if sorted.
-Call sort() to reverse fLeft and fRight if needed.
-
-#Return fRight ##
+#Populate
#Example
SkIRect unsorted = { 15, 25, 10, 5 };
@@ -285,10 +245,7 @@
#In Property
#Line # returns larger bounds in y, if sorted ##
-Returns bottom edge of IRect, if sorted. Call isEmpty to see if IRect may be invalid,
-and sort() to reverse fTop and fBottom if needed.
-
-#Return fBottom ##
+#Populate
#Example
SkIRect unsorted = { 15, 25, 10, 5 };
@@ -311,10 +268,7 @@
#In Property
#Line # returns bounds left ##
-Returns left edge of IRect, if sorted. Call isEmpty to see if IRect may be invalid,
-and sort() to reverse fLeft and fRight if needed.
-
-#Return fLeft ##
+#Populate
#Example
SkIRect unsorted = { 15, 5, 10, 25 };
@@ -337,10 +291,7 @@
#In Property
#Line # returns bounds top ##
-Returns top edge of IRect, if sorted. Call isEmpty to see if IRect may be invalid,
-and sort() to reverse fTop and fBottom if needed.
-
-#Return fTop ##
+#Populate
#Example
SkIRect unsorted = { 15, 25, 10, 5 };
@@ -363,10 +314,7 @@
#In Property
#Line # returns span in x ##
-Returns span on the x-axis. This does not check if IRect is sorted, or if
-result fits in 32-bit signed integer; result may be negative.
-
-#Return fRight minus fLeft ##
+#Populate
#Example
SkIRect unsorted = { 15, 25, 10, 5 };
@@ -389,11 +337,7 @@
#In Property
#Line # returns span in y as int64_t ##
-Returns span on the x-axis. This does not check if IRect is sorted, so the
-result may be negative. This is safer than calling width() since width() might
-overflow in its calculation.
-
-#Return fRight minus fLeft cast to int64_t ##
+#Populate
#Example
SkIRect large = { -2147483647, 1, 2147483644, 2 };
@@ -413,10 +357,7 @@
#In Property
#Line # returns span in y ##
-Returns span on the y-axis. This does not check if IRect is sorted, or if
-result fits in 32-bit signed integer; result may be negative.
-
-#Return fBottom minus fTop ##
+#Populate
#Example
SkIRect unsorted = { 15, 25, 10, 20 };
@@ -439,11 +380,7 @@
#In Property
#Line # returns span in y as int64_t ##
-Returns span on the y-axis. This does not check if IRect is sorted, so the
-result may be negative. This is safer than calling height() since height() might
-overflow in its calculation.
-
-#Return fBottom minus fTop cast to int64_t ##
+#Populate
#Example
SkIRect large = { 1, -2147483647, 2, 2147483644 };
@@ -463,10 +400,7 @@
#In Property
#Line # returns ISize (width, height) ##
-Returns spans on the x-axis and y-axis. This does not check if IRect is sorted,
-or if result fits in 32-bit signed integer; result may be negative.
-
-#Return ISize (width, height) ##
+#Populate
#Example
auto debugster = [](const char* prefix, const SkIRect& rect) -> void {
@@ -498,9 +432,7 @@
#In Property
#Line # returns true if width or height are zero or negative or they exceed int32_t ##
-Returns true if width() or height() are zero or negative or they exceed int32_t.
-
-#Return true if width() or height() are not positive and valid ##
+#Populate
#Example
SkIRect tests[] = {{20, 40, 10, 50}, {20, 40, 20, 50}};
@@ -529,11 +461,7 @@
#In Property
#Line # returns true if width or height are zero or negative ##
-Returns true if fLeft is equal to or greater than fRight, or if fTop is equal
-to or greater than fBottom. Call sort() to reverse rectangles with negative
-width64() or height64().
-
-#Return true if width64() or height64() are not positive ##
+#Populate
#Example
SkIRect tests[] = {{20, 40, 10, 50}, {20, 40, 20, 50}};
@@ -564,13 +492,7 @@
#In Operators
#Line # returns true if members are equal ##
-Returns true if all members in a: fLeft, fTop, fRight, and fBottom; are
-identical to corresponding members in b.
-
-#Param a IRect to compare ##
-#Param b IRect to compare ##
-
-#Return true if members are equal ##
+#Populate
#Example
SkIRect test = {0, 0, 2, 2};
@@ -591,13 +513,7 @@
#In Operators
#Line # returns true if members are unequal ##
-Returns true if any member in a: fLeft, fTop, fRight, and fBottom; is not
-identical to the corresponding member in b.
-
-#Param a IRect to compare ##
-#Param b IRect to compare ##
-
-#Return true if members are not equal ##
+#Populate
#Example
SkIRect test = {2, 2, 0, 0};
@@ -624,11 +540,7 @@
#In Set
#Line # sets to (0, 0, 0, 0) ##
-Sets IRect to (0, 0, 0, 0).
-
-Many other rectangles are empty; if left is equal to or greater than right,
-or if top is equal to or greater than bottom. Setting all members to zero
-is a convenience, but does not designate a special empty rectangle.
+#Populate
#Example
SkIRect rect = {3, 4, 1, 2};
@@ -653,14 +565,7 @@
#In Set
#Line # sets to (left, top, right, bottom) ##
-Sets IRect to (left, top, right, bottom).
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
-
-#Param left assigned to fLeft ##
-#Param top assigned to fTop ##
-#Param right assigned to fRight ##
-#Param bottom assigned to fBottom ##
+#Populate
#Example
SkIRect rect1 = {3, 4, 1, 2};
@@ -684,14 +589,7 @@
#In Set
#Line # sets to SkScalar input (left, top, right, bottom) ##
-Sets IRect to (left, top, right, bottom).
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
-
-#Param left stored in fLeft ##
-#Param top stored in fTop ##
-#Param right stored in fRight ##
-#Param bottom stored in fBottom ##
+#Populate
#Example
SkIRect rect1 = {3, 4, 1, 2};
@@ -750,17 +648,7 @@
#In Inset_Outset_Offset
#Line # constructs from translated sides ##
-Returns IRect offset by (dx, dy).
-
-If dx is negative, IRect returned is moved to the left.
-If dx is positive, IRect returned is moved to the right.
-If dy is negative, IRect returned is moved upward.
-If dy is positive, IRect returned is moved downward.
-
-#Param dx offset added to fLeft and fRight ##
-#Param dy offset added to fTop and fBottom ##
-
-#Return IRect offset by dx and dy, with original width and height ##
+#Populate
#Example
SkIRect rect = { 10, 50, 20, 60 };
@@ -785,17 +673,7 @@
#In Inset_Outset_Offset
#Line # constructs from sides moved symmetrically about the center ##
-Returns IRect, inset by (dx, dy).
-
-If dx is negative, IRect returned is wider.
-If dx is positive, IRect returned is narrower.
-If dy is negative, IRect returned is taller.
-If dy is positive, IRect returned is shorter.
-
-#Param dx offset added to fLeft and subtracted from fRight ##
-#Param dy offset added to fTop and subtracted from fBottom ##
-
-#Return IRect inset symmetrically left and right, top and bottom ##
+#Populate
#Example
SkIRect rect = { 10, 50, 20, 60 };
@@ -820,17 +698,7 @@
#In Inset_Outset_Offset
#Line # constructs from sides moved symmetrically about the center ##
-Returns IRect, outset by (dx, dy).
-
-If dx is negative, IRect returned is narrower.
-If dx is positive, IRect returned is wider.
-If dy is negative, IRect returned is shorter.
-If dy is positive, IRect returned is taller.
-
-#Param dx offset subtracted to fLeft and added from fRight ##
-#Param dy offset subtracted to fTop and added from fBottom ##
-
-#Return IRect outset symmetrically left and right, top and bottom ##
+#Populate
#Example
SkIRect rect = { 10, 50, 20, 60 };
@@ -855,15 +723,7 @@
#In Inset_Outset_Offset
#Line # translates sides without changing width and height ##
-Offsets IRect by adding dx to fLeft, fRight; and by adding dy to fTop, fBottom.
-
-If dx is negative, moves IRect returned to the left.
-If dx is positive, moves IRect returned to the right.
-If dy is negative, moves IRect returned upward.
-If dy is positive, moves IRect returned downward.
-
-#Param dx offset added to fLeft and fRight ##
-#Param dy offset added to fTop and fBottom ##
+#Populate
#Example
SkIRect rect = { 10, 14, 50, 73 };
@@ -883,15 +743,7 @@
#Method void offset(const SkIPoint& delta)
#In Inset_Outset_Offset
-Offsets IRect by adding delta.fX to fLeft, fRight; and by adding delta.fY to
-fTop, fBottom.
-
-If delta.fX is negative, moves IRect returned to the left.
-If delta.fX is positive, moves IRect returned to the right.
-If delta.fY is negative, moves IRect returned upward.
-If delta.fY is positive, moves IRect returned downward.
-
-#Param delta offset added to IRect ##
+#Populate
#Example
SkIRect rect = { 10, 14, 50, 73 };
@@ -912,11 +764,7 @@
#In Inset_Outset_Offset
#Line # translates to (x, y) without changing width and height ##
-Offsets IRect so that fLeft equals newX, and fTop equals newY. width and height
-are unchanged.
-
-#Param newX stored in fLeft, preserving width() ##
-#Param newY stored in fTop, preserving height() ##
+#Populate
#Example
SkIRect rect = { 10, 14, 50, 73 };
@@ -937,15 +785,7 @@
#In Inset_Outset_Offset
#Line # moves the sides symmetrically about the center ##
-Insets IRect by (dx,dy).
-
-If dx is positive, makes IRect narrower.
-If dx is negative, makes IRect wider.
-If dy is positive, makes IRect shorter.
-If dy is negative, makes IRect taller.
-
-#Param dx offset added to fLeft and subtracted from fRight ##
-#Param dy offset added to fTop and subtracted from fBottom ##
+#Populate
#Example
SkIRect rect = { 10, 14, 50, 73 };
@@ -966,15 +806,7 @@
#In Inset_Outset_Offset
#Line # moves the sides symmetrically about the center ##
-Outsets IRect by (dx, dy).
-
-If dx is positive, makes IRect wider.
-If dx is negative, makes IRect narrower.
-If dy is positive, makes IRect taller.
-If dy is negative, makes IRect shorter.
-
-#Param dx subtracted to fLeft and added from fRight ##
-#Param dy subtracted to fTop and added from fBottom ##
+#Populate
#Example
SkIRect rect = { 10, 14, 50, 73 };
@@ -1009,21 +841,7 @@
#In Inset_Outset_Offset
#Line # moves the sides independently relative to their original locations ##
-Adjusts IRect by adding dL to fLeft, dT to fTop, dR to fRight, and dB to fBottom.
-
-If dL is positive, narrows IRect on the left. If negative, widens it on the left.
-If dT is positive, shrinks IRect on the top. If negative, lengthens it on the top.
-If dR is positive, narrows IRect on the right. If negative, widens it on the right.
-If dB is positive, shrinks IRect on the bottom. If negative, lengthens it on the bottom.
-
-The resulting IRect is not checked for validity. Thus, if the resulting IRect left is
-greater than right, the IRect will be considered empty. Call sort() after this call
-if that is not the desired behavior.
-
-#Param dL offset added to fLeft ##
-#Param dT offset added to fTop ##
-#Param dR offset added to fRight ##
-#Param dB offset added to fBottom ##
+#Populate
#Example
SkIRect rect = { 8, 11, 19, 22 };
@@ -1079,18 +897,7 @@
#Method bool contains(int32_t left, int32_t top, int32_t right, int32_t bottom) const
#In Intersection
-Constructs IRect to intersect from (left, top, right, bottom). Does not sort
-construction.
-
-Returns true if IRect contains construction.
-Returns false if IRect is empty or construction is empty.
-
-#Param left x-axis minimum of constructed IRect ##
-#Param top y-axis minimum of constructed IRect ##
-#Param right x-axis maximum of constructed IRect ##
-#Param bottom y-axis maximum of constructed IRect ##
-
-#Return true if all sides of IRect are outside construction ##
+#Populate
#Example
SkIRect rect = { 30, 50, 40, 60 };
@@ -1119,14 +926,7 @@
#Method bool contains(const SkIRect& r) const
#In Intersection
-Returns true if IRect contains r.
-Returns false if IRect is empty or r is empty.
-
-IRect contains r when IRect area completely includes r area.
-
-#Param r IRect contained ##
-
-#Return true if all sides of IRect are outside r ##
+#Populate
#Example
SkIRect rect = { 30, 50, 40, 60 };
@@ -1153,14 +953,7 @@
#Method bool contains(const SkRect& r) const
#In Intersection
-Returns true if IRect contains r.
-Returns false if IRect is empty or r is empty.
-
-IRect contains r when IRect area completely includes r area.
-
-#Param r Rect contained ##
-
-#Return true if all sides of IRect are outside r ##
+#Populate
#Example
SkIRect rect = { 30, 50, 40, 60 };
@@ -1188,21 +981,7 @@
int32_t right, int32_t bottom) const
#In Intersection
#Line # returns true if contains unsorted IRect ##
-
-Constructs IRect from (left, top, right, bottom). Does not sort
-construction.
-
-Returns true if IRect contains construction.
-Asserts if IRect is empty or construction is empty, and if SK_DEBUG is defined.
-
-Return is undefined if IRect is empty or construction is empty.
-
-#Param left x-axis minimum of constructed IRect ##
-#Param top y-axis minimum of constructed IRect ##
-#Param right x-axis maximum of constructed IRect ##
-#Param bottom y-axis maximum of constructed IRect ##
-
-#Return true if all sides of IRect are outside construction ##
+#Populate
#Example
SkIRect rect = { 30, 50, 40, 60 };
@@ -1231,14 +1010,7 @@
#Method bool containsNoEmptyCheck(const SkIRect& r) const
#In Intersection
-Returns true if IRect contains construction.
-Asserts if IRect is empty or construction is empty, and if SK_DEBUG is defined.
-
-Return is undefined if IRect is empty or construction is empty.
-
-#Param r IRect contained ##
-
-#Return true if all sides of IRect are outside r ##
+#Populate
#Example
SkIRect rect = { 30, 50, 40, 60 };
@@ -1266,14 +1038,7 @@
#In Intersection
#Line # sets to shared area; returns true if not empty ##
-Returns true if IRect intersects r, and sets IRect to intersection.
-Returns false if IRect does not intersect r, and leaves IRect unchanged.
-
-Returns false if either r or IRect is empty, leaving IRect unchanged.
-
-#Param r limit of result ##
-
-#Return true if r and IRect have area in common ##
+#Populate
#Example
#Description
@@ -1300,15 +1065,7 @@
#Method bool intersect(const SkIRect& a, const SkIRect& b)
#In Intersection
-Returns true if a intersects b, and sets IRect to intersection.
-Returns false if a does not intersect b, and leaves IRect unchanged.
-
-Returns false if either a or b is empty, leaving IRect unchanged.
-
-#Param a IRect to intersect ##
-#Param b IRect to intersect ##
-
-#Return true if a and b have area in common ##
+#Populate
#Example
SkIRect result;
@@ -1330,15 +1087,7 @@
#In Intersection
#Line # sets to shared area; returns true if not empty skips empty check ##
-Returns true if a intersects b, and sets IRect to intersection.
-Returns false if a does not intersect b, and leaves IRect unchanged.
-
-Asserts if either a or b is empty, and if SK_DEBUG is defined.
-
-#Param a IRect to intersect ##
-#Param b IRect to intersect ##
-
-#Return true if a and b have area in common ##
+#Populate
#Example
SkIRect result;
@@ -1360,20 +1109,7 @@
#Method bool intersect(int32_t left, int32_t top, int32_t right, int32_t bottom)
#In Intersection
-Constructs IRect to intersect from (left, top, right, bottom). Does not sort
-construction.
-
-Returns true if IRect intersects construction, and sets IRect to intersection.
-Returns false if IRect does not intersect construction, and leaves IRect unchanged.
-
-Returns false if either construction or IRect is empty, leaving IRect unchanged.
-
-#Param left x-axis minimum of constructed IRect ##
-#Param top y-axis minimum of constructed IRect ##
-#Param right x-axis maximum of constructed IRect ##
-#Param bottom y-axis maximum of constructed IRect ##
-
-#Return true if construction and IRect have area in common ##
+#Populate
#Example
#Description
@@ -1400,13 +1136,7 @@
#In Intersection
#Line # returns true if areas overlap ##
-Returns true if a intersects b.
-Returns false if either a or b is empty, or do not intersect.
-
-#Param a IRect to intersect ##
-#Param b IRect to intersect ##
-
-#Return true if a and b have area in common ##
+#Populate
#Example
SkDebugf("%s intersection", SkIRect::Intersects({10, 40, 50, 80}, {30, 60, 70, 90}) ? "" : "no ");
@@ -1425,13 +1155,7 @@
#In Intersection
#Line # returns true if areas overlap skips empty check ##
-Returns true if a intersects b.
-Asserts if either a or b is empty, and if SK_DEBUG is defined.
-
-#Param a IRect to intersect ##
-#Param b IRect to intersect ##
-
-#Return true if a and b have area in common ##
+#Populate
#Example
SkDebugf("%s intersection", SkIRect::IntersectsNoEmptyCheck(
@@ -1457,18 +1181,7 @@
#In Join
#Line # sets to union of bounds ##
-Constructs IRect to intersect from (left, top, right, bottom). Does not sort
-construction.
-
-Sets IRect to the union of itself and the construction.
-
-Has no effect if construction is empty. Otherwise, if IRect is empty, sets
-IRect to construction.
-
-#Param left x-axis minimum of constructed IRect ##
-#Param top y-axis minimum of constructed IRect ##
-#Param right x-axis maximum of constructed IRect ##
-#Param bottom y-axis maximum of constructed IRect ##
+#Populate
#Example
SkIRect rect = { 10, 20, 15, 25};
@@ -1488,11 +1201,7 @@
#Method void join(const SkIRect& r)
#In Join
-Sets IRect to the union of itself and r.
-
-Has no effect if r is empty. Otherwise, if IRect is empty, sets IRect to r.
-
-#Param r expansion IRect ##
+#Populate
#Example
SkIRect rect = { 10, 20, 15, 25};
@@ -1517,9 +1226,7 @@
#In Sorting
#Line # orders sides from smaller to larger ##
-Swaps fLeft and fRight if fLeft is greater than fRight; and swaps
-fTop and fBottom if fTop is greater than fBottom. Result may be empty,
-and width() and height() will be zero or positive.
+#Populate
#Example
SkIRect rect = { 30, 50, 20, 10 };
@@ -1543,11 +1250,7 @@
#In Sorting
#In Constructors
#Line # constructs IRect, ordering sides from smaller to larger ##
-Returns IRect with fLeft and fRight swapped if fLeft is greater than fRight; and
-with fTop and fBottom swapped if fTop is greater than fBottom. Result may be empty;
-and width() and height() will be zero or positive.
-
-#Return sorted IRect ##
+#Populate
#Example
SkIRect rect = { 30, 50, 20, 10 };
@@ -1570,9 +1273,7 @@
#In Constructors
#Line # returns immutable bounds of (0, 0, 0, 0) ##
-Returns a reference to immutable empty IRect, set to (0, 0, 0, 0).
-
-#Return global IRect set to all zeroes ##
+#Populate
#Example
const SkIRect& rect = SkIRect::EmptyIRect();
diff --git a/docs/SkImageInfo_Reference.bmh b/docs/SkImageInfo_Reference.bmh
index 98f15f5..800ba39 100644
--- a/docs/SkImageInfo_Reference.bmh
+++ b/docs/SkImageInfo_Reference.bmh
@@ -192,16 +192,8 @@
#Method static inline bool SkAlphaTypeIsOpaque(SkAlphaType at)
#In Property
#Line # returns if Alpha_Type equals kOpaque_SkAlphaType ##
+#Populate
-Returns true if Alpha_Type equals kOpaque_SkAlphaType. kOpaque_SkAlphaType is a
-hint that the Color_Type is opaque, or that all Color_Alpha values are set to
-their 1.0 equivalent. If Alpha_Type is kOpaque_SkAlphaType, and Color_Type is not
-opaque, then the result of drawing any pixel with a Color_Alpha value less than
-1.0 is undefined.
-
-#Param at one of: #list_of_alpha_types#
-##
-#Return true if at equals kOpaque_SkAlphaType ##
#NoExample
##
##
@@ -229,7 +221,7 @@
##
Describes how pixel bits encode color. A pixel may be an alpha mask, a
-Grayscale, RGB, or ARGB.
+grayscale, RGB, or ARGB.
kN32_SkColorType selects the native 32-bit ARGB format. On Little_Endian
processors, pixels containing 8-bit ARGB components pack into 32-bit
@@ -299,7 +291,7 @@
##
#Const kGray_8_SkColorType 9
-#Line # pixel with Grayscale 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.
@@ -706,8 +698,8 @@
##
#Subtopic Gray_8
-#Line # encodes level of Grayscale in 8 bits ##
- kGray_8_SkColorType encodes Grayscale 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
@@ -883,14 +875,7 @@
#Method int SkColorTypeBytesPerPixel(SkColorType ct)
#In Property
#Line # returns Color_Type byte size ##
-
-Returns the number of bytes required to store a pixel, including unused padding.
-Returns zero if ct is kUnknown_SkColorType or invalid.
-
-#Param ct one of: #list_of_color_types#
-##
-
-#Return bytes per pixel ##
+#Populate
#Example
#Height 192
@@ -918,14 +903,7 @@
#Method bool SkColorTypeIsAlwaysOpaque(SkColorType ct)
#In Property
#Line # returns if Color_Type includes Color_Alpha ##
-
-Returns true if Color_Type always decodes Color_Alpha to 1.0, making the pixel
-fully opaque. If true, Color_Type does not reserve bits to encode Color_Alpha.
-
-#Param ct one of: #list_of_color_types#
-##
-
-#Return true if Color_Alpha is always set to 1.0 ##
+#Populate
#Example
#Height 192
@@ -954,31 +932,7 @@
SkAlphaType* canonical = nullptr)
#In Property
#Line # returns if Alpha_Type is valid ##
-
-Returns true if canonical can be set to a valid Alpha_Type for colorType. If
-there is more than one valid canonical Alpha_Type, set to alphaType, if valid.
-If true is returned and canonical is not nullptr, store valid Alpha_Type.
-
-Returns false only if alphaType is kUnknown_SkAlphaType, color type is not
-kUnknown_SkColorType, and Color_Type is not always opaque. If false is returned,
-canonical is ignored.
-
-For kUnknown_SkColorType: set canonical to kUnknown_SkAlphaType and return true.
-For kAlpha_8_SkColorType: set canonical to kPremul_SkAlphaType or
-kOpaque_SkAlphaType and return true if alphaType is not kUnknown_SkAlphaType.
-For kRGB_565_SkColorType, kRGB_888x_SkColorType, kRGB_101010x_SkColorType, and
-kGray_8_SkColorType: set canonical to kOpaque_SkAlphaType and return true.
-For kARGB_4444_SkColorType, kRGBA_8888_SkColorType, kBGRA_8888_SkColorType,
-kRGBA_1010102_SkColorType, and kRGBA_F16_SkColorType: set canonical to alphaType
-and return true if alphaType is not kUnknown_SkAlphaType.
-
-#Param colorType one of: #list_of_color_types#
-##
-#Param alphaType one of: #list_of_alpha_types#
-##
-#Param canonical storage for Alpha_Type ##
-
-#Return true if valid Alpha_Type can be associated with colorType ##
+#Populate
#Example
#Height 640
@@ -1085,10 +1039,7 @@
#In Constructors
#Line # creates with zeroed dimensions, kUnknown_SkColorType, kUnknown_SkAlphaType ##
-Creates an empty Image_Info with kUnknown_SkColorType, kUnknown_SkAlphaType,
-a width and height of zero, and no Color_Space.
-
-#Return empty Image_Info ##
+#Populate
#Example
#Height 32
@@ -1117,24 +1068,7 @@
sk_sp<SkColorSpace> cs = nullptr)
#In Constructors
#Line # creates Image_Info from dimensions, Color_Type, Alpha_Type, Color_Space ##
-Creates Image_Info from integral dimensions width and height, Color_Type ct,
-Alpha_Type at, and optionally Color_Space cs.
-
-If Color_Space cs is nullptr and Image_Info is part of drawing source: Color_Space
-defaults to sRGB, mapping into Surface Color_Space.
-
-Parameters are not validated to see if their values are legal, or that the
-combination is supported.
-
-#Param width pixel column count; must be zero or greater ##
-#Param height pixel row count; must be zero or greater ##
-#Param ct one of: #list_of_color_types#
-##
-#Param at one of: #list_of_alpha_types#
-##
-#Param cs range of colors; may be nullptr ##
-
-#Return created Image_Info ##
+#Populate
#Example
#Height 48
@@ -1161,23 +1095,7 @@
sk_sp<SkColorSpace> cs = nullptr)
#In Constructors
#Line # creates Image_Info with Native_Color_Type ##
-Creates Image_Info from integral dimensions width and height, kN32_SkColorType,
-Alpha_Type at, and optionally Color_Space cs. kN32_SkColorType will equal either
-kBGRA_8888_SkColorType or kRGBA_8888_SkColorType, whichever is optimal.
-
-If Color_Space cs is nullptr and Image_Info is part of drawing source: Color_Space
-defaults to sRGB, mapping into Surface Color_Space.
-
-Parameters are not validated to see if their values are legal, or that the
-combination is supported.
-
-#Param width pixel column count; must be zero or greater ##
-#Param height pixel row count; must be zero or greater ##
-#Param at one of: #list_of_alpha_types#
-##
-#Param cs range of colors; may be nullptr ##
-
-#Return created Image_Info ##
+#Populate
#Example
#Height 128
@@ -1201,18 +1119,7 @@
#In Constructors
#Line # creates Image_Info with Native_Color_Type, sRGB Color_Space ##
-Creates Image_Info from integral dimensions width and height, kN32_SkColorType,
-Alpha_Type at, with sRGB Color_Space.
-
-Parameters are not validated to see if their values are legal, or that the
-combination is supported.
-
-#Param width pixel column count; must be zero or greater ##
-#Param height pixel row count; must be zero or greater ##
-#Param at one of: #list_of_alpha_types#
-##
-
-#Return created Image_Info ##
+#Populate
#Example
#Set sRGB
@@ -1257,20 +1164,7 @@
#In Constructors
#Line # creates Image_Info with Native_Color_Type, kPremul_SkAlphaType ##
-Creates Image_Info from integral dimensions width and height, kN32_SkColorType,
-kPremul_SkAlphaType, with optional Color_Space.
-
-If Color_Space cs is nullptr and Image_Info is part of drawing source: Color_Space
-defaults to sRGB, mapping into Surface Color_Space.
-
-Parameters are not validated to see if their values are legal, or that the
-combination is supported.
-
-#Param width pixel column count; must be zero or greater ##
-#Param height pixel row count; must be zero or greater ##
-#Param cs range of colors; may be nullptr ##
-
-#Return created Image_Info ##
+#Populate
#Example
#Height 128
@@ -1295,18 +1189,7 @@
#Method static SkImageInfo MakeN32Premul(const SkISize& size)
#In Constructors
-Creates Image_Info from integral dimensions width and height, kN32_SkColorType,
-kPremul_SkAlphaType, with Color_Space set to nullptr.
-
-If Image_Info is part of drawing source: Color_Space defaults to sRGB, mapping
-into Surface Color_Space.
-
-Parameters are not validated to see if their values are legal, or that the
-combination is supported.
-
-#Param size width and height, each must be zero or greater ##
-
-#Return created Image_Info ##
+#Populate
#Example
#Height 128
@@ -1332,13 +1215,7 @@
#In Constructors
#Line # creates Image_Info with kAlpha_8_SkColorType, kPremul_SkAlphaType ##
-Creates Image_Info from integral dimensions width and height, kAlpha_8_SkColorType,
-kPremul_SkAlphaType, with Color_Space set to nullptr.
-
-#Param width pixel column count; must be zero or greater ##
-#Param height pixel row count; must be zero or greater ##
-
-#Return created Image_Info ##
+#Populate
#Example
#Height 64
@@ -1372,16 +1249,7 @@
#In Constructors
#Line # creates Image_Info with kUnknown_SkColorType, kUnknown_SkAlphaType ##
-Creates Image_Info from integral dimensions width and height, kUnknown_SkColorType,
-kUnknown_SkAlphaType, with Color_Space set to nullptr.
-
-Returned Image_Info as part of source does not draw, and as part of destination
-can not be drawn to.
-
-#Param width pixel column count; must be zero or greater ##
-#Param height pixel row count; must be zero or greater ##
-
-#Return created Image_Info ##
+#Populate
#Example
#Height 32
@@ -1403,13 +1271,7 @@
#Method static SkImageInfo MakeUnknown()
#In Constructors
-Creates Image_Info from integral dimensions width and height set to zero,
-kUnknown_SkColorType, kUnknown_SkAlphaType, with Color_Space set to nullptr.
-
-Returned Image_Info as part of source does not draw, and as part of destination
-can not be drawn to.
-
-#Return created Image_Info ##
+#Populate
#Example
#Height 32
@@ -1435,9 +1297,7 @@
#Method int width() const
#In Property
#Line # returns pixel column count ##
-Returns pixel count in each row.
-
-#Return pixel width ##
+#Populate
#Example
#Image 4
@@ -1460,9 +1320,7 @@
#Method int height() const
#In Property
#Line # returns pixel row count ##
-Returns pixel row count.
-
-#Return pixel height ##
+#Populate
#Example
#Image 4
@@ -1529,10 +1387,7 @@
#Method SkColorSpace* colorSpace() const
#In Property
#Line # returns Color_Space ##
-Returns Color_Space, the range of colors. The reference count of
-Color_Space is unchanged. The returned Color_Space is immutable.
-
-#Return Color_Space, or nullptr ##
+#Populate
#Example
#Description
@@ -1560,13 +1415,7 @@
#Method sk_sp<SkColorSpace> refColorSpace() const
#In Property
#Line # returns Color_Space ##
-Returns smart pointer to Color_Space, the range of colors. The smart pointer
-tracks the number of objects sharing this Color_Space reference so the memory
-is released when the owners destruct.
-
-The returned Color_Space is immutable.
-
-#Return Color_Space wrapped in a smart pointer ##
+#Populate
#Example
SkImageInfo info1 = SkImageInfo::MakeN32(16, 32, kPremul_SkAlphaType,
@@ -1589,11 +1438,7 @@
#Method bool isEmpty() const
#In Property
#Line # returns if dimensions contain pixels ##
-
-Returns if Image_Info describes an empty area of pixels by checking if either
-width or height is zero or smaller.
-
-#Return true if either dimension is zero or smaller ##
+#Populate
#Example
for (int width : { 0, 2 } ) {
@@ -1620,15 +1465,7 @@
#Method bool isOpaque() const
#In Property
#Line # returns if Alpha_Type is kOpaque_SkAlphaType ##
-
-Returns true if Alpha_Type is set to hint that all pixels are opaque; their
-Color_Alpha value is implicitly or explicitly 1.0. If true, and all pixels are
-not opaque, Skia may draw incorrectly.
-
-Does not check if Color_Type allows Alpha, or if any pixel value has
-transparency.
-
-#Return true if Alpha_Type is kOpaque_SkAlphaType ##
+#Populate
#Example
const int height = 2;
@@ -1662,10 +1499,7 @@
#Method SkISize dimensions() const
#In Property
#Line # returns width() and height() ##
-
-Returns ISize { width(), height() }.
-
-#Return integral size of width() and height() ##
+#Populate
#Example
const int height = 2;
@@ -1689,9 +1523,7 @@
#Method SkIRect bounds() const
#In Property
#Line # returns width() and height() as Rectangle ##
-Returns IRect { 0, 0, width(), height() }.
-
-#Return integral rectangle from origin to width() and height() ##
+#Populate
#Example
#Height 64
@@ -1763,13 +1595,7 @@
#Method SkImageInfo makeWH(int newWidth, int newHeight) const
#In Constructors
#Line # creates Image_Info with changed dimensions ##
-Creates Image_Info with the same Color_Type, Color_Space, and Alpha_Type,
-with dimensions set to width and height.
-
-#Param newWidth pixel column count; must be zero or greater ##
-#Param newHeight pixel row count; must be zero or greater ##
-
-#Return created Image_Info ##
+#Populate
#Example
#Height 144
@@ -1795,16 +1621,7 @@
#Method SkImageInfo makeAlphaType(SkAlphaType newAlphaType) const
#In Constructors
#Line # creates Image_Info with changed Alpha_Type ##
-Creates Image_Info with same Color_Type, Color_Space, width, and height,
-with Alpha_Type set to newAlphaType.
-
-Created Image_Info contains newAlphaType even if it is incompatible with
-Color_Type, in which case Alpha_Type in Image_Info is ignored.
-
-#Param newAlphaType one of: #list_of_alpha_types#
-##
-
-#Return created Image_Info ##
+#Populate
#Example
#Image 3
@@ -1840,13 +1657,7 @@
#Method SkImageInfo makeColorType(SkColorType newColorType) const
#In Constructors
#Line # creates Image_Info with changed Color_Type ##
-Creates Image_Info with same Alpha_Type, Color_Space, width, and height,
-with Color_Type set to newColorType.
-
-#Param newColorType one of: #list_of_color_types#
-##
-
-#Return created Image_Info ##
+#Populate
#Example
const int width = 256;
@@ -1881,12 +1692,7 @@
#Method SkImageInfo makeColorSpace(sk_sp<SkColorSpace> cs) const
#In Constructors
#Line # creates Image_Info with changed Color_Space ##
-Creates Image_Info with same Alpha_Type, Color_Type, width, and height,
-with Color_Space set to cs.
-
-#Param cs range of colors; may be nullptr ##
-
-#Return created Image_Info ##
+#Populate
#Example
#Height 224
@@ -1933,10 +1739,7 @@
#Method int bytesPerPixel() const
#In Property
#Line # returns number of bytes in pixel based on Color_Type ##
-Returns number of bytes per pixel required by Color_Type.
-Returns zero if colorType( is kUnknown_SkColorType.
-
-#Return bytes in pixel ##
+#Populate
#Example
const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
@@ -1972,10 +1775,7 @@
#Method int shiftPerPixel() const
#In Property
#Line # returns bit shift from pixels to bytes ##
-Returns bit shift converting row bytes to row pixels.
-Returns zero for kUnknown_SkColorType.
-
-#Return one of: 0, 1, 2, 3; left shift to convert pixels to bytes ##
+#Populate
#Example
const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
@@ -2011,12 +1811,7 @@
#Method uint64_t minRowBytes64() const
#In Property
#Line # returns width() times bytesPerPixel in 64 bits ##
-
-Returns minimum bytes per row, computed from pixel width() and Color_Type, which
-specifies bytesPerPixel(). Bitmap maximum value for row bytes must fit
-in 31 bits.
-
-#Return width() times bytesPerPixel as unsigned 64-bit integer ##
+#Populate
#Example
for (int shift = 24; shift < 32; ++shift) {
@@ -2049,12 +1844,7 @@
#Method size_t minRowBytes() const
#In Property
#Line # returns width() times bytesPerPixel in 32 bits ##
-
-Returns minimum bytes per row, computed from pixel width() and Color_Type, which
-specifies bytesPerPixel(). Bitmap maximum value for row bytes must fit
-in 31 bits.
-
-#Return width() times bytesPerPixel as signed 32-bit integer ##
+#Populate
#Example
for (int shift = 24; shift < 32; ++shift) {
@@ -2087,17 +1877,7 @@
#Method size_t computeOffset(int x, int y, size_t rowBytes) const
#In Utility
#Line # returns byte offset within pixel array ##
-
-Returns byte offset of pixel from pixel base address.
-
-Asserts in debug build if x or y is outside of bounds. Does not assert if
-rowBytes is smaller than minRowBytes, even though result may be incorrect.
-
-#Param x column index, zero or greater, and less than width() ##
-#Param y row index, zero or greater, and less than height() ##
-#Param rowBytes size of pixel row or larger ##
-
-#Return offset within pixel array ##
+#Populate
#Example
#Height 128
@@ -2131,13 +1911,7 @@
#Method bool operator==(const SkImageInfo& other)_const
#Line # compares Image_Info for equality ##
-
-Compares Image_Info with other, and returns true if width, height, Color_Type,
-Alpha_Type, and Color_Space are equivalent.
-
-#Param other Image_Info to compare ##
-
-#Return true if Image_Info equals other ##
+#Populate
#Example
SkImageInfo info1 = SkImageInfo::Make(10, 20, kGray_8_SkColorType, kPremul_SkAlphaType);
@@ -2165,13 +1939,7 @@
#Method bool operator!=(const SkImageInfo& other)_const
#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 not equivalent.
-
-#Param other Image_Info to compare ##
-
-#Return true if Image_Info is not equal to other ##
+#Populate
#Example
SkImageInfo info1 = SkImageInfo::Make(10, 20, kGray_8_SkColorType, kPremul_SkAlphaType);
@@ -2200,15 +1968,7 @@
#Method size_t computeByteSize(size_t rowBytes) const
#In Utility
#Line # returns memory required by pixel buffer with given row bytes ##
-Returns storage required by pixel array, given Image_Info dimensions, Color_Type,
-and rowBytes. rowBytes is assumed to be at least as large as minRowBytes().
-
-Returns zero if height is zero.
-Returns SIZE_MAX if answer exceeds the range of size_t.
-
-#Param rowBytes size of pixel row or larger ##
-
-#Return memory required by pixel buffer ##
+#Populate
#Example
#Height 130
@@ -2234,13 +1994,7 @@
#Method size_t computeMinByteSize() const
#In Utility
#Line # returns least memory required by pixel buffer ##
-Returns storage required by pixel array, given Image_Info dimensions, and
-Color_Type. Uses minRowBytes() to compute bytes for pixel row.
-
-Returns zero if height is zero.
-Returns SIZE_MAX if answer exceeds the range of size_t.
-
-#Return least memory required by pixel buffer ##
+#Populate
#Example
#Height 130
@@ -2266,12 +2020,7 @@
#Method static bool ByteSizeOverflowed(size_t byteSize)
#In Utility
#Line # checks result of computeByteSize and computeMinByteSize ##
-Returns true if byteSize equals SIZE_MAX. computeByteSize and
-computeMinByteSize return SIZE_MAX if size_t can not hold buffer size.
-
-#Param byteSize result of computeByteSize or computeMinByteSize ##
-
-#Return true if computeByteSize or computeMinByteSize result exceeds size_t ##
+#Populate
#Example
SkImageInfo info = SkImageInfo::MakeN32Premul(2, 1000000000);
@@ -2298,11 +2047,7 @@
#Method bool validRowBytes(size_t rowBytes) const
#In Utility
#Line # checks if row bytes is large enough to contain pixel row ##
-Returns true if rowBytes is smaller than width times pixel size.
-
-#Param rowBytes size of pixel row or larger ##
-
-#Return true if rowBytes is large enough to contain pixel row ##
+#Populate
#Example
SkImageInfo info = SkImageInfo::MakeN32Premul(16, 8);
@@ -2326,8 +2071,7 @@
#Method void reset()
#In Constructors
#Line # sets zero dimensions, kUnknown_SkColorType, kUnknown_SkAlphaType ##
-Creates an empty Image_Info with kUnknown_SkColorType, kUnknown_SkAlphaType,
-a width and height of zero, and no Color_Space.
+#Populate
#Example
SkImageInfo info = SkImageInfo::MakeN32Premul(16, 8);
@@ -2355,8 +2099,7 @@
#Method void validate() const
#In Utility
#Line # asserts if Image_Info is invalid (debug only) ##
-Asserts if internal values are illegal or inconsistent. Only available if
-SK_DEBUG is defined at compile time.
+#Populate
#NoExample
##
diff --git a/docs/SkImage_Reference.bmh b/docs/SkImage_Reference.bmh
index 61d9835..7c2d350 100644
--- a/docs/SkImage_Reference.bmh
+++ b/docs/SkImage_Reference.bmh
@@ -50,19 +50,7 @@
#Method static sk_sp<SkImage> MakeRasterCopy(const SkPixmap& pixmap)
#In Constructors
#Line # creates Image from Pixmap and copied pixels ##
-Creates Image from Pixmap and copy of pixels. Since pixels are copied, Pixmap
-pixels may be modified or deleted without affecting Image.
-
-Image is returned if Pixmap is valid. Valid Pixmap parameters include:
-dimensions are greater than zero;
-each dimension fits in 29 bits;
-Color_Type and Alpha_Type are valid, and Color_Type is not kUnknown_SkColorType;
-row bytes are large enough to hold one row of pixels;
-pixel address is not nullptr.
-
-#Param pixmap Image_Info, pixel address, and row bytes ##
-
-#Return copy of Pixmap pixels, or nullptr ##
+#Populate
#Example
#Height 50
@@ -96,20 +84,7 @@
#Method static sk_sp<SkImage> MakeRasterData(const SkImageInfo& info, sk_sp<SkData> pixels, size_t rowBytes)
#In Constructors
#Line # creates Image from Image_Info and shared pixels ##
-Creates Image from Image_Info, sharing pixels.
-
-Image is returned if Image_Info is valid. Valid Image_Info parameters include:
-dimensions are greater than zero;
-each dimension fits in 29 bits;
-Color_Type and Alpha_Type are valid, and Color_Type is not kUnknown_SkColorType;
-rowBytes are large enough to hold one row of pixels;
-pixels is not nullptr, and contains enough data for Image.
-
-#Param info contains width, height, Alpha_Type, Color_Type, Color_Space ##
-#Param pixels address or pixel storage ##
-#Param rowBytes size of pixel row or larger ##
-
-#Return Image sharing pixels, or nullptr ##
+#Populate
#Example
#Image 3
@@ -162,27 +137,7 @@
ReleaseContext releaseContext)
#In Constructors
#Line # creates Image from Pixmap, with release ##
-
-Creates Image from pixmap, sharing Pixmap pixels. Pixels must remain valid and
-unchanged until rasterReleaseProc is called. rasterReleaseProc is passed
-releaseContext when Image is deleted or no longer refers to pixmap pixels.
-
-Pass nullptr for rasterReleaseProc to share Pixmap without requiring a callback
-when Image is released. Pass nullptr for releaseContext if rasterReleaseProc
-does not require state.
-
-Image is returned if pixmap is valid. Valid Pixmap parameters include:
-dimensions are greater than zero;
-each dimension fits in 29 bits;
-Color_Type and Alpha_Type are valid, and Color_Type is not kUnknown_SkColorType;
-row bytes are large enough to hold one row of pixels;
-pixel address is not nullptr.
-
-#Param pixmap Image_Info, pixel address, and row bytes ##
-#Param rasterReleaseProc function called when pixels can be released; or nullptr ##
-#Param releaseContext state passed to rasterReleaseProc; or nullptr ##
-
-#Return Image sharing pixmap ##
+#Populate
#Example
#Function
@@ -216,20 +171,7 @@
#Method static sk_sp<SkImage> MakeFromBitmap(const SkBitmap& bitmap)
#In Constructors
#Line # creates Image from Bitmap, sharing or copying pixels ##
-Creates Image from bitmap, sharing or copying bitmap pixels. If the bitmap
-is marked immutable, and its pixel memory is shareable, it may be shared
-instead of copied.
-
-Image is returned if bitmap is valid. Valid Bitmap parameters include:
-dimensions are greater than zero;
-each dimension fits in 29 bits;
-Color_Type and Alpha_Type are valid, and Color_Type is not kUnknown_SkColorType;
-row bytes are large enough to hold one row of pixels;
-pixel address is not nullptr.
-
-#Param bitmap Image_Info, row bytes, and pixels ##
-
-#Return created Image, or nullptr ##
+#Populate
#Example
#Description
@@ -267,22 +209,7 @@
const SkIRect* subset = nullptr)
#In Constructors
#Line # creates Image from a stream of data ##
-
-Creates Image from data returned by imageGenerator. Generated data is owned by Image and may not
-be shared or accessed.
-
-subset allows selecting a portion of the full image. Pass nullptr to select the entire image;
-otherwise, subset must be contained by image bounds.
-
-Image is returned if generator data is valid. Valid data parameters vary by type of data
-and platform.
-
-imageGenerator may wrap Picture data, codec data, or custom data.
-
-#Param imageGenerator stock or custom routines to retrieve Image ##
-#Param subset bounds of returned Image; may be nullptr ##
-
-#Return created Image, or nullptr ##
+#Populate
#Example
#Height 128
@@ -307,17 +234,7 @@
#Method static sk_sp<SkImage> MakeFromEncoded(sk_sp<SkData> encoded, const SkIRect* subset = nullptr)
#In Constructors
#Line # creates Image from encoded data ##
-Creates Image from encoded data.
-subset allows selecting a portion of the full image. Pass nullptr to select the entire image;
-otherwise, subset must be contained by image bounds.
-
-Image is returned if format of the encoded data is recognized and supported.
-Recognized formats vary by platform.
-
-#Param encoded data of Image to decode ##
-#Param subset bounds of returned Image; may be nullptr ##
-
-#Return created Image, or nullptr ##
+#Populate
#Example
#Image 3
@@ -355,22 +272,7 @@
sk_sp<SkColorSpace> colorSpace)
#In Constructors
#Line # creates Image from GPU_Texture ##
-Creates Image from GPU_Texture associated with context. Caller is responsible for
-managing the lifetime of GPU_Texture.
-
-Image is returned if format of backendTexture is recognized and supported.
-Recognized formats vary by GPU back-end.
-
-#Param context GPU_Context ##
-#Param backendTexture texture residing on GPU ##
-#Param origin one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param colorType one of: #list_of_color_types#
-##
-#Param alphaType one of: #list_of_alpha_types#
-##
-#Param colorSpace range of colors; may be nullptr ##
-
-#Return created Image, or nullptr ##
+#Populate
#Example
#Image 3
@@ -407,31 +309,7 @@
sk_sp<SkColorSpace> colorSpace,
TextureReleaseProc textureReleaseProc,
ReleaseContext releaseContext)
-
-Creates Image from GPU_Texture associated with context. GPU_Texture must stay
-valid and unchanged until textureReleaseProc is called. textureReleaseProc is
-passed releaseContext when Image is deleted or no longer refers to texture.
-
-Image is returned if format of backendTexture is recognized and supported.
-Recognized formats vary by GPU back-end.
-
-#Param context GPU_Context ##
-#Param backendTexture texture residing on GPU ##
-#Param origin one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param colorType one of: #list_of_color_types#
-##
-#Param alphaType one of: #list_of_alpha_types#
-##
-#Param colorSpace range of colors; may be nullptr ##
-#Param textureReleaseProc function called when texture can be released ##
-#Param releaseContext state passed to textureReleaseProc ##
-
-#Return created Image, or nullptr ##
-
-#ToDo
-This doesn't do anything clever with TextureReleaseProc because it may not get called
-fwithin the lifetime of the example
-##
+#Populate
#Example
#Platform gpu
@@ -465,32 +343,7 @@
bool limitToMaxTextureSize = false)
#In Constructors
#Line # creates Image from encoded data, and uploads to GPU ##
-
-Creates Image from encoded data. Image is uploaded to GPU back-end using context.
-
-Created Image is available to other GPU contexts, and is available across thread
-boundaries. All contexts must be in the same GPU_Share_Group, or otherwise
-share resources.
-
-When Image is no longer referenced, context releases texture memory
-asynchronously.
-
-Texture decoded from data is uploaded to match Surface created with
-dstColorSpace. Color_Space of Image is determined by encoded data.
-
-Image is returned if format of data is recognized and supported, and if context
-supports moving resources. Recognized formats vary by platform and GPU back-end.
-
-Image is returned using MakeFromEncoded if context is nullptr or does not support
-moving resources between contexts.
-
-#Param context GPU_Context ##
-#Param data Image to decode ##
-#Param buildMips create Image as Mip_Map if true ##
-#Param dstColorSpace range of colors of matching Surface on GPU ##
-#Param limitToMaxTextureSize downscale image to GPU maximum texture size, if necessary ##
-
-#Return created Image, or nullptr ##
+#Populate
#Example
#Image 4
@@ -514,32 +367,7 @@
bool limitToMaxTextureSize = false)
#In Constructors
#Line # creates Image from Pixmap, and uploads to GPU ##
-
-Creates Image from pixmap. Image is uploaded to GPU back-end using context.
-
-Created Image is available to other GPU contexts, and is available across thread
-boundaries. All contexts must be in the same GPU_Share_Group, or otherwise
-share resources.
-
-When Image is no longer referenced, context releases texture memory
-asynchronously.
-
-Texture created from pixmap is uploaded to match Surface created with
-dstColorSpace. Color_Space of Image is determined by pixmap.colorSpace().
-
-Image is returned referring to GPU back-end if context is not nullptr,
-format of data is recognized and supported, and if context supports moving
-resources between contexts. Otherwise, pixmap pixel data is copied and Image
-as returned in raster format if possible; nullptr may be returned.
-Recognized GPU formats vary by platform and GPU back-end.
-
-#Param context GPU_Context ##
-#Param pixmap Image_Info, pixel address, and row bytes ##
-#Param buildMips create Image as Mip_Map if true ##
-#Param dstColorSpace range of colors of matching Surface on GPU ##
-#Param limitToMaxTextureSize downscale image to GPU maximum texture size, if necessary ##
-
-#Return created Image, or nullptr ##
+#Populate
#Example
#Image 4
@@ -567,22 +395,7 @@
sk_sp<SkColorSpace> colorSpace = nullptr)
#In Constructors
#Line # creates Image from GPU_Texture, managed internally ##
-Creates Image from backendTexture associated with context. backendTexture and
-returned Image are managed internally, and are released when no longer needed.
-
-Image is returned if format of backendTexture is recognized and supported.
-Recognized formats vary by GPU back-end.
-
-#Param context GPU_Context ##
-#Param backendTexture texture residing on GPU ##
-#Param surfaceOrigin one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param colorType one of: #list_of_color_types#
-##
-#Param alphaType one of: #list_of_alpha_types#
-##
-#Param colorSpace range of colors; may be nullptr ##
-
-#Return created Image, or nullptr ##
+#Populate
#Example
#Image 5
@@ -621,29 +434,7 @@
sk_sp<SkColorSpace> imageColorSpace = nullptr)
#In Constructor
#Line # creates Image from YUV_ColorSpace data ##
-Creates an SkImage by flattening the specified YUVA planes into a single,
-interleaved RGBA image.
-yuvaTextures points to array of up to four YUVA textures which reside on GPU.
-YUVA textures contain YUVA planes which may be interleaved.
-
-#Param context GPU context ##
-#Param yuvColorSpace one of: kJPEG_SkYUVColorSpace, kRec601_SkYUVColorSpace,
- kRec709_SkYUVColorSpace
-##
-#Param yuvaTextures array of YUVA textures ##
-#Param yuvaIndices array indicating yuvaTextures element and channel
- that map to Y, U, V, and A
-##
-#Param imageSize size of the resulting image ##
-#Param imageOrigin one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param imageColorSpace range of colors of the resulting image; may be nullptr ##
-
-#Return created SkImage, or nullptr ##
-
-# seems too complicated to create an example for this
-#ToDo
-should this be moved to chrome only?
-##
+#Populate
#NoExample
##
@@ -662,23 +453,7 @@
#In Constructor
#Line # creates Image from YUV_ColorSpace data ##
-
-Creates an SkImage by storing the specified YUVA planes into an image, to be rendered
-via multitexturing.
-
-#Param context GPU context ##
-#Param yuvColorSpace one of: kJPEG_SkYUVColorSpace, kRec601_SkYUVColorSpace,
- kRec709_SkYUVColorSpace
-##
-#Param yuvaTextures array of YUVA textures ##
-#Param yuvaIndices array indicating yuvaTextures element and channel
- that map to Y, U, V, and A
-##
-#Param imageSize size of the resulting image ##
-#Param imageOrigin one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param imageColorSpace range of colors of the resulting image; may be nullptr ##
-
-#Return created SkImage, or nullptr ##
+#Populate
#NoExample
##
@@ -701,31 +476,7 @@
sk_sp<SkColorSpace> imageColorSpace = nullptr)
#In Constructor
#Line # creates Image from planar YUV_ColorSpace, stored in texture ##
-
-Creates an SkImage by flattening the specified YUVA planes into a single,
-interleaved RGBA image. backendTexture is used to store the result of flattening.
-yuvaTextures points to array of up to four YUVA textures which reside on GPU.
-YUVA textures contain YUVA planes which may be interleaved.
-
-#Param context GPU context ##
-#Param yuvColorSpace one of: kJPEG_SkYUVColorSpace, kRec601_SkYUVColorSpace,
- kRec709_SkYUVColorSpace
-##
-#Param yuvaTextures array of YUVA textures ##
-#Param yuvaIndices array indicating yuvaTextures element and channel
- that map to Y, U, V, and A
-##
-#Param imageSize size of the resulting image ##
-#Param imageOrigin one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param backendTexture resource that stores the final pixels ##
-#Param imageColorSpace range of colors of the resulting image; may be nullptr ##
-
-#Return created SkImage, or nullptr ##
-
-# seems too complicated to create an example for this
-#ToDo
-should this be moved to chrome only?
-##
+#Populate
#NoExample
##
@@ -740,25 +491,7 @@
sk_sp<SkColorSpace> imageColorSpace = nullptr)
#In Constructors
#Line # creates Image from YUV_ColorSpace data in three planes ##
-
-Creates Image from copy of yuvTextures, an array of textures on GPU.
-yuvTextures contain pixels for YUV planes of Image. Returned Image has the dimensions
-yuvTextures[0]. yuvColorSpace describes how YUV colors convert to RGB colors.
-
-#Param context GPU_Context ##
-#Param yuvColorSpace one of: kJPEG_SkYUVColorSpace, kRec601_SkYUVColorSpace,
- kRec709_SkYUVColorSpace
-##
-#Param yuvTextures array of YUV textures on GPU ##
-#Param imageOrigin one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param imageColorSpace range of colors; may be nullptr ##
-
-#Return created Image, or nullptr ##
-
-# seems too complicated to create an example for this
-#ToDo
-should this be moved to chrome only?
-##
+#Populate
#NoExample
##
@@ -775,27 +508,7 @@
const GrBackendTexture& backendTexture, sk_sp<SkColorSpace> imageColorSpace = nullptr);
#In Constructors
#Line # creates Image from planar YUV_ColorSpace, stored in texture ##
-
-Creates Image from copy of yuvTextures, an array of textures on GPU.
-yuvTextures contain pixels for YUV planes of Image. Returned Image has the dimensions
-yuvTextures[0] and stores pixels in backendTexture. yuvColorSpace describes how YUV colors
-convert to RGB colors.
-
-#Param context GPU_Context ##
-#Param yuvColorSpace one of: kJPEG_SkYUVColorSpace, kRec601_SkYUVColorSpace,
- kRec709_SkYUVColorSpace
-##
-#Param yuvTextures array of YUV textures on GPU ##
-#Param imageOrigin one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param backendTexture resource that stores final pixels ##
-#Param imageColorSpace range of colors; may be nullptr ##
-
-#Return created SkImage, or nullptr ##
-
-# seems too complicated to create an example for this
-#ToDo
-should this be moved to chrome only?
-##
+#Populate
#NoExample
##
@@ -813,28 +526,7 @@
sk_sp<SkColorSpace> imageColorSpace = nullptr)
#In Constructors
#Line # creates Image from YUV_ColorSpace data in three planes ##
-
-Creates Image from copy of nv12Textures, an array of textures on GPU.
-nv12Textures[0] contains pixels for YUV_Component_Y plane.
-nv12Textures[1] contains pixels for YUV_Component_U plane,
-followed by pixels for YUV_Component_V plane.
-Returned Image has the dimensions nv12Textures[2].
-yuvColorSpace describes how YUV colors convert to RGB colors.
-
-#Param context GPU_Context ##
-#Param yuvColorSpace one of: kJPEG_SkYUVColorSpace, kRec601_SkYUVColorSpace,
- kRec709_SkYUVColorSpace
-##
-#Param nv12Textures array of YUV textures on GPU ##
-#Param imageOrigin one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param imageColorSpace range of colors; may be nullptr ##
-
-#Return created Image, or nullptr ##
-
-# seems too complicated to create an example for this
-#ToDo
-should this be moved to chrome only?
-##
+#Populate
#NoExample
##
@@ -852,29 +544,7 @@
sk_sp<SkColorSpace> imageColorSpace = nullptr);
#In Constructors
#Line # creates Image from planar YUV_ColorSpace, stored in texture ##
-
-Creates Image from copy of nv12Textures, an array of textures on GPU.
-nv12Textures[0] contains pixels for YUV_Component_Y plane.
-nv12Textures[1] contains pixels for YUV_Component_U plane,
-followed by pixels for YUV_Component_V plane.
-Returned Image has the dimensions nv12Textures[2] and stores pixels in backendTexture.
-yuvColorSpace describes how YUV colors convert to RGB colors.
-
-#Param context GPU_Context ##
-#Param yuvColorSpace one of: kJPEG_SkYUVColorSpace, kRec601_SkYUVColorSpace,
- kRec709_SkYUVColorSpace
-##
-#Param nv12Textures array of YUV textures on GPU ##
-#Param imageOrigin one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param backendTexture resource that stores final pixels ##
-#Param imageColorSpace range of colors; may be nullptr ##
-
-#Return created Image, or nullptr ##
-
-# seems too complicated to create an example for this
-#ToDo
-should this be moved to chrome only?
-##
+#Populate
#NoExample
##
@@ -918,21 +588,7 @@
sk_sp<SkColorSpace> colorSpace)
#In Constructors
#Line # creates Image from Picture ##
-
-Creates Image from picture. Returned Image width and height are set by dimensions.
-Image draws picture with matrix and paint, set to bitDepth and colorSpace.
-
-If matrix is nullptr, draws with identity Matrix. If paint is nullptr, draws
-with default Paint. colorSpace may be nullptr.
-
-#Param picture stream of drawing commands ##
-#Param dimensions width and height ##
-#Param matrix Matrix to rotate, scale, translate, and so on; may be nullptr ##
-#Param paint Paint to apply transparency, filtering, and so on; may be nullptr ##
-#Param bitDepth 8-bit integer or 16-bit float: per component ##
-#Param colorSpace range of colors; may be nullptr ##
-
-#Return created Image, or nullptr ##
+#Populate
#Example
SkPaint paint;
@@ -969,21 +625,7 @@
GrSurfaceOrigin surfaceOrigin = kTopLeft_GrSurfaceOrigin)
#In Constructors
#Line # creates Image from Android hardware buffer ##
-
-#Bug 7447
-
-Creates Image from Android hardware buffer.
-Returned Image takes a reference on the buffer.
-
-Only available on Android, when __ANDROID_API__ is defined to be 26 or greater.
-
-#Param hardwareBuffer AHardwareBuffer Android hardware buffer ##
-#Param alphaType one of: #list_of_alpha_types#
-##
-#Param colorSpace range of colors; may be nullptr ##
-#Param surfaceOrigin one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-
-#Return created Image, or nullptr ##
+#Populate
#NoExample
##
@@ -1000,9 +642,7 @@
#Method int width() const
#In Property
#Line # returns pixel column count ##
-Returns pixel count in each row.
-
-#Return pixel width in Image ##
+#Populate
#Example
#Image 4
@@ -1024,9 +664,7 @@
#Method int height() const
#In Property
#Line # returns pixel row count ##
-Returns pixel row count.
-
-#Return pixel height in Image ##
+#Populate
#Example
#Image 4
@@ -1048,10 +686,7 @@
#Method SkISize dimensions() const
#In Property
#Line # returns width() and height() ##
-
-Returns ISize { width(), height() }.
-
-#Return integral size of width() and height() ##
+#Populate
#Example
#Image 4
@@ -1073,9 +708,7 @@
#Method SkIRect bounds() const
#In Property
#Line # returns width() and height() as Rectangle ##
-Returns IRect { 0, 0, width(), height() }.
-
-#Return integral rectangle from origin to width() and height() ##
+#Populate
#Example
#Height 128
@@ -1097,11 +730,7 @@
#Method uint32_t uniqueID() const
#In Property
#Line # returns identifier for Image ##
-Returns value unique to image. Image contents cannot change after Image is
-created. Any operation to create a new Image will receive generate a new
-unique number.
-
-#Return unique identifier ##
+#Populate
#Example
#Image 5
@@ -1151,10 +780,7 @@
#Method SkColorType colorType() const
#In Property
#Line # returns Color_Type ##
-
-Returns Color_Type if known; otherwise, returns kUnknown_SkColorType.
-
-#Return Color_Type of Image ##
+#Populate
#Example
#Image 4
@@ -1175,15 +801,7 @@
#Method SkColorSpace* colorSpace() const
#In Property
#Line # returns Color_Space ##
-Returns Color_Space, the range of colors, associated with Image. The
-reference count of Color_Space is unchanged. The returned Color_Space is
-immutable.
-
-Color_Space returned was passed to an Image constructor,
-or was parsed from encoded data. Color_Space returned may be ignored when Image
-is drawn, depending on the capabilities of the Surface receiving the drawing.
-
-#Return Color_Space in Image, or nullptr ##
+#Populate
#Example
#Image 3
@@ -1216,17 +834,7 @@
#Method sk_sp<SkColorSpace> refColorSpace() const
#In Property
#Line # returns Image_Info Color_Space ##
-Returns a smart pointer to Color_Space, the range of colors, associated with
-Image. The smart pointer tracks the number of objects sharing this
-SkColorSpace reference so the memory is released when the owners destruct.
-
-The returned SkColorSpace is immutable.
-
-Color_Space returned was passed to an Image constructor,
-or was parsed from encoded data. Color_Space returned may be ignored when Image
-is drawn, depending on the capabilities of the Surface receiving the drawing.
-
-#Return Color_Space in Image, or nullptr, wrapped in a smart pointer ##
+#Populate
#Example
#Image 3
@@ -1259,10 +867,7 @@
#Method bool isAlphaOnly() const
#In Property
#Line # returns if pixels represent a transparency mask ##
-Returns true if Image pixels represent transparency only. If true, each pixel
-is packed in 8 bits as defined by kAlpha_8_SkColorType.
-
-#Return true if pixels represent a transparency mask ##
+#Populate
#Example
uint8_t pmColors = 0;
@@ -1282,9 +887,7 @@
#Method bool isOpaque() const
#In Property
#Line # returns if Alpha_Type is kOpaque_SkAlphaType ##
-Returns true if pixels ignore their Alpha value and are treated as fully opaque.
-
-#Return true if Alpha_Type is kOpaque_SkAlphaType ##
+#Populate
#Example
auto check_isopaque = [](const SkImageInfo& imageInfo) -> void {
@@ -1311,20 +914,7 @@
const SkMatrix* localMatrix = nullptr) const
#In Constructors
#Line # creates Shader, Paint element that can tile Image ##
-
-Creates Shader from Image. Shader dimensions are taken from Image. Shader uses
-SkShader::TileMode rules to fill drawn area outside Image. localMatrix permits
-transforming Image before Canvas_Matrix is applied.
-
-#Param tileMode1 tiling on x-axis, one of: SkShader::kClamp_TileMode,
- SkShader::kRepeat_TileMode, SkShader::kMirror_TileMode
-##
-#Param tileMode2 tiling on y-axis, one of: SkShader::kClamp_TileMode,
- SkShader::kRepeat_TileMode, SkShader::kMirror_TileMode
-##
-#Param localMatrix Image transformation, or nullptr ##
-
-#Return Shader containing Image ##
+#Populate
#Example
#Image 4
@@ -1343,14 +933,7 @@
# ------------------------------------------------------------------------------
#Method sk_sp<SkShader> makeShader(const SkMatrix* localMatrix = nullptr) const
-
-Creates Shader from Image. Shader dimensions are taken from Image. Shader uses
-SkShader::kClamp_TileMode to fill drawn area outside Image. localMatrix permits
-transforming Image before Canvas_Matrix is applied.
-
-#Param localMatrix Image transformation, or nullptr ##
-
-#Return Shader containing Image ##
+#Populate
#Example
#Image 5
@@ -1374,13 +957,7 @@
#Method bool peekPixels(SkPixmap* pixmap) const
#In Pixels
#Line # returns Pixmap if possible ##
-Copies Image pixel address, row bytes, and Image_Info to pixmap, if address
-is available, and returns true. If pixel address is not available, return
-false and leave pixmap unchanged.
-
-#Param pixmap storage for pixel state if pixels are readable; otherwise, ignored ##
-
-#Return true if Image has direct access to pixels ##
+#Populate
#Example
SkBitmap bitmap;
@@ -1431,10 +1008,7 @@
#Method bool isTextureBacked() const
#In Property
#Line # returns if Image was created from GPU_Texture ##
-Returns true the contents of Image was created on or uploaded to GPU memory,
-and is available as a GPU_Texture.
-
-#Return true if Image is a GPU_Texture ##
+#Populate
#Example
#Image 5
@@ -1470,17 +1044,7 @@
#Method bool isValid(GrContext* context) const
#In Property
#Line # returns if Image can draw to Raster_Surface or GPU_Context ##
-Returns true if Image can be drawn on either Raster_Surface or GPU_Surface.
-If context is nullptr, tests if Image draws on Raster_Surface;
-otherwise, tests if Image draws on GPU_Surface associated with context.
-
-Image backed by GPU_Texture may become invalid if associated GrContext is
-invalid. Lazy_Image may be invalid and may not draw to Raster_Surface or
-GPU_Surface or both.
-
-#Param context GPU_Context ##
-
-#Return true if Image can be drawn ##
+#Populate
#Example
#Image 5
@@ -1521,21 +1085,7 @@
GrSurfaceOrigin* origin = nullptr) const
#In Property
#Line # returns GPU reference to Image as texture ##
-
-Retrieves the back-end texture. If Image has no back-end texture, an invalid
-object is returned. Call GrBackendTexture::isValid to determine if the result
-is valid.
-
-If flushPendingGrContextIO is true, completes deferred I/O operations.
-
-If origin in not nullptr, copies location of content drawn into Image.
-
-#Param flushPendingGrContextIO flag to flush outstanding requests ##
-#Param origin storage for one of: kTopLeft_GrSurfaceOrigin,
- kBottomLeft_GrSurfaceOrigin; or nullptr
-##
-
-#Return back-end API texture handle; invalid on failure ##
+#Populate
#Example
#Image 3
@@ -1732,36 +1282,7 @@
CachingHint cachingHint = kAllow_CachingHint) const
#In Pixels
#Line # scales and converts one Image to another ##
-
-Copies Image to dst, scaling pixels to fit dst.width() and dst.height(), and
-converting pixels to match dst.colorType and dst.alphaType. Returns true if
-pixels are copied. Returns false if dst.addr() is nullptr, or dst.rowBytes is
-less than dst SkImageInfo::minRowBytes.
-
-Pixels are copied only if pixel conversion is possible. If Image Color_Type is
-kGray_8_SkColorType, or kAlpha_8_SkColorType; dst.colorType must match.
-If Image Color_Type is kGray_8_SkColorType, dst.colorSpace must match.
-If Image Alpha_Type is kOpaque_SkAlphaType, dst.alphaType must
-match. If Image Color_Space is nullptr, dst.colorSpace must match. Returns
-false if pixel conversion is not possible.
-
-Scales the image, with filterQuality, to match dst.width() and dst.height().
-filterQuality kNone_SkFilterQuality is fastest, typically implemented with
-Filter_Quality_Nearest_Neighbor. kLow_SkFilterQuality is typically implemented with
-Filter_Quality_Bilerp. kMedium_SkFilterQuality is typically implemented with
-Filter_Quality_Bilerp, and Filter_Quality_MipMap when size is reduced.
-kHigh_SkFilterQuality is slowest, typically implemented with Filter_Quality_BiCubic.
-
-If cachingHint is kAllow_CachingHint, pixels may be retained locally.
-If cachingHint is kDisallow_CachingHint, pixels are not added to the local cache.
-
-#Param dst destination Pixmap: Image_Info, pixels, row bytes ##
-#Param filterQuality one of: kNone_SkFilterQuality, kLow_SkFilterQuality,
- kMedium_SkFilterQuality, kHigh_SkFilterQuality
-##
-#Param cachingHint one of: kAllow_CachingHint, kDisallow_CachingHint ##
-
-#Return true if pixels are scaled to fit dst ##
+#Populate
#Example
#Image 3
@@ -1792,28 +1313,7 @@
#Method sk_sp<SkData> encodeToData(SkEncodedImageFormat encodedImageFormat, int quality) const
#In Utility
#Line # returns encoded Image as SkData ##
-Encodes Image pixels, returning result as SkData.
-
-Returns nullptr if encoding fails, or if encodedImageFormat is not supported.
-
-Image encoding in a format requires both building with one or more of:
-SK_HAS_JPEG_LIBRARY, SK_HAS_PNG_LIBRARY, SK_HAS_WEBP_LIBRARY; and platform support
-for the encoded format.
-
-If SK_BUILD_FOR_MAC or SK_BUILD_FOR_IOS is defined, encodedImageFormat can
-additionally be one of: SkEncodedImageFormat::kICO, SkEncodedImageFormat::kBMP,
-SkEncodedImageFormat::kGIF.
-
-quality is a platform and format specific metric trading off size and encoding
-error. When used, quality equaling 100 encodes with the least error. quality may
-be ignored by the encoder.
-
-#Param encodedImageFormat one of: SkEncodedImageFormat::kJPEG, SkEncodedImageFormat::kPNG,
- SkEncodedImageFormat::kWEBP
- ##
-#Param quality encoder specific metric with 100 equaling best ##
-
-#Return encoded Image, or nullptr ##
+#Populate
#Example
#Image 3
@@ -1835,15 +1335,7 @@
# ------------------------------------------------------------------------------
#Method sk_sp<SkData> encodeToData() const
-
-Encodes Image pixels, returning result as SkData. Returns existing encoded data
-if present; otherwise, Image is encoded with SkEncodedImageFormat::kPNG. Skia
-must be built with SK_HAS_PNG_LIBRARY to encode Image.
-
-Returns nullptr if existing encoded data is missing or invalid, and
-encoding fails.
-
-#Return encoded Image, or nullptr ##
+#Populate
#Example
#Image 3
@@ -1863,13 +1355,7 @@
#Method sk_sp<SkData> refEncodedData() const
#In Utility
#Line # returns Image encoded in SkData if present ##
-Returns encoded Image pixels as SkData, if Image was created from supported
-encoded stream format. Platform support for formats vary and may require building
-with one or more of: SK_HAS_JPEG_LIBRARY, SK_HAS_PNG_LIBRARY, SK_HAS_WEBP_LIBRARY.
-
-Returns nullptr if Image contents are not encoded.
-
-#Return encoded Image, or nullptr ##
+#Populate
#Example
#Image 3
@@ -1906,15 +1392,7 @@
#Method sk_sp<SkImage> makeSubset(const SkIRect& subset) const
#In Constructors
#Line # creates Image containing part of original ##
-Returns subset of Image. subset must be fully contained by Image dimensions().
-The implementation may share pixels, or may copy them.
-
-Returns nullptr if subset is empty, or subset is not contained by bounds, or
-pixels in Image could not be read or copied.
-
-#Param subset bounds of returned Image ##
-
-#Return partial or full Image, or nullptr ##
+#Populate
#Example
#Image 3
@@ -1939,20 +1417,7 @@
GrMipMapped mipMapped = GrMipMapped::kNo) const
#In Constructors
#Line # creates Image matching Color_Space if possible ##
-Returns Image backed by GPU_Texture associated with context. Returned Image is
-compatible with Surface created with dstColorSpace. The returned Image respects
-mipMapped setting; if mipMapped equals GrMipMapped::kYes, the backing texture
-allocates Mip_Map levels. Returns original Image if context
-and dstColorSpace match and mipMapped is compatible with backing GPU_Texture.
-
-Returns nullptr if context is nullptr, or if Image was created with another
-GrContext.
-
-#Param context GPU_Context ##
-#Param dstColorSpace range of colors of matching Surface on GPU ##
-#Param mipMapped whether created Image texture must allocate Mip_Map levels ##
-
-#Return created Image, or nullptr ##
+#Populate
#Example
#Platform gpu
@@ -1988,13 +1453,7 @@
#Method sk_sp<SkImage> makeNonTextureImage() const
#In Constructors
#Line # creates Image without dependency on GPU_Texture ##
-Returns Raster_Image or Lazy_Image. Copies Image backed by GPU_Texture into
-CPU memory if needed. Returns original Image if decoded in Raster_Bitmap,
-or if encoded in a stream.
-
-Returns nullptr if backed by GPU_Texture and copy fails.
-
-#Return Raster_Image, Lazy_Image, or nullptr ##
+#Populate
#Example
#Image 5
@@ -2029,15 +1488,8 @@
#Method sk_sp<SkImage> makeRasterImage() const
#In Constructors
#Line # creates Image compatible with Raster_Surface if possible ##
-Returns Raster_Image. Copies Image backed by GPU_Texture into CPU memory,
-or decodes Image from Lazy_Image. Returns original Image if decoded in
-Raster_Bitmap.
+#Populate
-Returns nullptr if copy, decode, or pixel read fails.
-
-#Return Raster_Image, or nullptr ##
-
-#Bug 7479
#Example
#Image 5
#Platform gpu
@@ -2073,31 +1525,8 @@
SkIPoint* offset) const
#In Constructors
#Line # creates filtered, clipped Image ##
+#Populate
-Creates filtered Image. filter processes original Image, potentially changing
-color, position, and size. subset is the bounds of original Image processed
-by filter. clipBounds is the expected bounds of the filtered Image. outSubset
-is required storage for the actual bounds of the filtered Image. offset is
-required storage for translation of returned Image.
-
-Returns nullptr if Image could not be created. If nullptr is returned, outSubset
-and offset are undefined.
-
-Useful for animation of SkImageFilter that varies size from frame to frame.
-Returned Image is created larger than required by filter so that GPU_Texture
-can be reused with different sized effects. outSubset describes the valid bounds
-of GPU_Texture returned. offset translates the returned Image to keep subsequent
-animation frames aligned with respect to each other.
-
-#Param filter how Image is sampled when transformed ##
-#Param subset bounds of Image processed by filter ##
-#Param clipBounds expected bounds of filtered Image ##
-#Param outSubset storage for returned Image bounds ##
-#Param offset storage for returned Image translation ##
-
-#Return filtered Image, or nullptr ##
-
-# Duration 5 breaks fiddlecli
#Example
#Description
In each frame of the animation, filtered Image is drawn in a different location.
@@ -2152,28 +1581,7 @@
BackendTextureReleaseProc* backendTextureReleaseProc)
#In Constructors
#Line # creates GPU_Texture from Image ##
-
-Creates a GrBackendTexture from the provided SkImage. Returns true and
-stores result in backendTexture and backendTextureReleaseProc if
-texture is created; otherwise, returns false and leaves
-backendTexture and backendTextureReleaseProc unmodified.
-
-Call backendTextureReleaseProc after deleting backendTexture.
-backendTextureReleaseProc cleans up auxiliary data related to returned
-backendTexture. The caller must delete returned backendTexture after use.
-
-If Image is both texture backed and singly referenced, image is returned in
-backendTexture without conversion or making a copy. Image is singly referenced
-if its was transferred solely using std::move().
-
-If Image is not texture backed, returns texture with Image contents.
-
-#Param context GPU_Context ##
-#Param image Image used for texture ##
-#Param backendTexture storage for back-end texture ##
-#Param backendTextureReleaseProc storage for clean up function ##
-
-#Return true if back-end texture was created ##
+#Populate
#Example
#Platform gpu
@@ -2233,15 +1641,7 @@
#Method bool asLegacyBitmap(SkBitmap* bitmap, LegacyBitmapMode legacyBitmapMode = kRO_LegacyBitmapMode) const
#In Constructors
#Line # returns as Raster_Bitmap ##
-Creates raster Bitmap with same pixels as Image. If legacyBitmapMode is
-kRO_LegacyBitmapMode, returned bitmap is read-only and immutable.
-Returns true if Bitmap is stored in bitmap. Returns false and resets bitmap if
-Bitmap write did not succeed.
-
-#Param bitmap storage for legacy Bitmap ##
-#Param legacyBitmapMode to be deprecated ##
-
-#Return true if Bitmap was created ##
+#Populate
#Example
#Image 4
@@ -2272,10 +1672,7 @@
#Method bool isLazyGenerated() const
#In Property
#Line # returns if Image is created as needed ##
-Returns true if Image is backed by an image-generator or other service that creates
-and caches its pixels or texture on-demand.
-
-#Return true if Image is created as needed ##
+#Populate
#Example
#Height 80
@@ -2346,17 +1743,7 @@
#Method sk_sp<SkImage> makeColorSpace(sk_sp<SkColorSpace> target) const
#In Constructors
#Line # creates Image matching Color_Space if possible ##
-
-Creates Image in target Color_Space.
-Returns nullptr if Image could not be created.
-
-Returns original Image if it is in target Color_Space.
-Otherwise, converts pixels from Image Color_Space to target Color_Space.
-If Image colorSpace returns nullptr, Image Color_Space is assumed to be sRGB.
-
-#Param target Color_Space describing color range of returned Image ##
-
-#Return created Image in target Color_Space ##
+#Populate
#Example
#Image 5
diff --git a/docs/SkMatrix_Reference.bmh b/docs/SkMatrix_Reference.bmh
index 0d5475b..17ceab5 100644
--- a/docs/SkMatrix_Reference.bmh
+++ b/docs/SkMatrix_Reference.bmh
@@ -25,19 +25,7 @@
#Method static SkMatrix MakeScale(SkScalar sx, SkScalar sy)
#In Constructors
#Line # constructs from scale in x and y ##
-Sets Matrix to scale by (sx, sy). Returned matrix is:
-
-#Code
-#Literal
-| sx 0 0 |
-| 0 sy 0 |
-| 0 0 1 |
-##
-
-#Param sx horizontal scale factor ##
-#Param sy vertical scale factor ##
-
-#Return Matrix with scale ##
+#Populate
#Example
#Image 4
@@ -52,19 +40,7 @@
# ------------------------------------------------------------------------------
#Method static SkMatrix MakeScale(SkScalar scale)
-
-Sets Matrix to scale by (scale, scale). Returned matrix is:
-
-#Code
-#Literal
-| scale 0 0 |
-| 0 scale 0 |
-| 0 0 1 |
-##
-
-#Param scale horizontal and vertical scale factor ##
-
-#Return Matrix with scale ##
+#Populate
#Example
#Image 4
@@ -81,19 +57,7 @@
#Method static SkMatrix MakeTrans(SkScalar dx, SkScalar dy)
#In Constructors
#Line # constructs from translate in x and y ##
-Sets Matrix to translate by (dx, dy). Returned matrix is:
-
-#Code
-#Literal
-| 1 0 dx |
-| 0 1 dy |
-| 0 0 1 |
-##
-
-#Param dx horizontal translation ##
-#Param dy vertical translation ##
-
-#Return Matrix with translation ##
+#Populate
#Example
#Image 4
@@ -115,28 +79,7 @@
SkScalar pers0, SkScalar pers1, SkScalar pers2)
#In Constructors
#Line # constructs all nine values ##
-
-
-Sets Matrix to:
-
-#Code
-#Literal
-| scaleX skewX transX |
-| skewY scaleY transY |
-| pers0 pers1 pers2 |
-##
-
-#Param scaleX horizontal scale factor ##
-#Param skewX horizontal skew factor ##
-#Param transX horizontal translation ##
-#Param skewY vertical skew factor ##
-#Param scaleY vertical scale factor ##
-#Param transY vertical translation ##
-#Param pers0 input x-axis perspective factor ##
-#Param pers1 input y-axis perspective factor ##
-#Param pers2 perspective scale factor ##
-
-#Return Matrix constructed from parameters ##
+#Populate
#Example
SkPaint p;
@@ -232,14 +175,7 @@
#Method TypeMask getType() const
#In Property
#Line # returns transform complexity ##
-Returns a bit field describing the transformations the matrix may
-perform. The bit field is computed conservatively, so it may include
-false positives. For example, when kPerspective_Mask is set, all
-other bits are set.
-
-#Return kIdentity_Mask, or combinations of: kTranslate_Mask, kScale_Mask,
- kAffine_Mask, kPerspective_Mask
-##
+#Populate
#Example
SkMatrix matrix;
@@ -262,16 +198,7 @@
#Method bool isIdentity() const
#In Property
#Line # returns if matrix equals the identity Matrix ##
-Returns true if Matrix is identity. Identity matrix is:
-
-#Code
-#Literal
-| 1 0 0 |
-| 0 1 0 |
-| 0 0 1 |
-##
-
-#Return true if Matrix has no effect ##
+#Populate
#Example
SkMatrix matrix;
@@ -294,17 +221,7 @@
#Method bool isScaleTranslate() const
#In Property
#Line # returns if transform is limited to scale and translate ##
-Returns true if Matrix at most scales and translates. Matrix may be identity,
-contain only scale elements, only translate elements, or both. Matrix form is:
-
-#Code
-#Literal
-| scale-x 0 translate-x |
-| 0 scale-y translate-y |
-| 0 0 1 |
-##
-
-#Return true if Matrix is identity; or scales, translates, or both ##
+#Populate
#Example
SkMatrix matrix;
@@ -331,16 +248,7 @@
#Method bool isTranslate() const
#In Property
#Line # returns if transform is limited to translate ##
-Returns true if Matrix is identity, or translates. Matrix form is:
-
-#Code
-#Literal
-| 1 0 translate-x |
-| 0 1 translate-y |
-| 0 0 1 |
-##
-
-#Return true if Matrix is identity, or translates ##
+#Populate
#Example
SkMatrix matrix;
@@ -367,32 +275,7 @@
#Method bool rectStaysRect() const
#In Property
#Line # returns if mapped Rect can be represented by another Rect ##
-Returns true Matrix maps Rect to another Rect. If true, Matrix is identity,
-or scales, or rotates a multiple of 90 degrees, or mirrors on axes. In all
-cases, Matrix may also have translation. Matrix form is either:
-
-#Code
-#Literal
-| scale-x 0 translate-x |
-| 0 scale-y translate-y |
-| 0 0 1 |
-##
-
-or
-
-#Code
-#Literal
-| 0 rotate-x translate-x |
-| rotate-y 0 translate-y |
-| 0 0 1 |
-##
-
-for non-zero values of scale-x, scale-y, rotate-x, and rotate-y.
-
-Also called preservesAxisAlignment; use the one that provides better inline
-documentation.
-
-#Return true if Matrix maps one Rect into another ##
+#Populate
#Example
SkMatrix matrix;
@@ -417,33 +300,7 @@
#Method bool preservesAxisAlignment() const
#In Property
#Line # returns if mapping restricts to 90 degree multiples and mirroring ##
-
-Returns true Matrix maps Rect to another Rect. If true, Matrix is identity,
-or scales, or rotates a multiple of 90 degrees, or mirrors on axes. In all
-cases, Matrix may also have translation. Matrix form is either:
-
-#Code
-#Literal
-| scale-x 0 translate-x |
-| 0 scale-y translate-y |
-| 0 0 1 |
-##
-
-or
-
-#Code
-#Literal
-| 0 rotate-x translate-x |
-| rotate-y 0 translate-y |
-| 0 0 1 |
-##
-
-for non-zero values of scale-x, scale-y, rotate-x, and rotate-y.
-
-Also called rectStaysRect; use the one that provides better inline
-documentation.
-
-#Return true if Matrix maps one Rect into another ##
+#Populate
#Example
SkMatrix matrix;
@@ -468,19 +325,7 @@
#Method bool hasPerspective() const
#In Property
#Line # returns if transform includes perspective ##
-Returns true if the matrix contains perspective elements. Matrix form is:
-
-#Code
-#Literal
-| -- -- -- |
-| -- -- -- |
-| perspective-x perspective-y perspective-scale |
-##
-
-where perspective-x or perspective-y is non-zero, or perspective-scale is
-not one. All other elements may have any value.
-
-#Return true if Matrix is in most general form ##
+#Populate
#Example
#Image 4
@@ -507,20 +352,7 @@
#Method bool isSimilarity(SkScalar tol = SK_ScalarNearlyZero) const
#In Property
#Line # returns if transform is limited to square scale and rotation ##
-Returns true if Matrix contains only translation, rotation, reflection, and
-uniform scale.
-Returns false if Matrix contains different scales, skewing, perspective, or
-degenerate forms that collapse to a line or point.
-
-Describes that the Matrix makes rendering with and without the matrix are
-visually alike; a transformed circle remains a circle. Mathematically, this is
-referred to as similarity of a Euclidean_Space, or a similarity transformation.
-
-Preserves right angles, keeping the arms of the angle equal lengths.
-
-#Param tol to be deprecated ##
-
-#Return true if Matrix only rotates, uniformly scales, translates ##
+#Populate
#Example
#Description
@@ -559,17 +391,7 @@
#Method bool preservesRightAngles(SkScalar tol = SK_ScalarNearlyZero) const
#In Property
#Line # returns if mapped 90 angle remains 90 degrees ##
-Returns true if Matrix contains only translation, rotation, reflection, and
-scale. Scale may differ along rotated axes.
-Returns false if Matrix skewing, perspective, or degenerate forms that collapse
-to a line or point.
-
-Preserves right angles, but not requiring that the arms of the angle
-retain equal lengths.
-
-#Param tol to be deprecated ##
-
-#Return true if Matrix only rotates, scales, translates ##
+#Populate
#Example
#Height 128
@@ -713,14 +535,7 @@
#Method SkScalar operator[](int index)_const
#Line # returns Matrix value ##
-Returns one matrix value. Asserts if index is out of range and SK_DEBUG is
-defined.
-
-#Param index one of: kMScaleX, kMSkewX, kMTransX, kMSkewY, kMScaleY, kMTransY,
- kMPersp0, kMPersp1, kMPersp2
-##
-
-#Return value corresponding to index ##
+#Populate
#Example
SkMatrix matrix;
@@ -742,14 +557,7 @@
#Method SkScalar get(int index) const
#In Property
#Line # returns one of nine Matrix values ##
-Returns one matrix value. Asserts if index is out of range and SK_DEBUG is
-defined.
-
-#Param index one of: kMScaleX, kMSkewX, kMTransX, kMSkewY, kMScaleY, kMTransY,
- kMPersp0, kMPersp1, kMPersp2
-##
-
-#Return value corresponding to index ##
+#Populate
#Example
SkMatrix matrix;
@@ -773,10 +581,7 @@
#Method SkScalar getScaleX() const
#In Property
#Line # returns horizontal scale factor ##
-Returns scale factor multiplied by x-axis input, contributing to x-axis output.
-With mapPoints, scales Points along the x-axis.
-
-#Return horizontal scale factor ##
+#Populate
#Example
SkMatrix matrix;
@@ -796,10 +601,7 @@
#Method SkScalar getScaleY() const
#In Property
#Line # returns vertical scale factor ##
-Returns scale factor multiplied by y-axis input, contributing to y-axis output.
-With mapPoints, scales Points along the y-axis.
-
-#Return vertical scale factor ##
+#Populate
#Example
SkMatrix matrix;
@@ -819,11 +621,7 @@
#Method SkScalar getSkewY() const
#In Property
#Line # returns vertical skew factor ##
-Returns scale factor multiplied by x-axis input, contributing to y-axis output.
-With mapPoints, skews Points along the y-axis.
-Skewing both axes can rotate Points.
-
-#Return vertical skew factor ##
+#Populate
#Example
SkMatrix matrix;
@@ -843,11 +641,7 @@
#Method SkScalar getSkewX() const
#In Property
#Line # returns horizontal skew factor ##
-Returns scale factor multiplied by y-axis input, contributing to x-axis output.
-With mapPoints, skews Points along the x-axis.
-Skewing both axes can rotate Points.
-
-#Return horizontal scale factor ##
+#Populate
#Example
SkMatrix matrix;
@@ -867,10 +661,7 @@
#Method SkScalar getTranslateX() const
#In Property
#Line # returns horizontal translation ##
-Returns translation contributing to x-axis output.
-With mapPoints, moves Points along the x-axis.
-
-#Return horizontal translation factor ##
+#Populate
#Example
SkMatrix matrix;
@@ -890,10 +681,7 @@
#Method SkScalar getTranslateY() const
#In Property
#Line # returns vertical translation ##
-Returns translation contributing to y-axis output.
-With mapPoints, moves Points along the y-axis.
-
-#Return vertical translation factor ##
+#Populate
#Example
SkMatrix matrix;
@@ -913,9 +701,7 @@
#Method SkScalar getPerspX() const
#In Property
#Line # returns input x perspective factor ##
-Returns factor scaling input x-axis relative to input y-axis.
-
-#Return input x-axis perspective factor ##
+#Populate
#Example
SkMatrix m;
@@ -944,10 +730,7 @@
#Method SkScalar getPerspY() const
#In Property
#Line # returns input y perspective factor ##
-
-Returns factor scaling input y-axis relative to input x-axis.
-
-#Return input y-axis perspective factor ##
+#Populate
#Example
SkMatrix m;
@@ -976,17 +759,7 @@
#Method SkScalar& operator[](int index)
#Line # returns writable reference to Matrix value ##
-Returns writable Matrix value. Asserts if index is out of range and SK_DEBUG is
-defined. Clears internal cache anticipating that caller will change Matrix value.
-
-Next call to read Matrix state may recompute cache; subsequent writes to Matrix
-value must be followed by dirtyMatrixTypeCache.
-
-#Param index one of: kMScaleX, kMSkewX, kMTransX, kMSkewY, kMScaleY, kMTransY,
- kMPersp0, kMPersp1, kMPersp2
-##
-
-#Return writable value corresponding to index ##
+#Populate
#Example
SkMatrix matrix;
@@ -1019,13 +792,7 @@
#Method void set(int index, SkScalar value)
#In Set
#Line # sets one value ##
-Sets Matrix value. Asserts if index is out of range and SK_DEBUG is
-defined. Safer than operator[]; internal cache is always maintained.
-
-#Param index one of: kMScaleX, kMSkewX, kMTransX, kMSkewY, kMScaleY, kMTransY,
- kMPersp0, kMPersp1, kMPersp2
-##
-#Param value Scalar to store in Matrix ##
+#Populate
#Example
SkMatrix matrix;
@@ -1051,9 +818,7 @@
#Method void setScaleX(SkScalar v)
#In Set
#Line # sets horizontal scale factor ##
-Sets horizontal scale factor.
-
-#Param v horizontal scale factor to store ##
+#Populate
#Example
#Height 64
@@ -1077,9 +842,7 @@
#Method void setScaleY(SkScalar v)
#In Set
#Line # sets vertical scale factor ##
-Sets vertical scale factor.
-
-#Param v vertical scale factor to store ##
+#Populate
#Example
#Height 192
@@ -1103,9 +866,7 @@
#Method void setSkewY(SkScalar v)
#In Set
#Line # sets vertical skew factor ##
-Sets vertical skew factor.
-
-#Param v vertical skew factor to store ##
+#Populate
#Example
#Height 96
@@ -1129,9 +890,7 @@
#Method void setSkewX(SkScalar v)
#In Set
#Line # sets horizontal skew factor ##
-Sets horizontal skew factor.
-
-#Param v horizontal skew factor to store ##
+#Populate
#Example
#Height 64
@@ -1155,9 +914,7 @@
#Method void setTranslateX(SkScalar v)
#In Set
#Line # sets horizontal translation ##
-Sets horizontal translation.
-
-#Param v horizontal translation to store ##
+#Populate
#Example
#Height 48
@@ -1181,9 +938,7 @@
#Method void setTranslateY(SkScalar v)
#In Set
#Line # sets vertical translation ##
-Sets vertical translation.
-
-#Param v vertical translation to store ##
+#Populate
#Example
#Height 64
@@ -1207,10 +962,7 @@
#Method void setPerspX(SkScalar v)
#In Set
#Line # sets input x perspective factor ##
-Sets input x-axis perspective factor, which causes mapXY to vary input x-axis values
-inversely proportional to input y-axis values.
-
-#Param v perspective factor ##
+#Populate
#Example
#Image 4
@@ -1235,10 +987,7 @@
#Method void setPerspY(SkScalar v)
#In Set
#Line # sets input y perspective factor ##
-Sets input y-axis perspective factor, which causes mapXY to vary input y-axis values
-inversely proportional to input x-axis values.
-
-#Param v perspective factor ##
+#Populate
#Example
#Image 4
@@ -1265,25 +1014,7 @@
SkScalar persp0, SkScalar persp1, SkScalar persp2)
#In Set
#Line # sets all values from parameters ##
-
-Sets all values from parameters. Sets matrix to:
-
-#Code
-#Literal
-| scaleX skewX transX |
-| skewY scaleY transY |
-| persp0 persp1 persp2 |
-##
-
-#Param scaleX horizontal scale factor to store ##
-#Param skewX horizontal skew factor to store ##
-#Param transX horizontal translation to store ##
-#Param skewY vertical skew factor to store ##
-#Param scaleY vertical scale factor to store ##
-#Param transY vertical translation to store ##
-#Param persp0 input x-axis values perspective factor to store ##
-#Param persp1 input y-axis values perspective factor to store ##
-#Param persp2 perspective scale factor to store ##
+#Populate
#Example
#Height 128
@@ -1310,11 +1041,7 @@
#Method void get9(SkScalar buffer[9]) const
#In Property
#Line # returns all nine Matrix values ##
-Copies nine Scalar values contained by Matrix into buffer, in member value
-ascending order: kMScaleX, kMSkewX, kMTransX, kMSkewY, kMScaleY, kMTransY,
-kMPersp0, kMPersp1, kMPersp2.
-
-#Param buffer storage for nine Scalar values ##
+#Populate
#Example
SkMatrix matrix = SkMatrix::MakeRectToRect({0, 0, 1, 1}, {3, 4, 7, 9},
@@ -1340,24 +1067,7 @@
#In Set
#In Constructors
#Line # sets all values from Scalar array ##
-Sets Matrix to nine Scalar values in buffer, in member value ascending order:
-kMScaleX, kMSkewX, kMTransX, kMSkewY, kMScaleY, kMTransY, kMPersp0, kMPersp1,
-kMPersp2.
-
-Sets matrix to:
-
-#Code
-#Literal
-| buffer[0] buffer[1] buffer[2] |
-| buffer[3] buffer[4] buffer[5] |
-| buffer[6] buffer[7] buffer[8] |
-##
-
-In the future, set9 followed by get9 may not return the same values. Since Matrix
-maps non-homogeneous coordinates, scaling all nine values produces an equivalent
-transformation, possibly improving precision.
-
-#Param buffer nine Scalar values ##
+#Populate
#Example
#Image 4
@@ -1378,17 +1088,7 @@
#In Constructors
#In Set
#Line # sets Matrix to identity ##
-Sets Matrix to identity; which has no effect on mapped Points. Sets Matrix to:
-
-#Code
-#Literal
-| 1 0 0 |
-| 0 1 0 |
-| 0 0 1 |
-##
-
-Also called setIdentity(); use the one that provides better inline
-documentation.
+#Populate
#Example
SkMatrix m;
@@ -1409,17 +1109,7 @@
#In Constructors
#In Set
#Line # sets Matrix to identity ##
-Sets Matrix to identity; which has no effect on mapped Points. Sets Matrix to:
-
-#Code
-#Literal
-| 1 0 0 |
-| 0 1 0 |
-| 0 0 1 |
-##
-
-Also called reset(); use the one that provides better inline
-documentation.
+#Populate
#Example
SkMatrix m;
@@ -1440,10 +1130,7 @@
#In Constructors
#In Set
#Line # sets to translate in x and y ##
-Sets Matrix to translate by (dx, dy).
-
-#Param dx horizontal translation ##
-#Param dy vertical translation ##
+#Populate
#Example
#Height 64
@@ -1464,10 +1151,7 @@
# ------------------------------------------------------------------------------
#Method void setTranslate(const SkVector& v)
-
-Sets Matrix to translate by (v.fX, v.fY).
-
-#Param v Vector containing horizontal and vertical translation ##
+#Populate
#Example
#Height 64
@@ -1491,13 +1175,7 @@
#In Constructors
#In Set
#Line # sets to scale about a point ##
-Sets Matrix to scale by sx and sy, about a pivot point at (px, py).
-The pivot point is unchanged when mapped with Matrix.
-
-#Param sx horizontal scale factor ##
-#Param sy vertical scale factor ##
-#Param px pivot x ##
-#Param py pivot y ##
+#Populate
#Example
#Height 128
@@ -1522,11 +1200,7 @@
# ------------------------------------------------------------------------------
#Method void setScale(SkScalar sx, SkScalar sy)
-
-Sets Matrix to scale by sx and sy about at pivot point at (0, 0).
-
-#Param sx horizontal scale factor ##
-#Param sy vertical scale factor ##
+#Populate
#Example
#Height 128
@@ -1555,14 +1229,7 @@
#In Constructors
#In Set
#Line # sets to rotate about a point ##
-Sets Matrix to rotate by degrees about a pivot point at (px, py).
-The pivot point is unchanged when mapped with Matrix.
-
-Positive degrees rotates clockwise.
-
-#Param degrees angle of axes relative to upright axes ##
-#Param px pivot x ##
-#Param py pivot y ##
+#Populate
#Example
#Height 128
@@ -1585,11 +1252,7 @@
# ------------------------------------------------------------------------------
#Method void setRotate(SkScalar degrees)
-
-Sets Matrix to rotate by degrees about a pivot point at (0, 0).
-Positive degrees rotates clockwise.
-
-#Param degrees angle of axes relative to upright axes ##
+#Populate
#Example
#Height 128
@@ -1618,17 +1281,7 @@
#In Constructors
#In Set
#Line # sets to rotate and scale about a point ##
-
-Sets Matrix to rotate by sinValue and cosValue, about a pivot point at (px, py).
-The pivot point is unchanged when mapped with Matrix.
-
-Vector (sinValue, cosValue) describes the angle of rotation relative to (0, 1).
-Vector length specifies scale.
-
-#Param sinValue rotation vector x-axis component ##
-#Param cosValue rotation vector y-axis component ##
-#Param px pivot x-axis ##
-#Param py pivot y-axis ##
+#Populate
#Example
#Height 128
@@ -1651,14 +1304,7 @@
# ------------------------------------------------------------------------------
#Method void setSinCos(SkScalar sinValue, SkScalar cosValue)
-
-Sets Matrix to rotate by sinValue and cosValue, about a pivot point at (0, 0).
-
-Vector (sinValue, cosValue) describes the angle of rotation relative to (0, 1).
-Vector length specifies scale.
-
-#Param sinValue rotation vector x-axis component ##
-#Param cosValue rotation vector y-axis component ##
+#Populate
#Example
#Description
@@ -1689,15 +1335,7 @@
#In Constructors
#In Set
#Line # sets to rotate, scale, and translate ##
-Sets Matrix to rotate, scale, and translate using a compressed matrix form.
-
-Vector (rsxForm.fSSin, rsxForm.fSCos) describes the angle of rotation relative
-to (0, 1). Vector length specifies scale. Mapped point is rotated and scaled
-by Vector, then translated by (rsxForm.fTx, rsxForm.fTy).
-
-#Param rsxForm compressed RSXform matrix ##
-
-#Return reference to Matrix ##
+#Populate
#Example
#Description
@@ -1727,13 +1365,7 @@
#In Constructors
#In Set
#Line # sets to skew about a point ##
-Sets Matrix to skew by kx and ky, about a pivot point at (px, py).
-The pivot point is unchanged when mapped with Matrix.
-
-#Param kx horizontal skew factor ##
-#Param ky vertical skew factor ##
-#Param px pivot x ##
-#Param py pivot y ##
+#Populate
#Example
SkPaint p;
@@ -1757,11 +1389,7 @@
# ------------------------------------------------------------------------------
#Method void setSkew(SkScalar kx, SkScalar ky)
-
-Sets Matrix to skew by kx and ky, about a pivot point at (0, 0).
-
-#Param kx horizontal skew factor ##
-#Param ky vertical skew factor ##
+#Populate
#Example
SkPaint p;
@@ -1789,28 +1417,7 @@
#In Constructors
#In Set
#Line # sets to Matrix parameter multiplied by Matrix parameter ##
-Sets Matrix to Matrix a multiplied by Matrix b. Either a or b may be this.
-
-Given:
-
-#Code
-#Literal
- | A B C | | J K L |
-a = | D E F |, b = | M N O |
- | G H I | | P Q R |
-##
-
-sets Matrix to:
-
-#Code
-#Literal
- | A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
-a * b = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
- | G H I | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
-##
-
-#Param a Matrix on left side of multiply expression ##
-#Param b Matrix on right side of multiply expression ##
+#Populate
#Example
#Image 3
@@ -1838,29 +1445,7 @@
#In Set
#In Operators
#Line # pre-multiplies Matrix by translation ##
-Sets Matrix to Matrix multiplied by Matrix constructed from translation (dx, dy).
-This can be thought of as moving the point to be mapped before applying Matrix.
-
-Given:
-
-#Code
-#Literal
- | A B C | | 1 0 dx |
-Matrix = | D E F |, T(dx, dy) = | 0 1 dy |
- | G H I | | 0 0 1 |
-##
-
-sets Matrix to:
-
-#Code
-#Literal
- | A B C | | 1 0 dx | | A B A*dx+B*dy+C |
-Matrix * T(dx, dy) = | D E F | | 0 1 dy | = | D E D*dx+E*dy+F |
- | G H I | | 0 0 1 | | G H G*dx+H*dy+I |
-##
-
-#Param dx x-axis translation before applying Matrix ##
-#Param dy y-axis translation before applying Matrix ##
+#Populate
#Example
#Height 160
@@ -1896,40 +1481,7 @@
#In Set
#In Operators
#Line # pre-multiplies Matrix by scale ##
-Sets Matrix to Matrix multiplied by Matrix constructed from scaling by (sx, sy)
-about pivot point (px, py).
-This can be thought of as scaling about a pivot point before applying Matrix.
-
-Given:
-
-#Code
-#Literal
- | A B C | | sx 0 dx |
-Matrix = | D E F |, S(sx, sy, px, py) = | 0 sy dy |
- | G H I | | 0 0 1 |
-##
-
-where
-
-#Code
-#Literal
-dx = px - sx * px
-dy = py - sy * py
-##
-
-sets Matrix to:
-
-#Code
-#Literal
- | A B C | | sx 0 dx | | A*sx B*sy A*dx+B*dy+C |
-Matrix * S(sx, sy, px, py) = | D E F | | 0 sy dy | = | D*sx E*sy D*dx+E*dy+F |
- | G H I | | 0 0 1 | | G*sx H*sy G*dx+H*dy+I |
-##
-
-#Param sx horizontal scale factor ##
-#Param sy vertical scale factor ##
-#Param px pivot x ##
-#Param py pivot y ##
+#Populate
#Example
#Image 3
@@ -1951,30 +1503,7 @@
#Method void preScale(SkScalar sx, SkScalar sy)
#In Set
#In Operators
-Sets Matrix to Matrix multiplied by Matrix constructed from scaling by (sx, sy)
-about pivot point (0, 0).
-This can be thought of as scaling about the origin before applying Matrix.
-
-Given:
-
-#Code
-#Literal
- | A B C | | sx 0 0 |
-Matrix = | D E F |, S(sx, sy) = | 0 sy 0 |
- | G H I | | 0 0 1 |
-##
-
-sets Matrix to:
-
-#Code
-#Literal
- | A B C | | sx 0 0 | | A*sx B*sy C |
-Matrix * S(sx, sy) = | D E F | | 0 sy 0 | = | D*sx E*sy F |
- | G H I | | 0 0 1 | | G*sx H*sy I |
-##
-
-#Param sx horizontal scale factor ##
-#Param sy vertical scale factor ##
+#Populate
#Example
#Image 3
@@ -1997,43 +1526,7 @@
#In Set
#In Operators
#Line # pre-multiplies Matrix by rotation ##
-Sets Matrix to Matrix multiplied by Matrix constructed from rotating by degrees
-about pivot point (px, py).
-This can be thought of as rotating about a pivot point before applying Matrix.
-
-Positive degrees rotates clockwise.
-
-Given:
-
-#Code
-#Literal
- | A B C | | c -s dx |
-Matrix = | D E F |, R(degrees, px, py) = | s c dy |
- | G H I | | 0 0 1 |
-##
-
-where
-
-#Code
-#Literal
-c = cos(degrees)
-s = sin(degrees)
-dx = s * py + (1 - c) * px
-dy = -s * px + (1 - c) * py
-##
-
-sets Matrix to:
-
-#Code
-#Literal
- | A B C | | c -s dx | | Ac+Bs -As+Bc A*dx+B*dy+C |
-Matrix * R(degrees, px, py) = | D E F | | s c dy | = | Dc+Es -Ds+Ec D*dx+E*dy+F |
- | G H I | | 0 0 1 | | Gc+Hs -Gs+Hc G*dx+H*dy+I |
-##
-
-#Param degrees angle of axes relative to upright axes ##
-#Param px pivot x ##
-#Param py pivot y ##
+#Populate
#Example
#Image 3
@@ -2053,40 +1546,7 @@
# ------------------------------------------------------------------------------
#Method void preRotate(SkScalar degrees)
-
-Sets Matrix to Matrix multiplied by Matrix constructed from rotating by degrees
-about pivot point (0, 0).
-This can be thought of as rotating about the origin before applying Matrix.
-
-Positive degrees rotates clockwise.
-
-Given:
-
-#Code
-#Literal
- | A B C | | c -s 0 |
-Matrix = | D E F |, R(degrees, px, py) = | s c 0 |
- | G H I | | 0 0 1 |
-##
-
-where
-
-#Code
-#Literal
-c = cos(degrees)
-s = sin(degrees)
-##
-
-sets Matrix to:
-
-#Code
-#Literal
- | A B C | | c -s 0 | | Ac+Bs -As+Bc C |
-Matrix * R(degrees, px, py) = | D E F | | s c 0 | = | Dc+Es -Ds+Ec F |
- | G H I | | 0 0 1 | | Gc+Hs -Gs+Hc I |
-##
-
-#Param degrees angle of axes relative to upright axes ##
+#Populate
#Example
#Image 3
@@ -2109,40 +1569,7 @@
#In Set
#In Operators
#Line # pre-multiplies Matrix by skew ##
-Sets Matrix to Matrix multiplied by Matrix constructed from skewing by (kx, ky)
-about pivot point (px, py).
-This can be thought of as skewing about a pivot point before applying Matrix.
-
-Given:
-
-#Code
-#Literal
- | A B C | | 1 kx dx |
-Matrix = | D E F |, K(kx, ky, px, py) = | ky 1 dy |
- | G H I | | 0 0 1 |
-##
-
-where
-
-#Code
-#Literal
-dx = -kx * py
-dy = -ky * px
-##
-
-sets Matrix to:
-
-#Code
-#Literal
- | A B C | | 1 kx dx | | A+B*ky A*kx+B A*dx+B*dy+C |
-Matrix * K(kx, ky, px, py) = | D E F | | ky 1 dy | = | D+E*ky D*kx+E D*dx+E*dy+F |
- | G H I | | 0 0 1 | | G+H*ky G*kx+H G*dx+H*dy+I |
-##
-
-#Param kx horizontal skew factor ##
-#Param ky vertical skew factor ##
-#Param px pivot x ##
-#Param py pivot y ##
+#Populate
#Example
#Image 3
@@ -2162,31 +1589,7 @@
# ------------------------------------------------------------------------------
#Method void preSkew(SkScalar kx, SkScalar ky)
-
-Sets Matrix to Matrix multiplied by Matrix constructed from skewing by (kx, ky)
-about pivot point (0, 0).
-This can be thought of as skewing about the origin before applying Matrix.
-
-Given:
-
-#Code
-#Literal
- | A B C | | 1 kx 0 |
-Matrix = | D E F |, K(kx, ky) = | ky 1 0 |
- | G H I | | 0 0 1 |
-##
-
-sets Matrix to:
-
-#Code
-#Literal
- | A B C | | 1 kx 0 | | A+B*ky A*kx+B C |
-Matrix * K(kx, ky) = | D E F | | ky 1 0 | = | D+E*ky D*kx+E F |
- | G H I | | 0 0 1 | | G+H*ky G*kx+H I |
-##
-
-#Param kx horizontal skew factor ##
-#Param ky vertical skew factor ##
+#Populate
#Example
#Image 3
@@ -2209,28 +1612,7 @@
#In Set
#In Operators
#Line # pre-multiplies Matrix by Matrix parameter ##
-Sets Matrix to Matrix multiplied by Matrix other.
-This can be thought of mapping by other before applying Matrix.
-
-Given:
-
-#Code
-#Literal
- | A B C | | J K L |
-Matrix = | D E F |, other = | M N O |
- | G H I | | P Q R |
-##
-
-sets Matrix to:
-
-#Code
-#Literal
- | A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
-Matrix * other = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
- | G H I | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
-##
-
-#Param other Matrix on right side of multiply expression ##
+#Populate
#Example
#Image 3
@@ -2258,29 +1640,7 @@
#In Set
#In Operators
#Line # post-multiplies Matrix by translation ##
-Sets Matrix to Matrix constructed from translation (dx, dy) multiplied by Matrix.
-This can be thought of as moving the point to be mapped after applying Matrix.
-
-Given:
-
-#Code
-#Literal
- | J K L | | 1 0 dx |
-Matrix = | M N O |, T(dx, dy) = | 0 1 dy |
- | P Q R | | 0 0 1 |
-##
-
-sets Matrix to:
-
-#Code
-#Literal
- | 1 0 dx | | J K L | | J+dx*P K+dx*Q L+dx*R |
-T(dx, dy) * Matrix = | 0 1 dy | | M N O | = | M+dy*P N+dy*Q O+dy*R |
- | 0 0 1 | | P Q R | | P Q R |
-##
-
-#Param dx x-axis translation after applying Matrix ##
-#Param dy y-axis translation after applying Matrix ##
+#Populate
#Example
#Height 160
@@ -2319,40 +1679,7 @@
#In Set
#In Operators
#Line # post-multiplies Matrix by scale ##
-Sets Matrix to Matrix constructed from scaling by (sx, sy) about pivot point
-(px, py), multiplied by Matrix.
-This can be thought of as scaling about a pivot point after applying Matrix.
-
-Given:
-
-#Code
-#Literal
- | J K L | | sx 0 dx |
-Matrix = | M N O |, S(sx, sy, px, py) = | 0 sy dy |
- | P Q R | | 0 0 1 |
-##
-
-where
-
-#Code
-#Literal
-dx = px - sx * px
-dy = py - sy * py
-##
-
-sets Matrix to:
-
-#Code
-#Literal
- | sx 0 dx | | J K L | | sx*J+dx*P sx*K+dx*Q sx*L+dx+R |
-S(sx, sy, px, py) * Matrix = | 0 sy dy | | M N O | = | sy*M+dy*P sy*N+dy*Q sy*O+dy*R |
- | 0 0 1 | | P Q R | | P Q R |
-##
-
-#Param sx horizontal scale factor ##
-#Param sy vertical scale factor ##
-#Param px pivot x ##
-#Param py pivot y ##
+#Populate
#Example
#Image 3
@@ -2372,31 +1699,7 @@
# ------------------------------------------------------------------------------
#Method void postScale(SkScalar sx, SkScalar sy)
-
-Sets Matrix to Matrix constructed from scaling by (sx, sy) about pivot point
-(0, 0), multiplied by Matrix.
-This can be thought of as scaling about the origin after applying Matrix.
-
-Given:
-
-#Code
-#Literal
- | J K L | | sx 0 0 |
-Matrix = | M N O |, S(sx, sy) = | 0 sy 0 |
- | P Q R | | 0 0 1 |
-##
-
-sets Matrix to:
-
-#Code
-#Literal
- | sx 0 0 | | J K L | | sx*J sx*K sx*L |
-S(sx, sy) * Matrix = | 0 sy 0 | | M N O | = | sy*M sy*N sy*O |
- | 0 0 1 | | P Q R | | P Q R |
-##
-
-#Param sx horizontal scale factor ##
-#Param sy vertical scale factor ##
+#Populate
#Example
#Image 3
@@ -2476,43 +1779,7 @@
#In Set
#In Operators
#Line # post-multiplies Matrix by rotation ##
-Sets Matrix to Matrix constructed from rotating by degrees about pivot point
-(px, py), multiplied by Matrix.
-This can be thought of as rotating about a pivot point after applying Matrix.
-
-Positive degrees rotates clockwise.
-
-Given:
-
-#Code
-#Literal
- | J K L | | c -s dx |
-Matrix = | M N O |, R(degrees, px, py) = | s c dy |
- | P Q R | | 0 0 1 |
-##
-
-where
-
-#Code
-#Literal
-c = cos(degrees)
-s = sin(degrees)
-dx = s * py + (1 - c) * px
-dy = -s * px + (1 - c) * py
-##
-
-sets Matrix to:
-
-#Code
-#Literal
- |c -s dx| |J K L| |cJ-sM+dx*P cK-sN+dx*Q cL-sO+dx+R|
-R(degrees, px, py) * Matrix = |s c dy| |M N O| = |sJ+cM+dy*P sK+cN+dy*Q sL+cO+dy*R|
- |0 0 1| |P Q R| | P Q R|
-##
-
-#Param degrees angle of axes relative to upright axes ##
-#Param px pivot x ##
-#Param py pivot y ##
+#Populate
#Example
#Image 3
@@ -2532,40 +1799,7 @@
# ------------------------------------------------------------------------------
#Method void postRotate(SkScalar degrees)
-
-Sets Matrix to Matrix constructed from rotating by degrees about pivot point
-(0, 0), multiplied by Matrix.
-This can be thought of as rotating about the origin after applying Matrix.
-
-Positive degrees rotates clockwise.
-
-Given:
-
-#Code
-#Literal
- | J K L | | c -s 0 |
-Matrix = | M N O |, R(degrees, px, py) = | s c 0 |
- | P Q R | | 0 0 1 |
-##
-
-where
-
-#Code
-#Literal
-c = cos(degrees)
-s = sin(degrees)
-##
-
-sets Matrix to:
-
-#Code
-#Literal
- | c -s dx | | J K L | | cJ-sM cK-sN cL-sO |
-R(degrees, px, py) * Matrix = | s c dy | | M N O | = | sJ+cM sK+cN sL+cO |
- | 0 0 1 | | P Q R | | P Q R |
-##
-
-#Param degrees angle of axes relative to upright axes ##
+#Populate
#Example
#Image 3
@@ -2588,40 +1822,7 @@
#In Set
#In Operators
#Line # post-multiplies Matrix by skew ##
-Sets Matrix to Matrix constructed from skewing by (kx, ky) about pivot point
-(px, py), multiplied by Matrix.
-This can be thought of as skewing about a pivot point after applying Matrix.
-
-Given:
-
-#Code
-#Literal
- | J K L | | 1 kx dx |
-Matrix = | M N O |, K(kx, ky, px, py) = | ky 1 dy |
- | P Q R | | 0 0 1 |
-##
-
-where
-
-#Code
-#Literal
-dx = -kx * py
-dy = -ky * px
-##
-
-sets Matrix to:
-
-#Code
-#Literal
- | 1 kx dx| |J K L| |J+kx*M+dx*P K+kx*N+dx*Q L+kx*O+dx+R|
-K(kx, ky, px, py) * Matrix = |ky 1 dy| |M N O| = |ky*J+M+dy*P ky*K+N+dy*Q ky*L+O+dy*R|
- | 0 0 1| |P Q R| | P Q R|
-##
-
-#Param kx horizontal skew factor ##
-#Param ky vertical skew factor ##
-#Param px pivot x ##
-#Param py pivot y ##
+#Populate
#Example
#Image 3
@@ -2641,31 +1842,7 @@
# ------------------------------------------------------------------------------
#Method void postSkew(SkScalar kx, SkScalar ky)
-
-Sets Matrix to Matrix constructed from skewing by (kx, ky) about pivot point
-(0, 0), multiplied by Matrix.
-This can be thought of as skewing about the origin after applying Matrix.
-
-Given:
-
-#Code
-#Literal
- | J K L | | 1 kx 0 |
-Matrix = | M N O |, K(kx, ky) = | ky 1 0 |
- | P Q R | | 0 0 1 |
-##
-
-sets Matrix to:
-
-#Code
-#Literal
- | 1 kx 0 | | J K L | | J+kx*M K+kx*N L+kx*O |
-K(kx, ky) * Matrix = | ky 1 0 | | M N O | = | ky*J+M ky*K+N ky*L+O |
- | 0 0 1 | | P Q R | | P Q R |
-##
-
-#Param kx horizontal skew factor ##
-#Param ky vertical skew factor ##
+#Populate
#Example
#Image 3
@@ -2688,28 +1865,7 @@
#In Set
#In Operators
#Line # post-multiplies Matrix by Matrix parameter ##
-Sets Matrix to Matrix other multiplied by Matrix.
-This can be thought of mapping by other after applying Matrix.
-
-Given:
-
-#Code
-#Literal
- | J K L | | A B C |
-Matrix = | M N O |, other = | D E F |
- | P Q R | | G H I |
-##
-
-sets Matrix to:
-
-#Code
-#Literal
- | A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
-other * Matrix = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
- | G H I | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
-##
-
-#Param other Matrix on left side of multiply expression ##
+#Populate
#Example
#Image 3
@@ -2803,25 +1959,7 @@
#Method bool setRectToRect(const SkRect& src, const SkRect& dst, ScaleToFit stf)
#In Set
#Line # sets to map one Rect to another ##
-Sets Matrix to scale and translate src Rect to dst Rect. stf selects whether
-mapping completely fills dst or preserves the aspect ratio, and how to align
-src within dst. Returns false if src is empty, and sets Matrix to identity.
-Returns true if dst is empty, and sets Matrix to:
-
-#Code
-#Literal
-| 0 0 0 |
-| 0 0 0 |
-| 0 0 1 |
-##
-
-#Param src Rect to map from ##
-#Param dst Rect to map to ##
-#Param stf one of: kFill_ScaleToFit, kStart_ScaleToFit,
- kCenter_ScaleToFit, kEnd_ScaleToFit
-##
-
-#Return true if Matrix can represent Rect mapping ##
+#Populate
#Example
const SkRect srcs[] = { {0, 0, 0, 0}, {1, 2, 3, 4} };
@@ -2858,25 +1996,7 @@
#Method static SkMatrix MakeRectToRect(const SkRect& src, const SkRect& dst, ScaleToFit stf)
#In Constructors
#Line # constructs from source Rect to destination Rect ##
-Returns Matrix set to scale and translate src Rect to dst Rect. stf selects
-whether mapping completely fills dst or preserves the aspect ratio, and how to
-align src within dst. Returns the identity Matrix if src is empty. If dst is
-empty, returns Matrix set to:
-
-#Code
-#Literal
-| 0 0 0 |
-| 0 0 0 |
-| 0 0 1 |
-##
-
-#Param src Rect to map from ##
-#Param dst Rect to map to ##
-#Param stf one of: kFill_ScaleToFit, kStart_ScaleToFit,
- kCenter_ScaleToFit, kEnd_ScaleToFit
-##
-
-#Return Matrix mapping src to dst ##
+#Populate
#Example
const SkRect srcs[] = { {0, 0, 0, 0}, {1, 2, 3, 4} };
@@ -2911,20 +2031,7 @@
#Method bool setPolyToPoly(const SkPoint src[], const SkPoint dst[], int count)
#In Set
#Line # sets to map one to four points to an equal array of points ##
-Sets Matrix to map src to dst. count must be zero or greater, and four or less.
-
-If count is zero, sets Matrix to identity and returns true.
-If count is one, sets Matrix to translate and returns true.
-If count is two or more, sets Matrix to map Points if possible; returns false
-if Matrix cannot be constructed. If count is four, Matrix may include
-perspective.
-
-#Param src Points to map from ##
-#Param dst Points to map to ##
-#Param count number of Points in src and dst ##
-
-#Return true if Matrix was constructed successfully
-##
+#Populate
#Example
const SkPoint src[] = { { 0, 0}, {30, 0}, {30, -30}, { 0, -30} };
@@ -2962,14 +2069,7 @@
#Method bool invert(SkMatrix* inverse) const
#In Operators
#Line # returns inverse, if possible ##
-Sets inverse to reciprocal matrix, returning true if Matrix can be inverted.
-Geometrically, if Matrix maps from source to destination, inverse Matrix
-maps from destination to source. If Matrix can not be inverted, inverse is
-unchanged.
-
-#Param inverse storage for inverted Matrix; may be nullptr ##
-
-#Return true if Matrix can be inverted ##
+#Populate
#Example
#Height 128
@@ -3000,18 +2100,7 @@
#Method static void SetAffineIdentity(SkScalar affine[6])
#In Constructors
#Line # sets 3x2 array to identity ##
-Fills affine with identity values in column major order.
-Sets affine to:
-
-#Code
-#Literal
-| 1 0 0 |
-| 0 1 0 |
-##
-
-Affine 3x2 matrices in column major order are used by OpenGL and XPS.
-
-#Param affine storage for 3x2 affine matrix ##
+#Populate
#Example
SkScalar affine[6];
@@ -3035,19 +2124,7 @@
#Method bool asAffine(SkScalar affine[6]) const
#In Constructors
#Line # copies to 3x2 array ##
-Fills affine in column major order. Sets affine to:
-
-#Code
-#Literal
-| scale-x skew-x translate-x |
-| skew-y scale-y translate-y |
-##
-
-If Matrix contains perspective, returns false and leaves affine unchanged.
-
-#Param affine storage for 3x2 affine matrix; may be nullptr ##
-
-#Return true if Matrix does not contain perspective ##
+#Populate
#Example
SkMatrix matrix;
@@ -3075,25 +2152,7 @@
#In Constructors
#In Set
#Line # sets left two columns ##
-Sets Matrix to affine values, passed in column major order. Given affine,
-column, then row, as:
-
-#Code
-#Literal
-| scale-x skew-x translate-x |
-| skew-y scale-y translate-y |
-##
-
-Matrix is set, row, then column, to:
-
-#Code
-#Literal
-| scale-x skew-x translate-x |
-| skew-y scale-y translate-y |
-| 0 0 1 |
-##
-
-#Param affine 3x2 affine matrix ##
+#Populate
#Example
SkMatrix matrix;
@@ -3127,40 +2186,7 @@
#Method void mapPoints(SkPoint dst[], const SkPoint src[], int count) const
#In Transform
#Line # maps Point array ##
-Maps src Point array of length count to dst Point array of equal or greater
-length. Points are mapped by multiplying each Point by Matrix. Given:
-
-#Code
-#Literal
- | A B C | | x |
-Matrix = | D E F |, pt = | y |
- | G H I | | 1 |
-##
-
-where
-
-#Code
-#Literal
-for (i = 0; i < count; ++i) {
- x = src[i].fX
- y = src[i].fY
-}
-##
-
-each dst Point is computed as:
-
-#Code
-#Literal
- |A B C| |x| Ax+By+C Dx+Ey+F
-Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
- |G H I| |1| Gx+Hy+I Gx+Hy+I
-##
-
-src and dst may point to the same storage.
-
-#Param dst storage for mapped Points ##
-#Param src Points to transform ##
-#Param count number of Points to transform ##
+#Populate
#Example
SkMatrix matrix;
@@ -3185,38 +2211,7 @@
# ------------------------------------------------------------------------------
#Method void mapPoints(SkPoint pts[], int count) const
-
-Maps pts Point array of length count in place. Points are mapped by multiplying
-each Point by Matrix. Given:
-
-#Code
-#Literal
- | A B C | | x |
-Matrix = | D E F |, pt = | y |
- | G H I | | 1 |
-##
-
-where
-
-#Code
-#Literal
-for (i = 0; i < count; ++i) {
- x = pts[i].fX
- y = pts[i].fY
-}
-##
-
-each resulting pts Point is computed as:
-
-#Code
-#Literal
- |A B C| |x| Ax+By+C Dx+Ey+F
-Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
- |G H I| |1| Gx+Hy+I Gx+Hy+I
-##
-
-#Param pts storage for mapped Points ##
-#Param count number of Points to transform ##
+#Populate
#Example
SkMatrix matrix;
@@ -3241,28 +2236,7 @@
#Method void mapHomogeneousPoints(SkPoint3 dst[], const SkPoint3 src[], int count) const
#In Transform
#Line # maps Point3 array ##
-Maps src Point3 array of length count to dst Point3 array, which must of length count or
-greater. Point3 array is mapped by multiplying each Point3 by Matrix. Given:
-
-#Code
-#Literal
- | A B C | | x |
-Matrix = | D E F |, src = | y |
- | G H I | | z |
-##
-
-each resulting dst Point is computed as:
-
-#Code
-#Literal
- |A B C| |x|
-Matrix * src = |D E F| |y| = |Ax+By+Cz Dx+Ey+Fz Gx+Hy+Iz|
- |G H I| |z|
-##
-
-#Param dst storage for mapped Point3 array ##
-#Param src Point3 array to transform ##
-#Param count items in Point3 array to transform ##
+#Populate
#Example
SkPoint3 src[] = {{3, 3, 1}, {8, 2, 2}, {5, 0, 4}, {0, 1, 3},
@@ -3299,27 +2273,7 @@
#Method void mapXY(SkScalar x, SkScalar y, SkPoint* result) const
#In Transform
#Line # maps Point ##
-Maps Point (x, y) to result. Point is mapped by multiplying by Matrix. Given:
-
-#Code
-#Literal
- | A B C | | x |
-Matrix = | D E F |, pt = | y |
- | G H I | | 1 |
-##
-
-result is computed as:
-
-#Code
-#Literal
- |A B C| |x| Ax+By+C Dx+Ey+F
-Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
- |G H I| |1| Gx+Hy+I Gx+Hy+I
-##
-
-#Param x x-axis value of Point to map ##
-#Param y y-axis value of Point to map ##
-#Param result storage for mapped Point ##
+#Populate
#Example
SkPaint paint;
@@ -3343,29 +2297,7 @@
# ------------------------------------------------------------------------------
#Method SkPoint mapXY(SkScalar x, SkScalar y) const
-
-Returns Point (x, y) multiplied by Matrix. Given:
-
-#Code
-#Literal
- | A B C | | x |
-Matrix = | D E F |, pt = | y |
- | G H I | | 1 |
-##
-
-result is computed as:
-
-#Code
-#Literal
- |A B C| |x| Ax+By+C Dx+Ey+F
-Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
- |G H I| |1| Gx+Hy+I Gx+Hy+I
-##
-
-#Param x x-axis value of Point to map ##
-#Param y y-axis value of Point to map ##
-
-#Return mapped Point ##
+#Populate
#Example
#Image 4
@@ -3394,41 +2326,7 @@
#Method void mapVectors(SkVector dst[], const SkVector src[], int count) const
#In Transform
#Line # maps Vector array ##
-Maps src Vector array of length count to Vector Point array of equal or greater
-length. Vectors are mapped by multiplying each Vector by Matrix, treating
-Matrix translation as zero. Given:
-
-#Code
-#Literal
- | A B 0 | | x |
-Matrix = | D E 0 |, src = | y |
- | G H I | | 1 |
-##
-
-where
-
-#Code
-#Literal
-for (i = 0; i < count; ++i) {
- x = src[i].fX
- y = src[i].fY
-}
-##
-
-each dst Vector is computed as:
-
-#Code
-#Literal
- |A B 0| |x| Ax+By Dx+Ey
-Matrix * src = |D E 0| |y| = |Ax+By Dx+Ey Gx+Hy+I| = ------- , -------
- |G H I| |1| Gx+Hy+I Gx+Hy+I
-##
-
-src and dst may point to the same storage.
-
-#Param dst storage for mapped Vectors ##
-#Param src Vectors to transform ##
-#Param count number of Vectors to transform ##
+#Populate
#Example
SkPaint paint;
@@ -3455,38 +2353,7 @@
# ------------------------------------------------------------------------------
#Method void mapVectors(SkVector vecs[], int count) const
-
-Maps vecs Vector array of length count in place, multiplying each Vector by
-Matrix, treating Matrix translation as zero. Given:
-
-#Code
-#Literal
- | A B 0 | | x |
-Matrix = | D E 0 |, vec = | y |
- | G H I | | 1 |
-##
-
-where
-
-#Code
-#Literal
-for (i = 0; i < count; ++i) {
- x = vecs[i].fX
- y = vecs[i].fY
-}
-##
-
-each result Vector is computed as:
-
-#Code
-#Literal
- |A B 0| |x| Ax+By Dx+Ey
-Matrix * vec = |D E 0| |y| = |Ax+By Dx+Ey Gx+Hy+I| = ------- , -------
- |G H I| |1| Gx+Hy+I Gx+Hy+I
-##
-
-#Param vecs Vectors to transform, and storage for mapped Vectors ##
-#Param count number of Vectors to transform ##
+#Populate
#Example
SkPaint paint;
@@ -3513,29 +2380,7 @@
#Method void mapVector(SkScalar dx, SkScalar dy, SkVector* result) const
#In Transform
#Line # maps Vector ##
-Maps Vector (x, y) to result. Vector is mapped by multiplying by Matrix,
-treating Matrix translation as zero. Given:
-
-#Code
-#Literal
- | A B 0 | | dx |
-Matrix = | D E 0 |, vec = | dy |
- | G H I | | 1 |
-##
-
-each result Vector is computed as:
-
-#Code
-#Literal
-#Outdent
- |A B 0| |dx| A*dx+B*dy D*dx+E*dy
-Matrix * vec = |D E 0| |dy| = |A*dx+B*dy D*dx+E*dy G*dx+H*dy+I| = ----------- , -----------
- |G H I| | 1| G*dx+H*dy+I G*dx+*dHy+I
-##
-
-#Param dx x-axis value of Vector to map ##
-#Param dy y-axis value of Vector to map ##
-#Param result storage for mapped Vector ##
+#Populate
#Example
SkPaint paint;
@@ -3561,31 +2406,7 @@
# ------------------------------------------------------------------------------
#Method SkVector mapVector(SkScalar dx, SkScalar dy) const
-
-Returns Vector (x, y) multiplied by Matrix, treating Matrix translation as zero.
-Given:
-
-#Code
-#Literal
- | A B 0 | | dx |
-Matrix = | D E 0 |, vec = | dy |
- | G H I | | 1 |
-##
-
-each result Vector is computed as:
-
-#Code
-#Literal
-#Outdent
- |A B 0| |dx| A*dx+B*dy D*dx+E*dy
-Matrix * vec = |D E 0| |dy| = |A*dx+B*dy D*dx+E*dy G*dx+H*dy+I| = ----------- , -----------
- |G H I| | 1| G*dx+H*dy+I G*dx+*dHy+I
-##
-
-#Param dx x-axis value of Vector to map ##
-#Param dy y-axis value of Vector to map ##
-
-#Return mapped Vector ##
+#Populate
#Example
SkPaint paint;
@@ -3613,15 +2434,7 @@
#Method bool mapRect(SkRect* dst, const SkRect& src) const
#In Transform
#Line # returns bounds of mapped Rect ##
-Sets dst to bounds of src corners mapped by Matrix.
-Returns true if mapped corners are dst corners.
-
-Returned value is the same as calling rectStaysRect.
-
-#Param dst storage for bounds of mapped Points ##
-#Param src Rect to map ##
-
-#Return true if dst is equivalent to mapped src ##
+#Populate
#Example
SkPaint paint;
@@ -3644,15 +2457,7 @@
# ------------------------------------------------------------------------------
#Method bool mapRect(SkRect* rect) const
-
-Sets rect to bounds of rect corners mapped by Matrix.
-Returns true if mapped corners are computed rect corners.
-
-Returned value is the same as calling rectStaysRect.
-
-#Param rect rectangle to map, and storage for bounds of mapped corners ##
-
-#Return true if result is equivalent to mapped src ##
+#Populate
#Example
SkPaint paint;
@@ -3675,24 +2480,20 @@
# ------------------------------------------------------------------------------
#Method SkRect mapRect(const SkRect& src) const
-
-Returns bounds of src corners mapped by Matrix.
-
-#Param src rectangle to map ##
-#Return mapped bounds ##
+#Populate
#Example
- 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);
+ 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
@@ -3703,36 +2504,7 @@
#Method void mapRectToQuad(SkPoint dst[4], const SkRect& rect) const
#In Transform
#Line # maps Rect to Point array ##
-Maps four corners of rect to dst. Points are mapped by multiplying each
-rect corner by Matrix. rect corner is processed in this order:
-(rect.fLeft, rect.fTop), (rect.fRight, rect.fTop), (rect.fRight, rect.fBottom),
-(rect.fLeft, rect.fBottom).
-
-rect may be empty: rect.fLeft may be greater than or equal to rect.fRight;
-rect.fTop may be greater than or equal to rect.fBottom.
-
-Given:
-
-#Code
-#Literal
- | A B C | | x |
-Matrix = | D E F |, pt = | y |
- | G H I | | 1 |
-##
-
-where pt is initialized from each of (rect.fLeft, rect.fTop),
-(rect.fRight, rect.fTop), (rect.fRight, rect.fBottom), (rect.fLeft, rect.fBottom),
-each dst Point is computed as:
-
-#Code
-#Literal
- |A B C| |x| Ax+By+C Dx+Ey+F
-Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
- |G H I| |1| Gx+Hy+I Gx+Hy+I
-##
-
-#Param dst storage for mapped corner Points ##
-#Param rect Rect to map ##
+#Populate
#Example
#Height 192
@@ -3760,12 +2532,7 @@
#Method void mapRectScaleTranslate(SkRect* dst, const SkRect& src) const
#In Transform
#Line # returns bounds of mapped Rect ##
-Sets dst to bounds of src corners mapped by Matrix. If matrix contains
-elements other than scale or translate: asserts if SK_DEBUG is defined;
-otherwise, results are undefined.
-
-#Param dst storage for bounds of mapped Points ##
-#Param src Rect to map ##
+#Populate
#Example
SkPaint paint;
@@ -3789,14 +2556,7 @@
#Method SkScalar mapRadius(SkScalar radius) const
#In Transform
#Line # returns mean radius of mapped Circle ##
-Returns geometric mean radius of ellipse formed by constructing Circle of
-size radius, and mapping constructed Circle with Matrix. The result squared is
-equal to the major axis length times the minor axis length.
-Result is not meaningful if Matrix contains perspective elements.
-
-#Param radius Circle size to map ##
-
-#Return average mapped radius ##
+#Populate
#Example
#Description
@@ -3844,14 +2604,7 @@
#Method bool isFixedStepInX() const
#In Property
#Line # returns if transformation supports fixed step in x ##
-Returns true if a unit step on x-axis at some y-axis value mapped through Matrix
-can be represented by a constant Vector. Returns true if getType returns
-kIdentity_Mask, or combinations of: kTranslate_Mask, kScale_Mask, and kAffine_Mask.
-
-May return true if getType returns kPerspective_Mask, but only when Matrix
-does not include rotation or skewing along the y-axis.
-
-#Return true if Matrix does not have complex perspective ##
+#Populate
#Example
SkMatrix matrix;
@@ -3893,12 +2646,7 @@
#Method SkVector fixedStepInX(SkScalar y) const
#In Property
#Line # returns step in x for a position in y ##
-Returns Vector representing a unit step on x-axis at y mapped through Matrix.
-If isFixedStepInX is false, returned value is undefined.
-
-#Param y position of line parallel to x-axis ##
-
-#Return Vector advance of mapped unit step on x-axis ##
+#Populate
#Example
#Image 3
@@ -3933,19 +2681,7 @@
#Method bool cheapEqualTo(const SkMatrix& m) const
#In Operators
#Line # compares Matrix pair using memcmp() ##
-Returns true if Matrix equals m, using an efficient comparison.
-
-Returns false when the sign of zero values is the different; when one
-matrix has positive zero value and the other has negative zero value.
-
-Returns true even when both Matrices contain NaN.
-
-NaN never equals any value, including itself. To improve performance, NaN values
-are treated as bit patterns that are equal if their bit patterns are equal.
-
-#Param m Matrix to compare ##
-
-#Return true if m and Matrix are represented by identical bit patterns ##
+#Populate
#Example
auto debugster = [](const char* prefix, const SkMatrix& a, const SkMatrix& b) -> void {
@@ -3979,14 +2715,7 @@
#Method bool operator==(const SkMatrix& a, const SkMatrix& b)
#Line # returns true if members are equal ##
-Compares a and b; returns true if a and b are numerically equal. Returns true
-even if sign of zero values are different. Returns false if either Matrix
-contains NaN, even if the other Matrix also contains NaN.
-
-#Param a Matrix to compare ##
-#Param b Matrix to compare ##
-
-#Return true if Matrix a and Matrix b are numerically equal ##
+#Populate
#Example
auto debugster = [](const char* prefix, const SkMatrix& a, const SkMatrix& b) -> void {
@@ -4012,14 +2741,7 @@
#Method bool operator!=(const SkMatrix& a, const SkMatrix& b)
#Line # returns true if members are unequal ##
-Compares a and b; returns true if a and b are not numerically equal. Returns false
-even if sign of zero values are different. Returns true if either Matrix
-contains NaN, even if the other Matrix also contains NaN.
-
-#Param a Matrix to compare ##
-#Param b Matrix to compare ##
-
-#Return true if Matrix a and Matrix b are numerically not equal ##
+#Populate
#Example
auto debugster = [](const char* prefix, const SkMatrix& a, const SkMatrix& b) -> void {
@@ -4045,9 +2767,7 @@
#Method void dump() const
#In Utility
#Line # sends text representation using floats to standard output ##
-Writes text representation of Matrix to standard output. Floating point values
-are written with limited precision; it may not be possible to reconstruct
-original Matrix from output.
+#Populate
#Example
SkMatrix matrix;
@@ -4073,12 +2793,7 @@
#Method SkScalar getMinScale() const
#In Property
#Line # returns minimum scaling, if possible ##
-Returns the minimum scaling factor of Matrix by decomposing the scaling and
-skewing elements.
-Returns -1 if scale factor overflows or Matrix contains perspective.
-
-#Return minimum scale factor
-##
+#Populate
#Example
SkMatrix matrix;
@@ -4098,12 +2813,7 @@
#Method SkScalar getMaxScale() const
#In Property
#Line # returns maximum scaling, if possible ##
-Returns the maximum scaling factor of Matrix by decomposing the scaling and
-skewing elements.
-Returns -1 if scale factor overflows or Matrix contains perspective.
-
-#Return maximum scale factor
-##
+#Populate
#Example
SkMatrix matrix;
@@ -4123,16 +2833,7 @@
#Method bool getMinMaxScales(SkScalar scaleFactors[2]) const
#In Property
#Line # returns minimum and maximum scaling, if possible ##
-Sets scaleFactors[0] to the minimum scaling factor, and scaleFactors[1] to the
-maximum scaling factor. Scaling factors are computed by decomposing
-the Matrix scaling and skewing elements.
-
-Returns true if scaleFactors are found; otherwise, returns false and sets
-scaleFactors to undefined values.
-
-#Param scaleFactors storage for minimum and maximum scale factors ##
-
-#Return true if scale factors were computed correctly ##
+#Populate
#Example
SkMatrix matrix;
@@ -4207,16 +2908,7 @@
#Method static const SkMatrix& I()
#In Constructors
#Line # returns a reference to a const identity Matrix ##
-Returns reference to const identity Matrix. Returned Matrix is set to:
-
-#Code
-#Literal
-| 1 0 0 |
-| 0 1 0 |
-| 0 0 1 |
-##
-
-#Return const identity Matrix ##
+#Populate
#Example
SkMatrix m1, m2, m3;
@@ -4240,17 +2932,7 @@
#Method static const SkMatrix& InvalidMatrix()
#In Constructors
#Line # returns a reference to a const invalid Matrix ##
-Returns reference to a const Matrix with invalid values. Returned Matrix is set
-to:
-
-#Code
-#Literal
-| SK_ScalarMax SK_ScalarMax SK_ScalarMax |
-| SK_ScalarMax SK_ScalarMax SK_ScalarMax |
-| SK_ScalarMax SK_ScalarMax SK_ScalarMax |
-##
-
-#Return const invalid Matrix ##
+#Populate
#Example
SkDebugf("scaleX %g\n", SkMatrix::InvalidMatrix().getScaleX());
@@ -4268,30 +2950,7 @@
#Method static SkMatrix Concat(const SkMatrix& a, const SkMatrix& b)
#In Operators
#Line # returns the concatenation of Matrix pair ##
-Returns Matrix a multiplied by Matrix b.
-
-Given:
-
-#Code
-#Literal
- | A B C | | J K L |
-a = | D E F |, b = | M N O |
- | G H I | | P Q R |
-##
-
-sets Matrix to:
-
-#Code
-#Literal
- | A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
-a * b = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
- | G H I | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
-##
-
-#Param a Matrix on left side of multiply expression ##
-#Param b Matrix on right side of multiply expression ##
-
-#Return Matrix computed from a times b ##
+#Populate
#Example
#Height 64
@@ -4319,8 +2978,7 @@
#Method void dirtyMatrixTypeCache()
#In Utility
#Line # sets internal cache to unknown state ##
-Sets internal cache to unknown state. Use to force update after repeated
-modifications to Matrix element reference returned by operator[](int index).
+#Populate
#Example
SkMatrix matrix;
@@ -4351,19 +3009,7 @@
#In Constructors
#In Set
#Line # sets to scale and translate ##
-Initializes Matrix with scale and translate elements.
-
-#Code
-#Literal
-| sx 0 tx |
-| 0 sy ty |
-| 0 0 1 |
-##
-
-#Param sx horizontal scale factor to store ##
-#Param sy vertical scale factor to store ##
-#Param tx horizontal translation to store ##
-#Param ty vertical translation to store ##
+#Populate
#Example
SkMatrix matrix;
@@ -4383,10 +3029,7 @@
#Method bool isFinite() const
#In Property
#Line # returns if all Matrix values are not infinity, NaN ##
-Returns true if all elements of the matrix are finite. Returns false if any
-element is infinity, or NaN.
-
-#Return true if matrix has only finite elements ##
+#Populate
#Example
SkMatrix matrix = SkMatrix::MakeTrans(SK_ScalarNaN, 0);
@@ -4407,4 +3050,3 @@
#Class SkMatrix ##
#Topic Matrix ##
-
diff --git a/docs/SkPaint_Reference.bmh b/docs/SkPaint_Reference.bmh
index 2deca4d..6e5391b 100644
--- a/docs/SkPaint_Reference.bmh
+++ b/docs/SkPaint_Reference.bmh
@@ -107,18 +107,7 @@
#Method SkPaint(const SkPaint& paint)
#Line # makes a shallow copy ##
-Makes a shallow copy of Paint. Typeface, Path_Effect, Shader,
-Mask_Filter, Color_Filter, Draw_Looper, and Image_Filter are shared
-between the original paint and the copy. Objects containing Reference_Count increment
-their references by one.
-
-The referenced objects Path_Effect, Shader, Mask_Filter, Color_Filter,
-Draw_Looper, and Image_Filter cannot be modified after they are created.
-This prevents objects with Reference_Count from being modified once Paint refers to them.
-
-#Param paint original to copy ##
-
-#Return shallow copy of paint ##
+#Populate
#Example
#ToDo why is this double-spaced on Fiddle? ##
@@ -139,16 +128,9 @@
#Method SkPaint(SkPaint&& paint)
#Line # moves paint without copying it ##
- Implements a move constructor to avoid increasing the reference counts
- of objects referenced by the paint.
+#Populate
- After the call, paint is undefined, and can be safely destructed.
-
- #Param paint original to move ##
-
- #Return content of paint ##
-
- #Example
+#Example
SkPaint paint;
float intervals[] = { 5, 5 };
paint.setPathEffect(SkDashPathEffect::Make(intervals, SK_ARRAY_COUNT(intervals), 2.5f));
@@ -167,8 +149,7 @@
#Method void reset()
#In Constructors
#Line # sets to default values ##
-Sets all Paint contents to their initial values. This is equivalent to replacing
-Paint with the result of SkPaint().
+#Populate
#Example
SkPaint paint1, paint2;
@@ -187,9 +168,7 @@
#Method ~SkPaint()
#Line # decreases Reference_Count of owned objects ##
-Decreases Paint Reference_Count of owned objects: Typeface, Path_Effect, Shader,
-Mask_Filter, Color_Filter, Draw_Looper, and Image_Filter. If the
-objects containing Reference_Count go to zero, they are deleted.
+#Populate
#NoExample
##
@@ -206,16 +185,7 @@
#Method SkPaint& operator=(const SkPaint& paint)
#In Management
#Line # makes a shallow copy ##
-Makes a shallow copy of Paint. Typeface, Path_Effect, Shader,
-Mask_Filter, Color_Filter, Draw_Looper, and Image_Filter are shared
-between the original paint and the copy. Objects containing Reference_Count in the
-prior destination are decreased by one, and the referenced objects are deleted if the
-resulting count is zero. Objects containing Reference_Count in the parameter paint
-are increased by one. paint is unmodified.
-
-#Param paint original to copy ##
-
-#Return content of paint ##
+#Populate
#Example
SkPaint paint1, paint2;
@@ -237,16 +207,7 @@
#Method SkPaint& operator=(SkPaint&& paint)
#In Management
#Line # moves paint without copying it ##
-Moves the paint to avoid increasing the reference counts
-of objects referenced by the paint parameter. Objects containing Reference_Count in the
-prior destination are decreased by one; those objects are deleted if the resulting count
-is zero.
-
-After the call, paint is undefined, and can be safely destructed.
-
- #Param paint original to move ##
-
- #Return content of paint ##
+#Populate
#Example
SkPaint paint1, paint2;
@@ -265,16 +226,9 @@
#Method bool operator==(const SkPaint& a, const SkPaint& b)
#Line # compares paints for equality ##
- Compares a and b, and returns true if a and b are equivalent. May return false
- if Typeface, Path_Effect, Shader, Mask_Filter, Color_Filter,
- Draw_Looper, or Image_Filter have identical contents but different pointers.
+#Populate
- #Param a Paint to compare ##
- #Param b Paint to compare ##
-
- #Return true if Paint pair are equivalent ##
-
- #Example
+#Example
SkPaint paint1, paint2;
paint1.setColor(SK_ColorRED);
paint2.setColor(0xFFFF0000);
@@ -296,14 +250,7 @@
#Method bool operator!=(const SkPaint& a, const SkPaint& b)
#Line # compares paints for inequality ##
- Compares a and b, and returns true if a and b are not equivalent. May return true
- if Typeface, Path_Effect, Shader, Mask_Filter, Color_Filter,
- Draw_Looper, or Image_Filter have identical contents but different pointers.
-
- #Param a Paint to compare ##
- #Param b Paint to compare ##
-
- #Return true if Paint pair are not equivalent ##
+#Populate
#Example
SkPaint paint1, paint2;
@@ -325,17 +272,7 @@
#Method uint32_t getHash() const
#In Management
#Line # returns a shallow hash for equality checks ##
-Returns a hash generated from Paint values and pointers.
-Identical hashes guarantee that the paints are
-equivalent, but differing hashes do not guarantee that the paints have differing
-contents.
-
-If operator==(const SkPaint& a, const SkPaint& b) returns true for two paints,
-their hashes are also equal.
-
-The hash returned is platform and implementation specific.
-
-#Return a shallow hash ##
+#Populate
#Example
SkPaint paint1, paint2;
@@ -407,9 +344,9 @@
#Bug 915
On OS_X and iOS, hinting controls whether Core_Graphics dilates the font outlines
-to account for LCD text. No hinting uses Core_Text Grayscale output.
+to account for LCD text. No hinting uses Core_Text grayscale output.
Normal hinting uses Core_Text LCD output. If kLCDRenderText_Flag is clear,
-the LCD output is reduced to a single Grayscale channel.
+the LCD output is reduced to a single grayscale channel.
On Windows with DirectWrite, Hinting has no effect.
@@ -425,11 +362,9 @@
#Method Hinting getHinting() const
#In Hinting
#Line # returns Hinting, glyph outline adjustment level ##
- Returns level of glyph outline adjustment.
+#Populate
- #Return one of: kNo_Hinting, kSlight_Hinting, kNormal_Hinting, kFull_Hinting ##
-
- #Example
+#Example
SkPaint paint;
SkDebugf("SkPaint::kNormal_Hinting %c= paint.getHinting()\n",
SkPaint::kNormal_Hinting == paint.getHinting() ? '=' : ':');
@@ -541,10 +476,7 @@
#Method uint32_t getFlags() const
#In Flags
#Line # returns Flags stored in a bit field ##
-Returns paint settings described by Flags. Each setting uses one
-bit, and can be tested with Flags members.
-
-#Return zero, one, or more bits described by Flags ##
+#Populate
#Example
SkPaint paint;
@@ -562,10 +494,7 @@
#Method void setFlags(uint32_t flags)
#In Flags
#Line # sets multiple Flags in a bit field ##
-Replaces Flags with flags, the union of the Flags members.
-All Flags members may be cleared, or one or more may be set.
-
-#Param flags union of Flags for Paint ##
+#Populate
#Example
SkPaint paint;
@@ -652,14 +581,9 @@
#Method bool isAntiAlias() const
#In Anti_alias
#Line # returns true if Anti_Alias is set ##
+#Populate
- Returns true if pixels on the active edges of Path may be drawn with partial transparency.
-
- Equivalent to getFlags masked with kAntiAlias_Flag.
-
- #Return kAntiAlias_Flag state ##
-
- #Example
+#Example
SkPaint paint;
SkDebugf("paint.isAntiAlias() %c= !!(paint.getFlags() & SkPaint::kAntiAlias_Flag)\n",
paint.isAntiAlias() == !!(paint.getFlags() & SkPaint::kAntiAlias_Flag) ? '=' : '!');
@@ -677,15 +601,9 @@
#Method void setAntiAlias(bool aa)
#In Anti_alias
#Line # sets or clears Anti_Alias ##
- Requests, but does not require, that Path edge pixels draw opaque or with
- partial transparency.
+#Populate
- Sets kAntiAlias_Flag if aa is true.
- Clears kAntiAlias_Flag if aa is false.
-
- #Param aa setting for kAntiAlias_Flag ##
-
- #Example
+#Example
SkPaint paint1, paint2;
paint1.setAntiAlias(true);
paint2.setFlags(paint2.getFlags() | SkPaint::kAntiAlias_Flag);
@@ -779,13 +697,9 @@
#Method bool isDither() const
#In Dither
#Line # returns true if Dither is set ##
- Returns true if color error may be distributed to smooth color transition.
+#Populate
- Equivalent to getFlags masked with kDither_Flag.
-
- #Return kDither_Flag state ##
-
- #Example
+#Example
SkPaint paint;
SkDebugf("paint.isDither() %c= !!(paint.getFlags() & SkPaint::kDither_Flag)\n",
paint.isDither() == !!(paint.getFlags() & SkPaint::kDither_Flag) ? '=' : '!');
@@ -804,14 +718,9 @@
#Method void setDither(bool dither)
#In Dither
#Line # sets or clears Dither ##
- Requests, but does not require, to distribute color error.
+#Populate
- Sets kDither_Flag if dither is true.
- Clears kDither_Flag if dither is false.
-
- #Param dither setting for kDither_Flag ##
-
- #Example
+#Example
SkPaint paint1, paint2;
paint1.setDither(true);
paint2.setFlags(paint2.getFlags() | SkPaint::kDither_Flag);
@@ -887,13 +796,9 @@
#Method bool isLinearText() const
#In Linear_Text
#Line # returns true if text is converted to Path ##
- Returns true if text is converted to Path before drawing and measuring.
+#Populate
- Equivalent to getFlags masked with kLinearText_Flag.
-
- #Return kLinearText_Flag state ##
-
- #Example
+#Example
#Height 128
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -918,15 +823,9 @@
#Method void setLinearText(bool linearText)
#In Linear_Text
#Line # converts to Path before draw or measure ##
- Returns true if text is converted to Path before drawing and measuring.
- By default, kLinearText_Flag is clear.
+#Populate
- Sets kLinearText_Flag if linearText is true.
- Clears kLinearText_Flag if linearText is false.
-
- #Param linearText setting for kLinearText_Flag ##
-
- #Example
+#Example
#Height 128
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -961,13 +860,9 @@
#Method bool isSubpixelText() const
#In Subpixel_Text
#Line # returns true if Subpixel_Text is set ##
- Returns true if Glyphs at different sub-pixel positions may differ on pixel edge coverage.
+#Populate
- Equivalent to getFlags masked with kSubpixelText_Flag.
-
- #Return kSubpixelText_Flag state ##
-
- #Example
+#Example
SkPaint paint;
SkDebugf("paint.isSubpixelText() %c= !!(paint.getFlags() & SkPaint::kSubpixelText_Flag)\n",
paint.isSubpixelText() == !!(paint.getFlags() & SkPaint::kSubpixelText_Flag) ? '=' : '!');
@@ -986,14 +881,9 @@
#Method void setSubpixelText(bool subpixelText)
#In Subpixel_Text
#Line # sets or clears Subpixel_Text ##
- Requests, but does not require, that Glyphs respect sub-pixel positioning.
+#Populate
- Sets kSubpixelText_Flag if subpixelText is true.
- Clears kSubpixelText_Flag if subpixelText is false.
-
- #Param subpixelText setting for kSubpixelText_Flag ##
-
- #Example
+#Example
SkPaint paint1, paint2;
paint1.setSubpixelText(true);
paint2.setFlags(paint2.getFlags() | SkPaint::kSubpixelText_Flag);
@@ -1024,13 +914,9 @@
#Method bool isLCDRenderText() const
#In LCD_Text
#Line # returns true if LCD_Text is set ##
- Returns true if Glyphs may use LCD striping to improve glyph edges.
+#Populate
- Returns true if Flags kLCDRenderText_Flag is set.
-
- #Return kLCDRenderText_Flag state ##
-
- #Example
+#Example
SkPaint paint;
SkDebugf("paint.isLCDRenderText() %c= !!(paint.getFlags() & SkPaint::kLCDRenderText_Flag)\n",
paint.isLCDRenderText() == !!(paint.getFlags() & SkPaint::kLCDRenderText_Flag) ? '=' : '!');
@@ -1049,14 +935,9 @@
#Method void setLCDRenderText(bool lcdText)
#In LCD_Text
#Line # sets or clears LCD_Text ##
- Requests, but does not require, that Glyphs use LCD striping for glyph edges.
+#Populate
- Sets kLCDRenderText_Flag if lcdText is true.
- Clears kLCDRenderText_Flag if lcdText is false.
-
- #Param lcdText setting for kLCDRenderText_Flag ##
-
- #Example
+#Example
SkPaint paint1, paint2;
paint1.setLCDRenderText(true);
paint2.setFlags(paint2.getFlags() | SkPaint::kLCDRenderText_Flag);
@@ -1121,13 +1002,9 @@
#Method bool isEmbeddedBitmapText() const
#In Font_Embedded_Bitmaps
#Line # returns true if Font_Embedded_Bitmaps is set ##
- Returns true if Font_Engine may return Glyphs from font bitmaps instead of from outlines.
+#Populate
- Equivalent to getFlags masked with kEmbeddedBitmapText_Flag.
-
- #Return kEmbeddedBitmapText_Flag state ##
-
- #Example
+#Example
SkPaint paint;
SkDebugf("paint.isEmbeddedBitmapText() %c="
" !!(paint.getFlags() & SkPaint::kEmbeddedBitmapText_Flag)\n",
@@ -1150,14 +1027,9 @@
#Method void setEmbeddedBitmapText(bool useEmbeddedBitmapText)
#In Font_Embedded_Bitmaps
#Line # sets or clears Font_Embedded_Bitmaps ##
- Requests, but does not require, to use bitmaps in fonts instead of outlines.
+#Populate
- Sets kEmbeddedBitmapText_Flag if useEmbeddedBitmapText is true.
- Clears kEmbeddedBitmapText_Flag if useEmbeddedBitmapText is false.
-
- #Param useEmbeddedBitmapText setting for kEmbeddedBitmapText_Flag ##
-
- #Example
+#Example
SkPaint paint1, paint2;
paint1.setEmbeddedBitmapText(true);
paint2.setFlags(paint2.getFlags() | SkPaint::kEmbeddedBitmapText_Flag);
@@ -1186,15 +1058,9 @@
#Method bool isAutohinted() const
#In Automatic_Hinting
#Line # returns true if Glyphs are always hinted ##
- Returns true if Hinting is set to kNormal_Hinting or kFull_Hinting, and if
- platform uses FreeType as the Font_Manager. If true, instructs
- the Font_Manager to always hint Glyphs.
+#Populate
- Equivalent to getFlags masked with kAutoHinting_Flag.
-
- #Return kAutoHinting_Flag state ##
-
- #Example
+#Example
SkPaint paint;
for (auto forceAutoHinting : { false, true} ) {
paint.setAutohinted(forceAutoHinting);
@@ -1216,20 +1082,9 @@
#Method void setAutohinted(bool useAutohinter)
#In Automatic_Hinting
#Line # sets Glyphs to always be hinted ##
- Sets whether to always hint Glyphs.
- If Hinting is set to kNormal_Hinting or kFull_Hinting and useAutohinter is set,
- instructs the Font_Manager to always hint Glyphs.
- Automatic_Hinting has no effect if Hinting is set to kNo_Hinting or
- kSlight_Hinting.
+#Populate
- Only affects platforms that use FreeType as the Font_Manager.
-
- Sets kAutoHinting_Flag if useAutohinter is true.
- Clears kAutoHinting_Flag if useAutohinter is false.
-
- #Param useAutohinter setting for kAutoHinting_Flag ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
paint.setAntiAlias(true);
@@ -1290,14 +1145,9 @@
#Method bool isFakeBoldText() const
#In Fake_Bold
#Line # returns true if Fake_Bold is set ##
- Returns true if approximate bold by increasing the stroke width when creating glyph bitmaps
- from outlines.
+#Populate
- Equivalent to getFlags masked with kFakeBoldText_Flag.
-
- #Return kFakeBoldText_Flag state ##
-
- #Example
+#Example
SkPaint paint;
SkDebugf("paint.isFakeBoldText() %c= !!(paint.getFlags() & SkPaint::kFakeBoldText_Flag)\n",
paint.isFakeBoldText() == !!(paint.getFlags() & SkPaint::kFakeBoldText_Flag) ? '=' : '!');
@@ -1316,14 +1166,9 @@
#Method void setFakeBoldText(bool fakeBoldText)
#In Fake_Bold
#Line # sets or clears Fake_Bold ##
- Increases stroke width when creating glyph bitmaps to approximate a bold typeface.
+#Populate
- Sets kFakeBoldText_Flag if fakeBoldText is true.
- Clears kFakeBoldText_Flag if fakeBoldText is false.
-
- #Param fakeBoldText setting for kFakeBoldText_Flag ##
-
- #Example
+#Example
SkPaint paint1, paint2;
paint1.setFakeBoldText(true);
paint2.setFlags(paint2.getFlags() | SkPaint::kFakeBoldText_Flag);
@@ -1342,12 +1187,12 @@
#Alias Full_Hinting_Spacing ## # long winded enough -- maybe things with two underscores auto-aliased?
if Hinting is set to kFull_Hinting, Full_Hinting_Spacing adjusts the character
-spacing by the difference of the hinted and Unhinted Left_Side_Bearing and
+spacing by the difference of the hinted and unhinted Left_Side_Bearing and
Right_Side_Bearing. Full_Hinting_Spacing only applies to platforms that use
FreeType as their Font_Engine.
-Full_Hinting_Spacing is not related to text Kerning, where the space between
-a specific pair of characters is adjusted using data in the font Kerning tables.
+Full_Hinting_Spacing is not related to text kerning, where the space between
+a specific pair of characters is adjusted using data in the font kerning tables.
#Subtopic Full_Hinting_Spacing ##
#Method bool isDevKernText() const
@@ -1399,12 +1244,7 @@
#Method SkFilterQuality getFilterQuality() const
#In Filter_Quality_Methods
#Line # returns Filter_Quality, image filtering level ##
-Returns Filter_Quality, the image filtering level. A lower setting
-draws faster; a higher setting looks better when the image is scaled.
-
-#Return one of: kNone_SkFilterQuality, kLow_SkFilterQuality,
- kMedium_SkFilterQuality, kHigh_SkFilterQuality
-#Return ##
+#Populate
#Example
SkPaint paint;
@@ -1422,13 +1262,7 @@
#Method void setFilterQuality(SkFilterQuality quality)
#In Filter_Quality_Methods
#Line # sets Filter_Quality, the image filtering level ##
-Sets Filter_Quality, the image filtering level. A lower setting
-draws faster; a higher setting looks better when the image is scaled.
-Does not check to see if quality is valid.
-
-#Param quality one of: kNone_SkFilterQuality, kLow_SkFilterQuality,
- kMedium_SkFilterQuality, kHigh_SkFilterQuality
-##
+#Populate
#Example
SkPaint paint;
@@ -1494,13 +1328,9 @@
#Method SkColor getColor() const
#In Color_Methods
#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.
+#Populate
- #Return Unpremultiplied ARGB ##
-
- #Example
+#Example
SkPaint paint;
paint.setColor(SK_ColorYELLOW);
SkColor y = paint.getColor();
@@ -1519,13 +1349,9 @@
#Method SkColor4f getColor4f() const
#In Color_Methods
#Line # returns Color_Alpha and RGB, one drawing color ##
- Retrieves alpha and RGB, unpmreultiplied, as four floating point values. RGB are
- are extended sRGB values (sRGB gamut, and encoded with the sRGB transfer function).
+#Populate
- #Return Unpremultiplied RGBA ##
-
- #ToDo enable and correct example once fiddle picks up getColor4f ##
- #Example
+#Example
SkPaint paint;
paint.setColor(SK_ColorYELLOW);
SkColor4f y = paint.getColor4f();
@@ -1544,12 +1370,9 @@
#Method void setColor(SkColor color)
#In Color_Methods
#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.
+#Populate
- #Param color Unpremultiplied ARGB ##
-
- #Example
+#Example
SkPaint green1, green2;
unsigned a = 255;
unsigned r = 0;
@@ -1571,16 +1394,9 @@
#Method void setColor4f(const SkColor4f& color, SkColorSpace* colorSpace)
#In Color_Methods
#Line # sets Color_Alpha and RGB, one drawing color ##
- Sets alpha and RGB used when stroking and filling. The color is four floating
- point values, unpremultiplied. The color values are interpreted as being in
- the colorSpace. If colorSpace is nullptr, then color is assumed to be in the
- sRGB color space.
+#Populate
- #Param color Unpremultiplied RGBA ##
- #Param colorSpace Color_Space describing the encoding of color ##
-
- #ToDo enable and correct example once fiddle picks up setColor4f ##
- #Example
+#Example
SkPaint green1, green2;
green1.setColor4f({0, 1, 0, 1}, nullptr); // R=0 G=1 B=0 A=1
green2.setColor(0xFF00FF00); // A=255 R=0 G=255 B=0
@@ -1604,11 +1420,9 @@
#Method uint8_t getAlpha() const
#In Alpha_Methods
#Line # returns Color_Alpha, color opacity ##
- Retrieves Alpha from the Color used when stroking and filling.
+#Populate
- #Return Alpha ranging from zero, fully transparent, to 255, fully opaque ##
-
- #Example
+#Example
SkPaint paint;
SkDebugf("255 %c= paint.getAlpha()\n", 255 == paint.getAlpha() ? '=' : '!');
@@ -1622,15 +1436,9 @@
#Method void setAlpha(U8CPU a)
#In Alpha_Methods
#Line # sets Color_Alpha, color opacity ##
- 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
- fully opaque.
+#Populate
- #Param a Alpha component of Color ##
-
- #Example
+#Example
SkPaint paint;
paint.setColor(0x00112233);
paint.setAlpha(0x44);
@@ -1646,15 +1454,9 @@
#Method void setARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b)
#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 RGB.
+#Populate
- #Param a amount of Color_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) ##
-
- #Example
+#Example
SkPaint transRed1, transRed2;
transRed1.setARGB(255 / 2, 255, 0, 0);
transRed2.setColor(SkColorSetARGB(255 / 2, 255, 0, 0));
@@ -1767,11 +1569,9 @@
#Method Style getStyle() const
#In Style
#Line # returns Style: stroke, fill, or both ##
- Returns whether the geometry is filled, stroked, or filled and stroked.
+#Populate
- #Return one of:kFill_Style, kStroke_Style, kStrokeAndFill_Style ##
-
- #Example
+#Example
SkPaint paint;
SkDebugf("SkPaint::kFill_Style %c= paint.getStyle()\n",
SkPaint::kFill_Style == paint.getStyle() ? '=' : '!');
@@ -1787,13 +1587,9 @@
#Method void setStyle(Style style)
#In Style
#Line # sets Style: stroke, fill, or both ##
- Sets whether the geometry is filled, stroked, or filled and stroked.
- Has no effect if style is not a legal Style value.
+#Populate
- #Param style one of: kFill_Style, kStroke_Style, kStrokeAndFill_Style
- ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
paint.setStrokeWidth(5);
@@ -1867,12 +1663,9 @@
#In Stroke_Width
#Line # returns thickness of the stroke ##
- Returns the thickness of the pen used by Paint to
- outline the shape.
+#Populate
- #Return zero for Hairline, greater than zero for pen thickness ##
-
- #Example
+#Example
SkPaint paint;
SkDebugf("0 %c= paint.getStrokeWidth()\n", 0 == paint.getStrokeWidth() ? '=' : '!');
@@ -1887,14 +1680,9 @@
#In Stroke_Width
#Line # sets thickness of the stroke ##
- Sets the thickness of the pen used by the paint to
- outline the shape.
- Has no effect if width is less than zero.
+#Populate
- #Param width zero thickness for Hairline; greater than zero for pen thickness
- ##
-
- #Example
+#Example
SkPaint paint;
paint.setStrokeWidth(5);
paint.setStrokeWidth(-1);
@@ -1990,11 +1778,9 @@
#In Miter_Limit
#Line # returns Miter_Limit, angles with sharp corners ##
- Returns the limit at which a sharp corner is drawn beveled.
+#Populate
- #Return zero and greater Miter_Limit ##
-
- #Example
+#Example
SkPaint paint;
SkDebugf("default miter limit == %g\n", paint.getStrokeMiter());
@@ -2011,14 +1797,9 @@
#In Miter_Limit
#Line # sets Miter_Limit, angles with sharp corners ##
- Sets the limit at which a sharp corner is drawn beveled.
- Valid values are zero and greater.
- Has no effect if miter is less than zero.
+#Populate
- #Param miter zero and greater Miter_Limit
- ##
-
- #Example
+#Example
SkPaint paint;
paint.setStrokeMiter(8);
paint.setStrokeMiter(-1);
@@ -2121,11 +1902,9 @@
#In Stroke_Cap
#Line # returns Cap, the area drawn at path ends ##
- Returns the geometry drawn at the beginning and end of strokes.
+#Populate
- #Return one of: kButt_Cap, kRound_Cap, kSquare_Cap ##
-
- #Example
+#Example
SkPaint paint;
SkDebugf("kButt_Cap %c= default stroke cap\n",
SkPaint::kButt_Cap == paint.getStrokeCap() ? '=' : '!');
@@ -2142,13 +1921,9 @@
#In Stroke_Cap
#Line # sets Cap, the area drawn at path ends ##
- Sets the geometry drawn at the beginning and end of strokes.
+#Populate
- #Param cap one of: kButt_Cap, kRound_Cap, kSquare_Cap;
- has no effect if cap is not valid
- ##
-
- #Example
+#Example
SkPaint paint;
paint.setStrokeCap(SkPaint::kRound_Cap);
paint.setStrokeCap((SkPaint::Cap) SkPaint::kCapCount);
@@ -2276,11 +2051,9 @@
#In Stroke_Join
#Line # returns Join, geometry on path corners ##
- Returns the geometry drawn at the corners of strokes.
+#Populate
- #Return one of: kMiter_Join, kRound_Join, kBevel_Join ##
-
- #Example
+#Example
SkPaint paint;
SkDebugf("kMiter_Join %c= default stroke join\n",
SkPaint::kMiter_Join == paint.getStrokeJoin() ? '=' : '!');
@@ -2297,13 +2070,9 @@
#In Stroke_Join
#Line # sets Join, geometry on path corners ##
- Sets the geometry drawn at the corners of strokes.
+#Populate
- #Param join one of: kMiter_Join, kRound_Join, kBevel_Join;
- otherwise, has no effect
- ##
-
- #Example
+#Example
SkPaint paint;
paint.setStrokeJoin(SkPaint::kMiter_Join);
paint.setStrokeJoin((SkPaint::Join) SkPaint::kJoinCount);
@@ -2350,18 +2119,9 @@
SkScalar resScale = 1) const
#In Fill_Path
#Line # returns fill path equivalent to stroke ##
+#Populate
- Returns the filled equivalent of the stroked path.
-
- #Param src Path read to create a filled version ##
- #Param dst resulting Path; may be the same as src, but may not be nullptr ##
- #Param cullRect optional limit passed to Path_Effect ##
- #Param resScale if > 1, increase precision, else if (0 < res < 1) reduce precision
- to favor speed and size
- ##
- #Return true if the path represents Style_Fill, or false if it represents Hairline ##
-
- #Example
+#Example
#Height 192
#Description
A very small Quad stroke is turned into a filled path with increasing levels of precision.
@@ -2398,16 +2158,9 @@
#Method bool getFillPath(const SkPath& src, SkPath* dst) const
#In Fill_Path
- Returns the filled equivalent of the stroked path.
+#Populate
- Replaces dst with the src path modified by Path_Effect and Style_Stroke.
- Path_Effect, if any, is not culled. Stroke_Width is created with default precision.
-
- #Param src Path read to create a filled version ##
- #Param dst resulting Path dst may be the same as src, but may not be nullptr ##
- #Return true if the path represents Style_Fill, or false if it represents Hairline ##
-
- #Example
+#Example
#Height 128
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -2480,13 +2233,9 @@
#In Shader_Methods
#Line # returns Shader, multiple drawing colors; gradients ##
- Returns optional colors used when filling a path, such as a gradient.
+#Populate
- Does not alter Shader Reference_Count.
-
- #Return Shader if previously set, nullptr otherwise ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
SkDebugf("nullptr %c= shader\n", paint.getShader() ? '!' : '=');
@@ -2506,13 +2255,9 @@
#In Shader_Methods
#Line # references Shader, multiple drawing colors; gradients ##
- Returns optional colors used when filling a path, such as a gradient.
+#Populate
- Increases Shader Reference_Count by one.
-
- #Return Shader if previously set, nullptr otherwise ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint1, paint2;
paint1.setShader(SkShader::MakeEmptyShader());
@@ -2533,14 +2278,9 @@
#In Shader_Methods
#Line # sets Shader, multiple drawing colors; gradients ##
- Sets optional colors used when filling a path, such as a gradient.
+#Populate
- Sets Shader to shader, decreasing Reference_Count of the previous Shader.
- Increments shader Reference_Count by one.
-
- #Param shader how geometry is filled with color; if nullptr, Color is used instead ##
-
- #Example
+#Example
#Height 64
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -2585,12 +2325,9 @@
#In Color_Filter_Methods
#Line # returns Color_Filter, how colors are altered ##
- Returns Color_Filter if set, or nullptr.
- Does not alter Color_Filter Reference_Count.
+#Populate
- #Return Color_Filter if previously set, nullptr otherwise ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
SkDebugf("nullptr %c= color filter\n", paint.getColorFilter() ? '!' : '=');
@@ -2609,12 +2346,9 @@
#In Color_Filter_Methods
#Line # references Color_Filter, how colors are altered ##
- Returns Color_Filter if set, or nullptr.
- Increases Color_Filter Reference_Count by one.
+#Populate
- #Return Color_Filter if set, or nullptr ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint1, paint2;
paint1.setColorFilter(SkColorFilter::MakeModeFilter(0xFFFF0000, SkBlendMode::kSrcATop));
@@ -2634,14 +2368,9 @@
#In Color_Filter_Methods
#Line # sets Color_Filter, alters color ##
-Sets Color_Filter to filter, decreasing Reference_Count of the previous
-Color_Filter. Pass nullptr to clear Color_Filter.
+#Populate
-Increments filter Reference_Count by one.
-
- #Param colorFilter Color_Filter to apply to subsequent draw ##
-
- #Example
+#Example
#Height 64
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -2686,12 +2415,9 @@
#In Blend_Mode_Methods
#Line # returns Blend_Mode, how colors combine with Device ##
- Returns Blend_Mode.
- By default, returns SkBlendMode::kSrcOver.
+#Populate
- #Return mode used to combine source color with destination color ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
SkDebugf("kSrcOver %c= getBlendMode\n",
@@ -2713,11 +2439,9 @@
#In Blend_Mode_Methods
#Line # returns true if Blend_Mode is SkBlendMode::kSrcOver ##
- Returns true if Blend_Mode is SkBlendMode::kSrcOver, the default.
+#Populate
- #Return true if Blend_Mode is SkBlendMode::kSrcOver ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
SkDebugf("isSrcOver %c= true\n", paint.isSrcOver() ? '=' : '!');
@@ -2737,12 +2461,9 @@
#In Blend_Mode_Methods
#Line # sets Blend_Mode, how colors combine with destination ##
- Sets Blend_Mode to mode.
- Does not check for valid input.
+#Populate
- #Param mode SkBlendMode used to combine source color and destination ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
SkDebugf("isSrcOver %c= true\n", paint.isSrcOver() ? '=' : '!');
@@ -2785,12 +2506,9 @@
#In Path_Effect_Methods
#Line # returns Path_Effect, modifications to path geometry; dashing ##
- Returns Path_Effect if set, or nullptr.
- Does not alter Path_Effect Reference_Count.
+#Populate
- #Return Path_Effect if previously set, nullptr otherwise ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
SkDebugf("nullptr %c= path effect\n", paint.getPathEffect() ? '!' : '=');
@@ -2811,12 +2529,9 @@
#In Path_Effect_Methods
#Line # references Path_Effect, modifications to path geometry; dashing ##
- Returns Path_Effect if set, or nullptr.
- Increases Path_Effect Reference_Count by one.
+#Populate
- #Return Path_Effect if previously set, nullptr otherwise ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint1, paint2;
SkScalar intervals[] = {1, 2};
@@ -2839,14 +2554,9 @@
#In Path_Effect_Methods
#Line # sets Path_Effect, modifications to path geometry; dashing ##
-Sets Path_Effect to pathEffect, decreasing Reference_Count of the previous
-Path_Effect. Pass nullptr to leave the path geometry unaltered.
+#Populate
-Increments pathEffect Reference_Count by one.
-
- #Param pathEffect replace Path with a modification when drawn ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
paint.setPathEffect(SkDiscretePathEffect::Make(3, 5));
@@ -2880,12 +2590,9 @@
#In Mask_Filter_Methods
#Line # returns Mask_Filter, alterations to Mask_Alpha ##
- Returns Mask_Filter if set, or nullptr.
- Does not alter Mask_Filter Reference_Count.
+#Populate
- #Return Mask_Filter if previously set, nullptr otherwise ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
SkDebugf("nullptr %c= mask filter\n", paint.getMaskFilter() ? '!' : '=');
@@ -2905,13 +2612,9 @@
#In Mask_Filter_Methods
#Line # references Mask_Filter, alterations to Mask_Alpha ##
- Returns Mask_Filter if set, or nullptr.
+#Populate
- Increases Mask_Filter Reference_Count by one.
-
- #Return Mask_Filter if previously set, nullptr otherwise ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint1, paint2;
paint1.setMaskFilter(SkMaskFilter::MakeBlur(kNormal_SkBlurStyle, 1));
@@ -2932,15 +2635,9 @@
#In Mask_Filter_Methods
#Line # sets Mask_Filter, alterations to Mask_Alpha ##
-Sets Mask_Filter to maskFilter, decreasing Reference_Count of the previous
-Mask_Filter. Pass nullptr to clear Mask_Filter and leave Mask_Filter effect on
-Mask_Alpha unaltered.
+#Populate
-Increments maskFilter Reference_Count by one.
-
- #Param maskFilter modifies clipping mask generated from drawn geometry ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
paint.setStyle(SkPaint::kStroke_Style);
@@ -2980,12 +2677,9 @@
#In Typeface_Methods
#Line # returns Typeface, font description ##
- Returns Typeface if set, or nullptr.
- Does not alter Typeface Reference_Count.
+#Populate
- #Return Typeface if previously set, nullptr otherwise ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
SkDebugf("nullptr %c= typeface\n", paint.getTypeface() ? '!' : '=');
@@ -3005,11 +2699,9 @@
#In Typeface_Methods
#Line # references Typeface, font description ##
- Increases Typeface Reference_Count by one.
+#Populate
- #Return Typeface if previously set, nullptr otherwise ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint1, paint2;
paint1.setTypeface(SkTypeface::MakeFromName("monospace",
@@ -3034,13 +2726,9 @@
#In Typeface_Methods
#Line # sets Typeface, font description ##
-Sets Typeface to typeface, decreasing Reference_Count of the previous Typeface.
-Pass nullptr to clear Typeface and use the default typeface. Increments
-typeface Reference_Count by one.
+#Populate
- #Param typeface font and style used to draw text ##
-
- #Example
+#Example
#Height 64
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -3094,12 +2782,9 @@
#In Image_Filter_Methods
#Line # returns Image_Filter, alter pixels; blur ##
- Returns Image_Filter if set, or nullptr.
- Does not alter Image_Filter Reference_Count.
+#Populate
- #Return Image_Filter if previously set, nullptr otherwise ##
-
- #Example
+#Example
#Function
###$
#include "SkBlurImageFilter.h"
@@ -3124,12 +2809,9 @@
#In Image_Filter_Methods
#Line # references Image_Filter, alter pixels; blur ##
- Returns Image_Filter if set, or nullptr.
- Increases Image_Filter Reference_Count by one.
+#Populate
- #Return Image_Filter if previously set, nullptr otherwise ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint1, paint2;
paint1.setImageFilter(SkOffsetImageFilter::Make(25, 25, nullptr));
@@ -3150,15 +2832,9 @@
#In Image_Filter_Methods
#Line # sets Image_Filter, alter pixels; blur ##
-Sets Image_Filter to imageFilter, decreasing Reference_Count of the previous
-Image_Filter. Pass nullptr to clear Image_Filter, and remove Image_Filter effect
-on drawing.
+#Populate
-Increments imageFilter Reference_Count by one.
-
- #Param imageFilter how Image is sampled when transformed ##
-
- #Example
+#Example
#Height 160
void draw(SkCanvas* canvas) {
SkBitmap bitmap;
@@ -3214,12 +2890,9 @@
#In Draw_Looper_Methods
#Line # returns Draw_Looper, multiple layers ##
- Returns Draw_Looper if set, or nullptr.
- Does not alter Draw_Looper Reference_Count.
+#Populate
- #Return Draw_Looper if previously set, nullptr otherwise ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
SkDebugf("nullptr %c= draw looper\n", paint.getDrawLooper() ? '!' : '=');
@@ -3240,12 +2913,9 @@
#In Draw_Looper_Methods
#Line # references Draw_Looper, multiple layers ##
- Returns Draw_Looper if set, or nullptr.
- Increases Draw_Looper Reference_Count by one.
+#Populate
- #Return Draw_Looper if previously set, nullptr otherwise ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint1, paint2;
SkLayerDrawLooper::Builder looperBuilder;
@@ -3271,15 +2941,9 @@
#Method void setDrawLooper(sk_sp<SkDrawLooper> drawLooper)
#In Draw_Looper_Methods
#Line # sets Draw_Looper, multiple layers ##
-Sets Draw_Looper to drawLooper, decreasing Reference_Count of the previous
-drawLooper. Pass nullptr to clear Draw_Looper and leave Draw_Looper effect on
-drawing unaltered.
+#Populate
-Increments drawLooper Reference_Count by one.
-
- #Param drawLooper iterates through drawing one or more time, altering Paint ##
-
- #Example
+#Example
#Height 128
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -3359,11 +3023,9 @@
#In Text_Size
#Line # returns text size in points ##
- Returns Text_Size in points.
+#Populate
- #Return typographic height of text ##
-
- #Example
+#Example
SkPaint paint;
SkDebugf("12 %c= default text size\n", 12 == paint.getTextSize() ? '=' : '!');
##
@@ -3374,12 +3036,9 @@
#In Text_Size
#Line # sets text size in points ##
- Sets Text_Size in points.
- Has no effect if textSize is not greater than or equal to zero.
+#Populate
- #Param textSize typographic height of text ##
-
- #Example
+#Example
SkPaint paint;
SkDebugf("12 %c= text size\n", 12 == paint.getTextSize() ? '=' : '!');
paint.setTextSize(-20);
@@ -3418,12 +3077,9 @@
#In Text_Scale_X
#Line # returns the text horizontal scale; condensed text ##
- Returns Text_Scale_X.
- Default value is 1.
+#Populate
- #Return text horizontal scale ##
-
- #Example
+#Example
SkPaint paint;
SkDebugf("1 %c= default text scale x\n", 1 == paint.getTextScaleX() ? '=' : '!');
##
@@ -3435,12 +3091,9 @@
#In Text_Scale_X
#Line # sets the text horizontal scale; condensed text ##
- Sets Text_Scale_X.
- Default value is 1.
+#Populate
- #Param scaleX text horizontal scale ##
-
- #Example
+#Example
SkPaint paint;
paint.setTextScaleX(0.f / 0.f);
SkDebugf("text scale %s-a-number\n", SkScalarIsNaN(paint.getTextScaleX()) ? "not" : "is");
@@ -3479,12 +3132,9 @@
#In Text_Skew_X
#Line # returns the text horizontal skew; oblique text ##
- Returns Text_Skew_X.
- Default value is zero.
+#Populate
- #Return additional shear in x-axis relative to y-axis ##
-
- #Example
+#Example
SkPaint paint;
SkDebugf("0 %c= default text skew x\n", 0 == paint.getTextSkewX() ? '=' : '!');
##
@@ -3495,12 +3145,9 @@
#In Text_Skew_X
#Line # sets the text horizontal skew; oblique text ##
- Sets Text_Skew_X.
- Default value is zero.
+#Populate
- #Param skewX additional shear in x-axis relative to y-axis ##
-
- #Example
+#Example
SkPaint paint;
paint.setTextScaleX(1.f / 0.f);
SkDebugf("text scale %s-finite\n", SkScalarIsFinite(paint.getTextScaleX()) ? "is" : "not");
@@ -3589,14 +3236,9 @@
#In Text_Encoding
#Line # returns character or glyph encoded size ##
- Returns Text_Encoding.
- Text_Encoding determines how character code points are mapped to font glyph indices.
+#Populate
- #Return one of: kUTF8_TextEncoding, kUTF16_TextEncoding, kUTF32_TextEncoding, or
- kGlyphID_TextEncoding
- ##
-
- #Example
+#Example
SkPaint paint;
SkDebugf("kUTF8_TextEncoding %c= text encoding\n",
SkPaint::kUTF8_TextEncoding == paint.getTextEncoding() ? '=' : '!');
@@ -3617,15 +3259,9 @@
#In Text_Encoding
#Line # sets character or glyph encoded size ##
- Sets Text_Encoding to encoding.
- Text_Encoding determines how character code points are mapped to font glyph indices.
- Invalid values for encoding are ignored.
+#Populate
- #Param encoding one of: kUTF8_TextEncoding, kUTF16_TextEncoding, kUTF32_TextEncoding, or
- kGlyphID_TextEncoding
- #Param ##
-
- #Example
+#Example
SkPaint paint;
paint.setTextEncoding((SkPaint::TextEncoding) 4);
SkDebugf("4 %c= text encoding\n", (SkPaint::TextEncoding) 4 == paint.getTextEncoding() ? '=' : '!');
@@ -3840,61 +3476,33 @@
#Method bool hasUnderlineThickness(SkScalar* thickness) const
#Line # returns underline thickness if set ##
+#Populate
- Returns true if Font_Metrics has a valid underline thickness, and sets
- thickness to that value. If the underline thickness is not valid,
- return false, and ignore thickness.
-
- #Param thickness storage for underline width ##
-
- #Return true if font specifies underline width ##
-
- #NoExample
+#NoExample
##
##
#Method bool hasUnderlinePosition(SkScalar* position) const
#Line # returns underline position if set ##
+#Populate
- Returns true if Font_Metrics has a valid underline position, and sets
- position to that value. If the underline position is not valid,
- return false, and ignore position.
-
- #Param position storage for underline position ##
-
- #Return true if font specifies underline position ##
-
- #NoExample
+#NoExample
##
##
#Method bool hasStrikeoutThickness(SkScalar* thickness) const
#Line # returns strikeout thickness if set ##
+#Populate
- Returns true if Font_Metrics has a valid strikeout thickness, and sets
- thickness to that value. If the underline thickness is not valid,
- return false, and ignore thickness.
-
- #Param thickness storage for strikeout width ##
-
- #Return true if font specifies strikeout width ##
-
- #NoExample
+#NoExample
##
##
#Method bool hasStrikeoutPosition(SkScalar* position) const
#Line # returns strikeout position if set ##
+#Populate
- Returns true if Font_Metrics has a valid strikeout position, and sets
- position to that value. If the underline position is not valid,
- return false, and ignore position.
-
- #Param position storage for strikeout position ##
-
- #Return true if font specifies strikeout position ##
-
- #NoExample
+#NoExample
##
##
@@ -3904,22 +3512,9 @@
#In Font_Metrics
#Line # returns Typeface metrics scaled by text size ##
- Returns Font_Metrics associated with Typeface.
- The return value is the recommended spacing between lines: the sum of metrics
- descent, ascent, and leading.
- If metrics is not nullptr, Font_Metrics is copied to metrics.
- Results are scaled by Text_Size but does not take into account
- dimensions required by Text_Scale_X, Text_Skew_X, Fake_Bold,
- Style_Stroke, and Path_Effect.
- Results can be additionally scaled by scale; a scale of zero
- is ignored.
+#Populate
- #Param metrics storage for Font_Metrics from Typeface; may be nullptr ##
- #Param scale additional multiplier for returned values ##
-
- #Return recommended spacing between lines ##
-
- #Example
+#Example
#Height 128
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -3944,15 +3539,9 @@
#In Font_Metrics
#Line # returns recommended spacing between lines ##
- Returns the recommended spacing between lines: the sum of metrics
- descent, ascent, and leading.
- Result is scaled by Text_Size but does not take into account
- dimensions required by stroking and Path_Effect.
- Returns the same result as getFontMetrics.
+#Populate
- #Return recommended spacing between lines ##
-
- #Example
+#Example
SkPaint paint;
for (SkScalar textSize : { 12, 18, 24, 32 } ) {
paint.setTextSize(textSize);
@@ -3974,16 +3563,7 @@
#In Font_Metrics
#Line # returns union all glyph bounds ##
-Returns the union of bounds of all Glyphs.
-Returned dimensions are computed by Font_Manager from font data,
-ignoring Hinting. Includes Text_Size, Text_Scale_X,
-and Text_Skew_X, but not Fake_Bold or Path_Effect.
-
-If Text_Size is large, Text_Scale_X is one, and Text_Skew_X is zero,
-returns the same bounds as Font_Metrics { FontMetrics::fXMin,
-FontMetrics::fTop, FontMetrics::fXMax, FontMetrics::fBottom }.
-
-#Return union of bounds of all Glyphs ##
+#Populate
#Example
SkPaint paint;
@@ -4008,27 +3588,9 @@
SkGlyphID glyphs[]) const
#In Utility
#Line # converts text into glyph indices ##
+#Populate
-Converts text into glyph indices.
-Returns the number of glyph indices represented by text.
-Text_Encoding specifies how text represents characters or glyphs.
-glyphs may be nullptr, to compute the glyph count.
-
-Does not check text for valid character codes or valid glyph indices.
-
-If byteLength equals zero, returns zero.
-If byteLength includes a partial character, the partial character is ignored.
-
-If Text_Encoding is kUTF8_TextEncoding and
-text contains an invalid UTF-8 sequence, zero is returned.
-
-#Param text character storage encoded with Text_Encoding ##
-#Param byteLength length of character storage in bytes ##
-#Param glyphs storage for glyph indices; may be nullptr ##
-
-#Return number of glyphs represented by text of length byteLength ##
-
- #Example
+#Example
#Height 64
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -4048,16 +3610,9 @@
#Method int countText(const void* text, size_t byteLength) const
#In Utility
#Line # returns number of Glyphs in text ##
- Returns the number of Glyphs in text.
- Uses Text_Encoding to count the Glyphs.
- Returns the same result as textToGlyphs.
+#Populate
-#Param text character storage encoded with Text_Encoding ##
-#Param byteLength length of character storage in bytes ##
-
-#Return number of Glyphs represented by text of length byteLength ##
-
- #Example
+#Example
SkPaint paint;
const uint8_t utf8[] = { 0x24, 0xC2, 0xA2, 0xE2, 0x82, 0xAC, 0xC2, 0xA5, 0xC2, 0xA3 };
SkDebugf("count = %d\n", paint.countText(utf8, sizeof(utf8)));
@@ -4073,22 +3628,9 @@
#Method bool containsText(const void* text, size_t byteLength) const
#In Utility
#Line # returns if all text corresponds to Glyphs ##
- Returns true if all text corresponds to a non-zero glyph index.
- Returns false if any characters in text are not supported in
- Typeface.
+#Populate
- If Text_Encoding is kGlyphID_TextEncoding,
- returns true if all glyph indices in text are non-zero;
- does not check to see if text contains valid glyph indices for Typeface.
-
- Returns true if byteLength is zero.
-
- #Param text array of characters or Glyphs ##
- #Param byteLength number of bytes in text array ##
-
- #Return true if all text corresponds to a non-zero glyph index ##
-
- #NoExample
+#NoExample
#Description
containsText succeeds for degree symbol, but cannot find a glyph index
corresponding to the Unicode surrogate code point.
@@ -4142,19 +3684,9 @@
int count, SkUnichar text[]) const
#In Utility
#Line # converts Glyphs into text ##
+#Populate
- Converts glyphs into text if possible.
- Glyph values without direct Unicode equivalents are mapped to zero.
- Uses the Typeface, but is unaffected
- by Text_Encoding; the text values returned are equivalent to kUTF32_TextEncoding.
-
- Only supported on platforms that use FreeType as the Font_Engine.
-
- #Param glyphs array of indices into font ##
- #Param count length of glyph array ##
- #Param text storage for character codes, one per glyph ##
-
- #Example
+#Example
#Height 64
#Description
Convert UTF-8 text to glyphs; then convert glyphs to Unichar code points.
@@ -4184,21 +3716,9 @@
#In Measure_Text
#Line # returns advance width and bounds of text ##
- Returns the advance width of text.
- The advance is the normal distance to move before drawing additional text.
- Uses Text_Encoding to decode text, Typeface to get the font metrics,
- and Text_Size, Text_Scale_X, Text_Skew_X, Stroke_Width, and
- Path_Effect to scale the metrics and bounds.
- Returns the bounding box of text if bounds is not nullptr.
- The bounding box is computed as if the text was drawn at the origin.
+#Populate
- #Param text character codes or glyph indices to be measured ##
- #Param length number of bytes of text to measure ##
- #Param bounds returns bounding box relative to (0, 0) if not nullptr ##
-
- #Return advance width or height ##
-
- #Example
+#Example
#Height 64
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -4220,18 +3740,9 @@
#Method SkScalar measureText(const void* text, size_t length) const
#In Measure_Text
- Returns the advance width of text.
- The advance is the normal distance to move before drawing additional text.
- Uses Text_Encoding to decode text, Typeface to get the font metrics,
- and Text_Size to scale the metrics.
- Does not scale the advance or bounds by Fake_Bold or Path_Effect.
+#Populate
- #Param text character codes or glyph indices to be measured ##
- #Param length number of bytes of text to measure ##
-
- #Return advance width or height ##
-
- #Example
+#Example
SkPaint paint;
SkDebugf("default width = %g\n", paint.measureText("!", 1));
paint.setTextSize(paint.getTextSize() * 2);
@@ -4249,22 +3760,9 @@
SkScalar* measuredWidth = nullptr) const
#In Measure_Text
#Line # returns text that fits in a width ##
+#Populate
- Returns the bytes of text that fit within maxWidth.
- The text fragment fits if its advance width is less than or equal to maxWidth.
- Measures only while the advance is less than or equal to maxWidth.
- Returns the advance or the text fragment in measuredWidth if it not nullptr.
- Uses Text_Encoding to decode text, Typeface to get the font metrics,
- and Text_Size to scale the metrics.
- Does not scale the advance or bounds by Fake_Bold or Path_Effect.
-
- #Param text character codes or glyph indices to be measured ##
- #Param length number of bytes of text to measure ##
- #Param maxWidth advance limit; text is measured while advance is less than maxWidth ##
- #Param measuredWidth returns the width of the text less than or equal to maxWidth ##
- #Return bytes of text that fit, always less than or equal to length ##
-
- #Example
+#Example
#Description
Line under "Breakfast" shows desired width, shorter than available characters.
Line under "Bre" shows measured width after breaking text.
@@ -4292,26 +3790,9 @@
SkRect bounds[] = nullptr) const
#In Measure_Text
#Line # returns advance and bounds for each glyph in text ##
+#Populate
- Retrieves the advance and bounds for each glyph in text, and returns
- the glyph count in text.
- Both widths and bounds may be nullptr.
- If widths is not nullptr, widths must be an array of glyph count entries.
- if bounds is not nullptr, bounds must be an array of glyph count entries.
- Widths returns the horizontal advance.
- Uses Text_Encoding to decode text, Typeface to get the font metrics,
- and Text_Size to scale the widths and bounds.
- Does not scale the advance by Fake_Bold or Path_Effect.
- Does include Fake_Bold and Path_Effect in the bounds.
-
- #Param text character codes or glyph indices to be measured ##
- #Param byteLength number of bytes of text to measure ##
- #Param widths returns text advances for each glyph; may be nullptr ##
- #Param bounds returns bounds for each glyph relative to (0, 0); may be nullptr ##
-
- #Return glyph count in text ##
-
- #Example
+#Example
#Height 160
#Description
Bounds of Glyphs increase for stroked text, but text advance remains the same.
@@ -4361,20 +3842,9 @@
SkPath* path) const
#In Text_Path
#Line # returns Path equivalent to text ##
+#Populate
-Returns the geometry as Path equivalent to the drawn text.
-Uses Text_Encoding to decode text, Typeface to get the glyph paths,
-and Text_Size, Fake_Bold, and Path_Effect to scale and modify the glyph paths.
-All of the glyph paths are stored in path.
-Uses x, y, and Text_Align to position path.
-
- #Param text character codes or glyph indices ##
- #Param length number of bytes of text ##
- #Param x x-axis value of the origin of the text ##
- #Param y y-axis value of the origin of the text ##
- #Param path geometry of the Glyphs ##
-
- #Example
+#Example
#Description
Text is added to Path, offset, and subtracted from Path, then added at
the offset location. The result is rendered with one draw call.
@@ -4399,20 +3869,9 @@
const SkPoint pos[], SkPath* path) const
#In Text_Path
#Line # returns Path equivalent to positioned text ##
+#Populate
-Returns the geometry as Path equivalent to the drawn text.
-Uses Text_Encoding to decode text, Typeface to get the glyph paths,
-and Text_Size, Fake_Bold, and Path_Effect to scale and modify the glyph paths.
-All of the glyph paths are stored in path.
-Uses pos array and Text_Align to position path.
-pos contains a position for each glyph.
-
- #Param text character codes or glyph indices ##
- #Param length number of bytes of text ##
- #Param pos positions of each glyph ##
- #Param path geometry of the Glyphs ##
-
- #Example
+#Example
#Height 85
#Description
Simplifies three Glyphs to eliminate overlaps, and strokes the result.
@@ -4444,27 +3903,7 @@
const SkScalar bounds[2], SkScalar* intervals) const
#In Text_Intercepts
#Line # returns where lines intersect text; underlines ##
-
- Returns the number of intervals that intersect bounds.
- bounds describes a pair of lines parallel to the text advance.
- The return count is zero or a multiple of two, and is at most twice the number of Glyphs in
- the string.
- Uses Text_Encoding to decode text, Typeface to get the glyph paths,
- and Text_Size, Fake_Bold, and Path_Effect to scale and modify the glyph paths.
- Uses x, y, and Text_Align to position intervals.
-
- Pass nullptr for intervals to determine the size of the interval array.
-
- intervals are cached to improve performance for multiple calls.
-
- #Param text character codes or glyph indices ##
- #Param length number of bytes of text ##
- #Param x x-axis value of the origin of the text ##
- #Param y y-axis value of the origin of the text ##
- #Param bounds lower and upper line parallel to the advance ##
- #Param intervals returned intersections; may be nullptr ##
-
- #Return number of intersections; may be zero ##
+#Populate
#Example
#Height 128
@@ -4499,28 +3938,9 @@
const SkScalar bounds[2], SkScalar* intervals) const
#In Text_Intercepts
#Line # returns where lines intersect positioned text; underlines ##
+#Populate
- Returns the number of intervals that intersect bounds.
- bounds describes a pair of lines parallel to the text advance.
- The return count is zero or a multiple of two, and is at most twice the number of Glyphs in
- the string.
- Uses Text_Encoding to decode text, Typeface to get the glyph paths,
- and Text_Size, Fake_Bold, and Path_Effect to scale and modify the glyph paths.
- Uses pos array and Text_Align to position intervals.
-
- Pass nullptr for intervals to determine the size of the interval array.
-
- intervals are cached to improve performance for multiple calls.
-
- #Param text character codes or glyph indices ##
- #Param length number of bytes of text ##
- #Param pos positions of each glyph ##
- #Param bounds lower and upper line parallel to the advance ##
- #Param intervals returned intersections; may be nullptr ##
-
- #Return number of intersections; may be zero ##
-
- #Example
+#Example
#Description
Text intercepts draw on either side of, but not inside, Glyphs in a run.
##
@@ -4555,29 +3975,9 @@
SkScalar* intervals) const
#In Text_Intercepts
#Line # returns where lines intersect horizontally positioned text; underlines ##
+#Populate
- Returns the number of intervals that intersect bounds.
- bounds describes a pair of lines parallel to the text advance.
- The return count is zero or a multiple of two, and is at most twice the number of Glyphs in
- the string.
- Uses Text_Encoding to decode text, Typeface to get the glyph paths,
- and Text_Size, Fake_Bold, and Path_Effect to scale and modify the glyph paths.
- Uses xpos array, constY, and Text_Align to position intervals.
-
- Pass nullptr for intervals to determine the size of the interval array.
-
- intervals are cached to improve performance for multiple calls.
-
- #Param text character codes or glyph indices ##
- #Param length number of bytes of text ##
- #Param xpos positions of each glyph in x ##
- #Param constY position of each glyph in y ##
- #Param bounds lower and upper line parallel to the advance ##
- #Param intervals returned intersections; may be nullptr ##
-
- #Return number of intersections; may be zero ##
-
- #Example
+#Example
#Height 128
#Description
Text intercepts do not take stroke thickness into consideration.
@@ -4615,28 +4015,9 @@
SkScalar* intervals) const
#In Text_Intercepts
#Line # returns where lines intersect Text_Blob; underlines ##
+#Populate
- Returns the number of intervals that intersect bounds.
- bounds describes a pair of lines parallel to the text advance.
- The return count is zero or a multiple of two, and is at most twice the number of Glyphs in
- the string.
- Uses Typeface to get the glyph paths,
- and Text_Size, Fake_Bold, and Path_Effect to scale and modify the glyph paths.
- Uses run array and Text_Align to position intervals.
-
- Text_Encoding must be set to SkPaint::kGlyphID_TextEncoding.
-
- Pass nullptr for intervals to determine the size of the interval array.
-
- intervals are cached to improve performance for multiple calls.
-
- #Param blob Glyphs, positions, and text paint attributes ##
- #Param bounds lower and upper line parallel to the advance ##
- #Param intervals returned intersections; may be nullptr ##
-
- #Return number of intersections; may be zero ##
-
- #Example
+#Example
#Height 143
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -4676,15 +4057,9 @@
#Method bool nothingToDraw() const
#In Utility
#Line # returns true if Paint prevents all drawing ##
- Returns true if Paint prevents all drawing;
- otherwise, the Paint may or may not allow drawing.
+#Populate
- Returns true if, for example, Blend_Mode combined with Color_Alpha computes a
- new Alpha of zero.
-
- #Return true if Paint prevents all drawing ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
auto debugster = [](const char* prefix, const SkPaint& p) -> void {
SkDebugf("%s nothing to draw: %s\n", prefix,
@@ -4816,4 +4191,3 @@
#Class SkPaint ##
#Topic Paint ##
-
diff --git a/docs/SkPath_Reference.bmh b/docs/SkPath_Reference.bmh
index 2620669..a31befe 100644
--- a/docs/SkPath_Reference.bmh
+++ b/docs/SkPath_Reference.bmh
@@ -208,10 +208,7 @@
#Method SkPath()
#In Constructors
#Line # constructs with default values ##
-Constucts an empty Path. By default, Path has no Verbs, no Points, and no Weights.
-Fill_Type is set to kWinding_FillType.
-
-#Return empty Path ##
+#Populate
#Example
SkPath path;
@@ -230,18 +227,7 @@
#Method SkPath(const SkPath& path)
#In Constructors
#Line # makes a shallow copy ##
-Constructs a copy of an existing path.
-Copy constructor makes two paths identical by value. Internally, path and
-the returned result share pointer values. The underlying Verb_Array, Point_Array
-and Weights are copied when modified.
-
-Creating a Path copy is very efficient and never allocates memory.
-Paths are always copied by value from the interface; the underlying shared
-pointers are not exposed.
-
-#Param path Path to copy by value ##
-
-#Return copy of Path ##
+#Populate
#Example
#Description
@@ -275,11 +261,11 @@
#Method ~SkPath()
#Line # decreases Reference_Count of owned objects ##
-Releases ownership of any shared data and deletes data if Path is sole owner.
+#Populate
#Example
#Description
-delete calls Path Destructor, but copy of original in path2 is unaffected.
+delete calls Path destructor, but copy of original in path2 is unaffected.
##
void draw(SkCanvas* canvas) {
SkPath* path = new SkPath();
@@ -299,18 +285,7 @@
#Method SkPath& operator=(const SkPath& path)
#Line # makes a shallow copy ##
-Constructs a copy of an existing path.
-Path assignment makes two paths identical by value. Internally, assignment
-shares pointer values. The underlying Verb_Array, Point_Array and Weights
-are copied when modified.
-
-Copying Paths by assignment is very efficient and never allocates memory.
-Paths are always copied by value from the interface; the underlying shared
-pointers are not exposed.
-
-#Param path Verb_Array, Point_Array, Weights, and Fill_Type to copy ##
-
-#Return Path copied by value ##
+#Populate
#Example
SkPath path1;
@@ -335,13 +310,7 @@
#Method bool operator==(const SkPath& a, const SkPath& b)
#Line # compares Paths for equality ##
-Compares a and b; returns true if Fill_Type, Verb_Array, Point_Array, and Weights
-are equivalent.
-
-#Param a Path to compare ##
-#Param b Path to compare ##
-
-#Return true if Path pair are equivalent ##
+#Populate
#Example
#Description
@@ -380,13 +349,7 @@
#Method bool operator!=(const SkPath& a, const SkPath& b)
#Line # compares paths for inequality ##
-Compares a and b; returns true if Fill_Type, Verb_Array, Point_Array, and Weights
-are not equivalent.
-
-#Param a Path to compare ##
-#Param b Path to compare ##
-
-#Return true if Path pair are not equivalent ##
+#Populate
#Example
#Description
@@ -426,16 +389,7 @@
#In Property
#In Interpolate
#Line # returns if pair contains equal counts of Verb_Array and Weights ##
-Returns true if Paths contain equal Verbs and equal Weights.
-If Paths contain one or more Conics, the Weights must match.
-
-conicTo may add different Verbs depending on Conic_Weight, so it is not
-trivial to interpolate a pair of Paths containing Conics with different
-Conic_Weight values.
-
-#Param compare Path to compare ##
-
-#Return true if Paths Verb_Array and Weights are equivalent ##
+#Populate
#Example
SkPath path, path2;
@@ -629,12 +583,7 @@
#In Fill_Type
#Line # returns Fill_Type: winding, even-odd, inverse ##
-Returns FillType, the rule used to fill Path. FillType of a new Path is
-kWinding_FillType.
-
-#Return one of: kWinding_FillType, kEvenOdd_FillType, kInverseWinding_FillType,
-kInverseEvenOdd_FillType
-##
+#Populate
#Example
SkPath path;
@@ -658,12 +607,7 @@
#In Fill_Type
#Line # sets Fill_Type: winding, even-odd, inverse ##
-Sets FillType, the rule used to fill Path. While there is no check
-that ft is legal, values outside of FillType are not supported.
-
-#Param ft one of: kWinding_FillType, kEvenOdd_FillType, kInverseWinding_FillType,
-kInverseEvenOdd_FillType
-##
+#Populate
#Example
#Description
@@ -687,10 +631,7 @@
#In Fill_Type
#Line # returns if Fill_Type fills outside geometry ##
-Returns if FillType describes area outside Path geometry. The inverse fill area
-extends indefinitely.
-
-#Return true if FillType is kInverseWinding_FillType or kInverseEvenOdd_FillType ##
+#Populate
#Example
SkPath path;
@@ -807,11 +748,7 @@
#In Convexity
#Line # returns geometry convexity, computing if necessary ##
-Computes Convexity if required, and returns stored value.
-Convexity is computed if stored value is kUnknown_Convexity,
-or if Path has been altered since Convexity was computed or set.
-
-#Return computed or stored Convexity ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -840,10 +777,7 @@
#In Convexity
#Line # returns geometry convexity if known ##
-Returns last computed Convexity, or kUnknown_Convexity if
-Path has been altered since Convexity was computed or set.
-
-#Return stored Convexity ##
+#Populate
#Example
#Description
@@ -878,18 +812,7 @@
#In Convexity
#Line # sets if geometry is convex to avoid future computation ##
-Stores convexity so that it is later returned by getConvexity or getConvexityOrUnknown.
-convexity may differ from getConvexity, although setting an incorrect value may
-cause incorrect or inefficient drawing.
-
-If convexity is kUnknown_Convexity: getConvexity will
-compute Convexity, and getConvexityOrUnknown will return kUnknown_Convexity.
-
-If convexity is kConvex_Convexity or kConcave_Convexity, getConvexity
-and getConvexityOrUnknown will return convexity until the path is
-altered.
-
-#Param convexity one of: kUnknown_Convexity, kConvex_Convexity, or kConcave_Convexity ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -918,11 +841,7 @@
#In Convexity
#Line # returns if geometry is convex ##
-Computes Convexity if required, and returns true if value is kConvex_Convexity.
-If setConvexity was called with kConvex_Convexity or kConcave_Convexity, and
-the path has not been altered, Convexity is not recomputed.
-
-#Return true if Convexity stored or computed is kConvex_Convexity ##
+#Populate
#Example
#Description
@@ -955,16 +874,7 @@
#Method bool isOval(SkRect* bounds) const
#In Property
#Line # returns if describes Oval ##
-
-Returns true if this path is recognized as an oval or circle.
-
-bounds receives bounds of Oval.
-
-bounds is unmodified if Oval is not found.
-
-#Param bounds storage for bounding Rect of Oval; may be nullptr ##
-
-#Return true if Path is recognized as an oval or circle ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -990,16 +900,7 @@
#Method bool isRRect(SkRRect* rrect) const
#In Property
#Line # returns if describes Round_Rect ##
-
-Returns true if this path is recognized as a SkRRect (but not an oval/circle or rect).
-
-rrect receives bounds of Round_Rect.
-
-rrect is unmodified if Round_Rect is not found.
-
-#Param rrect storage for bounding Rect of Round_Rect; may be nullptr ##
-
-#Return true if Path contains only Round_Rect ##
+#Populate
#Example
#Description
@@ -1029,11 +930,7 @@
#Method SkPath& reset()
#In Constructors
#Line # removes Verb_Array, Point_Array, and Weights; frees memory ##
-Sets Path to its initial state.
-Removes Verb_Array, Point_Array, and Weights, and sets FillType to kWinding_FillType.
-Internal storage associated with Path is released.
-
-#Return reference to Path ##
+#Populate
#Example
SkPath path1, path2;
@@ -1053,14 +950,7 @@
#Method SkPath& rewind()
#In Constructors
#Line # removes Verb_Array, Point_Array, and Weights, keeping memory ##
-Sets Path to its initial state, preserving internal storage.
-Removes Verb_Array, Point_Array, and Weights, and sets FillType to kWinding_FillType.
-Internal storage associated with Path is retained.
-
-Use rewind() instead of reset() if Path storage will be reused and performance
-is critical.
-
-#Return reference to Path ##
+#Populate
#Example
#Description
@@ -1084,11 +974,7 @@
#Method bool isEmpty() const
#In Property
#Line # returns if verb count is zero ##
-Returns if Path is empty.
-Empty Path may have FillType but has no SkPoint, Verb, or Conic_Weight.
-SkPath() constructs empty Path; reset() and rewind() make Path empty.
-
-#Return true if the path contains no Verb array ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -1124,12 +1010,7 @@
#Method bool isLastContourClosed() const
#In Property
#Line # returns if final Contour forms a loop ##
-Returns if Contour is closed.
-Contour is closed if Path Verb array was last modified by close(). When stroked,
-closed Contour draws Paint_Stroke_Join instead of Paint_Stroke_Cap at first and
-last Point.
-
-#Return true if the last Contour ends with a kClose_Verb ##
+#Populate
#Example
#Description
@@ -1167,11 +1048,7 @@
#Method bool isFinite() const
#In Property
#Line # returns if all Point values are finite ##
-Returns true for finite Point array values between negative SK_ScalarMax and
-positive SK_ScalarMax. Returns false for any Point array value of
-SK_ScalarInfinity, SK_ScalarNegativeInfinity, or SK_ScalarNaN.
-
-#Return true if all Point values are finite ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -1203,12 +1080,7 @@
#In Property
#In Volatile
#Line # returns if Device should not cache ##
-Returns true if the path is volatile; it will not be altered or discarded
-by the caller after it is drawn. Paths by default have volatile set false, allowing
-Surface to attach a cache of data which speeds repeated drawing. If true, Surface
-may not speed repeated drawing.
-
-#Return true if caller will alter Path after drawing ##
+#Populate
#Example
SkPath path;
@@ -1230,20 +1102,7 @@
#Method void setIsVolatile(bool isVolatile)
#In Volatile
#Line # sets if Device should not cache ##
-Specifies whether Path is volatile; whether it will be altered or discarded
-by the caller after it is drawn. Paths by default have volatile set false, allowing
-Device to attach a cache of data which speeds repeated drawing.
-
-Mark temporary paths, discarded or modified after use, as volatile
-to inform Device that the path need not be cached.
-
-Mark animating Path volatile to improve performance.
-Mark unchanging Path non-volatile to improve repeated rendering.
-
-Raster_Surface Path draws are affected by volatile for some shadows.
-GPU_Surface Path draws are affected by volatile for some shadows and concave geometries.
-
-#Param isVolatile true if caller will alter Path after drawing ##
+#Populate
#Example
#Height 50
@@ -1271,18 +1130,7 @@
#Method static bool IsLineDegenerate(const SkPoint& p1, const SkPoint& p2, bool exact)
#In Property
#Line # returns if Line is very small ##
-Tests if Line between Point pair is degenerate.
-Line with no length or that moves a very short distance is degenerate; it is
-treated as a point.
-
-exact changes the equality test. If true, returns true only if p1 equals p2.
-If false, returns true if p1 equals or nearly equals p2.
-
-#Param p1 line start point ##
-#Param p2 line end point ##
-#Param exact if false, allow nearly equals ##
-
-#Return true if Line is degenerate; its length is effectively zero ##
+#Populate
#Example
#Description
@@ -1318,19 +1166,7 @@
const SkPoint& p3, bool exact)
#In Property
#Line # returns if Quad is very small ##
-
-Tests if Quad is degenerate.
-Quad with no length or that moves a very short distance is degenerate; it is
-treated as a point.
-
-#Param p1 Quad start point ##
-#Param p2 Quad control point ##
-#Param p3 Quad end point ##
-#Param exact if true, returns true only if p1, p2, and p3 are equal;
- if false, returns true if p1, p2, and p3 are equal or nearly equal
-##
-
-#Return true if Quad is degenerate; its length is effectively zero ##
+#Populate
#Example
#Description
@@ -1372,20 +1208,7 @@
const SkPoint& p3, const SkPoint& p4, bool exact)
#In Property
#Line # returns if Cubic is very small ##
-
-Tests if Cubic is degenerate.
-Cubic with no length or that moves a very short distance is degenerate; it is
-treated as a point.
-
-#Param p1 Cubic start point ##
-#Param p2 Cubic control point 1 ##
-#Param p3 Cubic control point 2 ##
-#Param p4 Cubic end point ##
-#Param exact if true, returns true only if p1, p2, p3, and p4 are equal;
- if false, returns true if p1, p2, p3, and p4 are equal or nearly equal
-##
-
-#Return true if Cubic is degenerate; its length is effectively zero ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -1419,15 +1242,7 @@
#Method bool isLine(SkPoint line[2]) const
#In Property
#Line # returns if describes Line ##
-Returns true if Path contains only one Line;
-Path_Verb array has two entries: kMove_Verb, kLine_Verb.
-If Path contains one Line and line is not nullptr, line is set to
-Line start point and Line end point.
-Returns false if Path is not one Line; line is unaltered.
-
-#Param line storage for Line. May be nullptr ##
-
-#Return true if Path contains exactly one Line ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -1479,14 +1294,7 @@
#In Point_Array
#Line # returns Point_Array ##
-Returns number of points in Path. Up to max points are copied.
-points may be nullptr; then, max must be zero.
-If max is greater than number of points, excess points storage is unaltered.
-
-#Param points storage for Path Point array. May be nullptr ##
-#Param max maximum to copy; must be greater than or equal to zero ##
-
-#Return Path Point array length ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -1522,10 +1330,7 @@
#In Point_Array
#Line # returns Point_Array length ##
-Returns the number of points in Path.
-Point count is initially zero.
-
-#Return Path Point array length ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -1558,13 +1363,7 @@
#In Point_Array
#Line # returns entry from Point_Array ##
-Returns Point at index in Point_Array. Valid range for index is
-0 to countPoints - 1.
-Returns (0, 0) if index is out of range.
-
-#Param index Point array element selector ##
-
-#Return Point array value or (0, 0) ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -1604,10 +1403,7 @@
#In Verb_Array
#Line # returns Verb_Array length ##
-Returns the number of Verbs: kMove_Verb, kLine_Verb, kQuad_Verb, kConic_Verb,
-kCubic_Verb, and kClose_Verb; added to Path.
-
-#Return length of Verb_Array ##
+#Populate
#Example
SkPath path;
@@ -1628,13 +1424,7 @@
#In Verb_Array
#Line # returns Verb_Array ##
-Returns the number of verbs in the path. Up to max verbs are copied. The
-verbs are copied as one byte per verb.
-
-#Param verbs storage for verbs, may be nullptr ##
-#Param max maximum number to copy into verbs ##
-
-#Return the actual number of verbs in the path ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -1674,15 +1464,7 @@
#Method void swap(SkPath& other)
#In Operators
#Line # exchanges Path pair ##
-Exchanges the Verb_Array, Point_Array, Weights, and Fill_Type with other.
-Cached state is also exchanged. swap() internally exchanges pointers, so
-it is lightweight and does not allocate memory.
-
-swap() usage has largely been replaced by operator=(const SkPath& path).
-Paths do not copy their content on assignment until they are written to,
-making assignment as efficient as swap().
-
-#Param other Path exchanged by value ##
+#Populate
#Example
SkPath path1, path2;
@@ -1707,14 +1489,7 @@
#Method const SkRect& getBounds() const
#In Property
#Line # returns maximum and minimum of Point_Array ##
-Returns minimum and maximum axes values of Point_Array.
-Returns (0, 0, 0, 0) if Path contains no points. Returned bounds width and height may
-be larger or smaller than area affected when Path is drawn.
-
-Rect returned includes all Points added to Path, including Points associated with
-kMove_Verb that define empty Contours.
-
-#Return bounds of all Points in Point_Array ##
+#Populate
#Example
#Description
@@ -1753,13 +1528,7 @@
#Method void updateBoundsCache() const
#In Utility
#Line # refreshes result of getBounds ##
-Updates internal bounds so that subsequent calls to getBounds are instantaneous.
-Unaltered copies of Path may also access cached bounds through getBounds.
-
-For now, identical to calling getBounds and ignoring the returned value.
-
-Call to prepare Path subsequently drawn from multiple threads,
-to avoid a race condition where each draw separately computes the bounds.
+#Populate
#Example
double times[2] = { 0, 0 };
@@ -1794,20 +1563,7 @@
#Method SkRect computeTightBounds() const
#In Property
#Line # returns extent of geometry ##
-Returns minimum and maximum axes values of the lines and curves in Path.
-Returns (0, 0, 0, 0) if Path contains no points.
-Returned bounds width and height may be larger or smaller than area affected
-when Path is drawn.
-
-Includes Points associated with kMove_Verb that define empty
-Contours.
-
-Behaves identically to getBounds when Path contains
-only lines. If Path contains curves, computed bounds includes
-the maximum extent of the Quad, Conic, or Cubic; is slower than getBounds;
-and unlike getBounds, does not cache the result.
-
-#Return tight bounds of curves in Path ##
+#Populate
#Example
auto debugster = [](const char* prefix, const SkPath& path) -> void {
@@ -1839,17 +1595,7 @@
#Method bool conservativelyContainsRect(const SkRect& rect) const
#In Property
#Line # returns true if Rect may be inside ##
-Returns true if rect is contained by Path.
-May return false when rect is contained by Path.
-
-For now, only returns true if Path has one Contour and is convex.
-rect may share points and edges with Path and be contained.
-Returns true if rect is empty, that is, it has zero width or height; and
-the Point or Line described by rect is contained by Path.
-
-#Param rect Rect, Line, or Point checked for containment ##
-
-#Return true if rect is contained ##
+#Populate
#Example
#Height 140
@@ -1886,11 +1632,7 @@
#Method void incReserve(int extraPtCount)
#In Utility
#Line # reserves space for additional data ##
-Grows Path Verb_Array and Point_Array to contain extraPtCount additional Points.
-May improve performance and use less memory by
-reducing the number and size of allocations when creating Path.
-
-#Param extraPtCount number of additional Points to allocate ##
+#Populate
#Example
#Height 192
@@ -1924,8 +1666,7 @@
#Method void shrinkToFit()
#In Utility
#Line # removes unused reserved space ##
-Shrinks Path Verb_Array and Point_Array storage to discard unused capacity.
-May reduce the heap overhead for Paths known to be fully constructed.
+#Populate
#NoExample
#Height 192
@@ -1950,12 +1691,7 @@
#Method SkPath& moveTo(SkScalar x, SkScalar y)
#In Build
#Line # starts Contour ##
-Adds beginning of Contour at Point (x, y).
-
-#Param x x-axis value of Contour start ##
-#Param y y-axis value of Contour start ##
-
-#Return reference to Path ##
+#Populate
#Example
#Width 140
@@ -1979,12 +1715,7 @@
##
#Method SkPath& moveTo(const SkPoint& p)
-
-Adds beginning of Contour at Point p.
-
-#Param p contour start ##
-
-#Return reference to Path ##
+#Populate
#Example
#Width 128
@@ -2011,15 +1742,7 @@
#Method SkPath& rMoveTo(SkScalar dx, SkScalar dy)
#In Build
#Line # starts Contour relative to Last_Point ##
-Adds beginning of Contour relative to Last_Point.
-If Path is empty, starts Contour at (dx, dy).
-Otherwise, start Contour at Last_Point offset by (dx, dy).
-Function name stands for "relative move to".
-
-#Param dx offset from Last_Point to Contour start on x-axis ##
-#Param dy offset from Last_Point to Contour start on y-axis ##
-
-#Return reference to Path ##
+#Populate
#Example
#Height 100
@@ -2046,16 +1769,7 @@
#Method SkPath& lineTo(SkScalar x, SkScalar y)
#In Build
#Line # appends Line ##
-Adds Line from Last_Point to (x, y). If Path is empty, or last Verb is
-kClose_Verb, Last_Point is set to (0, 0) before adding Line.
-
-lineTo appends kMove_Verb to Verb_Array and (0, 0) to Point_Array, if needed.
-lineTo then appends kLine_Verb to Verb_Array and (x, y) to Point_Array.
-
-#Param x end of added Line in x ##
-#Param y end of added Line in y ##
-
-#Return reference to Path ##
+#Populate
#Example
#Height 100
@@ -2089,16 +1803,7 @@
# ------------------------------------------------------------------------------
#Method SkPath& lineTo(const SkPoint& p)
-
-Adds Line from Last_Point to Point p. If Path is empty, or last Verb is
-kClose_Verb, Last_Point is set to (0, 0) before adding Line.
-
-lineTo first appends kMove_Verb to Verb_Array and (0, 0) to Point_Array, if needed.
-lineTo then appends kLine_Verb to Verb_Array and Point p to Point_Array.
-
-#Param p end Point of added Line ##
-
-#Return reference to Path ##
+#Populate
#Example
#Height 100
@@ -2124,18 +1829,7 @@
#Method SkPath& rLineTo(SkScalar dx, SkScalar dy)
#In Build
#Line # appends Line relative to Last_Point ##
-Adds Line from Last_Point to Vector (dx, dy). If Path is empty, or last Verb is
-kClose_Verb, Last_Point is set to (0, 0) before adding Line.
-
-Appends kMove_Verb to Verb_Array and (0, 0) to Point_Array, if needed;
-then appends kLine_Verb to Verb_Array and Line end to Point_Array.
-Line end is Last_Point plus Vector (dx, dy).
-Function name stands for "relative line to".
-
-#Param dx offset from Last_Point to Line end on x-axis ##
-#Param dy offset from Last_Point to Line end on y-axis ##
-
-#Return reference to Path ##
+#Populate
#Example
#Height 128
@@ -2223,22 +1917,9 @@
#In Quad
#Line # appends Quad ##
- Adds Quad from Last_Point towards (x1, y1), to (x2, y2).
- If Path is empty, or last Verb is kClose_Verb, Last_Point is set to (0, 0)
- before adding Quad.
+#Populate
- Appends kMove_Verb to Verb_Array and (0, 0) to Point_Array, if needed;
- then appends kQuad_Verb to Verb_Array; and (x1, y1), (x2, y2)
- to Point_Array.
-
- #Param x1 control Point of Quad in x ##
- #Param y1 control Point of Quad in y ##
- #Param x2 end Point of Quad in x ##
- #Param y2 end Point of Quad in y ##
-
- #Return reference to Path ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
paint.setAntiAlias(true);
@@ -2263,20 +1944,9 @@
#Method SkPath& quadTo(const SkPoint& p1, const SkPoint& p2)
#In Build
#In Quad
- Adds Quad from Last_Point towards Point p1, to Point p2.
- If Path is empty, or last Verb is kClose_Verb, Last_Point is set to (0, 0)
- before adding Quad.
+#Populate
- Appends kMove_Verb to Verb_Array and (0, 0) to Point_Array, if needed;
- then appends kQuad_Verb to Verb_Array; and Points p1, p2
- to Point_Array.
-
- #Param p1 control Point of added Quad ##
- #Param p2 end Point of added Quad ##
-
- #Return reference to Path ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
paint.setStyle(SkPaint::kStroke_Style);
@@ -2299,25 +1969,9 @@
#In Build
#In Quad
#Line # appends Quad relative to Last_Point ##
- Adds Quad from Last_Point towards Vector (dx1, dy1), to Vector (dx2, dy2).
- If Path is empty, or last Verb
- is kClose_Verb, Last_Point is set to (0, 0) before adding Quad.
+#Populate
- Appends kMove_Verb to Verb_Array and (0, 0) to Point_Array,
- if needed; then appends kQuad_Verb to Verb_Array; and appends Quad
- control and Quad end to Point_Array.
- Quad control is Last_Point plus Vector (dx1, dy1).
- Quad end is Last_Point plus Vector (dx2, dy2).
- Function name stands for "relative quad to".
-
- #Param dx1 offset from Last_Point to Quad control on x-axis ##
- #Param dy1 offset from Last_Point to Quad control on y-axis ##
- #Param dx2 offset from Last_Point to Quad end on x-axis ##
- #Param dy2 offset from Last_Point to Quad end on y-axis ##
-
- #Return reference to Path ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
paint.setAntiAlias(true);
@@ -2471,31 +2125,9 @@
#In Conic
#In Build
#Line # appends Conic ##
+#Populate
- Adds Conic from Last_Point towards (x1, y1), to (x2, y2), weighted by w.
- If Path is empty, or last Verb is kClose_Verb, Last_Point is set to (0, 0)
- before adding Conic.
-
- Appends kMove_Verb to Verb_Array and (0, 0) to Point_Array, if needed.
-
- If w is finite and not one, appends kConic_Verb to Verb_Array;
- and (x1, y1), (x2, y2) to Point_Array; and w to Conic_Weights.
-
- If w is one, appends kQuad_Verb to Verb_Array, and
- (x1, y1), (x2, y2) to Point_Array.
-
- If w is not finite, appends kLine_Verb twice to Verb_Array, and
- (x1, y1), (x2, y2) to Point_Array.
-
- #Param x1 control Point of Conic in x ##
- #Param y1 control Point of Conic in y ##
- #Param x2 end Point of Conic in x ##
- #Param y2 end Point of Conic in y ##
- #Param w weight of added Conic ##
-
- #Return reference to Path ##
-
- #Example
+#Example
#Height 160
#Description
As weight increases, curve is pulled towards control point.
@@ -2530,28 +2162,9 @@
#Method SkPath& conicTo(const SkPoint& p1, const SkPoint& p2, SkScalar w)
#In Build
#In Conic
- Adds Conic from Last_Point towards Point p1, to Point p2, weighted by w.
- If Path is empty, or last Verb is kClose_Verb, Last_Point is set to (0, 0)
- before adding Conic.
+#Populate
- Appends kMove_Verb to Verb_Array and (0, 0) to Point_Array, if needed.
-
- If w is finite and not one, appends kConic_Verb to Verb_Array;
- and Points p1, p2 to Point_Array; and w to Conic_Weights.
-
- If w is one, appends kQuad_Verb to Verb_Array, and Points p1, p2
- to Point_Array.
-
- If w is not finite, appends kLine_Verb twice to Verb_Array, and
- Points p1, p2 to Point_Array.
-
- #Param p1 control Point of added Conic ##
- #Param p2 end Point of added Conic ##
- #Param w weight of added Conic ##
-
- #Return reference to Path ##
-
- #Example
+#Example
#Height 128
#Description
Conics and arcs use identical representations. As the arc sweep increases
@@ -2591,34 +2204,9 @@
#In Build
#In Conic
#Line # appends Conic relative to Last_Point ##
+#Populate
- Adds Conic from Last_Point towards Vector (dx1, dy1), to Vector (dx2, dy2),
- weighted by w. If Path is empty, or last Verb
- is kClose_Verb, Last_Point is set to (0, 0) before adding Conic.
-
- Appends kMove_Verb to Verb_Array and (0, 0) to Point_Array,
- if needed.
-
- If w is finite and not one, next appends kConic_Verb to Verb_Array,
- and w is recorded as Conic_Weight; otherwise, if w is one, appends
- kQuad_Verb to Verb_Array; or if w is not finite, appends kLine_Verb
- twice to Verb_Array.
-
- In all cases appends Points control and end to Point_Array.
- control is Last_Point plus Vector (dx1, dy1).
- end is Last_Point plus Vector (dx2, dy2).
-
- Function name stands for "relative conic to".
-
- #Param dx1 offset from Last_Point to Conic control on x-axis ##
- #Param dy1 offset from Last_Point to Conic control on y-axis ##
- #Param dx2 offset from Last_Point to Conic end on x-axis ##
- #Param dy2 offset from Last_Point to Conic end on y-axis ##
- #Param w weight of added Conic ##
-
- #Return reference to Path ##
-
- #Example
+#Example
#Height 140
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -2683,23 +2271,7 @@
#In Build
#In Cubic
#Line # appends Cubic ##
-
-Adds Cubic from Last_Point towards (x1, y1), then towards (x2, y2), ending at
-(x3, y3). If Path is empty, or last Verb is kClose_Verb, Last_Point is set to
-(0, 0) before adding Cubic.
-
-Appends kMove_Verb to Verb_Array and (0, 0) to Point_Array, if needed;
-then appends kCubic_Verb to Verb_Array; and (x1, y1), (x2, y2), (x3, y3)
-to Point_Array.
-
-#Param x1 first control Point of Cubic in x ##
-#Param y1 first control Point of Cubic in y ##
-#Param x2 second control Point of Cubic in x ##
-#Param y2 second control Point of Cubic in y ##
-#Param x3 end Point of Cubic in x ##
-#Param y3 end Point of Cubic in y ##
-
-#Return reference to Path ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -2730,19 +2302,7 @@
#In Build
#In Cubic
-Adds Cubic from Last_Point towards Point p1, then towards Point p2, ending at
-Point p3. If Path is empty, or last Verb is kClose_Verb, Last_Point is set to
-(0, 0) before adding Cubic.
-
-Appends kMove_Verb to Verb_Array and (0, 0) to Point_Array, if needed;
-then appends kCubic_Verb to Verb_Array; and Points p1, p2, p3
-to Point_Array.
-
-#Param p1 first control Point of Cubic ##
-#Param p2 second control Point of Cubic ##
-#Param p3 end Point of Cubic ##
-
-#Return reference to Path ##
+#Populate
#Example
#Height 84
@@ -2767,27 +2327,7 @@
#In Build
#In Cubic
#Line # appends Cubic relative to Last_Point ##
-
- Adds Cubic from Last_Point towards Vector (dx1, dy1), then towards
- Vector (dx2, dy2), to Vector (dx3, dy3).
- If Path is empty, or last Verb
- is kClose_Verb, Last_Point is set to (0, 0) before adding Cubic.
-
- Appends kMove_Verb to Verb_Array and (0, 0) to Point_Array,
- if needed; then appends kCubic_Verb to Verb_Array; and appends Cubic
- control and Cubic end to Point_Array.
- Cubic control is Last_Point plus Vector (dx1, dy1).
- Cubic end is Last_Point plus Vector (dx2, dy2).
- Function name stands for "relative cubic to".
-
- #Param dx1 offset from Last_Point to first Cubic control on x-axis ##
- #Param dy1 offset from Last_Point to first Cubic control on y-axis ##
- #Param dx2 offset from Last_Point to second Cubic control on x-axis ##
- #Param dy2 offset from Last_Point to second Cubic control on y-axis ##
- #Param dx3 offset from Last_Point to Cubic end on x-axis ##
- #Param dy3 offset from Last_Point to Cubic end on y-axis ##
-
- #Return reference to Path ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -2914,21 +2454,7 @@
#In Build
#In Arc
#Line # appends Arc ##
-Appends Arc to Path. Arc added is part of ellipse
-bounded by oval, from startAngle through sweepAngle. Both startAngle and
-sweepAngle are measured in degrees, where zero degrees is aligned with the
-positive x-axis, and positive sweeps extends Arc clockwise.
-
-arcTo adds Line connecting Path last Point to initial Arc Point if forceMoveTo
-is false and Path is not empty. Otherwise, added Contour begins with first point
-of Arc. Angles greater than -360 and less than 360 are treated modulo 360.
-
-#Param oval bounds of ellipse containing Arc ##
-#Param startAngle starting angle of Arc in degrees ##
-#Param sweepAngle sweep, in degrees. Positive is clockwise; treated modulo 360 ##
-#Param forceMoveTo true to start a new contour with Arc ##
-
-#Return reference to Path ##
+#Populate
#Example
#Height 200
@@ -2963,12 +2489,7 @@
#Method SkPath& arcTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2, SkScalar radius)
#In Build
#In Arc
-Appends Arc to Path, after appending Line if needed. Arc is implemented by Conic
-weighted to describe part of Circle. Arc is contained by tangent from
-last Path point (x0, y0) to (x1, y1), and tangent from (x1, y1) to (x2, y2). Arc
-is part of Circle sized to radius, positioned so it touches both tangent lines.
-
-#ToDo allow example to hide source and not be exposed as fiddle ##
+#Populate
#Example
#Height 226
@@ -3008,9 +2529,6 @@
}
##
-If last Path Point does not start Arc, arcTo appends connecting Line to Path.
-The length of Vector from (x1, y1) to (x2, y2) does not affect Arc.
-
#Example
#Height 128
void draw(SkCanvas* canvas) {
@@ -3048,20 +2566,6 @@
}
##
-Arc sweep is always less than 180 degrees. If radius is zero, or if
-tangents are nearly parallel, arcTo appends Line from last Path Point to (x1, y1).
-
-arcTo appends at most one Line and one Conic.
-arcTo implements the functionality of PostScript_Arct and HTML_Canvas_ArcTo.
-
-#Param x1 x-axis value common to pair of tangents ##
-#Param y1 y-axis value common to pair of tangents ##
-#Param x2 x-axis value end of second tangent ##
-#Param y2 y-axis value end of second tangent ##
-#Param radius distance from Arc to Circle center ##
-
-#Return reference to Path ##
-
#Example
#Description
arcTo is represented by Line and circular Conic in Path.
@@ -3106,25 +2610,7 @@
#Method SkPath& arcTo(const SkPoint p1, const SkPoint p2, SkScalar radius)
#In Build
#In Arc
-Appends Arc to Path, after appending Line if needed. Arc is implemented by Conic
-weighted to describe part of Circle. Arc is contained by tangent from
-last Path point to p1, and tangent from p1 to p2. Arc
-is part of Circle sized to radius, positioned so it touches both tangent lines.
-
-If last Path Point does not start Arc, arcTo appends connecting Line to Path.
-The length of Vector from p1 to p2 does not affect Arc.
-
-Arc sweep is always less than 180 degrees. If radius is zero, or if
-tangents are nearly parallel, arcTo appends Line from last Path Point to p1.
-
-arcTo appends at most one Line and one Conic.
-arcTo implements the functionality of PostScript_Arct and HTML_Canvas_ArcTo.
-
-#Param p1 Point common to pair of tangents ##
-#Param p2 end of second tangent ##
-#Param radius distance from Arc to Circle center ##
-
-#Return reference to Path ##
+#Populate
#Example
#Description
@@ -3223,31 +2709,7 @@
Direction sweep, SkScalar x, SkScalar y)
#In Build
#In Arc
-
-Appends Arc to Path. Arc is implemented by one or more Conics weighted to
-describe part of Oval with radii (rx, ry) rotated by xAxisRotate degrees. Arc
-curves from last Path Point to (x, y), choosing one of four possible routes:
-clockwise or counterclockwise, and smaller or larger.
-
-Arc sweep is always less than 360 degrees. arcTo appends Line to (x, y) if
-either radii are zero, or if last Path Point equals (x, y). arcTo scales radii
-(rx, ry) to fit last Path Point and (x, y) if both are greater than zero but
-too small.
-
-arcTo appends up to four Conic curves.
-arcTo implements the functionality of SVG_Arc, although SVG "sweep-flag" value
-is opposite the integer value of sweep; SVG "sweep-flag" uses 1 for clockwise,
-while kCW_Direction cast to int is zero.
-
-#Param rx radius in x before x-axis rotation ##
-#Param ry radius in y before x-axis rotation ##
-#Param xAxisRotate x-axis rotation in degrees; positive values are clockwise ##
-#Param largeArc chooses smaller or larger Arc ##
-#Param sweep chooses clockwise or counterclockwise Arc ##
-#Param x end of Arc ##
-#Param y end of Arc ##
-
-#Return reference to Path ##
+#Populate
#Example
#Height 160
@@ -3280,30 +2742,7 @@
const SkPoint xy)
#In Build
#In Arc
-
-Appends Arc to Path. Arc is implemented by one or more Conic weighted to describe
-part of Oval with radii (r.fX, r.fY) rotated by xAxisRotate degrees. Arc curves
-from last Path Point to (xy.fX, xy.fY), choosing one of four possible routes:
-clockwise or counterclockwise,
-and smaller or larger.
-
-Arc sweep is always less than 360 degrees. arcTo appends Line to xy if either
-radii are zero, or if last Path Point equals (x, y). arcTo scales radii r to fit
-last Path Point and xy if both are greater than zero but too small to describe
-an arc.
-
-arcTo appends up to four Conic curves.
-arcTo implements the functionality of SVG_Arc, although SVG "sweep-flag" value is
-opposite the integer value of sweep; SVG "sweep-flag" uses 1 for clockwise, while
-kCW_Direction cast to int is zero.
-
-#Param r radii on axes before x-axis rotation ##
-#Param xAxisRotate x-axis rotation in degrees; positive values are clockwise ##
-#Param largeArc chooses smaller or larger Arc ##
-#Param sweep chooses clockwise or counterclockwise Arc ##
-#Param xy end of Arc ##
-
-#Return reference to Path ##
+#Populate
#Example
#Height 108
@@ -3383,15 +2822,7 @@
#Method SkPath& close()
#In Build
#Line # makes last Contour a loop ##
-Appends kClose_Verb to Path. A closed Contour connects the first and last Point
-with Line, forming a continuous loop. Open and closed Contour draw the same
-with SkPaint::kFill_Style. With SkPaint::kStroke_Style, open Contour draws
-Paint_Stroke_Cap at Contour start and end; closed Contour draws
-Paint_Stroke_Join at Contour start and end.
-
-close() has no effect if Path is empty or last Path Verb is kClose_Verb.
-
-#Return reference to Path ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -3611,18 +3042,7 @@
#Method bool isRect(SkRect* rect, bool* isClosed = nullptr, Direction* direction = nullptr) const
#In Property
#Line # returns if describes Rect ##
-Returns true if Path is equivalent to Rect when filled.
-If false: rect, isClosed, and direction are unchanged.
-If true: rect, isClosed, and direction are written to if not nullptr.
-
-rect may be smaller than the Path bounds. Path bounds may include kMove_Verb points
-that do not alter the area drawn by the returned rect.
-
-#Param rect storage for bounds of Rect; may be nullptr ##
-#Param isClosed storage set to true if Path is closed; may be nullptr ##
-#Param direction storage set to Rect direction; may be nullptr ##
-
-#Return true if Path contains Rect ##
+#Populate
#Example
#Description
@@ -3672,17 +3092,7 @@
#Method bool isNestedFillRects(SkRect rect[2], Direction dirs[2] = nullptr) const
#In Property
#Line # returns if describes Rect pair, one inside the other ##
-Returns true if Path is equivalent to nested Rect pair when filled.
-If false, rect and dirs are unchanged.
-If true, rect and dirs are written to if not nullptr:
-setting rect[0] to outer Rect, and rect[1] to inner Rect;
-setting dirs[0] to Direction of outer Rect, and dirs[1] to Direction of inner
-Rect.
-
-#Param rect storage for Rect pair; may be nullptr ##
-#Param dirs storage for Direction pair; may be nullptr ##
-
-#Return true if Path contains nested Rect pair ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -3719,15 +3129,7 @@
#Method SkPath& addRect(const SkRect& rect, Direction dir = kCW_Direction)
#In Build
#Line # adds one Contour containing Rect ##
-Adds Rect to Path, appending kMove_Verb, three kLine_Verb, and kClose_Verb,
-starting with top-left corner of Rect; followed by top-right, bottom-right,
-and bottom-left if dir is kCW_Direction; or followed by bottom-left,
-bottom-right, and top-right if dir is kCCW_Direction.
-
-#Param rect Rect to add as a closed contour ##
-#Param dir Direction to wind added contour ##
-
-#Return reference to Path ##
+#Populate
#Example
#Description
@@ -3818,20 +3220,7 @@
#Method SkPath& addRect(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom,
Direction dir = kCW_Direction)
-
-Adds Rect (left, top, right, bottom) to Path,
-appending kMove_Verb, three kLine_Verb, and kClose_Verb,
-starting with top-left corner of Rect; followed by top-right, bottom-right,
-and bottom-left if dir is kCW_Direction; or followed by bottom-left,
-bottom-right, and top-right if dir is kCCW_Direction.
-
-#Param left smaller x-axis value of Rect ##
-#Param top smaller y-axis value of Rect ##
-#Param right larger x-axis value of Rect ##
-#Param bottom larger y-axis value of Rect ##
-#Param dir Direction to wind added contour ##
-
-#Return reference to Path ##
+#Populate
#Example
#Description
@@ -3864,15 +3253,7 @@
#Method SkPath& addOval(const SkRect& oval, Direction dir = kCW_Direction)
#In Build
#Line # adds one Contour containing Oval ##
-Adds Oval to path, appending kMove_Verb, four kConic_Verb, and kClose_Verb.
-Oval is upright ellipse bounded by Rect oval with radii equal to half oval width
-and half oval height. Oval begins at (oval.fRight, oval.centerY()) and continues
-clockwise if dir is kCW_Direction, counterclockwise if dir is kCCW_Direction.
-
-#Param oval bounds of ellipse added ##
-#Param dir Direction to wind ellipse ##
-
-#Return reference to Path ##
+#Populate
#Example
#Height 120
@@ -3988,20 +3369,7 @@
#Method SkPath& addArc(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle)
#In Build
#Line # adds one Contour containing Arc ##
-Appends Arc to Path, as the start of new Contour. Arc added is part of ellipse
-bounded by oval, from startAngle through sweepAngle. Both startAngle and
-sweepAngle are measured in degrees, where zero degrees is aligned with the
-positive x-axis, and positive sweeps extends Arc clockwise.
-
-If sweepAngle <= -360, or sweepAngle >= 360; and startAngle modulo 90 is nearly
-zero, append Oval instead of Arc. Otherwise, sweepAngle values are treated
-modulo 360, and Arc may or may not draw depending on numeric rounding.
-
-#Param oval bounds of ellipse containing Arc ##
-#Param startAngle starting angle of Arc in degrees ##
-#Param sweepAngle sweep, in degrees. Positive is clockwise; treated modulo 360 ##
-
-#Return reference to Path ##
+#Populate
#Example
#Description
@@ -4033,25 +3401,7 @@
Direction dir = kCW_Direction)
#In Build
#Line # adds one Contour containing Round_Rect with common corner radii ##
-
-Appends Round_Rect to Path, creating a new closed Contour. Round_Rect has bounds
-equal to rect; each corner is 90 degrees of an ellipse with radii (rx, ry). If
-dir is kCW_Direction, Round_Rect starts at top-left of the lower-left corner and
-winds clockwise. If dir is kCCW_Direction, Round_Rect starts at the bottom-left
-of the upper-left corner and winds counterclockwise.
-
-If either rx or ry is too large, rx and ry are scaled uniformly until the
-corners fit. If rx or ry is less than or equal to zero, addRoundRect appends
-Rect rect to Path.
-
-After appending, Path may be empty, or may contain: Rect, Oval, or RoundRect.
-
-#Param rect bounds of Round_Rect ##
-#Param rx x-axis radius of rounded corners on the Round_Rect ##
-#Param ry y-axis radius of rounded corners on the Round_Rect ##
-#Param dir Direction to wind Round_Rect ##
-
-#Return reference to Path ##
+#Populate
#Example
#Description
@@ -4146,17 +3496,7 @@
#Method SkPath& addRRect(const SkRRect& rrect, Direction dir = kCW_Direction)
#In Build
#Line # adds one Contour containing Round_Rect ##
-Adds rrect to Path, creating a new closed Contour. If
-dir is kCW_Direction, rrect starts at top-left of the lower-left corner and
-winds clockwise. If dir is kCCW_Direction, rrect starts at the bottom-left
-of the upper-left corner and winds counterclockwise.
-
-After appending, Path may be empty, or may contain: Rect, Oval, or Round_Rect.
-
-#Param rrect bounds and radii of rounded rectangle ##
-#Param dir Direction to wind Round_Rect ##
-
-#Return reference to Path ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -4244,19 +3584,7 @@
#Method SkPath& addPoly(const SkPoint pts[], int count, bool close)
#In Build
#Line # adds one Contour containing connected lines ##
-Adds Contour created from Line array, adding (count - 1) Line segments.
-Contour added starts at pts[0], then adds a line for every additional Point
-in pts array. If close is true, appends kClose_Verb to Path, connecting
-pts[count - 1] and pts[0].
-
-If count is zero, append kMove_Verb to path.
-Has no effect if count is less than one.
-
-#Param pts array of Line sharing end and start Point ##
-#Param count length of Point array ##
-#Param close true to add Line connecting Contour end and start ##
-
-#Return reference to Path ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -4283,17 +3611,7 @@
##
#Method SkPath& addPoly(const std::initializer_list<SkPoint>& list, bool close)
-
-Adds Contour created from list. Contour added starts at list[0], then adds a line
-for every additional Point in list. If close is true, appends kClose_Verb to Path,
-connecting last and first Point in list.
-
-If list is empty, append kMove_Verb to path.
-
-#Param list array of Points ##
-#Param close true to add Line connecting Contour end and start ##
-
-#Return reference to Path ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -4384,19 +3702,7 @@
AddPathMode mode = kAppend_AddPathMode)
#In Build
#Line # adds contents of Path ##
-
-Appends src to Path, offset by (dx, dy).
-
-If mode is kAppend_AddPathMode, src Verb_Array, Point_Array, and Conic_Weights are
-added unaltered. If mode is kExtend_AddPathMode, add Line before appending
-Verbs, Points, and Conic_Weights.
-
-#Param src Path Verbs, Points, and Conic_Weights to add ##
-#Param dx offset added to src Point_Array x-axis coordinates ##
-#Param dy offset added to src Point_Array y-axis coordinates ##
-#Param mode kAppend_AddPathMode or kExtend_AddPathMode ##
-
-#Return reference to Path ##
+#Populate
#Example
#Height 180
@@ -4421,17 +3727,7 @@
# ------------------------------------------------------------------------------
#Method SkPath& addPath(const SkPath& src, AddPathMode mode = kAppend_AddPathMode)
-
-Appends src to Path.
-
-If mode is kAppend_AddPathMode, src Verb_Array, Point_Array, and Conic_Weights are
-added unaltered. If mode is kExtend_AddPathMode, add Line before appending
-Verbs, Points, and Conic_Weights.
-
-#Param src Path Verbs, Points, and Conic_Weights to add ##
-#Param mode kAppend_AddPathMode or kExtend_AddPathMode ##
-
-#Return reference to Path ##
+#Populate
#Example
#Height 80
@@ -4453,19 +3749,7 @@
# ------------------------------------------------------------------------------
#Method SkPath& addPath(const SkPath& src, const SkMatrix& matrix, AddPathMode mode = kAppend_AddPathMode)
-
-Appends src to Path, transformed by matrix. Transformed curves may have different
-Verbs, Points, and Conic_Weights.
-
-If mode is kAppend_AddPathMode, src Verb_Array, Point_Array, and Conic_Weights are
-added unaltered. If mode is kExtend_AddPathMode, add Line before appending
-Verbs, Points, and Conic_Weights.
-
-#Param src Path Verbs, Points, and Conic_Weights to add ##
-#Param matrix transform applied to src ##
-#Param mode kAppend_AddPathMode or kExtend_AddPathMode ##
-
-#Return reference to Path ##
+#Populate
#Example
#Height 160
@@ -4491,12 +3775,7 @@
#Method SkPath& reverseAddPath(const SkPath& src)
#In Build
#Line # adds contents of Path back to front ##
-Appends src to Path, from back to front.
-Reversed src always appends a new Contour to Path.
-
-#Param src Path Verbs, Points, and Conic_Weights to add ##
-
-#Return reference to Path ##
+#Populate
#Example
#Height 200
@@ -4532,12 +3811,7 @@
#Method void offset(SkScalar dx, SkScalar dy, SkPath* dst) const
#In Transform
#Line # translates Point_Array ##
-Offsets Point_Array by (dx, dy). Offset Path replaces dst.
-If dst is nullptr, Path is replaced by offset data.
-
-#Param dx offset added to Point_Array x-axis coordinates ##
-#Param dy offset added to Point_Array y-axis coordinates ##
-#Param dst overwritten, translated copy of Path; may be nullptr ##
+#Populate
#Example
#Height 60
@@ -4565,10 +3839,7 @@
#Method void offset(SkScalar dx, SkScalar dy)
#In Transform
-Offsets Point_Array by (dx, dy). Path is replaced by offset data.
-
-#Param dx offset added to Point_Array x-axis coordinates ##
-#Param dy offset added to Point_Array y-axis coordinates ##
+#Populate
#Example
#Height 60
@@ -4593,13 +3864,7 @@
#Method void transform(const SkMatrix& matrix, SkPath* dst) const
#In Transform
#Line # applies Matrix to Point_Array and Weights ##
-Transforms Verb_Array, Point_Array, and weight by matrix.
-transform may change Verbs and increase their number.
-Transformed Path replaces dst; if dst is nullptr, original data
-is replaced.
-
-#Param matrix Matrix to apply to Path ##
-#Param dst overwritten, transformed copy of Path; may be nullptr ##
+#Populate
#Example
#Height 200
@@ -4625,12 +3890,7 @@
# ------------------------------------------------------------------------------
#Method void transform(const SkMatrix& matrix)
-
-Transforms Verb_Array, Point_Array, and weight by matrix.
-transform may change Verbs and increase their number.
-Path is replaced by transformed data.
-
-#Param matrix Matrix to apply to Path ##
+#Populate
#Example
#Height 200
@@ -4664,14 +3924,9 @@
#In Property
#In Last_Point
#Line # returns Last_Point ##
- Returns Last_Point on Path in lastPt. Returns false if Point_Array is empty,
- storing (0, 0) if lastPt is not nullptr.
+#Populate
- #Param lastPt storage for final Point in Point_Array; may be nullptr ##
-
- #Return true if Point_Array contains one or more Points ##
-
- #Example
+#Example
SkPath path;
path.moveTo(100, 100);
path.quadTo(100, 20, 20, 100);
@@ -4694,13 +3949,9 @@
#In Utility
#In Last_Point
#Line # replaces Last_Point ##
- Sets Last_Point to (x, y). If Point_Array is empty, append kMove_Verb to
- Verb_Array and append (x, y) to Point_Array.
+#Populate
- #Param x set x-axis value of Last_Point ##
- #Param y set y-axis value of Last_Point ##
-
- #Example
+#Example
#Height 128
SkPaint paint;
paint.setTextSize(128);
@@ -4715,13 +3966,9 @@
##
#Method void setLastPt(const SkPoint& p)
+#Populate
- Sets the last point on the path. If Point_Array is empty, append kMove_Verb to
- Verb_Array and append p to Point_Array.
-
- #Param p set value of Last_Point ##
-
- #Example
+#Example
#Height 128
SkPaint paint;
paint.setTextSize(128);
@@ -4804,13 +4051,7 @@
#In Utility
#In Property
#Line # returns types in Verb_Array ##
-Returns a mask, where each set bit corresponds to a SegmentMask constant
-if Path contains one or more Verbs of that type.
-Returns zero if Path contains no Lines, or Curves: Quads, Conics, or Cubics.
-
-getSegmentMasks() returns a cached result; it is very fast.
-
-#Return SegmentMask bits or zero ##
+#Populate
#Example
SkPath path;
@@ -4885,14 +4126,7 @@
#Method void dump(SkWStream* stream, bool forceClose, bool dumpAsHex) const
#In Utility
#Line # sends text representation to stream ##
-Writes text representation of Path to stream. If stream is nullptr, writes to
-standard output. Set forceClose to true to get edges used to fill Path.
-Set dumpAsHex true to generate exact binary representations
-of floating point numbers used in Point_Array and Conic_Weights.
-
-#Param stream writable WStream receiving Path text representation; may be nullptr ##
-#Param forceClose true if missing kClose_Verb is output ##
-#Param dumpAsHex true if SkScalar values are written as hexadecimal ##
+#Populate
#Example
SkPath path;
@@ -4933,11 +4167,7 @@
# ------------------------------------------------------------------------------
#Method void dump() const
-
-Writes text representation of Path to standard output. The representation may be
-directly compiled as C++ code. Floating point values are written
-with limited precision; it may not be possible to reconstruct original Path
-from output.
+#Populate
#Example
SkPath path, copy;
@@ -4998,18 +4228,7 @@
#Method size_t writeToMemory(void* buffer) const
#In Utility
#Line # copies data to buffer ##
-Writes Path to buffer, returning the number of bytes written.
-Pass nullptr to obtain the storage size.
-
-Writes Fill_Type, Verb_Array, Point_Array, Conic_Weight, and
-additionally writes computed information like Convexity and bounds.
-
-Use only be used in concert with readFromMemory;
-the format used for Path in memory is not guaranteed.
-
-#Param buffer storage for Path; may be nullptr ##
-
-#Return size of storage required for Path; always a multiple of 4 ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -5034,15 +4253,7 @@
#Method sk_sp<SkData> serialize() const
#In Utility
#Line # copies data to buffer ##
-Writes Path to buffer, returning the buffer written to, wrapped in Data.
-
-serialize() writes Fill_Type, Verb_Array, Point_Array, Conic_Weight, and
-additionally writes computed information like Convexity and bounds.
-
-serialize() should only be used in concert with readFromMemory.
-The format used for Path in memory is not guaranteed.
-
-#Return Path data wrapped in Data buffer ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -5065,19 +4276,7 @@
#Method size_t readFromMemory(const void* buffer, size_t length)
#In Utility
#Line # initializes from buffer ##
-Initializes Path from buffer of size length. Returns zero if the buffer is
-data is inconsistent, or the length is too small.
-
-Reads Fill_Type, Verb_Array, Point_Array, Conic_Weight, and
-additionally reads computed information like Convexity and bounds.
-
-Used only in concert with writeToMemory;
-the format used for Path in memory is not guaranteed.
-
-#Param buffer storage for Path ##
-#Param length buffer size in bytes; must be multiple of 4 ##
-
-#Return number of bytes read, or zero on failure ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -5118,17 +4317,7 @@
#In Generation_ID
#Line # returns unique ID ##
-Returns a non-zero, globally unique value. A different value is returned
-if Verb_Array, Point_Array, or Conic_Weight changes.
-
-Setting Fill_Type does not change Generation_ID.
-
-Each time the path is modified, a different Generation_ID will be returned.
-
-#Bug 1762
-Fill_Type does affect Generation_ID on Android framework.
-
-#Return non-zero, globally unique value ##
+#Populate
#Example
SkPath path;
@@ -5159,13 +4348,9 @@
#In Property
#In Utility
#Line # returns if data is internally consistent ##
- Returns if Path data is consistent. Corrupt Path data is detected if
- internal values are out of range or internal storage does not match
- array dimensions.
+#Populate
- #Return true if Path data is consistent ##
-
- #NoExample
+#NoExample
##
##
@@ -5216,10 +4401,7 @@
#Method Iter()
#Line # constructs Path iterator ##
-Initializes Iter with an empty Path. next() on Iter returns kDone_Verb.
-Call setPath to initialize Iter at a later time.
-
-#Return Iter of empty Path ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -5242,15 +4424,7 @@
#Method Iter(const SkPath& path, bool forceClose)
#Line # constructs Path iterator ##
-
-Sets Iter to return elements of Verb_Array, Point_Array, and Conic_Weight in path.
-If forceClose is true, Iter will add kLine_Verb and kClose_Verb after each
-open Contour. path is not altered.
-
-#Param path Path to iterate ##
-#Param forceClose true if open Contours generate kClose_Verb ##
-
-#Return Iter of path ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -5302,12 +4476,7 @@
#Method void setPath(const SkPath& path, bool forceClose)
#Line # resets Iter to Path ##
-Sets Iter to return elements of Verb_Array, Point_Array, and Conic_Weight in path.
-If forceClose is true, Iter will add kLine_Verb and kClose_Verb after each
-open Contour. path is not altered.
-
-#Param path Path to iterate ##
-#Param forceClose true if open Contours generate kClose_Verb ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -5361,23 +4530,7 @@
#Method Verb next(SkPoint pts[4], bool doConsumeDegenerates = true, bool exact = false)
#Line # returns next Verb ##
-
-Returns next Verb in Verb_Array, and advances Iter.
-When Verb_Array is exhausted, returns kDone_Verb.
-
-Zero to four Points are stored in pts, depending on the returned Verb.
-
-If doConsumeDegenerates is true, skip consecutive kMove_Verb entries, returning
-only the last in the series; and skip very small Lines, Quads, and Conics; and
-skip kClose_Verb following kMove_Verb.
-if doConsumeDegenerates is true and exact is true, only skip Lines, Quads, and
-Conics with zero lengths.
-
- #Param pts storage for Point data describing returned Verb ##
- #Param doConsumeDegenerates if true, skip degenerate Verbs ##
- #Param exact skip zero length curves ##
-
- #Return next Verb from Verb_Array ##
+#Populate
#Example
#Description
@@ -5455,14 +4608,9 @@
#Method SkScalar conicWeight() const
#Line # returns Conic_Weight ##
- Returns Conic_Weight if next() returned kConic_Verb.
+#Populate
- If next() has not been called, or next() did not return kConic_Verb,
- result is undefined.
-
- #Return Conic_Weight for Conic Points returned by next() ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPath path;
path.conicTo(1, 2, 3, 4, .5f);
@@ -5488,16 +4636,9 @@
#Method bool isCloseLine() const
#Line # returns if Line was generated by kClose_Verb ##
- Returns true if last kLine_Verb returned by next() was generated
- by kClose_Verb. When true, the end point returned by next() is
- also the start point of Contour.
+#Populate
- If next() has not been called, or next() did not return kLine_Verb,
- result is undefined.
-
- #Return true if last kLine_Verb was generated by kClose_Verb ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPath path;
path.moveTo(6, 7);
@@ -5529,11 +4670,7 @@
#Method bool isClosedContour() const
#Line # returns if Contour has kClose_Verb ##
-Returns true if subsequent calls to next() return kClose_Verb before returning
-kMove_Verb. if true, Contour Iter is processing may end with kClose_Verb, or
-Iter may have been initialized with force close set to true.
-
-#Return true if Contour is closed ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -5576,52 +4713,33 @@
#Method RawIter()
#Line # constructs empty Path iterator ##
+#Populate
- Initializes RawIter with an empty Path. next() on RawIter returns kDone_Verb.
- Call setPath to initialize SkPath::Iter at a later time.
-
- #Return RawIter of empty Path ##
-
- #NoExample
+#NoExample
##
##
#Method RawIter(const SkPath& path)
#Line # constructs with Path to iterate over ##
+#Populate
-
- Sets RawIter to return elements of Verb_Array, Point_Array, and Conic_Weight in path.
-
- #Param path Path to iterate ##
-
- #Return RawIter of path ##
-
- #NoExample
+#NoExample
##
##
#Method void setPath(const SkPath& path)
#Line # sets Path to iterate over ##
+#Populate
- Sets SkPath::Iter to return elements of Verb_Array, Point_Array, and Conic_Weight in path.
-
- #Param path Path to iterate ##
-
- #NoExample
+#NoExample
##
##
#Method Verb next(SkPoint pts[4])
#Line # returns next Verb and associated Points ##
- Returns next Verb in Verb_Array, and advances RawIter.
- When Verb_Array is exhausted, returns kDone_Verb.
- Zero to four Points are stored in pts, depending on the returned Verb.
+#Populate
- #Param pts storage for Point data describing returned Verb ##
-
- #Return next Verb from Verb_Array ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPath path;
path.moveTo(50, 60);
@@ -5665,9 +4783,7 @@
#Method Verb peek() const
#Line # returns next Verb ##
- Returns next Verb, but does not advance RawIter.
-
- #Return next Verb from Verb_Array ##
+ #Populate
#Example
SkPath path;
@@ -5696,10 +4812,10 @@
##
#Bug 6832
- StdOut is not really volatile, it just produces the wrong result.
- A simple fix changes the output of hairlines and needs to be
- investigated to see if the change is correct or not.
- see change 21340 (abandoned for now)
+ # StdOut is not really volatile, it just produces the wrong result.
+ # A simple fix changes the output of hairlines and needs to be
+ # investigated to see if the change is correct or not.
+ # see change 21340 (abandoned for now)
#SeeAlso next
@@ -5707,15 +4823,9 @@
#Method SkScalar conicWeight() const
#Line # returns Conic_Weight ##
+#Populate
- Returns Conic_Weight if next() returned kConic_Verb.
-
- If next() has not been called, or next() did not return kConic_Verb,
- result is undefined.
-
- #Return Conic_Weight for Conic Points returned by next() ##
-
- #Example
+#Example
void draw(SkCanvas* canvas) {
SkPath path;
path.conicTo(1, 2, 3, 4, .5f);
@@ -5744,4 +4854,3 @@
#Class SkPath ##
#Topic Path ##
-
diff --git a/docs/SkPicture_Reference.bmh b/docs/SkPicture_Reference.bmh
index 18d35f2..16c8926 100644
--- a/docs/SkPicture_Reference.bmh
+++ b/docs/SkPicture_Reference.bmh
@@ -44,9 +44,7 @@
#Method AbortCallback()
#In Constructors
#Line # defines default constructor ##
-Has no effect.
-
-#Return abstract class cannot be instantiated ##
+#Populate
#NoExample
##
@@ -60,7 +58,7 @@
#Method virtual ~AbortCallback()
#In Constructors
#Line # defines default destructor ##
-Has no effect.
+#Populate
#NoExample
##
@@ -74,18 +72,7 @@
#Method virtual bool abort() = 0
#In Utility
#Line # aborts playback by callback ##
-
-Stops Picture playback when some condition is met. A subclass of
-AbortCallback provides an override for abort() that can stop SkPicture::playback.
-
-The part of Picture drawn when aborted is undefined. Picture instantiations are
-free to stop drawing at different points during playback.
-
-If the abort happens inside one or more calls to SkCanvas::save(), stack
-of Canvas_Matrix and Canvas_Clip values is restored to its state before
-SkPicture::playback was called.
-
-#Return true to stop playback ##
+#Populate
#NoExample
##
@@ -130,33 +117,20 @@
const SkDeserialProcs* procs = nullptr)
#In Constructors
#Line # constructs Picture from stream ##
-
-Recreates Picture that was serialized into a stream. Returns constructed Picture
-if successful; otherwise, returns nullptr. Fails if data does not permit
-constructing valid Picture.
-
-procs.fPictureProc permits supplying a custom function to decode Picture.
-If procs.fPictureProc is nullptr, default decoding is used. procs.fPictureCtx
-may be used to provide user context to procs.fPictureProc; procs.fPictureProc
-is called with a pointer to data, data byte length, and user context.
-
-#Param stream container for serial data ##
-#Param procs custom serial data decoders; may be nullptr ##
-
-#Return Picture constructed from stream data ##
+#Populate
#Example
- SkPictureRecorder recorder;
- SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
- SkPaint paint;
- pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
- paint.setColor(SK_ColorWHITE);
- pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
- sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
- SkDynamicMemoryWStream writableStream;
- picture->serialize(&writableStream);
- std::unique_ptr<SkStreamAsset> readableStream = writableStream.detachAsStream();
- sk_sp<SkPicture> copy = SkPicture::MakeFromStream(readableStream.get());
+ SkPictureRecorder recorder;
+ SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
+ SkPaint paint;
+ pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
+ paint.setColor(SK_ColorWHITE);
+ pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
+ sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
+ SkDynamicMemoryWStream writableStream;
+ picture->serialize(&writableStream);
+ std::unique_ptr<SkStreamAsset> readableStream = writableStream.detachAsStream();
+ sk_sp<SkPicture> copy = SkPicture::MakeFromStream(readableStream.get());
copy->playback(canvas);
##
@@ -170,33 +144,20 @@
const SkDeserialProcs* procs = nullptr)
#In Constructors
#Line # constructs Picture from data ##
-
-Recreates Picture that was serialized into data. Returns constructed Picture
-if successful; otherwise, returns nullptr. Fails if data does not permit
-constructing valid Picture.
-
-procs.fPictureProc permits supplying a custom function to decode Picture.
-If procs.fPictureProc is nullptr, default decoding is used. procs.fPictureCtx
-may be used to provide user context to procs.fPictureProc; procs.fPictureProc
-is called with a pointer to data, data byte length, and user context.
-
-#Param data container for serial data ##
-#Param procs custom serial data decoders; may be nullptr ##
-
-#Return Picture constructed from data ##
+#Populate
#Example
- SkPictureRecorder recorder;
- SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
- SkPaint paint;
- pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
- paint.setColor(SK_ColorWHITE);
- pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
- sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
- SkDynamicMemoryWStream writableStream;
- picture->serialize(&writableStream);
- sk_sp<SkData> readableData = writableStream.detachAsData();
- sk_sp<SkPicture> copy = SkPicture::MakeFromData(readableData.get());
+ SkPictureRecorder recorder;
+ SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
+ SkPaint paint;
+ pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
+ paint.setColor(SK_ColorWHITE);
+ pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
+ sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
+ SkDynamicMemoryWStream writableStream;
+ picture->serialize(&writableStream);
+ sk_sp<SkData> readableData = writableStream.detachAsData();
+ sk_sp<SkPicture> copy = SkPicture::MakeFromData(readableData.get());
copy->playback(canvas);
##
@@ -208,34 +169,20 @@
#Method static sk_sp<SkPicture> MakeFromData(const void* data, size_t size,
const SkDeserialProcs* procs = nullptr)
-
-#Param data pointer to serial data ##
-#Param size size of data ##
-#Param procs custom serial data decoders; may be nullptr ##
-
-Recreates Picture that was serialized into data. Returns constructed Picture
-if successful; otherwise, returns nullptr. Fails if size is smaller than
-required data length, or if data does not permit constructing valid Picture.
-
-procs.fPictureProc permits supplying a custom function to decode Picture.
-If procs.fPictureProc is nullptr, default decoding is used. procs.fPictureCtx
-may be used to provide user context to procs.fPictureProc; procs.fPictureProc
-is called with a pointer to data, data byte length, and user context.
-
-#Return Picture constructed from data ##
+#Populate
#Example
- SkPictureRecorder recorder;
- SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
- SkPaint paint;
- pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
- paint.setColor(SK_ColorWHITE);
- pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
- sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
- SkDynamicMemoryWStream writableStream;
- picture->serialize(&writableStream);
- sk_sp<SkData> readableData = writableStream.detachAsData();
- sk_sp<SkPicture> copy = SkPicture::MakeFromData(readableData->data(), readableData->size());
+ SkPictureRecorder recorder;
+ SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
+ SkPaint paint;
+ pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
+ paint.setColor(SK_ColorWHITE);
+ pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
+ sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
+ SkDynamicMemoryWStream writableStream;
+ picture->serialize(&writableStream);
+ sk_sp<SkData> readableData = writableStream.detachAsData();
+ sk_sp<SkPicture> copy = SkPicture::MakeFromData(readableData->data(), readableData->size());
copy->playback(canvas);
##
@@ -248,24 +195,16 @@
#Method virtual void playback(SkCanvas* canvas, AbortCallback* callback = nullptr) const = 0
#In Action
#Line # replays drawing commands on canvas ##
-
-Replays the drawing commands on the specified canvas. In the case that the
-commands are recorded, each command in the Picture is sent separately to canvas.
-
-To add a single command to draw Picture to recording canvas, call
-SkCanvas::drawPicture instead.
-
-#Param canvas receiver of drawing commands ##
-#Param callback allows interruption of playback ##
+#Populate
#Example
- SkPictureRecorder recorder;
- SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
- SkPaint paint;
- pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
- paint.setColor(SK_ColorWHITE);
- pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
- sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
+ SkPictureRecorder recorder;
+ SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
+ SkPaint paint;
+ pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
+ paint.setColor(SK_ColorWHITE);
+ pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
+ sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
picture->playback(canvas);
##
@@ -278,31 +217,23 @@
#Method virtual SkRect cullRect() const = 0
#In Property
#Line # returns bounds used to record Picture ##
-
-Returns cull Rect for this picture, passed in when Picture was created.
-Returned Rect does not specify clipping Rect for Picture; cull is hint
-of Picture bounds.
-
-Picture is free to discard recorded drawing commands that fall outside
-cull.
-
-#Return bounds passed when Picture was created ##
+#Populate
#Example
#Description
Picture recorded bounds are smaller than contents; contents outside recorded
bounds may be drawn, and are drawn in this example.
##
- SkPictureRecorder recorder;
- SkCanvas* pictureCanvas = recorder.beginRecording({64, 64, 192, 192});
- SkPaint paint;
- pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
- paint.setColor(SK_ColorWHITE);
- pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
- sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
- picture->playback(canvas);
- paint.setBlendMode(SkBlendMode::kModulate);
- paint.setColor(0x40404040);
+ SkPictureRecorder recorder;
+ SkCanvas* pictureCanvas = recorder.beginRecording({64, 64, 192, 192});
+ SkPaint paint;
+ pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
+ paint.setColor(SK_ColorWHITE);
+ pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
+ sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
+ picture->playback(canvas);
+ paint.setBlendMode(SkBlendMode::kModulate);
+ paint.setColor(0x40404040);
canvas->drawRect(picture->cullRect(), paint);
##
@@ -315,20 +246,17 @@
#Method uint32_t uniqueID() const
#In Property
#Line # returns identifier for Picture ##
-
-Returns a non-zero value unique among Pictures in Skia process.
-
-#Return identifier for Picture ##
+#Populate
#Example
- SkPictureRecorder recorder;
- recorder.beginRecording({0, 0, 0, 0});
- sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
- SkDebugf("empty picture id = %d\n", picture->uniqueID());
- sk_sp<SkPicture> placeholder = SkPicture::MakePlaceholder({0, 0, 0, 0});
+ SkPictureRecorder recorder;
+ recorder.beginRecording({0, 0, 0, 0});
+ sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
+ SkDebugf("empty picture id = %d\n", picture->uniqueID());
+ sk_sp<SkPicture> placeholder = SkPicture::MakePlaceholder({0, 0, 0, 0});
SkDebugf("placeholder id = %d\n", placeholder->uniqueID());
#StdOut
-empty picture id = 1
+empty picture id = 1
placeholder id = 2
##
##
@@ -342,28 +270,18 @@
#Method sk_sp<SkData> serialize(const SkSerialProcs* procs = nullptr) const
#In Utility
#Line # writes Picture to Data ##
-Returns storage containing Data describing Picture, using optional custom
-encoders.
-
-procs.fPictureProc permits supplying a custom function to encode Picture.
-If procs.fPictureProc is nullptr, default encoding is used. procs.fPictureCtx
-may be used to provide user context to procs.fPictureProc; procs.fPictureProc
-is called with a pointer to Picture and user context.
-
-#Param procs custom serial data encoders; may be nullptr ##
-
-#Return storage containing serialized Picture ##
+#Populate
#Example
- SkPictureRecorder recorder;
- SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
- SkPaint paint;
- pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
- paint.setColor(SK_ColorWHITE);
- pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
- sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
- sk_sp<SkData> readableData = picture->serialize();
- sk_sp<SkPicture> copy = SkPicture::MakeFromData(readableData->data(), readableData->size());
+ SkPictureRecorder recorder;
+ SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
+ SkPaint paint;
+ pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
+ paint.setColor(SK_ColorWHITE);
+ pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
+ sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
+ sk_sp<SkData> readableData = picture->serialize();
+ sk_sp<SkPicture> copy = SkPicture::MakeFromData(readableData->data(), readableData->size());
copy->playback(canvas);
##
@@ -374,28 +292,20 @@
# ------------------------------------------------------------------------------
#Method void serialize(SkWStream* stream, const SkSerialProcs* procs = nullptr) const
-Writes picture to stream, using optional custom encoders.
-
-procs.fPictureProc permits supplying a custom function to encode Picture.
-If procs.fPictureProc is nullptr, default encoding is used. procs.fPictureCtx
-may be used to provide user context to procs.fPictureProc; procs.fPictureProc
-is called with a pointer to Picture and user context.
-
-#Param stream writable serial data stream ##
-#Param procs custom serial data encoders; may be nullptr ##
+#Populate
#Example
- SkPictureRecorder recorder;
- SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
- SkPaint paint;
- pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
- paint.setColor(SK_ColorWHITE);
- pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
- sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
- SkDynamicMemoryWStream writableStream;
- picture->serialize(&writableStream);
- sk_sp<SkData> readableData = writableStream.detachAsData();
- sk_sp<SkPicture> copy = SkPicture::MakeFromData(readableData->data(), readableData->size());
+ SkPictureRecorder recorder;
+ SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
+ SkPaint paint;
+ pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
+ paint.setColor(SK_ColorWHITE);
+ pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
+ sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
+ SkDynamicMemoryWStream writableStream;
+ picture->serialize(&writableStream);
+ sk_sp<SkData> readableData = writableStream.detachAsData();
+ sk_sp<SkPicture> copy = SkPicture::MakeFromData(readableData->data(), readableData->size());
copy->playback(canvas);
##
@@ -408,42 +318,31 @@
#Method static sk_sp<SkPicture> MakePlaceholder(SkRect cull)
#In Constructors
#Line # constructs placeholder with unique identifier ##
-
-Returns a placeholder SkPicture. Result does not draw, and contains only
-cull Rect, a hint of its bounds. Result is immutable; it cannot be changed
-later. Result identifier is unique.
-
-Returned placeholder can be intercepted during playback to insert other
-commands into Canvas draw stream.
-
-#Param cull placeholder dimensions
-##
-
-#Return placeholder with unique identifier ##
+#Populate
#Example
#Function
class MyCanvas : public SkCanvas {
public:
MyCanvas(SkCanvas* c) : canvas(c) {}
- void onDrawPicture(const SkPicture* picture, const SkMatrix* ,
- const SkPaint* ) override {
+ void onDrawPicture(const SkPicture* picture, const SkMatrix* ,
+ const SkPaint* ) override {
const SkRect rect = picture->cullRect();
SkPaint redPaint;
redPaint.setColor(SK_ColorRED);
canvas->drawRect(rect, redPaint);
}
- SkCanvas* canvas;
+ SkCanvas* canvas;
};
##
-SkPictureRecorder recorder;
-SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
-sk_sp<SkPicture> placeholder = SkPicture::MakePlaceholder({10, 40, 80, 110});
-pictureCanvas->drawPicture(placeholder);
-sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
-MyCanvas myCanvas(canvas);
-myCanvas.drawPicture(picture);
+SkPictureRecorder recorder;
+SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
+sk_sp<SkPicture> placeholder = SkPicture::MakePlaceholder({10, 40, 80, 110});
+pictureCanvas->drawPicture(placeholder);
+sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
+MyCanvas myCanvas(canvas);
+myCanvas.drawPicture(picture);
##
#SeeAlso MakeFromStream MakeFromData uniqueID
@@ -455,22 +354,16 @@
#Method virtual int approximateOpCount() const = 0
#In Property
#Line # returns approximate operation count ##
-
-Returns the approximate number of operations in Picture. Returned value
-may be greater or less than the number of SkCanvas calls
-recorded: some calls may be recorded as more than one operation, other
-calls may be optimized away.
-
-#Return approximate operation count ##
+#Populate
#Example
- SkPictureRecorder recorder;
- SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
- SkPaint paint;
- pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
- paint.setColor(SK_ColorWHITE);
- pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
- sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
+ SkPictureRecorder recorder;
+ SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
+ SkPaint paint;
+ pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
+ paint.setColor(SK_ColorWHITE);
+ pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
+ sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
picture->playback(canvas);
std::string opCount = "approximate op count: " + std::to_string(picture->approximateOpCount());
canvas->drawString(opCount.c_str(), 50, 220, SkPaint());
@@ -485,20 +378,16 @@
#Method virtual size_t approximateBytesUsed() const = 0
#In Property
#Line # returns approximate size ##
-
-Returns the approximate byte size of Picture. Does not include large objects
-referenced by Picture.
-
-#Return approximate size ##
+#Populate
#Example
- SkPictureRecorder recorder;
- SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
- SkPaint paint;
- pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
- paint.setColor(SK_ColorWHITE);
- pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
- sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
+ SkPictureRecorder recorder;
+ SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
+ SkPaint paint;
+ pictureCanvas->drawRect(SkRect::MakeWH(200, 200), paint);
+ paint.setColor(SK_ColorWHITE);
+ pictureCanvas->drawRect(SkRect::MakeLTRB(20, 20, 180, 180), paint);
+ sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
picture->playback(canvas);
std::string opCount = "approximate bytes used: " + std::to_string(picture->approximateBytesUsed());
canvas->drawString(opCount.c_str(), 20, 220, SkPaint());
diff --git a/docs/SkPixmap_Reference.bmh b/docs/SkPixmap_Reference.bmh
index 9c36642..551b8e3 100644
--- a/docs/SkPixmap_Reference.bmh
+++ b/docs/SkPixmap_Reference.bmh
@@ -28,12 +28,7 @@
#In Initialization
#Line # constructs with default values ##
-Creates an empty Pixmap without pixels, with kUnknown_SkColorType, with
-kUnknown_SkAlphaType, and with a width and height of zero. Use
-reset() to associate pixels, SkColorType, SkAlphaType, width, and height
-after Pixmap has been created.
-
-#Return empty Pixmap ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -65,24 +60,7 @@
#In Initialization
#Line # constructs from Image_Info, pixels ##
-Creates Pixmap from info width, height, SkAlphaType, and SkColorType.
-addr points to pixels, or nullptr. rowBytes should be info.width() times
-info.bytesPerPixel(), or larger.
-
-No parameter checking is performed; it is up to the caller to ensure that
-addr and rowBytes agree with info.
-
-The memory lifetime of pixels is managed by the caller. When Pixmap goes
-out of scope, addr is unaffected.
-
-Pixmap may be later modified by reset() to change its size, pixel type, or
-storage.
-
-#Param info width, height, SkAlphaType, SkColorType of Image_Info ##
-#Param addr pointer to pixels allocated by caller; may be nullptr ##
-#Param rowBytes size of one row of addr; width times pixel size, or larger ##
-
-#Return initialized Pixmap ##
+#Populate
#Example
#Image 3
@@ -112,11 +90,7 @@
#In Initialization
#Line # reuses existing Pixmap with replacement values ##
-Sets width, height, row bytes to zero; pixel address to nullptr; SkColorType to
-kUnknown_SkColorType; and SkAlphaType to kUnknown_SkAlphaType.
-
-The prior pixels are unaffected; it is up to the caller to release pixels
-memory if desired.
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -147,20 +121,7 @@
#Method void reset(const SkImageInfo& info, const void* addr, size_t rowBytes)
#In Initialization
-Sets width, height, SkAlphaType, and SkColorType from info.
-Sets pixel address from addr, which may be nullptr.
-Sets row bytes from rowBytes, which should be info.width() times
-info.bytesPerPixel(), or larger.
-
-Does not check addr. Asserts if built with SK_DEBUG defined and if rowBytes is
-too small to hold one row of pixels.
-
-The memory lifetime pixels are managed by the caller. When Pixmap goes
-out of scope, addr is unaffected.
-
-#Param info width, height, SkAlphaType, SkColorType of Image_Info ##
-#Param addr pointer to pixels allocated by caller; may be nullptr ##
-#Param rowBytes size of one row of addr; width times pixel size, or larger ##
+#Populate
#Example
#Image 4
@@ -193,12 +154,7 @@
#In Initialization
#Line # sets Image_Info Color_Space ##
-
-Changes Color_Space in Image_Info; preserves width, height, SkAlphaType, and
-SkColorType in Image, and leaves pixel address and row bytes unchanged.
-Color_Space reference count is incremented.
-
-#Param colorSpace Color_Space moved to Image_Info ##
+#Populate
#Example
void draw(SkCanvas* canvas) {
@@ -231,16 +187,7 @@
#In Initialization
#Line # sets pointer to portion of original ##
-Sets subset width, height, pixel address to intersection of Pixmap with area,
-if intersection is not empty; and return true. Otherwise, leave subset unchanged
-and return false.
-
-Failing to read the return value generates a compile time warning.
-
-#Param subset storage for width, height, pixel address of intersection ##
-#Param area bounds to intersect with Pixmap ##
-
-#Return true if intersection of Pixmap and area is not empty ##
+#Populate
#Example
#Image 3
@@ -275,9 +222,7 @@
#In Image_Info_Access
#Line # returns Image_Info ##
-Returns width, height, Alpha_Type, Color_Type, and Color_Space.
-
-#Return reference to ImageInfo ##
+#Populate
#Example
#Image 3
@@ -341,11 +286,7 @@
#In Image_Info_Access
#Line # returns readable pixel address as void pointer ##
-Returns pixel address, the base address corresponding to the pixel origin.
-
-It is up to the Pixmap creator to ensure that pixel address is a useful value.
-
-#Return pixel address ##
+#Populate
#Example
#Image 3
@@ -401,9 +342,7 @@
#In Image_Info_Access
#Line # returns pixel row count ##
-Returns pixel row count.
-
-#Return pixel height in Image_Info ##
+#Populate
#Example
SkPixmap pixmap(SkImageInfo::MakeA8(16, 32), nullptr, 64);
@@ -470,11 +409,7 @@
#In Image_Info_Access
#Line # returns Image_Info Color_Space ##
-Returns Color_Space, the range of colors, associated with Image_Info. The
-reference count of Color_Space is unchanged. The returned Color_Space is
-immutable.
-
-#Return Color_Space in Image_Info, or nullptr ##
+#Populate
#Example
#Description
@@ -503,11 +438,7 @@
#In Image_Info_Access
#Line # returns true if Image_Info describes opaque pixels ##
-Returns true if Alpha_Type is kOpaque_SkAlphaType.
-Does not check if Color_Type allows Alpha, or if any pixel value has
-transparency.
-
-#Return true if Image_Info has opaque Alpha_Type ##
+#Populate
#Example
#Description
@@ -545,9 +476,7 @@
#In Image_Info_Access
#Line # returns width and height as Rectangle ##
-Returns IRect { 0, 0, width(), height() }.
-
-#Return integral rectangle from origin to width() and height() ##
+#Populate
#Example
for (int width : { 0, 2 } ) {
@@ -575,11 +504,7 @@
#In Image_Info_Access
#Line # returns interval between rows in pixels ##
-
-Returns number of pixels that fit on row. Should be greater than or equal to
-width().
-
-#Return maximum pixels per row ##
+#Populate
#Example
for (int rowBytes : { 4, 5, 6, 7, 8} ) {
@@ -605,10 +530,7 @@
#In Image_Info_Access
#Line # returns bit shift from pixels to bytes ##
-Returns bit shift converting row bytes to row pixels.
-Returns zero for kUnknown_SkColorType.
-
-#Return one of: 0, 1, 2, 3; left shift to convert pixels to bytes ##
+#Populate
#Example
const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
@@ -645,13 +567,7 @@
#In Image_Info_Access
#Line # returns size required for pixels ##
-Returns minimum memory required for pixel storage.
-Does not include unused memory on last row when rowBytesAsPixels exceeds width().
-Returns zero if result does not fit in size_t.
-Returns zero if height() or width() is 0.
-Returns height() times rowBytes if colorType is kUnknown_SkColorType.
-
-#Return size in bytes of image buffer ##
+#Populate
#Example
SkPixmap pixmap;
@@ -691,21 +607,7 @@
#In Reader
#Line # returns true if all pixels are opaque ##
-Returns true if all pixels are opaque. Color_Type determines how pixels
-are encoded, and whether pixel describes Alpha. Returns true for Color_Types
-without alpha in each pixel; for other Color_Types, returns true if all
-pixels have alpha values equivalent to 1.0 or greater.
-
-For Color_Types kRGB_565_SkColorType or kGray_8_SkColorType: always
-returns true. For Color_Types kAlpha_8_SkColorType, kBGRA_8888_SkColorType,
-kRGBA_8888_SkColorType: returns true if all pixel Alpha values are 255.
-For Color_Type kARGB_4444_SkColorType: returns true if all pixel Alpha values are 15.
-For kRGBA_F16_SkColorType: returns true if all pixel Alpha values are 1.0 or
-greater.
-
-Returns false for kUnknown_SkColorType.
-
-#Return true if all pixels have opaque values or Color_Type is opaque ##
+#Populate
#Example
std::vector<uint32_t> pixels;
@@ -740,22 +642,7 @@
#In Reader
#Line # returns one pixel as Unpremultiplied Color ##
-Returns pixel at (x, y) as Unpremultiplied Color.
-Returns black with Alpha if Color_Type is kAlpha_8_SkColorType.
-
-Input is not validated: out of bounds values of x or y trigger an assert() if
-built with SK_DEBUG defined; and returns undefined values or may crash if
-SK_RELEASE is defined. Fails if Color_Type is kUnknown_SkColorType or
-pixel address is nullptr.
-
-Color_Space in Image_Info is ignored. Some Color precision may be lost in the
-conversion to Unpremultiplied Color; original pixel data may have additional
-precision.
-
-#Param x column index, zero or greater, and less than width() ##
-#Param y row index, zero or greater, and less than height() ##
-
-#Return pixel converted to Unpremultiplied Color ##
+#Populate
#Example
const int w = 4;
@@ -827,18 +714,7 @@
#Method const void* addr(int x, int y) const
#In Readable_Address
-Returns readable pixel address at (x, y). Returns nullptr if Pixel_Ref is nullptr.
-
-Input is not validated: out of bounds values of x or y trigger an assert() if
-built with SK_DEBUG defined. Returns nullptr if Color_Type is kUnknown_SkColorType.
-
-Performs a lookup of pixel size; for better performance, call
-one of: addr8, addr16, addr32, addr64, or addrF16.
-
-#Param x column index, zero or greater, and less than width() ##
-#Param y row index, zero or greater, and less than height() ##
-
-#Return readable generic pointer to pixel ##
+#Populate
#Example
const int w = 4;
@@ -863,13 +739,7 @@
#In Readable_Address
#Line # returns readable pixel address as 8-bit pointer ##
-Returns readable base pixel address. Result is addressable as unsigned 8-bit bytes.
-Will trigger an assert() if Color_Type is not kAlpha_8_SkColorType or
-kGray_8_SkColorType, and is built with SK_DEBUG defined.
-
-One byte corresponds to one pixel.
-
-#Return readable unsigned 8-bit pointer to pixels ##
+#Populate
#Example
const int w = 4;
@@ -894,13 +764,7 @@
#In Readable_Address
#Line # returns readable pixel address as 16-bit pointer ##
-Returns readable base pixel address. Result is addressable as unsigned 16-bit words.
-Will trigger an assert() if Color_Type is not kRGB_565_SkColorType or
-kARGB_4444_SkColorType, and is built with SK_DEBUG defined.
-
-One word corresponds to one pixel.
-
-#Return readable unsigned 16-bit pointer to pixels ##
+#Populate
#Example
const int w = 4;
@@ -925,13 +789,7 @@
#In Readable_Address
#Line # returns readable pixel address as 32-bit pointer ##
-Returns readable base pixel address. Result is addressable as unsigned 32-bit words.
-Will trigger an assert() if Color_Type is not kRGBA_8888_SkColorType or
-kBGRA_8888_SkColorType, and is built with SK_DEBUG defined.
-
-One word corresponds to one pixel.
-
-#Return readable unsigned 32-bit pointer to pixels ##
+#Populate
#Example
const int w = 4;
@@ -956,13 +814,7 @@
#In Readable_Address
#Line # returns readable pixel address as 64-bit pointer ##
-Returns readable base pixel address. Result is addressable as unsigned 64-bit words.
-Will trigger an assert() if Color_Type is not kRGBA_F16_SkColorType and is built
-with SK_DEBUG defined.
-
-One word corresponds to one pixel.
-
-#Return readable unsigned 64-bit pointer to pixels ##
+#Populate
#Example
const int w = 4;
@@ -987,14 +839,7 @@
#In Readable_Address
#Line # returns readable pixel component address as 16-bit pointer ##
-Returns readable base pixel address. Result is addressable as unsigned 16-bit words.
-Will trigger an assert() if Color_Type is not kRGBA_F16_SkColorType and is built
-with SK_DEBUG defined.
-
-Each word represents one color component encoded as a half float.
-Four words correspond to one pixel.
-
-#Return readable unsigned 16-bit pointer to first component of pixels ##
+#Populate
#Example
const int w = 4;
@@ -1018,18 +863,7 @@
#Method const uint8_t* addr8(int x, int y) const
#In Readable_Address
-Returns readable pixel address at (x, y).
-
-Input is not validated: out of bounds values of x or y trigger an assert() if
-built with SK_DEBUG defined.
-
-Will trigger an assert() if Color_Type is not kAlpha_8_SkColorType or
-kGray_8_SkColorType, and is built with SK_DEBUG defined.
-
-#Param x column index, zero or greater, and less than width() ##
-#Param y row index, zero or greater, and less than height() ##
-
-#Return readable unsigned 8-bit pointer to pixel at (x, y) ##
+#Populate
#Example
const int w = 4;
@@ -1053,18 +887,7 @@
#Method const uint16_t* addr16(int x, int y) const
#In Readable_Address
-Returns readable pixel address at (x, y).
-
-Input is not validated: out of bounds values of x or y trigger an assert() if
-built with SK_DEBUG defined.
-
-Will trigger an assert() if Color_Type is not kRGB_565_SkColorType or
-kARGB_4444_SkColorType, and is built with SK_DEBUG defined.
-
-#Param x column index, zero or greater, and less than width() ##
-#Param y row index, zero or greater, and less than height() ##
-
-#Return readable unsigned 16-bit pointer to pixel at (x, y) ##
+#Populate
#Example
const int w = 4;
@@ -1088,18 +911,7 @@
#Method const uint32_t* addr32(int x, int y) const
#In Readable_Address
-Returns readable pixel address at (x, y).
-
-Input is not validated: out of bounds values of x or y trigger an assert() if
-built with SK_DEBUG defined.
-
-Will trigger an assert() if Color_Type is not kRGBA_8888_SkColorType or
-kBGRA_8888_SkColorType, and is built with SK_DEBUG defined.
-
-#Param x column index, zero or greater, and less than width() ##
-#Param y row index, zero or greater, and less than height() ##
-
-#Return readable unsigned 32-bit pointer to pixel at (x, y) ##
+#Populate
#Example
const int w = 4;
@@ -1123,18 +935,7 @@
#Method const uint64_t* addr64(int x, int y) const
#In Readable_Address
-Returns readable pixel address at (x, y).
-
-Input is not validated: out of bounds values of x or y trigger an assert() if
-built with SK_DEBUG defined.
-
-Will trigger an assert() if Color_Type is not kRGBA_F16_SkColorType and is built
-with SK_DEBUG defined.
-
-#Param x column index, zero or greater, and less than width() ##
-#Param y row index, zero or greater, and less than height() ##
-
-#Return readable unsigned 64-bit pointer to pixel at (x, y) ##
+#Populate
#Example
const int w = 4;
@@ -1158,21 +959,7 @@
#Method const uint16_t* addrF16(int x, int y) const
#In Readable_Address
-Returns readable pixel address at (x, y).
-
-Input is not validated: out of bounds values of x or y trigger an assert() if
-built with SK_DEBUG defined.
-
-Will trigger an assert() if Color_Type is not kRGBA_F16_SkColorType and is built
-with SK_DEBUG defined.
-
-Each unsigned 16-bit word represents one color component encoded as a half float.
-Four words correspond to one pixel.
-
-#Param x column index, zero or greater, and less than width() ##
-#Param y row index, zero or greater, and less than height() ##
-
-#Return readable unsigned 16-bit pointer to pixel component at (x, y) ##
+#Populate
#Example
const int w = 4;
@@ -1204,9 +991,7 @@
#In Writable_Address
#Line # returns writable pixel address as void pointer ##
-Returns writable base pixel address.
-
-#Return writable generic base pointer to pixels ##
+#Populate
#Example
const int w = 4;
@@ -1237,15 +1022,7 @@
#Method void* writable_addr(int x, int y) const
#In Writable_Address
-Returns writable pixel address at (x, y).
-
-Input is not validated: out of bounds values of x or y trigger an assert() if
-built with SK_DEBUG defined. Returns zero if Color_Type is kUnknown_SkColorType.
-
-#Param x column index, zero or greater, and less than width() ##
-#Param y row index, zero or greater, and less than height() ##
-
-#Return writable generic pointer to pixel ##
+#Populate
#Example
const int w = 4;
@@ -1277,16 +1054,7 @@
#In Writable_Address
#Line # returns writable pixel address as 8-bit pointer ##
-Returns writable pixel address at (x, y). Result is addressable as unsigned
-8-bit bytes. Will trigger an assert() if Color_Type is not kAlpha_8_SkColorType
-or kGray_8_SkColorType, and is built with SK_DEBUG defined.
-
-One byte corresponds to one pixel.
-
-#Param x column index, zero or greater, and less than width() ##
-#Param y row index, zero or greater, and less than height() ##
-
-#Return writable unsigned 8-bit pointer to pixels ##
+#Populate
#Example
#Height 64
@@ -1323,16 +1091,7 @@
#In Writable_Address
#Line # returns writable pixel address as 16-bit pointer ##
-Returns writable_addr pixel address at (x, y). Result is addressable as unsigned
-16-bit words. Will trigger an assert() if Color_Type is not kRGB_565_SkColorType
-or kARGB_4444_SkColorType, and is built with SK_DEBUG defined.
-
-One word corresponds to one pixel.
-
-#Param x column index, zero or greater, and less than width() ##
-#Param y row index, zero or greater, and less than height() ##
-
-#Return writable unsigned 16-bit pointer to pixel ##
+#Populate
#Example
#Description
@@ -1366,17 +1125,7 @@
#In Writable_Address
#Line # returns writable pixel address as 32-bit pointer ##
-Returns writable pixel address at (x, y). Result is addressable as unsigned
-32-bit words. Will trigger an assert() if Color_Type is not
-kRGBA_8888_SkColorType or kBGRA_8888_SkColorType, and is built with SK_DEBUG
-defined.
-
-One word corresponds to one pixel.
-
-#Param x column index, zero or greater, and less than width() ##
-#Param y row index, zero or greater, and less than height() ##
-
-#Return writable unsigned 32-bit pointer to pixel ##
+#Populate
#Example
#Image 4
@@ -1409,16 +1158,7 @@
#In Writable_Address
#Line # returns writable pixel address as 64-bit pointer ##
-Returns writable pixel address at (x, y). Result is addressable as unsigned
-64-bit words. Will trigger an assert() if Color_Type is not
-kRGBA_F16_SkColorType and is built with SK_DEBUG defined.
-
-One word corresponds to one pixel.
-
-#Param x column index, zero or greater, and less than width() ##
-#Param y row index, zero or greater, and less than height() ##
-
-#Return writable unsigned 64-bit pointer to pixel ##
+#Populate
#Example
#Height 40
@@ -1446,17 +1186,7 @@
#In Writable_Address
#Line # returns writable pixel component address as 16-bit pointer ##
-Returns writable pixel address at (x, y). Result is addressable as unsigned
-16-bit words. Will trigger an assert() if Color_Type is not
-kRGBA_F16_SkColorType and is built with SK_DEBUG defined.
-
-Each word represents one color component encoded as a half float.
-Four words correspond to one pixel.
-
-#Param x column index, zero or greater, and less than width() ##
-#Param y row index, zero or greater, and less than height() ##
-
-#Return writable unsigned 16-bit pointer to first component of pixel ##
+#Populate
#Example
#Height 64
@@ -1498,29 +1228,7 @@
#Method bool readPixels(const SkImageInfo& dstInfo, void* dstPixels, size_t dstRowBytes) const
#In Pixels
#Line # copies and converts pixels ##
-
-Copies a Rect of pixels to dstPixels. Copy starts at (0, 0), and does not
-exceed Pixmap (width(), height()).
-
-dstInfo specifies width, height, Color_Type, Alpha_Type, and
-Color_Space of destination. dstRowBytes specifics the gap from one destination
-row to the next. Returns true if pixels are copied. Returns false if
-dstInfo.addr() equals nullptr, or dstRowBytes is less than dstInfo.minRowBytes.
-
-Pixels are copied only if pixel conversion is possible. If Pixmap colorType is
-kGray_8_SkColorType, or kAlpha_8_SkColorType; dstInfo.colorType must match.
-If Pixmap colorType is kGray_8_SkColorType, dstInfo.colorSpace must match.
-If Pixmap alphaType is kOpaque_SkAlphaType, dstInfo.alphaType must
-match. If Pixmap colorSpace is nullptr, dstInfo.colorSpace must match. Returns
-false if pixel conversion is not possible.
-
-Returns false if Pixmap width() or height() is zero or negative.
-
-#Param dstInfo destination width, height, Color_Type, Alpha_Type, Color_Space ##
-#Param dstPixels destination pixel storage ##
-#Param dstRowBytes destination row length ##
-
-#Return true if pixels are copied to dstPixels ##
+#Populate
#Example
#Height 128
@@ -1673,24 +1381,7 @@
# ------------------------------------------------------------------------------
#Method bool readPixels(const SkPixmap& dst) const
-
-Copies pixels inside bounds() to dst. dst specifies width, height, Color_Type,
-Alpha_Type, and Color_Space of destination. Returns true if pixels are copied.
-Returns false if dst.addr() equals nullptr, or dst.rowBytes is less than
-dst SkImageInfo::minRowBytes.
-
-Pixels are copied only if pixel conversion is possible. If Pixmap colorType is
-kGray_8_SkColorType, or kAlpha_8_SkColorType; dst Color_Type must match.
-If Pixmap colorType is kGray_8_SkColorType, dst Color_Space must match.
-If Pixmap alphaType is kOpaque_SkAlphaType, dst Alpha_Type must
-match. If Pixmap colorSpace is nullptr, dst Color_Space must match. Returns
-false if pixel conversion is not possible.
-
-Returns false if Pixmap width() or height() is zero or negative.
-
-#Param dst Image_Info and pixel address to write to ##
-
-#Return true if pixels are copied to dst ##
+#Populate
#Example
#Image 3
@@ -1724,33 +1415,7 @@
#In Pixels
#Line # scales and converts pixels ##
-Copies Bitmap to dst, scaling pixels to fit dst.width() and dst.height(), and
-converting pixels to match dst.colorType and dst.alphaType. Returns true if
-pixels are copied. Returns false if dst.addr() is nullptr, or dst.rowBytes is
-less than dst SkImageInfo::minRowBytes.
-
-Pixels are copied only if pixel conversion is possible. If Pixmap colorType is
-kGray_8_SkColorType, or kAlpha_8_SkColorType; dst Color_Type must match.
-If Pixmap colorType is kGray_8_SkColorType, dst Color_Space must match.
-If Pixmap alphaType is kOpaque_SkAlphaType, dst Alpha_Type must
-match. If Pixmap colorSpace is nullptr, dst Color_Space must match. Returns
-false if pixel conversion is not possible.
-
-Returns false if Bitmap width() or height() is zero or negative.
-
-Scales the image, with filterQuality, to match dst.width() and dst.height().
-filterQuality kNone_SkFilterQuality is fastest, typically implemented with
-Filter_Quality_Nearest_Neighbor. kLow_SkFilterQuality is typically implemented with
-Filter_Quality_Bilerp. kMedium_SkFilterQuality is typically implemented with
-Filter_Quality_Bilerp, and Filter_Quality_MipMap when size is reduced.
-kHigh_SkFilterQuality is slowest, typically implemented with Filter_Quality_BiCubic.
-
-#Param dst Image_Info and pixel address to write to ##
-#Param filterQuality one of: kNone_SkFilterQuality, kLow_SkFilterQuality,
- kMedium_SkFilterQuality, kHigh_SkFilterQuality
-##
-
-#Return true if pixels are scaled to fit dst ##
+#Populate
#Example
#Image 3
@@ -1786,14 +1451,7 @@
#In Pixels
#Line # writes Color to pixels ##
-Writes color to pixels bounded by subset; returns true on success.
-Returns false if colorType is kUnknown_SkColorType, or if subset does
-not intersect bounds().
-
-#Param color Unpremultiplied Color to write ##
-#Param subset bounding integer Rect of written pixels ##
-
-#Return true if pixels are changed ##
+#Populate
#Example
#Height 50
@@ -1815,14 +1473,7 @@
# ------------------------------------------------------------------------------
#Method bool erase(SkColor color) const
-
-Writes color to pixels inside bounds(); returns true on success.
-Returns false if colorType is kUnknown_SkColorType, or if bounds()
-is empty.
-
-#Param color Unpremultiplied Color to write ##
-
-#Return true if pixels are changed ##
+#Populate
#Example
#Height 50
@@ -1843,16 +1494,7 @@
# ------------------------------------------------------------------------------
#Method bool erase(const SkColor4f& color, const SkIRect* subset = nullptr) const
-
-Writes color to pixels bounded by subset; returns true on success.
-if subset is nullptr, writes colors pixels inside bounds(). Returns false if
-colorType is kUnknown_SkColorType, if subset is not nullptr and does
-not intersect bounds(), or if subset is nullptr and bounds() is empty.
-
-#Param color Unpremultiplied Color to write ##
-#Param subset bounding integer Rect of pixels to write; may be nullptr ##
-
-#Return true if pixels are changed ##
+#Populate
#Example
#Height 50
diff --git a/docs/SkPoint_Reference.bmh b/docs/SkPoint_Reference.bmh
index bd0e0f1..45b479e 100644
--- a/docs/SkPoint_Reference.bmh
+++ b/docs/SkPoint_Reference.bmh
@@ -27,12 +27,7 @@
#Method static constexpr SkPoint Make(SkScalar x, SkScalar y)
#In Constructors
#Line # constructs from SkScalar inputs ##
-Sets fX to x, fY to y. Used both to set Point and Vector.
-
-#Param x SkScalar x-axis value of constructed Point or Vector ##
-#Param y SkScalar y-axis value of constructed Point or Vector ##
-
-#Return Point (x, y) ##
+#Populate
#Example
SkPoint pt1 = {45, 66};
@@ -58,9 +53,7 @@
#Method SkScalar x() const
#In Property
#Line # returns fX ##
-Returns x-axis value of Point or Vector.
-
-#Return fX ##
+#Populate
#Example
SkPoint pt1 = {45, 66};
@@ -79,9 +72,7 @@
#Method SkScalar y() const
#In Property
#Line # returns fY ##
-Returns y-axis value of Point or Vector.
-
-#Return fY ##
+#Populate
#Example
SkPoint pt1 = {45, 66};
@@ -100,9 +91,7 @@
#Method bool isZero() const
#In Property
#Line # returns true if both members equal zero ##
-Returns true if fX and fY are both zero.
-
-#Return true if fX is zero and fY is zero ##
+#Populate
#Example
SkPoint pt = { 0.f, -0.f};
@@ -128,10 +117,7 @@
#Method void set(SkScalar x, SkScalar y)
#In Set
#Line # sets to SkScalar input ##
-Sets fX to x and fY to y.
-
-#Param x new value for fX ##
-#Param y new value for fY ##
+#Populate
#Example
SkPoint pt1, pt2 = { SK_ScalarPI, SK_ScalarSqrt2 };
@@ -151,14 +137,7 @@
#Method void iset(int32_t x, int32_t y)
#In Set
#Line # sets to integer input ##
-Sets fX to x and fY to y, promoting integers to SkScalar values.
-
-Assigning a large integer value directly to fX or fY may cause a compiler
-error, triggered by narrowing conversion of int to SkScalar. This safely
-casts x and y to avoid the error.
-
-#Param x new value for fX ##
-#Param y new value for fY ##
+#Populate
#Example
SkPoint pt1, pt2 = { SK_MinS16, SK_MaxS16 };
@@ -173,14 +152,7 @@
# ------------------------------------------------------------------------------
#Method void iset(const SkIPoint& p)
-
-Sets fX to p.fX and fY to p.fY, promoting integers to SkScalar values.
-
-Assigning an IPoint containing a large integer value directly to fX or fY may
-cause a compiler error, triggered by narrowing conversion of int to SkScalar.
-This safely casts p.fX and p.fY to avoid the error.
-
-#Param p IPoint members promoted to SkScalar ##
+#Populate
#Example
SkIPoint iPt = { SK_MinS32, SK_MaxS32 };
@@ -203,9 +175,7 @@
#Method void setAbs(const SkPoint& pt)
#In Set
#Line # sets sign of both members to positive ##
-Sets fX to absolute value of pt.fX; and fY to absolute value of pt.fY.
-
-#Param pt members providing magnitude for fX and fY ##
+#Populate
#Example
SkPoint test[] = { {0.f, -0.f}, {-1, -2},
@@ -237,11 +207,7 @@
#Method static void Offset(SkPoint points[], int count, const SkVector& offset)
#In Offset
#Line # translates Point array ##
-Adds offset to each Point in points array with count entries.
-
-#Param points Point array ##
-#Param count entries in array ##
-#Param offset Vector added to points ##
+#Populate
#Example
SkPaint paint;
@@ -264,13 +230,7 @@
# ------------------------------------------------------------------------------
#Method static void Offset(SkPoint points[], int count, SkScalar dx, SkScalar dy)
-
-Adds offset (dx, dy) to each Point in points array of length count.
-
-#Param points Point array ##
-#Param count entries in array ##
-#Param dx added to fX in points ##
-#Param dy added to fY in points ##
+#Populate
#Example
SkPaint paint;
@@ -295,10 +255,7 @@
#Method void offset(SkScalar dx, SkScalar dy)
#In Offset
#Line # translates Point ##
-Adds offset (dx, dy) to Point.
-
-#Param dx added to fX ##
-#Param dy added to fY ##
+#Populate
#Example
#Height 128
@@ -325,14 +282,7 @@
#Method SkScalar length() const
#In Property
#Line # returns straight-line distance to origin ##
-Returns the Euclidean_Distance from origin, computed as:
-#Code
-#Literal
-sqrt(fX * fX + fY * fY)
-##
-.
-
-#Return straight-line distance to origin ##
+#Populate
#Example
#Height 192
@@ -360,14 +310,7 @@
#Method SkScalar distanceToOrigin() const
#In Property
#Line # returns straight-line distance to origin ##
-Returns the Euclidean_Distance from origin, computed as:
-#Code
-#Literal
-sqrt(fX * fX + fY * fY)
-##
-.
-
-#Return straight-line distance to origin ##
+#Populate
#Example
#Height 192
@@ -396,11 +339,7 @@
#Method bool normalize()
#In Set
#Line # sets length to one, preserving direction ##
-Scales (fX, fY) so that length() returns one, while preserving ratio of fX to fY,
-if possible. If prior length is nearly zero, sets Vector to (0, 0) and returns
-false; otherwise returns true.
-
-#Return true if former length is not zero or nearly zero ##
+#Populate
#Example
SkPaint paint;
@@ -428,14 +367,7 @@
#Method bool setNormalize(SkScalar x, SkScalar y)
#In Set
#Line # sets length to one, in direction of (x, y) ##
-Sets Vector to (x, y) scaled so length() returns one, and so that
-(fX, fY) is proportional to (x, y). If (x, y) length is nearly zero,
-sets Vector to (0, 0) and returns false; otherwise returns true.
-
-#Param x proportional value for fX ##
-#Param y proportional value for fY ##
-
-#Return true if (x, y) length is not zero or nearly zero ##
+#Populate
#Example
SkPaint paint;
@@ -465,13 +397,7 @@
#Method bool setLength(SkScalar length)
#In Set
#Line # sets straight-line distance to origin ##
-Scales Vector so that distanceToOrigin returns length, if possible. If former
-length is nearly zero, sets Vector to (0, 0) and return false; otherwise returns
-true.
-
-#Param length straight-line distance to origin ##
-
-#Return true if former length is not zero or nearly zero ##
+#Populate
#Example
#Height 160
@@ -499,16 +425,7 @@
# ------------------------------------------------------------------------------
#Method bool setLength(SkScalar x, SkScalar y, SkScalar length)
-
-Sets Vector to (x, y) scaled to length, if possible. If former
-length is nearly zero, sets Vector to (0, 0) and return false; otherwise returns
-true.
-
-#Param x proportional value for fX ##
-#Param y proportional value for fY ##
-#Param length straight-line distance to origin ##
-
-#Return true if (x, y) length is not zero or nearly zero ##
+#Populate
#Example
#Height 160
@@ -539,10 +456,7 @@
#In Offset
#In Operators
#Line # multiplies Point by scale factor ##
-Sets dst to Point times scale. dst may be Point to modify Point in place.
-
-#Param scale factor to multiply Point by ##
-#Param dst storage for scaled Point ##
+#Populate
#Example
SkPaint paint;
@@ -564,10 +478,7 @@
# ------------------------------------------------------------------------------
#Method void scale(SkScalar value)
-
-Scales Point in place by scale.
-
-#Param value factor to multiply Point by ##
+#Populate
#Example
SkPaint paint;
@@ -591,7 +502,7 @@
#Method void negate()
#In Operators
#Line # reverses the sign of both members ##
-Changes the sign of fX and fY.
+#Populate
#Example
SkPoint test[] = { {0.f, -0.f}, {-1, -2},
@@ -619,9 +530,7 @@
#Method SkPoint operator-()_const
#Line # reverses sign of Point ##
-Returns Point changing the signs of fX and fY.
-
-#Return Point as (-fX, -fY) ##
+#Populate
#Example
SkPoint test[] = { {0.f, -0.f}, {-1, -2},
@@ -708,11 +617,7 @@
#Method SkPoint operator*(SkScalar scale)_const
#Line # returns Point multiplied by scale ##
-Returns Point multiplied by scale.
-
-#Param scale Scalar to multiply by ##
-
-#Return Point as (fX * scale, fY * scale) ##
+#Populate
#Example
#Height 128
@@ -774,9 +679,7 @@
#Method bool isFinite() const
#In Property
#Line # returns true if no member is infinite or NaN ##
-Returns true if both fX and fY are measurable values.
-
-#Return true for values other than infinities and NaN ##
+#Populate
#Example
SkPoint test[] = { {0, -0.f}, {-1, -2}, {SK_ScalarInfinity, 1}, {SK_ScalarNaN, -1} };
@@ -800,12 +703,7 @@
#Method bool equals(SkScalar x, SkScalar y) const
#In Operators
#Line # returns true if Points are equal ##
-Returns true if Point is equivalent to Point constructed from (x, y).
-
-#Param x value compared with fX ##
-#Param y value compared with fY ##
-
-#Return true if Point equals (x, y) ##
+#Populate
#Example
SkPoint test[] = { {0, -0.f}, {-1, -2}, {SK_ScalarInfinity, 1}, {SK_ScalarNaN, -1} };
@@ -829,12 +727,7 @@
#Method bool operator==(const SkPoint& a, const SkPoint& b)
#Line # returns true if Point are equal ##
-Returns true if a is equivalent to b.
-
-#Param a Point to compare ##
-#Param b Point to compare ##
-
-#Return true if a.fX == b.fX and a.fY == b.fY ##
+#Populate
#Example
SkPoint test[] = { {0, -0.f}, {-1, -2}, {SK_ScalarInfinity, 1}, {SK_ScalarNaN, -1} };
@@ -858,12 +751,7 @@
#Method bool operator!=(const SkPoint& a, const SkPoint& b)
#Line # returns true if Point are unequal ##
-Returns true if a is not equivalent to b.
-
-#Param a Point to compare ##
-#Param b Point to compare ##
-
-#Return true if a.fX != b.fX or a.fY != b.fY ##
+#Populate
#Example
SkPoint test[] = { {0, -0.f}, {-1, -2}, {SK_ScalarInfinity, 1}, {SK_ScalarNaN, -1} };
@@ -962,17 +850,7 @@
#Method static SkScalar Length(SkScalar x, SkScalar y)
#In Property
#Line # returns straight-line distance to origin ##
-Returns the Euclidean_Distance from origin, computed as:
-#Code
-#Literal
-sqrt(x * x + y * y)
-##
-.
-
-#Param x component of length ##
-#Param y component of length ##
-
-#Return straight-line distance to origin ##
+#Populate
#Example
#Height 192
@@ -1000,17 +878,7 @@
#Method static SkScalar Normalize(SkVector* vec)
#In Offset
#Line # sets length to one, and returns prior length ##
-Scales (vec->fX, vec->fY) so that length() returns one, while preserving ratio of vec->fX to vec->fY,
-if possible. If original length is nearly zero, sets vec to (0, 0) and returns zero;
-otherwise, returns length of vec before vec is scaled.
-
-Returned prior length may be SK_ScalarInfinity if it can not be represented by SkScalar.
-
-Note that normalize() is faster if prior length is not required.
-
-#Param vec normalized to unit length ##
-
-#Return original vec length ##
+#Populate
#Example
SkPaint paint;
@@ -1040,12 +908,7 @@
#Method static SkScalar Distance(const SkPoint& a, const SkPoint& b)
#In Property
#Line # returns straight-line distance between points ##
-Returns the Euclidean_Distance between a and b.
-
-#Param a line end point ##
-#Param b line end point ##
-
-#Return straight-line distance from a to b ##
+#Populate
#Example
#Height 192
@@ -1075,12 +938,7 @@
#Method static SkScalar DotProduct(const SkVector& a, const SkVector& b)
#In Operators
#Line # returns dot product ##
-Returns the dot product of Vector a and Vector b.
-
-#Param a left side of dot product ##
-#Param b right side of dot product ##
-
-#Return product of input magnitudes and cosine of the angle between them ##
+#Populate
#Example
SkPaint paint;
@@ -1107,16 +965,7 @@
#Method static SkScalar CrossProduct(const SkVector& a, const SkVector& b)
#In Operators
#Line # returns cross product ##
-Returns the cross product of Vector a and Vector b.
-
-a and b form three-dimensional vectors with z-axis value equal to zero. The
-cross product is a three-dimensional vector with x-axis and y-axis values equal
-to zero. The cross product z-axis component is returned.
-
-#Param a left side of cross product ##
-#Param b right side of cross product ##
-
-#Return area spanned by Vectors signed by angle direction ##
+#Populate
#Example
SkPaint paint;
@@ -1147,15 +996,7 @@
#Method SkScalar cross(const SkVector& vec) const
#In Operators
#Line # returns cross product ##
-Returns the cross product of Vector and vec.
-
-Vector and vec form three-dimensional vectors with z-axis value equal to zero.
-The cross product is a three-dimensional vector with x-axis and y-axis values
-equal to zero. The cross product z-axis component is returned.
-
-#Param vec right side of cross product ##
-
-#Return area spanned by Vectors signed by angle direction ##
+#Populate
#Example
SkPaint paint;
@@ -1186,11 +1027,7 @@
#Method SkScalar dot(const SkVector& vec) const
#In Operators
#Line # returns dot product ##
-Returns the dot product of Vector and Vector vec.
-
-#Param vec right side of dot product ##
-
-#Return product of input magnitudes and cosine of the angle between them ##
+#Populate
#Example
SkPaint paint;
diff --git a/docs/SkRRect_Reference.bmh b/docs/SkRRect_Reference.bmh
index c5f3839..f46562a 100644
--- a/docs/SkRRect_Reference.bmh
+++ b/docs/SkRRect_Reference.bmh
@@ -93,21 +93,17 @@
#Method SkRRect()
#In Constructors
#Line # creates with zeroed bounds and corner radii ##
-
-Initializes bounds at (0, 0), the origin, with zero width and height.
-Initializes corner radii to (0, 0), and sets type of kEmpty_Type.
-
-#Return empty Round_Rect ##
+#Populate
#Example
#Height 60
- SkRRect rrect;
- SkPaint p;
- p.setStyle(SkPaint::kStroke_Style);
- p.setStrokeWidth(10);
- canvas->drawRRect(rrect, p);
- rrect.setRect({10, 10, 100, 50});
- canvas->drawRRect(rrect, p);
+ SkRRect rrect;
+ SkPaint p;
+ p.setStyle(SkPaint::kStroke_Style);
+ p.setStrokeWidth(10);
+ canvas->drawRRect(rrect, p);
+ rrect.setRect({10, 10, 100, 50});
+ canvas->drawRRect(rrect, p);
##
#SeeAlso setEmpty isEmpty
@@ -119,24 +115,18 @@
#Method SkRRect(const SkRRect& rrect)
#In Constructors
#Line # copies bounds and corner radii ##
+#Populate
-Initializes to copy of rrect bounds and corner radii.
-
-#Param rrect bounds and corner to copy ##
-
-#Return copy of rrect ##
-
-#Bug 8115
#Example
#Height 60
- SkRRect rrect = SkRRect::MakeRect({10, 10, 100, 50});
- SkRRect rrect2(rrect);
- rrect2.inset(20, 20);
- SkPaint p;
- p.setStyle(SkPaint::kStroke_Style);
- p.setStrokeWidth(10);
- canvas->drawRRect(rrect, p);
- canvas->drawRRect(rrect2, p);
+ SkRRect rrect = SkRRect::MakeRect({10, 10, 100, 50});
+ SkRRect rrect2(rrect);
+ rrect2.inset(20, 20);
+ SkPaint p;
+ p.setStyle(SkPaint::kStroke_Style);
+ p.setStrokeWidth(10);
+ canvas->drawRRect(rrect, p);
+ canvas->drawRRect(rrect2, p);
##
#SeeAlso operator=(const SkRRect& rrect) MakeRect
@@ -148,22 +138,17 @@
#Method SkRRect& operator=(const SkRRect& rrect)
#In Operators
#Line # copies bounds and corner radii ##
-
-Copies rrect bounds and corner radii.
-
-#Param rrect bounds and corner to copy ##
-
-#Return copy of rrect ##
+#Populate
#Example
#Height 110
- SkRRect rrect = SkRRect::MakeRect({40, 40, 100, 70});
- SkRRect rrect2 = rrect;
- rrect2.inset(-20, -20);
- SkPaint p;
- p.setStyle(SkPaint::kStroke_Style);
- p.setStrokeWidth(10);
- canvas->drawRRect(rrect, p);
+ SkRRect rrect = SkRRect::MakeRect({40, 40, 100, 70});
+ SkRRect rrect2 = rrect;
+ rrect2.inset(-20, -20);
+ SkPaint p;
+ p.setStyle(SkPaint::kStroke_Style);
+ p.setStrokeWidth(10);
+ canvas->drawRRect(rrect, p);
canvas->drawRRect(rrect2, p);
##
@@ -242,22 +227,22 @@
#Example
#Height 128
- struct Radii { SkVector data[4]; };
- auto drawRRectType = [=](const SkRect& rect, const Radii& radii) {
- SkRRect rrect;
- rrect.setRectRadii(rect, radii.data);
- SkPaint paint;
- paint.setAntiAlias(true);
- const char* typeStr[] = { "empty", "rect", "oval", "simple", "nine patch", "complex" };
- canvas->drawString(typeStr[(int) rrect.type()], rect.centerX(), rect.bottom() + 20, paint);
- paint.setStyle(SkPaint::kStroke_Style);
- canvas->drawRRect(rrect, paint);
- };
- drawRRectType({ 45, 30, 45, 30}, {{{ 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}}});
- drawRRectType({ 90, 10, 140, 30}, {{{ 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}}});
- drawRRectType({160, 10, 210, 30}, {{{25, 10}, {25, 10}, {25, 10}, {25, 10}}});
- drawRRectType({ 20, 80, 70, 100}, {{{ 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}}});
- drawRRectType({ 90, 80, 140, 100}, {{{ 5, 5}, {10, 5}, {10, 5}, { 5, 5}}});
+ struct Radii { SkVector data[4]; };
+ auto drawRRectType = [=](const SkRect& rect, const Radii& radii) {
+ SkRRect rrect;
+ rrect.setRectRadii(rect, radii.data);
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ const char* typeStr[] = { "empty", "rect", "oval", "simple", "nine patch", "complex" };
+ canvas->drawString(typeStr[(int) rrect.type()], rect.centerX(), rect.bottom() + 20, paint);
+ paint.setStyle(SkPaint::kStroke_Style);
+ canvas->drawRRect(rrect, paint);
+ };
+ drawRRectType({ 45, 30, 45, 30}, {{{ 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}}});
+ drawRRectType({ 90, 10, 140, 30}, {{{ 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}}});
+ drawRRectType({160, 10, 210, 30}, {{{25, 10}, {25, 10}, {25, 10}, {25, 10}}});
+ drawRRectType({ 20, 80, 70, 100}, {{{ 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}}});
+ drawRRectType({ 90, 80, 140, 100}, {{{ 5, 5}, {10, 5}, {10, 5}, { 5, 5}}});
drawRRectType({160, 80, 210, 100}, {{{ 5, 5}, {10, 5}, { 5, 5}, { 5, 5}}});
##
@@ -280,16 +265,16 @@
#Description
rrect2 is not a Rect; inset() has made it empty.
##
- SkRRect rrect = SkRRect::MakeRect({10, 10, 100, 50});
- SkRRect rrect2(rrect);
- rrect2.inset(20, 20);
- SkPaint p;
- p.setStyle(SkPaint::kStroke_Style);
- p.setStrokeWidth(10);
- std::string str("Type ");
- str += SkRRect::kRect_Type == rrect2.getType() ? "=" : "!";
- str += "= SkRRect::kRect_Type";
- canvas->drawString(str.c_str(), 20, 80, SkPaint());
+ SkRRect rrect = SkRRect::MakeRect({10, 10, 100, 50});
+ SkRRect rrect2(rrect);
+ rrect2.inset(20, 20);
+ SkPaint p;
+ p.setStyle(SkPaint::kStroke_Style);
+ p.setStrokeWidth(10);
+ std::string str("Type ");
+ str += SkRRect::kRect_Type == rrect2.getType() ? "=" : "!";
+ str += "= SkRRect::kRect_Type";
+ canvas->drawString(str.c_str(), 20, 80, SkPaint());
canvas->drawRRect(rrect2, p);
##
@@ -312,16 +297,16 @@
#Description
inset() has made rrect2 empty.
##
- SkRRect rrect = SkRRect::MakeRect({10, 10, 100, 50});
- SkRRect rrect2(rrect);
- rrect2.inset(20, 20);
- SkPaint p;
- p.setStyle(SkPaint::kStroke_Style);
- p.setStrokeWidth(10);
- std::string str("Type ");
- str += SkRRect::kEmpty_Type == rrect2.type() ? "=" : "!";
- str += "= SkRRect::kEmpty_Type";
- canvas->drawString(str.c_str(), 20, 80, SkPaint());
+ SkRRect rrect = SkRRect::MakeRect({10, 10, 100, 50});
+ SkRRect rrect2(rrect);
+ rrect2.inset(20, 20);
+ SkPaint p;
+ p.setStyle(SkPaint::kStroke_Style);
+ p.setStrokeWidth(10);
+ std::string str("Type ");
+ str += SkRRect::kEmpty_Type == rrect2.type() ? "=" : "!";
+ str += "= SkRRect::kEmpty_Type";
+ canvas->drawString(str.c_str(), 20, 80, SkPaint());
canvas->drawRRect(rrect2, p);
##
@@ -336,22 +321,19 @@
#Method bool isEmpty() const
#In Property
#Line # returns true if width or height are zero ##
-Returns true if rect().fLeft is equal to rect().fRight, or if rect().fTop is equal
-to rect().fBottom.
-
-#Return true if width() or height() are zero ##
+#Populate
#Example
#Height 100
- SkPaint paint;
- paint.setAntiAlias(true);
- paint.setTextSize(16);
- SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 10, 5);
- canvas->drawRRect(rrect, paint);
- canvas->drawString(rrect.isEmpty() ? "empty" : "not empty", 64, 90, paint);
- rrect.inset(40, 0);
- canvas->translate(128, 0);
- canvas->drawRRect(rrect, paint);
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setTextSize(16);
+ SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 10, 5);
+ canvas->drawRRect(rrect, paint);
+ canvas->drawString(rrect.isEmpty() ? "empty" : "not empty", 64, 90, paint);
+ rrect.inset(40, 0);
+ canvas->translate(128, 0);
+ canvas->drawRRect(rrect, paint);
canvas->drawString(rrect.isEmpty() ? "empty" : "not empty", 64, 90, paint);
##
@@ -364,23 +346,20 @@
#Method bool isRect() const
#In Property
#Line # returns true if not empty, and one radius at each corner is zero ##
-Returns true if not empty, and if either x-axis or y-axis radius at each corner
-is zero.
-
-#Return true if not empty, and one radius at each corner is zero ##
+#Populate
#Example
#Height 100
- SkPaint paint;
- paint.setAntiAlias(true);
- paint.setTextSize(16);
- SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});
- canvas->drawRRect(rrect, paint);
- canvas->drawString(rrect.isRect() ? "rect" : "not rect", 64, 90, paint);
- SkVector radii[] = {{10, 10}, {0, 0}, {0, 0}, {0, 0}};
- rrect.setRectRadii(rrect.getBounds(), radii);
- canvas->translate(128, 0);
- canvas->drawRRect(rrect, paint);
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setTextSize(16);
+ SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});
+ canvas->drawRRect(rrect, paint);
+ canvas->drawString(rrect.isRect() ? "rect" : "not rect", 64, 90, paint);
+ SkVector radii[] = {{10, 10}, {0, 0}, {0, 0}, {0, 0}};
+ rrect.setRectRadii(rrect.getBounds(), radii);
+ canvas->translate(128, 0);
+ canvas->drawRRect(rrect, paint);
canvas->drawString(rrect.isRect() ? "rect" : "not rect", 64, 90, paint);
##
@@ -393,11 +372,7 @@
#Method bool isOval() const
#In Property
#Line # returns true if not empty, axes radii are equal, radii fill bounds ##
-Returns true if not empty, if all x-axis radii are equal, if all y-axis radii
-are equal, x-axis radii are at least half the width, and y-axis radii are at
-least half the height.
-
-#Return true if has identical geometry to Oval ##
+#Populate
#Example
#Height 100
@@ -407,15 +382,15 @@
left Round_Rect is not an oval. The second radii are equal to half the
dimensions; right Round_Rect is an oval.
##
- SkPaint paint;
- paint.setAntiAlias(true);
- paint.setTextSize(16);
- SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 40, 30);
- canvas->drawRRect(rrect, paint);
- canvas->drawString(rrect.isOval() ? "oval" : "not oval", 64, 90, paint);
- rrect.setRectXY(rrect.getBounds(), 35, 25);
- canvas->translate(128, 0);
- canvas->drawRRect(rrect, paint);
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setTextSize(16);
+ SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 40, 30);
+ canvas->drawRRect(rrect, paint);
+ canvas->drawString(rrect.isOval() ? "oval" : "not oval", 64, 90, paint);
+ rrect.setRectXY(rrect.getBounds(), 35, 25);
+ canvas->translate(128, 0);
+ canvas->drawRRect(rrect, paint);
canvas->drawString(rrect.isOval() ? "oval" : "not oval", 64, 90, paint);
##
@@ -428,27 +403,22 @@
#Method bool isSimple() const
#In Property
#Line # returns true if not empty, Rect or Oval; and axes radii are equal ##
-Returns true if not empty, if all x-axis radii are equal but not zero,
-if all y-axis radii are equal but not zero; and x-axis radius is less than half
-width(), or y-axis radius is less than half height().
+#Populate
-#Return true if not empty, Rect or Oval; and axes radii are equal ##
-
-#Bug 8107
#Example
#Height 100
- SkPaint paint;
- paint.setAntiAlias(true);
- paint.setTextSize(16);
- SkVector radii[] = {{40, 30}, {40, 30}, {40, 30}, {40, 30}};
- SkRRect rrect;
- rrect.setRectRadii({30, 10, 100, 60}, radii);
- canvas->drawRRect(rrect, paint);
- canvas->drawString(rrect.isSimple() ? "simple" : "not simple", 64, 90, paint);
- radii[0].fX = 35;
- rrect.setRectRadii(rrect.getBounds(), radii);
- canvas->translate(128, 0);
- canvas->drawRRect(rrect, paint);
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setTextSize(16);
+ SkVector radii[] = {{40, 30}, {40, 30}, {40, 30}, {40, 30}};
+ SkRRect rrect;
+ rrect.setRectRadii({30, 10, 100, 60}, radii);
+ canvas->drawRRect(rrect, paint);
+ canvas->drawString(rrect.isSimple() ? "simple" : "not simple", 64, 90, paint);
+ radii[0].fX = 35;
+ rrect.setRectRadii(rrect.getBounds(), radii);
+ canvas->translate(128, 0);
+ canvas->drawRRect(rrect, paint);
canvas->drawString(rrect.isSimple() ? "simple" : "not simple", 64, 90, paint);
##
@@ -461,27 +431,22 @@
#Method bool isNinePatch() const
#In Property
#Line # returns true if not empty, Rect, Oval or simple; and radii are axis-aligned ##
-Returns true if isEmpty, isRect, isOval, and isSimple return false; and if
-left x-axis radii are equal, right x-axis radii are equal, top y-axis radii are
-equal, and bottom y-axis radii are equal.
+#Populate
-#Return true if not empty, Rect, Oval or simple; and radii are axis-aligned ##
-
-#Bug 8107
#Example
#Height 100
- SkPaint paint;
- paint.setAntiAlias(true);
- paint.setTextSize(16);
- SkVector radii[] = {{20, 30}, {40, 30}, {40, 30}, {20, 30}};
- SkRRect rrect;
- rrect.setRectRadii({30, 10, 100, 60}, radii);
- canvas->drawRRect(rrect, paint);
- canvas->drawString(rrect.isNinePatch() ? "9 patch" : "not 9 patch", 64, 90, paint);
- radii[0].fX = 35;
- rrect.setRectRadii(rrect.getBounds(), radii);
- canvas->translate(128, 0);
- canvas->drawRRect(rrect, paint);
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setTextSize(16);
+ SkVector radii[] = {{20, 30}, {40, 30}, {40, 30}, {20, 30}};
+ SkRRect rrect;
+ rrect.setRectRadii({30, 10, 100, 60}, radii);
+ canvas->drawRRect(rrect, paint);
+ canvas->drawString(rrect.isNinePatch() ? "9 patch" : "not 9 patch", 64, 90, paint);
+ radii[0].fX = 35;
+ rrect.setRectRadii(rrect.getBounds(), radii);
+ canvas->translate(128, 0);
+ canvas->drawRRect(rrect, paint);
canvas->drawString(rrect.isNinePatch() ? "9 patch" : "not 9 patch", 64, 90, paint);
##
@@ -494,29 +459,22 @@
#Method bool isComplex() const
#In Property
#Line # returns true if not empty, Rect, Oval, simple, or nine-patch ##
-
-Returns true if isEmpty, isRect, isOval, isSimple, and isNinePatch return false.
-If true: width and height are greater than zero, at least one corner radii are
-both greater than zero; left x-axis radii are not equal, or right x-axis radii
-are not equal, or top y-axis radii are not equal, or bottom y-axis radii are not
-equal.
-
-#Return true if not empty, Rect, Oval, simple, or nine-patch ##
+#Populate
#Example
#Height 100
- SkPaint paint;
- paint.setAntiAlias(true);
- paint.setTextSize(16);
- SkVector radii[] = {{25, 30}, {40, 30}, {40, 30}, {20, 30}};
- SkRRect rrect;
- rrect.setRectRadii({30, 10, 100, 60}, radii);
- canvas->drawRRect(rrect, paint);
- canvas->drawString(rrect.isComplex() ? "complex" : "not complex", 64, 90, paint);
- radii[0].fX = 20;
- rrect.setRectRadii(rrect.getBounds(), radii);
- canvas->translate(128, 0);
- canvas->drawRRect(rrect, paint);
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setTextSize(16);
+ SkVector radii[] = {{25, 30}, {40, 30}, {40, 30}, {20, 30}};
+ SkRRect rrect;
+ rrect.setRectRadii({30, 10, 100, 60}, radii);
+ canvas->drawRRect(rrect, paint);
+ canvas->drawString(rrect.isComplex() ? "complex" : "not complex", 64, 90, paint);
+ radii[0].fX = 20;
+ rrect.setRectRadii(rrect.getBounds(), radii);
+ canvas->translate(128, 0);
+ canvas->drawRRect(rrect, paint);
canvas->drawString(rrect.isComplex() ? "complex" : "not complex", 64, 90, paint);
##
@@ -529,21 +487,18 @@
#Method SkScalar width() const
#In Property
#Line # returns span in x-axis ##
-Returns span on the x-axis. This does not check if result fits in 32-bit float;
-result may be infinity.
-
-#Return bounds().fRight minus bounds().fLeft ##
+#Populate
#Example
#Description
SkRRect::MakeRect sorts its input, so width() is always zero or larger.
##
- SkRRect unsorted = SkRRect::MakeRect({ 15, 25, 10, 5 });
- SkDebugf("unsorted width: %g\n", unsorted.width());
- SkRRect large = SkRRect::MakeRect({ -FLT_MAX, 1, FLT_MAX, 2 });
+ SkRRect unsorted = SkRRect::MakeRect({ 15, 25, 10, 5 });
+ SkDebugf("unsorted width: %g\n", unsorted.width());
+ SkRRect large = SkRRect::MakeRect({ -FLT_MAX, 1, FLT_MAX, 2 });
SkDebugf("large width: %.0f\n", large.width());
#StdOut
-unsorted width: 5
+unsorted width: 5
large width: inf
##
##
@@ -557,10 +512,7 @@
#Method SkScalar height() const
#In Property
#Line # returns span in y-axis ##
-Returns span on the y-axis. This does not check if result fits in 32-bit float;
-result may be infinity.
-
-#Return bounds().fBottom minus bounds().fTop ##
+#Populate
#Example
#Description
@@ -571,7 +523,7 @@
SkRRect large = SkRRect::MakeRect({ 1, -FLT_MAX, 2, FLT_MAX });
SkDebugf("large height: %.0f\n", large.height());
#StdOut
-unsorted height: 5
+unsorted height: 5
large height: inf
##
##
@@ -585,31 +537,25 @@
#Method SkVector getSimpleRadii() const
#In Property
#Line # returns corner radii for simple types ##
-
-Returns top-left corner radii. If type() returns kEmpty_Type, kRect_Type,
-kOval_Type, or kSimple_Type, returns a value representative of all corner radii.
-If type() returns kNinePatch_Type or kComplex_Type, at least one of the
-remaining three corners has a different value.
-
-#Return corner radii for simple types ##
+#Populate
#Example
#Height 100
- auto drawDetails = [=](const SkRRect& rrect) {
- SkPaint paint;
- paint.setAntiAlias(true);
- paint.setTextSize(12);
- canvas->drawRRect(rrect, paint);
- SkVector corner = rrect.getSimpleRadii();
- std::string label = "corner: " + std::to_string(corner.fX).substr(0, 3) + ", " +
- std::to_string(corner.fY).substr(0, 3);
- canvas->drawString(label.c_str(), 64, 90, paint);
- canvas->translate(128, 0);
- };
- SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});
- drawDetails(rrect);
- rrect.setRectXY(rrect.getBounds(), 5, 8);
- drawDetails(rrect);
+ auto drawDetails = [=](const SkRRect& rrect) {
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setTextSize(12);
+ canvas->drawRRect(rrect, paint);
+ SkVector corner = rrect.getSimpleRadii();
+ std::string label = "corner: " + std::to_string(corner.fX).substr(0, 3) + ", " +
+ std::to_string(corner.fY).substr(0, 3);
+ canvas->drawString(label.c_str(), 64, 90, paint);
+ canvas->translate(128, 0);
+ };
+ SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});
+ drawDetails(rrect);
+ rrect.setRectXY(rrect.getBounds(), 5, 8);
+ drawDetails(rrect);
##
#SeeAlso radii getBounds getType isSimple
@@ -621,20 +567,18 @@
#Method void setEmpty()
#In Set
#Line # zeroes width, height, and corner radii ##
-
-Sets bounds to zero width and height at (0, 0), the origin. Sets
-corner radii to zero and sets type to kEmpty_Type.
+#Populate
#Example
#Height 80
#Description
Nothing blue is drawn because Round_Rect is set to empty.
##
- SkPaint paint;
- SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});
- canvas->drawRRect(rrect, paint);
- rrect.setEmpty();
- paint.setColor(SK_ColorBLUE);
+ SkPaint paint;
+ SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});
+ canvas->drawRRect(rrect, paint);
+ rrect.setEmpty();
+ paint.setColor(SK_ColorBLUE);
canvas->drawRRect(rrect, paint);
##
@@ -647,20 +591,15 @@
#Method void setRect(const SkRect& rect)
#In Set
#Line # sets Round_Rect bounds with zeroed corners ##
-
-Sets bounds to sorted rect, and sets corner radii to zero.
-If set bounds has width and height, and sets type to kRect_Type;
-otherwise, sets type to kEmpty_Type.
-
-#Param rect bounds to set ##
+#Populate
#Example
#Height 90
- SkPaint paint;
- SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});
- canvas->drawRRect(rrect, paint);
- rrect.setRect({60, 30, 120, 80});
- paint.setColor(SK_ColorBLUE);
+ SkPaint paint;
+ SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});
+ canvas->drawRRect(rrect, paint);
+ rrect.setRect({60, 30, 120, 80});
+ paint.setColor(SK_ColorBLUE);
canvas->drawRRect(rrect, paint);
##
@@ -673,24 +612,20 @@
#Method static SkRRect MakeEmpty()
#In Constructors
#Line # creates with zeroed bounds and corner radii ##
-
-Initializes bounds at (0, 0), the origin, with zero width and height.
-Initializes corner radii to (0, 0), and sets type of kEmpty_Type.
-
-#Return empty Round_Rect ##
+#Populate
#Example
#Height 90
- SkRRect rrect = SkRRect::MakeEmpty();
- SkRRect rrect2(rrect);
- rrect2.inset(-20, -20);
- SkPaint p;
- p.setStyle(SkPaint::kStroke_Style);
- p.setStrokeWidth(10);
- std::string str("Type ");
- str += SkRRect::kEmpty_Type == rrect2.type() ? "=" : "!";
- str += "= SkRRect::kEmpty_Type";
- canvas->drawString(str.c_str(), 20, 80, SkPaint());
+ SkRRect rrect = SkRRect::MakeEmpty();
+ SkRRect rrect2(rrect);
+ rrect2.inset(-20, -20);
+ SkPaint p;
+ p.setStyle(SkPaint::kStroke_Style);
+ p.setStrokeWidth(10);
+ std::string str("Type ");
+ str += SkRRect::kEmpty_Type == rrect2.type() ? "=" : "!";
+ str += "= SkRRect::kEmpty_Type";
+ canvas->drawString(str.c_str(), 20, 80, SkPaint());
canvas->drawRRect(rrect2, p);
##
@@ -703,20 +638,15 @@
#Method static SkRRect MakeRect(const SkRect& r)
#In Constructors
#Line # copies bounds and zeroes corner radii ##
-
-Initializes to copy of r bounds and zeroes corner radii.
-
-#Param r bounds to copy ##
-
-#Return copy of r ##
+#Populate
#Example
#Height 70
- SkPaint paint;
- SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});
- canvas->drawRRect(rrect, paint);
- rrect.setOval(rrect.getBounds());
- paint.setColor(SK_ColorBLUE);
+ SkPaint paint;
+ SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});
+ canvas->drawRRect(rrect, paint);
+ rrect.setOval(rrect.getBounds());
+ paint.setColor(SK_ColorBLUE);
canvas->drawRRect(rrect, paint);
##
@@ -729,23 +659,16 @@
#Method static SkRRect MakeOval(const SkRect& oval)
#In Constructors
#Line # creates Oval to fit bounds ##
-
-Sets bounds to oval, x-axis radii to half oval.width(), and all y-axis radii
-to half oval.height(). If oval bounds is empty, sets to kEmpty_Type.
-Otherwise, sets to kOval_Type.
-
-#Param oval bounds of Oval ##
-
-#Return Oval ##
+#Populate
#Example
#Height 70
- SkPaint paint;
- SkRRect rrect = SkRRect::MakeOval({30, 10, 100, 60});
- canvas->drawRRect(rrect, paint);
- rrect.setRect(rrect.getBounds());
- paint.setColor(SK_ColorBLUE);
- paint.setBlendMode(SkBlendMode::kDifference);
+ SkPaint paint;
+ SkRRect rrect = SkRRect::MakeOval({30, 10, 100, 60});
+ canvas->drawRRect(rrect, paint);
+ rrect.setRect(rrect.getBounds());
+ paint.setColor(SK_ColorBLUE);
+ paint.setBlendMode(SkBlendMode::kDifference);
canvas->drawRRect(rrect, paint);
##
@@ -758,28 +681,16 @@
#Method static SkRRect MakeRectXY(const SkRect& rect, SkScalar xRad, SkScalar yRad)
#In Constructors
#Line # creates rounded rectangle ##
-
-Sets to rounded rectangle with the same radii for all four corners.
-If rect is empty, sets to kEmpty_Type.
-Otherwise, if xRad and yRad are zero, sets to kRect_Type.
-Otherwise, if xRad is at least half rect.width() and yRad is at least half
-rect.height(), sets to kOval_Type.
-Otherwise, sets to kSimple_Type.
-
-#Param rect bounds of rounded rectangle ##
-#Param xRad x-axis radius of corners ##
-#Param yRad y-axis radius of corners ##
-
-#Return rounded rectangle ##
+#Populate
#Example
#Height 70
- SkPaint paint;
- SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 20, 20);
- canvas->drawRRect(rrect, paint);
- rrect.setRect(rrect.getBounds());
- paint.setColor(SK_ColorBLUE);
- paint.setBlendMode(SkBlendMode::kModulate);
+ SkPaint paint;
+ SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 20, 20);
+ canvas->drawRRect(rrect, paint);
+ rrect.setRect(rrect.getBounds());
+ paint.setColor(SK_ColorBLUE);
+ paint.setBlendMode(SkBlendMode::kModulate);
canvas->drawRRect(rrect, paint);
##
@@ -792,21 +703,16 @@
#Method void setOval(const SkRect& oval)
#In Set
#Line # replaces with Oval to fit bounds ##
-
-Sets bounds to oval, x-axis radii to half oval.width(), and all y-axis radii
-to half oval.height(). If oval bounds is empty, sets to kEmpty_Type.
-Otherwise, sets to kOval_Type.
-
-#Param oval bounds of Oval ##
+#Populate
#Example
#Height 70
- SkPaint paint;
- SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 20, 20);
- canvas->drawRRect(rrect, paint);
- rrect.setOval(rrect.getBounds());
- paint.setColor(SK_ColorWHITE);
- paint.setBlendMode(SkBlendMode::kExclusion);
+ SkPaint paint;
+ SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 20, 20);
+ canvas->drawRRect(rrect, paint);
+ rrect.setOval(rrect.getBounds());
+ paint.setColor(SK_ColorWHITE);
+ paint.setBlendMode(SkBlendMode::kExclusion);
canvas->drawRRect(rrect, paint);
##
@@ -819,26 +725,16 @@
#Method void setRectXY(const SkRect& rect, SkScalar xRad, SkScalar yRad)
#In Set
#Line # replaces with rounded rectangle ##
-
-Sets to rounded rectangle with the same radii for all four corners.
-If rect is empty, sets to kEmpty_Type.
-Otherwise, if xRad or yRad is zero, sets to kRect_Type.
-Otherwise, if xRad is at least half rect.width() and yRad is at least half
-rect.height(), sets to kOval_Type.
-Otherwise, sets to kSimple_Type.
-
-#Param rect bounds of rounded rectangle ##
-#Param xRad x-axis radius of corners ##
-#Param yRad y-axis radius of corners ##
+#Populate
#Example
#Height 70
- SkPaint paint;
- SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 20, 20);
- canvas->drawRRect(rrect, paint);
- rrect.setRectXY(rrect.getBounds(), 5, 5);
- paint.setColor(SK_ColorWHITE);
- paint.setBlendMode(SkBlendMode::kExclusion);
+ SkPaint paint;
+ SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 20, 20);
+ canvas->drawRRect(rrect, paint);
+ rrect.setRectXY(rrect.getBounds(), 5, 5);
+ paint.setColor(SK_ColorWHITE);
+ paint.setBlendMode(SkBlendMode::kExclusion);
canvas->drawRRect(rrect, paint);
##
@@ -852,43 +748,24 @@
SkScalar rightRad, SkScalar bottomRad)
#In Set
#Line # replaces with rounded rectangle ##
-
-Sets bounds to rect. Sets radii to (leftRad, topRad), (rightRad, topRad),
-(rightRad, bottomRad), (leftRad, bottomRad).
-
-If rect is empty, sets to kEmpty_Type.
-Otherwise, if leftRad and rightRad are zero, sets to kRect_Type.
-Otherwise, if topRad and bottomRad are zero, sets to kRect_Type.
-Otherwise, if leftRad and rightRad are equal and at least half rect.width(), and
-topRad and bottomRad are equal at least half rect.height(), sets to kOval_Type.
-Otherwise, if leftRad and rightRad are equal, and topRad and bottomRad are equal,
-sets to kSimple_Type. Otherwise, sets to kNinePatch_Type.
-
-Nine patch refers to the nine parts defined by the radii: one center rectangle,
-four edge patches, and four corner patches.
-
-#Param rect bounds of rounded rectangle ##
-#Param leftRad left-top and left-bottom x-axis radius ##
-#Param topRad left-top and right-top y-axis radius ##
-#Param rightRad right-top and right-bottom x-axis radius ##
-#Param bottomRad left-bottom and right-bottom y-axis radius ##
+#Populate
#Example
#Height 70
- SkPaint paint;
- paint.setAntiAlias(true);
- SkRRect rrect;
- rrect.setNinePatch({30, 10, 100, 60}, 10, 20, 20, 10);
- canvas->drawRRect(rrect, paint);
- paint.setColor(SK_ColorWHITE);
- const SkRect r = rrect.getBounds();
- canvas->drawLine(r.fLeft, r.fTop + rrect.radii(SkRRect::kUpperLeft_Corner).fY,
- r.fRight, r.fTop + rrect.radii(SkRRect::kUpperRight_Corner).fY, paint);
- canvas->drawLine(r.fLeft, r.fBottom - rrect.radii(SkRRect::kLowerLeft_Corner).fY,
- r.fRight, r.fBottom - rrect.radii(SkRRect::kLowerRight_Corner).fY, paint);
- canvas->drawLine(r.fLeft + rrect.radii(SkRRect::kUpperLeft_Corner).fX, r.fTop,
- r.fLeft + rrect.radii(SkRRect::kLowerLeft_Corner).fX, r.fBottom, paint);
- canvas->drawLine(r.fRight - rrect.radii(SkRRect::kUpperRight_Corner).fX, r.fTop,
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ SkRRect rrect;
+ rrect.setNinePatch({30, 10, 100, 60}, 10, 20, 20, 10);
+ canvas->drawRRect(rrect, paint);
+ paint.setColor(SK_ColorWHITE);
+ const SkRect r = rrect.getBounds();
+ canvas->drawLine(r.fLeft, r.fTop + rrect.radii(SkRRect::kUpperLeft_Corner).fY,
+ r.fRight, r.fTop + rrect.radii(SkRRect::kUpperRight_Corner).fY, paint);
+ canvas->drawLine(r.fLeft, r.fBottom - rrect.radii(SkRRect::kLowerLeft_Corner).fY,
+ r.fRight, r.fBottom - rrect.radii(SkRRect::kLowerRight_Corner).fY, paint);
+ canvas->drawLine(r.fLeft + rrect.radii(SkRRect::kUpperLeft_Corner).fX, r.fTop,
+ r.fLeft + rrect.radii(SkRRect::kLowerLeft_Corner).fX, r.fBottom, paint);
+ canvas->drawLine(r.fRight - rrect.radii(SkRRect::kUpperRight_Corner).fX, r.fTop,
r.fRight - rrect.radii(SkRRect::kLowerRight_Corner).fX, r.fBottom, paint);
##
@@ -901,37 +778,26 @@
#Method void setRectRadii(const SkRect& rect, const SkVector radii[4])
#In Set
#Line # replaces with rounded rectangle ##
-
-Sets bounds to rect. Sets radii array for individual control of all for corners.
-
-If rect is empty, sets to kEmpty_Type.
-Otherwise, if one of each corner radii are zero, sets to kRect_Type.
-Otherwise, if all x-axis radii are equal and at least half rect.width(), and
-all y-axis radii are equal at least half rect.height(), sets to kOval_Type.
-Otherwise, if all x-axis radii are equal, and all y-axis radii are equal,
-sets to kSimple_Type. Otherwise, sets to kNinePatch_Type.
-
-#Param rect bounds of rounded rectangle ##
-#Param radii corner x-axis and y-axis radii ##
+#Populate
#Example
#Height 128
- SkPaint paint;
- paint.setStrokeWidth(15);
- paint.setStrokeCap(SkPaint::kSquare_Cap);
- paint.setAntiAlias(true);
- float intervals[] = { 5, 21.75f };
- paint.setStyle(SkPaint::kStroke_Style);
- paint.setPathEffect(SkDashPathEffect::Make(intervals, SK_ARRAY_COUNT(intervals), 0));
- SkPath path;
- SkRRect rrect;
- SkVector corners[] = {{15, 17}, {17, 19}, {19, 15}, {15, 15}};
- rrect.setRectRadii({20, 20, 100, 100}, corners);
- path.addRRect(rrect, SkPath::kCW_Direction);
- canvas->drawPath(path, paint);
- path.rewind();
- path.addRRect(rrect, SkPath::kCCW_Direction, 1);
- canvas->translate(120, 0);
+ SkPaint paint;
+ paint.setStrokeWidth(15);
+ paint.setStrokeCap(SkPaint::kSquare_Cap);
+ paint.setAntiAlias(true);
+ float intervals[] = { 5, 21.75f };
+ paint.setStyle(SkPaint::kStroke_Style);
+ paint.setPathEffect(SkDashPathEffect::Make(intervals, SK_ARRAY_COUNT(intervals), 0));
+ SkPath path;
+ SkRRect rrect;
+ SkVector corners[] = {{15, 17}, {17, 19}, {19, 15}, {15, 15}};
+ rrect.setRectRadii({20, 20, 100, 100}, corners);
+ path.addRRect(rrect, SkPath::kCW_Direction);
+ canvas->drawPath(path, paint);
+ path.rewind();
+ path.addRRect(rrect, SkPath::kCCW_Direction, 1);
+ canvas->translate(120, 0);
canvas->drawPath(path, paint);
##
@@ -970,21 +836,21 @@
#Example
#Height 70
- SkPaint paint;
- paint.setAntiAlias(true);
- SkRRect rrect;
- SkVector corners[] = {{25, 17}, {17, 19}, {19, 15}, {15, 15}};
- rrect.setRectRadii({30, 10, 100, 60}, corners);
- canvas->drawRRect(rrect, paint);
- paint.setColor(SK_ColorWHITE);
- const SkRect r = rrect.getBounds();
- canvas->drawLine(r.fLeft, r.fTop + rrect.radii(SkRRect::kUpperLeft_Corner).fY,
- r.fRight, r.fTop + rrect.radii(SkRRect::kUpperRight_Corner).fY, paint);
- canvas->drawLine(r.fLeft, r.fBottom - rrect.radii(SkRRect::kLowerLeft_Corner).fY,
- r.fRight, r.fBottom - rrect.radii(SkRRect::kLowerRight_Corner).fY, paint);
- canvas->drawLine(r.fLeft + rrect.radii(SkRRect::kUpperLeft_Corner).fX, r.fTop,
- r.fLeft + rrect.radii(SkRRect::kLowerLeft_Corner).fX, r.fBottom, paint);
- canvas->drawLine(r.fRight - rrect.radii(SkRRect::kUpperRight_Corner).fX, r.fTop,
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ SkRRect rrect;
+ SkVector corners[] = {{25, 17}, {17, 19}, {19, 15}, {15, 15}};
+ rrect.setRectRadii({30, 10, 100, 60}, corners);
+ canvas->drawRRect(rrect, paint);
+ paint.setColor(SK_ColorWHITE);
+ const SkRect r = rrect.getBounds();
+ canvas->drawLine(r.fLeft, r.fTop + rrect.radii(SkRRect::kUpperLeft_Corner).fY,
+ r.fRight, r.fTop + rrect.radii(SkRRect::kUpperRight_Corner).fY, paint);
+ canvas->drawLine(r.fLeft, r.fBottom - rrect.radii(SkRRect::kLowerLeft_Corner).fY,
+ r.fRight, r.fBottom - rrect.radii(SkRRect::kLowerRight_Corner).fY, paint);
+ canvas->drawLine(r.fLeft + rrect.radii(SkRRect::kUpperLeft_Corner).fX, r.fTop,
+ r.fLeft + rrect.radii(SkRRect::kLowerLeft_Corner).fX, r.fBottom, paint);
+ canvas->drawLine(r.fRight - rrect.radii(SkRRect::kUpperRight_Corner).fX, r.fTop,
r.fRight - rrect.radii(SkRRect::kLowerRight_Corner).fX, r.fBottom, paint);
##
@@ -997,22 +863,18 @@
#Method const SkRect& rect() const
#In Property
#Line # returns bounds ##
-Returns bounds. Bounds may have zero width or zero height. Bounds right is
-greater than or equal to left; bounds bottom is greater than or equal to top.
-Result is identical to getBounds.
-
-#Return bounding box ##
+#Populate
#Example
- for (SkScalar left : { SK_ScalarNaN, SK_ScalarInfinity, 100.f, 50.f, 25.f} ) {
- SkRRect rrect1 = SkRRect::MakeRectXY({left, 20, 60, 220}, 50, 200);
- SkDebugf("left bounds: (%g) %g\n", left, rrect1.rect().fLeft);
+ for (SkScalar left : { SK_ScalarNaN, SK_ScalarInfinity, 100.f, 50.f, 25.f} ) {
+ SkRRect rrect1 = SkRRect::MakeRectXY({left, 20, 60, 220}, 50, 200);
+ SkDebugf("left bounds: (%g) %g\n", left, rrect1.rect().fLeft);
}
#StdOut
-left bounds: (nan) 0
-left bounds: (inf) 0
-left bounds: (100) 60
-left bounds: (50) 50
+left bounds: (nan) 0
+left bounds: (inf) 0
+left bounds: (100) 60
+left bounds: (50) 50
left bounds: (25) 25
##
##
@@ -1026,15 +888,7 @@
#Method SkVector radii(Corner corner) const
#In Property
#Line # returns x-axis and y-axis radii for one corner ##
-Returns Scalar pair for radius of curve on x-axis and y-axis for one corner.
-Both radii may be zero. If not zero, both are positive and finite.
-
-
-#Param corner one of: kUpperLeft_Corner, kUpperRight_Corner,
- kLowerRight_Corner, kLowerLeft_Corner
-##
-
-#Return x-axis and y-axis radii for one corner ##
+#Populate
#Example
#Description
@@ -1043,15 +897,15 @@
Small scaled values are halved to scale in proportion to the y-axis corner
radius, which is twice the bounds height.
##
- for (SkScalar radiusX : { SK_ScalarNaN, SK_ScalarInfinity, 100.f, 50.f, 25.f} ) {
- SkRRect rrect1 = SkRRect::MakeRectXY({10, 20, 60, 220}, radiusX, 200);
- SkDebugf("left corner: (%g) %g\n", radiusX, rrect1.radii(SkRRect::kUpperLeft_Corner).fX);
- }
+ for (SkScalar radiusX : { SK_ScalarNaN, SK_ScalarInfinity, 100.f, 50.f, 25.f} ) {
+ SkRRect rrect1 = SkRRect::MakeRectXY({10, 20, 60, 220}, radiusX, 200);
+ SkDebugf("left corner: (%g) %g\n", radiusX, rrect1.radii(SkRRect::kUpperLeft_Corner).fX);
+ }
#StdOut
-left corner: (nan) 0
-left corner: (inf) 0
-left corner: (100) 25
-left corner: (50) 25
+left corner: (nan) 0
+left corner: (inf) 0
+left corner: (100) 25
+left corner: (50) 25
left corner: (25) 12.5
##
##
@@ -1065,19 +919,15 @@
#Method const SkRect& getBounds() const
#In Property
#Line # returns bounds ##
-Returns bounds. Bounds may have zero width or zero height. Bounds right is
-greater than or equal to left; bounds bottom is greater than or equal to top.
-Result is identical to rect().
-
-#Return bounding box ##
+#Populate
#Example
#Height 120
- SkPaint paint;
- SkRRect rrect = SkRRect::MakeRectXY({20, 20, 220, 100}, 15, 15);
- canvas->drawRRect(rrect, paint);
- paint.setColor(SK_ColorWHITE);
- rrect = SkRRect::MakeOval(rrect.getBounds());
+ SkPaint paint;
+ SkRRect rrect = SkRRect::MakeRectXY({20, 20, 220, 100}, 15, 15);
+ canvas->drawRRect(rrect, paint);
+ paint.setColor(SK_ColorWHITE);
+ rrect = SkRRect::MakeOval(rrect.getBounds());
canvas->drawRRect(rrect, paint);
##
@@ -1090,28 +940,20 @@
#Method bool operator==(const SkRRect& a, const SkRRect& b)
#In Operators
#Line # returns true if members are equal ##
-Returns true if bounds and radii in a are equal to bounds and radii in b.
-
-a and b are not equal if either contain NaN. a and b are equal if members
-contain zeroes width different signs.
-
-#Param a Rect bounds and radii to compare ##
-#Param b Rect bounds and radii to compare ##
-
-#Return true if members are equal ##
+#Populate
#Example
- SkRRect rrect1 = SkRRect::MakeRectXY({10, 20, 60, 220}, 50, 200);
- SkRRect rrect2 = SkRRect::MakeRectXY(rrect1.rect(), 25, 100);
- SkRRect rrect3 = SkRRect::MakeOval(rrect1.rect());
- canvas->drawRRect(rrect1, SkPaint());
- std::string str = "rrect1 " + std::string(rrect1 == rrect2 ? "=" : "!") + "= rrect2";
- canvas->drawString(str.c_str(), 10, 240, SkPaint());
- canvas->translate(70, 0);
- canvas->drawRRect(rrect2, SkPaint());
- canvas->translate(70, 0);
- canvas->drawRRect(rrect3, SkPaint());
- str = "rrect2 " + std::string(rrect2 == rrect3 ? "=" : "!") + "= rrect3";
+ SkRRect rrect1 = SkRRect::MakeRectXY({10, 20, 60, 220}, 50, 200);
+ SkRRect rrect2 = SkRRect::MakeRectXY(rrect1.rect(), 25, 100);
+ SkRRect rrect3 = SkRRect::MakeOval(rrect1.rect());
+ canvas->drawRRect(rrect1, SkPaint());
+ std::string str = "rrect1 " + std::string(rrect1 == rrect2 ? "=" : "!") + "= rrect2";
+ canvas->drawString(str.c_str(), 10, 240, SkPaint());
+ canvas->translate(70, 0);
+ canvas->drawRRect(rrect2, SkPaint());
+ canvas->translate(70, 0);
+ canvas->drawRRect(rrect3, SkPaint());
+ str = "rrect2 " + std::string(rrect2 == rrect3 ? "=" : "!") + "= rrect3";
canvas->drawString(str.c_str(), -20, 240, SkPaint());
##
@@ -1124,28 +966,20 @@
#Method bool operator!=(const SkRRect& a, const SkRRect& b)
#In Operators
#Line # returns true if members are unequal ##
-Returns true if bounds and radii in a are not equal to bounds and radii in b.
-
-a and b are not equal if either contain NaN. a and b are equal if members
-contain zeroes width different signs.
-
-#Param a Rect bounds and radii to compare ##
-#Param b Rect bounds and radii to compare ##
-
-#Return true if members are not equal ##
+#Populate
#Example
- SkRRect rrect1 = SkRRect::MakeRectXY({10, 20, 60, 220}, 50, 100);
- SkRRect rrect2 = SkRRect::MakeRectXY(rrect1.rect(), 50, 50);
- SkRRect rrect3 = SkRRect::MakeOval(rrect1.rect());
- canvas->drawRRect(rrect1, SkPaint());
- std::string str = "rrect1 " + std::string(rrect1 == rrect2 ? "=" : "!") + "= rrect2";
- canvas->drawString(str.c_str(), 10, 240, SkPaint());
- canvas->translate(70, 0);
- canvas->drawRRect(rrect2, SkPaint());
- canvas->translate(70, 0);
- canvas->drawRRect(rrect3, SkPaint());
- str = "rrect2 " + std::string(rrect2 == rrect3 ? "=" : "!") + "= rrect3";
+ SkRRect rrect1 = SkRRect::MakeRectXY({10, 20, 60, 220}, 50, 100);
+ SkRRect rrect2 = SkRRect::MakeRectXY(rrect1.rect(), 50, 50);
+ SkRRect rrect3 = SkRRect::MakeOval(rrect1.rect());
+ canvas->drawRRect(rrect1, SkPaint());
+ std::string str = "rrect1 " + std::string(rrect1 == rrect2 ? "=" : "!") + "= rrect2";
+ canvas->drawString(str.c_str(), 10, 240, SkPaint());
+ canvas->translate(70, 0);
+ canvas->drawRRect(rrect2, SkPaint());
+ canvas->translate(70, 0);
+ canvas->drawRRect(rrect3, SkPaint());
+ str = "rrect2 " + std::string(rrect2 == rrect3 ? "=" : "!") + "= rrect3";
canvas->drawString(str.c_str(), -20, 240, SkPaint());
##
@@ -1158,32 +992,17 @@
#Method void inset(SkScalar dx, SkScalar dy, SkRRect* dst) const
#In Inset_Outset_Offset
#Line # insets bounds and radii ##
-
-Copies Round_Rect to dst, then insets dst bounds by dx and dy, and adjusts dst
-radii by dx and dy. dx and dy may be positive, negative, or zero. dst may be
-Round_Rect.
-
-If either corner radius is zero, the corner has no curvature and is unchanged.
-Otherwise, if adjusted radius becomes negative, pins radius to zero.
-If dx exceeds half dst bounds width, dst bounds left and right are set to
-bounds x-axis center. If dy exceeds half dst bounds height, dst bounds top and
-bottom are set to bounds y-axis center.
-
-If dx or dy cause the bounds to become infinite, dst bounds is zeroed.
-
-#Param dx added to rect().fLeft, and subtracted from rect().fRight ##
-#Param dy added to rect().fTop, and subtracted from rect().fBottom ##
-#Param dst insets bounds and radii ##
+#Populate
#Example
- SkPaint paint;
- paint.setAntiAlias(true);
- paint.setStyle(SkPaint::kStroke_Style);
- SkRRect rrect = SkRRect::MakeRectXY({100, 20, 140, 220}, 50, 100);
- for (int index = 0; index < 25; ++index) {
- canvas->drawRRect(rrect, paint);
- rrect.inset(-3, 3, &rrect);
- }
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setStyle(SkPaint::kStroke_Style);
+ SkRRect rrect = SkRRect::MakeRectXY({100, 20, 140, 220}, 50, 100);
+ for (int index = 0; index < 25; ++index) {
+ canvas->drawRRect(rrect, paint);
+ rrect.inset(-3, 3, &rrect);
+ }
##
#SeeAlso outset offset makeOffset
@@ -1195,28 +1014,16 @@
#Method void inset(SkScalar dx, SkScalar dy)
#In Inset_Outset_Offset
#Line # insets bounds and radii ##
-Insets bounds by dx and dy, and adjusts radii by dx and dy. dx and dy may be
-positive, negative, or zero.
-
-If either corner radius is zero, the corner has no curvature and is unchanged.
-Otherwise, if adjusted radius becomes negative, pins radius to zero.
-If dx exceeds half bounds width, bounds left and right are set to
-bounds x-axis center. If dy exceeds half bounds height, bounds top and
-bottom are set to bounds y-axis center.
-
-If dx or dy cause the bounds to become infinite, bounds is zeroed.
-
-#Param dx added to rect().fLeft, and subtracted from rect().fRight ##
-#Param dy added to rect().fTop, and subtracted from rect().fBottom ##
+#Populate
#Example
- SkPaint paint;
- paint.setAntiAlias(true);
- paint.setStyle(SkPaint::kStroke_Style);
- SkRRect rrect = SkRRect::MakeRectXY({10, 20, 180, 220}, 50, 100);
- for (int index = 0; index < 25; ++index) {
- canvas->drawRRect(rrect, paint);
- rrect.inset(3, 3);
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setStyle(SkPaint::kStroke_Style);
+ SkRRect rrect = SkRRect::MakeRectXY({10, 20, 180, 220}, 50, 100);
+ for (int index = 0; index < 25; ++index) {
+ canvas->drawRRect(rrect, paint);
+ rrect.inset(3, 3);
}
##
@@ -1230,31 +1037,17 @@
#Method void outset(SkScalar dx, SkScalar dy, SkRRect* dst) const
#In Inset_Outset_Offset
#Line # outsets bounds and radii ##
-
-Outsets dst bounds by dx and dy, and adjusts radii by dx and dy. dx and dy may be
-positive, negative, or zero.
-
-If either corner radius is zero, the corner has no curvature and is unchanged.
-Otherwise, if adjusted radius becomes negative, pins radius to zero.
-If dx exceeds half dst bounds width, dst bounds left and right are set to
-bounds x-axis center. If dy exceeds half dst bounds height, dst bounds top and
-bottom are set to bounds y-axis center.
-
-If dx or dy cause the bounds to become infinite, dst bounds is zeroed.
-
-#Param dx subtracted from rect().fLeft, and added to rect().fRight ##
-#Param dy subtracted from rect().fTop, and added to rect().fBottom ##
-#Param dst outset bounds and radii ##
+#Populate
#Example
- SkPaint paint;
- paint.setAntiAlias(true);
- paint.setStyle(SkPaint::kStroke_Style);
- SkRRect rrect = SkRRect::MakeRectXY({100, 20, 140, 220}, 50, 100);
- for (int index = 0; index < 25; ++index) {
- canvas->drawRRect(rrect, paint);
- rrect.outset(-3, 3, &rrect);
- }
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setStyle(SkPaint::kStroke_Style);
+ SkRRect rrect = SkRRect::MakeRectXY({100, 20, 140, 220}, 50, 100);
+ for (int index = 0; index < 25; ++index) {
+ canvas->drawRRect(rrect, paint);
+ rrect.outset(-3, 3, &rrect);
+ }
##
#SeeAlso inset offset makeOffset
@@ -1267,30 +1060,17 @@
#Method void outset(SkScalar dx, SkScalar dy)
#In Inset_Outset_Offset
#Line # outsets bounds and radii ##
-
-Outsets bounds by dx and dy, and adjusts radii by dx and dy. dx and dy may be
-positive, negative, or zero.
-
-If either corner radius is zero, the corner has no curvature and is unchanged.
-Otherwise, if adjusted radius becomes negative, pins radius to zero.
-If dx exceeds half bounds width, bounds left and right are set to
-bounds x-axis center. If dy exceeds half bounds height, bounds top and
-bottom are set to bounds y-axis center.
-
-If dx or dy cause the bounds to become infinite, bounds is zeroed.
-
-#Param dx subtracted from rect().fLeft, and added to rect().fRight ##
-#Param dy subtracted from rect().fTop, and added to rect().fBottom ##
+#Populate
#Example
- SkPaint paint;
- paint.setAntiAlias(true);
- paint.setStyle(SkPaint::kStroke_Style);
- SkRRect rrect = SkRRect::MakeRectXY({100, 20, 140, 220}, 50, 100);
- for (int index = 0; index < 25; ++index) {
- canvas->drawRRect(rrect, paint);
- rrect.outset(3, 3);
- }
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setStyle(SkPaint::kStroke_Style);
+ SkRRect rrect = SkRRect::MakeRectXY({100, 20, 140, 220}, 50, 100);
+ for (int index = 0; index < 25; ++index) {
+ canvas->drawRRect(rrect, paint);
+ rrect.outset(3, 3);
+ }
##
#SeeAlso inset offset makeOffset
@@ -1302,21 +1082,17 @@
#Method void offset(SkScalar dx, SkScalar dy)
#In Inset_Outset_Offset
#Line # offsets bounds and radii ##
-
-Translates Round_Rect by (dx, dy).
-
-#Param dx offset added to rect().fLeft and rect().fRight ##
-#Param dy offset added to rect().fTop and rect().fBottom ##
+#Populate
#Example
- SkPaint paint;
- paint.setAntiAlias(true);
- paint.setStyle(SkPaint::kStroke_Style);
- SkRRect rrect = SkRRect::MakeRectXY({100, 20, 140, 220}, 50, 100);
- for (int index = 0; index < 25; ++index) {
- canvas->drawRRect(rrect, paint);
- rrect.offset(3, 3);
- }
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setStyle(SkPaint::kStroke_Style);
+ SkRRect rrect = SkRRect::MakeRectXY({100, 20, 140, 220}, 50, 100);
+ for (int index = 0; index < 25; ++index) {
+ canvas->drawRRect(rrect, paint);
+ rrect.offset(3, 3);
+ }
##
#SeeAlso makeOffset inset outset
@@ -1328,22 +1104,16 @@
#Method SkRRect makeOffset(SkScalar dx, SkScalar dy) const
#In Inset_Outset_Offset
#Line # offsets bounds and radii ##
-
-Returns Round_Rect translated by (dx, dy).
-
-#Param dx offset added to rect().fLeft and rect().fRight ##
-#Param dy offset added to rect().fTop and rect().fBottom ##
-
-#Return Round_Rect bounds offset by (dx, dy), with unchanged corner radii ##
+#Populate
#Example
- SkPaint paint;
- paint.setAntiAlias(true);
- paint.setStyle(SkPaint::kStroke_Style);
- SkRRect rrect = SkRRect::MakeRectXY({100, 20, 140, 220}, 50, 100);
- for (int index = 0; index < 25; ++index) {
- canvas->drawRRect(rrect, paint);
- rrect = rrect.makeOffset(-3, 3);
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setStyle(SkPaint::kStroke_Style);
+ SkRRect rrect = SkRRect::MakeRectXY({100, 20, 140, 220}, 50, 100);
+ for (int index = 0; index < 25; ++index) {
+ canvas->drawRRect(rrect, paint);
+ rrect = rrect.makeOffset(-3, 3);
}
##
@@ -1356,29 +1126,23 @@
#Method bool contains(const SkRect& rect) const
#In Intersection
#Line # returns true if Rect is inside ##
-
-Returns true if rect is inside the bounds and corner radii, and if
-Round_Rect and rect are not empty.
-
-#Param rect area tested for containment ##
-
-#Return true if Round_Rect contains rect ##
+#Populate
#Example
#Height 110
- SkRect test = {10, 10, 110, 80};
- SkRRect rrect = SkRRect::MakeRect(test);
- SkRRect oval = SkRRect::MakeOval(test);
- test.inset(10, 10);
- SkPaint paint;
- paint.setAntiAlias(true);
- canvas->drawString(rrect.contains(test) ? "contains" : "does not contain", 55, 100, paint);
- canvas->drawString(oval.contains(test) ? "contains" : "does not contain", 185, 100, paint);
- paint.setStyle(SkPaint::kStroke_Style);
- canvas->drawRRect(rrect, paint);
- canvas->drawRect(test, paint);
- canvas->translate(120, 0);
- canvas->drawRRect(oval, paint);
+ SkRect test = {10, 10, 110, 80};
+ SkRRect rrect = SkRRect::MakeRect(test);
+ SkRRect oval = SkRRect::MakeOval(test);
+ test.inset(10, 10);
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ canvas->drawString(rrect.contains(test) ? "contains" : "does not contain", 55, 100, paint);
+ canvas->drawString(oval.contains(test) ? "contains" : "does not contain", 185, 100, paint);
+ paint.setStyle(SkPaint::kStroke_Style);
+ canvas->drawRRect(rrect, paint);
+ canvas->drawRect(test, paint);
+ canvas->translate(120, 0);
+ canvas->drawRRect(oval, paint);
canvas->drawRect(test, paint);
##
@@ -1391,25 +1155,20 @@
#Method bool isValid() const
#In Utility
#Line # returns if type() matches bounds and radii ##
-Returns true if bounds and radii values are finite and describe a Round_Rect
-Type that matches getType. All Round_Rect methods construct valid types,
-even if the input values are not valid. Invalid Round_Rect data can only
-be generated by corrupting memory.
-
-#Return true if bounds and radii match type() ##
+#Populate
#Example
#Height 110
- SkRRect rrect = SkRRect::MakeRect({10, 10, 110, 80});
- SkRRect corrupt = rrect;
- *((float*) &corrupt) = 120;
- SkPaint paint;
- paint.setAntiAlias(true);
- canvas->drawString(rrect.isValid() ? "is valid" : "is corrupted", 55, 100, paint);
- canvas->drawString(corrupt.isValid() ? "is valid" : "is corrupted", 185, 100, paint);
- paint.setStyle(SkPaint::kStroke_Style);
- canvas->drawRRect(rrect, paint);
- canvas->translate(120, 0);
+ SkRRect rrect = SkRRect::MakeRect({10, 10, 110, 80});
+ SkRRect corrupt = rrect;
+ *((float*) &corrupt) = 120;
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ canvas->drawString(rrect.isValid() ? "is valid" : "is corrupted", 55, 100, paint);
+ canvas->drawString(corrupt.isValid() ? "is valid" : "is corrupted", 185, 100, paint);
+ paint.setStyle(SkPaint::kStroke_Style);
+ canvas->drawRRect(rrect, paint);
+ canvas->translate(120, 0);
canvas->drawRRect(corrupt, paint);
##
@@ -1431,28 +1190,22 @@
#Method size_t writeToMemory(void* buffer) const
#In Utility
#Line # writes Round_Rect to buffer ##
-
-Writes Round_Rect to buffer. Writes kSizeInMemory bytes, and returns
-kSizeInMemory, the number of bytes written.
-
-#Param buffer storage for Round_Rect ##
-
-#Return bytes written, kSizeInMemory ##
+#Populate
#Example
#Height 110
- SkRRect rrect = SkRRect::MakeRect({10, 10, 110, 80});
- char storage[SkRRect::kSizeInMemory];
- rrect.writeToMemory(storage);
- SkRRect copy;
- copy.readFromMemory(storage, sizeof(storage));
- SkPaint paint;
- paint.setAntiAlias(true);
- canvas->drawString("rrect", 55, 100, paint);
- canvas->drawString("copy", 185, 100, paint);
- paint.setStyle(SkPaint::kStroke_Style);
- canvas->drawRRect(rrect, paint);
- canvas->translate(120, 0);
+ SkRRect rrect = SkRRect::MakeRect({10, 10, 110, 80});
+ char storage[SkRRect::kSizeInMemory];
+ rrect.writeToMemory(storage);
+ SkRRect copy;
+ copy.readFromMemory(storage, sizeof(storage));
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ canvas->drawString("rrect", 55, 100, paint);
+ canvas->drawString("copy", 185, 100, paint);
+ paint.setStyle(SkPaint::kStroke_Style);
+ canvas->drawRRect(rrect, paint);
+ canvas->translate(120, 0);
canvas->drawRRect(copy, paint);
##
@@ -1465,33 +1218,24 @@
#Method size_t readFromMemory(const void* buffer, size_t length)
#In Utility
#Line # reads Round_Rect from buffer ##
-
-Reads Round_Rect from buffer, reading kSizeInMemory bytes.
-Returns kSizeInMemory, bytes read if length is at least kSizeInMemory.
-Otherwise, returns zero.
-
-#Param buffer memory to read from ##
-#Param length size of buffer ##
-
-#Return bytes read, or 0 if length is less than kSizeInMemory
-##
+#Populate
#Example
#Height 110
- SkVector radii[] = {{5, 5}, {10, 10}, {15, 15}, {5, 5}};
- SkRRect rrect;
- rrect.setRectRadii({10, 10, 110, 80}, radii);
- char storage[SkRRect::kSizeInMemory];
- rrect.writeToMemory(storage);
- SkRRect copy;
- copy.readFromMemory(storage, sizeof(storage));
- SkPaint paint;
- paint.setAntiAlias(true);
- canvas->drawString("rrect", 55, 100, paint);
- canvas->drawString("copy", 185, 100, paint);
- paint.setStyle(SkPaint::kStroke_Style);
- canvas->drawRRect(rrect, paint);
- canvas->translate(120, 0);
+ SkVector radii[] = {{5, 5}, {10, 10}, {15, 15}, {5, 5}};
+ SkRRect rrect;
+ rrect.setRectRadii({10, 10, 110, 80}, radii);
+ char storage[SkRRect::kSizeInMemory];
+ rrect.writeToMemory(storage);
+ SkRRect copy;
+ copy.readFromMemory(storage, sizeof(storage));
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ canvas->drawString("rrect", 55, 100, paint);
+ canvas->drawString("copy", 185, 100, paint);
+ paint.setStyle(SkPaint::kStroke_Style);
+ canvas->drawRRect(rrect, paint);
+ canvas->translate(120, 0);
canvas->drawRRect(copy, paint);
##
@@ -1504,34 +1248,23 @@
#Method bool transform(const SkMatrix& matrix, SkRRect* dst) const
#In Inset_Outset_Offset
#Line # scales and offsets into copy ##
-
-Transforms by Round_Rect by matrix, storing result in dst.
-Returns true if Round_Rect transformed can be represented by another Round_Rect.
-Returns false if matrix contains transformations other than scale and translate.
-
-Asserts in debug builds if Round_Rect equals dst.
-
-#Param matrix SkMatrix specifying the transform ##
-#Param dst SkRRect to store the result ##
-
-#Return true if transformation succeeded.
-##
+#Populate
#Example
#Height 110
- SkVector radii[] = {{5, 5}, {10, 10}, {15, 15}, {5, 5}};
- SkRRect rrect;
- rrect.setRectRadii({10, 10, 110, 80}, radii);
- SkRRect transformed;
- SkMatrix matrix = SkMatrix::MakeRectToRect(rrect.rect(), {140, 30, 220, 80},
- SkMatrix::kCenter_ScaleToFit);
- bool success = rrect.transform(matrix, &transformed);
- SkPaint paint;
- paint.setAntiAlias(true);
- canvas->drawString("rrect", 55, 100, paint);
- canvas->drawString(success ? "transformed" : "transform failed", 185, 100, paint);
- paint.setStyle(SkPaint::kStroke_Style);
- canvas->drawRRect(rrect, paint);
+ SkVector radii[] = {{5, 5}, {10, 10}, {15, 15}, {5, 5}};
+ SkRRect rrect;
+ rrect.setRectRadii({10, 10, 110, 80}, radii);
+ SkRRect transformed;
+ SkMatrix matrix = SkMatrix::MakeRectToRect(rrect.rect(), {140, 30, 220, 80},
+ SkMatrix::kCenter_ScaleToFit);
+ bool success = rrect.transform(matrix, &transformed);
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ canvas->drawString("rrect", 55, 100, paint);
+ canvas->drawString(success ? "transformed" : "transform failed", 185, 100, paint);
+ paint.setStyle(SkPaint::kStroke_Style);
+ canvas->drawRRect(rrect, paint);
canvas->drawRRect(transformed, paint);
##
@@ -1544,34 +1277,30 @@
#Method void dump(bool asHex) const
#In Utility
#Line # sends text representation to standard output ##
-Writes text representation of Round_Rect to standard output.
-Set asHex true to generate exact binary representations
-of floating point numbers.
-
-#Param asHex true if SkScalar values are written as hexadecimal ##
+#Populate
#Example
-SkRRect rrect = SkRRect::MakeRect({6.f / 7, 2.f / 3, 6.f / 7, 2.f / 3});
-for (bool dumpAsHex : { false, true } ) {
- rrect.dump(dumpAsHex);
+SkRRect rrect = SkRRect::MakeRect({6.f / 7, 2.f / 3, 6.f / 7, 2.f / 3});
+for (bool dumpAsHex : { false, true } ) {
+ rrect.dump(dumpAsHex);
}
#StdOut
-SkRect::MakeLTRB(0.857143f, 0.666667f, 0.857143f, 0.666667f);
-const SkPoint corners[] = {
- { 0, 0 },
- { 0, 0 },
- { 0, 0 },
- { 0, 0 },
-};
-SkRect::MakeLTRB(SkBits2Float(0x3f5b6db7), /* 0.857143 */
- SkBits2Float(0x3f2aaaab), /* 0.666667 */
- SkBits2Float(0x3f5b6db7), /* 0.857143 */
- SkBits2Float(0x3f2aaaab) /* 0.666667 */);
-const SkPoint corners[] = {
- { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
- { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
- { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
- { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+SkRect::MakeLTRB(0.857143f, 0.666667f, 0.857143f, 0.666667f);
+const SkPoint corners[] = {
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+};
+SkRect::MakeLTRB(SkBits2Float(0x3f5b6db7), /* 0.857143 */
+ SkBits2Float(0x3f2aaaab), /* 0.666667 */
+ SkBits2Float(0x3f5b6db7), /* 0.857143 */
+ SkBits2Float(0x3f2aaaab) /* 0.666667 */);
+const SkPoint corners[] = {
+ { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+ { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+ { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+ { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
};
##
##
@@ -1585,32 +1314,29 @@
#Method void dump() const
#In Utility
#Line # sends text representation using floats to standard output ##
-Writes text representation of Round_Rect to standard output. The representation
-may be directly compiled as C++ code. Floating point values are written
-with limited precision; it may not be possible to reconstruct original
-Round_Rect from output.
+#Populate
#Example
-SkRRect rrect = SkRRect::MakeRect({6.f / 7, 2.f / 3, 6.f / 7, 2.f / 3});
-rrect.dump();
-SkRect bounds = SkRect::MakeLTRB(0.857143f, 0.666667f, 0.857143f, 0.666667f);
-const SkPoint corners[] = {
- { 0, 0 },
- { 0, 0 },
- { 0, 0 },
- { 0, 0 },
-};
-SkRRect copy;
-copy.setRectRadii(bounds, corners);
-SkDebugf("rrect is " "%s" "equal to copy\n", rrect == copy ? "" : "not ");
+SkRRect rrect = SkRRect::MakeRect({6.f / 7, 2.f / 3, 6.f / 7, 2.f / 3});
+rrect.dump();
+SkRect bounds = SkRect::MakeLTRB(0.857143f, 0.666667f, 0.857143f, 0.666667f);
+const SkPoint corners[] = {
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+};
+SkRRect copy;
+copy.setRectRadii(bounds, corners);
+SkDebugf("rrect is " "%s" "equal to copy\n", rrect == copy ? "" : "not ");
#StdOut
-SkRect::MakeLTRB(0.857143f, 0.666667f, 0.857143f, 0.666667f);
-const SkPoint corners[] = {
- { 0, 0 },
- { 0, 0 },
- { 0, 0 },
- { 0, 0 },
-};
+SkRect::MakeLTRB(0.857143f, 0.666667f, 0.857143f, 0.666667f);
+const SkPoint corners[] = {
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+ { 0, 0 },
+};
rrect is not equal to copy
##
##
@@ -1624,38 +1350,35 @@
#Method void dumpHex() const
#In Utility
#Line # sends text representation using hexadecimal to standard output ##
-Writes text representation of Round_Rect to standard output. The representation
-may be directly compiled as C++ code. Floating point values are written
-in hexadecimal to preserve their exact bit pattern. The output reconstructs the
-original Round_Rect.
+#Populate
#Example
-SkRRect rrect = SkRRect::MakeRect({6.f / 7, 2.f / 3, 6.f / 7, 2.f / 3});
-rrect.dumpHex();
-SkRect bounds = SkRect::MakeLTRB(SkBits2Float(0x3f5b6db7), /* 0.857143 */
- SkBits2Float(0x3f2aaaab), /* 0.666667 */
- SkBits2Float(0x3f5b6db7), /* 0.857143 */
- SkBits2Float(0x3f2aaaab) /* 0.666667 */);
-const SkPoint corners[] = {
- { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
- { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
- { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
- { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
-};
-SkRRect copy;
-copy.setRectRadii(bounds, corners);
+SkRRect rrect = SkRRect::MakeRect({6.f / 7, 2.f / 3, 6.f / 7, 2.f / 3});
+rrect.dumpHex();
+SkRect bounds = SkRect::MakeLTRB(SkBits2Float(0x3f5b6db7), /* 0.857143 */
+ SkBits2Float(0x3f2aaaab), /* 0.666667 */
+ SkBits2Float(0x3f5b6db7), /* 0.857143 */
+ SkBits2Float(0x3f2aaaab) /* 0.666667 */);
+const SkPoint corners[] = {
+ { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+ { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+ { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+ { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+};
+SkRRect copy;
+copy.setRectRadii(bounds, corners);
SkDebugf("rrect is " "%s" "equal to copy\n", rrect == copy ? "" : "not ");
#StdOut
-SkRect::MakeLTRB(SkBits2Float(0x3f5b6db7), /* 0.857143 */
- SkBits2Float(0x3f2aaaab), /* 0.666667 */
- SkBits2Float(0x3f5b6db7), /* 0.857143 */
- SkBits2Float(0x3f2aaaab) /* 0.666667 */);
-const SkPoint corners[] = {
- { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
- { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
- { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
- { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
-};
+SkRect::MakeLTRB(SkBits2Float(0x3f5b6db7), /* 0.857143 */
+ SkBits2Float(0x3f2aaaab), /* 0.666667 */
+ SkBits2Float(0x3f5b6db7), /* 0.857143 */
+ SkBits2Float(0x3f2aaaab) /* 0.666667 */);
+const SkPoint corners[] = {
+ { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+ { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+ { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+ { SkBits2Float(0x00000000), SkBits2Float(0x00000000) }, /* 0.000000 0.000000 */
+};
rrect is equal to copy
##
##
diff --git a/docs/SkRect_Reference.bmh b/docs/SkRect_Reference.bmh
index 7571937..4e78168 100644
--- a/docs/SkRect_Reference.bmh
+++ b/docs/SkRect_Reference.bmh
@@ -48,12 +48,7 @@
#In Constructors
#Line # constructs from bounds of (0, 0, 0, 0) ##
-Returns constructed Rect set to (0, 0, 0, 0).
-Many other rectangles are empty; if left is equal to or greater than right,
-or if top is equal to or greater than bottom. Setting all members to zero
-is a convenience, but does not designate a special empty rectangle.
-
-#Return bounds (0, 0, 0, 0) ##
+#Populate
#Example
SkRect rect = SkRect::MakeEmpty();
@@ -82,16 +77,7 @@
#In Constructors
#Line # constructs from SkScalar input returning (0, 0, width, height) ##
-Returns constructed Rect set to SkScalar values (0, 0, w, h). Does not
-validate input; w or h may be negative.
-
-Passing integer values may generate a compiler warning since Rect cannot
-represent 32-bit integers exactly. Use SkIRect for an exact integer rectangle.
-
-#Param w SkScalar width of constructed Rect ##
-#Param h SkScalar height of constructed Rect ##
-
-#Return bounds (0, 0, w, h) ##
+#Populate
#Example
SkRect rect1 = SkRect::MakeWH(25, 35);
@@ -115,16 +101,7 @@
#In Constructors
#Line # constructs from int input returning (0, 0, width, height) ##
-Returns constructed Rect set to integer values (0, 0, w, h). Does not validate
-input; w or h may be negative.
-
-Use to avoid a compiler warning that input may lose precision when stored.
-Use SkIRect for an exact integer rectangle.
-
-#Param w integer width of constructed Rect ##
-#Param h integer height of constructed Rect ##
-
-#Return bounds (0, 0, w, h) ##
+#Populate
#Example
SkIRect i_rect = SkIRect::MakeWH(25, 35);
@@ -149,12 +126,7 @@
#In Constructors
#Line # constructs from Size returning (0, 0, width, height) ##
-Returns constructed Rect set to (0, 0, size.width(), size.height()). Does not
-validate input; size.width() or size.height() may be negative.
-
-#Param size SkScalar values for Rect width and height ##
-
-#Return bounds (0, 0, size.width(), size.height()) ##
+#Populate
#Example
SkSize size = {25.5f, 35.5f};
@@ -179,16 +151,7 @@
SkScalar b)
#In Constructors
#Line # constructs from SkScalar left, top, right, bottom ##
-
-Returns constructed Rect set to (l, t, r, b). Does not sort input; Rect may
-result in fLeft greater than fRight, or fTop greater than fBottom.
-
-#Param l SkScalar stored in fLeft ##
-#Param t SkScalar stored in fTop ##
-#Param r SkScalar stored in fRight ##
-#Param b SkScalar stored in fBottom ##
-
-#Return bounds (l, t, r, b) ##
+#Populate
#Example
SkRect rect = SkRect::MakeLTRB(5, 35, 15, 25);
@@ -266,13 +229,7 @@
#Method static SkRect Make(const SkIRect& irect)
#In Constructors
-Returns constructed IRect set to irect, promoting integers to Scalar.
-Does not validate input; fLeft may be greater than fRight, fTop may be greater
-than fBottom.
-
-#Param irect integer unsorted bounds ##
-
-#Return irect members converted to SkScalar ##
+#Populate
#Example
SkIRect i_rect1 = {2, 35, 22, 53};
@@ -296,11 +253,7 @@
#In Property
#Line # returns true if width or height are zero or negative ##
-Returns true if fLeft is equal to or greater than fRight, or if fTop is equal
-to or greater than fBottom. Call sort() to reverse rectangles with negative
-width() or height().
-
-#Return true if width() or height() are not positive and valid ##
+#Populate
#Example
SkRect tests[] = {{20, 40, 10, 50}, {20, 40, 20, 50}};
@@ -329,11 +282,7 @@
#In Property
#Line # returns true if width or height are zero or positive ##
-Returns true if fLeft is equal to or less than fRight, or if fTop is equal
-to or less than fBottom. Call sort() to reverse rectangles with negative
-width() or height().
-
-#Return true if width() or height() are zero or positive ##
+#Populate
#Example
SkRect tests[] = {{20, 40, 10, 50}, {20, 40, 20, 50}};
@@ -362,10 +311,7 @@
#In Property
#Line # returns true if no member is infinite or NaN ##
-Returns true if all values in the rectangle are finite: SK_ScalarMin or larger,
-and SK_ScalarMax or smaller.
-
-#Return true if no member is infinite or NaN ##
+#Populate
#Example
SkRect largest = { SK_ScalarMin, SK_ScalarMin, SK_ScalarMax, SK_ScalarMax };
@@ -390,10 +336,7 @@
#In Property
#Line # returns bounds left ##
-Returns left edge of Rect, if sorted. Call isSorted to see if Rect is valid.
-Call sort() to reverse fLeft and fRight if needed.
-
-#Return fLeft ##
+#Populate
#Example
SkRect unsorted = { 15, 5, 10, 25 };
@@ -416,10 +359,7 @@
#In Property
#Line # returns bounds top ##
-Returns top edge of Rect, if sorted. Call isEmpty to see if Rect may be invalid,
-and sort() to reverse fTop and fBottom if needed.
-
-#Return fTop ##
+#Populate
#Example
SkRect unsorted = { 15, 25, 10, 5 };
@@ -442,10 +382,7 @@
#In Property
#Line # returns smaller bounds in x, if sorted ##
-Returns left edge of Rect, if sorted. Call isSorted to see if Rect is valid.
-Call sort() to reverse fLeft and fRight if needed.
-
-#Return fLeft ##
+#Populate
#Example
SkRect unsorted = { 15, 5, 10, 25 };
@@ -468,10 +405,7 @@
#In Property
#Line # returns smaller bounds in y, if sorted ##
-Returns top edge of Rect, if sorted. Call isEmpty to see if Rect may be invalid,
-and sort() to reverse fTop and fBottom if needed.
-
-#Return fTop ##
+#Populate
#Example
SkRect unsorted = { 15, 25, 10, 5 };
@@ -494,10 +428,7 @@
#In Property
#Line # returns larger bounds in x, if sorted ##
-Returns right edge of Rect, if sorted. Call isSorted to see if Rect is valid.
-Call sort() to reverse fLeft and fRight if needed.
-
-#Return fRight ##
+#Populate
#Example
SkRect unsorted = { 15, 25, 10, 5 };
@@ -520,10 +451,7 @@
#In Property
#Line # returns larger bounds in y, if sorted ##
-Returns bottom edge of Rect, if sorted. Call isEmpty to see if Rect may be invalid,
-and sort() to reverse fTop and fBottom if needed.
-
-#Return fBottom ##
+#Populate
#Example
SkRect unsorted = { 15, 25, 10, 5 };
@@ -546,10 +474,7 @@
#In Property
#Line # returns span in x ##
-Returns span on the x-axis. This does not check if Rect is sorted, or if
-result fits in 32-bit float; result may be negative or infinity.
-
-#Return fRight minus fLeft ##
+#Populate
#Example
#Description
@@ -575,10 +500,7 @@
#In Property
#Line # returns span in y ##
-Returns span on the y-axis. This does not check if Rect is sorted, or if
-result fits in 32-bit float; result may be negative or infinity.
-
-#Return fBottom minus fTop ##
+#Populate
#Example
#Description
@@ -604,10 +526,7 @@
#In Property
#Line # returns midpoint in x ##
-Returns average of left edge and right edge. Result does not change if Rect
-is sorted. Result may overflow to infinity if Rect is far from the origin.
-
-#Return midpoint in x ##
+#Populate
#Example
SkRect tests[] = {{20, 30, 41, 51}, {-20, -30, -41, -51}};
@@ -634,10 +553,7 @@
#In Property
#Line # returns midpoint in y ##
-Returns average of top edge and bottom edge. Result does not change if Rect
-is sorted.
-
-#Return midpoint in y ##
+#Populate
#Example
SkRect rect = { 2e+38, 2e+38, 3e+38, 3e+38 };
@@ -662,16 +578,7 @@
#In Operators
#Line # returns true if members are equal ##
-Returns true if all members in a: fLeft, fTop, fRight, and fBottom; are
-equal to the corresponding members in b.
-
-a and b are not equal if either contain NaN. a and b are equal if members
-contain zeroes width different signs.
-
-#Param a Rect to compare ##
-#Param b Rect to compare ##
-
-#Return true if members are equal ##
+#Populate
#Example
auto debugster = [](const SkRect& test) -> void {
@@ -707,16 +614,7 @@
#In Operators
#Line # returns true if members are unequal ##
-Returns true if any in a: fLeft, fTop, fRight, and fBottom; does not
-equal the corresponding members in b.
-
-a and b are not equal if either contain NaN. a and b are equal if members
-contain zeroes width different signs.
-
-#Param a Rect to compare ##
-#Param b Rect to compare ##
-
-#Return true if members are not equal ##
+#Populate
#Example
SkRect test = {0, 0, 2, SK_ScalarNaN};
@@ -776,14 +674,7 @@
#In As_Points
#Line # sets to upper and lower limits of Point array ##
-Sets to bounds of Point array with count entries. If count is zero or smaller,
-or if Point array contains an infinity or NaN, sets to (0, 0, 0, 0).
-
-Result is either empty or sorted: fLeft is less than or equal to fRight, and
-fTop is less than or equal to fBottom.
-
-#Param pts Point array ##
-#Param count entries in array ##
+#Populate
#Example
SkPoint points[] = {{3, 4}, {1, 2}, {5, 6}, {SK_ScalarNaN, 8}};
@@ -817,17 +708,7 @@
#In As_Points
#Line # sets to upper and lower limits of Point array ##
-Sets to bounds of Point array with count entries. Returns false if count is
-zero or smaller, or if Point array contains an infinity or NaN; in these cases
-sets Rect to (0, 0, 0, 0).
-
-Result is either empty or sorted: fLeft is less than or equal to fRight, and
-fTop is less than or equal to fBottom.
-
-#Param pts Point array ##
-#Param count entries in array ##
-
-#Return true if all Point values are finite ##
+#Populate
#Example
SkPoint points[] = {{3, 4}, {1, 2}, {5, 6}, {SK_ScalarNaN, 8}};
@@ -865,11 +746,7 @@
#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 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 ##
+#Populate
#Example
SkPoint points[] = {{3, 4}, {1, 2}, {SK_ScalarInfinity, 6}, {SK_ScalarNaN, 8}};
@@ -895,11 +772,7 @@
#In Set
#Line # sets to (0, 0, 0, 0) ##
-Sets Rect to (0, 0, 0, 0).
-
-Many other rectangles are empty; if left is equal to or greater than right,
-or if top is equal to or greater than bottom. Setting all members to zero
-is a convenience, but does not designate a special empty rectangle.
+#Populate
#Example
SkRect rect = {3, 4, 1, 2};
@@ -924,10 +797,7 @@
#In Set
#Line # sets to SkScalar input (left, top, right, bottom) and others ##
-Sets Rect to src, promoting src members from integer to Scalar.
-Very large values in src may lose precision.
-
-#Param src integer Rect ##
+#Populate
#Example
SkIRect i_rect = {3, 4, 1, 2};
@@ -950,14 +820,7 @@
#Method void set(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom)
#In Set
-Sets Rect to (left, top, right, bottom).
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
-
-#Param left stored in fLeft ##
-#Param top stored in fTop ##
-#Param right stored in fRight ##
-#Param bottom stored in fBottom ##
+#Populate
#Example
SkRect rect1 = {3, 4, 1, 2};
@@ -981,14 +844,7 @@
#In Set
#Line # sets to SkScalar input (left, top, right, bottom) ##
-Sets Rect to (left, top, right, bottom).
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
-
-#Param left stored in fLeft ##
-#Param top stored in fTop ##
-#Param right stored in fRight ##
-#Param bottom stored in fBottom ##
+#Populate
#Example
SkRect rect1 = {3, 4, 1, 2};
@@ -1011,14 +867,7 @@
#Method void set(const SkPoint pts[], int count)
#In Set
-Sets to bounds of Point array with count entries. If count is zero or smaller,
-or if Point array contains an infinity or NaN, sets Rect to (0, 0, 0, 0).
-
-Result is either empty or sorted: fLeft is less than or equal to fRight, and
-fTop is less than or equal to fBottom.
-
-#Param pts Point array ##
-#Param count entries in array ##
+#Populate
#Example
SkPoint points[] = {{3, 4}, {1, 2}, {5, 6}, {SK_ScalarNaN, 8}};
@@ -1051,11 +900,7 @@
#Method void set(const SkPoint& p0, const SkPoint& p1)
#In Set
-Sets bounds to the smallest Rect enclosing Points p0 and p1. The result is
-sorted and may be empty. Does not check to see if values are finite.
-
-#Param p0 corner to include ##
-#Param p1 corner to include ##
+#Populate
#Example
#Description
@@ -1112,11 +957,7 @@
#In Set
#Line # sets to SkScalar input (0, 0, width, height) ##
-Sets Rect to (0, 0, width, height). Does not validate input;
-width or height may be negative.
-
-#Param width stored in fRight ##
-#Param height stored in fBottom ##
+#Populate
#Example
SkRect rect;
@@ -1147,15 +988,7 @@
#In From_Integers
#Line # sets to int input (left, top, right, bottom) ##
-Sets Rect to (left, top, right, bottom).
-All parameters are promoted from integer to Scalar.
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
-
-#Param left promoted to SkScalar and stored in fLeft ##
-#Param top promoted to SkScalar and stored in fTop ##
-#Param right promoted to SkScalar and stored in fRight ##
-#Param bottom promoted to SkScalar and stored in fBottom ##
+#Populate
#Example
SkRect rect1 = {3, 4, 1, 2};
@@ -1179,12 +1012,7 @@
#In From_Integers
#Line # sets to int input (0, 0, width, height) ##
-Sets Rect to (0, 0, width, height).
-width and height may be zero or negative. width and height are promoted from
-integer to SkScalar, large values may lose precision.
-
-#Param width promoted to SkScalar and stored in fRight ##
-#Param height promoted to SkScalar and stored in fBottom ##
+#Populate
#Example
SkRect rect1 = {0, 0, 1, 2};
@@ -1213,17 +1041,7 @@
#In Inset_Outset_Offset
#Line # constructs from translated sides ##
-Returns Rect offset by (dx, dy).
-
-If dx is negative, Rect returned is moved to the left.
-If dx is positive, Rect returned is moved to the right.
-If dy is negative, Rect returned is moved upward.
-If dy is positive, Rect returned is moved downward.
-
-#Param dx added to fLeft and fRight ##
-#Param dy added to fTop and fBottom ##
-
-#Return Rect offset on axes, with original width and height ##
+#Populate
#Example
SkRect rect = { 10, 50, 20, 60 };
@@ -1248,17 +1066,7 @@
#In Inset_Outset_Offset
#Line # constructs from sides moved symmetrically about the center ##
-Returns Rect, inset by (dx, dy).
-
-If dx is negative, Rect returned is wider.
-If dx is positive, Rect returned is narrower.
-If dy is negative, Rect returned is taller.
-If dy is positive, Rect returned is shorter.
-
-#Param dx added to fLeft and subtracted from fRight ##
-#Param dy added to fTop and subtracted from fBottom ##
-
-#Return Rect inset symmetrically left and right, top and bottom ##
+#Populate
#Example
SkRect rect = { 10, 50, 20, 60 };
@@ -1283,17 +1091,7 @@
#In Inset_Outset_Offset
#Line # constructs from sides moved symmetrically about the center ##
-Returns Rect, outset by (dx, dy).
-
-If dx is negative, Rect returned is narrower.
-If dx is positive, Rect returned is wider.
-If dy is negative, Rect returned is shorter.
-If dy is positive, Rect returned is taller.
-
-#Param dx subtracted to fLeft and added from fRight ##
-#Param dy subtracted to fTop and added from fBottom ##
-
-#Return Rect outset symmetrically left and right, top and bottom ##
+#Populate
#Example
SkRect rect = { 10, 50, 20, 60 };
@@ -1318,15 +1116,7 @@
#In Inset_Outset_Offset
#Line # translates sides without changing width and height ##
-Offsets Rect by adding dx to fLeft, fRight; and by adding dy to fTop, fBottom.
-
-If dx is negative, moves Rect to the left.
-If dx is positive, moves Rect to the right.
-If dy is negative, moves Rect upward.
-If dy is positive, moves Rect downward.
-
-#Param dx offset added to fLeft and fRight ##
-#Param dy offset added to fTop and fBottom ##
+#Populate
#Example
SkRect rect = { 10, 14, 50, 73 };
@@ -1346,15 +1136,7 @@
#Method void offset(const SkPoint& delta)
#In Inset_Outset_Offset
-Offsets Rect by adding delta.fX to fLeft, fRight; and by adding delta.fY to
-fTop, fBottom.
-
-If delta.fX is negative, moves Rect to the left.
-If delta.fX is positive, moves Rect to the right.
-If delta.fY is negative, moves Rect upward.
-If delta.fY is positive, moves Rect downward.
-
-#Param delta added to Rect ##
+#Populate
#Example
SkRect rect = { 10, 14, 50, 73 };
@@ -1375,11 +1157,7 @@
#In Inset_Outset_Offset
#Line # translates to (x, y) without changing width and height ##
-Offsets Rect so that fLeft equals newX, and fTop equals newY. width and height
-are unchanged.
-
-#Param newX stored in fLeft, preserving width() ##
-#Param newY stored in fTop, preserving height() ##
+#Populate
#Example
SkRect rect = { 10, 14, 50, 73 };
@@ -1400,15 +1178,7 @@
#In Inset_Outset_Offset
#Line # moves the sides symmetrically about the center ##
-Insets Rect by (dx, dy).
-
-If dx is positive, makes Rect narrower.
-If dx is negative, makes Rect wider.
-If dy is positive, makes Rect shorter.
-If dy is negative, makes Rect taller.
-
-#Param dx added to fLeft and subtracted from fRight ##
-#Param dy added to fTop and subtracted from fBottom ##
+#Populate
#Example
SkRect rect = { 10, 14, 50, 73 };
@@ -1429,15 +1199,7 @@
#In Inset_Outset_Offset
#Line # moves the sides symmetrically about the center ##
-Outsets Rect by (dx, dy).
-
-If dx is positive, makes Rect wider.
-If dx is negative, makes Rect narrower.
-If dy is positive, makes Rect taller.
-If dy is negative, makes Rect shorter.
-
-#Param dx subtracted to fLeft and added from fRight ##
-#Param dy subtracted to fTop and added from fBottom ##
+#Populate
#Example
SkRect rect = { 10, 14, 50, 73 };
@@ -1472,13 +1234,7 @@
#In Intersection
#Line # returns true if points are equal or inside ##
-Returns true if: fLeft <= x < fRight && fTop <= y < fBottom.
-Returns false if SkRect is empty.
-
-#Param x test Point x-coordinate ##
-#Param y test Point y-coordinate ##
-
-#Return true if (x, y) is inside Rect ##
+#Populate
#Example
SkRect rect = { 30, 50, 40, 60 };
@@ -1505,14 +1261,7 @@
#Method bool contains(const SkRect& r) const
#In Intersection
-Returns true if Rect contains r.
-Returns false if Rect is empty or r is empty.
-
-Rect contains r when Rect area completely includes r area.
-
-#Param r Rect contained ##
-
-#Return true if all sides of Rect are outside r ##
+#Populate
#Example
SkRect rect = { 30, 50, 40, 60 };
@@ -1539,14 +1288,7 @@
#Method bool contains(const SkIRect& r) const
#In Intersection
-Returns true if Rect contains r.
-Returns false if Rect is empty or r is empty.
-
-Rect contains r when Rect area completely includes r area.
-
-#Param r IRect contained ##
-
-#Return true if all sides of Rect are outside r ##
+#Populate
#Example
SkRect rect = { 30, 50, 40, 60 };
@@ -1574,14 +1316,7 @@
#In Intersection
#Line # sets to shared area; returns true if not empty ##
-Returns true if Rect intersects r, and sets Rect to intersection.
-Returns false if Rect does not intersect r, and leaves Rect unchanged.
-
-Returns false if either r or Rect is empty, leaving Rect unchanged.
-
-#Param r limit of result ##
-
-#Return true if r and Rect have area in common ##
+#Populate
#Example
#Description
@@ -1608,20 +1343,7 @@
#Method bool intersect(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom)
#In Intersection
-Constructs Rect to intersect from (left, top, right, bottom). Does not sort
-construction.
-
-Returns true if Rect intersects construction, and sets Rect to intersection.
-Returns false if Rect does not intersect construction, and leaves Rect unchanged.
-
-Returns false if either construction or Rect is empty, leaving Rect unchanged.
-
-#Param left x-axis minimum of constructed Rect ##
-#Param top y-axis minimum of constructed Rect ##
-#Param right x-axis maximum of constructed Rect ##
-#Param bottom y-axis maximum of constructed Rect ##
-
-#Return true if construction and Rect have area in common ##
+#Populate
#Example
#Description
@@ -1647,15 +1369,7 @@
#Method bool intersect(const SkRect& a, const SkRect& b)
#In Intersection
-Returns true if a intersects b, and sets Rect to intersection.
-Returns false if a does not intersect b, and leaves Rect unchanged.
-
-Returns false if either a or b is empty, leaving Rect unchanged.
-
-#Param a Rect to intersect ##
-#Param b Rect to intersect ##
-
-#Return true if a and b have area in common ##
+#Populate
#Example
SkRect result;
@@ -1677,18 +1391,7 @@
#In Intersection
#Line # returns true if areas overlap ##
-Constructs Rect to intersect from (left, top, right, bottom). Does not sort
-construction.
-
-Returns true if Rect intersects construction.
-Returns false if either construction or Rect is empty, or do not intersect.
-
-#Param left x-axis minimum of constructed Rect ##
-#Param top y-axis minimum of constructed Rect ##
-#Param right x-axis maximum of constructed Rect ##
-#Param bottom y-axis maximum of constructed Rect ##
-
-#Return true if construction and Rect have area in common ##
+#Populate
#Example
SkRect rect = { 10, 40, 50, 80 };
@@ -1707,12 +1410,7 @@
#Method bool intersects(const SkRect& r) const
#In Intersection
-Returns true if Rect intersects r.
-Returns false if either r or Rect is empty, or do not intersect.
-
-#Param r Rect to intersect ##
-
-#Return true if r and Rect have area in common ##
+#Populate
#Example
SkRect rect = { 10, 40, 50, 80 };
@@ -1732,13 +1430,7 @@
#In Intersection
#Line # returns true if areas overlap ##
-Returns true if a intersects b.
-Returns false if either a or b is empty, or do not intersect.
-
-#Param a Rect to intersect ##
-#Param b Rect to intersect ##
-
-#Return true if a and b have area in common ##
+#Populate
#Example
SkDebugf("%s intersection", SkRect::Intersects({10, 40, 50, 80}, {30, 60, 70, 90}) ? "" : "no ");
@@ -1762,18 +1454,7 @@
#In Join
#Line # sets to union of bounds ##
-Constructs Rect to intersect from (left, top, right, bottom). Does not sort
-construction.
-
-Sets Rect to the union of itself and the construction.
-
-Has no effect if construction is empty. Otherwise, if Rect is empty, sets
-Rect to construction.
-
-#Param left x-axis minimum of constructed Rect ##
-#Param top y-axis minimum of constructed Rect ##
-#Param right x-axis maximum of constructed Rect ##
-#Param bottom y-axis maximum of constructed Rect ##
+#Populate
#Example
SkRect rect = { 10, 20, 15, 25};
@@ -1793,12 +1474,7 @@
#Method void join(const SkRect& r)
#In Join
-Sets Rect to the union of itself and r.
-
-Has no effect if r is empty. Otherwise, if Rect is empty, sets
-Rect to r.
-
-#Param r expansion Rect ##
+#Populate
#Example
SkRect rect = { 10, 20, 15, 25};
@@ -1819,14 +1495,7 @@
#In Join
#Line # sets to union of bounds, asserting that argument is not empty ##
-Sets Rect to the union of itself and r.
-
-Asserts if r is empty and SK_DEBUG is defined.
-If Rect is empty, sets Rect to r.
-
-May produce incorrect results if r is empty.
-
-#Param r expansion Rect ##
+#Populate
#Example
#Description
@@ -1855,11 +1524,7 @@
#In Join
#Line # sets to union of bounds; skips empty check for both ##
-Sets Rect to the union of itself and the construction.
-
-May produce incorrect results if Rect or r is empty.
-
-#Param r expansion Rect ##
+#Populate
#Example
#Description
@@ -2051,9 +1716,7 @@
#In Sorting
#Line # orders sides from smaller to larger ##
-Swaps fLeft and fRight if fLeft is greater than fRight; and swaps
-fTop and fBottom if fTop is greater than fBottom. Result may be empty;
-and width() and height() will be zero or positive.
+#Populate
#Example
SkRect rect = { 30.5f, 50.5f, 20.5f, 10.5f };
@@ -2077,11 +1740,7 @@
#In Sorting
#In Constructors
#Line # constructs Rect, ordering sides from smaller to larger ##
-Returns Rect with fLeft and fRight swapped if fLeft is greater than fRight; and
-with fTop and fBottom swapped if fTop is greater than fBottom. Result may be empty;
-and width() and height() will be zero or positive.
-
-#Return sorted Rect ##
+#Populate
#Example
SkRect rect = { 30.5f, 50.5f, 20.5f, 10.5f };
@@ -2105,10 +1764,7 @@
#Method const SkScalar* asScalars() const
#In Property
#Line # returns pointer to members as array ##
-Returns pointer to first Scalar in Rect, to treat it as an array with four
-entries.
-
-#Return pointer to fLeft ##
+#Populate
#Example
SkRect rect = {7, 11, 13, 17};
@@ -2127,10 +1783,7 @@
#Method void dump(bool asHex) const
#In Property
#Line # sends text representation to standard output using floats ##
-Writes text representation of Rect to standard output. Set asHex to true to
-generate exact binary representations of floating point numbers.
-
-#Param asHex true if SkScalar values are written as hexadecimal ##
+#Populate
#Example
SkRect rect = {20, 30, 40, 50};
@@ -2155,11 +1808,7 @@
# ------------------------------------------------------------------------------
#Method void dump() const
-
-Writes text representation of Rect to standard output. The representation may be
-directly compiled as C++ code. Floating point values are written
-with limited precision; it may not be possible to reconstruct original Rect
-from output.
+#Populate
#Example
SkRect rect = {6.f / 7, 2.f / 3, 26.f / 10, 42.f / 6};
diff --git a/docs/SkRegion_Reference.bmh b/docs/SkRegion_Reference.bmh
index 6158cfa..7e72f6a 100644
--- a/docs/SkRegion_Reference.bmh
+++ b/docs/SkRegion_Reference.bmh
@@ -56,19 +56,16 @@
#Method Iterator()
#Line # constructs Region iterator ##
-Initializes Iterator with an empty Region. done() on Iterator returns true.
-Call reset() to initialized Iterator at a later time.
-
-#Return empty Region ierator ##
+#Populate
#Example
SkRegion::Iterator iter;
- SkRegion region;
- region.setRect({1, 2, 3, 4});
- iter.reset(region);
- auto r = iter.rect();
- SkDebugf("rect={%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);
-#StdOut
+ SkRegion region;
+ region.setRect({1, 2, 3, 4});
+ iter.reset(region);
+ auto r = iter.rect();
+ SkDebugf("rect={%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);
+#StdOut
rect={1,2,3,4}
##
##
@@ -81,18 +78,15 @@
#Method Iterator(const SkRegion& region)
#Line # constructs Region iterator ##
-Sets Iterator to return elements of IRect array in region.
-#Param region Region to iterate ##
-
-#Return Region iterator ##
+#Populate
#Example
- SkRegion region;
- region.setRect({1, 2, 3, 4});
- SkRegion::Iterator iter(region);
- auto r = iter.rect();
- SkDebugf("rect={%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);
-#StdOut
+ SkRegion region;
+ region.setRect({1, 2, 3, 4});
+ SkRegion::Iterator iter(region);
+ auto r = iter.rect();
+ SkDebugf("rect={%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);
+#StdOut
rect={1,2,3,4}
##
##
@@ -105,41 +99,37 @@
#Method bool rewind()
#Line # points Iterator to start ##
-
-Points Iterator to start of Region.
-Returns true if Region was set; otherwise, returns false.
-
-#Return true if Region was set ##
+#Populate
#Example
#Bug 8186
- auto debugster = [](const char* label, SkRegion::Iterator& iter, bool addRewind) -> void {
- if (addRewind) {
- bool success = iter.rewind();
- SkDebugf("%14s rewind success=%s\n", label, success ? "true" : "false");
- }
- auto r = iter.rect();
- SkDebugf("%14s rect={%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
- };
- SkRegion::Iterator iter;
- debugster("empty iter", iter, true);
- SkRegion region;
- iter.reset(region);
- debugster("empty region", iter, true);
- region.setRect({1, 2, 3, 4});
- iter.reset(region);
- debugster("after set rect", iter, false);
- debugster("after rewind", iter, true);
-#StdOut
+ auto debugster = [](const char* label, SkRegion::Iterator& iter, bool addRewind) -> void {
+ if (addRewind) {
+ bool success = iter.rewind();
+ SkDebugf("%14s rewind success=%s\n", label, success ? "true" : "false");
+ }
+ auto r = iter.rect();
+ SkDebugf("%14s rect={%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
+ };
+ SkRegion::Iterator iter;
+ debugster("empty iter", iter, true);
+ SkRegion region;
+ iter.reset(region);
+ debugster("empty region", iter, true);
+ region.setRect({1, 2, 3, 4});
+ iter.reset(region);
+ debugster("after set rect", iter, false);
+ debugster("after rewind", iter, true);
+#StdOut
#Volatile
- empty iter rewind success=false
- empty iter rect={0,0,0,0}
- empty region rewind success=true
- empty region rect={0,0,0,0}
-after set rect rect={1,2,3,4}
- after rewind rewind success=true
- after rewind rect={1,2,3,4}
-##
+ empty iter rewind success=false
+ empty iter rect={0,0,0,0}
+ empty region rewind success=true
+ empty region rect={0,0,0,0}
+after set rect rect={1,2,3,4}
+ after rewind rewind success=true
+ after rewind rect={1,2,3,4}
+##
##
#SeeAlso reset
@@ -150,27 +140,24 @@
#Method void reset(const SkRegion& region)
#Line # sets Region to iterate ##
-
-Resets iterator, using the new Region.
-
-#Param region Region to iterate ##
+#Populate
#Example
- auto debugster = [](const char* label, SkRegion::Iterator& iter) -> void {
- SkDebugf("%14s: done=%s\n", label, iter.done() ? "true" : "false");
- };
- SkRegion region;
- SkRegion::Iterator iter(region);
- debugster("empty region", iter);
- region.setRect({1, 2, 3, 4});
- debugster("after set rect", iter);
- iter.reset(region);
- debugster("after reset", iter);
-#StdOut
- empty region: done=true
-after set rect: done=true
- after reset: done=false
-##
+ auto debugster = [](const char* label, SkRegion::Iterator& iter) -> void {
+ SkDebugf("%14s: done=%s\n", label, iter.done() ? "true" : "false");
+ };
+ SkRegion region;
+ SkRegion::Iterator iter(region);
+ debugster("empty region", iter);
+ region.setRect({1, 2, 3, 4});
+ debugster("after set rect", iter);
+ iter.reset(region);
+ debugster("after reset", iter);
+#StdOut
+ empty region: done=true
+after set rect: done=true
+ after reset: done=false
+##
##
#SeeAlso rewind
@@ -181,20 +168,17 @@
#Method bool done() const
#Line # returns if data parsing is complete ##
-
-Returns true if Iterator is pointing to final IRect in Region.
-
-#Return true if data parsing is complete ##
+#Populate
#Example
- SkRegion region;
- SkRegion::Iterator iter(region);
- SkDebugf("done=%s\n", iter.done() ? "true" : "false");
- region.setRect({1, 2, 3, 4});
- iter.rewind();
- SkDebugf("done=%s\n", iter.done() ? "true" : "false");
+ SkRegion region;
+ SkRegion::Iterator iter(region);
+ SkDebugf("done=%s\n", iter.done() ? "true" : "false");
+ region.setRect({1, 2, 3, 4});
+ iter.rewind();
+ SkDebugf("done=%s\n", iter.done() ? "true" : "false");
#StdOut
-done=true
+done=true
done=false
##
##
@@ -207,21 +191,20 @@
#Method void next()
#Line # advances to next IRect ##
-
-Advances Iterator to next IRect in Region if it is not done.
+#Populate
#Example
- SkRegion region;
- SkIRect rects[] = {{1, 2, 3, 4}, {5, 6, 7, 8}};
- region.setRects(rects, SK_ARRAY_COUNT(rects));
- SkRegion::Iterator iter(region);
- do {
- auto r2 = iter.rect();
- SkDebugf("rect={%d,%d,%d,%d}\n", r2.fLeft, r2.fTop, r2.fRight, r2.fBottom);
- iter.next();
- } while (!iter.done());
+ SkRegion region;
+ SkIRect rects[] = {{1, 2, 3, 4}, {5, 6, 7, 8}};
+ region.setRects(rects, SK_ARRAY_COUNT(rects));
+ SkRegion::Iterator iter(region);
+ do {
+ auto r2 = iter.rect();
+ SkDebugf("rect={%d,%d,%d,%d}\n", r2.fLeft, r2.fTop, r2.fRight, r2.fBottom);
+ iter.next();
+ } while (!iter.done());
#StdOut
-rect={1,2,3,4}
+rect={1,2,3,4}
rect={5,6,7,8}
##
##
@@ -234,25 +217,21 @@
#Method const SkIRect& rect() const
#Line # returns part of Region as IRect ##
-
-Returns IRect element in Region. Does not return predictable results if Region
-is empty.
-
-#Return part of Region as IRect ##
+#Populate
#Example
#Bug 8186
- SkRegion region;
- SkRegion::Iterator iter(region);
- auto r1 = iter.rect();
- SkDebugf("rect={%d,%d,%d,%d}\n", r1.fLeft, r1.fTop, r1.fRight, r1.fBottom);
- region.setRect({1, 2, 3, 4});
- iter.rewind();
- auto r2 = iter.rect();
+ SkRegion region;
+ SkRegion::Iterator iter(region);
+ auto r1 = iter.rect();
+ SkDebugf("rect={%d,%d,%d,%d}\n", r1.fLeft, r1.fTop, r1.fRight, r1.fBottom);
+ region.setRect({1, 2, 3, 4});
+ iter.rewind();
+ auto r2 = iter.rect();
SkDebugf("rect={%d,%d,%d,%d}\n", r2.fLeft, r2.fTop, r2.fRight, r2.fBottom);
#StdOut
#Volatile
-rect={0,0,0,0}
+rect={0,0,0,0}
rect={1,2,3,4}
##
##
@@ -265,19 +244,16 @@
#Method const SkRegion* rgn() const
#Line # returns original Region ##
-
-Returns Region if set; otherwise, returns nullptr.
-
-#Return iterated Region ##
+#Populate
#Example
- SkRegion region;
- SkIRect rects[] = {{1, 2, 3, 4}, {3, 4, 5, 6}};
- region.setRects(rects, SK_ARRAY_COUNT(rects));
- SkRegion::Iterator iter(region);
- auto r = iter.rect();
- SkDebugf("rect={%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);
- auto b = iter.rgn()->getBounds();
+ SkRegion region;
+ SkIRect rects[] = {{1, 2, 3, 4}, {3, 4, 5, 6}};
+ region.setRects(rects, SK_ARRAY_COUNT(rects));
+ SkRegion::Iterator iter(region);
+ auto r = iter.rect();
+ SkDebugf("rect={%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);
+ auto b = iter.rgn()->getBounds();
SkDebugf("bounds={%d,%d,%d,%d}\n", b.fLeft, b.fTop, b.fRight, b.fBottom);
##
@@ -309,21 +285,15 @@
#Method Cliperator(const SkRegion& region, const SkIRect& clip)
#Line # constructs Region iterator with clip ##
-
-Sets Cliperator to return elements of IRect array in Region within clip.
-
-#Param region Region to iterate ##
-#Param clip bounds of iteration ##
-
-#Return Region iterator ##
+#Populate
#Example
- SkRegion region;
- region.setRect({1, 2, 3, 4});
- SkRegion::Cliperator clipper(region, {0, 0, 2, 3});
- auto r = clipper.rect();
- SkDebugf("rect={%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);
-#StdOut
+ SkRegion region;
+ region.setRect({1, 2, 3, 4});
+ SkRegion::Cliperator clipper(region, {0, 0, 2, 3});
+ auto r = clipper.rect();
+ SkDebugf("rect={%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);
+#StdOut
rect={1,2,2,3}
##
##
@@ -336,22 +306,19 @@
#Method bool done()
#Line # returns if data parsing is complete ##
-
-Returns true if Cliperator is pointing to final IRect in Region.
-
-#Return true if data parsing is complete ##
+#Populate
#Example
- auto debugster = [](const char* label, SkRegion& region) -> void {
- SkRegion::Cliperator clipper(region, {0, 0, 5, 5});
+ auto debugster = [](const char* label, SkRegion& region) -> void {
+ SkRegion::Cliperator clipper(region, {0, 0, 5, 5});
SkDebugf("%14s done=%s\n", label, clipper.done() ? "true" : "false");
- };
- SkRegion region;
- debugster("empty region", region);
- region.setRect({1, 2, 3, 4});
- debugster("after add rect", region);
-#StdOut
- empty region done=true
+ };
+ SkRegion region;
+ debugster("empty region", region);
+ region.setRect({1, 2, 3, 4});
+ debugster("after add rect", region);
+#StdOut
+ empty region done=true
after add rect done=false
##
##
@@ -364,21 +331,20 @@
#Method void next()
#Line # advances to next IRect within clip ##
-
-Advances iterator to next IRect in Region contained by clip.
+#Populate
#Example
- SkRegion region;
- SkIRect rects[] = {{1, 2, 3, 4}, {5, 6, 7, 8}};
- region.setRects(rects, SK_ARRAY_COUNT(rects));
- SkRegion::Cliperator clipper(region, {0, 3, 8, 7});
- do {
- auto r2 = clipper.rect();
- SkDebugf("rect={%d,%d,%d,%d}\n", r2.fLeft, r2.fTop, r2.fRight, r2.fBottom);
- clipper.next();
+ SkRegion region;
+ SkIRect rects[] = {{1, 2, 3, 4}, {5, 6, 7, 8}};
+ region.setRects(rects, SK_ARRAY_COUNT(rects));
+ SkRegion::Cliperator clipper(region, {0, 3, 8, 7});
+ do {
+ auto r2 = clipper.rect();
+ SkDebugf("rect={%d,%d,%d,%d}\n", r2.fLeft, r2.fTop, r2.fRight, r2.fBottom);
+ clipper.next();
} while (!clipper.done());
#StdOut
-rect={1,3,3,4}
+rect={1,3,3,4}
rect={5,6,7,7}
##
##
@@ -391,29 +357,24 @@
#Method const SkIRect& rect() const
#Line # returns part of Region as IRect intersected with clip ##
-
-Returns IRect element in Region, intersected with clip passed to Cliperator
-constructor. Does not return predictable results if Region
-is empty.
-
-#Return part of Region inside clip as IRect ##
+#Populate
#Example
#Bug 8186
- auto debugster = [](const char* label, SkRegion& region) -> void {
- SkRegion::Cliperator clipper(region, {0, 0, 5, 3});
- auto r = clipper.rect();
- SkDebugf("%14s rect={%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
+ auto debugster = [](const char* label, SkRegion& region) -> void {
+ SkRegion::Cliperator clipper(region, {0, 0, 5, 3});
+ auto r = clipper.rect();
+ SkDebugf("%14s rect={%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
};
- SkRegion region;
- debugster("empty region", region);
- region.setRect({1, 2, 3, 4});
- debugster("after set rect", region);
-#StdOut
+ SkRegion region;
+ debugster("empty region", region);
+ region.setRect({1, 2, 3, 4});
+ debugster("after set rect", region);
+#StdOut
#Volatile
- empty region rect={1094713344,1065353216,0,-1}
-after set rect rect={1,2,3,3}
-##
+ empty region rect={1094713344,1065353216,0,-1}
+after set rect rect={1,2,3,3}
+##
##
#SeeAlso next done
@@ -441,24 +402,15 @@
#Method Spanerator(const SkRegion& region, int y, int left, int right)
#Line # constructs Region iterator on scan line ##
-
-Sets Spanerator to return line segments in Region on scan line.
-
-
-#Param region Region to iterate ##
-#Param y horizontal line to intersect ##
-#Param left bounds of iteration ##
-#Param right bounds of iteration ##
-
-#Return Region iterator ##
+#Populate
#Example
- SkRegion region;
- region.setRect({1, 2, 3, 4});
- SkRegion::Spanerator spanner(region, 3, 2, 4);
- int left, right;
- bool result = spanner.next(&left, &right);
- SkDebugf("result=%s left=%d right=%d\n", result ? "true" : "false", left, right);
+ SkRegion region;
+ region.setRect({1, 2, 3, 4});
+ SkRegion::Spanerator spanner(region, 3, 2, 4);
+ int left, right;
+ bool result = spanner.next(&left, &right);
+ SkDebugf("result=%s left=%d right=%d\n", result ? "true" : "false", left, right);
##
#SeeAlso SkRegion Iterator Cliperator
@@ -469,30 +421,23 @@
#Method bool next(int* left, int* right)
#Line # advances to next span on horizontal line ##
-
-Advances iterator to next span intersecting Region within line segment provided
-in constructor. Returns true if interval was found.
-
-#Param left pointer to span start; may be nullptr ##
-#Param right pointer to span end; may be nullptr ##
-
-#Return true if interval was found ##
+#Populate
#Example
- auto debugster = [](const char* label, SkRegion& region) -> void {
- SkRegion::Spanerator spanner(region, 3, 2, 4);
- int left, right;
- bool result = spanner.next(&left, &right);
- SkDebugf("%14s: result=%s", label, result ? "true" : "false");
- if (result) SkDebugf(" left=%d right=%d", left, right);
- SkDebugf("\n");
- };
- SkRegion region;
- debugster("empty region", region);
- region.setRect({1, 2, 3, 4});
+ auto debugster = [](const char* label, SkRegion& region) -> void {
+ SkRegion::Spanerator spanner(region, 3, 2, 4);
+ int left, right;
+ bool result = spanner.next(&left, &right);
+ SkDebugf("%14s: result=%s", label, result ? "true" : "false");
+ if (result) SkDebugf(" left=%d right=%d", left, right);
+ SkDebugf("\n");
+ };
+ SkRegion region;
+ debugster("empty region", region);
+ region.setRect({1, 2, 3, 4});
debugster("after set rect", region);
#StdOut
- empty region: result=false
+ empty region: result=false
after set rect: result=true left=2 right=3
##
##
@@ -508,11 +453,7 @@
#Method SkRegion()
#In Constructors
#Line # constructs with default values ##
-
-Constructs an empty Region. Region is set to empty bounds
-at (0, 0) with zero width and height.
-
-#Return empty Region ##
+#Populate
#Example
SkRegion region;
@@ -532,23 +473,12 @@
#Method SkRegion(const SkRegion& region)
#In Constructors
#Line # makes a shallow copy ##
-Constructs a copy of an existing region.
-Copy constructor makes two regions identical by value. Internally, region and
-the returned result share pointer values. The underlying Rect array is
-copied when modified.
-
-Creating a Region copy is very efficient and never allocates memory.
-Regions are always copied by value from the interface; the underlying shared
-pointers are not exposed.
-
-#Param region Region to copy by value ##
-
-#Return copy of Region ##
+#Populate
#Example
- auto debugster = [](const char* label, SkRegion& region) -> void {
- auto r = region.getBounds();
- SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
+ auto debugster = [](const char* label, SkRegion& region) -> void {
+ auto r = region.getBounds();
+ SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
};
SkRegion region({1, 2, 3, 4});
SkRegion region2(region);
@@ -559,10 +489,10 @@
debugster("region bounds", region);
debugster("region2 bounds", region2);
#StdOut
- region bounds: {1,2,3,4}
-region2 bounds: {1,2,3,4}
- after region set empty:
- region bounds: {0,0,0,0}
+ region bounds: {1,2,3,4}
+region2 bounds: {1,2,3,4}
+ after region set empty:
+ region bounds: {0,0,0,0}
region2 bounds: {1,2,3,4}
##
##
@@ -576,11 +506,7 @@
#Method explicit SkRegion(const SkIRect& rect)
#In Constructors
#Line # constructs Region matching IRect ##
-Constructs a rectangular Region matching the bounds of rect.
-
-#Param rect bounds of constructed Region ##
-
-#Return rectangular Region ##
+#Populate
#Example
SkRegion region({1, 2, 3, 4});
@@ -598,20 +524,20 @@
#Method ~SkRegion()
#In Constructors
#Line # decreases Reference_Count of owned objects ##
-Releases ownership of any shared data and deletes data if Region is sole owner.
+#Populate
#Example
#Description
-delete calls Region Destructor, but copy of original in region2 is unaffected.
+delete calls Region destructor, but copy of original in region2 is unaffected.
##
SkRegion* region = new SkRegion({1, 2, 3, 4});
SkRegion region2(*region);
delete region;
- auto r = region2.getBounds();
- SkDebugf("region2 bounds: {%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);
-#StdOut
-region2 bounds: {1,2,3,4}
-##
+ auto r = region2.getBounds();
+ SkDebugf("region2 bounds: {%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);
+#StdOut
+region2 bounds: {1,2,3,4}
+##
##
#SeeAlso SkRegion() SkRegion(const SkRegion& region) SkRegion(const SkIRect& rect) operator=(const SkRegion& region)
@@ -623,32 +549,21 @@
#Method SkRegion& operator=(const SkRegion& region)
#In Operators
#Line # makes a shallow copy ##
-Constructs a copy of an existing region.
-Makes two regions identical by value. Internally, region and
-the returned result share pointer values. The underlying Rect array is
-copied when modified.
-
-Creating a Region copy is very efficient and never allocates memory.
-Regions are always copied by value from the interface; the underlying shared
-pointers are not exposed.
-
-#Param region Region to copy by value ##
-
-#Return Region to copy by value ##
+#Populate
#Example
- auto debugster = [](const char* label, SkRegion& region) -> void {
- auto r = region.getBounds();
- SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
+ auto debugster = [](const char* label, SkRegion& region) -> void {
+ auto r = region.getBounds();
+ SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
};
SkRegion region1({1, 2, 3, 4});
SkRegion region2 = region1;
debugster("region1 bounds", region1);
debugster("region2 bounds", region2);
-#StdOut
-region1 bounds: {1,2,3,4}
-region2 bounds: {1,2,3,4}
-##
+#StdOut
+region1 bounds: {1,2,3,4}
+region2 bounds: {1,2,3,4}
+##
##
#SeeAlso set swap SkRegion(const SkRegion& region)
@@ -660,13 +575,7 @@
#Method bool operator==(const SkRegion& other)_const
#In Operators
#Line # compares Regions for equality ##
-
-Compares Region and other; returns true if they enclose exactly
-the same area.
-
-#Param other Region to compare ##
-
-#Return true if Region pair are equivalent ##
+#Populate
#Example
auto debugster = [](const char* prefix, const SkRegion& a, const SkRegion& b) -> void {
@@ -680,8 +589,8 @@
one.setEmpty();
debugster("set empty", one, two);
#StdOut
-empty one == two
-set rect one != two
+empty one == two
+set rect one != two
set empty one == two
##
##
@@ -695,12 +604,7 @@
#Method bool operator!=(const SkRegion& other)_const
#In Operators
#Line # compares Regions for inequality ##
-
-Compares Region and other; returns true if they do not enclose the same area.
-
-#Param other Region to compare ##
-
-#Return true if Region pair are not equivalent ##
+#Populate
#Example
auto debugster = [](const char* prefix, const SkRegion& a, const SkRegion& b) -> void {
@@ -715,8 +619,8 @@
two.op({1, 3, 3, 4}, SkRegion::kUnion_Op);
debugster("union rect", one, two);
#StdOut
-empty one == two
-set rect one != two
+empty one == two
+set rect one != two
union rect one == two
##
##
@@ -730,34 +634,22 @@
#Method bool set(const SkRegion& src)
#In Constructors
#Line # makes a shallow copy ##
-
-Sets Region to src, and returns true if src bounds is not empty.
-This makes Region and src identical by value. Internally,
-Region and src share pointer values. The underlying Rect array is
-copied when modified.
-
-Creating a Region copy is very efficient and never allocates memory.
-Regions are always copied by value from the interface; the underlying shared
-pointers are not exposed.
-
-#Param src Region to copy ##
-
-#Return copy of src ##
+#Populate
#Example
- auto debugster = [](const char* label, SkRegion& region) -> void {
- auto r = region.getBounds();
- SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
+ auto debugster = [](const char* label, SkRegion& region) -> void {
+ auto r = region.getBounds();
+ SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
};
SkRegion region1({1, 2, 3, 4});
SkRegion region2;
region2.set(region1);
debugster("region1 bounds", region1);
debugster("region2 bounds", region2);
-#StdOut
-region1 bounds: {1,2,3,4}
-region2 bounds: {1,2,3,4}
-##
+#StdOut
+region1 bounds: {1,2,3,4}
+region2 bounds: {1,2,3,4}
+##
##
#SeeAlso operator=(const SkRegion& region) swap SkRegion(const SkRegion& region)
@@ -769,30 +661,22 @@
#Method void swap(SkRegion& other)
#In Operators
#Line # exchanges Region pair ##
-
-Exchanges IRect array of Region and other. swap() internally exchanges pointers,
-so it is lightweight and does not allocate memory.
-
-swap() usage has largely been replaced by operator=(const SkRegion& region).
-Paths do not copy their content on assignment until they are written to,
-making assignment as efficient as swap().
-
-#Param other operator=(const SkRegion& region) set ##
+#Populate
#Example
- auto debugster = [](const char* label, SkRegion& region) -> void {
- auto r = region.getBounds();
- SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
+ auto debugster = [](const char* label, SkRegion& region) -> void {
+ auto r = region.getBounds();
+ SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
};
SkRegion region1({1, 2, 3, 4});
SkRegion region2;
region1.swap(region2);
debugster("region1 bounds", region1);
debugster("region2 bounds", region2);
-#StdOut
-region1 bounds: {0,0,0,0}
-region2 bounds: {1,2,3,4}
-##
+#StdOut
+region1 bounds: {0,0,0,0}
+region2 bounds: {1,2,3,4}
+##
##
#SeeAlso operator=(const SkRegion& region) set SkRegion(const SkRegion& region)
@@ -804,17 +688,11 @@
#Method bool isEmpty() const
#In Property
#Line # returns if bounds has no width or height ##
-
-Returns true if Region is empty.
-Empty Region has bounds width or height less than or equal to zero.
-SkRegion() constructs empty Region; setEmpty
-and setRect with dimensionless data make Region empty.
-
-#Return true if bounds has no width or height ##
+#Populate
#Example
- auto debugster = [](const char* label, SkRegion& region) -> void {
- SkDebugf("%14s: region is %s" "empty\n", label, region.isEmpty() ? "" : "not ");
+ auto debugster = [](const char* label, SkRegion& region) -> void {
+ SkDebugf("%14s: region is %s" "empty\n", label, region.isEmpty() ? "" : "not ");
};
SkRegion region;
debugster("initial", region);
@@ -823,8 +701,8 @@
region.setEmpty();
debugster("set empty", region);
#StdOut
- initial: region is empty
- set rect: region is not empty
+ initial: region is empty
+ set rect: region is not empty
set empty: region is empty
##
##
@@ -838,10 +716,7 @@
#Method bool isRect() const
#In Property
#Line # returns if Region contains one IRect ##
-
-Returns true if Region is one IRect with positive dimensions.
-
-#Return true if Region contains one IRect ##
+#Populate
#Example
auto debugster = [](const char* label, const SkRegion& region) -> void {
@@ -854,8 +729,8 @@
region.setEmpty();
debugster("set empty", region);
#StdOut
-initial: region is not rect
-set rect: region is rect
+initial: region is not rect
+set rect: region is rect
set empty: region is not rect
##
##
@@ -869,24 +744,21 @@
#Method bool isComplex() const
#In Property
#Line # returns true if Region contains more than one IRect ##
-
-Returns true if Region is described by more than one rectangle.
-
-#Return true if Region contains more than one IRect ##
+#Populate
#Example
- auto debugster = [](const char* label, const SkRegion& region) -> void {
- SkDebugf("%s: region is %s" "complex\n", label, region.isComplex() ? "" : "not ");
- };
- SkRegion region;
- debugster("initial", region);
- region.setRect({1, 2, 3, 4});
- debugster("set rect", region);
- region.op({2, 3, 4, 5}, SkRegion::kUnion_Op);
+ auto debugster = [](const char* label, const SkRegion& region) -> void {
+ SkDebugf("%s: region is %s" "complex\n", label, region.isComplex() ? "" : "not ");
+ };
+ SkRegion region;
+ debugster("initial", region);
+ region.setRect({1, 2, 3, 4});
+ debugster("set rect", region);
+ region.op({2, 3, 4, 5}, SkRegion::kUnion_Op);
debugster("op rect", region);
#StdOut
-initial: region is not complex
-set rect: region is not complex
+initial: region is not complex
+set rect: region is not complex
op rect: region is complex
##
##
@@ -900,20 +772,16 @@
#Method const SkIRect& getBounds() const
#In Property
#Line # returns maximum and minimum of IRect array ##
-
-Returns minimum and maximum axes values of IRect array.
-Returns (0, 0, 0, 0) if Region is empty.
-
-#Return combined bounds of all IRect elements ##
+#Populate
#Example
- SkRegion region({1, 2, 3, 4});
- region.op({2, 3, 4, 5}, SkRegion::kUnion_Op);
- auto r = region.getBounds();
- SkDebugf("bounds: {%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);
-#StdOut
-bounds: {1,2,4,5}
-##
+ SkRegion region({1, 2, 3, 4});
+ region.op({2, 3, 4, 5}, SkRegion::kUnion_Op);
+ auto r = region.getBounds();
+ SkDebugf("bounds: {%d,%d,%d,%d}\n", r.fLeft, r.fTop, r.fRight, r.fBottom);
+#StdOut
+bounds: {1,2,4,5}
+##
##
#SeeAlso isEmpty isRect
@@ -925,29 +793,21 @@
#Method int computeRegionComplexity() const
#In Property
#Line # returns relative complexity ##
-
-Returns a value that increases with the number of
-elements in Region. Returns zero if Region is empty.
-Returns one if Region equals IRect; otherwise, returns
-value greater than one indicating that Region is complex.
-
-Call to compare Regions for relative complexity.
-
-#Return relative complexity ##
+#Populate
#Example
- auto debugster = [](const char* label, const SkRegion& region) -> void {
- SkDebugf("%s: region complexity %d\n", label, region.computeRegionComplexity());
- };
- SkRegion region;
- debugster("initial", region);
- region.setRect({1, 2, 3, 4});
- debugster("set rect", region);
- region.op({2, 3, 4, 5}, SkRegion::kUnion_Op);
+ auto debugster = [](const char* label, const SkRegion& region) -> void {
+ SkDebugf("%s: region complexity %d\n", label, region.computeRegionComplexity());
+ };
+ SkRegion region;
+ debugster("initial", region);
+ region.setRect({1, 2, 3, 4});
+ debugster("set rect", region);
+ region.op({2, 3, 4, 5}, SkRegion::kUnion_Op);
debugster("op rect", region);
#StdOut
-initial: region complexity 0
-set rect: region complexity 1
+initial: region complexity 0
+set rect: region complexity 1
op rect: region complexity 3
##
##
@@ -961,24 +821,17 @@
#Method bool getBoundaryPath(SkPath* path) const
#In Property
#Line # appends Region outline to Path ##
-
-Appends outline of Region to path.
-Returns true if Region is not empty; otherwise, returns false, and leaves path
-unmodified.
-
-#Param path Path to append to ##
-
-#Return true if path changed ##
+#Populate
#Example
#Height 100
- SkRegion region;
- region.setRect({10, 20, 90, 60});
- region.op({30, 40, 60, 80}, SkRegion::kXOR_Op);
- canvas->drawRegion(region, SkPaint());
- SkPath path;
- region.getBoundaryPath(&path);
- path.offset(100, 0);
+ SkRegion region;
+ region.setRect({10, 20, 90, 60});
+ region.op({30, 40, 60, 80}, SkRegion::kXOR_Op);
+ canvas->drawRegion(region, SkPaint());
+ SkPath path;
+ region.getBoundaryPath(&path);
+ path.offset(100, 0);
canvas->drawPath(path, SkPaint());
##
@@ -991,16 +844,12 @@
#Method bool setEmpty()
#In Constructors
#Line # constructs with default values ##
-
-Constructs an empty Region. Region is set to empty bounds
-at (0, 0) with zero width and height. Always returns false.
-
-#Return false ##
+#Populate
#Example
- auto debugster = [](const char* label, SkRegion& region) -> void {
- auto r = region.getBounds();
- SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
+ auto debugster = [](const char* label, SkRegion& region) -> void {
+ auto r = region.getBounds();
+ SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
};
SkRegion region({1, 2, 3, 4});
debugster("region bounds", region);
@@ -1008,9 +857,9 @@
SkDebugf(" after region set empty:\n");
debugster("region bounds", region);
#StdOut
- region bounds: {1,2,3,4}
- after region set empty:
- region bounds: {0,0,0,0}
+ region bounds: {1,2,3,4}
+ after region set empty:
+ region bounds: {0,0,0,0}
##
##
@@ -1023,13 +872,7 @@
#Method bool setRect(const SkIRect& rect)
#In Constructors
#Line # constructs Region matching IRect ##
-
-Constructs a rectangular Region matching the bounds of rect.
-If rect is empty, constructs empty and returns false.
-
-#Param rect bounds of constructed Region ##
-
-#Return true if rect is not empty ##
+#Populate
#Example
SkRegion region({1, 2, 3, 4});
@@ -1038,8 +881,8 @@
SkDebugf("region is %s" "empty\n", region.isEmpty() ? "" : "not ");
SkDebugf("setEmpty: %s\n", setEmpty ? "true" : "false");
#StdOut
-region is not empty
-region is empty
+region is not empty
+region is empty
setEmpty: false
##
##
@@ -1053,23 +896,13 @@
#Method bool setRect(int32_t left, int32_t top, int32_t right, int32_t bottom)
#In Constructors
#Line # constructs Region matching bounds ##
-
-Constructs Region with bounds (left, top, right, bottom).
-Returns true if left is less than right and top is less than bottom; otherwise,
-constructs empty Region and returns false.
-
-#Param left edge of bounds on x-axis ##
-#Param top edge of bounds on y-axis ##
-#Param right edge of bounds on x-axis ##
-#Param bottom edge of bounds on y-axis ##
-
-#Return rectangular Region ##
+#Populate
#Example
- auto debugster = [](const char* label, bool success, SkRegion& region) -> void {
- auto r = region.getBounds();
- SkDebugf("%14s: success:%s {%d,%d,%d,%d}\n", label, success ? "true" : "false",
- r.fLeft, r.fTop, r.fRight, r.fBottom);
+ auto debugster = [](const char* label, bool success, SkRegion& region) -> void {
+ auto r = region.getBounds();
+ SkDebugf("%14s: success:%s {%d,%d,%d,%d}\n", label, success ? "true" : "false",
+ r.fLeft, r.fTop, r.fRight, r.fBottom);
};
SkRegion region;
bool success = region.setRect(1, 2, 3, 4);
@@ -1077,7 +910,7 @@
success = region.setRect(3, 2, 1, 4);
debugster("set to: 3,2,1,4", success, region);
#StdOut
-set to: 1,2,3,4: success:true {1,2,3,4}
+set to: 1,2,3,4: success:true {1,2,3,4}
set to: 3,2,1,4: success:false {0,0,0,0}
##
##
@@ -1091,28 +924,19 @@
#Method bool setRects(const SkIRect rects[], int count)
#In Constructors
#Line # sets IRect array ##
-
-Constructs Region as the union of IRect in rects array. If count is
-zero, constructs empty Region. Returns false if constructed Region is empty.
-
-May be faster than repeated calls to op().
-
-#Param rects array of IRects ##
-#Param count array size ##
-
-#Return true if constructed Region is not empty ##
+#Populate
#Example
#Height 70
- SkIRect rects[] = { {10, 10, 40, 40}, {20, 20, 50, 50}, {30, 30, 60, 60} };
- SkRegion region;
- region.setRects(rects, SK_ARRAY_COUNT(rects));
- canvas->drawRegion(region, SkPaint());
- region.setEmpty();
- for (auto add : rects) {
- region.op(add, SkRegion::kUnion_Op);
- }
- region.translate(100, 0);
+ SkIRect rects[] = { {10, 10, 40, 40}, {20, 20, 50, 50}, {30, 30, 60, 60} };
+ SkRegion region;
+ region.setRects(rects, SK_ARRAY_COUNT(rects));
+ canvas->drawRegion(region, SkPaint());
+ region.setEmpty();
+ for (auto add : rects) {
+ region.op(add, SkRegion::kUnion_Op);
+ }
+ region.translate(100, 0);
canvas->drawRegion(region, SkPaint());
##
@@ -1125,39 +949,27 @@
#Method bool setRegion(const SkRegion& region)
#In Constructors
#Line # copies Region ##
-
-Constructs a copy of an existing region.
-Makes two regions identical by value. Internally, region and
-the returned result share pointer values. The underlying Rect array is
-copied when modified.
-
-Creating a Region copy is very efficient and never allocates memory.
-Regions are always copied by value from the interface; the underlying shared
-pointers are not exposed.
-
-#Param region Region to copy by value ##
-
-#Return Region to copy by value ##
+#Populate
#Example
- auto debugster = [](const char* label, SkRegion& region) -> void {
- auto r = region.getBounds();
- SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
- };
- SkRegion region({1, 2, 3, 4});
- SkRegion region2;
- region2.setRegion(region);
- debugster("region bounds", region);
- debugster("region2 bounds", region2);
- region2.setEmpty();
- SkDebugf(" after region set empty:\n");
- debugster("region bounds", region);
+ auto debugster = [](const char* label, SkRegion& region) -> void {
+ auto r = region.getBounds();
+ SkDebugf("%14s: {%d,%d,%d,%d}\n", label, r.fLeft, r.fTop, r.fRight, r.fBottom);
+ };
+ SkRegion region({1, 2, 3, 4});
+ SkRegion region2;
+ region2.setRegion(region);
+ debugster("region bounds", region);
+ debugster("region2 bounds", region2);
+ region2.setEmpty();
+ SkDebugf(" after region set empty:\n");
+ debugster("region bounds", region);
debugster("region2 bounds", region2);
#StdOut
- region bounds: {1,2,3,4}
-region2 bounds: {1,2,3,4}
- after region set empty:
- region bounds: {1,2,3,4}
+ region bounds: {1,2,3,4}
+region2 bounds: {1,2,3,4}
+ after region set empty:
+ region bounds: {1,2,3,4}
region2 bounds: {0,0,0,0}
##
##
@@ -1171,33 +983,23 @@
#Method bool setPath(const SkPath& path, const SkRegion& clip)
#In Constructors
#Line # constructs Region from clipped Path ##
-
-Constructs Region to match outline of path within clip.
-Returns false if constructed Region is empty.
-
-Constructed Region draws the same pixels as path through clip when
-Anti_Aliasing is disabled.
-
-#Param path Path providing outline ##
-#Param clip Region containing path ##
-
-#Return true if constructed Region is not empty ##
+#Populate
#Example
#Height 120
- SkPaint paint;
- paint.setTextSize(128);
- SkPath textPath;
- paint.getTextPath("Q", 1, 0, 110, &textPath);
- SkIRect clipRect = {20, 20, 100, 120};
- SkRegion clipRegion(clipRect);
- SkRegion region;
- region.setPath(textPath, clipRegion);
- canvas->drawRegion(region, SkPaint());
- clipRect.offset(100, 0);
- textPath.offset(100, 0);
- canvas->clipRect(SkRect::Make(clipRect), false);
- canvas->drawPath(textPath, SkPaint());
+ SkPaint paint;
+ paint.setTextSize(128);
+ SkPath textPath;
+ paint.getTextPath("Q", 1, 0, 110, &textPath);
+ SkIRect clipRect = {20, 20, 100, 120};
+ SkRegion clipRegion(clipRect);
+ SkRegion region;
+ region.setPath(textPath, clipRegion);
+ canvas->drawRegion(region, SkPaint());
+ clipRect.offset(100, 0);
+ textPath.offset(100, 0);
+ canvas->clipRect(SkRect::Make(clipRect), false);
+ canvas->drawPath(textPath, SkPaint());
##
#SeeAlso setRects op
@@ -1209,26 +1011,20 @@
#Method bool intersects(const SkIRect& rect) const
#In Intersection
#Line # returns true if areas overlap ##
-
-Returns true if Region intersects rect.
-Returns false if either rect or Region is empty, or do not intersect.
-
-#Param rect IRect to intersect ##
-
-#Return true if rect and Region have area in common ##
+#Populate
#Example
#Duration 4
#Height 128
- SkPaint paint;
- paint.setTextSize(128);
- SkPath textPath;
- paint.getTextPath("W", 1, 20, 110, &textPath);
- SkRegion region;
- region.setPath(textPath, SkRegion({0, 0, 256, 256}));
- canvas->drawRegion(region, SkPaint());
- SkIRect iRect = SkIRect::MakeXYWH(frame * 160, 55, 10, 10);
- paint.setColor(region.intersects(iRect) ? SK_ColorBLUE : SK_ColorRED);
+ SkPaint paint;
+ paint.setTextSize(128);
+ SkPath textPath;
+ paint.getTextPath("W", 1, 20, 110, &textPath);
+ SkRegion region;
+ region.setPath(textPath, SkRegion({0, 0, 256, 256}));
+ canvas->drawRegion(region, SkPaint());
+ SkIRect iRect = SkIRect::MakeXYWH(frame * 160, 55, 10, 10);
+ paint.setColor(region.intersects(iRect) ? SK_ColorBLUE : SK_ColorRED);
canvas->drawRect(SkRect::Make(iRect), paint);
##
@@ -1239,27 +1035,21 @@
# ------------------------------------------------------------------------------
#Method bool intersects(const SkRegion& other) const
-
-Returns true if Region intersects other.
-Returns false if either other or Region is empty, or do not intersect.
-
-#Param other Region to intersect ##
-
-#Return true if other and Region have area in common ##
+#Populate
#Example
#Duration 4
#Height 128
- SkPaint paint;
- paint.setTextSize(128);
- SkPath hPath, dotPath;
- paint.getTextPath("H", 1, 40, 110, &hPath);
- paint.getTextPath(",", 1, frame * 180, 95, &dotPath);
- SkRegion hRegion, dotRegion;
- hRegion.setPath(hPath, SkRegion({0, 0, 256, 256}));
- dotRegion.setPath(dotPath, SkRegion({0, 0, 256, 256}));
- canvas->drawRegion(hRegion, paint);
- paint.setColor(hRegion.intersects(dotRegion) ? SK_ColorBLUE : SK_ColorRED);
+ SkPaint paint;
+ paint.setTextSize(128);
+ SkPath hPath, dotPath;
+ paint.getTextPath("H", 1, 40, 110, &hPath);
+ paint.getTextPath(",", 1, frame * 180, 95, &dotPath);
+ SkRegion hRegion, dotRegion;
+ hRegion.setPath(hPath, SkRegion({0, 0, 256, 256}));
+ dotRegion.setPath(dotPath, SkRegion({0, 0, 256, 256}));
+ canvas->drawRegion(hRegion, paint);
+ paint.setColor(hRegion.intersects(dotRegion) ? SK_ColorBLUE : SK_ColorRED);
canvas->drawRegion(dotRegion, paint);
##
@@ -1272,30 +1062,23 @@
#Method bool contains(int32_t x, int32_t y) const
#In Intersection
#Line # returns true if points are equal or inside ##
-
-Returns true if IPoint (x, y) is inside Region.
-Returns false if Region is empty.
-
-#Param x test IPoint x-coordinate ##
-#Param y test IPoint y-coordinate ##
-
-#Return true if (x, y) is inside Region ##
+#Populate
#Example
#Height 128
- SkPaint paint;
- paint.setTextSize(128);
- SkPath xPath;
- paint.getTextPath("X", 1, 20, 110, &xPath);
- SkRegion xRegion;
- xRegion.setPath(xPath, SkRegion({0, 0, 256, 256}));
- canvas->drawRegion(xRegion, paint);
- for (int y = 0; y < 128; y += 8) {
- for (int x = 0; x < 128; x += 8) {
- paint.setColor(xRegion.contains(x, y) ? SK_ColorWHITE : SK_ColorRED);
- canvas->drawPoint(x, y, paint);
- }
- }
+ SkPaint paint;
+ paint.setTextSize(128);
+ SkPath xPath;
+ paint.getTextPath("X", 1, 20, 110, &xPath);
+ SkRegion xRegion;
+ xRegion.setPath(xPath, SkRegion({0, 0, 256, 256}));
+ canvas->drawRegion(xRegion, paint);
+ for (int y = 0; y < 128; y += 8) {
+ for (int x = 0; x < 128; x += 8) {
+ paint.setColor(xRegion.contains(x, y) ? SK_ColorWHITE : SK_ColorRED);
+ canvas->drawPoint(x, y, paint);
+ }
+ }
##
#SeeAlso intersects SkRect::contains
@@ -1305,31 +1088,25 @@
# ------------------------------------------------------------------------------
#Method bool contains(const SkIRect& other) const
-
-Returns true if other is completely inside Region.
-Returns false if Region or other is empty.
-
-#Param other IRect to contain ##
-
-#Return true if other is inside Region ##
+#Populate
#Example
#Height 128
#Duration 4
- SkPaint paint;
- paint.setTextSize(128);
- SkPath xPath;
- paint.getTextPath("X", 1, 20, 110, &xPath);
- SkRegion xRegion;
- SkIRect drawBounds = {0, 0, 128, 128};
- xRegion.setPath(xPath, SkRegion(drawBounds));
- xRegion.op(drawBounds, SkRegion::kReverseDifference_Op);
- canvas->drawRegion(xRegion, paint);
- SkIRect test = SkIRect::MakeXYWH(frame* 128, 64, 5, 5);
- if (xRegion.contains(test)) {
- paint.setColor(SK_ColorYELLOW);
- canvas->drawRect(SkRect::Make(test), paint);
- }
+ SkPaint paint;
+ paint.setTextSize(128);
+ SkPath xPath;
+ paint.getTextPath("X", 1, 20, 110, &xPath);
+ SkRegion xRegion;
+ SkIRect drawBounds = {0, 0, 128, 128};
+ xRegion.setPath(xPath, SkRegion(drawBounds));
+ xRegion.op(drawBounds, SkRegion::kReverseDifference_Op);
+ canvas->drawRegion(xRegion, paint);
+ SkIRect test = SkIRect::MakeXYWH(frame* 128, 64, 5, 5);
+ if (xRegion.contains(test)) {
+ paint.setColor(SK_ColorYELLOW);
+ canvas->drawRect(SkRect::Make(test), paint);
+ }
##
#SeeAlso intersects SkRect::contains
@@ -1339,31 +1116,25 @@
# ------------------------------------------------------------------------------
#Method bool contains(const SkRegion& other) const
-
-Returns true if other is completely inside Region.
-Returns false if Region or other is empty.
-
-#Param other Region to contain ##
-
-#Return true if other is inside Region ##
+#Populate
#Example
#Height 128
#Duration 4
- SkPaint paint;
- paint.setTextSize(128);
- SkPath xPath, testPath;
- paint.getTextPath("X", 1, 20, 110, &xPath);
- paint.getTextPath("`", 1, frame * 150 - 40, 150, &testPath);
- SkRegion xRegion, testRegion;
- SkIRect drawBounds = {0, 0, 128, 128};
- xRegion.setPath(xPath, SkRegion(drawBounds));
- testRegion.setPath(testPath, SkRegion(drawBounds));
- xRegion.op(drawBounds, SkRegion::kReverseDifference_Op);
- canvas->drawRegion(xRegion, paint);
- if (xRegion.contains(testRegion)) {
- paint.setColor(SK_ColorYELLOW);
- canvas->drawRegion(testRegion, paint);
+ SkPaint paint;
+ paint.setTextSize(128);
+ SkPath xPath, testPath;
+ paint.getTextPath("X", 1, 20, 110, &xPath);
+ paint.getTextPath("`", 1, frame * 150 - 40, 150, &testPath);
+ SkRegion xRegion, testRegion;
+ SkIRect drawBounds = {0, 0, 128, 128};
+ xRegion.setPath(xPath, SkRegion(drawBounds));
+ testRegion.setPath(testPath, SkRegion(drawBounds));
+ xRegion.op(drawBounds, SkRegion::kReverseDifference_Op);
+ canvas->drawRegion(xRegion, paint);
+ if (xRegion.contains(testRegion)) {
+ paint.setColor(SK_ColorYELLOW);
+ canvas->drawRegion(testRegion, paint);
}
##
@@ -1376,25 +1147,19 @@
#Method bool quickContains(const SkIRect& r) const
#In Intersection
#Line # returns true quickly if points are equal or inside ##
-
-Returns true if Region is a single rectangle and contains r.
-May return false even though Region contains r.
-
-#Param r IRect to contain ##
-
-#Return true quickly if r points are equal or inside ##
+#Populate
#Example
- SkRegion region({1, 2, 3, 4});
- SkIRect test = {2, 2, 3, 3};
- SkDebugf("quickContains 1: %s\n", region.quickContains(test) ? "true" : "false");
- region.op({1, 4, 3, 6}, SkRegion::kUnion_Op);
- SkDebugf("quickContains 2: %s\n", region.quickContains(test) ? "true" : "false");
- region.op({1, 7, 3, 8}, SkRegion::kUnion_Op);
+ SkRegion region({1, 2, 3, 4});
+ SkIRect test = {2, 2, 3, 3};
+ SkDebugf("quickContains 1: %s\n", region.quickContains(test) ? "true" : "false");
+ region.op({1, 4, 3, 6}, SkRegion::kUnion_Op);
+ SkDebugf("quickContains 2: %s\n", region.quickContains(test) ? "true" : "false");
+ region.op({1, 7, 3, 8}, SkRegion::kUnion_Op);
SkDebugf("quickContains 3: %s\n", region.quickContains(test) ? "true" : "false");
#StdOut
-quickContains 1: true
-quickContains 2: true
+quickContains 1: true
+quickContains 2: true
quickContains 3: false
##
##
@@ -1407,32 +1172,21 @@
#Method bool quickContains(int32_t left, int32_t top, int32_t right,
int32_t bottom) const
-
-Returns true if Region is a single rectangle and contains IRect
-(left, top, right, bottom).
-Returns false if Region is empty or IRect (left, top, right, bottom) is empty.
-May return false even though Region contains (left, top, right, bottom).
-
-#Param left edge of bounds on x-axis ##
-#Param top edge of bounds on y-axis ##
-#Param right edge of bounds on x-axis ##
-#Param bottom edge of bounds on y-axis ##
-
-#Return true quickly if IRect are equal or inside ##
+#Populate
#Example
- auto debugster = [](const char* label, SkRegion& region) -> void {
- SkDebugf("%s: %s\n", label, region.quickContains(2, 2, 3, 3) ? "true" : "false");
+ auto debugster = [](const char* label, SkRegion& region) -> void {
+ SkDebugf("%s: %s\n", label, region.quickContains(2, 2, 3, 3) ? "true" : "false");
};
- SkRegion region({1, 2, 3, 4});
- debugster("quickContains 1", region);
- region.op({1, 4, 3, 6}, SkRegion::kUnion_Op);
- debugster("quickContains 2", region);
- region.op({1, 7, 3, 8}, SkRegion::kUnion_Op);
- debugster("quickContains 3", region);
+ SkRegion region({1, 2, 3, 4});
+ debugster("quickContains 1", region);
+ region.op({1, 4, 3, 6}, SkRegion::kUnion_Op);
+ debugster("quickContains 2", region);
+ region.op({1, 7, 3, 8}, SkRegion::kUnion_Op);
+ debugster("quickContains 3", region);
#StdOut
-quickContains 1: true
-quickContains 2: true
+quickContains 1: true
+quickContains 2: true
quickContains 3: false
##
##
@@ -1446,26 +1200,19 @@
#Method bool quickReject(const SkIRect& rect) const
#In Intersection
#Line # returns true quickly if points are outside ##
-
-Returns true if Region does not intersect rect.
-Returns true if rect is empty or Region is empty.
-May return false even though Region does not intersect rect.
-
-#Param rect IRect to intersect ##
-
-#Return true if rect does not intersect ##
+#Populate
#Example
- SkRegion region({1, 2, 3, 4});
- SkIRect test = {4, 2, 5, 3};
- SkDebugf("quickReject 1: %s\n", region.quickReject(test) ? "true" : "false");
- region.op({1, 4, 3, 6}, SkRegion::kUnion_Op);
- SkDebugf("quickReject 2: %s\n", region.quickReject(test) ? "true" : "false");
- region.op({4, 7, 5, 8}, SkRegion::kUnion_Op);
+ SkRegion region({1, 2, 3, 4});
+ SkIRect test = {4, 2, 5, 3};
+ SkDebugf("quickReject 1: %s\n", region.quickReject(test) ? "true" : "false");
+ region.op({1, 4, 3, 6}, SkRegion::kUnion_Op);
+ SkDebugf("quickReject 2: %s\n", region.quickReject(test) ? "true" : "false");
+ region.op({4, 7, 5, 8}, SkRegion::kUnion_Op);
SkDebugf("quickReject 3: %s\n", region.quickReject(test) ? "true" : "false");
#StdOut
-quickReject 1: true
-quickReject 2: true
+quickReject 1: true
+quickReject 2: true
quickReject 3: false
##
##
@@ -1477,28 +1224,21 @@
# ------------------------------------------------------------------------------
#Method bool quickReject(const SkRegion& rgn) const
-
-Returns true if Region does not intersect rgn.
-Returns true if rgn is empty or Region is empty.
-May return false even though Region does not intersect rgn.
-
-#Param rgn Region to intersect ##
-
-#Return true if rgn does not intersect ##
+#Populate
#Example
- SkRegion region({1, 2, 3, 4});
- SkRegion test;
- SkIRect rects[] = {{4, 2, 5, 3}, {7, 2, 8, 3}};
- test.setRects(rects, SK_ARRAY_COUNT(rects));
- SkDebugf("quickReject 1: %s\n", region.quickReject(test) ? "true" : "false");
- region.op({1, 4, 3, 6}, SkRegion::kUnion_Op);
- SkDebugf("quickReject 2: %s\n", region.quickReject(test) ? "true" : "false");
- region.op({4, 7, 5, 8}, SkRegion::kUnion_Op);
+ SkRegion region({1, 2, 3, 4});
+ SkRegion test;
+ SkIRect rects[] = {{4, 2, 5, 3}, {7, 2, 8, 3}};
+ test.setRects(rects, SK_ARRAY_COUNT(rects));
+ SkDebugf("quickReject 1: %s\n", region.quickReject(test) ? "true" : "false");
+ region.op({1, 4, 3, 6}, SkRegion::kUnion_Op);
+ SkDebugf("quickReject 2: %s\n", region.quickReject(test) ? "true" : "false");
+ region.op({4, 7, 5, 8}, SkRegion::kUnion_Op);
SkDebugf("quickReject 3: %s\n", region.quickReject(test) ? "true" : "false");
#StdOut
-quickReject 1: true
-quickReject 2: true
+quickReject 1: true
+quickReject 2: true
quickReject 3: false
##
##
@@ -1512,22 +1252,18 @@
#Method void translate(int dx, int dy)
#In Transform
#Line # translates IPoints in Region ##
-
-Offsets Region by IVector (dx, dy). Has no effect if Region is empty.
-
-#Param dx x-axis offset ##
-#Param dy y-axis offset ##
+#Populate
#Example
#Height 90
- SkRegion test;
- SkIRect rects[] = {{40, 20, 50, 30}, {70, 40, 80, 50}, { 60, 10, 70, 20}};
- test.setRects(rects, SK_ARRAY_COUNT(rects));
- SkPaint paint;
- for (auto color : { SK_ColorRED, SK_ColorBLUE, SK_ColorGREEN, SK_ColorMAGENTA } ) {
- paint.setColor(color);
- canvas->drawRegion(test, paint);
- test.translate(10, 10);
+ SkRegion test;
+ SkIRect rects[] = {{40, 20, 50, 30}, {70, 40, 80, 50}, { 60, 10, 70, 20}};
+ test.setRects(rects, SK_ARRAY_COUNT(rects));
+ SkPaint paint;
+ for (auto color : { SK_ColorRED, SK_ColorBLUE, SK_ColorGREEN, SK_ColorMAGENTA } ) {
+ paint.setColor(color);
+ canvas->drawRegion(test, paint);
+ test.translate(10, 10);
}
##
@@ -1538,28 +1274,21 @@
# ------------------------------------------------------------------------------
#Method void translate(int dx, int dy, SkRegion* dst) const
-
-Offsets Region by IVector (dx, dy), writing result to dst. Region may be passed
-as dst parameter, translating Region in place. Has no effect if dst is nullptr.
-If Region is empty, sets dst to empty.
-
-#Param dx x-axis offset ##
-#Param dy y-axis offset ##
-#Param dst translated result ##
+#Populate
#Example
- SkRegion test;
- SkIRect rects[] = {{40, 20, 50, 30}, {70, 40, 80, 50}, { 60, 10, 70, 20}};
- test.setRects(rects, SK_ARRAY_COUNT(rects));
- SkPaint paint;
- for (auto color : { SK_ColorRED, SK_ColorBLUE, SK_ColorGREEN, SK_ColorMAGENTA } ) {
- paint.setColor(color);
- canvas->drawRegion(test, paint);
- SkRegion second;
- test.translate(10, test.getBounds().fBottom, &second);
- test.op(second, SkRegion::kXOR_Op);
- test.translate(30, 0);
- }
+ SkRegion test;
+ SkIRect rects[] = {{40, 20, 50, 30}, {70, 40, 80, 50}, { 60, 10, 70, 20}};
+ test.setRects(rects, SK_ARRAY_COUNT(rects));
+ SkPaint paint;
+ for (auto color : { SK_ColorRED, SK_ColorBLUE, SK_ColorGREEN, SK_ColorMAGENTA } ) {
+ paint.setColor(color);
+ canvas->drawRegion(test, paint);
+ SkRegion second;
+ test.translate(10, test.getBounds().fBottom, &second);
+ test.op(second, SkRegion::kXOR_Op);
+ test.translate(30, 0);
+ }
##
#SeeAlso SkCanvas::translate SkIRect::offset SkPath::offset
@@ -1614,21 +1343,21 @@
##
#Example
- SkRegion operand({35, 35, 85, 85});
- const char* labels[] = {"difference", "intersect", "union", "xor", "reverse diff", "replace"};
- int index = 0;
- SkPaint paint;
- for (auto op : { SkRegion::kDifference_Op, SkRegion::kIntersect_Op, SkRegion::kUnion_Op,
- SkRegion::kXOR_Op, SkRegion::kReverseDifference_Op, SkRegion::kReplace_Op } ) {
- SkRegion target({10, 10, 60, 60});
- target.op(operand, op);
- canvas->drawRegion(target, paint);
- canvas->drawString(labels[index++], 40, 100, paint);
- canvas->translate(80, 0);
- if (SkRegion::kUnion_Op == op) {
- canvas->translate(-240, 120);
- }
- }
+ SkRegion operand({35, 35, 85, 85});
+ const char* labels[] = {"difference", "intersect", "union", "xor", "reverse diff", "replace"};
+ int index = 0;
+ SkPaint paint;
+ for (auto op : { SkRegion::kDifference_Op, SkRegion::kIntersect_Op, SkRegion::kUnion_Op,
+ SkRegion::kXOR_Op, SkRegion::kReverseDifference_Op, SkRegion::kReplace_Op } ) {
+ SkRegion target({10, 10, 60, 60});
+ target.op(operand, op);
+ canvas->drawRegion(target, paint);
+ canvas->drawString(labels[index++], 40, 100, paint);
+ canvas->translate(80, 0);
+ if (SkRegion::kUnion_Op == op) {
+ canvas->translate(-240, 120);
+ }
+ }
##
#SeeAlso SkPathOp
@@ -1647,26 +1376,18 @@
#Method bool op(const SkIRect& rect, Op op)
#In Transform
#Line # applies binary operator ##
-
-Replaces Region with the result of Region op rect.
-Returns true if replaced Region is not empty.
-
-#Param rect IRect operand ##
-#Param op operator, one of: #list_of_op_types#
-##
-
-#Return false if result is empty ##
+#Populate
#Example
#Height 128
- SkPaint paint;
- paint.setTextSize(128);
- SkPath xPath;
- paint.getTextPath("X", 1, 20, 110, &xPath);
- SkRegion xRegion;
- SkIRect drawBounds = {0, 0, 128, 128};
- xRegion.setPath(xPath, SkRegion(drawBounds));
- xRegion.op(drawBounds, SkRegion::kReverseDifference_Op);
+ SkPaint paint;
+ paint.setTextSize(128);
+ SkPath xPath;
+ paint.getTextPath("X", 1, 20, 110, &xPath);
+ SkRegion xRegion;
+ SkIRect drawBounds = {0, 0, 128, 128};
+ xRegion.setPath(xPath, SkRegion(drawBounds));
+ xRegion.op(drawBounds, SkRegion::kReverseDifference_Op);
canvas->drawRegion(xRegion, paint);
##
@@ -1677,31 +1398,20 @@
# ------------------------------------------------------------------------------
#Method bool op(int left, int top, int right, int bottom, Op op)
-
-Replaces Region with the result of Region op IRect (left, top, right, bottom).
-Returns true if replaced Region is not empty.
-
-#Param left edge of bounds on x-axis ##
-#Param top edge of bounds on y-axis ##
-#Param right edge of bounds on x-axis ##
-#Param bottom edge of bounds on y-axis ##
-#Param op operator, one of: #list_of_op_types#
-##
-
-#Return false if result is empty ##
+#Populate
#Example
#Duration 4
#Height 128
- SkPaint paint;
- paint.setTextSize(128);
- SkPath xPath;
- paint.getTextPath("X", 1, 20, 110, &xPath);
- SkRegion xRegion;
- SkIRect drawBounds = {0, 0, 128, 128};
- xRegion.setPath(xPath, SkRegion(drawBounds));
- xRegion.op(drawBounds.fLeft + frame * drawBounds.width(), drawBounds.fTop,
- drawBounds.fRight, drawBounds.fBottom, SkRegion::kReverseDifference_Op);
+ SkPaint paint;
+ paint.setTextSize(128);
+ SkPath xPath;
+ paint.getTextPath("X", 1, 20, 110, &xPath);
+ SkRegion xRegion;
+ SkIRect drawBounds = {0, 0, 128, 128};
+ xRegion.setPath(xPath, SkRegion(drawBounds));
+ xRegion.op(drawBounds.fLeft + frame * drawBounds.width(), drawBounds.fTop,
+ drawBounds.fRight, drawBounds.fBottom, SkRegion::kReverseDifference_Op);
canvas->drawRegion(xRegion, paint);
##
@@ -1712,29 +1422,21 @@
# ------------------------------------------------------------------------------
#Method bool op(const SkRegion& rgn, Op op)
-
-Replaces Region with the result of Region op rgn.
-Returns true if replaced Region is not empty.
-
-#Param rgn Region operand ##
-#Param op operator, one of: #list_of_op_types#
-##
-
-#Return false if result is empty ##
+#Populate
#Example
#Duration 4
#Height 128
- SkPaint paint;
- paint.setTextSize(128);
- SkPath xPath, opPath;
- paint.getTextPath("X", 1, 20, 110, &xPath);
- opPath.addCircle(64, 64, frame * 64);
- SkRegion xRegion, opRegion;
- SkIRect drawBounds = {0, 0, 128, 128};
- opRegion.setPath(opPath, SkRegion(drawBounds));
- xRegion.setPath(xPath, SkRegion(drawBounds));
- xRegion.op(opRegion, SkRegion::kReverseDifference_Op);
+ SkPaint paint;
+ paint.setTextSize(128);
+ SkPath xPath, opPath;
+ paint.getTextPath("X", 1, 20, 110, &xPath);
+ opPath.addCircle(64, 64, frame * 64);
+ SkRegion xRegion, opRegion;
+ SkIRect drawBounds = {0, 0, 128, 128};
+ opRegion.setPath(opPath, SkRegion(drawBounds));
+ xRegion.setPath(xPath, SkRegion(drawBounds));
+ xRegion.op(opRegion, SkRegion::kReverseDifference_Op);
canvas->drawRegion(xRegion, paint);
##
@@ -1745,32 +1447,23 @@
# ------------------------------------------------------------------------------
#Method bool op(const SkIRect& rect, const SkRegion& rgn, Op op)
-
-Replaces Region with the result of rect op rgn.
-Returns true if replaced Region is not empty.
-
-#Param rect IRect operand ##
-#Param rgn Region operand ##
-#Param op operator, one of: #list_of_op_types#
-##
-
-#Return false if result is empty ##
+#Populate
#Example
#Duration 4
#Height 128
- SkPaint paint;
- paint.setTextSize(128);
- SkPath xPath, opPath;
- paint.getTextPath("X", 1, 20, 110, &xPath);
- opPath.addCircle(64, 64, frame * 64);
- SkRegion xRegion, opRegion, rectRegion;
- SkIRect drawBounds = {0, 0, 128, 128};
- opRegion.setPath(opPath, SkRegion(drawBounds));
- xRegion.setPath(xPath, SkRegion(drawBounds));
- drawBounds.inset(frame * drawBounds.width() / 2, 0);
- rectRegion.op(drawBounds, opRegion, SkRegion::kIntersect_Op);
- xRegion.op(rectRegion, SkRegion::kReverseDifference_Op);
+ SkPaint paint;
+ paint.setTextSize(128);
+ SkPath xPath, opPath;
+ paint.getTextPath("X", 1, 20, 110, &xPath);
+ opPath.addCircle(64, 64, frame * 64);
+ SkRegion xRegion, opRegion, rectRegion;
+ SkIRect drawBounds = {0, 0, 128, 128};
+ opRegion.setPath(opPath, SkRegion(drawBounds));
+ xRegion.setPath(xPath, SkRegion(drawBounds));
+ drawBounds.inset(frame * drawBounds.width() / 2, 0);
+ rectRegion.op(drawBounds, opRegion, SkRegion::kIntersect_Op);
+ xRegion.op(rectRegion, SkRegion::kReverseDifference_Op);
canvas->drawRegion(xRegion, paint);
##
@@ -1781,32 +1474,23 @@
# ------------------------------------------------------------------------------
#Method bool op(const SkRegion& rgn, const SkIRect& rect, Op op)
-
-Replaces Region with the result of rgn op rect.
-Returns true if replaced Region is not empty.
-
-#Param rgn Region operand ##
-#Param rect IRect operand ##
-#Param op operator, one of: #list_of_op_types#
-##
-
-#Return false if result is empty ##
+#Populate
#Example
#Duration 4
#Height 128
- SkPaint paint;
- paint.setTextSize(128);
- SkPath xPath, opPath;
- paint.getTextPath("X", 1, 20, 110, &xPath);
- opPath.addCircle(64, 64, frame * 64);
- SkRegion xRegion, opRegion, rectRegion;
- SkIRect drawBounds = {0, 0, 128, 128};
- opRegion.setPath(opPath, SkRegion(drawBounds));
- xRegion.setPath(xPath, SkRegion(drawBounds));
- drawBounds.inset(frame * drawBounds.width() / 2, 0);
- rectRegion.op(opRegion, drawBounds, SkRegion::kUnion_Op);
- xRegion.op(rectRegion, SkRegion::kReverseDifference_Op);
+ SkPaint paint;
+ paint.setTextSize(128);
+ SkPath xPath, opPath;
+ paint.getTextPath("X", 1, 20, 110, &xPath);
+ opPath.addCircle(64, 64, frame * 64);
+ SkRegion xRegion, opRegion, rectRegion;
+ SkIRect drawBounds = {0, 0, 128, 128};
+ opRegion.setPath(opPath, SkRegion(drawBounds));
+ xRegion.setPath(xPath, SkRegion(drawBounds));
+ drawBounds.inset(frame * drawBounds.width() / 2, 0);
+ rectRegion.op(opRegion, drawBounds, SkRegion::kUnion_Op);
+ xRegion.op(rectRegion, SkRegion::kReverseDifference_Op);
canvas->drawRegion(xRegion, paint);
##
@@ -1817,35 +1501,26 @@
# ------------------------------------------------------------------------------
#Method bool op(const SkRegion& rgna, const SkRegion& rgnb, Op op)
-
-Replaces Region with the result of rgna op rgnb.
-Returns true if replaced Region is not empty.
-
-#Param rgna Region operand ##
-#Param rgnb Region operand ##
-#Param op operator, one of: #list_of_op_types#
-##
-
-#Return false if result is empty ##
+#Populate
#Example
#Duration 4
#Height 128
- SkPaint paint;
- paint.setTextSize(128);
- SkPath xPath, opPath;
- paint.getTextPath("X", 1, 20, 110, &xPath);
- xPath.setFillType(SkPath::kInverseWinding_FillType);
- opPath.addCircle(64, 64, frame * 64);
- opPath.setFillType(SkPath::kInverseWinding_FillType);
- SkRegion xRegion, opRegion, rectRegion;
- SkIRect drawBounds = {0, 0, 128, 128};
- opRegion.setPath(opPath, SkRegion(drawBounds));
- xRegion.setPath(xPath, SkRegion(drawBounds));
- drawBounds.inset(frame * drawBounds.width() / 2, 0);
- rectRegion.setRect(drawBounds);
- rectRegion.op(xRegion, SkRegion::kIntersect_Op);
- xRegion.op(rectRegion, opRegion, SkRegion::kReverseDifference_Op);
+ SkPaint paint;
+ paint.setTextSize(128);
+ SkPath xPath, opPath;
+ paint.getTextPath("X", 1, 20, 110, &xPath);
+ xPath.setFillType(SkPath::kInverseWinding_FillType);
+ opPath.addCircle(64, 64, frame * 64);
+ opPath.setFillType(SkPath::kInverseWinding_FillType);
+ SkRegion xRegion, opRegion, rectRegion;
+ SkIRect drawBounds = {0, 0, 128, 128};
+ opRegion.setPath(opPath, SkRegion(drawBounds));
+ xRegion.setPath(xPath, SkRegion(drawBounds));
+ drawBounds.inset(frame * drawBounds.width() / 2, 0);
+ rectRegion.setRect(drawBounds);
+ rectRegion.op(xRegion, SkRegion::kIntersect_Op);
+ xRegion.op(rectRegion, opRegion, SkRegion::kReverseDifference_Op);
canvas->drawRegion(xRegion, paint);
##
@@ -1870,28 +1545,22 @@
#Method size_t writeToMemory(void* buffer) const
#In Utility
#Line # writes to buffer ##
-
-Writes Region to buffer, and returns number of bytes written.
-If buffer is nullptr, returns number number of bytes that would be written.
-
-#Param buffer storage for binary data ##
-
-#Return size of Region ##
+#Populate
#Example
#Height 128
- SkPaint paint;
- paint.setTextSize(128);
- SkPath xPath;
- paint.getTextPath("X", 1, 20, 110, &xPath);
- SkIRect drawBounds = {0, 0, 128, 128};
- SkRegion xRegion;
- xRegion.setPath(xPath, SkRegion(drawBounds));
- size_t size = xRegion.writeToMemory(nullptr);
- sk_sp<SkData> data = SkData::MakeUninitialized(size);
- xRegion.writeToMemory(data->writable_data());
- SkRegion copy;
- copy.readFromMemory(data->data(), data->size());
+ SkPaint paint;
+ paint.setTextSize(128);
+ SkPath xPath;
+ paint.getTextPath("X", 1, 20, 110, &xPath);
+ SkIRect drawBounds = {0, 0, 128, 128};
+ SkRegion xRegion;
+ xRegion.setPath(xPath, SkRegion(drawBounds));
+ size_t size = xRegion.writeToMemory(nullptr);
+ sk_sp<SkData> data = SkData::MakeUninitialized(size);
+ xRegion.writeToMemory(data->writable_data());
+ SkRegion copy;
+ copy.readFromMemory(data->data(), data->size());
canvas->drawRegion(copy, paint);
##
@@ -1904,23 +1573,16 @@
#Method size_t readFromMemory(const void* buffer, size_t length)
#In Utility
#Line # reads from buffer ##
-
-Constructs Region from buffer of size length. Returns bytes read.
-Returned value will be multiple of four or zero if length was too small.
-
-#Param buffer storage for binary data ##
-#Param length size of buffer ##
-
-#Return bytes read ##
+#Populate
#Example
#Height 100
- SkRegion region({20, 20, 80, 80});
- size_t size = region.writeToMemory(nullptr);
- sk_sp<SkData> data = SkData::MakeUninitialized(size);
- region.writeToMemory(data->writable_data());
- SkRegion copy;
- copy.readFromMemory(data->data(), data->size());
+ SkRegion region({20, 20, 80, 80});
+ size_t size = region.writeToMemory(nullptr);
+ sk_sp<SkData> data = SkData::MakeUninitialized(size);
+ region.writeToMemory(data->writable_data());
+ SkRegion copy;
+ copy.readFromMemory(data->data(), data->size());
canvas->drawRegion(copy, SkPaint());
##
diff --git a/docs/SkSurface_Reference.bmh b/docs/SkSurface_Reference.bmh
index b98bc87..dacd00f 100644
--- a/docs/SkSurface_Reference.bmh
+++ b/docs/SkSurface_Reference.bmh
@@ -21,30 +21,7 @@
const SkSurfaceProps* surfaceProps = nullptr)
#In Constructors
#Line # creates Surface from SkImageInfo and Pixel_Storage ##
-
-Allocates raster Surface. Canvas returned by Surface draws directly into pixels.
-
-Surface is returned if all parameters are valid.
-Valid parameters include:
-info dimensions are greater than zero;
-info contains Color_Type and Alpha_Type supported by Raster_Surface;
-pixels is not nullptr;
-rowBytes is large enough to contain info width pixels of Color_Type.
-
-Pixel buffer size should be info height times computed rowBytes.
-Pixels are not initialized.
-To access pixels after drawing, call flush() or peekPixels.
-
-#Param imageInfo width, height, Color_Type, Alpha_Type, Color_Space,
- of Raster_Surface; width and height must be greater than zero
-##
-#Param pixels pointer to destination pixels buffer ##
-#Param rowBytes interval from one Surface row to the next ##
-#Param surfaceProps LCD striping orientation and setting for device independent fonts;
- may be nullptr
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
#Example
void draw(SkCanvas* ) {
@@ -85,33 +62,7 @@
void* context, const SkSurfaceProps* surfaceProps = nullptr)
#In Constructors
#Line # creates Surface from SkImageInfo and Pixel_Storage ##
-
-Allocates raster Surface. Canvas returned by Surface draws directly into pixels.
-releaseProc is called with pixels and context when Surface is deleted.
-
-Surface is returned if all parameters are valid.
-Valid parameters include:
-info dimensions are greater than zero;
-info contains Color_Type and Alpha_Type supported by Raster_Surface;
-pixels is not nullptr;
-rowBytes is large enough to contain info width pixels of Color_Type.
-
-Pixel buffer size should be info height times computed rowBytes.
-Pixels are not initialized.
-To access pixels after drawing, call flush() or peekPixels.
-
-#Param imageInfo width, height, Color_Type, Alpha_Type, Color_Space,
- of Raster_Surface; width and height must be greater than zero
-##
-#Param pixels pointer to destination pixels buffer ##
-#Param rowBytes interval from one Surface row to the next ##
-#Param releaseProc called when Surface is deleted; may be nullptr ##
-#Param context passed to releaseProc; may be nullptr ##
-#Param surfaceProps LCD striping orientation and setting for device independent fonts;
- may be nullptr
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
#Example
#Function
@@ -161,30 +112,7 @@
const SkSurfaceProps* surfaceProps)
#In Constructors
#Line # creates Surface from SkImageInfo ##
-
-Allocates raster Surface. Canvas returned by Surface draws directly into pixels.
-Allocates and zeroes pixel memory. Pixel memory size is imageInfo.height() times
-rowBytes, or times imageInfo.minRowBytes() if rowBytes is zero.
-Pixel memory is deleted when Surface is deleted.
-
-Surface is returned if all parameters are valid.
-Valid parameters include:
-info dimensions are greater than zero;
-info contains Color_Type and Alpha_Type supported by Raster_Surface;
-rowBytes is large enough to contain info width pixels of Color_Type, or is zero.
-
-If rowBytes is not zero, subsequent images returned by makeImageSnapshot
-have the same rowBytes.
-
-#Param imageInfo width, height, Color_Type, Alpha_Type, Color_Space,
- of Raster_Surface; width and height must be greater than zero
-##
-#Param rowBytes interval from one Surface row to the next; may be zero ##
-#Param surfaceProps LCD striping orientation and setting for device independent fonts;
- may be nullptr
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
#Example
void draw(SkCanvas* ) {
@@ -224,25 +152,7 @@
#Method static sk_sp<SkSurface> MakeRaster(const SkImageInfo& imageInfo,
const SkSurfaceProps* props = nullptr)
-
-Allocates raster Surface. Canvas returned by Surface draws directly into pixels.
-Allocates and zeroes pixel memory. Pixel memory size is imageInfo.height() times
-imageInfo.minRowBytes().
-Pixel memory is deleted when Surface is deleted.
-
-Surface is returned if all parameters are valid.
-Valid parameters include:
-info dimensions are greater than zero;
-info contains Color_Type and Alpha_Type supported by Raster_Surface.
-
-#Param imageInfo width, height, Color_Type, Alpha_Type, Color_Space,
- of Raster_Surface; width and height must be greater than zero
-##
-#Param props LCD striping orientation and setting for device independent fonts;
- may be nullptr
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
#Example
void draw(SkCanvas* ) {
@@ -278,26 +188,7 @@
const SkSurfaceProps* surfaceProps = nullptr)
#In Constructors
#Line # creates Surface from width, height matching output ##
-
-Allocates raster Surface. Canvas returned by Surface draws directly into pixels.
-Allocates and zeroes pixel memory. Pixel memory size is height times width times
-four. Pixel memory is deleted when Surface is deleted.
-
-Internally, sets Image_Info to width, height, Native_Color_Type, and
-kPremul_SkAlphaType.
-
-Surface is returned if width and height are greater than zero.
-
-Use to create Surface that matches SkPMColor, the native pixel arrangement on
-the platform. Surface drawn to output device skips converting its pixel format.
-
-#Param width pixel column count; must be greater than zero ##
-#Param height pixel row count; must be greater than zero ##
-#Param surfaceProps LCD striping orientation and setting for device independent
- fonts; may be nullptr
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
#Example
void draw(SkCanvas* ) {
@@ -341,32 +232,7 @@
const SkSurfaceProps* surfaceProps)
#In Constructors
#Line # creates Surface from GPU texture ##
-
-Wraps a GPU-backed texture into Surface. Caller must ensure the texture is
-valid for the lifetime of returned Surface. If sampleCnt greater than zero,
-creates an intermediate MSAA Surface which is used for drawing backendTexture.
-
-Surface is returned if all parameters are valid. backendTexture is valid if
-its pixel configuration agrees with colorSpace and context; for instance, if
-backendTexture has an sRGB configuration, then context must support sRGB,
-and colorSpace must be present. Further, backendTexture width and height must
-not exceed context capabilities, and the context must be able to support
-back-end textures.
-
-If SK_SUPPORT_GPU is defined as zero, has no effect and returns nullptr.
-
-#Param context GPU_Context ##
-#Param backendTexture texture residing on GPU ##
-#Param origin one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param sampleCnt samples per pixel, or 0 to disable full scene anti-aliasing ##
-#Param colorType one of: #list_of_color_types#
-##
-#Param colorSpace range of colors; may be nullptr ##
-#Param surfaceProps LCD striping orientation and setting for device independent
- fonts; may be nullptr
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
#Example
#Platform gpu cpu
@@ -401,30 +267,7 @@
const SkSurfaceProps* surfaceProps)
#In Constructors
#Line # creates Surface from GPU render target ##
-
-Wraps a GPU-backed buffer into Surface. Caller must ensure backendRenderTarget
-is valid for the lifetime of returned Surface.
-
-Surface is returned if all parameters are valid. backendRenderTarget is valid if
-its pixel configuration agrees with colorSpace and context; for instance, if
-backendRenderTarget has an sRGB configuration, then context must support sRGB,
-and colorSpace must be present. Further, backendRenderTarget width and height must
-not exceed context capabilities, and the context must be able to support
-back-end render targets.
-
-If SK_SUPPORT_GPU is defined as zero, has no effect and returns nullptr.
-
-#Param context GPU_Context ##
-#Param backendRenderTarget GPU intermediate memory buffer ##
-#Param origin one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param colorType one of: #list_of_color_types#
-##
-#Param colorSpace range of colors ##
-#Param surfaceProps LCD striping orientation and setting for device independent
- fonts; may be nullptr
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
#Example
#ToDo remove !fiddle below once backEndTextureRenderTarget is available ##
@@ -460,34 +303,7 @@
const SkSurfaceProps* surfaceProps)
#In Constructors
#Line # creates Surface from GPU back-end render target ##
-
-Wraps a GPU-backed texture into Surface. Caller must ensure backendTexture is
-valid for the lifetime of returned Surface. If sampleCnt greater than zero,
-creates an intermediate MSAA Surface which is used for drawing backendTexture.
-
-Surface is returned if all parameters are valid. backendTexture is valid if
-its pixel configuration agrees with colorSpace and context; for instance, if
-backendTexture has an sRGB configuration, then context must support sRGB,
-and colorSpace must be present. Further, backendTexture width and height must
-not exceed context capabilities.
-
-Returned Surface is available only for drawing into, and cannot generate an
-Image.
-
-If SK_SUPPORT_GPU is defined as zero, has no effect and returns nullptr.
-
-#Param context GPU_Context ##
-#Param backendTexture texture residing on GPU ##
-#Param origin one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param sampleCnt samples per pixel, or 0 to disable full scene anti-aliasing ##
-#Param colorType one of: #list_of_color_types#
-##
-#Param colorSpace range of colors; may be nullptr ##
-#Param surfaceProps LCD striping orientation and setting for device independent
- fonts; may be nullptr
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
#Example
#ToDo example is bogus; gpuSurface should not make image ##
@@ -522,39 +338,8 @@
bool shouldCreateWithMips = false)
#In Constructors
#Line # creates Surface pointing to new GPU memory buffer ##
+#Populate
-Returns Surface on GPU indicated by context. Allocates memory for
-pixels, based on the width, height, and Color_Type in ImageInfo. budgeted
-selects whether allocation for pixels is tracked by context. imageInfo
-describes the pixel format in Color_Type, and transparency in
-Alpha_Type, and color matching in Color_Space.
-
-sampleCount requests the number of samples per pixel.
-Pass zero to disable Multi_Sample_Anti_Aliasing. The request is rounded
-up to the next supported count, or rounded down if it is larger than the
-maximum supported count.
-
-surfaceOrigin pins either the top-left or the bottom-left corner to the origin.
-
-shouldCreateWithMips hints that Image returned by makeImageSnapshot is Mip_Map.
-
-If SK_SUPPORT_GPU is defined as zero, has no effect and returns nullptr.
-
-#Param context GPU_Context ##
-#Param budgeted one of: SkBudgeted::kNo, SkBudgeted::kYes ##
-#Param imageInfo width, height, Color_Type, Alpha_Type, Color_Space;
- width, or height, or both, may be zero
-##
-#Param sampleCount samples per pixel, or 0 to disable full scene anti-aliasing ##
-#Param surfaceOrigin one of: kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin ##
-#Param surfaceProps LCD striping orientation and setting for device independent
- fonts; may be nullptr
-##
-#Param shouldCreateWithMips hint that Surface will host Mip_Map images ##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
-
-#ToDo not sure that this example is relevant; surfaceOrigin doesn't appear to do anything ##
#Example
#Platform gpu
#Height 64
@@ -587,31 +372,7 @@
#Method static sk_sp<SkSurface> MakeRenderTarget(GrContext* context, SkBudgeted budgeted,
const SkImageInfo& imageInfo, int sampleCount,
const SkSurfaceProps* props)
-
-Returns Surface on GPU indicated by context. Allocates memory for
-pixels, based on the width, height, and Color_Type in ImageInfo. budgeted
-selects whether allocation for pixels is tracked by context. imageInfo
-describes the pixel format in Color_Type, and transparency in
-Alpha_Type, and color matching in Color_Space.
-
-sampleCount requests the number of samples per pixel.
-Pass zero to disable Multi_Sample_Anti_Aliasing. The request is rounded
-up to the next supported count, or rounded down if it is larger than the
-maximum supported count.
-
-Surface bottom-left corner is pinned to the origin.
-
-#Param context GPU_Context ##
-#Param budgeted one of: SkBudgeted::kNo, SkBudgeted::kYes ##
-#Param imageInfo width, height, Color_Type, Alpha_Type, Color_Space,
- of Raster_Surface; width, or height, or both, may be zero
-##
-#Param sampleCount samples per pixel, or 0 to disable Multi_Sample_Anti_Aliasing ##
-#Param props LCD striping orientation and setting for device independent
- fonts; may be nullptr
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
#Example
#Platform cpu gpu
@@ -659,22 +420,7 @@
#Method static sk_sp<SkSurface> MakeRenderTarget(GrContext* context, SkBudgeted budgeted,
const SkImageInfo& imageInfo)
-
-Returns Surface on GPU indicated by context. Allocates memory for
-pixels, based on the width, height, and Color_Type in ImageInfo. budgeted
-selects whether allocation for pixels is tracked by context. imageInfo
-describes the pixel format in Color_Type, and transparency in
-Alpha_Type, and color matching in Color_Space.
-
-Surface bottom-left corner is pinned to the origin.
-
-#Param context GPU_Context ##
-#Param budgeted one of: SkBudgeted::kNo, SkBudgeted::kYes ##
-#Param imageInfo width, height, Color_Type, Alpha_Type, Color_Space,
- of Raster_Surface; width, or height, or both, may be zero
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
#Example
#Platform gpu
@@ -703,16 +449,7 @@
#Method static sk_sp<SkSurface> MakeRenderTarget(GrContext* context,
const SkSurfaceCharacterization& characterization,
SkBudgeted budgeted)
-
-Returns SkSurface on GPU indicated by context that is compatible with the provided
-characterization. budgeted selects whether allocation for pixels is tracked by context.
-
-#Param context GPU_Context ##
-#Param characterization description of the desired SkSurface ##
-#Param budgeted one of: SkBudgeted::kNo, SkBudgeted::kYes
-##
-
-#Return Surface if all parameters are valid; otherwise, nullptr ##
+#Populate
#NoExample
##
@@ -727,13 +464,7 @@
#In Constructors
#Line # creates Surface without backing pixels ##
-Returns Surface without backing pixels. Drawing to Canvas returned from Surface
-has no effect. Calling makeImageSnapshot() on returned Surface returns nullptr.
-
-#Param width one or greater ##
-#Param height one or greater ##
-
-#Return Surface if width and height are positive; otherwise, nullptr ##
+#Populate
#Example
SkDebugf("SkSurface::MakeNull(0, 0) %c= nullptr\n", SkSurface::MakeNull(0, 0) == nullptr ?
@@ -764,9 +495,7 @@
#In Property
#Line # returns pixel column count ##
-Returns pixel count in each row; may be zero or greater.
-
-#Return number of pixel columns ##
+#Populate
#Example
const int width = 37;
@@ -789,9 +518,7 @@
#Method int height() const
#In Property
#Line # returns pixel row count ##
-Returns pixel row count; may be zero or greater.
-
-#Return number of pixel rows ##
+#Populate
#Example
const int width = 37;
@@ -814,11 +541,7 @@
#Method uint32_t generationID()
#In Property
#Line # returns unique ID ##
-Returns unique value identifying the content of Surface. Returned value changes
-each time the content changes. Content is changed by drawing, or by calling
-notifyContentWillChange.
-
-#Return unique content identifier ##
+#Populate
#Example
auto surface = SkSurface::MakeRasterN32Premul(1, 1);
@@ -989,17 +712,7 @@
#Method GrBackendTexture getBackendTexture(BackendHandleAccess backendHandleAccess)
#In Property
#Line # returns the GPU reference to texture ##
-Retrieves the back-end texture. If Surface has no back-end texture, an invalid
-object is returned. Call GrBackendTexture::isValid to determine if the result
-is valid.
-
-The returned GrBackendTexture should be discarded if the Surface is drawn to or deleted.
-
-#Param backendHandleAccess one of: kFlushRead_BackendHandleAccess,
- kFlushWrite_BackendHandleAccess, kDiscardWrite_BackendHandleAccess
-##
-
-#Return GPU texture reference; invalid on failure ##
+#Populate
#NoExample
##
@@ -1013,19 +726,7 @@
#Method GrBackendRenderTarget getBackendRenderTarget(BackendHandleAccess backendHandleAccess)
#In Property
#Line # returns the GPU reference to render target ##
-
-Retrieves the back-end render target. If Surface has no back-end render target, an invalid
-object is returned. Call GrBackendRenderTarget::isValid to determine if the result
-is valid.
-
-The returned GrBackendRenderTarget should be discarded if the Surface is drawn to
-or deleted.
-
-#Param backendHandleAccess one of: kFlushRead_BackendHandleAccess,
- kFlushWrite_BackendHandleAccess, kDiscardWrite_BackendHandleAccess
-##
-
-#Return GPU render target reference; invalid on failure ##
+#Populate
#NoExample
##
@@ -1039,11 +740,7 @@
#Method SkCanvas* getCanvas()
#In Property
#Line # returns Canvas that draws into Surface ##
-Returns Canvas that draws into Surface. Subsequent calls return the same Canvas.
-Canvas returned is managed and owned by Surface, and is deleted when Surface
-is deleted.
-
-#Return drawing Canvas for Surface ##
+#Populate
#Example
#Height 64
@@ -1065,18 +762,7 @@
#Method sk_sp<SkSurface> makeSurface(const SkImageInfo& imageInfo)
#In Constructors
#Line # creates a compatible Surface ##
-Returns a compatible Surface, or nullptr. Returned Surface contains
-the same raster, GPU, or null properties as the original. Returned Surface
-does not share the same pixels.
-
-Returns nullptr if imageInfo width or height are zero, or if imageInfo
-is incompatible with Surface.
-
-#Param imageInfo width, height, Color_Type, Alpha_Type, Color_Space,
- of Surface; width and height must be greater than zero
-##
-
-#Return compatible Surface or nullptr ##
+#Populate
#Example
#Height 96
@@ -1106,11 +792,7 @@
#Method sk_sp<SkImage> makeImageSnapshot()
#In Constructors
#Line # creates Image capturing Surface contents ##
-Returns Image capturing Surface contents. Subsequent drawing to Surface contents
-are not captured. Image allocation is accounted for if Surface was created with
-SkBudgeted::kYes.
-
-#Return Image initialized with Surface contents ##
+#Populate
#Example
#Height 64
@@ -1137,17 +819,7 @@
#Method void draw(SkCanvas* canvas, SkScalar x, SkScalar y, const SkPaint* paint)
#In Pixels
#Line # draws Surface contents to canvas ##
-Draws Surface contents to canvas, with its top-left corner at (x, y).
-
-If Paint paint is not nullptr, apply Color_Filter, Color_Alpha, Image_Filter,
-Blend_Mode, and Draw_Looper.
-
-#Param canvas Canvas drawn into ##
-#Param x horizontal offset in Canvas ##
-#Param y vertical offset in Canvas ##
-#Param paint Paint containing Blend_Mode, Color_Filter, Image_Filter,
- and so on; or nullptr
-##
+#Populate
#Example
#Height 64
@@ -1173,15 +845,7 @@
#Method bool peekPixels(SkPixmap* pixmap)
#In Pixels
#Line # copies Surface parameters to Pixmap ##
-Copies Surface pixel address, row bytes, and Image_Info to Pixmap, if address
-is available, and returns true. If pixel address is not available, return
-false and leave Pixmap unchanged.
-
-pixmap contents become invalid on any future change to Surface.
-
-#Param pixmap storage for pixel state if pixels are readable; otherwise, ignored ##
-
-#Return true if Surface has direct access to pixels ##
+#Populate
#Example
#Height 64
@@ -1407,17 +1071,17 @@
#Example
#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);
+ 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);
}
##
@@ -1462,9 +1126,7 @@
#Method const SkSurfaceProps& props() const
#In Property
#Line # returns Surface_Properties ##
-Returns Surface_Properties for surface.
-
-#Return LCD striping orientation and setting for device independent fonts ##
+#Populate
#Example
const char* names[] = { "Unknown", "RGB_H", "BGR_H", "RGB_V", "BGR_V" };
@@ -1493,11 +1155,7 @@
#Method void flush()
#In Utility
#Line # resolves pending I/O ##
-Issues pending Surface commands to the GPU-backed API and resolves any Surface MSAA.
-
-Skia flushes as needed, so it is not necessary to call this if Skia manages
-drawing and object lifetime. Call when interleaving Skia calls with native
-GPU calls.
+#Populate
#NoExample
##
@@ -1512,34 +1170,7 @@
GrBackendSemaphore signalSemaphores[])
#In Utility
#Line # resolves pending I/O, and signal ##
-
-Issues pending Surface commands to the GPU-backed API and resolves any Surface MSAA.
-After issuing all commands, signalSemaphores of count numSemaphores semaphores
-are signaled by the GPU.
-
-For each GrBackendSemaphore in signalSemaphores:
-if GrBackendSemaphore is initialized, the GPU back-end uses the semaphore as is;
-otherwise, a new semaphore is created and initializes GrBackendSemaphore.
-
-The caller must delete the semaphores created and returned in signalSemaphores.
-GrBackendSemaphore can be deleted as soon as this function returns.
-
-If the back-end API is OpenGL only uninitialized Backend_Semaphores are supported.
-
-If the back-end API is Vulkan semaphores may be initialized or uninitialized.
-If uninitialized, created semaphores are valid only with the VkDevice
-with which they were created.
-
-If GrSemaphoresSubmitted::kNo is returned, the GPU back-end did not create or
-add any semaphores to signal on the GPU; the caller should not instruct the GPU
-to wait on any of the semaphores.
-
-Pending surface commands are flushed regardless of the return result.
-
-#Param numSemaphores size of signalSemaphores array ##
-#Param signalSemaphores array of semaphore containers ##
-
-#Return one of: GrSemaphoresSubmitted::kYes, GrSemaphoresSubmitted::kNo ##
+#Populate
#NoExample
##
@@ -1553,16 +1184,7 @@
#Method bool wait(int numSemaphores, const GrBackendSemaphore* waitSemaphores)
#In Utility
#Line # pauses commands until signaled ##
-Inserts a list of GPU semaphores that the current GPU-backed API must wait on before
-executing any more commands on the GPU for this surface. Skia will take ownership of the
-underlying semaphores and delete them once they have been signaled and waited on.
-If this call returns false, then the GPU back-end will not wait on any passed in semaphores,
-and the client will still own the semaphores.
-
-#Param numSemaphores size of waitSemaphores array ##
-#Param waitSemaphores array of semaphore containers ##
-
-#Return true if GPU is waiting on semaphores ##
+#Populate
#NoExample
#ToDo this is copy and paste silliness masquerading as an example. Probably need gpu
@@ -1609,16 +1231,7 @@
#Method bool characterize(SkSurfaceCharacterization* characterization) const
#In Utility
#Line # sets Surface_Characterization for threaded GPU processing ##
-Initializes Surface_Characterization that can be used to perform GPU back-end
-processing in a separate thread. Typically this is used to divide drawing
-into multiple tiles. DeferredDisplayListRecorder records the drawing commands
-for each tile.
-
-Return true if Surface supports characterization. Raster_Surface returns false.
-
-#Param characterization properties for parallel drawing ##
-
-#Return true if supported ##
+#Populate
#Example
#Platform gpu
@@ -1655,16 +1268,7 @@
# ------------------------------------------------------------------------------
#Method bool draw(SkDeferredDisplayList* deferredDisplayList)
-
-Draws deferred display list created using SkDeferredDisplayListRecorder.
-Has no effect and returns false if Surface_Characterization stored in
-deferredDisplayList is not compatible with Surface.
-
-Raster_Surface returns false.
-
-#Param deferredDisplayList drawing commands ##
-
-#Return false if deferredDisplayList is not compatible ##
+#Populate
#Example
#Height 64
diff --git a/docs/SkTextBlobBuilder_Reference.bmh b/docs/SkTextBlobBuilder_Reference.bmh
index 386d720..306ac06 100644
--- a/docs/SkTextBlobBuilder_Reference.bmh
+++ b/docs/SkTextBlobBuilder_Reference.bmh
@@ -64,10 +64,7 @@
#Method SkTextBlobBuilder()
#In Constructors
#Line # constructs with default values ##
-
-Constructs empty Text_Blob_Builder. By default, Text_Blob_Builder has no runs.
-
-#Return empty Text_Blob_Builder ##
+#Populate
#Example
SkTextBlobBuilder builder;
@@ -87,7 +84,7 @@
#Method ~SkTextBlobBuilder()
#In Constructors
#Line # deletes storage ##
-Deletes data allocated internally by Text_Blob_Builder.
+#Populate
#NoExample
##
@@ -101,15 +98,7 @@
#Method sk_sp<SkTextBlob> make()
#In Constructors
#Line # constructs Text_Blob from bulider ##
-
-Returns Text_Blob built from runs of Glyphs added by builder. Returned
-Text_Blob is immutable; it may be copied, but its contents may not be altered.
-Returns nullptr if no runs of Glyphs were added by builder.
-
-Resets Text_Blob_Builder to its initial empty state, allowing it to be
-reused to build a new set of runs.
-
-#Return Text_Blob or nullptr ##
+#Populate
#Example
SkTextBlobBuilder builder;
@@ -343,7 +332,7 @@
#Height 90
SkTextBlobBuilder builder;
SkPaint paint, font;
- font.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
+ font.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
const SkTextBlobBuilder::RunBuffer& run = builder.allocRunPos(font, 5);
paint.textToGlyphs("hello", 5, run.glyphs);
SkPoint positions[] = {{0, 0}, {10, 10}, {20, 20}, {40, 40}, {80, 80}};
diff --git a/docs/SkTextBlob_Reference.bmh b/docs/SkTextBlob_Reference.bmh
index a3f1dd5..54908de 100644
--- a/docs/SkTextBlob_Reference.bmh
+++ b/docs/SkTextBlob_Reference.bmh
@@ -16,12 +16,7 @@
#Method const SkRect& bounds() const
#In Property
#Line # returns conservative bounding box ##
-
-Returns conservative bounding box. Uses Paint associated with each glyph to
-determine glyph bounds, and unions all bounds. Returned bounds may be
-larger than the bounds of all Glyphs in runs.
-
-#Return conservative bounding box ##
+#Populate
#Example
#Height 70
@@ -59,10 +54,7 @@
#Method uint32_t uniqueID() const
#In Property
#Line # returns identifier for Text_Blob ##
-
-Returns a non-zero value unique among all text blobs.
-
-#Return identifier for Text_Blob ##
+#Populate
#Example
for (int index = 0; index < 2; ++index) {
@@ -174,22 +166,7 @@
#Method size_t serialize(const SkSerialProcs& procs, void* memory, size_t memory_size) const
#In Utility
#Line # writes Text_Blob to memory ##
-
-Writes data to allow later reconstruction of Text_Blob. memory points to storage
-to receive the encoded data, and memory_size describes the size of storage.
-Returns bytes used if provided storage is large enough to hold all data;
-otherwise, returns zero.
-
-procs.fTypefaceProc permits supplying a custom function to encode Typeface.
-If procs.fTypefaceProc is nullptr, default encoding is used. procs.fTypefaceCtx
-may be used to provide user context to procs.fTypefaceProc; procs.fTypefaceProc
-is called with a pointer to Typeface and user context.
-
-#Param procs custom serial data encoders; may be nullptr ##
-#Param memory storage for data ##
-#Param size size of storage ##
-
-#Return bytes written, or zero if required storage is larger than memory_size ##
+#Populate
#Example
#Height 64
@@ -198,9 +175,9 @@
#include "SkSerialProcs.h"
$$
$$$#
- SkFont blobFont;
- blobFont.setSize(24);
- sk_sp<SkTextBlob> blob = SkTextBlob::MakeFromText("Hello World", 11, blobFont);
+ SkFont blobFont;
+ blobFont.setSize(24);
+ sk_sp<SkTextBlob> blob = SkTextBlob::MakeFromText("Hello World", 11, blobFont);
char storage[2048];
size_t used = blob->serialize(SkSerialProcs(), storage, sizeof(storage));
sk_sp<SkTextBlob> copy = SkTextBlob::Deserialize(storage, used, SkDeserialProcs());
@@ -218,17 +195,7 @@
#Method sk_sp<SkData> serialize(const SkSerialProcs& procs) const
#In Utility
#Line # writes Text_Blob to Data ##
-Returns storage containing Data describing Text_Blob, using optional custom
-encoders.
-
-procs.fTypefaceProc permits supplying a custom function to encode Typeface.
-If procs.fTypefaceProc is nullptr, default encoding is used. procs.fTypefaceCtx
-may be used to provide user context to procs.fTypefaceProc; procs.fTypefaceProc
-is called with a pointer to Typeface and user context.
-
-#Param procs custom serial data encoders; may be nullptr ##
-
-#Return storage containing serialized Text_Blob ##
+#Populate
#Example
#Height 24
@@ -237,8 +204,8 @@
#include "SkSerialProcs.h"
$$
$$$#
- SkFont blobFont;
- blobFont.setSize(24);
+ SkFont blobFont;
+ blobFont.setSize(24);
sk_sp<SkTextBlob> blob = SkTextBlob::MakeFromText("Hello World", 11, blobFont);
sk_sp<SkData> data = blob->serialize(SkSerialProcs());
sk_sp<SkTextBlob> copy = SkTextBlob::Deserialize(data->data(), data->size(), SkDeserialProcs());
@@ -254,21 +221,7 @@
#Method static sk_sp<SkTextBlob> Deserialize(const void* data, size_t size, const SkDeserialProcs& procs)
#In Constructors
#Line # constructs Text_Blob from memory ##
-
-Recreates Text_Blob that was serialized into data. Returns constructed Text_Blob
-if successful; otherwise, returns nullptr. Fails if size is smaller than
-required data length, or if data does not permit constructing valid Text_Blob.
-
-procs.fTypefaceProc permits supplying a custom function to decode Typeface.
-If procs.fTypefaceProc is nullptr, default decoding is used. procs.fTypefaceCtx
-may be used to provide user context to procs.fTypefaceProc; procs.fTypefaceProc
-is called with a pointer to Typeface data, data byte length, and user context.
-
-#Param data pointer for serial data ##
-#Param size size of data ##
-#Param procs custom serial data decoders; may be nullptr ##
-
-#Return Text_Blob constructed from data in memory ##
+#Populate
#Example
#Height 24
@@ -281,12 +234,12 @@
#include "SkSerialProcs.h"
$$
$$$#
- SkFont blobFont;
- blobFont.setSize(24);
- sk_sp<SkTextBlob> blob = SkTextBlob::MakeFromText("Hello World!", 12, blobFont);
- sk_sp<SkData> data = blob->serialize(SkSerialProcs());
- uint16_t glyphs[6];
- SkPaint blobPaint;
+ SkFont blobFont;
+ blobFont.setSize(24);
+ sk_sp<SkTextBlob> blob = SkTextBlob::MakeFromText("Hello World!", 12, blobFont);
+ sk_sp<SkData> data = blob->serialize(SkSerialProcs());
+ uint16_t glyphs[6];
+ SkPaint blobPaint;
blobPaint.textToGlyphs("Hacker", 6, glyphs);
memcpy((char*)data->writable_data() + 0x54, glyphs, sizeof(glyphs));
sk_sp<SkTextBlob> copy = SkTextBlob::Deserialize(data->data(), data->size(), SkDeserialProcs());
diff --git a/docs/spelling.txt b/docs/spelling.txt
new file mode 100644
index 0000000..68ab57e
--- /dev/null
+++ b/docs/spelling.txt
@@ -0,0 +1,242 @@
+a able abort aborted aborts about above abruptly absolute abstract abut access accessed accessible
+accompanying account accounted achieved acronym across active actual actually add added adding
+additional additionally address addressable adds adjacent adjusted adjusting adjustment
+adjustments adjusts advance advances advantage advantages affect affected affecting affects
+after again agree agrees algorithms align aligned alignment aligns alike all allocate
+allocated allocates allocating allocation allocations allow allowed allowing allows
+along also alter altered altering alternating alternative alters although altogether
+always among amount an anchor and angle angles animating animation annotate annotation annotations
+another answer anticipating any anywhere appear appears append appended appending appends
+applied applies apply applying approach approximate approximated approximately approximates
+approximation are area argument arguments arithmetic arms arrangement arranges array arrays
+arrow artifacts as ascending ascent aspect assert asserts assigned assigning assignment
+associate associated associates associating assumed asynchronous asynchronously at
+attach attached attempt attributes auxiliary available average averaged avoid avoiding
+away axes axis
+
+back back-end backed background backing balance balancing banding bare base based baseline
+be bearing because become becomes been before begin beginning begins behaves behavior being below
+beneath best better between bevel beveled beyond binary bit bits black bleed bleeding
+bleeds blend blended blending blends blobs blue blur blurred blurs bold bone bordered both
+bottom bottom-left bottom-right boundaries bounded bounding bounds box brace-delimited
+breaking brightened brighter brightness brush buffer bug bugs build builder building builds
+built but butt by byte bytes
+
+cache cached caches caching calculation call callback called caller calling calls can
+cannot cap capabilities capacity caps captured captures capturing care case cases cast
+casts cause causes center centered centers change changed changes changing channel channels
+char character characteristics characters check checked checkerboard checkerboards
+checking checks choice choose chooses choosing chosen circular clamped class classifies
+clean cleans clear cleared clearing clears client clip clipped clipping clips clock
+clockwise close closed closely closest clusters code codec codes collapse collects colored
+colors column columns combination combinations combine combined combines combining comma
+command commands commas common commonly communicates compact compare compared compares comparison
+compatibility compatible compile compiled compiler complete completely completes complex
+complexity complicated component components composed composite compositing composition
+compressed computation computations compute computed computes computing concatenated
+concatenates concatenation concave concert condensed condition configuration conical
+connect connected connecting connects consecutive conservative conservatively
+consideration considered consistent consists const containers constant constants constrained
+constraint
+construct constructed constructing construction constructions constructor constructs
+consumption contain contained container containing containment contains content contents
+context contexts contextual contiguous continue continues continuing continuous contrast
+contribute contributing contribution control controls convenience conveniences conversion
+convert converted converting converts convex convexity coordinate coordinates copied copies
+copy copying corner corners correct correctly correspond corresponding corresponds corrupt
+corrupting
+cosine could count counterclockwise counts coverage covered covering covers crash
+create created creates creating creator criteria critical cross cull culled culling
+cumulatively current curvature curving custom
+
+darken darker dashed dashes dashing debug decimal decode decoded decoders decodes decoding
+decomposed decomposing decrease decreased decreases decreasing decrements default defaults
+defer deferred
+defers define defined defines defining definition deform deformations degenerate degree
+degrees delete deleted deletes deleting dependent depending depends deprecated depth
+descent describe described describes describing description descriptions descriptor
+designate desired destination destinations destruct destructed details detected determine
+determined determines devices diagonally diameter did differ difference different
+differently differing differs digits dilates dimension dimensional dimensionless
+dimensions direct direction directly directory disable disabled disabling discard
+discarded discarding discards discrete display displayed distance distinct distribute
+distributed dither dithering divide divided divides dividing division divisions divisor do
+document-based documentation documenting does done dot dotted double down downgrading
+downscale downward draw drawing drawn draws due duplicate duplicating during dynamically
+
+each early easier edge edges edited editing effect effectively effects efficient
+efficiently eight either element elements eliminate ellipse elliptical else embedded
+empty enabled enables encapsulating enclose enclosed enclosing encode encoded encoder
+encoders encodes encoding encompasses end ending ends engine engines enlarge enough
+ensure ensuring entire entries entry environment equal equaling equality equally equals
+equivalent equivalents erases erroneously error evaluated even even-numbered even-odd
+evenly eventually ever every exact exactly exaggerates examined example exceed exceeds
+exceptions excess exchanged exchanges exchanging exclude excluded exclusive executing
+execution exhausted existing expanded expansion expected expecting explicitly exponent
+exposed expression extend extended extends extensive extent extra extract eye
+
+face faces factor factored factors fail failing fails failure fake fall false far fast faster fastest
+favor feature features fewer fidelity field fields figure file fill filled filling fills
+filter filtered filtering filters final finalized find fine finite first fit fits five fix
+fixed flag flags flattening flexibility float floating floats flow flush flushed flushes
+followed following follows fonts for force forced form format formats formed former forming
+forms formula found four fourth fractional fragment frame frames framework free freed
+freedom frees fringing from front full fully function functionality functions further future
+
+gamma gamut gap gaps general generate generated generates generator generic geometric geometrically
+geometries geometry get gets gigabyte gigabytes given gives global globally go goes
+good gradient gradients graphics gray greater green grid grows guarantee guaranteed guard
+
+had hairline hairlines half halved hand handle handling hands happens hard hardware has hash
+hashes have heap height help helper helpers helpful here hexadecimal hidden hierarchical
+high higher highest hint hinted hinting hints hit hitting hold holding holds hole holes
+horizontal horizontally host hosts hour how however hue hyperbola hyperbolic
+
+idea identical identically identifier identifies identify identifying identity if
+ignore ignored ignores ignoring illegal image-generator images immediate immediately
+immutable imperceptible implement implementation implementations implemented implementing
+implements implicitly improve improves improving in inaccessible include included includes
+including incompatible inconsistent incorrect incorrectly increase increased increases
+increasing increment incremented increments indefinitely independent independently index indicated
+indicating indices indistinguishable individual individually inefficient infinite infinities
+infinity
+influence info inform information initial initialize initialized initializes initializing
+initially inline inner input insert inserts inset insets inside inspected installed instance
+instantaneous instantiation instantiated instantiations instead instruct instructs integer integers
+integral
+intensity intercepted intercepts interchangeably interface interleaved interleaving
+intermediate internal internally interpolate interpolated interpolation interpret
+interpreted interrupted interruption intersect intersected intersecting intersection
+intersections intersects interval into introduces introducing invalid invalidate inverse
+inversely inverted investigated invoked irregular is issues issuing it italic items iterate iterated
+iterates iterating iteration iterator its itself
+
+join joins just
+
+keep keeping key-value known
+
+large largely larger largest last late later layout lazily leading least leave leaves
+leaving left left-aligned left-bottom left-top leftmost legacy legal length lengthens
+lengths less lessens lesser lets letters level levels lifetime lighten lighter lightness
+lightweight like likes limit limitation limited limits linear linearity list local locally
+located locates location locations logical longer look looks lookup loop loops lose loss
+lost low lower lower-case lower-left lowest luminosity
+
+made magnified magnitude magnitudes main maintained maintains major make makes making manage
+managed manages managing mandrill manipulating many map mapped mapping mappings
+maps mark marked marking marks mashup mask masked masks match matches matching mathematically
+maximum may maybe mean
+meaning meaningful means measurable measure measured measures measuring mechanism meet
+member members memory mesh met method methods metric metrics middle midpoint might
+mimics minimally minimum minor minus minute mirrors mismatched misnamed missing
+miter mode modes modification modifications modified modifier modifies modify
+modifying modulate modulated modulo monitor monitors more most mostly move moved
+moves moving multiple multiple-pass multiplied multiplier multiplies multiply
+multiplying must muted
+
+name named names narrower narrowing narrows native near nearby nearly necessarily necessary
+need needed needs negative nested never new newly next nibble nine no non-homogeneous
+non-square non-volatile non-zero none nor normal normalize normalized normally not
+note nothing noticeable now null null-terminated number numbers numeric numerically
+
+object objects oblique obtain occupies odd of off offers offset offsets often on
+on-demand once one only onto opacity opaque opaqueness open opened operand operate operates
+operation operations operator operators opposite optimal optimally optimizations
+optimize optimized option optional optionally options or order ordered organization
+organizes orient orientation origin original origins other others otherwise out outcome outer
+outline outlines output outset outsets outside outstanding over overall overdraw
+overflow overflows overhead overlap overlapping overlaps overlaying overlays overridden
+override overrides overriding overwriting overwritten own owned owner owners ownership
+owning
+
+pack packed packing padding paints pair paired pairs parabola parabolic parallel
+parameter parameters parsed parsing part partial partially parts pass passed passing past
+pattern patterns peek peeked peeking pen penalty pending per perception perform performance
+performed performing performs permit permits permitted perpendicular perspective perspective-scale
+perspective-x perspective-y physical piece pieces pin pinned pins pipeline pivot
+pixel-based pixels place placeholder placement places plane planes platform platform-specific
+platforms play playback played plus pointer pointers pointing polygon polygonal polynomial
+pop port portion position positioned positioning positions positive positives possible
+possibly potentially power practice preceded preceding precision predefined predictable
+predicted prepare present preserve preserved preserves preserving pressure prevent
+prevents previous previously primarily primitives printed prior private process processed
+processes processing processors produce produces product progressively promoted promoting
+properties proportion proportional proportionally proportionately provide provided
+provides providing pt pulled punches purposes put
+
+quadratic quality quantity quarter quick quickly
+
+race radii radius range ranges ranging rarely raster rather ratio raw read read-only
+readable reader reading reads really reassign receive receiver receives receiving
+reciprocal recognized recommended recompute recomputed reconstruct reconstruction
+reconstructs recorded recording records recreates rectangle rectangles rectangular red reduce
+reduced reducing reference referenced references referred referring refers reflect
+reflection regardless related relative relaxed release released releases releasing
+relies rely remain remainder remaining remains remove removed removes removing render
+rendered rendering repeated repeatedly replace replaced replacement replaces replacing replays
+replicate replicated replicates report reports represent representation representations
+representative represented representing represents request requested requests require
+required requirements requires requiring reserve reset resets reside residing resolution
+resolves resource resources respect respects responsible restore restored restores restoring
+restrict restricted restriction restrictive restricts result resulting results retain
+retained retains retrieve retrieved retrieves retroactive return returned returning returns
+reused reveals reverse reversed reverses revert right right-bottom right-top rightmost root
+rotate rotate-x rotate-y rotated rotates rotating rotation roughly round rounded
+rounding rounds route routes routines row rows rule rules run runs
+
+safe safely safer same sample sampled samples sampling satisfies satisfy satisfying
+saturation savable save saved saves scale scale-x scale-y scaled scales scaling scan
+scene scope second second-order section sections see seek segment segments select
+selecting selectively selector selects semaphore semaphores sensitive sent separate separately
+sequence serial serialized series service set sets setting settings shadow shadows
+shallow shape shapes shaping share shareable shared shares sharing sharp shear shift
+shifts short shorter shorthand should show shows shrink shrinks side sides sign signal
+signaled signed signs similar similarity simple simplify since single single-pass singly
+six sized sizes skew skewing skews skip skipped skips slant slightly slow slower slowest
+small smaller smallest smart smooth smoother so soft sole solely solid solution some
+sometimes soon sort sorted sorts source space spaced spacing span spanned spans special
+specialization specializations specializes specific specification specifics specified
+specifies specify specifying speed speeds square squared squares stack stage stages
+standard standards stands start started starting starts state states stationary stay
+stays std step steps still stock stop stops storage store stored stores storing straight
+straight-line streams strength stretched strictly strikeout strings stripe stripes
+striping stroke stroked strokes stroking struct style stylistic sub-pixel subclass
+submitting subsequent subsequently subset substitution subtle subtract subtracted
+succeed succeeded succeeds success successful successfully successive such sufficient
+suggests sum summing supplied supplies supply supplying support supported supports
+suppress surrogate swapped swaps sweep sweeping sweeps switches symbol symmetrically
+synchronous system
+
+tables take taken takes taking taller tangent tangents target targets techniques temporary
+ten terminate terminated test tested tests textual textures than that the their them then
+there therefore these they thick thickness thin thinner thinnest third third-order this
+those though thought thread threads three three-dimensional through thus tight tile
+tiles tiling time times
+to together toggled too top top-left top-right total totaling touches towards tracked tracks
+trades trading traditional transferred transfers transform transformation transformations
+transformed transforming transforms transition transitions translate translated translates
+translating translation translucent transparency transparent travel traveled treat treated
+treating treats triangle trigger triggered triggers trivial true try turned turns twice two
+two-dimensional type types typically typographic
+
+unaffected unaltered unchanged unchanging uncompressed undefined under underline
+underlines underlying unequal uniform uniformly uninitialized union unions unique
+unit unknown unless unlike unlikely unmodified unrelated unsigned unsorted until
+untouched unused up update updates upload uploaded upper upper-case upper-left upright upward
+usage use used useful user uses using utility
+
+valid validate validated validity value values variable variant variants varies vary
+varying verb version vertical vertically very via video views virtual visible visibly visual
+visually volatile
+
+wait waited waiting warning warnings was way ways wedge weight weighted well well-defined
+were whatever wheel when where whether which whichever while white whole whose wide
+wide-open widens wider width widths will wind winding windows winds with within without
+word words work works world would wrap wrapped wraps writable write writes writing
+written wrong
+
+x-axis x-coordinate
+
+y-axis y-coordinate
+
+z-axis zero zeroed zeroes zoom
diff --git a/docs/undocumented.bmh b/docs/undocumented.bmh
index a6bf6ee..3eda4eb 100644
--- a/docs/undocumented.bmh
+++ b/docs/undocumented.bmh
@@ -7,14 +7,16 @@
API
BMP GIF HEIF ICO JPEG PNG WBMP WebP
CPU
- GPU GPU-backed OpenGL Vulkan I/O MSAA
+ GPU GPU-backed OpenGL Vulkan VkDevice I/O MSAA
PDF XPS
RFC
NaN NaNs
- U16CPU
-
+ U16CPU int int8_t int16_t int32_t int64_t uint8_t uint16_t uint32_t uint64_t size_t
+ nullptr
+ malloc() calloc() assert() std::move()
C C++ SIZE_MAX C_FILE
CSS HTML
+ affine destructor multitexturing representable subclasses descenders grayscale kerning unhinted
Sa Da Sc Dc max min # temporary until figure out what to do
@@ -47,38 +49,6 @@
#External ##
-# this jargon requires a substitute to lower-case the word. The word is uppercase because
-# it is not a dictionary word. An alternative would be to put this in an exception list
-# in the spell checker
-#Topic Destructor
-#Substitute destructor
-##
-
-# see comment for Destructor above
-#Topic Subclasses
-#Substitute subclasses
-##
-
-# see comment for Destructor above
-#Topic Descenders
-#Substitute descenders
-##
-
-# see comment for Destructor above
-#Topic Grayscale
-#Substitute grayscale
-##
-
-# see comment for Destructor above
-#Topic Kerning
-#Substitute kerning
-##
-
-# see comment for Destructor above
-#Topic Unhinted
-#Substitute unhinted
-##
-
# this jargon requires a substitute to space the phrase.
#Topic Little_Endian
#Substitute little endian
@@ -260,6 +230,14 @@
#Topic Deserial_Procs
#Struct SkDeserialProcs
+#Member SkDeserialPictureProc fPictureProc
+##
+#Member void* fPictureCtx
+##
+#Member SkDeserialTypefaceProc fTypefaceProc
+##
+#Member void* fTypefaceCtx
+##
##
##
@@ -413,6 +391,10 @@
#Topic ISize
#Struct SkISize
+#Method int32_t width() const
+##
+#Method int32_t height() const
+##
##
##
@@ -444,6 +426,9 @@
#Topic ##
# to be in Topic Math
+ #Method float sqrt(float x)
+ # this permits using sqrt(x) in documentation
+ ##
#Method static inline bool sk_64_isS32(int64_t value)
##
#Method SkIntToScalar(x)
@@ -478,11 +463,10 @@
#Topic Nine_Patch
##
-# to be in Topic Number_Types
+# to be in Topic Number_Types ?
#Typedef uint16_t SkGlyphID
#Typedef ##
#Topic Scalar
- #Alias Scalar ##
#Alias Scalars ##
#Typedef float SkScalar
#Typedef ##
@@ -638,9 +622,11 @@
# end of Topic Rasterizer
#Topic Reference_Count
-#Substitute SkRefCnt
#Class SkRefCnt
#Class ##
+##
+
+#Topic Smart_Pointer
#Class sk_sp
#Class ##
#Topic ##
@@ -655,11 +641,27 @@
#Topic RSXform
#Struct SkRSXform
+#Member SkScalar fSCos
+##
+#Member SkScalar fSSin
+##
+#Member SkScalar fTx
+##
+#Member SkScalar fTy
+##
##
##
#Topic Serial_Procs
#Struct SkSerialProcs
+#Member SkSerialPictureProc fPictureProc
+##
+#Member void* fPictureCtx
+##
+#Member SkSerialTypefaceProc fTypefaceProc
+##
+#Member void* fTypefaceCtx
+##
##
##
@@ -684,6 +686,10 @@
#Topic Size
#Struct SkSize
+#Method int32_t width() const
+##
+#Method int32_t height() const
+##
##
##
@@ -725,6 +731,9 @@
##
#Subtopic Arc
##
+#Subtopic Sweep_Flag
+#Substitute SVG sweep-flag
+##
##
#Topic Text
@@ -815,7 +824,3 @@
#Class SkXfermodeImageFilter
##
##
-
-# temporary while ref is separated from overview
-#Topic Zero_Length_Contour
-##
diff --git a/docs/usingBookmaker.bmh b/docs/usingBookmaker.bmh
index 91d79ce..d241ef3 100644
--- a/docs/usingBookmaker.bmh
+++ b/docs/usingBookmaker.bmh
@@ -1,7 +1,8 @@
#External
SkXXX
-SkIRect_Reference
-SkSurface_Reference
+docs/SkIRect_Reference
+docs/SkSurface_Reference
+include/core/SkSurface
SkSurface.h
CL
Go
diff --git a/site/user/api/SkAutoCanvasRestore_Reference.md b/site/user/api/SkAutoCanvasRestore_Reference.md
index 412cb97..a95de25 100644
--- a/site/user/api/SkAutoCanvasRestore_Reference.md
+++ b/site/user/api/SkAutoCanvasRestore_Reference.md
@@ -27,21 +27,21 @@
<a href='#SkAutoCanvasRestore'>SkAutoCanvasRestore</a>(<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* canvas, bool doSave)
</pre>
-Preserves <a href='SkCanvas_Reference#Canvas'>Canvas</a> save count. Optionally saves <a href='SkCanvas_Reference#Clip'>Canvas Clip</a> and <a href='SkCanvas_Reference#Matrix'>Canvas Matrix</a>.
+Preserves <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> save count. Optionally saves <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> clip and <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkMatrix_Reference#Matrix'>matrix</a>.
### Parameters
<table> <tr> <td><a name='SkAutoCanvasRestore_SkCanvas_star_canvas'><code><strong>canvas</strong></code></a></td>
- <td><a href='SkCanvas_Reference#Canvas'>Canvas</a> to guard</td>
+ <td><a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> to guard</td>
</tr>
<tr> <td><a name='SkAutoCanvasRestore_SkCanvas_star_doSave'><code><strong>doSave</strong></code></a></td>
- <td>call <a href='SkCanvas_Reference#SkCanvas_save'>SkCanvas::save</a>()</td>
+ <td>call <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::save()</td>
</tr>
</table>
### Return Value
-utility to restore <a href='SkCanvas_Reference#Canvas'>Canvas</a> state on destructor
+utility to restore <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> state on destructor
### Example
@@ -59,7 +59,7 @@
<a href='#SkAutoCanvasRestore_destructor'>~SkAutoCanvasRestore</a>()
</pre>
-Restores <a href='SkCanvas_Reference#Canvas'>Canvas</a> to saved state. <a href='undocumented#Destructor'>Destructor</a> is called when container goes out of
+Restores <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> to saved state. Destructor is called when container goes out of
scope.
### See Also
@@ -74,8 +74,8 @@
void <a href='#SkAutoCanvasRestore_restore'>restore</a>()
</pre>
-Restores <a href='SkCanvas_Reference#Canvas'>Canvas</a> to saved state immediately. Subsequent calls and
-<a href='#SkAutoCanvasRestore_destructor'>~SkAutoCanvasRestore</a> have no effect.
+Restores <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> to saved state immediately. Subsequent calls and
+~<a href='SkAutoCanvasRestore_Reference#SkAutoCanvasRestore'>SkAutoCanvasRestore</a> have no effect.
### Example
diff --git a/site/user/api/SkBitmap_Reference.md b/site/user/api/SkBitmap_Reference.md
index 54433b7..949acfb 100644
--- a/site/user/api/SkBitmap_Reference.md
+++ b/site/user/api/SkBitmap_Reference.md
@@ -164,20 +164,20 @@
virtual bool <a href='#SkBitmap_Allocator_allocPixelRef'>allocPixelRef</a>(<a href='#SkBitmap'>SkBitmap</a>* bitmap) = 0
</pre>
-Allocates the pixel memory for the <a href='#SkBitmap_Allocator_allocPixelRef_bitmap'>bitmap</a>, given its dimensions and
-<a href='SkImageInfo_Reference#Color_Type'>Color Type</a>. Returns true on success, where success means either <a href='#SkBitmap_setPixels'>setPixels</a>
-or <a href='#SkBitmap_setPixelRef'>setPixelRef</a> was called.
+Allocates the <a href='undocumented#Pixel'>pixel</a> memory for the <a href='#SkBitmap_Allocator_allocPixelRef_bitmap'>bitmap</a>, given its dimensions and
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>. Returns true on success, where success means either <a href='#SkBitmap_setPixels'>setPixels</a>()
+or <a href='#SkBitmap_setPixelRef'>setPixelRef</a>() was called.
### Parameters
<table> <tr> <td><a name='SkBitmap_Allocator_allocPixelRef_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td><a href='#Bitmap'>Bitmap</a> containing <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> as input, and <a href='undocumented#Pixel_Ref'>Pixel Ref</a> as output</td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> containing <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> as input, and <a href='undocumented#SkPixelRef'>SkPixelRef</a> as output</td>
</tr>
</table>
### Return Value
-true if <a href='undocumented#Pixel_Ref'>Pixel Ref</a> was allocated
+true if <a href='undocumented#SkPixelRef'>SkPixelRef</a> was allocated
### See Also
@@ -206,14 +206,14 @@
bool <a href='#SkBitmap_HeapAllocator_allocPixelRef'>allocPixelRef</a>(<a href='#SkBitmap'>SkBitmap</a>* bitmap) override
</pre>
-Allocates the pixel memory for the <a href='#SkBitmap_HeapAllocator_allocPixelRef_bitmap'>bitmap</a>, given its dimensions and
-<a href='SkImageInfo_Reference#Color_Type'>Color Type</a>. Returns true on success, where success means either <a href='#SkBitmap_setPixels'>setPixels</a>
-or <a href='#SkBitmap_setPixelRef'>setPixelRef</a> was called.
+Allocates the <a href='undocumented#Pixel'>pixel</a> memory for the <a href='#SkBitmap_HeapAllocator_allocPixelRef_bitmap'>bitmap</a>, given its dimensions and
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>. Returns true on success, where success means either <a href='#SkBitmap_setPixels'>setPixels</a>()
+or <a href='#SkBitmap_setPixelRef'>setPixelRef</a>() was called.
### Parameters
<table> <tr> <td><a name='SkBitmap_HeapAllocator_allocPixelRef_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td><a href='#Bitmap'>Bitmap</a> containing <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> as input, and <a href='undocumented#Pixel_Ref'>Pixel Ref</a> as output</td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> containing <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> as input, and <a href='undocumented#SkPixelRef'>SkPixelRef</a> as output</td>
</tr>
</table>
@@ -247,16 +247,16 @@
<a href='#SkBitmap'>SkBitmap</a>()
</pre>
-Creates an empty <a href='#Bitmap'>Bitmap</a> without pixels, with <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>,
-<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, and with a width and height of zero. <a href='undocumented#Pixel_Ref'>Pixel Ref</a> origin is
-set to (0, 0). <a href='#Bitmap'>Bitmap</a> is not volatile.
+Creates an empty <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> without pixels, with <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>,
+<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, and with a width and height of zero. <a href='undocumented#SkPixelRef'>SkPixelRef</a> origin is
+set to (0, 0). <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> is not volatile.
-Use <a href='#SkBitmap_setInfo'>setInfo</a> to associate <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, width, and height
-after <a href='#Bitmap'>Bitmap</a> has been created.
+Use <a href='#SkBitmap_setInfo'>setInfo</a>() to associate <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, width, and height
+after <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> has been created.
### Return Value
-empty <a href='#Bitmap'>Bitmap</a>
+empty <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>
### Example
@@ -283,19 +283,19 @@
<a href='#SkBitmap'>SkBitmap</a>(const <a href='#SkBitmap'>SkBitmap</a>& src)
</pre>
-Copies settings from <a href='#SkBitmap_copy_const_SkBitmap_src'>src</a> to returned <a href='#Bitmap'>Bitmap</a>. Shares pixels if <a href='#SkBitmap_copy_const_SkBitmap_src'>src</a> has pixels
-allocated, so both bitmaps reference the same pixels.
+Copies settings from <a href='#SkBitmap_SkBitmap(const SkBitmap& src)_src'>src</a> to returned <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. Shares pixels if <a href='#SkBitmap_SkBitmap(const SkBitmap& src)_src'>src</a> has pixels
+allocated, so both <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> reference the same pixels.
### Parameters
<table> <tr> <td><a name='SkBitmap_copy_const_SkBitmap_src'><code><strong>src</strong></code></a></td>
- <td><a href='#Bitmap'>Bitmap</a> to copy <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, and share <a href='undocumented#Pixel_Ref'>Pixel Ref</a></td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> to copy <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, and share <a href='undocumented#SkPixelRef'>SkPixelRef</a></td>
</tr>
</table>
### Return Value
-copy of <a href='#SkBitmap_copy_const_SkBitmap_src'>src</a>
+copy of <a href='#SkBitmap_SkBitmap(const SkBitmap& src)_src'>src</a>
### Example
@@ -323,19 +323,19 @@
<a href='#SkBitmap'>SkBitmap</a>(<a href='#SkBitmap'>SkBitmap</a>&& src)
</pre>
-Copies settings from <a href='#SkBitmap_move_SkBitmap_src'>src</a> to returned <a href='#Bitmap'>Bitmap</a>. Moves ownership of <a href='#SkBitmap_move_SkBitmap_src'>src</a> pixels to
-<a href='#Bitmap'>Bitmap</a>.
+Copies settings from <a href='#SkBitmap_SkBitmap(SkBitmap&& src)_src'>src</a> to returned <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. Moves ownership of <a href='#SkBitmap_SkBitmap(SkBitmap&& src)_src'>src</a> pixels to
+<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>.
### Parameters
<table> <tr> <td><a name='SkBitmap_move_SkBitmap_src'><code><strong>src</strong></code></a></td>
- <td><a href='#Bitmap'>Bitmap</a> to copy <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, and reassign <a href='undocumented#Pixel_Ref'>Pixel Ref</a></td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> to copy <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, and reassign <a href='undocumented#SkPixelRef'>SkPixelRef</a></td>
</tr>
</table>
### Return Value
-copy of <a href='#SkBitmap_move_SkBitmap_src'>src</a>
+copy of <a href='#SkBitmap_SkBitmap(SkBitmap&& src)_src'>src</a>
### Example
@@ -363,7 +363,7 @@
<a href='#SkBitmap_destructor'>~SkBitmap</a>()
</pre>
-Decrements <a href='undocumented#Pixel_Ref'>Pixel Ref</a> reference count, if <a href='undocumented#Pixel_Ref'>Pixel Ref</a> is not nullptr.
+Decrements <a href='undocumented#SkPixelRef'>SkPixelRef</a> <a href='undocumented#Reference_Count'>reference count</a>, if <a href='undocumented#SkPixelRef'>SkPixelRef</a> is not nullptr.
### See Also
@@ -377,19 +377,19 @@
<a href='#SkBitmap'>SkBitmap</a>& <a href='#SkBitmap_copy_operator'>operator=(const SkBitmap& src)</a>
</pre>
-Copies settings from <a href='#SkBitmap_copy_operator_src'>src</a> to returned <a href='#Bitmap'>Bitmap</a>. Shares pixels if <a href='#SkBitmap_copy_operator_src'>src</a> has pixels
-allocated, so both bitmaps reference the same pixels.
+Copies settings from <a href='#SkBitmap_operator=(const SkBitmap& src)_src'>src</a> to returned <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. Shares pixels if <a href='#SkBitmap_operator=(const SkBitmap& src)_src'>src</a> has pixels
+allocated, so both <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> reference the same pixels.
### Parameters
<table> <tr> <td><a name='SkBitmap_copy_operator_src'><code><strong>src</strong></code></a></td>
- <td><a href='#Bitmap'>Bitmap</a> to copy <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, and share <a href='undocumented#Pixel_Ref'>Pixel Ref</a></td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> to copy <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, and share <a href='undocumented#SkPixelRef'>SkPixelRef</a></td>
</tr>
</table>
### Return Value
-copy of <a href='#SkBitmap_copy_operator_src'>src</a>
+copy of <a href='#SkBitmap_operator=(const SkBitmap& src)_src'>src</a>
### Example
@@ -417,19 +417,19 @@
<a href='#SkBitmap'>SkBitmap</a>& <a href='#SkBitmap_move_operator'>operator=(SkBitmap&& src)</a>
</pre>
-Copies settings from <a href='#SkBitmap_move_operator_src'>src</a> to returned <a href='#Bitmap'>Bitmap</a>. Moves ownership of <a href='#SkBitmap_move_operator_src'>src</a> pixels to
-<a href='#Bitmap'>Bitmap</a>.
+Copies settings from <a href='#SkBitmap_operator=(SkBitmap&& src)_src'>src</a> to returned <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. Moves ownership of <a href='#SkBitmap_operator=(SkBitmap&& src)_src'>src</a> pixels to
+<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>.
### Parameters
<table> <tr> <td><a name='SkBitmap_move_operator_src'><code><strong>src</strong></code></a></td>
- <td><a href='#Bitmap'>Bitmap</a> to copy <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, and reassign <a href='undocumented#Pixel_Ref'>Pixel Ref</a></td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> to copy <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, and reassign <a href='undocumented#SkPixelRef'>SkPixelRef</a></td>
</tr>
</table>
### Return Value
-copy of <a href='#SkBitmap_move_operator_src'>src</a>
+copy of <a href='#SkBitmap_operator=(SkBitmap&& src)_src'>src</a>
### Example
@@ -457,12 +457,12 @@
void <a href='#SkBitmap_swap'>swap</a>(<a href='#SkBitmap'>SkBitmap</a>& other)
</pre>
-Swaps the fields of the two bitmaps.
+Swaps the fields of the two <a href='SkBitmap_Reference#Bitmap'>bitmaps</a>.
### Parameters
<table> <tr> <td><a name='SkBitmap_swap_other'><code><strong>other</strong></code></a></td>
- <td><a href='#Bitmap'>Bitmap</a> exchanged with original</td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> exchanged with original</td>
</tr>
</table>
@@ -495,12 +495,12 @@
const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& <a href='#SkBitmap_pixmap'>pixmap</a>() const
</pre>
-Returns a constant reference to the <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> holding the <a href='#Bitmap'>Bitmap</a> pixel
-address, row bytes, and <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>.
+Returns a constant reference to the <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> holding the <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='undocumented#Pixel'>pixel</a>
+address, <a href='#Row_Bytes'>row bytes</a>, and <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>.
### Return Value
-reference to <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> describing this <a href='#Bitmap'>Bitmap</a>
+reference to <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> describing this <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>
### Example
@@ -536,11 +536,11 @@
const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='#SkBitmap_info'>info</a>() const
</pre>
-Returns width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, and <a href='undocumented#Color_Space'>Color Space</a>.
+Returns width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, and <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
### Return Value
-reference to <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>
+reference to <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
### Example
@@ -599,14 +599,14 @@
int <a href='#SkBitmap_height'>height</a>() const
</pre>
-Returns pixel row count.
+Returns <a href='undocumented#Pixel'>pixel</a> row count.
-Maybe be less than <a href='#SkBitmap_pixelRef'>pixelRef</a>().<a href='#SkBitmap_height'>height</a>(). Will not exceed <a href='#SkBitmap_pixelRef'>pixelRef</a>().<a href='#SkBitmap_height'>height</a>() less
-<a href='#SkBitmap_pixelRefOrigin'>pixelRefOrigin</a>().fY.
+Maybe be less than <a href='#SkBitmap_pixelRef'>pixelRef</a>().<a href='#SkPixelRef_height'>height()</a>. Will not exceed <a href='#SkBitmap_pixelRef'>pixelRef</a>().<a href='#SkPixelRef_height'>height()</a> less
+<a href='#SkBitmap_pixelRefOrigin'>pixelRefOrigin</a>().<a href='#SkIPoint_fY'>fY</a>.
### Return Value
-pixel height in <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>
+<a href='undocumented#Pixel'>pixel</a> height in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
### Example
@@ -696,13 +696,13 @@
<a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkBitmap_colorSpace'>colorSpace</a>() const
</pre>
-Returns <a href='undocumented#Color_Space'>Color Space</a>, the range of colors, associated with <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>. The
-reference count of <a href='undocumented#Color_Space'>Color Space</a> is unchanged. The returned <a href='undocumented#Color_Space'>Color Space</a> is
+Returns <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors, associated with <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. The
+<a href='undocumented#Reference_Count'>reference count</a> of <a href='undocumented#SkColorSpace'>SkColorSpace</a> is unchanged. The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is
immutable.
### Return Value
-<a href='undocumented#Color_Space'>Color Space</a> in <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, or nullptr
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, or nullptr
### Example
@@ -730,15 +730,15 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkBitmap_refColorSpace'>refColorSpace</a>() const
</pre>
-Returns smart pointer to <a href='undocumented#Color_Space'>Color Space</a>, the range of colors, associated with
-<a href='SkImageInfo_Reference#Image_Info'>Image Info</a>. The smart pointer tracks the number of objects sharing this
-<a href='undocumented#Color_Space'>Color Space</a> reference so the memory is released when the owners destruct.
+Returns <a href='undocumented#Smart_Pointer'>smart pointer</a> to <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors, associated with
+<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. The <a href='undocumented#Smart_Pointer'>smart pointer</a> tracks the number of objects sharing this
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> reference so the memory is released when the owners destruct.
-The returned <a href='undocumented#Color_Space'>Color Space</a> is immutable.
+The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is immutable.
### Return Value
-<a href='undocumented#Color_Space'>Color Space</a> in <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> wrapped in a smart pointer
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> wrapped in a <a href='undocumented#Smart_Pointer'>smart pointer</a>
### Example
@@ -764,12 +764,12 @@
int <a href='#SkBitmap_bytesPerPixel'>bytesPerPixel</a>() const
</pre>
-Returns number of bytes per pixel required by <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>.
+Returns number of bytes per <a href='undocumented#Pixel'>pixel</a> required by <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
Returns zero if <a href='#SkBitmap_colorType'>colorType</a>( is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
### Return Value
-bytes in pixel
+bytes in <a href='undocumented#Pixel'>pixel</a>
### Example
@@ -809,7 +809,7 @@
</pre>
Returns number of pixels that fit on row. Should be greater than or equal to
-<a href='#SkBitmap_width'>width</a>().
+<a href='#SkBitmap_width'>width()</a>.
### Return Value
@@ -843,7 +843,7 @@
int <a href='#SkBitmap_shiftPerPixel'>shiftPerPixel</a>() const
</pre>
-Returns bit shift converting row bytes to row pixels.
+Returns bit shift converting <a href='#Row_Bytes'>row bytes</a> to row pixels.
Returns zero for <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
### Return Value
@@ -887,10 +887,10 @@
bool <a href='#SkBitmap_empty'>empty</a>() const
</pre>
-Returns true if either <a href='#SkBitmap_width'>width</a>() or <a href='#SkBitmap_height'>height</a>() are zero.
+Returns true if either <a href='#SkBitmap_width'>width()</a> or <a href='#SkBitmap_height'>height()</a> are zero.
-Does not check if <a href='undocumented#Pixel_Ref'>Pixel Ref</a> is nullptr; call <a href='#SkBitmap_drawsNothing'>drawsNothing</a> to check <a href='#SkBitmap_width'>width</a>(),
-<a href='#SkBitmap_height'>height</a>(), and <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
+Does not check if <a href='undocumented#SkPixelRef'>SkPixelRef</a> is nullptr; call <a href='#SkBitmap_drawsNothing'>drawsNothing</a>() to check <a href='#SkBitmap_width'>width()</a>,
+<a href='#SkBitmap_height'>height()</a>, and <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
### Return Value
@@ -923,14 +923,14 @@
bool <a href='#SkBitmap_isNull'>isNull</a>() const
</pre>
-Returns true if <a href='undocumented#Pixel_Ref'>Pixel Ref</a> is nullptr.
+Returns true if <a href='undocumented#SkPixelRef'>SkPixelRef</a> is nullptr.
-Does not check if <a href='#SkBitmap_width'>width</a>() or <a href='#SkBitmap_height'>height</a>() are zero; call <a href='#SkBitmap_drawsNothing'>drawsNothing</a> to check
-<a href='#SkBitmap_width'>width</a>(), <a href='#SkBitmap_height'>height</a>(), and <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
+Does not check if <a href='#SkBitmap_width'>width()</a> or <a href='#SkBitmap_height'>height()</a> are zero; call <a href='#SkBitmap_drawsNothing'>drawsNothing</a>() to check
+<a href='#SkBitmap_width'>width()</a>, <a href='#SkBitmap_height'>height()</a>, and <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
### Return Value
-true if no <a href='undocumented#Pixel_Ref'>Pixel Ref</a> is associated
+true if no <a href='undocumented#SkPixelRef'>SkPixelRef</a> is associated
### Example
@@ -958,8 +958,8 @@
bool <a href='#SkBitmap_drawsNothing'>drawsNothing</a>() const
</pre>
-Returns true if <a href='#SkBitmap_width'>width</a>() or <a href='#SkBitmap_height'>height</a>() are zero, or if <a href='undocumented#Pixel_Ref'>Pixel Ref</a> is nullptr.
-If true, <a href='#Bitmap'>Bitmap</a> has no effect when drawn or drawn into.
+Returns true if <a href='#SkBitmap_width'>width()</a> or <a href='#SkBitmap_height'>height()</a> are zero, or if <a href='undocumented#SkPixelRef'>SkPixelRef</a> is nullptr.
+If true, <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> has no effect when drawn or drawn into.
### Return Value
@@ -1027,40 +1027,42 @@
bool <a href='#SkBitmap_setAlphaType'>setAlphaType</a>(<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkBitmap_alphaType'>alphaType</a>)
</pre>
-Sets <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, if <a href='#SkBitmap_alphaType'>alphaType</a> is compatible with <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>.
-Returns true unless <a href='#SkBitmap_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a> and current <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>
+Sets <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, if <a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> is compatible with <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
+Returns true unless <a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a> and current <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>
is not <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
-Returns true if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>. <a href='#SkBitmap_alphaType'>alphaType</a> is ignored, and
-<a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> remains <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
+Returns true if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>. <a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> is ignored, and
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> remains <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
-Returns true if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>.
-<a href='#SkBitmap_alphaType'>alphaType</a> is ignored, and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> remains <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.
+Returns true if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>.
+<a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> is ignored, and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> remains <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.
-If <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>,
+If <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>,
<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, or <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>: returns true unless
-<a href='#SkBitmap_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> is not <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
-If <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#SkBitmap_alphaType'>alphaType</a> is ignored.
+<a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is not <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
+If <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> is ignored.
-If <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, returns true unless
-<a href='#SkBitmap_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> is not <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
-If <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#SkBitmap_alphaType'>alphaType</a> is ignored. If <a href='#SkBitmap_alphaType'>alphaType</a> is
+If <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, returns true unless
+<a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is not <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
+If <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> is ignored. If <a href='#SkBitmap_setAlphaType_alphaType'>alphaType</a> is
<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>, it is treated as <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>.
-This changes <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> in <a href='undocumented#Pixel_Ref'>Pixel Ref</a>; all bitmaps sharing <a href='undocumented#Pixel_Ref'>Pixel Ref</a>
+This changes <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> in <a href='undocumented#SkPixelRef'>SkPixelRef</a>; all <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> sharing <a href='undocumented#SkPixelRef'>SkPixelRef</a>
are affected.
### Parameters
<table> <tr> <td><a name='SkBitmap_setAlphaType_alphaType'><code><strong>alphaType</strong></code></a></td>
- <td>one of: <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
-<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> </td>
+ <td>one of:</td>
</tr>
</table>
+<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
+<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>
+
### Return Value
-true if <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> is set
+true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is set
### Example
@@ -1082,11 +1084,11 @@
void* <a href='#SkBitmap_getPixels'>getPixels</a>() const
</pre>
-Returns pixel address, the base address corresponding to the pixel origin.
+Returns <a href='undocumented#Pixel'>pixel</a> address, the base address corresponding to the <a href='undocumented#Pixel'>pixel</a> origin.
### Return Value
-pixel address
+<a href='undocumented#Pixel'>pixel</a> address
### Example
@@ -1113,15 +1115,15 @@
size_t <a href='#SkBitmap_computeByteSize'>computeByteSize</a>() const
</pre>
-Returns minimum memory required for pixel storage.
-Does not include unused memory on last row when <a href='#SkBitmap_rowBytesAsPixels'>rowBytesAsPixels</a> exceeds <a href='#SkBitmap_width'>width</a>().
+Returns minimum memory required for <a href='undocumented#Pixel_Storage'>pixel storage</a>.
+Does not include unused memory on last row when <a href='#SkBitmap_rowBytesAsPixels'>rowBytesAsPixels</a>() exceeds <a href='#SkBitmap_width'>width()</a>.
Returns zero if result does not fit in size_t.
-Returns zero if <a href='#SkBitmap_height'>height</a>() or <a href='#SkBitmap_width'>width</a>() is 0.
-Returns <a href='#SkBitmap_height'>height</a>() times <a href='#SkBitmap_rowBytes'>rowBytes</a> if <a href='#SkBitmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
+Returns zero if <a href='#SkBitmap_height'>height()</a> or <a href='#SkBitmap_width'>width()</a> is 0.
+Returns <a href='#SkBitmap_height'>height()</a> times <a href='#SkBitmap_rowBytes'>rowBytes</a>() if <a href='#SkBitmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
### Return Value
-size in bytes of image buffer
+<a href='undocumented#Size'>size</a> in bytes of <a href='SkImage_Reference#Image'>image</a> buffer
### Example
@@ -1157,7 +1159,7 @@
Returns true if pixels can not change.
-Most immutable <a href='#Bitmap'>Bitmap</a> checks trigger an assert only on debug builds.
+Most immutable <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> checks trigger an assert only on debug builds.
### Return Value
@@ -1188,11 +1190,11 @@
void <a href='#SkBitmap_setImmutable'>setImmutable</a>()
</pre>
-Sets internal flag to mark <a href='#Bitmap'>Bitmap</a> as immutable. Once set, pixels can not change.
-Any other bitmap sharing the same <a href='undocumented#Pixel_Ref'>Pixel Ref</a> are also marked as immutable.
-Once <a href='undocumented#Pixel_Ref'>Pixel Ref</a> is marked immutable, the setting cannot be cleared.
+Sets internal flag to mark <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> as immutable. Once set, pixels can not change.
+Any other <a href='SkBitmap_Reference#Bitmap'>bitmap</a> sharing the same <a href='undocumented#SkPixelRef'>SkPixelRef</a> are also marked as immutable.
+Once <a href='undocumented#SkPixelRef'>SkPixelRef</a> is marked immutable, the setting cannot be cleared.
-Writing to immutable <a href='#Bitmap'>Bitmap</a> pixels triggers an assert on debug builds.
+Writing to immutable <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> pixels triggers an assert on debug builds.
### Example
@@ -1211,16 +1213,16 @@
bool <a href='#SkBitmap_isOpaque'>isOpaque</a>() const
</pre>
-Returns true if <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> is set to hint that all pixels are opaque; their
-<a href='SkColor_Reference#Alpha'>Color Alpha</a> value is implicitly or explicitly 1.0. If true, and all pixels are
+Returns true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is set to hint that all pixels are opaque; their
+<a href='SkColor_Reference#Alpha'>alpha</a> value is implicitly or explicitly 1.0. If true, and all pixels are
not opaque, Skia may draw incorrectly.
-Does not check if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> allows <a href='SkColor_Reference#Alpha'>Alpha</a>, or if any pixel value has
+Does not check if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> allows <a href='SkColor_Reference#Alpha'>alpha</a>, or if any <a href='undocumented#Pixel'>pixel</a> value has
transparency.
### Return Value
-true if <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>
+true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>
### Example
@@ -1251,9 +1253,9 @@
</pre>
Provides a hint to caller that pixels should not be cached. Only true if
-<a href='#SkBitmap_setIsVolatile'>setIsVolatile</a> has been called to mark as volatile.
+<a href='#SkBitmap_setIsVolatile'>setIsVolatile</a>() has been called to mark as volatile.
-Volatile state is not shared by other bitmaps sharing the same <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
+Volatile state is not shared by other <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> sharing the same <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
### Return Value
@@ -1284,12 +1286,12 @@
void <a href='#SkBitmap_setIsVolatile'>setIsVolatile</a>(bool <a href='#SkBitmap_isVolatile'>isVolatile</a>)
</pre>
-Sets if pixels should be read from <a href='undocumented#Pixel_Ref'>Pixel Ref</a> on every access. <a href='#Bitmap'>Bitmaps</a> are not
-volatile by default; a GPU back end may upload pixel values expecting them to be
-accessed repeatedly. Marking temporary <a href='#Bitmap'>Bitmaps</a> as volatile provides a hint to
-<a href='undocumented#Device'>Device</a> that the <a href='#Bitmap'>Bitmap</a> pixels should not be cached. This can
+Sets if pixels should be read from <a href='undocumented#SkPixelRef'>SkPixelRef</a> on every access. <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> are not
+volatile by default; a GPU back end may upload <a href='undocumented#Pixel'>pixel</a> values expecting them to be
+accessed repeatedly. Marking temporary <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> as volatile provides a hint to
+<a href='undocumented#SkBaseDevice'>SkBaseDevice</a> that the <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> pixels should not be cached. This can
improve performance by avoiding overhead and reducing resource
-consumption on <a href='undocumented#Device'>Device</a>.
+consumption on <a href='undocumented#SkBaseDevice'>SkBaseDevice</a>.
### Parameters
@@ -1314,14 +1316,14 @@
void <a href='#SkBitmap_reset'>reset</a>()
</pre>
-Resets to its initial state; all fields are set to zero, as if <a href='#Bitmap'>Bitmap</a> had
+Resets to its initial state; all fields are set to zero, as if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> had
been initialized by <a href='#SkBitmap_empty_constructor'>SkBitmap()</a>.
-Sets width, height, row bytes to zero; pixel address to nullptr; <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> to
+Sets width, height, <a href='#Row_Bytes'>row bytes</a> to zero; <a href='undocumented#Pixel'>pixel</a> address to nullptr; <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> to
<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>; and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> to <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
-If <a href='undocumented#Pixel_Ref'>Pixel Ref</a> is allocated, its reference count is decreased by one, releasing
-its memory if <a href='#Bitmap'>Bitmap</a> is the sole owner.
+If <a href='undocumented#SkPixelRef'>SkPixelRef</a> is allocated, its <a href='undocumented#Reference_Count'>reference count</a> is decreased by one, releasing
+its memory if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> is the sole owner.
### Example
@@ -1348,16 +1350,16 @@
static bool <a href='#SkBitmap_ComputeIsOpaque'>ComputeIsOpaque</a>(const <a href='#SkBitmap'>SkBitmap</a>& bm)
</pre>
-Returns true if all pixels are opaque. <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> determines how pixels
-are encoded, and whether pixel describes <a href='SkColor_Reference#Alpha'>Alpha</a>. Returns true for <a href='SkImageInfo_Reference#Color_Type'>Color Types</a>
-without alpha in each pixel; for other <a href='SkImageInfo_Reference#Color_Type'>Color Types</a>, returns true if all
-pixels have alpha values equivalent to 1.0 or greater.
+Returns true if all pixels are opaque. <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> determines how pixels
+are encoded, and whether <a href='undocumented#Pixel'>pixel</a> describes <a href='SkColor_Reference#Alpha'>alpha</a>. Returns true for <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>
+without <a href='SkColor_Reference#Alpha'>alpha</a> in each <a href='undocumented#Pixel'>pixel</a>; for other <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, returns true if all
+pixels have <a href='SkColor_Reference#Alpha'>alpha</a> values equivalent to 1.0 or greater.
-For <a href='SkImageInfo_Reference#Color_Type'>Color Types</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>: always
-returns true. For <a href='SkImageInfo_Reference#Color_Type'>Color Types</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>,
-<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>: returns true if all pixel <a href='SkColor_Reference#Alpha'>Alpha</a> values are 255.
-For <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>: returns true if all pixel <a href='SkColor_Reference#Alpha'>Alpha</a> values are 15.
-For <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>: returns true if all pixel <a href='SkColor_Reference#Alpha'>Alpha</a> values are 1.0 or
+For <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>: always
+returns true. For <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>: returns true if all <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> values are 255.
+For <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>: returns true if all <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> values are 15.
+For <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>: returns true if all <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> values are 1.0 or
greater.
Returns false for <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
@@ -1365,13 +1367,13 @@
### Parameters
<table> <tr> <td><a name='SkBitmap_ComputeIsOpaque_bm'><code><strong>bm</strong></code></a></td>
- <td><a href='#Bitmap'>Bitmap</a> to check</td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> to check</td>
</tr>
</table>
### Return Value
-true if all pixels have opaque values or <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is opaque
+true if all pixels have opaque values or <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is opaque
### Example
@@ -1400,12 +1402,12 @@
void <a href='#SkBitmap_getBounds'>getBounds</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* bounds) const
</pre>
-Returns <a href='SkRect_Reference#Rect'>Rect</a> { 0, 0, <a href='#SkBitmap_width'>width</a>(), <a href='#SkBitmap_height'>height</a>() }.
+Returns <a href='SkRect_Reference#SkRect'>SkRect</a> { 0, 0, <a href='#SkBitmap_width'>width()</a>, <a href='#SkBitmap_height'>height()</a> }.
### Parameters
<table> <tr> <td><a name='SkBitmap_getBounds_bounds'><code><strong>bounds</strong></code></a></td>
- <td>container for floating point rectangle</td>
+ <td>container for floating <a href='SkPoint_Reference#Point'>point</a> rectangle</td>
</tr>
</table>
@@ -1425,7 +1427,7 @@
void <a href='#SkBitmap_getBounds'>getBounds</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* bounds) const
</pre>
-Returns <a href='SkIRect_Reference#IRect'>IRect</a> { 0, 0, <a href='#SkBitmap_width'>width</a>(), <a href='#SkBitmap_height'>height</a>() }.
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> { 0, 0, <a href='#SkBitmap_width'>width()</a>, <a href='#SkBitmap_height'>height()</a> }.
### Parameters
@@ -1450,11 +1452,11 @@
<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkBitmap_bounds'>bounds</a>() const
</pre>
-Returns <a href='SkIRect_Reference#IRect'>IRect</a> { 0, 0, <a href='#SkBitmap_width'>width</a>(), <a href='#SkBitmap_height'>height</a>() }.
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> { 0, 0, <a href='#SkBitmap_width'>width()</a>, <a href='#SkBitmap_height'>height()</a> }.
### Return Value
-integral rectangle from origin to <a href='#SkBitmap_width'>width</a>() and <a href='#SkBitmap_height'>height</a>()
+integral rectangle from origin to <a href='#SkBitmap_width'>width()</a> and <a href='#SkBitmap_height'>height()</a>
### Example
@@ -1472,11 +1474,11 @@
<a href='undocumented#SkISize'>SkISize</a> <a href='#SkBitmap_dimensions'>dimensions</a>() const
</pre>
-Returns <a href='undocumented#ISize'>ISize</a> { <a href='#SkBitmap_width'>width</a>(), <a href='#SkBitmap_height'>height</a>() }.
+Returns <a href='undocumented#SkISize'>SkISize</a> { <a href='#SkBitmap_width'>width()</a>, <a href='#SkBitmap_height'>height()</a> }.
### Return Value
-integral size of <a href='#SkBitmap_width'>width</a>() and <a href='#SkBitmap_height'>height</a>()
+integral <a href='undocumented#Size'>size</a> of <a href='#SkBitmap_width'>width()</a> and <a href='#SkBitmap_height'>height()</a>
### Example
@@ -1494,11 +1496,11 @@
<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkBitmap_getSubset'>getSubset</a>() const
</pre>
-Returns the bounds of this bitmap, offset by its <a href='undocumented#Pixel_Ref'>Pixel Ref</a> origin.
+Returns the bounds of this <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, offset by its <a href='undocumented#SkPixelRef'>SkPixelRef</a> origin.
### Return Value
-bounds within <a href='undocumented#Pixel_Ref'>Pixel Ref</a> bounds
+bounds within <a href='undocumented#SkPixelRef'>SkPixelRef</a> bounds
### Example
@@ -1619,28 +1621,28 @@
bool <a href='#SkBitmap_tryAllocPixelsFlags'>tryAllocPixelsFlags</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, uint32_t flags)
</pre>
-Sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to info following the rules in <a href='#SkBitmap_setInfo'>setInfo</a> and allocates pixel
-memory. If <a href='#SkBitmap_tryAllocPixelsFlags_flags'>flags</a> is <a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels AllocFlag</a>, memory is zeroed.
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_tryAllocPixelsFlags_info'>info</a> following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>() and allocates <a href='undocumented#Pixel'>pixel</a>
+memory. If <a href='#SkBitmap_tryAllocPixelsFlags_flags'>flags</a> is <a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a>, memory is zeroed.
-Returns false and calls <a href='#SkBitmap_reset'>reset</a>() if <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> could not be set, or memory could
+Returns false and calls <a href='#SkBitmap_reset'>reset()</a> if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> could not be set, or memory could
not be allocated, or memory could not optionally be zeroed.
-On most platforms, allocating pixel memory may succeed even though there is
+On most platforms, allocating <a href='undocumented#Pixel'>pixel</a> memory may succeed even though there is
not sufficient memory to hold pixels; allocation does not take place
until the pixels are written to. The actual behavior depends on the platform
implementation of malloc(), if <a href='#SkBitmap_tryAllocPixelsFlags_flags'>flags</a> is zero, and calloc(), if <a href='#SkBitmap_tryAllocPixelsFlags_flags'>flags</a> is
-<a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels AllocFlag</a>.
+<a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a>.
-<a href='#SkBitmap_tryAllocPixelsFlags_flags'>flags</a> set to <a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels AllocFlag</a> offers equal or better performance than
-subsequently calling <a href='#SkBitmap_eraseColor'>eraseColor</a> with <a href='SkColor_Reference#SK_ColorTRANSPARENT'>SK ColorTRANSPARENT</a>.
+<a href='#SkBitmap_tryAllocPixelsFlags_flags'>flags</a> set to <a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a> offers equal or better performance than
+subsequently calling <a href='#SkBitmap_eraseColor'>eraseColor</a>() with <a href='SkColor_Reference#SK_ColorTRANSPARENT'>SK_ColorTRANSPARENT</a>.
### Parameters
<table> <tr> <td><a name='SkBitmap_tryAllocPixelsFlags_info'><code><strong>info</strong></code></a></td>
- <td>contains width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a></td>
+ <td>contains width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
</tr>
<tr> <td><a name='SkBitmap_tryAllocPixelsFlags_flags'><code><strong>flags</strong></code></a></td>
- <td><a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels AllocFlag</a>, or zero</td>
+ <td><a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a>, or zero</td>
</tr>
</table>
@@ -1672,30 +1674,30 @@
void <a href='#SkBitmap_allocPixelsFlags'>allocPixelsFlags</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, uint32_t flags)
</pre>
-Sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to info following the rules in <a href='#SkBitmap_setInfo'>setInfo</a> and allocates pixel
-memory. If <a href='#SkBitmap_allocPixelsFlags_flags'>flags</a> is <a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels AllocFlag</a>, memory is zeroed.
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_allocPixelsFlags_info'>info</a> following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>() and allocates <a href='undocumented#Pixel'>pixel</a>
+memory. If <a href='#SkBitmap_allocPixelsFlags_flags'>flags</a> is <a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a>, memory is zeroed.
-Aborts execution if <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> could not be set, or memory could
+Aborts execution if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> could not be set, or memory could
not be allocated, or memory could not optionally
be zeroed. Abort steps may be provided by the user at compile time by defining
SK_ABORT.
-On most platforms, allocating pixel memory may succeed even though there is
+On most platforms, allocating <a href='undocumented#Pixel'>pixel</a> memory may succeed even though there is
not sufficient memory to hold pixels; allocation does not take place
until the pixels are written to. The actual behavior depends on the platform
implementation of malloc(), if <a href='#SkBitmap_allocPixelsFlags_flags'>flags</a> is zero, and calloc(), if <a href='#SkBitmap_allocPixelsFlags_flags'>flags</a> is
-<a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels AllocFlag</a>.
+<a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a>.
-<a href='#SkBitmap_allocPixelsFlags_flags'>flags</a> set to <a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels AllocFlag</a> offers equal or better performance than
-subsequently calling <a href='#SkBitmap_eraseColor'>eraseColor</a> with <a href='SkColor_Reference#SK_ColorTRANSPARENT'>SK ColorTRANSPARENT</a>.
+<a href='#SkBitmap_allocPixelsFlags_flags'>flags</a> set to <a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a> offers equal or better performance than
+subsequently calling <a href='#SkBitmap_eraseColor'>eraseColor</a>() with <a href='SkColor_Reference#SK_ColorTRANSPARENT'>SK_ColorTRANSPARENT</a>.
### Parameters
<table> <tr> <td><a name='SkBitmap_allocPixelsFlags_info'><code><strong>info</strong></code></a></td>
- <td>contains width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a></td>
+ <td>contains width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
</tr>
<tr> <td><a name='SkBitmap_allocPixelsFlags_flags'><code><strong>flags</strong></code></a></td>
- <td><a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels AllocFlag</a>, or zero</td>
+ <td><a href='#SkBitmap_kZeroPixels_AllocFlag'>kZeroPixels_AllocFlag</a>, or zero</td>
</tr>
</table>
@@ -1717,14 +1719,14 @@
bool <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, size_t <a href='#SkBitmap_rowBytes'>rowBytes</a>)
</pre>
-Sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to info following the rules in <a href='#SkBitmap_setInfo'>setInfo</a> and allocates pixel
-memory. <a href='#SkBitmap_rowBytes'>rowBytes</a> must equal or exceed info.<a href='#SkBitmap_width'>width</a>() times info.<a href='#SkBitmap_bytesPerPixel'>bytesPerPixel</a>(),
-or equal zero. Pass in zero for <a href='#SkBitmap_rowBytes'>rowBytes</a> to compute the minimum valid value.
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_tryAllocPixels_info'>info</a> following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>() and allocates <a href='undocumented#Pixel'>pixel</a>
+memory. <a href='#SkBitmap_tryAllocPixels_rowBytes'>rowBytes</a> must equal or exceed <a href='#SkBitmap_tryAllocPixels_info'>info</a>.<a href='#SkImageInfo_width'>width()</a> times <a href='#SkBitmap_tryAllocPixels_info'>info</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(),
+or equal zero. Pass in zero for <a href='#SkBitmap_tryAllocPixels_rowBytes'>rowBytes</a> to compute the minimum valid value.
-Returns false and calls <a href='#SkBitmap_reset'>reset</a>() if <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> could not be set, or memory could
+Returns false and calls <a href='#SkBitmap_reset'>reset()</a> if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> could not be set, or memory could
not be allocated.
-On most platforms, allocating pixel memory may succeed even though there is
+On most platforms, allocating <a href='undocumented#Pixel'>pixel</a> memory may succeed even though there is
not sufficient memory to hold pixels; allocation does not take place
until the pixels are written to. The actual behavior depends on the platform
implementation of malloc().
@@ -1732,16 +1734,16 @@
### Parameters
<table> <tr> <td><a name='SkBitmap_tryAllocPixels_info'><code><strong>info</strong></code></a></td>
- <td>contains width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a></td>
+ <td>contains width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
</tr>
<tr> <td><a name='SkBitmap_tryAllocPixels_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td>size of pixel row or larger; may be zero</td>
+ <td><a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a> row or larger; may be zero</td>
</tr>
</table>
### Return Value
-true if pixel storage is allocated
+true if <a href='undocumented#Pixel_Storage'>pixel storage</a> is allocated
### Example
@@ -1759,15 +1761,15 @@
void <a href='#SkBitmap_allocPixels'>allocPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, size_t <a href='#SkBitmap_rowBytes'>rowBytes</a>)
</pre>
-Sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to info following the rules in <a href='#SkBitmap_setInfo'>setInfo</a> and allocates pixel
-memory. <a href='#SkBitmap_rowBytes'>rowBytes</a> must equal or exceed info.<a href='#SkBitmap_width'>width</a>() times info.<a href='#SkBitmap_bytesPerPixel'>bytesPerPixel</a>(),
-or equal zero. Pass in zero for <a href='#SkBitmap_rowBytes'>rowBytes</a> to compute the minimum valid value.
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_allocPixels_info'>info</a> following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>() and allocates <a href='undocumented#Pixel'>pixel</a>
+memory. <a href='#SkBitmap_allocPixels_rowBytes'>rowBytes</a> must equal or exceed <a href='#SkBitmap_allocPixels_info'>info</a>.<a href='#SkImageInfo_width'>width()</a> times <a href='#SkBitmap_allocPixels_info'>info</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(),
+or equal zero. Pass in zero for <a href='#SkBitmap_allocPixels_rowBytes'>rowBytes</a> to compute the minimum valid value.
-Aborts execution if <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> could not be set, or memory could
+Aborts execution if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> could not be set, or memory could
not be allocated. Abort steps may be provided by
the user at compile time by defining SK_ABORT.
-On most platforms, allocating pixel memory may succeed even though there is
+On most platforms, allocating <a href='undocumented#Pixel'>pixel</a> memory may succeed even though there is
not sufficient memory to hold pixels; allocation does not take place
until the pixels are written to. The actual behavior depends on the platform
implementation of malloc().
@@ -1775,10 +1777,10 @@
### Parameters
<table> <tr> <td><a name='SkBitmap_allocPixels_info'><code><strong>info</strong></code></a></td>
- <td>contains width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a></td>
+ <td>contains width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
</tr>
<tr> <td><a name='SkBitmap_allocPixels_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td>size of pixel row or larger; may be zero</td>
+ <td><a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a> row or larger; may be zero</td>
</tr>
</table>
@@ -1798,13 +1800,13 @@
bool <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info)
</pre>
-Sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to info following the rules in <a href='#SkBitmap_setInfo'>setInfo</a> and allocates pixel
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_tryAllocPixels_2_info'>info</a> following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>() and allocates <a href='undocumented#Pixel'>pixel</a>
memory.
-Returns false and calls <a href='#SkBitmap_reset'>reset</a>() if <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> could not be set, or memory could
+Returns false and calls <a href='#SkBitmap_reset'>reset()</a> if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> could not be set, or memory could
not be allocated.
-On most platforms, allocating pixel memory may succeed even though there is
+On most platforms, allocating <a href='undocumented#Pixel'>pixel</a> memory may succeed even though there is
not sufficient memory to hold pixels; allocation does not take place
until the pixels are written to. The actual behavior depends on the platform
implementation of malloc().
@@ -1812,13 +1814,13 @@
### Parameters
<table> <tr> <td><a name='SkBitmap_tryAllocPixels_2_info'><code><strong>info</strong></code></a></td>
- <td>contains width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a></td>
+ <td>contains width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
</tr>
</table>
### Return Value
-true if pixel storage is allocated
+true if <a href='undocumented#Pixel_Storage'>pixel storage</a> is allocated
### Example
@@ -1836,14 +1838,14 @@
void <a href='#SkBitmap_allocPixels'>allocPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info)
</pre>
-Sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to info following the rules in <a href='#SkBitmap_setInfo'>setInfo</a> and allocates pixel
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_allocPixels_2_info'>info</a> following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>() and allocates <a href='undocumented#Pixel'>pixel</a>
memory.
-Aborts execution if <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> could not be set, or memory could
+Aborts execution if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> could not be set, or memory could
not be allocated. Abort steps may be provided by
the user at compile time by defining SK_ABORT.
-On most platforms, allocating pixel memory may succeed even though there is
+On most platforms, allocating <a href='undocumented#Pixel'>pixel</a> memory may succeed even though there is
not sufficient memory to hold pixels; allocation does not take place
until the pixels are written to. The actual behavior depends on the platform
implementation of malloc().
@@ -1851,7 +1853,7 @@
### Parameters
<table> <tr> <td><a name='SkBitmap_allocPixels_2_info'><code><strong>info</strong></code></a></td>
- <td>contains width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a></td>
+ <td>contains width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
</tr>
</table>
@@ -1871,25 +1873,25 @@
bool <a href='#SkBitmap_tryAllocN32Pixels'>tryAllocN32Pixels</a>(int width, int height, bool <a href='#SkBitmap_isOpaque'>isOpaque</a> = false)
</pre>
-Sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to width, height, and <a href='SkImageInfo_Reference#kN32_SkColorType'>Native_Color_Type</a>; and allocates
-pixel memory. If <a href='#SkBitmap_isOpaque'>isOpaque</a> is true, sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>;
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_tryAllocN32Pixels_width'>width</a>, <a href='#SkBitmap_tryAllocN32Pixels_height'>height</a>, and native <a href='SkImageInfo_Reference#Color_Type'>color type</a>; and allocates
+<a href='undocumented#Pixel'>pixel</a> memory. If <a href='#SkBitmap_tryAllocN32Pixels_isOpaque'>isOpaque</a> is true, sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>;
otherwise, sets to <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>.
-Calls <a href='#SkBitmap_reset'>reset</a>() and returns false if width exceeds 29 bits or is negative,
-or height is negative.
+Calls <a href='#SkBitmap_reset'>reset()</a> and returns false if <a href='#SkBitmap_tryAllocN32Pixels_width'>width</a> exceeds 29 bits or is negative,
+or <a href='#SkBitmap_tryAllocN32Pixels_height'>height</a> is negative.
Returns false if allocation fails.
-Use to create <a href='#Bitmap'>Bitmap</a> that matches <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>, the native pixel arrangement on
-the platform. <a href='#Bitmap'>Bitmap</a> drawn to output device skips converting its pixel format.
+Use to create <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> that matches <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>, the native <a href='undocumented#Pixel'>pixel</a> arrangement on
+the platform. <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> drawn to output <a href='undocumented#Device'>device</a> skips converting its <a href='undocumented#Pixel'>pixel</a> format.
### Parameters
<table> <tr> <td><a name='SkBitmap_tryAllocN32Pixels_width'><code><strong>width</strong></code></a></td>
- <td>pixel column count; must be zero or greater</td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkBitmap_tryAllocN32Pixels_height'><code><strong>height</strong></code></a></td>
- <td>pixel row count; must be zero or greater</td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkBitmap_tryAllocN32Pixels_isOpaque'><code><strong>isOpaque</strong></code></a></td>
<td>true if pixels do not have transparency</td>
@@ -1898,7 +1900,7 @@
### Return Value
-true if pixel storage is allocated
+true if <a href='undocumented#Pixel_Storage'>pixel storage</a> is allocated
### Example
@@ -1916,24 +1918,24 @@
void <a href='#SkBitmap_allocN32Pixels'>allocN32Pixels</a>(int width, int height, bool <a href='#SkBitmap_isOpaque'>isOpaque</a> = false)
</pre>
-Sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to width, height, and the <a href='SkImageInfo_Reference#kN32_SkColorType'>Native_Color_Type</a>; and allocates
-pixel memory. If <a href='#SkBitmap_isOpaque'>isOpaque</a> is true, sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>;
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_allocN32Pixels_width'>width</a>, <a href='#SkBitmap_allocN32Pixels_height'>height</a>, and the native <a href='SkImageInfo_Reference#Color_Type'>color type</a>; and allocates
+<a href='undocumented#Pixel'>pixel</a> memory. If <a href='#SkBitmap_allocN32Pixels_isOpaque'>isOpaque</a> is true, sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>;
otherwise, sets to <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.
-Aborts if width exceeds 29 bits or is negative, or height is negative, or
+Aborts if <a href='#SkBitmap_allocN32Pixels_width'>width</a> exceeds 29 bits or is negative, or <a href='#SkBitmap_allocN32Pixels_height'>height</a> is negative, or
allocation fails. Abort steps may be provided by the user at compile time by
defining SK_ABORT.
-Use to create <a href='#Bitmap'>Bitmap</a> that matches <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>, the native pixel arrangement on
-the platform. <a href='#Bitmap'>Bitmap</a> drawn to output device skips converting its pixel format.
+Use to create <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> that matches <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>, the native <a href='undocumented#Pixel'>pixel</a> arrangement on
+the platform. <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> drawn to output <a href='undocumented#Device'>device</a> skips converting its <a href='undocumented#Pixel'>pixel</a> format.
### Parameters
<table> <tr> <td><a name='SkBitmap_allocN32Pixels_width'><code><strong>width</strong></code></a></td>
- <td>pixel column count; must be zero or greater</td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkBitmap_allocN32Pixels_height'><code><strong>height</strong></code></a></td>
- <td>pixel row count; must be zero or greater</td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkBitmap_allocN32Pixels_isOpaque'><code><strong>isOpaque</strong></code></a></td>
<td>true if pixels do not have transparency</td>
@@ -1957,31 +1959,31 @@
(void* addr, void* context) , void* context)
</pre>
-Sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to info following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>, and creates <a href='undocumented#Pixel_Ref'>Pixel Ref</a>
-containing <a href='#SkBitmap_installPixels_pixels'>pixels</a> and <a href='#SkBitmap_rowBytes'>rowBytes</a>. <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a>, if not nullptr, is called
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_installPixels_info'>info</a> following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>(), and creates <a href='undocumented#SkPixelRef'>SkPixelRef</a>
+containing <a href='#SkBitmap_installPixels_pixels'>pixels</a> and <a href='#SkBitmap_installPixels_rowBytes'>rowBytes</a>. <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a>, if not nullptr, is called
immediately on failure or when <a href='#SkBitmap_installPixels_pixels'>pixels</a> are no longer referenced. <a href='#SkBitmap_installPixels_context'>context</a> may be
nullptr.
-If <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> could not be set, or <a href='#SkBitmap_rowBytes'>rowBytes</a> is less than info.<a href='SkImageInfo_Reference#SkImageInfo'>minRowBytes</a>:
-calls <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> if present, calls <a href='#SkBitmap_reset'>reset</a>(), and returns false.
+If <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> could not be set, or <a href='#SkBitmap_installPixels_rowBytes'>rowBytes</a> is less than <a href='#SkBitmap_installPixels_info'>info</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>():
+calls <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> if present, calls <a href='#SkBitmap_reset'>reset()</a>, and returns false.
-Otherwise, if <a href='#SkBitmap_installPixels_pixels'>pixels</a> equals nullptr: sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, calls <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> if
+Otherwise, if <a href='#SkBitmap_installPixels_pixels'>pixels</a> equals nullptr: sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, calls <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> if
present, returns true.
-If <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> is set, <a href='#SkBitmap_installPixels_pixels'>pixels</a> is not nullptr, and <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> is not nullptr:
+If <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is set, <a href='#SkBitmap_installPixels_pixels'>pixels</a> is not nullptr, and <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> is not nullptr:
when <a href='#SkBitmap_installPixels_pixels'>pixels</a> are no longer referenced, calls <a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> with <a href='#SkBitmap_installPixels_pixels'>pixels</a> and <a href='#SkBitmap_installPixels_context'>context</a>
as parameters.
### Parameters
<table> <tr> <td><a name='SkBitmap_installPixels_info'><code><strong>info</strong></code></a></td>
- <td>contains width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a></td>
+ <td>contains width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
</tr>
<tr> <td><a name='SkBitmap_installPixels_pixels'><code><strong>pixels</strong></code></a></td>
- <td>address or pixel storage; may be nullptr</td>
+ <td>address or <a href='undocumented#Pixel_Storage'>pixel storage</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkBitmap_installPixels_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td>size of pixel row or larger</td>
+ <td><a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a> row or larger</td>
</tr>
<tr> <td><a name='SkBitmap_installPixels_releaseProc'><code><strong>releaseProc</strong></code></a></td>
<td>function called when <a href='#SkBitmap_installPixels_pixels'>pixels</a> can be deleted; may be nullptr</td>
@@ -1993,11 +1995,11 @@
### Return Value
-true if <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> is set to info
+true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is set to <a href='#SkBitmap_installPixels_info'>info</a>
### Example
-<div><fiddle-embed name="8c4f7bf73fffa1a812ee8e88e44e639c"><div><a href='#SkBitmap_installPixels_releaseProc'>releaseProc</a> is called immediately because <a href='#SkBitmap_rowBytes'>rowBytes</a> is too small for <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
+<div><fiddle-embed name="8c4f7bf73fffa1a812ee8e88e44e639c"><div>releaseProc is called immediately because <a href='#SkBitmap_rowBytes'>rowBytes</a> is too small for <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
</div>
#### Example Output
@@ -2022,32 +2024,32 @@
bool <a href='#SkBitmap_installPixels'>installPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, void* pixels, size_t <a href='#SkBitmap_rowBytes'>rowBytes</a>)
</pre>
-Sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to info following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>, and creates <a href='undocumented#Pixel_Ref'>Pixel Ref</a>
-containing <a href='#SkBitmap_installPixels_2_pixels'>pixels</a> and <a href='#SkBitmap_rowBytes'>rowBytes</a>.
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_installPixels_2_info'>info</a> following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>(), and creates <a href='undocumented#SkPixelRef'>SkPixelRef</a>
+containing <a href='#SkBitmap_installPixels_2_pixels'>pixels</a> and <a href='#SkBitmap_installPixels_2_rowBytes'>rowBytes</a>.
-If <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> could not be set, or <a href='#SkBitmap_rowBytes'>rowBytes</a> is less than info.<a href='SkImageInfo_Reference#SkImageInfo'>minRowBytes</a>:
-calls <a href='#SkBitmap_reset'>reset</a>(), and returns false.
+If <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> could not be set, or <a href='#SkBitmap_installPixels_2_rowBytes'>rowBytes</a> is less than <a href='#SkBitmap_installPixels_2_info'>info</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>():
+calls <a href='#SkBitmap_reset'>reset()</a>, and returns false.
-Otherwise, if <a href='#SkBitmap_installPixels_2_pixels'>pixels</a> equals nullptr: sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, returns true.
+Otherwise, if <a href='#SkBitmap_installPixels_2_pixels'>pixels</a> equals nullptr: sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, returns true.
-Caller must ensure that <a href='#SkBitmap_installPixels_2_pixels'>pixels</a> are valid for the lifetime of <a href='#Bitmap'>Bitmap</a> and <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
+Caller must ensure that <a href='#SkBitmap_installPixels_2_pixels'>pixels</a> are valid for the lifetime of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> and <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
### Parameters
<table> <tr> <td><a name='SkBitmap_installPixels_2_info'><code><strong>info</strong></code></a></td>
- <td>contains width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a></td>
+ <td>contains width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
</tr>
<tr> <td><a name='SkBitmap_installPixels_2_pixels'><code><strong>pixels</strong></code></a></td>
- <td>address or pixel storage; may be nullptr</td>
+ <td>address or <a href='undocumented#Pixel_Storage'>pixel storage</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkBitmap_installPixels_2_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td>size of pixel row or larger</td>
+ <td><a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a> row or larger</td>
</tr>
</table>
### Return Value
-true if <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> is set to info
+true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is set to <a href='#SkBitmap_installPixels_2_info'>info</a>
### Example
@@ -2066,26 +2068,26 @@
bool <a href='#SkBitmap_installPixels'>installPixels</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& pixmap)
</pre>
-Sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to pixmap.<a href='#SkBitmap_info'>info</a>() following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>, and creates
-<a href='undocumented#Pixel_Ref'>Pixel Ref</a> containing pixmap.addr() and pixmap.<a href='#SkBitmap_rowBytes'>rowBytes</a>.
+Sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a>.<a href='#SkPixmap_info'>info()</a> following the rules in <a href='#SkBitmap_setInfo'>setInfo</a>(), and creates
+<a href='undocumented#SkPixelRef'>SkPixelRef</a> containing <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a>.<a href='#SkPixmap_addr'>addr()</a> and <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>().
-If <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> could not be set, or pixmap.<a href='#SkBitmap_rowBytes'>rowBytes</a> is less than
-<a href='SkImageInfo_Reference#SkImageInfo_minRowBytes'>SkImageInfo::minRowBytes</a>: calls <a href='#SkBitmap_reset'>reset</a>(), and returns false.
+If <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> could not be set, or <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() is less than
+<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>(): calls <a href='#SkBitmap_reset'>reset()</a>, and returns false.
-Otherwise, if pixmap.addr() equals nullptr: sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, returns true.
+Otherwise, if <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a>.<a href='#SkPixmap_addr'>addr()</a> equals nullptr: sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, returns true.
-Caller must ensure that pixmap is valid for the lifetime of <a href='#Bitmap'>Bitmap</a> and <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
+Caller must ensure that <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a> is valid for the lifetime of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> and <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
### Parameters
<table> <tr> <td><a name='SkBitmap_installPixels_3_pixmap'><code><strong>pixmap</strong></code></a></td>
- <td><a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, pixel address, and <a href='#SkBitmap_rowBytes'>rowBytes</a></td>
+ <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='undocumented#Pixel'>pixel</a> address, and <a href='#SkBitmap_rowBytes'>rowBytes</a>()</td>
</tr>
</table>
### Return Value
-true if <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> was set to pixmap.<a href='#SkBitmap_info'>info</a>()
+true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> was set to <a href='#SkBitmap_installPixels_3_pixmap'>pixmap</a>.<a href='#SkBitmap_info'>info()</a>
### Example
@@ -2116,19 +2118,19 @@
void <a href='#SkBitmap_setPixels'>setPixels</a>(void* pixels)
</pre>
-Replaces <a href='undocumented#Pixel_Ref'>Pixel Ref</a> with <a href='#SkBitmap_setPixels_pixels'>pixels</a>, preserving <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> and <a href='#SkBitmap_rowBytes'>rowBytes</a>.
-Sets <a href='undocumented#Pixel_Ref'>Pixel Ref</a> origin to (0, 0).
+Replaces <a href='undocumented#SkPixelRef'>SkPixelRef</a> with <a href='#SkBitmap_setPixels_pixels'>pixels</a>, preserving <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> and <a href='#SkBitmap_rowBytes'>rowBytes</a>().
+Sets <a href='undocumented#SkPixelRef'>SkPixelRef</a> origin to (0, 0).
-If <a href='#SkBitmap_setPixels_pixels'>pixels</a> is nullptr, or if <a href='#SkBitmap_info'>info</a>().<a href='#SkBitmap_colorType'>colorType</a> equals <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
-release reference to <a href='undocumented#Pixel_Ref'>Pixel Ref</a>, and set <a href='undocumented#Pixel_Ref'>Pixel Ref</a> to nullptr.
+If <a href='#SkBitmap_setPixels_pixels'>pixels</a> is nullptr, or if <a href='#SkBitmap_info'>info()</a>.<a href='#SkImageInfo_colorType'>colorType</a>() equals <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
+release reference to <a href='undocumented#SkPixelRef'>SkPixelRef</a>, and set <a href='undocumented#SkPixelRef'>SkPixelRef</a> to nullptr.
-Caller is responsible for handling ownership pixel memory for the lifetime
-of <a href='#Bitmap'>Bitmap</a> and <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
+Caller is responsible for handling ownership <a href='undocumented#Pixel'>pixel</a> memory for the lifetime
+of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> and <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
### Parameters
<table> <tr> <td><a name='SkBitmap_setPixels_pixels'><code><strong>pixels</strong></code></a></td>
- <td>address of pixel storage, managed by caller</td>
+ <td>address of <a href='undocumented#Pixel_Storage'>pixel storage</a>, managed by caller</td>
</tr>
</table>
@@ -2148,10 +2150,10 @@
bool <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>()
</pre>
-Allocates pixel memory with <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a>, and replaces existing <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
-The allocation size is determined by <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> width, height, and <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>.
+Allocates <a href='undocumented#Pixel'>pixel</a> memory with <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a>, and replaces existing <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
+The allocation <a href='undocumented#Size'>size</a> is determined by <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> width, height, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-Returns false if <a href='#SkBitmap_info'>info</a>().<a href='#SkBitmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or allocation fails.
+Returns false if <a href='#SkBitmap_info'>info()</a>.<a href='#SkImageInfo_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or allocation fails.
### Return Value
@@ -2176,10 +2178,10 @@
void <a href='#SkBitmap_allocPixels'>allocPixels</a>()
</pre>
-Allocates pixel memory with <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a>, and replaces existing <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
-The allocation size is determined by <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> width, height, and <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>.
+Allocates <a href='undocumented#Pixel'>pixel</a> memory with <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a>, and replaces existing <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
+The allocation <a href='undocumented#Size'>size</a> is determined by <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> width, height, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-Aborts if <a href='#SkBitmap_info'>info</a>().<a href='#SkBitmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or allocation fails.
+Aborts if <a href='#SkBitmap_info'>info()</a>.<a href='#SkImageInfo_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or allocation fails.
Abort steps may be provided by the user at compile
time by defining SK_ABORT.
@@ -2202,16 +2204,16 @@
bool <a href='#SkBitmap_tryAllocPixels'>tryAllocPixels</a>(<a href='#SkBitmap_Allocator'>Allocator</a>* allocator)
</pre>
-Allocates pixel memory with <a href='#SkBitmap_tryAllocPixels_4_allocator'>allocator</a>, and replaces existing <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
-The allocation size is determined by <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> width, height, and <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>.
+Allocates <a href='undocumented#Pixel'>pixel</a> memory with <a href='#SkBitmap_tryAllocPixels_4_allocator'>allocator</a>, and replaces existing <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
+The allocation <a href='undocumented#Size'>size</a> is determined by <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> width, height, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
If <a href='#SkBitmap_tryAllocPixels_4_allocator'>allocator</a> is nullptr, use <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> instead.
-Returns false if <a href='#SkBitmap_Allocator_allocPixelRef'>Allocator::allocPixelRef</a> return false.
+Returns false if <a href='#SkBitmap_Allocator'>Allocator</a>::<a href='#SkBitmap_Allocator_allocPixelRef'>allocPixelRef</a> return false.
### Parameters
<table> <tr> <td><a name='SkBitmap_tryAllocPixels_4_allocator'><code><strong>allocator</strong></code></a></td>
- <td>instance of <a href='#SkBitmap_Allocator'>SkBitmap::Allocator</a> instantiation</td>
+ <td>instance of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_Allocator'>Allocator</a> instantiation</td>
</tr>
</table>
@@ -2222,7 +2224,7 @@
### Example
<div><fiddle-embed name="eb6f861ca1839146d26e40d56c2a001c"><div><a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> limits the maximum size of <a href='#Bitmap'>Bitmap</a> to two gigabytes. Using
-a custom <a href='#SkBitmap_tryAllocPixels_4_allocator'>allocator</a>, this limitation may be relaxed. This example can be
+a custom allocator, this limitation may be relaxed. This example can be
modified to allocate an eight gigabyte <a href='#Bitmap'>Bitmap</a> on a 64-bit platform with
sufficient memory.
</div></fiddle-embed></div>
@@ -2239,17 +2241,17 @@
void <a href='#SkBitmap_allocPixels'>allocPixels</a>(<a href='#SkBitmap_Allocator'>Allocator</a>* allocator)
</pre>
-Allocates pixel memory with <a href='#SkBitmap_allocPixels_4_allocator'>allocator</a>, and replaces existing <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
-The allocation size is determined by <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> width, height, and <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>.
+Allocates <a href='undocumented#Pixel'>pixel</a> memory with <a href='#SkBitmap_allocPixels_4_allocator'>allocator</a>, and replaces existing <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
+The allocation <a href='undocumented#Size'>size</a> is determined by <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> width, height, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
If <a href='#SkBitmap_allocPixels_4_allocator'>allocator</a> is nullptr, use <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> instead.
-Aborts if <a href='#SkBitmap_Allocator_allocPixelRef'>Allocator::allocPixelRef</a> return false. Abort steps may be provided by
+Aborts if <a href='#SkBitmap_Allocator'>Allocator</a>::<a href='#SkBitmap_Allocator_allocPixelRef'>allocPixelRef</a> return false. Abort steps may be provided by
the user at compile time by defining SK_ABORT.
### Parameters
<table> <tr> <td><a name='SkBitmap_allocPixels_4_allocator'><code><strong>allocator</strong></code></a></td>
- <td>instance of <a href='#SkBitmap_Allocator'>SkBitmap::Allocator</a> instantiation</td>
+ <td>instance of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>::<a href='#SkBitmap_Allocator'>Allocator</a> instantiation</td>
</tr>
</table>
@@ -2269,14 +2271,14 @@
<a href='undocumented#SkPixelRef'>SkPixelRef</a>* <a href='#SkBitmap_pixelRef'>pixelRef</a>() const
</pre>
-Returns <a href='undocumented#Pixel_Ref'>Pixel Ref</a>, which contains: pixel base address; its dimensions; and
-<a href='#SkBitmap_rowBytes'>rowBytes</a>, the interval from one row to the next. Does not change <a href='undocumented#Pixel_Ref'>Pixel Ref</a>
-reference count. <a href='undocumented#Pixel_Ref'>Pixel Ref</a> may be shared by multiple bitmaps.
-If <a href='undocumented#Pixel_Ref'>Pixel Ref</a> has not been set, returns nullptr.
+Returns <a href='undocumented#SkPixelRef'>SkPixelRef</a>, which contains: <a href='undocumented#Pixel'>pixel</a> base address; its dimensions; and
+<a href='#SkBitmap_rowBytes'>rowBytes</a>(), the interval from one row to the next. Does not change <a href='undocumented#SkPixelRef'>SkPixelRef</a>
+<a href='undocumented#Reference_Count'>reference count</a>. <a href='undocumented#SkPixelRef'>SkPixelRef</a> may be shared by multiple <a href='SkBitmap_Reference#Bitmap'>bitmaps</a>.
+If <a href='undocumented#SkPixelRef'>SkPixelRef</a> has not been set, returns nullptr.
### Return Value
-<a href='undocumented#Pixel_Ref'>Pixel Ref</a>, or nullptr
+<a href='undocumented#SkPixelRef'>SkPixelRef</a>, or nullptr
### Example
@@ -2294,18 +2296,18 @@
<a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> <a href='#SkBitmap_pixelRefOrigin'>pixelRefOrigin</a>() const
</pre>
-Returns origin of pixels within <a href='undocumented#Pixel_Ref'>Pixel Ref</a>. <a href='#Bitmap'>Bitmap</a> bounds is always contained
-by <a href='undocumented#Pixel_Ref'>Pixel Ref</a> bounds, which may be the same size or larger. Multiple <a href='#Bitmap'>Bitmaps</a>
-can share the same <a href='undocumented#Pixel_Ref'>Pixel Ref</a>, where each <a href='#Bitmap'>Bitmap</a> has different bounds.
+Returns origin of pixels within <a href='undocumented#SkPixelRef'>SkPixelRef</a>. <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> bounds is always contained
+by <a href='undocumented#SkPixelRef'>SkPixelRef</a> bounds, which may be the same <a href='undocumented#Size'>size</a> or larger. Multiple <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>
+can share the same <a href='undocumented#SkPixelRef'>SkPixelRef</a>, where each <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> has different bounds.
-The returned origin added to <a href='#Bitmap'>Bitmap</a> dimensions equals or is smaller than the
-<a href='undocumented#Pixel_Ref'>Pixel Ref</a> dimensions.
+The returned origin added to <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> dimensions equals or is smaller than the
+<a href='undocumented#SkPixelRef'>SkPixelRef</a> dimensions.
-Returns (0, 0) if <a href='undocumented#Pixel_Ref'>Pixel Ref</a> is nullptr.
+Returns (0, 0) if <a href='undocumented#SkPixelRef'>SkPixelRef</a> is nullptr.
### Return Value
-pixel origin within <a href='undocumented#Pixel_Ref'>Pixel Ref</a>
+<a href='undocumented#Pixel'>pixel</a> origin within <a href='undocumented#SkPixelRef'>SkPixelRef</a>
### Example
@@ -2334,25 +2336,25 @@
void <a href='#SkBitmap_setPixelRef'>setPixelRef</a>(<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkPixelRef'>SkPixelRef</a>> <a href='#SkBitmap_pixelRef'>pixelRef</a>, int dx, int dy)
</pre>
-Replaces <a href='#SkBitmap_pixelRef'>pixelRef</a> and origin in <a href='#Bitmap'>Bitmap</a>. <a href='#SkBitmap_setPixelRef_dx'>dx</a> and <a href='#SkBitmap_setPixelRef_dy'>dy</a> specify the offset
-within the <a href='undocumented#Pixel_Ref'>Pixel Ref</a> pixels for the top-left corner of the bitmap.
+Replaces <a href='#SkBitmap_setPixelRef_pixelRef'>pixelRef</a> and origin in <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. <a href='#SkBitmap_setPixelRef_dx'>dx</a> and <a href='#SkBitmap_setPixelRef_dy'>dy</a> specify the offset
+within the <a href='undocumented#SkPixelRef'>SkPixelRef</a> pixels for the top-left corner of the <a href='SkBitmap_Reference#Bitmap'>bitmap</a>.
Asserts in debug builds if <a href='#SkBitmap_setPixelRef_dx'>dx</a> or <a href='#SkBitmap_setPixelRef_dy'>dy</a> are out of range. Pins <a href='#SkBitmap_setPixelRef_dx'>dx</a> and <a href='#SkBitmap_setPixelRef_dy'>dy</a>
to legal range in release builds.
The caller is responsible for ensuring that the pixels match the
-<a href='SkImageInfo_Reference#Color_Type'>Color Type</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> in <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>.
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>.
### Parameters
<table> <tr> <td><a name='SkBitmap_setPixelRef_pixelRef'><code><strong>pixelRef</strong></code></a></td>
- <td><a href='undocumented#Pixel_Ref'>Pixel Ref</a> describing pixel address and <a href='#SkBitmap_rowBytes'>rowBytes</a></td>
+ <td><a href='undocumented#SkPixelRef'>SkPixelRef</a> describing <a href='undocumented#Pixel'>pixel</a> address and <a href='#SkBitmap_rowBytes'>rowBytes</a>()</td>
</tr>
<tr> <td><a name='SkBitmap_setPixelRef_dx'><code><strong>dx</strong></code></a></td>
- <td>column offset in <a href='undocumented#Pixel_Ref'>Pixel Ref</a> for bitmap origin</td>
+ <td>column offset in <a href='undocumented#SkPixelRef'>SkPixelRef</a> for <a href='SkBitmap_Reference#Bitmap'>bitmap</a> origin</td>
</tr>
<tr> <td><a name='SkBitmap_setPixelRef_dy'><code><strong>dy</strong></code></a></td>
- <td>row offset in <a href='undocumented#Pixel_Ref'>Pixel Ref</a> for bitmap origin</td>
+ <td>row offset in <a href='undocumented#SkPixelRef'>SkPixelRef</a> for <a href='SkBitmap_Reference#Bitmap'>bitmap</a> origin</td>
</tr>
</table>
@@ -2373,7 +2375,7 @@
bool <a href='#SkBitmap_readyToDraw'>readyToDraw</a>() const
</pre>
-Returns true if <a href='#Bitmap'>Bitmap</a> is can be drawn.
+Returns true if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> is can be drawn.
### Return Value
@@ -2395,15 +2397,15 @@
uint32_t <a href='#SkBitmap_getGenerationID'>getGenerationID</a>() const
</pre>
-Returns a unique value corresponding to the pixels in <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
-Returns a different value after <a href='#SkBitmap_notifyPixelsChanged'>notifyPixelsChanged</a> has been called.
-Returns zero if <a href='undocumented#Pixel_Ref'>Pixel Ref</a> is nullptr.
+Returns a unique value corresponding to the pixels in <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
+Returns a different value after <a href='#SkBitmap_notifyPixelsChanged'>notifyPixelsChanged</a>() has been called.
+Returns zero if <a href='undocumented#SkPixelRef'>SkPixelRef</a> is nullptr.
Determines if pixels have changed since last examined.
### Return Value
-unique value for pixels in <a href='undocumented#Pixel_Ref'>Pixel Ref</a>
+unique value for pixels in <a href='undocumented#SkPixelRef'>SkPixelRef</a>
### Example
@@ -2432,7 +2434,7 @@
void <a href='#SkBitmap_notifyPixelsChanged'>notifyPixelsChanged</a>() const
</pre>
-Marks that pixels in <a href='undocumented#Pixel_Ref'>Pixel Ref</a> have changed. Subsequent calls to
+Marks that pixels in <a href='undocumented#SkPixelRef'>SkPixelRef</a> have changed. Subsequent calls to
<a href='#SkBitmap_getGenerationID'>getGenerationID</a>() return a different value.
### Example
@@ -2453,15 +2455,15 @@
void <a href='#SkBitmap_eraseColor'>eraseColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> c) const
</pre>
-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; RGB is treated as opaque. If <a href='#SkBitmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
+Replaces <a href='undocumented#Pixel'>pixel</a> 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 <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>, then <a href='SkColor_Reference#Alpha'>alpha</a>
+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
<table> <tr> <td><a name='SkBitmap_eraseColor_c'><code><strong>c</strong></code></a></td>
- <td><a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor_Reference#Color'>Color</a></td>
+ <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a></td>
</tr>
</table>
@@ -2481,16 +2483,16 @@
void <a href='#SkBitmap_eraseARGB'>eraseARGB</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) const
</pre>
-Replaces pixel values with <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor_Reference#Color'>Color</a> built from <a href='#SkBitmap_eraseARGB_a'>a</a>, <a href='#SkBitmap_eraseARGB_r'>r</a>, <a href='#SkBitmap_eraseARGB_g'>g</a>, and <a href='#SkBitmap_eraseARGB_b'>b</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='#SkBitmap_eraseARGB_a'>a</a>
-is ignored; <a href='#SkBitmap_eraseARGB_r'>r</a>, <a href='#SkBitmap_eraseARGB_g'>g</a>, and <a href='#SkBitmap_eraseARGB_b'>b</a> are treated as opaque. If <a href='#SkBitmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
+Replaces <a href='undocumented#Pixel'>pixel</a> values with <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a> built from <a href='#SkBitmap_eraseARGB_a'>a</a>, <a href='#SkBitmap_eraseARGB_r'>r</a>, <a href='#SkBitmap_eraseARGB_g'>g</a>, and <a href='#SkBitmap_eraseARGB_b'>b</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 <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>, then <a href='#SkBitmap_eraseARGB_a'>a</a>
+is ignored; <a href='#SkBitmap_eraseARGB_r'>r</a>, <a href='#SkBitmap_eraseARGB_g'>g</a>, and <a href='#SkBitmap_eraseARGB_b'>b</a> are 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='#SkBitmap_eraseARGB_r'>r</a>, <a href='#SkBitmap_eraseARGB_g'>g</a>, and <a href='#SkBitmap_eraseARGB_b'>b</a> are ignored.
### Parameters
<table> <tr> <td><a name='SkBitmap_eraseARGB_a'><code><strong>a</strong></code></a></td>
- <td>amount of <a href='SkColor_Reference#Alpha'>Color Alpha</a>, from fully transparent (0) to fully opaque (255)</td>
+ <td>amount of <a href='SkColor_Reference#Alpha'>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 red, from no red (0) to full red (255)</td>
@@ -2519,17 +2521,17 @@
void <a href='#SkBitmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> c, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& area) const
</pre>
-Replaces pixel values inside <a href='#SkBitmap_erase_area'>area</a> with <a href='#SkBitmap_erase_c'>c</a>. If <a href='#SkBitmap_erase_area'>area</a> does not intersect <a href='#SkBitmap_bounds'>bounds</a>(),
+Replaces <a href='undocumented#Pixel'>pixel</a> values inside <a href='#SkBitmap_erase()_area'>area</a> with <a href='#SkBitmap_erase()_c'>c</a>. If <a href='#SkBitmap_erase()_area'>area</a> does not intersect <a href='#SkBitmap_bounds'>bounds()</a>,
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; RGB is treated as opaque. If <a href='#SkBitmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
+If the <a href='#SkBitmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a> or <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>, then <a href='SkColor_Reference#Alpha'>alpha</a>
+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
<table> <tr> <td><a name='SkBitmap_erase_c'><code><strong>c</strong></code></a></td>
- <td><a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor_Reference#Color'>Color</a></td>
+ <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a></td>
</tr>
<tr> <td><a name='SkBitmap_erase_area'><code><strong>area</strong></code></a></td>
<td>rectangle to fill</td>
@@ -2562,31 +2564,31 @@
<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkBitmap_getColor'>getColor</a>(int x, int y) const
</pre>
-Returns pixel at (<a href='#SkBitmap_getColor_x'>x</a>, <a href='#SkBitmap_getColor_y'>y</a>) as <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor_Reference#Color'>Color</a>.
-Returns black with <a href='SkColor_Reference#Alpha'>Alpha</a> if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>.
+Returns <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkBitmap_getColor_x'>x</a>, <a href='#SkBitmap_getColor_y'>y</a>) as <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>.
+Returns black with <a href='SkColor_Reference#Alpha'>alpha</a> if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>.
Input is not validated: out of bounds values of <a href='#SkBitmap_getColor_x'>x</a> or <a href='#SkBitmap_getColor_y'>y</a> trigger an assert() if
built with SK_DEBUG defined; and returns undefined values or may crash if
-SK_RELEASE is defined. Fails if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a> or
-pixel address is nullptr.
+SK_RELEASE is defined. Fails if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a> or
+<a href='undocumented#Pixel'>pixel</a> address is nullptr.
-<a href='undocumented#Color_Space'>Color Space</a> in <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> is ignored. Some <a href='SkColor_Reference#Color'>Color</a> precision may be lost in the
-conversion to <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor_Reference#Color'>Color</a>; original pixel data may have additional
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is ignored. Some <a href='SkColor_Reference#Color'>color</a> precision may be lost in the
+conversion to <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>; original <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Data'>data</a> may have additional
precision.
### Parameters
<table> <tr> <td><a name='SkBitmap_getColor_x'><code><strong>x</strong></code></a></td>
- <td>column index, zero or greater, and less than <a href='#SkBitmap_width'>width</a>()</td>
+ <td>column index, zero or greater, and less than <a href='#SkBitmap_width'>width()</a></td>
</tr>
<tr> <td><a name='SkBitmap_getColor_y'><code><strong>y</strong></code></a></td>
- <td>row index, zero or greater, and less than <a href='#SkBitmap_height'>height</a>()</td>
+ <td>row index, zero or greater, and less than <a href='#SkBitmap_height'>height()</a></td>
</tr>
</table>
### Return Value
-pixel converted to <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor_Reference#Color'>Color</a>
+<a href='undocumented#Pixel'>pixel</a> converted to <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>
### Example
@@ -2651,28 +2653,28 @@
void* <a href='#SkBitmap_getAddr'>getAddr</a>(int x, int y) const
</pre>
-Returns pixel address at (<a href='#SkBitmap_getAddr_x'>x</a>, <a href='#SkBitmap_getAddr_y'>y</a>).
+Returns <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkBitmap_getAddr_x'>x</a>, <a href='#SkBitmap_getAddr_y'>y</a>).
Input is not validated: out of bounds values of <a href='#SkBitmap_getAddr_x'>x</a> or <a href='#SkBitmap_getAddr_y'>y</a>, or <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>,
trigger an assert() if built with SK_DEBUG defined. Returns nullptr if
-<a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or <a href='undocumented#Pixel_Ref'>Pixel Ref</a> is nullptr.
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or <a href='undocumented#SkPixelRef'>SkPixelRef</a> is nullptr.
-Performs a lookup of pixel size; for better performance, call
-one of: <a href='#SkBitmap_getAddr8'>getAddr8</a>, <a href='#SkBitmap_getAddr16'>getAddr16</a>, or <a href='#SkBitmap_getAddr32'>getAddr32</a>.
+Performs a lookup of <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>; for better performance, call
+one of: <a href='#SkBitmap_getAddr8'>getAddr8</a>(), <a href='#SkBitmap_getAddr16'>getAddr16</a>(), or <a href='#SkBitmap_getAddr32'>getAddr32</a>().
### Parameters
<table> <tr> <td><a name='SkBitmap_getAddr_x'><code><strong>x</strong></code></a></td>
- <td>column index, zero or greater, and less than <a href='#SkBitmap_width'>width</a>()</td>
+ <td>column index, zero or greater, and less than <a href='#SkBitmap_width'>width()</a></td>
</tr>
<tr> <td><a name='SkBitmap_getAddr_y'><code><strong>y</strong></code></a></td>
- <td>row index, zero or greater, and less than <a href='#SkBitmap_height'>height</a>()</td>
+ <td>row index, zero or greater, and less than <a href='#SkBitmap_height'>height()</a></td>
</tr>
</table>
### Return Value
-generic pointer to pixel
+generic pointer to <a href='undocumented#Pixel'>pixel</a>
### Example
@@ -2700,7 +2702,7 @@
Returns address at (<a href='#SkBitmap_getAddr32_x'>x</a>, <a href='#SkBitmap_getAddr32_y'>y</a>).
-Input is not validated. Triggers an assert() if built with SK_DEBUG defined and:
+Input is not validated. Triggers an <a href='undocumented#assert()'>assert</a> if built with SK_DEBUG defined and:
<table> <tr>
<td><a href='undocumented#Pixel_Ref'>Pixel Ref</a> is nullptr</td>
@@ -2753,7 +2755,7 @@
Returns address at (<a href='#SkBitmap_getAddr16_x'>x</a>, <a href='#SkBitmap_getAddr16_y'>y</a>).
-Input is not validated. Triggers an assert() if built with SK_DEBUG defined and:
+Input is not validated. Triggers an <a href='undocumented#assert()'>assert</a> if built with SK_DEBUG defined and:
<table> <tr>
<td><a href='undocumented#Pixel_Ref'>Pixel Ref</a> is nullptr</td>
@@ -2806,7 +2808,7 @@
Returns address at (<a href='#SkBitmap_getAddr8_x'>x</a>, <a href='#SkBitmap_getAddr8_y'>y</a>).
-Input is not validated. Triggers an assert() if built with SK_DEBUG defined and:
+Input is not validated. Triggers an <a href='undocumented#assert()'>assert</a> if built with SK_DEBUG defined and:
<table> <tr>
<td><a href='undocumented#Pixel_Ref'>Pixel Ref</a> is nullptr</td>
@@ -2935,7 +2937,7 @@
Returns true if pixels are copied. Returns false if:
<table> <tr>
- <td><a href='#SkBitmap_readPixels_dstInfo'>dstInfo</a>.addr() equals nullptr</td>
+ <td><a href='#SkBitmap_readPixels_dstInfo'>dstInfo</a> has no address</td>
</tr> <tr>
<td><a href='#SkBitmap_readPixels_dstRowBytes'>dstRowBytes</a> is less than <a href='#SkBitmap_readPixels_dstInfo'>dstInfo</a>.<a href='SkImageInfo_Reference#SkImageInfo'>minRowBytes</a></td>
</tr> <tr>
@@ -3219,7 +3221,7 @@
### Return Value
-true if <a href='#SkBitmap_setHasHardwareMipMap'>setHasHardwareMipMap</a> has been called with true
+true if <a href='#SkBitmap_setHasHardwareMipMap'>setHasHardwareMipMap</a>() has been called with true
### See Also
@@ -3254,21 +3256,21 @@
bool <a href='#SkBitmap_extractAlpha'>extractAlpha</a>(<a href='#SkBitmap'>SkBitmap</a>* dst) const
</pre>
-Sets <a href='#SkBitmap_extractAlpha_dst'>dst</a> to <a href='SkColor_Reference#Alpha'>Alpha</a> described by pixels. Returns false if <a href='#SkBitmap_extractAlpha_dst'>dst</a> cannot be written to
+Sets <a href='#SkBitmap_extractAlpha_dst'>dst</a> to <a href='SkColor_Reference#Alpha'>alpha</a> described by pixels. Returns false if <a href='#SkBitmap_extractAlpha_dst'>dst</a> cannot be written to
or <a href='#SkBitmap_extractAlpha_dst'>dst</a> pixels cannot be allocated.
-Uses <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> to reserve memory for <a href='#SkBitmap_extractAlpha_dst'>dst</a> <a href='undocumented#Pixel_Ref'>Pixel Ref</a>.
+Uses <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> to reserve memory for <a href='#SkBitmap_extractAlpha_dst'>dst</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>.
### Parameters
<table> <tr> <td><a name='SkBitmap_extractAlpha_dst'><code><strong>dst</strong></code></a></td>
- <td>holds <a href='undocumented#Pixel_Ref'>Pixel Ref</a> to fill with alpha layer</td>
+ <td>holds <a href='undocumented#SkPixelRef'>SkPixelRef</a> to fill with <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkCanvas_Reference#Layer'>layer</a></td>
</tr>
</table>
### Return Value
-true if <a href='SkColor_Reference#Alpha'>Alpha</a> layer was constructed in <a href='#SkBitmap_extractAlpha_dst'>dst</a> <a href='undocumented#Pixel_Ref'>Pixel Ref</a>
+true if <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkCanvas_Reference#Layer'>layer</a> was constructed in <a href='#SkBitmap_extractAlpha_dst'>dst</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>
### Example
@@ -3286,21 +3288,21 @@
bool <a href='#SkBitmap_extractAlpha'>extractAlpha</a>(<a href='#SkBitmap'>SkBitmap</a>* dst, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint, <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* offset) const
</pre>
-Sets <a href='#SkBitmap_extractAlpha_2_dst'>dst</a> to <a href='SkColor_Reference#Alpha'>Alpha</a> described by pixels. Returns false if <a href='#SkBitmap_extractAlpha_2_dst'>dst</a> cannot be written to
+Sets <a href='#SkBitmap_extractAlpha_2_dst'>dst</a> to <a href='SkColor_Reference#Alpha'>alpha</a> described by pixels. Returns false if <a href='#SkBitmap_extractAlpha_2_dst'>dst</a> cannot be written to
or <a href='#SkBitmap_extractAlpha_2_dst'>dst</a> pixels cannot be allocated.
-If <a href='#SkBitmap_extractAlpha_2_paint'>paint</a> is not nullptr and contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>
-generates <a href='undocumented#Mask_Alpha'>Mask Alpha</a> from <a href='#Bitmap'>Bitmap</a>. Uses <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> to reserve memory for <a href='#SkBitmap_extractAlpha_2_dst'>dst</a>
-<a href='undocumented#Pixel_Ref'>Pixel Ref</a>. Sets <a href='#SkBitmap_extractAlpha_2_offset'>offset</a> to top-left position for <a href='#SkBitmap_extractAlpha_2_dst'>dst</a> for alignment with <a href='#Bitmap'>Bitmap</a>;
+If <a href='#SkBitmap_extractAlpha_2_paint'>paint</a> is not nullptr and contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>
+generates <a href='undocumented#Mask_Alpha'>mask alpha</a> from <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. Uses <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a> to reserve memory for <a href='#SkBitmap_extractAlpha_2_dst'>dst</a>
+<a href='undocumented#SkPixelRef'>SkPixelRef</a>. Sets <a href='#SkBitmap_extractAlpha_2_offset'>offset</a> to top-left position for <a href='#SkBitmap_extractAlpha_2_dst'>dst</a> for alignment with <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>;
(0, 0) unless <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> generates mask.
### Parameters
<table> <tr> <td><a name='SkBitmap_extractAlpha_2_dst'><code><strong>dst</strong></code></a></td>
- <td>holds <a href='undocumented#Pixel_Ref'>Pixel Ref</a> to fill with alpha layer</td>
+ <td>holds <a href='undocumented#SkPixelRef'>SkPixelRef</a> to fill with <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkCanvas_Reference#Layer'>layer</a></td>
</tr>
<tr> <td><a name='SkBitmap_extractAlpha_2_paint'><code><strong>paint</strong></code></a></td>
- <td>holds optional <a href='undocumented#Mask_Filter'>Mask Filter</a>; may be nullptr</td>
+ <td>holds optional <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkBitmap_extractAlpha_2_offset'><code><strong>offset</strong></code></a></td>
<td>top-left position for <a href='#SkBitmap_extractAlpha_2_dst'>dst</a>; may be nullptr</td>
@@ -3309,7 +3311,7 @@
### Return Value
-true if <a href='SkColor_Reference#Alpha'>Alpha</a> layer was constructed in <a href='#SkBitmap_extractAlpha_2_dst'>dst</a> <a href='undocumented#Pixel_Ref'>Pixel Ref</a>
+true if <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkCanvas_Reference#Layer'>layer</a> was constructed in <a href='#SkBitmap_extractAlpha_2_dst'>dst</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>
### Example
@@ -3327,25 +3329,25 @@
bool <a href='#SkBitmap_extractAlpha'>extractAlpha</a>(<a href='#SkBitmap'>SkBitmap</a>* dst, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint, <a href='#SkBitmap_Allocator'>Allocator</a>* allocator, <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* offset) const
</pre>
-Sets <a href='#SkBitmap_extractAlpha_3_dst'>dst</a> to <a href='SkColor_Reference#Alpha'>Alpha</a> described by pixels. Returns false if <a href='#SkBitmap_extractAlpha_3_dst'>dst</a> cannot be written to
+Sets <a href='#SkBitmap_extractAlpha_3_dst'>dst</a> to <a href='SkColor_Reference#Alpha'>alpha</a> described by pixels. Returns false if <a href='#SkBitmap_extractAlpha_3_dst'>dst</a> cannot be written to
or <a href='#SkBitmap_extractAlpha_3_dst'>dst</a> pixels cannot be allocated.
-If <a href='#SkBitmap_extractAlpha_3_paint'>paint</a> is not nullptr and contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>
-generates <a href='undocumented#Mask_Alpha'>Mask Alpha</a> from <a href='#Bitmap'>Bitmap</a>. <a href='#SkBitmap_extractAlpha_3_allocator'>allocator</a> may reference a custom allocation
+If <a href='#SkBitmap_extractAlpha_3_paint'>paint</a> is not nullptr and contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>
+generates <a href='undocumented#Mask_Alpha'>mask alpha</a> from <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>. <a href='#SkBitmap_extractAlpha_3_allocator'>allocator</a> may reference a custom allocation
class or be set to nullptr to use <a href='#SkBitmap_HeapAllocator'>HeapAllocator</a>. Sets <a href='#SkBitmap_extractAlpha_3_offset'>offset</a> to top-left
-position for <a href='#SkBitmap_extractAlpha_3_dst'>dst</a> for alignment with <a href='#Bitmap'>Bitmap</a>; (0, 0) unless <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> generates
+position for <a href='#SkBitmap_extractAlpha_3_dst'>dst</a> for alignment with <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>; (0, 0) unless <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> generates
mask.
### Parameters
<table> <tr> <td><a name='SkBitmap_extractAlpha_3_dst'><code><strong>dst</strong></code></a></td>
- <td>holds <a href='undocumented#Pixel_Ref'>Pixel Ref</a> to fill with alpha layer</td>
+ <td>holds <a href='undocumented#SkPixelRef'>SkPixelRef</a> to fill with <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkCanvas_Reference#Layer'>layer</a></td>
</tr>
<tr> <td><a name='SkBitmap_extractAlpha_3_paint'><code><strong>paint</strong></code></a></td>
- <td>holds optional <a href='undocumented#Mask_Filter'>Mask Filter</a>; may be nullptr</td>
+ <td>holds optional <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkBitmap_extractAlpha_3_allocator'><code><strong>allocator</strong></code></a></td>
- <td>function to reserve memory for <a href='undocumented#Pixel_Ref'>Pixel Ref</a>; may be nullptr</td>
+ <td>function to reserve memory for <a href='undocumented#SkPixelRef'>SkPixelRef</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkBitmap_extractAlpha_3_offset'><code><strong>offset</strong></code></a></td>
<td>top-left position for <a href='#SkBitmap_extractAlpha_3_dst'>dst</a>; may be nullptr</td>
@@ -3354,7 +3356,7 @@
### Return Value
-true if <a href='SkColor_Reference#Alpha'>Alpha</a> layer was constructed in <a href='#SkBitmap_extractAlpha_3_dst'>dst</a> <a href='undocumented#Pixel_Ref'>Pixel Ref</a>
+true if <a href='SkColor_Reference#Alpha'>alpha</a> <a href='SkCanvas_Reference#Layer'>layer</a> was constructed in <a href='#SkBitmap_extractAlpha_3_dst'>dst</a> <a href='undocumented#SkPixelRef'>SkPixelRef</a>
### Example
@@ -3372,22 +3374,22 @@
bool <a href='#SkBitmap_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* pixmap) const
</pre>
-Copies <a href='#Bitmap'>Bitmap</a> pixel address, row bytes, and <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to pixmap, if address
-is available, and returns true. If pixel address is not available, return
-false and leave pixmap unchanged.
+Copies <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='undocumented#Pixel'>pixel</a> address, <a href='#Row_Bytes'>row bytes</a>, and <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkBitmap_peekPixels_pixmap'>pixmap</a>, if address
+is available, and returns true. If <a href='undocumented#Pixel'>pixel</a> address is not available, return
+false and leave <a href='#SkBitmap_peekPixels_pixmap'>pixmap</a> unchanged.
-pixmap contents become invalid on any future change to <a href='#Bitmap'>Bitmap</a>.
+<a href='#SkBitmap_peekPixels_pixmap'>pixmap</a> contents become invalid on any future change to <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>.
### Parameters
<table> <tr> <td><a name='SkBitmap_peekPixels_pixmap'><code><strong>pixmap</strong></code></a></td>
- <td>storage for pixel state if pixels are readable; otherwise, ignored</td>
+ <td>storage for <a href='undocumented#Pixel'>pixel</a> state if pixels are readable; otherwise, ignored</td>
</tr>
</table>
### Return Value
-true if <a href='#Bitmap'>Bitmap</a> has direct access to pixels
+true if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> has direct access to pixels
### Example
@@ -3425,9 +3427,6 @@
void <a href='#SkBitmap_validate'>validate</a>() const;
</pre>
-Asserts if internal values are illegal or inconsistent. Only available if
-SK_DEBUG is defined at compile time.
-
### See Also
<a href='SkImageInfo_Reference#SkImageInfo_validate'>SkImageInfo::validate</a>
diff --git a/site/user/api/SkBlendMode_Reference.md b/site/user/api/SkBlendMode_Reference.md
index 9468c8f..277357d 100644
--- a/site/user/api/SkBlendMode_Reference.md
+++ b/site/user/api/SkBlendMode_Reference.md
@@ -759,30 +759,32 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-SK_API const char* <a href='#SkBlendMode_Name'>SkBlendMode Name</a>(<a href='#SkBlendMode'>SkBlendMode</a> blendMode)
+const char* <a href='#SkBlendMode_Name'>SkBlendMode Name</a>(<a href='#SkBlendMode'>SkBlendMode</a> blendMode)
</pre>
-Returns name of <a href='#SkBlendMode_Name_blendMode'>blendMode</a> as null-terminated C string.
+Returns name of <a href='#SkBlendMode_Name_blendMode'>blendMode</a> as null-terminated C <a href='undocumented#String'>string</a>.
### Parameters
<table> <tr> <td><a name='SkBlendMode_Name_blendMode'><code><strong>blendMode</strong></code></a></td>
- <td>one of: <a href='#SkBlendMode_kClear'>SkBlendMode::kClear</a>, <a href='#SkBlendMode_kSrc'>SkBlendMode::kSrc</a>, <a href='#SkBlendMode_kDst'>SkBlendMode::kDst</a>, <a href='#SkBlendMode_kSrcOver'>SkBlendMode::kSrcOver</a>,
-<a href='#SkBlendMode_kDstOver'>SkBlendMode::kDstOver</a>, <a href='#SkBlendMode_kSrcIn'>SkBlendMode::kSrcIn</a>, <a href='#SkBlendMode_kDstIn'>SkBlendMode::kDstIn</a>,
-<a href='#SkBlendMode_kSrcOut'>SkBlendMode::kSrcOut</a>, <a href='#SkBlendMode_kDstOut'>SkBlendMode::kDstOut</a>, <a href='#SkBlendMode_kSrcATop'>SkBlendMode::kSrcATop</a>,
-<a href='#SkBlendMode_kDstATop'>SkBlendMode::kDstATop</a>, <a href='#SkBlendMode_kXor'>SkBlendMode::kXor</a>, <a href='#SkBlendMode_kPlus'>SkBlendMode::kPlus</a>,
-<a href='#SkBlendMode_kModulate'>SkBlendMode::kModulate</a>, <a href='#SkBlendMode_kScreen'>SkBlendMode::kScreen</a>, <a href='#SkBlendMode_kOverlay'>SkBlendMode::kOverlay</a>,
-<a href='#SkBlendMode_kDarken'>SkBlendMode::kDarken</a>, <a href='#SkBlendMode_kLighten'>SkBlendMode::kLighten</a>, <a href='#SkBlendMode_kColorDodge'>SkBlendMode::kColorDodge</a>,
-<a href='#SkBlendMode_kColorBurn'>SkBlendMode::kColorBurn</a>, <a href='#SkBlendMode_kHardLight'>SkBlendMode::kHardLight</a>, <a href='#SkBlendMode_kSoftLight'>SkBlendMode::kSoftLight</a>,
-<a href='#SkBlendMode_kDifference'>SkBlendMode::kDifference</a>, <a href='#SkBlendMode_kExclusion'>SkBlendMode::kExclusion</a>, <a href='#SkBlendMode_kMultiply'>SkBlendMode::kMultiply</a>,
-<a href='#SkBlendMode_kHue'>SkBlendMode::kHue</a>, <a href='#SkBlendMode_kSaturation'>SkBlendMode::kSaturation</a>, <a href='#SkBlendMode_kColor'>SkBlendMode::kColor</a>,
-<a href='#SkBlendMode_kLuminosity'>SkBlendMode::kLuminosity</a> </td>
+ <td>one of:</td>
</tr>
</table>
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kClear'>kClear</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrc'>kSrc</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDst'>kDst</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDstOver'>kDstOver</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcIn'>kSrcIn</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDstIn'>kDstIn</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOut'>kSrcOut</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDstOut'>kDstOut</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcATop'>kSrcATop</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDstATop'>kDstATop</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kXor'>kXor</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kPlus'>kPlus</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kModulate'>kModulate</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kScreen'>kScreen</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kOverlay'>kOverlay</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDarken'>kDarken</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kLighten'>kLighten</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kColorDodge'>kColorDodge</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kColorBurn'>kColorBurn</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kHardLight'>kHardLight</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSoftLight'>kSoftLight</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kDifference'>kDifference</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kExclusion'>kExclusion</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kMultiply'>kMultiply</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kHue'>kHue</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSaturation'>kSaturation</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kColor'>kColor</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kLuminosity'>kLuminosity</a>
+
### Return Value
-C string
+C <a href='undocumented#String'>string</a>
### Example
diff --git a/site/user/api/SkCanvas_Reference.md b/site/user/api/SkCanvas_Reference.md
index db8187b..af24d32 100644
--- a/site/user/api/SkCanvas_Reference.md
+++ b/site/user/api/SkCanvas_Reference.md
@@ -276,16 +276,14 @@
<a href='#Canvas'>Canvas</a> generated by <a href='undocumented#GPU_Surface'>GPU Surface</a> uses Vulkan or OpenGL to draw to the GPU.
To draw to a document, obtain <a href='#Canvas'>Canvas</a> from <a href='undocumented#Canvas'>SVG Canvas</a>, <a href='undocumented#PDF'>Document PDF</a>, or <a href='undocumented#Picture_Recorder'>Picture Recorder</a>.
-<a href='undocumented#Document'>Document</a> based <a href='#Canvas'>Canvas</a> and other <a href='#Canvas'>Canvas</a> <a href='undocumented#Subclasses'>Subclasses</a> reference <a href='undocumented#Device'>Device</a> describing the
+<a href='undocumented#Document'>Document</a> based <a href='#Canvas'>Canvas</a> and other <a href='#Canvas'>Canvas</a> subclasses reference <a href='undocumented#Device'>Device</a> describing the
destination.
<a href='#Canvas'>Canvas</a> can be constructed to draw to <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> without first creating <a href='undocumented#Raster_Surface'>Raster Surface</a>.
This approach may be deprecated in the future.
-<a name='Constructors'></a>
-
-Create the desired type of <a href='SkSurface_Reference#Surface'>Surface</a> to obtain its <a href='#Canvas'>Canvas</a> when possible. Useful
-when no <a href='SkSurface_Reference#Surface'>Surface</a> is required, and some helpers implicitly create <a href='undocumented#Raster_Surface'>Raster Surface</a>.
+<a href='#Canvas'>Canvas</a> may be created directly when no <a href='SkSurface_Reference#Surface'>Surface</a> is required; some <a href='#Canvas'>Canvas</a> methods
+implicitly create <a href='undocumented#Raster_Surface'>Raster Surface</a>.
<a name='SkCanvas_MakeRasterDirect'></a>
@@ -297,44 +295,50 @@
const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props = nullptr)
</pre>
-Allocates raster <a href='#Canvas'>Canvas</a> that will draw directly into <a href='#SkCanvas_MakeRasterDirect_pixels'>pixels</a>.
+Allocates raster <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> that will draw directly into <a href='#SkCanvas_MakeRasterDirect_pixels'>pixels</a>.
-<a href='#Canvas'>Canvas</a> is returned if all parameters are valid.
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is returned if all parameters are valid.
Valid parameters include:
<a href='#SkCanvas_MakeRasterDirect_info'>info</a> dimensions are zero or positive;
-<a href='#SkCanvas_MakeRasterDirect_info'>info</a> contains <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> supported by <a href='undocumented#Raster_Surface'>Raster Surface</a>;
+<a href='#SkCanvas_MakeRasterDirect_info'>info</a> contains <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> supported by <a href='undocumented#Raster_Surface'>raster surface</a>;
<a href='#SkCanvas_MakeRasterDirect_pixels'>pixels</a> is not nullptr;
-<a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a> is zero or large enough to contain <a href='#SkCanvas_MakeRasterDirect_info'>info</a> width <a href='#SkCanvas_MakeRasterDirect_pixels'>pixels</a> of <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>.
+<a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a> is zero or large enough to contain <a href='#SkCanvas_MakeRasterDirect_info'>info</a> width <a href='#SkCanvas_MakeRasterDirect_pixels'>pixels</a> of <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-Pass zero for <a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a> to compute <a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a> from <a href='#SkCanvas_MakeRasterDirect_info'>info</a> width and size of pixel.
+Pass zero for <a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a> to compute <a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a> from <a href='#SkCanvas_MakeRasterDirect_info'>info</a> width and <a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a>.
If <a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a> is greater than zero, it must be equal to or greater than
-<a href='#SkCanvas_MakeRasterDirect_info'>info</a> width times bytes required for <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>.
+<a href='#SkCanvas_MakeRasterDirect_info'>info</a> width times bytes required for <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-<a href='undocumented#Pixel'>Pixel</a> buffer size should be <a href='#SkCanvas_MakeRasterDirect_info'>info</a> height times computed <a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a>.
-<a href='#Pixels'>Pixels</a> are not initialized.
-To access <a href='#SkCanvas_MakeRasterDirect_pixels'>pixels</a> after drawing, call <a href='#SkCanvas_flush'>flush</a>() or <a href='#SkCanvas_peekPixels'>peekPixels</a>.
+<a href='undocumented#Pixel'>Pixel</a> buffer <a href='undocumented#Size'>size</a> should be <a href='#SkCanvas_MakeRasterDirect_info'>info</a> height times computed <a href='#SkCanvas_MakeRasterDirect_rowBytes'>rowBytes</a>.
+Pixels are not initialized.
+To access <a href='#SkCanvas_MakeRasterDirect_pixels'>pixels</a> after drawing, call <a href='#SkCanvas_flush'>flush()</a> or <a href='#SkCanvas_peekPixels'>peekPixels</a>().
### Parameters
<table> <tr> <td><a name='SkCanvas_MakeRasterDirect_info'><code><strong>info</strong></code></a></td>
- <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a>, of <a href='undocumented#Raster_Surface'>Raster Surface</a>;
-width, or height, or both, may be zero</td>
- </tr>
- <tr> <td><a name='SkCanvas_MakeRasterDirect_pixels'><code><strong>pixels</strong></code></a></td>
- <td>pointer to destination <a href='#SkCanvas_MakeRasterDirect_pixels'>pixels</a> buffer</td>
- </tr>
- <tr> <td><a name='SkCanvas_MakeRasterDirect_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td>interval from one <a href='SkSurface_Reference#Surface'>Surface</a> row to the next, or zero</td>
- </tr>
- <tr> <td><a name='SkCanvas_MakeRasterDirect_props'><code><strong>props</strong></code></a></td>
- <td>LCD striping orientation and setting for device independent fonts;
-may be nullptr</td>
+ <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>, of <a href='undocumented#Raster_Surface'>raster surface</a>;</td>
</tr>
</table>
+width, or height, or both, may be zero
+
+### Parameters
+
+<table> <tr> <td><a name='SkCanvas_MakeRasterDirect_pixels'><code><strong>pixels</strong></code></a></td>
+ <td>pointer to destination <a href='#SkCanvas_MakeRasterDirect_pixels'>pixels</a> buffer</td>
+ </tr>
+ <tr> <td><a name='SkCanvas_MakeRasterDirect_rowBytes'><code><strong>rowBytes</strong></code></a></td>
+ <td>interval from one <a href='SkSurface_Reference#SkSurface'>SkSurface</a> row to the next, or zero</td>
+ </tr>
+ <tr> <td><a name='SkCanvas_MakeRasterDirect_props'><code><strong>props</strong></code></a></td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent fonts;</td>
+ </tr>
+</table>
+
+may be nullptr
+
### Return Value
-<a href='#Canvas'>Canvas</a> if all parameters are valid; otherwise, nullptr
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -365,44 +369,49 @@
size_t rowBytes)
</pre>
-Allocates raster <a href='#Canvas'>Canvas</a> specified by inline image specification. Subsequent <a href='#Canvas'>Canvas</a>
+Allocates raster <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> specified by inline <a href='SkImage_Reference#Image'>image</a> specification. Subsequent <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>
calls draw into <a href='#SkCanvas_MakeRasterDirectN32_pixels'>pixels</a>.
-<a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is set to <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>.
-<a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> is set to <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>.
-To access <a href='#SkCanvas_MakeRasterDirectN32_pixels'>pixels</a> after drawing, call <a href='#SkCanvas_flush'>flush</a>() or <a href='#SkCanvas_peekPixels'>peekPixels</a>.
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is set to <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>.
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is set to <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>.
+To access <a href='#SkCanvas_MakeRasterDirectN32_pixels'>pixels</a> after drawing, call <a href='#SkCanvas_flush'>flush()</a> or <a href='#SkCanvas_peekPixels'>peekPixels</a>().
-<a href='#Canvas'>Canvas</a> is returned if all parameters are valid.
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is returned if all parameters are valid.
Valid parameters include:
<a href='#SkCanvas_MakeRasterDirectN32_width'>width</a> and <a href='#SkCanvas_MakeRasterDirectN32_height'>height</a> are zero or positive;
<a href='#SkCanvas_MakeRasterDirectN32_pixels'>pixels</a> is not nullptr;
<a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a> is zero or large enough to contain <a href='#SkCanvas_MakeRasterDirectN32_width'>width</a> <a href='#SkCanvas_MakeRasterDirectN32_pixels'>pixels</a> of <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>.
-Pass zero for <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a> to compute <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a> from <a href='#SkCanvas_MakeRasterDirectN32_width'>width</a> and size of pixel.
+Pass zero for <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a> to compute <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a> from <a href='#SkCanvas_MakeRasterDirectN32_width'>width</a> and <a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a>.
If <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a> is greater than zero, it must be equal to or greater than
-<a href='#SkCanvas_MakeRasterDirectN32_width'>width</a> times bytes required for <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>.
+<a href='#SkCanvas_MakeRasterDirectN32_width'>width</a> times bytes required for <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-<a href='undocumented#Pixel'>Pixel</a> buffer size should be <a href='#SkCanvas_MakeRasterDirectN32_height'>height</a> times <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a>.
+<a href='undocumented#Pixel'>Pixel</a> buffer <a href='undocumented#Size'>size</a> should be <a href='#SkCanvas_MakeRasterDirectN32_height'>height</a> times <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_MakeRasterDirectN32_width'><code><strong>width</strong></code></a></td>
- <td>pixel column count on <a href='undocumented#Raster_Surface'>Raster Surface</a> created; must be zero or greater</td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count on <a href='undocumented#Raster_Surface'>raster surface</a> created; must be zero or greater</td>
</tr>
<tr> <td><a name='SkCanvas_MakeRasterDirectN32_height'><code><strong>height</strong></code></a></td>
- <td>pixel row count on <a href='undocumented#Raster_Surface'>Raster Surface</a> created; must be zero or greater</td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count on <a href='undocumented#Raster_Surface'>raster surface</a> created; must be zero or greater</td>
</tr>
<tr> <td><a name='SkCanvas_MakeRasterDirectN32_pixels'><code><strong>pixels</strong></code></a></td>
- <td>pointer to destination <a href='#SkCanvas_MakeRasterDirectN32_pixels'>pixels</a> buffer; buffer size should be <a href='#SkCanvas_MakeRasterDirectN32_height'>height</a>
-times <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a></td>
+ <td>pointer to destination <a href='#SkCanvas_MakeRasterDirectN32_pixels'>pixels</a> buffer; buffer <a href='undocumented#Size'>size</a> should be <a href='#SkCanvas_MakeRasterDirectN32_height'>height</a></td>
</tr>
- <tr> <td><a name='SkCanvas_MakeRasterDirectN32_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td>interval from one <a href='SkSurface_Reference#Surface'>Surface</a> row to the next, or zero</td>
+</table>
+
+times <a href='#SkCanvas_MakeRasterDirectN32_rowBytes'>rowBytes</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkCanvas_MakeRasterDirectN32_rowBytes'><code><strong>rowBytes</strong></code></a></td>
+ <td>interval from one <a href='SkSurface_Reference#SkSurface'>SkSurface</a> row to the next, or zero</td>
</tr>
</table>
### Return Value
-<a href='#Canvas'>Canvas</a> if all parameters are valid; otherwise, nullptr
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -432,12 +441,12 @@
<a href='#SkCanvas'>SkCanvas</a>()
</pre>
-Creates an empty <a href='#Canvas'>Canvas</a> with no backing device or pixels, with
+Creates an empty <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> with no backing <a href='undocumented#Device'>device</a> or pixels, with
a width and height of zero.
### Return Value
-empty <a href='#Canvas'>Canvas</a>
+empty <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>
### Example
@@ -466,13 +475,13 @@
<a href='#SkCanvas'>SkCanvas</a>(int width, int height, const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props = nullptr)
</pre>
-Creates <a href='#Canvas'>Canvas</a> of the specified dimensions without a <a href='SkSurface_Reference#Surface'>Surface</a>.
-Used by <a href='undocumented#Subclasses'>Subclasses</a> with custom implementations for draw member functions.
+Creates <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> of the specified dimensions without a <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.
+Used by subclasses with custom implementations for draw member functions.
-If <a href='#SkCanvas_int_int_const_SkSurfaceProps_star_props'>props</a> equals nullptr, <a href='undocumented#Surface_Properties'>Surface Properties</a> are created with
-<a href='undocumented#Legacy_Font_Host'>Surface Properties Legacy Font Host</a> settings, which choose the pixel striping
+If <a href='#SkCanvas_SkCanvas(int width, int height, const SkSurfaceProps* props = nullptr)_props'>props</a> equals nullptr, <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a> are created with
+<a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>::<a href='#SkSurfaceProps_InitType'>InitType</a> settings, which choose the <a href='undocumented#Pixel'>pixel</a> striping
direction and order. Since a platform may dynamically change its direction when
-the device is rotated, and since a platform may have multiple monitors with
+the <a href='undocumented#Device'>device</a> is rotated, and since a platform may have multiple monitors with
different characteristics, it is best not to rely on this legacy behavior.
### Parameters
@@ -484,14 +493,15 @@
<td>zero or greater</td>
</tr>
<tr> <td><a name='SkCanvas_int_int_const_SkSurfaceProps_star_props'><code><strong>props</strong></code></a></td>
- <td>LCD striping orientation and setting for device independent fonts;
-may be nullptr</td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent fonts;</td>
</tr>
</table>
+may be nullptr
+
### Return Value
-<a href='#Canvas'>Canvas</a> placeholder with dimensions
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> placeholder with dimensions
### Example
@@ -527,25 +537,26 @@
explicit <a href='#SkCanvas'>SkCanvas</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& bitmap)
</pre>
-Constructs a canvas that draws into <a href='#SkCanvas_copy_const_SkBitmap_bitmap'>bitmap</a>.
-Sets <a href='undocumented#SkSurfaceProps_kLegacyFontHost_InitType'>SkSurfaceProps::kLegacyFontHost InitType</a> in constructed <a href='SkSurface_Reference#Surface'>Surface</a>.
+Constructs a <a href='SkCanvas_Reference#Canvas'>canvas</a> that draws into <a href='#SkCanvas_SkCanvas(const SkBitmap& bitmap)_bitmap'>bitmap</a>.
+Sets <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>::<a href='#SkSurfaceProps_kLegacyFontHost_InitType'>kLegacyFontHost_InitType</a> in constructed <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.
-<a href='SkBitmap_Reference#Bitmap'>Bitmap</a> is copied so that subsequently editing <a href='#SkCanvas_copy_const_SkBitmap_bitmap'>bitmap</a> will not affect
-constructed <a href='#Canvas'>Canvas</a>.
+<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> is copied so that subsequently editing <a href='#SkCanvas_SkCanvas(const SkBitmap& bitmap)_bitmap'>bitmap</a> will not affect
+constructed <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>.
May be deprecated in the future.
### Parameters
<table> <tr> <td><a name='SkCanvas_copy_const_SkBitmap_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, and pixel
-storage of <a href='undocumented#Raster_Surface'>Raster Surface</a></td>
+ <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='undocumented#Pixel'>pixel</a></td>
</tr>
</table>
+storage of <a href='undocumented#Raster_Surface'>raster surface</a>
+
### Return Value
-<a href='#Canvas'>Canvas</a> that can be used to draw into <a href='#SkCanvas_copy_const_SkBitmap_bitmap'>bitmap</a>
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> that can be used to draw into <a href='#SkCanvas_SkCanvas(const SkBitmap& bitmap)_bitmap'>bitmap</a>
### Example
@@ -614,7 +625,7 @@
### Parameters
<table> <tr> <td><a name='SkCanvas_const_SkBitmap_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td>specifies a <a href='#SkCanvas_const_SkBitmap_bitmap'>bitmap</a> for the canvas to draw into</td>
+ <td>specifies a <a href='#SkCanvas_SkCanvas(const SkBitmap& bitmap, ColorBehavior behavior)_bitmap'>bitmap</a> for the <a href='SkCanvas_Reference#Canvas'>canvas</a> to draw into</td>
</tr>
<tr> <td><a name='SkCanvas_const_SkBitmap_behavior'><code><strong>behavior</strong></code></a></td>
<td>specializes this constructor; value is unused</td>
@@ -623,7 +634,7 @@
### Return Value
-<a href='#Canvas'>Canvas</a> that can be used to draw into <a href='#SkCanvas_const_SkBitmap_bitmap'>bitmap</a>
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> that can be used to draw into <a href='#SkCanvas_SkCanvas(const SkBitmap& bitmap, ColorBehavior behavior)_bitmap'>bitmap</a>
<a name='SkCanvas_const_SkBitmap_const_SkSurfaceProps'></a>
@@ -633,27 +644,33 @@
<a href='#SkCanvas'>SkCanvas</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& bitmap, const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>& props)
</pre>
-Constructs a canvas that draws into <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>bitmap</a>.
-Use <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_props'>props</a> to match the device characteristics, like LCD striping.
+Constructs a <a href='SkCanvas_Reference#Canvas'>canvas</a> that draws into <a href='#SkCanvas_SkCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props)_bitmap'>bitmap</a>.
+Use <a href='#SkCanvas_SkCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props)_props'>props</a> to match the <a href='undocumented#Device'>device</a> characteristics, like LCD striping.
-<a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>bitmap</a> is copied so that subsequently editing <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>bitmap</a> will not affect
-constructed <a href='#Canvas'>Canvas</a>.
+<a href='#SkCanvas_SkCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props)_bitmap'>bitmap</a> is copied so that subsequently editing <a href='#SkCanvas_SkCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props)_bitmap'>bitmap</a> will not affect
+constructed <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>,
-and pixel storage of <a href='undocumented#Raster_Surface'>Raster Surface</a></td>
- </tr>
- <tr> <td><a name='SkCanvas_const_SkBitmap_const_SkSurfaceProps_props'><code><strong>props</strong></code></a></td>
- <td>order and orientation of RGB striping; and whether to use
-device independent fonts</td>
+ <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>,</td>
</tr>
</table>
+and <a href='undocumented#Pixel_Storage'>pixel storage</a> of <a href='undocumented#Raster_Surface'>raster surface</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkCanvas_const_SkBitmap_const_SkSurfaceProps_props'><code><strong>props</strong></code></a></td>
+ <td>order and orientation of RGB striping; and whether to use</td>
+ </tr>
+</table>
+
+<a href='undocumented#Device'>device</a> independent fonts
+
### Return Value
-<a href='#Canvas'>Canvas</a> that can be used to draw into <a href='#SkCanvas_const_SkBitmap_const_SkSurfaceProps_bitmap'>bitmap</a>
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> that can be used to draw into <a href='#SkCanvas_SkCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props)_bitmap'>bitmap</a>
### Example
@@ -690,14 +707,14 @@
virtual <a href='#SkCanvas_destructor'>~SkCanvas</a>()
</pre>
-Draws saved <a href='#Layer'>Layers</a>, if any.
-Frees up resources used by <a href='#Canvas'>Canvas</a>.
+Draws saved <a href='SkCanvas_Reference#Layer'>layers</a>, if any.
+Frees up resources used by <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>.
### Example
<div><fiddle-embed name="b7bc91ff16c9b9351b2a127f35394b82"><div><a href='#Canvas'>Canvas</a> <a href='#Layer'>Layer</a> draws into bitmap. <a href='#SkCanvas_saveLayerAlpha'>saveLayerAlpha</a> sets up an additional
drawing surface that blends with the bitmap. When <a href='#Layer'>Layer</a> goes out of
-scope, <a href='#Layer'>Layer</a> <a href='undocumented#Destructor'>Destructor</a> is called. The saved <a href='#Layer'>Layer</a> is restored, drawing
+scope, <a href='#Layer'>Layer</a> destructor is called. The saved <a href='#Layer'>Layer</a> is restored, drawing
transparent letters.
</div></fiddle-embed></div>
@@ -715,8 +732,8 @@
<a href='undocumented#SkMetaData'>SkMetaData</a>& <a href='#SkCanvas_getMetaData'>getMetaData</a>()
</pre>
-Returns storage to associate additional data with the canvas.
-The storage is freed when <a href='#Canvas'>Canvas</a> is deleted.
+Returns storage to associate additional <a href='undocumented#Data'>data</a> with the <a href='SkCanvas_Reference#Canvas'>canvas</a>.
+The storage is freed when <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is deleted.
### Return Value
@@ -748,12 +765,12 @@
<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> <a href='#SkCanvas_imageInfo'>imageInfo</a>() const
</pre>
-Returns <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> for <a href='#Canvas'>Canvas</a>. If <a href='#Canvas'>Canvas</a> is not associated with <a href='undocumented#Raster_Surface'>Raster Surface</a> or
-<a href='undocumented#GPU_Surface'>GPU Surface</a>, returned <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is set to <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
+Returns <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> for <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>. If <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is not associated with <a href='undocumented#Raster_Surface'>raster surface</a> or
+<a href='undocumented#GPU_Surface'>GPU surface</a>, returned <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is set to <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
### Return Value
-dimensions and <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> of <a href='#Canvas'>Canvas</a>
+dimensions and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> of <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>
### Example
@@ -779,8 +796,8 @@
bool <a href='#SkCanvas_getProps'>getProps</a>(<a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props) const
</pre>
-Copies <a href='undocumented#Surface_Properties'>Surface Properties</a>, if <a href='#Canvas'>Canvas</a> is associated with <a href='undocumented#Raster_Surface'>Raster Surface</a> or
-<a href='undocumented#GPU_Surface'>GPU Surface</a>, and returns true. Otherwise, returns false and leave <a href='#SkCanvas_getProps_props'>props</a> unchanged.
+Copies <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>, if <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is associated with <a href='undocumented#Raster_Surface'>raster surface</a> or
+<a href='undocumented#GPU_Surface'>GPU surface</a>, and returns true. Otherwise, returns false and leave <a href='#SkCanvas_getProps_props'>props</a> unchanged.
### Parameters
@@ -791,7 +808,7 @@
### Return Value
-true if <a href='undocumented#Surface_Properties'>Surface Properties</a> was copied
+true if <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a> was copied
### Example
@@ -821,8 +838,8 @@
</pre>
Triggers the immediate execution of all pending draw operations.
-If <a href='#Canvas'>Canvas</a> is associated with <a href='undocumented#GPU_Surface'>GPU Surface</a>, resolves all pending GPU operations.
-If <a href='#Canvas'>Canvas</a> is associated with <a href='undocumented#Raster_Surface'>Raster Surface</a>, has no effect; raster draw
+If <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is associated with <a href='undocumented#GPU_Surface'>GPU surface</a>, resolves all pending GPU operations.
+If <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is associated with <a href='undocumented#Raster_Surface'>raster surface</a>, has no effect; raster draw
operations are never deferred.
### See Also
@@ -837,13 +854,13 @@
virtual <a href='undocumented#SkISize'>SkISize</a> <a href='#SkCanvas_getBaseLayerSize'>getBaseLayerSize</a>() const
</pre>
-Gets the size of the base or root <a href='#Layer'>Layer</a> in global canvas coordinates. The
-origin of the base <a href='#Layer'>Layer</a> is always (0,0). The area available for drawing may be
+Gets the <a href='undocumented#Size'>size</a> of the base or root <a href='SkCanvas_Reference#Layer'>layer</a> in global <a href='SkCanvas_Reference#Canvas'>canvas</a> coordinates. The
+origin of the base <a href='SkCanvas_Reference#Layer'>layer</a> is always (0,0). The area available for drawing may be
smaller (due to clipping or <a href='#SkCanvas_saveLayer'>saveLayer</a>).
### Return Value
-integral width and height of base <a href='#Layer'>Layer</a>
+integral width and height of base <a href='SkCanvas_Reference#Layer'>layer</a>
### Example
@@ -870,25 +887,25 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='SkSurface_Reference#SkSurface'>SkSurface</a>> <a href='#SkCanvas_makeSurface'>makeSurface</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props = nullptr)
</pre>
-Creates <a href='SkSurface_Reference#Surface'>Surface</a> matching <a href='#SkCanvas_makeSurface_info'>info</a> and <a href='#SkCanvas_makeSurface_props'>props</a>, and associates it with <a href='#Canvas'>Canvas</a>.
+Creates <a href='SkSurface_Reference#SkSurface'>SkSurface</a> matching <a href='#SkCanvas_makeSurface_info'>info</a> and <a href='#SkCanvas_makeSurface_props'>props</a>, and associates it with <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>.
Returns nullptr if no match found.
-If <a href='#SkCanvas_makeSurface_props'>props</a> is nullptr, matches <a href='undocumented#Surface_Properties'>Surface Properties</a> in <a href='#Canvas'>Canvas</a>. If <a href='#SkCanvas_makeSurface_props'>props</a> is nullptr and <a href='#Canvas'>Canvas</a>
-does not have <a href='undocumented#Surface_Properties'>Surface Properties</a>, creates <a href='SkSurface_Reference#Surface'>Surface</a> with default <a href='undocumented#Surface_Properties'>Surface Properties</a>.
+If <a href='#SkCanvas_makeSurface_props'>props</a> is nullptr, matches <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a> in <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>. If <a href='#SkCanvas_makeSurface_props'>props</a> is nullptr and <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>
+does not have <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>, creates <a href='SkSurface_Reference#SkSurface'>SkSurface</a> with default <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_makeSurface_info'><code><strong>info</strong></code></a></td>
- <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, and <a href='undocumented#Color_Space'>Color Space</a></td>
+ <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
</tr>
<tr> <td><a name='SkCanvas_makeSurface_props'><code><strong>props</strong></code></a></td>
- <td><a href='undocumented#Surface_Properties'>Surface Properties</a> to match; may be nullptr to match <a href='#Canvas'>Canvas</a></td>
+ <td><a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a> to match; may be nullptr to match <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a></td>
</tr>
</table>
### Return Value
-<a href='SkSurface_Reference#Surface'>Surface</a> matching <a href='#SkCanvas_makeSurface_info'>info</a> and <a href='#SkCanvas_makeSurface_props'>props</a>, or nullptr if no match is available
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> matching <a href='#SkCanvas_makeSurface_info'>info</a> and <a href='#SkCanvas_makeSurface_props'>props</a>, or nullptr if no match is available
### Example
@@ -915,11 +932,11 @@
virtual <a href='undocumented#GrContext'>GrContext</a>* <a href='#SkCanvas_getGrContext'>getGrContext</a>()
</pre>
-Returns <a href='undocumented#GPU_Context'>GPU Context</a> of the <a href='undocumented#GPU_Surface'>GPU Surface</a> associated with <a href='#Canvas'>Canvas</a>.
+Returns <a href='undocumented#GPU_Context'>GPU context</a> of the <a href='undocumented#GPU_Surface'>GPU surface</a> associated with <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>.
### Return Value
-<a href='undocumented#GPU_Context'>GPU Context</a>, if available; nullptr otherwise
+<a href='undocumented#GPU_Context'>GPU context</a>, if available; nullptr otherwise
### Example
@@ -937,9 +954,9 @@
void* <a href='#SkCanvas_accessTopLayerPixels'>accessTopLayerPixels</a>(<a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>* info, size_t* rowBytes, <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* origin = nullptr)
</pre>
-Returns the pixel base address, <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, <a href='#SkCanvas_accessTopLayerPixels_rowBytes'>rowBytes</a>, and <a href='#SkCanvas_accessTopLayerPixels_origin'>origin</a> if the pixels
+Returns the <a href='undocumented#Pixel'>pixel</a> base address, <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='#SkCanvas_accessTopLayerPixels_rowBytes'>rowBytes</a>, and <a href='#SkCanvas_accessTopLayerPixels_origin'>origin</a> if the pixels
can be read directly. The returned address is only valid
-while <a href='#Canvas'>Canvas</a> is in scope and unchanged. Any <a href='#Canvas'>Canvas</a> call or <a href='SkSurface_Reference#Surface'>Surface</a> call
+while <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is in scope and unchanged. Any <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> call or <a href='SkSurface_Reference#SkSurface'>SkSurface</a> call
may invalidate the returned address and other returned values.
If pixels are inaccessible, <a href='#SkCanvas_accessTopLayerPixels_info'>info</a>, <a href='#SkCanvas_accessTopLayerPixels_rowBytes'>rowBytes</a>, and <a href='#SkCanvas_accessTopLayerPixels_origin'>origin</a> are unchanged.
@@ -947,17 +964,18 @@
### Parameters
<table> <tr> <td><a name='SkCanvas_accessTopLayerPixels_info'><code><strong>info</strong></code></a></td>
- <td>storage for writable pixels' <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>; may be nullptr</td>
+ <td>storage for writable pixels' <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_accessTopLayerPixels_rowBytes'><code><strong>rowBytes</strong></code></a></td>
<td>storage for writable pixels' row bytes; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_accessTopLayerPixels_origin'><code><strong>origin</strong></code></a></td>
- <td>storage for <a href='#Canvas'>Canvas</a> top <a href='#Layer'>Layer</a> <a href='#SkCanvas_accessTopLayerPixels_origin'>origin</a>, its top-left corner;
-may be nullptr</td>
+ <td>storage for <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> top <a href='SkCanvas_Reference#Layer'>layer</a> <a href='#SkCanvas_accessTopLayerPixels_origin'>origin</a>, its top-left corner;</td>
</tr>
</table>
+may be nullptr
+
### Return Value
address of pixels, or nullptr if inaccessible
@@ -988,11 +1006,11 @@
<a href='undocumented#SkRasterHandleAllocator_Handle'>SkRasterHandleAllocator::Handle</a> <a href='#SkCanvas_accessTopRasterHandle'>accessTopRasterHandle</a>() const
</pre>
-Returns custom context that tracks the <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>.
+Returns custom context that tracks the <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip.
-Use <a href='undocumented#Raster_Handle_Allocator'>Raster Handle Allocator</a> to blend Skia drawing with custom drawing, typically performed
+Use <a href='undocumented#SkRasterHandleAllocator'>SkRasterHandleAllocator</a> to blend Skia drawing with custom drawing, typically performed
by the host platform user interface. The custom context returned is generated by
-<a href='undocumented#SkRasterHandleAllocator_MakeCanvas'>SkRasterHandleAllocator::MakeCanvas</a>, which creates a custom canvas with raster storage for
+<a href='undocumented#SkRasterHandleAllocator'>SkRasterHandleAllocator</a>::<a href='#SkRasterHandleAllocator_MakeCanvas'>MakeCanvas</a>, which creates a custom <a href='SkCanvas_Reference#Canvas'>canvas</a> with raster storage for
the drawing destination.
### Return Value
@@ -1025,26 +1043,26 @@
bool <a href='#SkCanvas_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* pixmap)
</pre>
-Returns true if <a href='#Canvas'>Canvas</a> has direct access to its pixels.
+Returns true if <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> has direct access to its pixels.
-<a href='#Pixels'>Pixels</a> are readable when <a href='undocumented#Device'>Device</a> is raster. <a href='#Pixels'>Pixels</a> are not readable when <a href='#Canvas'>Canvas</a>
-is returned from <a href='undocumented#GPU_Surface'>GPU Surface</a>, returned by <a href='undocumented#SkDocument_beginPage'>SkDocument::beginPage</a>, returned by
-<a href='undocumented#SkPictureRecorder_beginRecording'>SkPictureRecorder::beginRecording</a>, or <a href='#Canvas'>Canvas</a> is the base of a utility class
+Pixels are readable when <a href='undocumented#SkBaseDevice'>SkBaseDevice</a> is raster. Pixels are not readable when <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>
+is returned from <a href='undocumented#GPU_Surface'>GPU surface</a>, returned by <a href='undocumented#SkDocument'>SkDocument</a>::<a href='#SkDocument_beginPage'>beginPage</a>, returned by
+<a href='undocumented#SkPictureRecorder'>SkPictureRecorder</a>::<a href='#SkPictureRecorder_beginRecording'>beginRecording</a>, or <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is the base of a utility class
like <a href='undocumented#SkDebugCanvas'>SkDebugCanvas</a>.
-<a href='#SkCanvas_peekPixels_pixmap'>pixmap</a> is valid only while <a href='#Canvas'>Canvas</a> is in scope and unchanged. Any
-<a href='#Canvas'>Canvas</a> or <a href='SkSurface_Reference#Surface'>Surface</a> call may invalidate the <a href='#SkCanvas_peekPixels_pixmap'>pixmap</a> values.
+<a href='#SkCanvas_peekPixels_pixmap'>pixmap</a> is valid only while <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> is in scope and unchanged. Any
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> or <a href='SkSurface_Reference#SkSurface'>SkSurface</a> call may invalidate the <a href='#SkCanvas_peekPixels_pixmap'>pixmap</a> values.
### Parameters
<table> <tr> <td><a name='SkCanvas_peekPixels_pixmap'><code><strong>pixmap</strong></code></a></td>
- <td>storage for pixel state if pixels are readable; otherwise, ignored</td>
+ <td>storage for <a href='undocumented#Pixel'>pixel</a> state if pixels are readable; otherwise, ignored</td>
</tr>
</table>
### Return Value
-true if <a href='#Canvas'>Canvas</a> has direct access to pixels
+true if <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> has direct access to pixels
### Example
@@ -1516,17 +1534,17 @@
int <a href='#SkCanvas_save'>save</a>()
</pre>
-Saves <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>.
-Calling <a href='#SkCanvas_restore'>restore</a>() discards changes to <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>,
-restoring the <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a> to their state when <a href='#SkCanvas_save'>save</a>() was called.
+Saves <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip.
+Calling <a href='#SkCanvas_restore'>restore()</a> discards changes to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip,
+restoring the <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip to their state when <a href='#SkCanvas_save'>save()</a> was called.
-<a href='#Matrix'>Matrix</a> may be changed by <a href='#SkCanvas_translate'>translate</a>(), <a href='#SkCanvas_scale'>scale</a>(), <a href='#SkCanvas_rotate'>rotate</a>(), <a href='#SkCanvas_skew'>skew</a>(), <a href='#SkCanvas_concat'>concat</a>(), <a href='#SkCanvas_setMatrix'>setMatrix</a>,
-and <a href='#SkCanvas_resetMatrix'>resetMatrix</a>. <a href='#Clip'>Clip</a> may be changed by <a href='#SkCanvas_clipRect'>clipRect</a>, <a href='#SkCanvas_clipRRect'>clipRRect</a>, <a href='#SkCanvas_clipPath'>clipPath</a>, <a href='#SkCanvas_clipRegion'>clipRegion</a>.
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may be changed by <a href='#SkCanvas_translate'>translate()</a>, <a href='#SkCanvas_scale'>scale()</a>, <a href='#SkCanvas_rotate'>rotate()</a>, <a href='#SkCanvas_skew'>skew()</a>, <a href='#SkCanvas_concat'>concat()</a>, <a href='#SkCanvas_setMatrix'>setMatrix</a>(),
+and <a href='#SkCanvas_resetMatrix'>resetMatrix</a>(). Clip may be changed by <a href='#SkCanvas_clipRect'>clipRect</a>(), <a href='#SkCanvas_clipRRect'>clipRRect</a>(), <a href='#SkCanvas_clipPath'>clipPath</a>(), <a href='#SkCanvas_clipRegion'>clipRegion</a>().
-Saved <a href='#Canvas'>Canvas</a> state is put on a stack; multiple calls to <a href='#SkCanvas_save'>save</a>() should be balance
-by an equal number of calls to <a href='#SkCanvas_restore'>restore</a>().
+Saved <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> state is put on a stack; multiple calls to <a href='#SkCanvas_save'>save()</a> should be balance
+by an equal number of calls to <a href='#SkCanvas_restore'>restore()</a>.
-Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a> with result to restore this and subsequent saves.
+Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a>() with result to restore this and subsequent saves.
### Return Value
@@ -1551,7 +1569,7 @@
void <a href='#SkCanvas_restore'>restore</a>()
</pre>
-Removes changes to <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a> since <a href='#Canvas'>Canvas</a> state was
+Removes changes to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip since <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> state was
last saved. The state is removed from the stack.
Does nothing if the stack is empty.
@@ -1572,13 +1590,13 @@
int <a href='#SkCanvas_getSaveCount'>getSaveCount</a>() const
</pre>
-Returns the number of saved states, each containing: <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>.
-Equals the number of <a href='#SkCanvas_save'>save</a>() calls less the number of <a href='#SkCanvas_restore'>restore</a>() calls plus one.
-The save count of a new canvas is one.
+Returns the number of saved states, each containing: <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip.
+Equals the number of <a href='#SkCanvas_save'>save()</a> calls less the number of <a href='#SkCanvas_restore'>restore()</a> calls plus one.
+The save count of a new <a href='SkCanvas_Reference#Canvas'>canvas</a> is one.
### Return Value
-depth of save state stack
+depth of save <a href='#State_Stack'>state stack</a>
### Example
@@ -1606,16 +1624,16 @@
void <a href='#SkCanvas_restoreToCount'>restoreToCount</a>(int saveCount)
</pre>
-Restores state to <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a> values when <a href='#SkCanvas_save'>save</a>(), <a href='#SkCanvas_saveLayer'>saveLayer</a>,
-<a href='#SkCanvas_saveLayerPreserveLCDTextRequests'>saveLayerPreserveLCDTextRequests</a>, or <a href='#SkCanvas_saveLayerAlpha'>saveLayerAlpha</a> returned <a href='#SkCanvas_restoreToCount_saveCount'>saveCount</a>.
+Restores state to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip values when <a href='#SkCanvas_save'>save()</a>, <a href='#SkCanvas_saveLayer'>saveLayer</a>(),
+<a href='#SkCanvas_saveLayerPreserveLCDTextRequests'>saveLayerPreserveLCDTextRequests</a>(), or <a href='#SkCanvas_saveLayerAlpha'>saveLayerAlpha</a>() returned <a href='#SkCanvas_restoreToCount_saveCount'>saveCount</a>.
-Does nothing if <a href='#SkCanvas_restoreToCount_saveCount'>saveCount</a> is greater than state stack count.
+Does nothing if <a href='#SkCanvas_restoreToCount_saveCount'>saveCount</a> is greater than <a href='#State_Stack'>state stack</a> count.
Restores state to initial values if <a href='#SkCanvas_restoreToCount_saveCount'>saveCount</a> is less than or equal to one.
### Parameters
<table> <tr> <td><a name='SkCanvas_restoreToCount_saveCount'><code><strong>saveCount</strong></code></a></td>
- <td>depth of state stack to restore</td>
+ <td>depth of <a href='#State_Stack'>state stack</a> to restore</td>
</tr>
</table>
@@ -1657,28 +1675,28 @@
int <a href='#SkCanvas_saveLayer'>saveLayer</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
</pre>
-Saves <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>, and allocates a <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> for subsequent drawing.
-Calling <a href='#SkCanvas_restore'>restore</a>() discards changes to <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>, and draws the <a href='SkBitmap_Reference#Bitmap'>Bitmap</a>.
+Saves <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip, and allocates a <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> for subsequent drawing.
+Calling <a href='#SkCanvas_restore'>restore()</a> discards changes to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip, and draws the <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>.
-<a href='#Matrix'>Matrix</a> may be changed by <a href='#SkCanvas_translate'>translate</a>(), <a href='#SkCanvas_scale'>scale</a>(), <a href='#SkCanvas_rotate'>rotate</a>(), <a href='#SkCanvas_skew'>skew</a>(), <a href='#SkCanvas_concat'>concat</a>(),
-<a href='#SkCanvas_setMatrix'>setMatrix</a>, and <a href='#SkCanvas_resetMatrix'>resetMatrix</a>. <a href='#Clip'>Clip</a> may be changed by <a href='#SkCanvas_clipRect'>clipRect</a>, <a href='#SkCanvas_clipRRect'>clipRRect</a>,
-<a href='#SkCanvas_clipPath'>clipPath</a>, <a href='#SkCanvas_clipRegion'>clipRegion</a>.
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may be changed by <a href='#SkCanvas_translate'>translate()</a>, <a href='#SkCanvas_scale'>scale()</a>, <a href='#SkCanvas_rotate'>rotate()</a>, <a href='#SkCanvas_skew'>skew()</a>, <a href='#SkCanvas_concat'>concat()</a>,
+<a href='#SkCanvas_setMatrix'>setMatrix</a>(), and <a href='#SkCanvas_resetMatrix'>resetMatrix</a>(). Clip may be changed by <a href='#SkCanvas_clipRect'>clipRect</a>(), <a href='#SkCanvas_clipRRect'>clipRRect</a>(),
+<a href='#SkCanvas_clipPath'>clipPath</a>(), <a href='#SkCanvas_clipRegion'>clipRegion</a>().
-<a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_saveLayer_bounds'>bounds</a> suggests but does not define the <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> size. To clip drawing to
-a specific rectangle, use <a href='#SkCanvas_clipRect'>clipRect</a>.
+<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_saveLayer_bounds'>bounds</a> suggests but does not define the <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='undocumented#Size'>size</a>. To clip drawing to
+a specific rectangle, use <a href='#SkCanvas_clipRect'>clipRect</a>().
-Optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_saveLayer_paint'>paint</a> applies <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='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> when <a href='#SkCanvas_restore'>restore</a>() is called.
+Optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_saveLayer_paint'>paint</a> applies <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> when <a href='#SkCanvas_restore'>restore()</a> is called.
-Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a> with returned value to restore this and subsequent saves.
+Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a>() with returned value to restore this and subsequent saves.
### Parameters
<table> <tr> <td><a name='SkCanvas_saveLayer_bounds'><code><strong>bounds</strong></code></a></td>
- <td>hint to limit the size of the <a href='#Layer'>Layer</a>; may be nullptr</td>
+ <td>hint to limit the <a href='undocumented#Size'>size</a> of the <a href='SkCanvas_Reference#Layer'>layer</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_saveLayer_paint'><code><strong>paint</strong></code></a></td>
- <td>graphics state for <a href='#Layer'>Layer</a>; may be nullptr</td>
+ <td>graphics state for <a href='SkCanvas_Reference#Layer'>layer</a>; may be nullptr</td>
</tr>
</table>
@@ -1704,28 +1722,28 @@
int <a href='#SkCanvas_saveLayer'>saveLayer</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
</pre>
-Saves <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>, and allocates a <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> for subsequent drawing.
-Calling <a href='#SkCanvas_restore'>restore</a>() discards changes to <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>, and draws the <a href='SkBitmap_Reference#Bitmap'>Bitmap</a>.
+Saves <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip, and allocates a <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> for subsequent drawing.
+Calling <a href='#SkCanvas_restore'>restore()</a> discards changes to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip, and draws the <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>.
-<a href='#Matrix'>Matrix</a> may be changed by <a href='#SkCanvas_translate'>translate</a>(), <a href='#SkCanvas_scale'>scale</a>(), <a href='#SkCanvas_rotate'>rotate</a>(), <a href='#SkCanvas_skew'>skew</a>(), <a href='#SkCanvas_concat'>concat</a>(),
-<a href='#SkCanvas_setMatrix'>setMatrix</a>, and <a href='#SkCanvas_resetMatrix'>resetMatrix</a>. <a href='#Clip'>Clip</a> may be changed by <a href='#SkCanvas_clipRect'>clipRect</a>, <a href='#SkCanvas_clipRRect'>clipRRect</a>,
-<a href='#SkCanvas_clipPath'>clipPath</a>, <a href='#SkCanvas_clipRegion'>clipRegion</a>.
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may be changed by <a href='#SkCanvas_translate'>translate()</a>, <a href='#SkCanvas_scale'>scale()</a>, <a href='#SkCanvas_rotate'>rotate()</a>, <a href='#SkCanvas_skew'>skew()</a>, <a href='#SkCanvas_concat'>concat()</a>,
+<a href='#SkCanvas_setMatrix'>setMatrix</a>(), and <a href='#SkCanvas_resetMatrix'>resetMatrix</a>(). Clip may be changed by <a href='#SkCanvas_clipRect'>clipRect</a>(), <a href='#SkCanvas_clipRRect'>clipRRect</a>(),
+<a href='#SkCanvas_clipPath'>clipPath</a>(), <a href='#SkCanvas_clipRegion'>clipRegion</a>().
-<a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_saveLayer_2_bounds'>bounds</a> suggests but does not define the <a href='#Layer'>Layer</a> size. To clip drawing to
-a specific rectangle, use <a href='#SkCanvas_clipRect'>clipRect</a>.
+<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_saveLayer_2_bounds'>bounds</a> suggests but does not define the <a href='SkCanvas_Reference#Layer'>layer</a> <a href='undocumented#Size'>size</a>. To clip drawing to
+a specific rectangle, use <a href='#SkCanvas_clipRect'>clipRect</a>().
-Optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_saveLayer_2_paint'>paint</a> applies <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='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> when <a href='#SkCanvas_restore'>restore</a>() is called.
+Optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_saveLayer_2_paint'>paint</a> applies <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> when <a href='#SkCanvas_restore'>restore()</a> is called.
-Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a> with returned value to restore this and subsequent saves.
+Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a>() with returned value to restore this and subsequent saves.
### Parameters
<table> <tr> <td><a name='SkCanvas_saveLayer_2_bounds'><code><strong>bounds</strong></code></a></td>
- <td>hint to limit the size of <a href='#Layer'>Layer</a>; may be nullptr</td>
+ <td>hint to limit the <a href='undocumented#Size'>size</a> of <a href='SkCanvas_Reference#Layer'>layer</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_saveLayer_2_paint'><code><strong>paint</strong></code></a></td>
- <td>graphics state for <a href='#Layer'>Layer</a>; may be nullptr</td>
+ <td>graphics state for <a href='SkCanvas_Reference#Layer'>layer</a>; may be nullptr</td>
</tr>
</table>
@@ -1752,34 +1770,34 @@
int <a href='#SkCanvas_saveLayerPreserveLCDTextRequests'>saveLayerPreserveLCDTextRequests</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
</pre>
-Saves <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>, and allocates a <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> for subsequent drawing.
-<a href='SkPaint_Reference#LCD_Text'>LCD Text</a> is preserved when the <a href='#Layer'>Layer</a> is drawn to the prior <a href='#Layer'>Layer</a>.
+Saves <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip, and allocates a <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> for subsequent drawing.
+<a href='SkPaint_Reference#LCD_Text'>LCD text</a> is preserved when the <a href='SkCanvas_Reference#Layer'>layer</a> is drawn to the prior <a href='SkCanvas_Reference#Layer'>layer</a>.
-Calling <a href='#SkCanvas_restore'>restore</a>() discards changes to <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>, and draws <a href='#Layer'>Layer</a>.
+Calling <a href='#SkCanvas_restore'>restore()</a> discards changes to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip, and draws <a href='SkCanvas_Reference#Layer'>layer</a>.
-<a href='#Matrix'>Matrix</a> may be changed by <a href='#SkCanvas_translate'>translate</a>(), <a href='#SkCanvas_scale'>scale</a>(), <a href='#SkCanvas_rotate'>rotate</a>(), <a href='#SkCanvas_skew'>skew</a>(), <a href='#SkCanvas_concat'>concat</a>(),
-<a href='#SkCanvas_setMatrix'>setMatrix</a>, and <a href='#SkCanvas_resetMatrix'>resetMatrix</a>. <a href='#Clip'>Clip</a> may be changed by <a href='#SkCanvas_clipRect'>clipRect</a>, <a href='#SkCanvas_clipRRect'>clipRRect</a>,
-<a href='#SkCanvas_clipPath'>clipPath</a>, <a href='#SkCanvas_clipRegion'>clipRegion</a>.
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may be changed by <a href='#SkCanvas_translate'>translate()</a>, <a href='#SkCanvas_scale'>scale()</a>, <a href='#SkCanvas_rotate'>rotate()</a>, <a href='#SkCanvas_skew'>skew()</a>, <a href='#SkCanvas_concat'>concat()</a>,
+<a href='#SkCanvas_setMatrix'>setMatrix</a>(), and <a href='#SkCanvas_resetMatrix'>resetMatrix</a>(). Clip may be changed by <a href='#SkCanvas_clipRect'>clipRect</a>(), <a href='#SkCanvas_clipRRect'>clipRRect</a>(),
+<a href='#SkCanvas_clipPath'>clipPath</a>(), <a href='#SkCanvas_clipRegion'>clipRegion</a>().
-<a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_saveLayerPreserveLCDTextRequests_bounds'>bounds</a> suggests but does not define the <a href='#Layer'>Layer</a> size. To clip drawing to
-a specific rectangle, use <a href='#SkCanvas_clipRect'>clipRect</a>.
+<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_saveLayerPreserveLCDTextRequests_bounds'>bounds</a> suggests but does not define the <a href='SkCanvas_Reference#Layer'>layer</a> <a href='undocumented#Size'>size</a>. To clip drawing to
+a specific rectangle, use <a href='#SkCanvas_clipRect'>clipRect</a>().
-Optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_saveLayerPreserveLCDTextRequests_paint'>paint</a> applies <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='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> when <a href='#SkCanvas_restore'>restore</a>() is called.
+Optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_saveLayerPreserveLCDTextRequests_paint'>paint</a> applies <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> when <a href='#SkCanvas_restore'>restore()</a> is called.
-Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a> with returned value to restore this and subsequent saves.
+Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a>() with returned value to restore this and subsequent saves.
-<a href='#Draw'>Draw</a> text on an opaque background so that <a href='SkPaint_Reference#LCD_Text'>LCD Text</a> blends correctly with the
-prior <a href='#Layer'>Layer</a>. <a href='SkPaint_Reference#LCD_Text'>LCD Text</a> drawn on a background with transparency may result in
+Draw <a href='undocumented#Text'>text</a> on an opaque background so that <a href='SkPaint_Reference#LCD_Text'>LCD text</a> blends correctly with the
+prior <a href='SkCanvas_Reference#Layer'>layer</a>. <a href='SkPaint_Reference#LCD_Text'>LCD text</a> drawn on a background with transparency may result in
incorrect blending.
### Parameters
<table> <tr> <td><a name='SkCanvas_saveLayerPreserveLCDTextRequests_bounds'><code><strong>bounds</strong></code></a></td>
- <td>hint to limit the size of <a href='#Layer'>Layer</a>; may be nullptr</td>
+ <td>hint to limit the <a href='undocumented#Size'>size</a> of <a href='SkCanvas_Reference#Layer'>layer</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_saveLayerPreserveLCDTextRequests_paint'><code><strong>paint</strong></code></a></td>
- <td>graphics state for <a href='#Layer'>Layer</a>; may be nullptr</td>
+ <td>graphics state for <a href='SkCanvas_Reference#Layer'>layer</a>; may be nullptr</td>
</tr>
</table>
@@ -1803,29 +1821,29 @@
int <a href='#SkCanvas_saveLayerAlpha'>saveLayerAlpha</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds, <a href='undocumented#U8CPU'>U8CPU</a> alpha)
</pre>
-Saves <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>, and allocates <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> for subsequent drawing.
+Saves <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip, and allocates <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> for subsequent drawing.
-Calling <a href='#SkCanvas_restore'>restore</a>() discards changes to <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>,
-and blends <a href='#Layer'>Layer</a> with <a href='#SkCanvas_saveLayerAlpha_alpha'>alpha</a> opacity onto prior <a href='#Layer'>Layer</a>.
+Calling <a href='#SkCanvas_restore'>restore()</a> discards changes to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip,
+and blends <a href='SkCanvas_Reference#Layer'>layer</a> with <a href='#SkCanvas_saveLayerAlpha_alpha'>alpha</a> opacity onto prior <a href='SkCanvas_Reference#Layer'>layer</a>.
-<a href='#Matrix'>Matrix</a> may be changed by <a href='#SkCanvas_translate'>translate</a>(), <a href='#SkCanvas_scale'>scale</a>(), <a href='#SkCanvas_rotate'>rotate</a>(), <a href='#SkCanvas_skew'>skew</a>(), <a href='#SkCanvas_concat'>concat</a>(),
-<a href='#SkCanvas_setMatrix'>setMatrix</a>, and <a href='#SkCanvas_resetMatrix'>resetMatrix</a>. <a href='#Clip'>Clip</a> may be changed by <a href='#SkCanvas_clipRect'>clipRect</a>, <a href='#SkCanvas_clipRRect'>clipRRect</a>,
-<a href='#SkCanvas_clipPath'>clipPath</a>, <a href='#SkCanvas_clipRegion'>clipRegion</a>.
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may be changed by <a href='#SkCanvas_translate'>translate()</a>, <a href='#SkCanvas_scale'>scale()</a>, <a href='#SkCanvas_rotate'>rotate()</a>, <a href='#SkCanvas_skew'>skew()</a>, <a href='#SkCanvas_concat'>concat()</a>,
+<a href='#SkCanvas_setMatrix'>setMatrix</a>(), and <a href='#SkCanvas_resetMatrix'>resetMatrix</a>(). Clip may be changed by <a href='#SkCanvas_clipRect'>clipRect</a>(), <a href='#SkCanvas_clipRRect'>clipRRect</a>(),
+<a href='#SkCanvas_clipPath'>clipPath</a>(), <a href='#SkCanvas_clipRegion'>clipRegion</a>().
-<a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_saveLayerAlpha_bounds'>bounds</a> suggests but does not define <a href='#Layer'>Layer</a> size. To clip drawing to
-a specific rectangle, use <a href='#SkCanvas_clipRect'>clipRect</a>.
+<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_saveLayerAlpha_bounds'>bounds</a> suggests but does not define <a href='SkCanvas_Reference#Layer'>layer</a> <a href='undocumented#Size'>size</a>. To clip drawing to
+a specific rectangle, use <a href='#SkCanvas_clipRect'>clipRect</a>().
<a href='#SkCanvas_saveLayerAlpha_alpha'>alpha</a> of zero is fully transparent, 255 is fully opaque.
-Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a> with returned value to restore this and subsequent saves.
+Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a>() with returned value to restore this and subsequent saves.
### Parameters
<table> <tr> <td><a name='SkCanvas_saveLayerAlpha_bounds'><code><strong>bounds</strong></code></a></td>
- <td>hint to limit the size of <a href='#Layer'>Layer</a>; may be nullptr</td>
+ <td>hint to limit the <a href='undocumented#Size'>size</a> of <a href='SkCanvas_Reference#Layer'>layer</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_saveLayerAlpha_alpha'><code><strong>alpha</strong></code></a></td>
- <td>opacity of <a href='#Layer'>Layer</a></td>
+ <td>opacity of <a href='SkCanvas_Reference#Layer'>layer</a></td>
</tr>
</table>
@@ -2018,7 +2036,7 @@
### Return Value
-empty <a href='#SkCanvas_SaveLayerRec_SaveLayerRec'>SaveLayerRec</a>
+empty <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>
### Example
@@ -2049,19 +2067,19 @@
### Parameters
<table> <tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_bounds'><code><strong>bounds</strong></code></a></td>
- <td><a href='#Layer'>Layer</a> dimensions; may be nullptr</td>
+ <td><a href='SkCanvas_Reference#Layer'>layer</a> dimensions; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_paint'><code><strong>paint</strong></code></a></td>
- <td>applied to <a href='#Layer'>Layer</a> when overlaying prior <a href='#Layer'>Layer</a>; may be nullptr</td>
+ <td>applied to <a href='SkCanvas_Reference#Layer'>layer</a> when overlaying prior <a href='SkCanvas_Reference#Layer'>layer</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_saveLayerFlags'><code><strong>saveLayerFlags</strong></code></a></td>
- <td><a href='#SkCanvas_SaveLayerRec_SaveLayerRec'>SaveLayerRec</a> options to modify <a href='#Layer'>Layer</a></td>
+ <td><a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> options to modify <a href='SkCanvas_Reference#Layer'>layer</a></td>
</tr>
</table>
### Return Value
-<a href='#SkCanvas_SaveLayerRec_SaveLayerRec'>SaveLayerRec</a> with empty backdrop
+<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> with empty <a href='#SkCanvas_SaveLayerRec_fBackdrop'>fBackdrop</a>
### Example
@@ -2093,23 +2111,28 @@
### Parameters
<table> <tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_bounds'><code><strong>bounds</strong></code></a></td>
- <td><a href='#Layer'>Layer</a> dimensions; may be nullptr</td>
+ <td><a href='SkCanvas_Reference#Layer'>layer</a> dimensions; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_paint'><code><strong>paint</strong></code></a></td>
- <td>applied to <a href='#Layer'>Layer</a> when overlaying prior <a href='#Layer'>Layer</a>;
-may be nullptr</td>
+ <td>applied to <a href='SkCanvas_Reference#Layer'>layer</a> when overlaying prior <a href='SkCanvas_Reference#Layer'>layer</a>;</td>
</tr>
- <tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_backdrop'><code><strong>backdrop</strong></code></a></td>
- <td>prior <a href='#Layer'>Layer</a> copied with <a href='undocumented#Image_Filter'>Image Filter</a>; may be nullptr</td>
+</table>
+
+may be nullptr
+
+### Parameters
+
+<table> <tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_backdrop'><code><strong>backdrop</strong></code></a></td>
+ <td>prior <a href='SkCanvas_Reference#Layer'>layer</a> copied with <a href='undocumented#SkImageFilter'>SkImageFilter</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_saveLayerFlags'><code><strong>saveLayerFlags</strong></code></a></td>
- <td><a href='#SkCanvas_SaveLayerRec_SaveLayerRec'>SaveLayerRec</a> options to modify <a href='#Layer'>Layer</a></td>
+ <td><a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> options to modify <a href='SkCanvas_Reference#Layer'>layer</a></td>
</tr>
</table>
### Return Value
-<a href='#SkCanvas_SaveLayerRec_SaveLayerRec'>SaveLayerRec</a> fully specified
+<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> fully specified
### Example
@@ -2185,29 +2208,29 @@
int <a href='#SkCanvas_saveLayer'>saveLayer</a>(const <a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a>& layerRec)
</pre>
-Saves <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>, and allocates <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> for subsequent drawing.
+Saves <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip, and allocates <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> for subsequent drawing.
-Calling <a href='#SkCanvas_restore'>restore</a>() discards changes to <a href='#Matrix'>Matrix</a> and <a href='#Clip'>Clip</a>,
-and blends <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> with <a href='SkColor_Reference#Alpha'>Color Alpha</a> opacity onto the prior <a href='#Layer'>Layer</a>.
+Calling <a href='#SkCanvas_restore'>restore()</a> discards changes to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and clip,
+and blends <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> with <a href='SkColor_Reference#Alpha'>alpha</a> opacity onto the prior <a href='SkCanvas_Reference#Layer'>layer</a>.
-<a href='#Matrix'>Matrix</a> may be changed by <a href='#SkCanvas_translate'>translate</a>(), <a href='#SkCanvas_scale'>scale</a>(), <a href='#SkCanvas_rotate'>rotate</a>(), <a href='#SkCanvas_skew'>skew</a>(), <a href='#SkCanvas_concat'>concat</a>(),
-<a href='#SkCanvas_setMatrix'>setMatrix</a>, and <a href='#SkCanvas_resetMatrix'>resetMatrix</a>. <a href='#Clip'>Clip</a> may be changed by <a href='#SkCanvas_clipRect'>clipRect</a>, <a href='#SkCanvas_clipRRect'>clipRRect</a>,
-<a href='#SkCanvas_clipPath'>clipPath</a>, <a href='#SkCanvas_clipRegion'>clipRegion</a>.
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may be changed by <a href='#SkCanvas_translate'>translate()</a>, <a href='#SkCanvas_scale'>scale()</a>, <a href='#SkCanvas_rotate'>rotate()</a>, <a href='#SkCanvas_skew'>skew()</a>, <a href='#SkCanvas_concat'>concat()</a>,
+<a href='#SkCanvas_setMatrix'>setMatrix</a>(), and <a href='#SkCanvas_resetMatrix'>resetMatrix</a>(). Clip may be changed by <a href='#SkCanvas_clipRect'>clipRect</a>(), <a href='#SkCanvas_clipRRect'>clipRRect</a>(),
+<a href='#SkCanvas_clipPath'>clipPath</a>(), <a href='#SkCanvas_clipRegion'>clipRegion</a>().
-<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> contains the state used to create the <a href='#Layer'>Layer</a>.
+<a href='#SkCanvas_SaveLayerRec'>SaveLayerRec</a> contains the state used to create the <a href='SkCanvas_Reference#Layer'>layer</a>.
-Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a> with returned value to restore this and subsequent saves.
+Call <a href='#SkCanvas_restoreToCount'>restoreToCount</a>() with returned value to restore this and subsequent saves.
### Parameters
<table> <tr> <td><a name='SkCanvas_saveLayer_3_layerRec'><code><strong>layerRec</strong></code></a></td>
- <td><a href='#Layer'>Layer</a> state</td>
+ <td><a href='SkCanvas_Reference#Layer'>layer</a> state</td>
</tr>
</table>
### Return Value
-depth of save state stack
+depth of save <a href='#State_Stack'>state stack</a>
### Example
@@ -2231,21 +2254,21 @@
void <a href='#SkCanvas_translate'>translate</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Translates <a href='#Matrix'>Matrix</a> by <a href='#SkCanvas_translate_dx'>dx</a> along the x-axis and <a href='#SkCanvas_translate_dy'>dy</a> along the y-axis.
+Translates <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> by <a href='#SkCanvas_translate()_dx'>dx</a> along the x-axis and <a href='#SkCanvas_translate()_dy'>dy</a> along the y-axis.
-Mathematically, replaces <a href='#Matrix'>Matrix</a> with a translation matrix
-<a href='undocumented#Premultiply'>Premultiplied</a> with <a href='#Matrix'>Matrix</a>.
+Mathematically, replaces <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with a translation <a href='SkMatrix_Reference#Matrix'>matrix</a>
+<a href='undocumented#Premultiply'>premultiplied</a> with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-This has the effect of moving the drawing by (<a href='#SkCanvas_translate_dx'>dx</a>, <a href='#SkCanvas_translate_dy'>dy</a>) before transforming
-the result with <a href='#Matrix'>Matrix</a>.
+This has the effect of moving the drawing by (<a href='#SkCanvas_translate()_dx'>dx</a>, <a href='#SkCanvas_translate()_dy'>dy</a>) before transforming
+the result with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_translate_dx'><code><strong>dx</strong></code></a></td>
- <td>distance to translate in x</td>
+ <td>distance to translate on x-axis</td>
</tr>
<tr> <td><a name='SkCanvas_translate_dy'><code><strong>dy</strong></code></a></td>
- <td>distance to translate in y</td>
+ <td>distance to translate on y-axis</td>
</tr>
</table>
@@ -2272,21 +2295,21 @@
void <a href='#SkCanvas_scale'>scale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy)
</pre>
-Scales <a href='#Matrix'>Matrix</a> by <a href='#SkCanvas_scale_sx'>sx</a> on the x-axis and <a href='#SkCanvas_scale_sy'>sy</a> on the y-axis.
+Scales <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> by <a href='#SkCanvas_scale()_sx'>sx</a> on the x-axis and <a href='#SkCanvas_scale()_sy'>sy</a> on the y-axis.
-Mathematically, replaces <a href='#Matrix'>Matrix</a> with a scale matrix
-<a href='undocumented#Premultiply'>Premultiplied</a> with <a href='#Matrix'>Matrix</a>.
+Mathematically, replaces <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with a scale <a href='SkMatrix_Reference#Matrix'>matrix</a>
+<a href='undocumented#Premultiply'>premultiplied</a> with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-This has the effect of scaling the drawing by (<a href='#SkCanvas_scale_sx'>sx</a>, <a href='#SkCanvas_scale_sy'>sy</a>) before transforming
-the result with <a href='#Matrix'>Matrix</a>.
+This has the effect of scaling the drawing by (<a href='#SkCanvas_scale()_sx'>sx</a>, <a href='#SkCanvas_scale()_sy'>sy</a>) before transforming
+the result with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_scale_sx'><code><strong>sx</strong></code></a></td>
- <td>amount to scale in x</td>
+ <td>amount to scale on x-axis</td>
</tr>
<tr> <td><a name='SkCanvas_scale_sy'><code><strong>sy</strong></code></a></td>
- <td>amount to scale in y</td>
+ <td>amount to scale on y-axis</td>
</tr>
</table>
@@ -2306,18 +2329,18 @@
void <a href='#SkCanvas_rotate'>rotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees)
</pre>
-Rotates <a href='#Matrix'>Matrix</a> by <a href='#SkCanvas_rotate_degrees'>degrees</a>. Positive <a href='#SkCanvas_rotate_degrees'>degrees</a> rotates clockwise.
+Rotates <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> by <a href='#SkCanvas_rotate()_degrees'>degrees</a>. Positive <a href='#SkCanvas_rotate()_degrees'>degrees</a> rotates clockwise.
-Mathematically, replaces <a href='#Matrix'>Matrix</a> with a rotation matrix
-<a href='undocumented#Premultiply'>Premultiplied</a> with <a href='#Matrix'>Matrix</a>.
+Mathematically, replaces <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with a rotation <a href='SkMatrix_Reference#Matrix'>matrix</a>
+<a href='undocumented#Premultiply'>premultiplied</a> with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-This has the effect of rotating the drawing by <a href='#SkCanvas_rotate_degrees'>degrees</a> before transforming
-the result with <a href='#Matrix'>Matrix</a>.
+This has the effect of rotating the drawing by <a href='#SkCanvas_rotate()_degrees'>degrees</a> before transforming
+the result with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_rotate_degrees'><code><strong>degrees</strong></code></a></td>
- <td>amount to rotate, in <a href='#SkCanvas_rotate_degrees'>degrees</a></td>
+ <td>amount to rotate, in <a href='#SkCanvas_rotate()_degrees'>degrees</a></td>
</tr>
</table>
@@ -2339,15 +2362,15 @@
void <a href='#SkCanvas_rotate'>rotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Rotates <a href='#Matrix'>Matrix</a> by <a href='#SkCanvas_rotate_2_degrees'>degrees</a> about a point at (<a href='#SkCanvas_rotate_2_px'>px</a>, <a href='#SkCanvas_rotate_2_py'>py</a>). Positive <a href='#SkCanvas_rotate_2_degrees'>degrees</a> rotates
+Rotates <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> by <a href='#SkCanvas_rotate_2_degrees'>degrees</a> about a <a href='SkPoint_Reference#Point'>point</a> at (<a href='#SkCanvas_rotate_2_px'>px</a>, <a href='#SkCanvas_rotate_2_py'>py</a>). Positive <a href='#SkCanvas_rotate_2_degrees'>degrees</a> rotates
clockwise.
-Mathematically, constructs a rotation matrix; <a href='undocumented#Premultiply'>Premultiplies</a> the rotation matrix by
-a translation matrix; then replaces <a href='#Matrix'>Matrix</a> with the resulting matrix
-<a href='undocumented#Premultiply'>Premultiplied</a> with <a href='#Matrix'>Matrix</a>.
+Mathematically, constructs a rotation <a href='SkMatrix_Reference#Matrix'>matrix</a>; <a href='undocumented#Premultiply'>premultiplies</a> the rotation <a href='SkMatrix_Reference#Matrix'>matrix</a> by
+a translation <a href='SkMatrix_Reference#Matrix'>matrix</a>; then replaces <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with the resulting <a href='SkMatrix_Reference#Matrix'>matrix</a>
+<a href='undocumented#Premultiply'>premultiplied</a> with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-This has the effect of rotating the drawing about a given point before
-transforming the result with <a href='#Matrix'>Matrix</a>.
+This has the effect of rotating the drawing about a given <a href='SkPoint_Reference#Point'>point</a> before
+transforming the result with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
### Parameters
@@ -2355,10 +2378,10 @@
<td>amount to rotate, in <a href='#SkCanvas_rotate_2_degrees'>degrees</a></td>
</tr>
<tr> <td><a name='SkCanvas_rotate_2_px'><code><strong>px</strong></code></a></td>
- <td>x-axis value of the point to rotate about</td>
+ <td>x-axis value of the <a href='SkPoint_Reference#Point'>point</a> to rotate about</td>
</tr>
<tr> <td><a name='SkCanvas_rotate_2_py'><code><strong>py</strong></code></a></td>
- <td>y-axis value of the point to rotate about</td>
+ <td>y-axis value of the <a href='SkPoint_Reference#Point'>point</a> to rotate about</td>
</tr>
</table>
@@ -2378,14 +2401,14 @@
void <a href='#SkCanvas_skew'>skew</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy)
</pre>
-Skews <a href='#Matrix'>Matrix</a> by <a href='#SkCanvas_skew_sx'>sx</a> on the x-axis and <a href='#SkCanvas_skew_sy'>sy</a> on the y-axis. A positive value of <a href='#SkCanvas_skew_sx'>sx</a>
-skews the drawing right as y-axis values increase; a positive value of <a href='#SkCanvas_skew_sy'>sy</a> skews
+Skews <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> by <a href='#SkCanvas_skew()_sx'>sx</a> on the x-axis and <a href='#SkCanvas_skew()_sy'>sy</a> on the y-axis. A positive value of <a href='#SkCanvas_skew()_sx'>sx</a>
+skews the drawing right as y-axis values increase; a positive value of <a href='#SkCanvas_skew()_sy'>sy</a> skews
the drawing down as x-axis values increase.
-Mathematically, replaces <a href='#Matrix'>Matrix</a> with a skew matrix <a href='undocumented#Premultiply'>Premultiplied</a> with <a href='#Matrix'>Matrix</a>.
+Mathematically, replaces <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with a skew <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='undocumented#Premultiply'>premultiplied</a> with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-This has the effect of skewing the drawing by (<a href='#SkCanvas_skew_sx'>sx</a>, <a href='#SkCanvas_skew_sy'>sy</a>) before transforming
-the result with <a href='#Matrix'>Matrix</a>.
+This has the effect of skewing the drawing by (<a href='#SkCanvas_skew()_sx'>sx</a>, <a href='#SkCanvas_skew()_sy'>sy</a>) before transforming
+the result with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
### Parameters
@@ -2403,7 +2426,7 @@
that shifts the geometry to the right as the y-axis values decrease.
Red text uses a positive skew on y-axis to shift the geometry down
as the x-axis values increase.
-Blue text combines <a href='#SkCanvas_skew_sx'>sx</a> and <a href='#SkCanvas_skew_sy'>sy</a> skew to rotate and scale.
+Blue text combines sx and sy skew to rotate and scale.
</div></fiddle-embed></div>
### See Also
@@ -2418,15 +2441,15 @@
void <a href='#SkCanvas_concat'>concat</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& matrix)
</pre>
-Replaces <a href='#Matrix'>Matrix</a> with <a href='#SkCanvas_concat_matrix'>matrix</a> <a href='undocumented#Premultiply'>Premultiplied</a> with existing <a href='#Matrix'>Matrix</a>.
+Replaces <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with <a href='#SkCanvas_concat()_matrix'>matrix</a> <a href='undocumented#Premultiply'>premultiplied</a> with existing <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-This has the effect of transforming the drawn geometry by <a href='#SkCanvas_concat_matrix'>matrix</a>, before
-transforming the result with existing <a href='#Matrix'>Matrix</a>.
+This has the effect of transforming the drawn geometry by <a href='#SkCanvas_concat()_matrix'>matrix</a>, before
+transforming the result with existing <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_concat_matrix'><code><strong>matrix</strong></code></a></td>
- <td><a href='#SkCanvas_concat_matrix'>matrix</a> to <a href='undocumented#Premultiply'>Premultiply</a> with existing <a href='#Matrix'>Matrix</a></td>
+ <td><a href='#SkCanvas_concat()_matrix'>matrix</a> to <a href='undocumented#Premultiply'>premultiply</a> with existing <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
</tr>
</table>
@@ -2446,13 +2469,13 @@
void <a href='#SkCanvas_setMatrix'>setMatrix</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& matrix)
</pre>
-Replaces <a href='#Matrix'>Matrix</a> with <a href='#SkCanvas_setMatrix_matrix'>matrix</a>.
-Unlike <a href='#SkCanvas_concat'>concat</a>(), any prior <a href='#SkCanvas_setMatrix_matrix'>matrix</a> state is overwritten.
+Replaces <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with <a href='#SkCanvas_setMatrix_matrix'>matrix</a>.
+Unlike <a href='#SkCanvas_concat'>concat()</a>, any prior <a href='#SkCanvas_setMatrix_matrix'>matrix</a> state is overwritten.
### Parameters
<table> <tr> <td><a name='SkCanvas_setMatrix_matrix'><code><strong>matrix</strong></code></a></td>
- <td><a href='#SkCanvas_setMatrix_matrix'>matrix</a> to copy, replacing existing <a href='#Matrix'>Matrix</a></td>
+ <td><a href='#SkCanvas_setMatrix_matrix'>matrix</a> to copy, replacing existing <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
</tr>
</table>
@@ -2472,8 +2495,8 @@
void <a href='#SkCanvas_resetMatrix'>resetMatrix</a>()
</pre>
-Sets <a href='#Matrix'>Matrix</a> to the identity matrix.
-Any prior matrix state is overwritten.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to the identity <a href='SkMatrix_Reference#Matrix'>matrix</a>.
+Any prior <a href='SkMatrix_Reference#Matrix'>matrix</a> state is overwritten.
### Example
@@ -2491,12 +2514,12 @@
const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='#SkCanvas_getTotalMatrix'>getTotalMatrix</a>() const
</pre>
-Returns <a href='#Matrix'>Matrix</a>.
-This does not account for translation by <a href='undocumented#Device'>Device</a> or <a href='SkSurface_Reference#Surface'>Surface</a>.
+Returns <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+This does not account for translation by <a href='undocumented#SkBaseDevice'>SkBaseDevice</a> or <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.
### Return Value
-<a href='#Matrix'>Matrix</a> in <a href='#Canvas'>Canvas</a>
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> in <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>
### Example
@@ -2561,20 +2584,20 @@
void <a href='#SkCanvas_clipRect'>clipRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='undocumented#SkClipOp'>SkClipOp</a> op, bool doAntiAlias)
</pre>
-Replaces <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 <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>.
+Replaces clip with the intersection or difference of clip and <a href='#SkCanvas_clipRect_rect'>rect</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='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
+before it is combined with clip.
### Parameters
<table> <tr> <td><a name='SkCanvas_clipRect_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> to combine with <a href='#Clip'>Clip</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to combine with clip</td>
</tr>
<tr> <td><a name='SkCanvas_clipRect_op'><code><strong>op</strong></code></a></td>
- <td><a href='undocumented#Clip_Op'>Clip Op</a> to apply to <a href='#Clip'>Clip</a></td>
+ <td><a href='undocumented#SkClipOp'>SkClipOp</a> to apply to clip</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 <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a></td>
+ <td>true if clip is to be <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a></td>
</tr>
</table>
@@ -2594,17 +2617,17 @@
void <a href='#SkCanvas_clipRect'>clipRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='undocumented#SkClipOp'>SkClipOp</a> op)
</pre>
-Replaces <a href='#Clip'>Clip</a> with the intersection or difference of <a href='#Clip'>Clip</a> and <a href='#SkCanvas_clipRect_2_rect'>rect</a>.
-Resulting <a href='#Clip'>Clip</a> is <a href='undocumented#Alias'>Aliased</a>; pixels are fully contained by the clip.
-<a href='#SkCanvas_clipRect_2_rect'>rect</a> is transformed by <a href='#Matrix'>Matrix</a> before it is combined with <a href='#Clip'>Clip</a>.
+Replaces clip with the intersection or difference of clip and <a href='#SkCanvas_clipRect_2_rect'>rect</a>.
+Resulting clip is <a href='undocumented#Alias'>aliased</a>; pixels are fully contained by the clip.
+<a href='#SkCanvas_clipRect_2_rect'>rect</a> is transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> before it is combined with clip.
### Parameters
<table> <tr> <td><a name='SkCanvas_clipRect_2_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> to combine with <a href='#Clip'>Clip</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to combine with clip</td>
</tr>
<tr> <td><a name='SkCanvas_clipRect_2_op'><code><strong>op</strong></code></a></td>
- <td><a href='undocumented#Clip_Op'>Clip Op</a> to apply to <a href='#Clip'>Clip</a></td>
+ <td><a href='undocumented#SkClipOp'>SkClipOp</a> to apply to clip</td>
</tr>
</table>
@@ -2624,18 +2647,18 @@
void <a href='#SkCanvas_clipRect'>clipRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, bool doAntiAlias = false)
</pre>
-Replaces <a href='#Clip'>Clip</a> with the intersection of <a href='#Clip'>Clip</a> and <a href='#SkCanvas_clipRect_3_rect'>rect</a>.
-Resulting <a href='#Clip'>Clip</a> is <a href='undocumented#Alias'>Aliased</a>; pixels are fully contained by the clip.
-<a href='#SkCanvas_clipRect_3_rect'>rect</a> is transformed by <a href='#Matrix'>Matrix</a>
-before it is combined with <a href='#Clip'>Clip</a>.
+Replaces clip with the intersection of clip and <a href='#SkCanvas_clipRect_3_rect'>rect</a>.
+Resulting clip is <a href='undocumented#Alias'>aliased</a>; pixels are fully contained by the clip.
+<a href='#SkCanvas_clipRect_3_rect'>rect</a> is transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
+before it is combined with clip.
### Parameters
<table> <tr> <td><a name='SkCanvas_clipRect_3_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> to combine with <a href='#Clip'>Clip</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to combine with clip</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 <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a></td>
+ <td>true if clip is to be <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a></td>
</tr>
</table>
@@ -2682,21 +2705,21 @@
void <a href='#SkCanvas_clipRRect'>clipRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, <a href='undocumented#SkClipOp'>SkClipOp</a> op, bool doAntiAlias)
</pre>
-Replaces <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 <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>.
+Replaces clip with the intersection or difference of clip and <a href='#SkCanvas_clipRRect_rrect'>rrect</a>,
+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='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
+before it is combined with clip.
### Parameters
<table> <tr> <td><a name='SkCanvas_clipRRect_rrect'><code><strong>rrect</strong></code></a></td>
- <td><a href='SkRRect_Reference#RRect'>Round Rect</a> to combine with <a href='#Clip'>Clip</a></td>
+ <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> to combine with clip</td>
</tr>
<tr> <td><a name='SkCanvas_clipRRect_op'><code><strong>op</strong></code></a></td>
- <td><a href='undocumented#Clip_Op'>Clip Op</a> to apply to <a href='#Clip'>Clip</a></td>
+ <td><a href='undocumented#SkClipOp'>SkClipOp</a> to apply to clip</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 <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a></td>
+ <td>true if clip is to be <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a></td>
</tr>
</table>
@@ -2716,17 +2739,17 @@
void <a href='#SkCanvas_clipRRect'>clipRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, <a href='undocumented#SkClipOp'>SkClipOp</a> op)
</pre>
-Replaces <a href='#Clip'>Clip</a> with the intersection or difference of <a href='#Clip'>Clip</a> and <a href='#SkCanvas_clipRRect_2_rrect'>rrect</a>.
-Resulting <a href='#Clip'>Clip</a> is <a href='undocumented#Alias'>Aliased</a>; pixels are fully contained by the clip.
-<a href='#SkCanvas_clipRRect_2_rrect'>rrect</a> is transformed by <a href='#Matrix'>Matrix</a> before it is combined with <a href='#Clip'>Clip</a>.
+Replaces clip with the intersection or difference of clip and <a href='#SkCanvas_clipRRect_2_rrect'>rrect</a>.
+Resulting clip is <a href='undocumented#Alias'>aliased</a>; pixels are fully contained by the clip.
+<a href='#SkCanvas_clipRRect_2_rrect'>rrect</a> is transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> before it is combined with clip.
### Parameters
<table> <tr> <td><a name='SkCanvas_clipRRect_2_rrect'><code><strong>rrect</strong></code></a></td>
- <td><a href='SkRRect_Reference#RRect'>Round Rect</a> to combine with <a href='#Clip'>Clip</a></td>
+ <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> to combine with clip</td>
</tr>
<tr> <td><a name='SkCanvas_clipRRect_2_op'><code><strong>op</strong></code></a></td>
- <td><a href='undocumented#Clip_Op'>Clip Op</a> to apply to <a href='#Clip'>Clip</a></td>
+ <td><a href='undocumented#SkClipOp'>SkClipOp</a> to apply to clip</td>
</tr>
</table>
@@ -2746,17 +2769,17 @@
void <a href='#SkCanvas_clipRRect'>clipRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, bool doAntiAlias = false)
</pre>
-Replaces <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 <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>.
+Replaces clip with the intersection of clip and <a href='#SkCanvas_clipRRect_3_rrect'>rrect</a>,
+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='SkMatrix_Reference#SkMatrix'>SkMatrix</a> before it is combined with clip.
### Parameters
<table> <tr> <td><a name='SkCanvas_clipRRect_3_rrect'><code><strong>rrect</strong></code></a></td>
- <td><a href='SkRRect_Reference#RRect'>Round Rect</a> to combine with <a href='#Clip'>Clip</a></td>
+ <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> to combine with clip</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 <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a></td>
+ <td>true if clip is to be <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a></td>
</tr>
</table>
@@ -2776,22 +2799,22 @@
void <a href='#SkCanvas_clipPath'>clipPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& path, <a href='undocumented#SkClipOp'>SkClipOp</a> op, bool doAntiAlias)
</pre>
-Replaces <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 <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_Overview#Contour'>Path Contour</a> overlaps
-itself or another <a href='SkPath_Overview#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>.
+Replaces clip with the intersection or difference of clip and <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#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> determines if <a href='#SkCanvas_clipPath_path'>path</a>
+describes the area inside or outside its <a href='SkPath_Overview#Contour'>contours</a>; and if <a href='SkPath_Overview#Contour'>path contour</a> overlaps
+itself or another <a href='SkPath_Overview#Contour'>path contour</a>, whether the overlaps form part of the area.
+<a href='#SkCanvas_clipPath_path'>path</a> is transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> before it is combined with clip.
### Parameters
<table> <tr> <td><a name='SkCanvas_clipPath_path'><code><strong>path</strong></code></a></td>
- <td><a href='SkPath_Reference#Path'>Path</a> to combine with <a href='#Clip'>Clip</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to combine with clip</td>
</tr>
<tr> <td><a name='SkCanvas_clipPath_op'><code><strong>op</strong></code></a></td>
- <td><a href='undocumented#Clip_Op'>Clip Op</a> to apply to <a href='#Clip'>Clip</a></td>
+ <td><a href='undocumented#SkClipOp'>SkClipOp</a> to apply to clip</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 <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a></td>
+ <td>true if clip is to be <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a></td>
</tr>
</table>
@@ -2816,21 +2839,21 @@
void <a href='#SkCanvas_clipPath'>clipPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& path, <a href='undocumented#SkClipOp'>SkClipOp</a> op)
</pre>
-Replaces <a href='#Clip'>Clip</a> with the intersection or difference of <a href='#Clip'>Clip</a> and <a href='#SkCanvas_clipPath_2_path'>path</a>.
-Resulting <a href='#Clip'>Clip</a> is <a href='undocumented#Alias'>Aliased</a>; pixels are fully contained by the clip.
-<a href='SkPath_Reference#Fill_Type'>Path Fill Type</a> determines if <a href='#SkCanvas_clipPath_2_path'>path</a>
-describes the area inside or outside its contours; and if <a href='SkPath_Overview#Contour'>Path Contour</a> overlaps
-itself or another <a href='SkPath_Overview#Contour'>Path Contour</a>, whether the overlaps form part of the area.
-<a href='#SkCanvas_clipPath_2_path'>path</a> is transformed by <a href='#Matrix'>Matrix</a>
-before it is combined with <a href='#Clip'>Clip</a>.
+Replaces clip with the intersection or difference of clip and <a href='#SkCanvas_clipPath_2_path'>path</a>.
+Resulting clip is <a href='undocumented#Alias'>aliased</a>; pixels are fully contained by the clip.
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> determines if <a href='#SkCanvas_clipPath_2_path'>path</a>
+describes the area inside or outside its <a href='SkPath_Overview#Contour'>contours</a>; and if <a href='SkPath_Overview#Contour'>path contour</a> overlaps
+itself or another <a href='SkPath_Overview#Contour'>path contour</a>, whether the overlaps form part of the area.
+<a href='#SkCanvas_clipPath_2_path'>path</a> is transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
+before it is combined with clip.
### Parameters
<table> <tr> <td><a name='SkCanvas_clipPath_2_path'><code><strong>path</strong></code></a></td>
- <td><a href='SkPath_Reference#Path'>Path</a> to combine with <a href='#Clip'>Clip</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to combine with clip</td>
</tr>
<tr> <td><a name='SkCanvas_clipPath_2_op'><code><strong>op</strong></code></a></td>
- <td><a href='undocumented#Clip_Op'>Clip Op</a> to apply to <a href='#Clip'>Clip</a></td>
+ <td><a href='undocumented#SkClipOp'>SkClipOp</a> to apply to clip</td>
</tr>
</table>
@@ -2853,20 +2876,20 @@
void <a href='#SkCanvas_clipPath'>clipPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& path, bool doAntiAlias = false)
</pre>
-Replaces <a href='#Clip'>Clip</a> with the intersection of <a href='#Clip'>Clip</a> and <a href='#SkCanvas_clipPath_3_path'>path</a>.
-Resulting <a href='#Clip'>Clip</a> is <a href='undocumented#Alias'>Aliased</a>; pixels are fully contained by the clip.
-<a href='SkPath_Reference#Fill_Type'>Path Fill Type</a> determines if <a href='#SkCanvas_clipPath_3_path'>path</a>
-describes the area inside or outside its contours; and if <a href='SkPath_Overview#Contour'>Path Contour</a> overlaps
-itself or another <a href='SkPath_Overview#Contour'>Path Contour</a>, whether the overlaps form part of the area.
-<a href='#SkCanvas_clipPath_3_path'>path</a> is transformed by <a href='#Matrix'>Matrix</a> before it is combined with <a href='#Clip'>Clip</a>.
+Replaces clip with the intersection of clip and <a href='#SkCanvas_clipPath_3_path'>path</a>.
+Resulting clip is <a href='undocumented#Alias'>aliased</a>; pixels are fully contained by the clip.
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> determines if <a href='#SkCanvas_clipPath_3_path'>path</a>
+describes the area inside or outside its <a href='SkPath_Overview#Contour'>contours</a>; and if <a href='SkPath_Overview#Contour'>path contour</a> overlaps
+itself or another <a href='SkPath_Overview#Contour'>path contour</a>, whether the overlaps form part of the area.
+<a href='#SkCanvas_clipPath_3_path'>path</a> is transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> before it is combined with clip.
### Parameters
<table> <tr> <td><a name='SkCanvas_clipPath_3_path'><code><strong>path</strong></code></a></td>
- <td><a href='SkPath_Reference#Path'>Path</a> to combine with <a href='#Clip'>Clip</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to combine with clip</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 <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a></td>
+ <td>true if clip is to be <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a></td>
</tr>
</table>
@@ -2901,17 +2924,17 @@
void <a href='#SkCanvas_clipRegion'>clipRegion</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& deviceRgn, <a href='undocumented#SkClipOp'>SkClipOp</a> op = <a href='undocumented#SkClipOp_kIntersect'>SkClipOp::kIntersect</a>)
</pre>
-Replaces <a href='#Clip'>Clip</a> with the intersection or difference of <a href='#Clip'>Clip</a> and <a href='SkRegion_Reference#Region'>Region</a> <a href='#SkCanvas_clipRegion_deviceRgn'>deviceRgn</a>.
-Resulting <a href='#Clip'>Clip</a> is <a href='undocumented#Alias'>Aliased</a>; pixels are fully contained by the clip.
-<a href='#SkCanvas_clipRegion_deviceRgn'>deviceRgn</a> is unaffected by <a href='#Matrix'>Matrix</a>.
+Replaces clip with the intersection or difference of clip and <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='#SkCanvas_clipRegion_deviceRgn'>deviceRgn</a>.
+Resulting clip is <a href='undocumented#Alias'>aliased</a>; pixels are fully contained by the clip.
+<a href='#SkCanvas_clipRegion_deviceRgn'>deviceRgn</a> is unaffected by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_clipRegion_deviceRgn'><code><strong>deviceRgn</strong></code></a></td>
- <td><a href='SkRegion_Reference#Region'>Region</a> to combine with <a href='#Clip'>Clip</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to combine with clip</td>
</tr>
<tr> <td><a name='SkCanvas_clipRegion_op'><code><strong>op</strong></code></a></td>
- <td><a href='undocumented#Clip_Op'>Clip Op</a> to apply to <a href='#Clip'>Clip</a></td>
+ <td><a href='undocumented#SkClipOp'>SkClipOp</a> to apply to clip</td>
</tr>
</table>
@@ -2934,21 +2957,21 @@
bool <a href='#SkCanvas_quickReject'>quickReject</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect) const
</pre>
-Returns true if <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_quickReject_rect'>rect</a>, transformed by <a href='#Matrix'>Matrix</a>, can be quickly determined to be
-outside of <a href='#Clip'>Clip</a>. May return false even though <a href='#SkCanvas_quickReject_rect'>rect</a> is outside of <a href='#Clip'>Clip</a>.
+Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_quickReject_rect'>rect</a>, transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, can be quickly determined to be
+outside of clip. May return false even though <a href='#SkCanvas_quickReject_rect'>rect</a> is outside of clip.
Use to check if an area to be drawn is clipped out, to skip subsequent draw calls.
### Parameters
<table> <tr> <td><a name='SkCanvas_quickReject_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> to compare with <a href='#Clip'>Clip</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to compare with clip</td>
</tr>
</table>
### Return Value
-true if <a href='#SkCanvas_quickReject_rect'>rect</a>, transformed by <a href='#Matrix'>Matrix</a>, does not intersect <a href='#Clip'>Clip</a>
+true if <a href='#SkCanvas_quickReject_rect'>rect</a>, transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, does not intersect clip
### Example
@@ -2975,21 +2998,21 @@
bool <a href='#SkCanvas_quickReject'>quickReject</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& path) const
</pre>
-Returns true if <a href='#SkCanvas_quickReject_2_path'>path</a>, transformed by <a href='#Matrix'>Matrix</a>, can be quickly determined to be
-outside of <a href='#Clip'>Clip</a>. May return false even though <a href='#SkCanvas_quickReject_2_path'>path</a> is outside of <a href='#Clip'>Clip</a>.
+Returns true if <a href='#SkCanvas_quickReject_2_path'>path</a>, transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, can be quickly determined to be
+outside of clip. May return false even though <a href='#SkCanvas_quickReject_2_path'>path</a> is outside of clip.
Use to check if an area to be drawn is clipped out, to skip subsequent draw calls.
### Parameters
<table> <tr> <td><a name='SkCanvas_quickReject_2_path'><code><strong>path</strong></code></a></td>
- <td><a href='SkPath_Reference#Path'>Path</a> to compare with <a href='#Clip'>Clip</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to compare with clip</td>
</tr>
</table>
### Return Value
-true if <a href='#SkCanvas_quickReject_2_path'>path</a>, transformed by <a href='#Matrix'>Matrix</a>, does not intersect <a href='#Clip'>Clip</a>
+true if <a href='#SkCanvas_quickReject_2_path'>path</a>, transformed by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, does not intersect clip
### Example
@@ -3016,15 +3039,15 @@
<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_getLocalClipBounds'>getLocalClipBounds</a>() const
</pre>
-Returns bounds of <a href='#Clip'>Clip</a>, transformed by inverse of <a href='#Matrix'>Matrix</a>. If <a href='#Clip'>Clip</a> is empty,
-return <a href='SkRect_Reference#SkRect_MakeEmpty'>SkRect::MakeEmpty</a>, where all <a href='SkRect_Reference#Rect'>Rect</a> sides equal zero.
+Returns bounds of clip, transformed by inverse of <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. If clip is empty,
+return <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_MakeEmpty'>MakeEmpty</a>, where all <a href='SkRect_Reference#SkRect'>SkRect</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 <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a>.
+<a href='SkRect_Reference#SkRect'>SkRect</a> returned is outset by one to account for partial <a href='undocumented#Pixel'>pixel</a> coverage if clip
+is <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a>.
### Return Value
-bounds of <a href='#Clip'>Clip</a> in local coordinates
+bounds of clip in local coordinates
### Example
@@ -3056,22 +3079,22 @@
bool <a href='#SkCanvas_getLocalClipBounds'>getLocalClipBounds</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* bounds) const
</pre>
-Returns <a href='#SkCanvas_getLocalClipBounds_2_bounds'>bounds</a> of <a href='#Clip'>Clip</a>, transformed by inverse of <a href='#Matrix'>Matrix</a>. If <a href='#Clip'>Clip</a> is empty,
-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.
+Returns <a href='#SkCanvas_getLocalClipBounds_2_bounds'>bounds</a> of clip, transformed by inverse of <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. If clip is empty,
+return false, and set <a href='#SkCanvas_getLocalClipBounds_2_bounds'>bounds</a> to <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_MakeEmpty'>MakeEmpty</a>, where all <a href='SkRect_Reference#SkRect'>SkRect</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 <a href='SkPaint_Reference#Anti_Alias'>Anti Aliased</a>.
+<a href='#SkCanvas_getLocalClipBounds_2_bounds'>bounds</a> is outset by one to account for partial <a href='undocumented#Pixel'>pixel</a> coverage if clip
+is <a href='SkPaint_Reference#Anti_Alias'>anti-aliased</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_getLocalClipBounds_2_bounds'><code><strong>bounds</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> of <a href='#Clip'>Clip</a> in local coordinates</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> of clip in local coordinates</td>
</tr>
</table>
### Return Value
-true if <a href='#Clip'>Clip</a> <a href='#SkCanvas_getLocalClipBounds_2_bounds'>bounds</a> is not empty
+true if clip <a href='#SkCanvas_getLocalClipBounds_2_bounds'>bounds</a> is not empty
### Example
@@ -3098,14 +3121,14 @@
<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_getDeviceClipBounds'>getDeviceClipBounds</a>() const
</pre>
-Returns <a href='SkIRect_Reference#IRect'>IRect</a> bounds of <a href='#Clip'>Clip</a>, unaffected by <a href='#Matrix'>Matrix</a>. If <a href='#Clip'>Clip</a> is empty,
-return <a href='SkRect_Reference#SkRect_MakeEmpty'>SkRect::MakeEmpty</a>, where all <a href='SkRect_Reference#Rect'>Rect</a> sides equal zero.
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> bounds of clip, unaffected by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. If clip is empty,
+return <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_MakeEmpty'>MakeEmpty</a>, where all <a href='SkRect_Reference#SkRect'>SkRect</a> sides equal zero.
-Unlike <a href='#SkCanvas_getLocalClipBounds'>getLocalClipBounds</a>, returned <a href='SkIRect_Reference#IRect'>IRect</a> is not outset.
+Unlike <a href='#SkCanvas_getLocalClipBounds'>getLocalClipBounds</a>(), returned <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is not outset.
### Return Value
-bounds of <a href='#Clip'>Clip</a> in <a href='undocumented#Device'>Device</a> coordinates
+bounds of clip in <a href='undocumented#SkBaseDevice'>SkBaseDevice</a> coordinates
### Example
@@ -3137,21 +3160,21 @@
bool <a href='#SkCanvas_getDeviceClipBounds'>getDeviceClipBounds</a>(<a href='SkIRect_Reference#SkIRect'>SkIRect</a>* bounds) const
</pre>
-Returns <a href='SkIRect_Reference#IRect'>IRect</a> <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>bounds</a> of <a href='#Clip'>Clip</a>, unaffected by <a href='#Matrix'>Matrix</a>. If <a href='#Clip'>Clip</a> is empty,
-return false, and set <a href='#SkCanvas_getDeviceClipBounds_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.
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>bounds</a> of clip, unaffected by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. If clip is empty,
+return false, and set <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>bounds</a> to <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_MakeEmpty'>MakeEmpty</a>, where all <a href='SkRect_Reference#SkRect'>SkRect</a> sides equal zero.
-Unlike <a href='#SkCanvas_getLocalClipBounds'>getLocalClipBounds</a>, <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>bounds</a> is not outset.
+Unlike <a href='#SkCanvas_getLocalClipBounds'>getLocalClipBounds</a>(), <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>bounds</a> is not outset.
### Parameters
<table> <tr> <td><a name='SkCanvas_getDeviceClipBounds_2_bounds'><code><strong>bounds</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> of <a href='#Clip'>Clip</a> in device coordinates</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> of clip in <a href='undocumented#Device'>device</a> coordinates</td>
</tr>
</table>
### Return Value
-true if <a href='#Clip'>Clip</a> <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>bounds</a> is not empty
+true if clip <a href='#SkCanvas_getDeviceClipBounds_2_bounds'>bounds</a> is not empty
### Example
@@ -3180,13 +3203,13 @@
void <a href='#SkCanvas_drawColor'>drawColor</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> color, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode = <a href='SkBlendMode_Reference#SkBlendMode_kSrcOver'>SkBlendMode::kSrcOver</a>)
</pre>
-Fills <a href='#Clip'>Clip</a> with <a href='SkColor_Reference#Color'>Color</a> <a href='#SkCanvas_drawColor_color'>color</a>.
+Fills clip with <a href='#SkCanvas_drawColor_color'>color color</a>.
<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> ARGB</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='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> used to combine source <a href='#SkCanvas_drawColor_color'>color</a> and destination</td>
@@ -3209,13 +3232,13 @@
void <a href='#SkCanvas_clear'>clear</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> color)
</pre>
-Fills <a href='#Clip'>Clip</a> with <a href='SkColor_Reference#Color'>Color</a> <a href='#SkCanvas_clear_color'>color</a> using <a href='SkBlendMode_Reference#SkBlendMode_kSrc'>SkBlendMode::kSrc</a>.
-This has the effect of replacing all pixels contained by <a href='#Clip'>Clip</a> with <a href='#SkCanvas_clear_color'>color</a>.
+Fills clip with <a href='#SkCanvas_clear()_color'>color color</a> using <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrc'>kSrc</a>.
+This has the effect of replacing all pixels contained by clip with <a href='#SkCanvas_clear()_color'>color</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_clear_color'><code><strong>color</strong></code></a></td>
- <td><a href='undocumented#Unpremultiply'>Unpremultiplied</a> ARGB</td>
+ <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> ARGB</td>
</tr>
</table>
@@ -3235,17 +3258,17 @@
void <a href='#SkCanvas_discard'>discard</a>()
</pre>
-Makes <a href='#Canvas'>Canvas</a> contents undefined. Subsequent calls that read <a href='#Canvas'>Canvas</a> pixels,
-such as drawing with <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, return undefined results. <a href='#SkCanvas_discard'>discard</a>() does
-not change <a href='#Clip'>Clip</a> or <a href='#Matrix'>Matrix</a>.
+Makes <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> contents undefined. Subsequent calls that read <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> pixels,
+such as drawing with <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, return undefined results. <a href='#SkCanvas_discard'>discard()</a> does
+not change clip or <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
-<a href='#SkCanvas_discard'>discard</a>() may do nothing, depending on the implementation of <a href='SkSurface_Reference#Surface'>Surface</a> or <a href='undocumented#Device'>Device</a>
-that created <a href='#Canvas'>Canvas</a>.
+<a href='#SkCanvas_discard'>discard()</a> may do nothing, depending on the implementation of <a href='SkSurface_Reference#SkSurface'>SkSurface</a> or <a href='undocumented#SkBaseDevice'>SkBaseDevice</a>
+that created <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>.
-<a href='#SkCanvas_discard'>discard</a>() allows optimized performance on subsequent draws by removing
-cached data associated with <a href='SkSurface_Reference#Surface'>Surface</a> or <a href='undocumented#Device'>Device</a>.
-It is not necessary to call <a href='#SkCanvas_discard'>discard</a>() once done with <a href='#Canvas'>Canvas</a>;
-any cached data is deleted when owning <a href='SkSurface_Reference#Surface'>Surface</a> or <a href='undocumented#Device'>Device</a> is deleted.
+<a href='#SkCanvas_discard'>discard()</a> allows optimized performance on subsequent draws by removing
+cached <a href='undocumented#Data'>data</a> associated with <a href='SkSurface_Reference#SkSurface'>SkSurface</a> or <a href='undocumented#SkBaseDevice'>SkBaseDevice</a>.
+It is not necessary to call <a href='#SkCanvas_discard'>discard()</a> once done with <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>;
+any cached <a href='undocumented#Data'>data</a> is deleted when owning <a href='SkSurface_Reference#SkSurface'>SkSurface</a> or <a href='undocumented#SkBaseDevice'>SkBaseDevice</a> is deleted.
### See Also
@@ -3259,14 +3282,14 @@
void <a href='#SkCanvas_drawPaint'>drawPaint</a>(const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Fills <a href='#Clip'>Clip</a> with <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawPaint_paint'>paint</a>. <a href='SkPaint_Reference#Paint'>Paint</a> components <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Shader'>Shader</a>,
-<a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> affect drawing;
-<a href='undocumented#Path_Effect'>Path Effect</a> in <a href='#SkCanvas_drawPaint_paint'>paint</a> is ignored.
+Fills clip with <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPaint_paint'>paint</a>. <a href='SkPaint_Reference#SkPaint'>SkPaint</a> components <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkShader'>SkShader</a>,
+<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> affect drawing;
+<a href='undocumented#SkPathEffect'>SkPathEffect</a> in <a href='#SkCanvas_drawPaint_paint'>paint</a> is ignored.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawPaint_paint'><code><strong>paint</strong></code></a></td>
- <td>graphics state used to fill <a href='#Canvas'>Canvas</a></td>
+ <td>graphics state used to fill <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a></td>
</tr>
</table>
@@ -3339,43 +3362,43 @@
void <a href='#SkCanvas_drawPoints'>drawPoints</a>(<a href='#SkCanvas_PointMode'>PointMode</a> mode, size_t count, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws <a href='#SkCanvas_drawPoints_pts'>pts</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a> and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawPoints_paint'>paint</a>.
-<a href='#SkCanvas_drawPoints_count'>count</a> is the number of points; if <a href='#SkCanvas_drawPoints_count'>count</a> is less than one, has no effect.
-<a href='#SkCanvas_drawPoints_mode'>mode</a> may be one of: <a href='#SkCanvas_kPoints_PointMode'>kPoints PointMode</a>, <a href='#SkCanvas_kLines_PointMode'>kLines PointMode</a>, or <a href='#SkCanvas_kPolygon_PointMode'>kPolygon PointMode</a>.
+Draws <a href='#SkCanvas_drawPoints_pts'>pts</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPoints_paint'>paint</a>.
+<a href='#SkCanvas_drawPoints_count'>count</a> is the number of <a href='SkPoint_Reference#Point'>points</a>; if <a href='#SkCanvas_drawPoints_count'>count</a> is less than one, has no effect.
+<a href='#SkCanvas_drawPoints_mode'>mode</a> may be one of: <a href='#SkCanvas_kPoints_PointMode'>kPoints_PointMode</a>, <a href='#SkCanvas_kLines_PointMode'>kLines_PointMode</a>, or <a href='#SkCanvas_kPolygon_PointMode'>kPolygon_PointMode</a>.
-If <a href='#SkCanvas_drawPoints_mode'>mode</a> is <a href='#SkCanvas_kPoints_PointMode'>kPoints PointMode</a>, the shape of point drawn depends on <a href='#SkCanvas_drawPoints_paint'>paint</a>
-<a href='SkPaint_Reference#Stroke_Cap'>Paint Stroke Cap</a>. If <a href='#SkCanvas_drawPoints_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint_kRound_Cap'>SkPaint::kRound Cap</a>, each point draws a
-circle of diameter <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a>. If <a href='#SkCanvas_drawPoints_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint_kSquare_Cap'>SkPaint::kSquare Cap</a>
-or <a href='SkPaint_Reference#SkPaint_kButt_Cap'>SkPaint::kButt Cap</a>, each point draws a square of width and height
-<a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a>.
+If <a href='#SkCanvas_drawPoints_mode'>mode</a> is <a href='#SkCanvas_kPoints_PointMode'>kPoints_PointMode</a>, the shape of <a href='SkPoint_Reference#Point'>point</a> drawn depends on <a href='#SkCanvas_drawPoints_paint'>paint</a>
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a>. If <a href='#SkCanvas_drawPoints_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kRound_Cap'>kRound_Cap</a>, each <a href='SkPoint_Reference#Point'>point</a> draws a
+<a href='undocumented#Circle'>circle</a> of diameter <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width. If <a href='#SkCanvas_drawPoints_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kSquare_Cap'>kSquare_Cap</a>
+or <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kButt_Cap'>kButt_Cap</a>, each <a href='SkPoint_Reference#Point'>point</a> draws a square of width and height
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width.
-If <a href='#SkCanvas_drawPoints_mode'>mode</a> is <a href='#SkCanvas_kLines_PointMode'>kLines PointMode</a>, each pair of points draws a line segment.
-One line is drawn for every two points; each point is used once. If <a href='#SkCanvas_drawPoints_count'>count</a> is odd,
-the final point is ignored.
+If <a href='#SkCanvas_drawPoints_mode'>mode</a> is <a href='#SkCanvas_kLines_PointMode'>kLines_PointMode</a>, each pair of <a href='SkPoint_Reference#Point'>points</a> draws a <a href='undocumented#Line'>line</a> segment.
+One <a href='undocumented#Line'>line</a> is drawn for every two <a href='SkPoint_Reference#Point'>points</a>; each <a href='SkPoint_Reference#Point'>point</a> is used once. If <a href='#SkCanvas_drawPoints_count'>count</a> is odd,
+the final <a href='SkPoint_Reference#Point'>point</a> is ignored.
-If <a href='#SkCanvas_drawPoints_mode'>mode</a> is <a href='#SkCanvas_kPolygon_PointMode'>kPolygon PointMode</a>, each adjacent pair of points draws a line segment.
-<a href='#SkCanvas_drawPoints_count'>count</a> minus one lines are drawn; the first and last point are used once.
+If <a href='#SkCanvas_drawPoints_mode'>mode</a> is <a href='#SkCanvas_kPolygon_PointMode'>kPolygon_PointMode</a>, each adjacent pair of <a href='SkPoint_Reference#Point'>points</a> draws a <a href='undocumented#Line'>line</a> segment.
+<a href='#SkCanvas_drawPoints_count'>count</a> minus one <a href='undocumented#Line'>lines</a> are drawn; the first and last <a href='SkPoint_Reference#Point'>point</a> are used once.
-Each line segment respects <a href='#SkCanvas_drawPoints_paint'>paint</a> <a href='SkPaint_Reference#Stroke_Cap'>Paint Stroke Cap</a> and <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a>.
-<a href='SkPaint_Reference#Style'>Paint Style</a> is ignored, as if were set to <a href='SkPaint_Reference#SkPaint_kStroke_Style'>SkPaint::kStroke Style</a>.
+Each <a href='undocumented#Line'>line</a> segment respects <a href='#SkCanvas_drawPoints_paint'>paint</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width.
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> is ignored, as if were set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>.
Always draws each element one at a time; is not affected by
-<a href='SkPaint_Reference#Stroke_Join'>Paint Stroke Join</a>, and unlike <a href='#SkCanvas_drawPath'>drawPath</a>, does not create a mask from all points
-and lines before drawing.
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a>, and unlike <a href='#SkCanvas_drawPath'>drawPath</a>(), does not create a mask from all <a href='SkPoint_Reference#Point'>points</a>
+and <a href='undocumented#Line'>lines</a> before drawing.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawPoints_mode'><code><strong>mode</strong></code></a></td>
- <td>whether <a href='#SkCanvas_drawPoints_pts'>pts</a> draws points or lines</td>
+ <td>whether <a href='#SkCanvas_drawPoints_pts'>pts</a> draws <a href='SkPoint_Reference#Point'>points</a> or <a href='undocumented#Line'>lines</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawPoints_count'><code><strong>count</strong></code></a></td>
- <td>number of points in the array</td>
+ <td>number of <a href='SkPoint_Reference#Point'>points</a> in the array</td>
</tr>
<tr> <td><a name='SkCanvas_drawPoints_pts'><code><strong>pts</strong></code></a></td>
- <td>array of points to draw</td>
+ <td>array of <a href='SkPoint_Reference#Point'>points</a> to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawPoints_paint'><code><strong>paint</strong></code></a></td>
- <td>stroke, blend, color, and so on, used to draw</td>
+ <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3416,24 +3439,24 @@
void <a href='#SkCanvas_drawPoint'>drawPoint</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws point at (<a href='#SkCanvas_drawPoint_x'>x</a>, <a href='#SkCanvas_drawPoint_y'>y</a>) using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a> and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawPoint_paint'>paint</a>.
+Draws <a href='SkPoint_Reference#Point'>point</a> at (<a href='#SkCanvas_drawPoint_x'>x</a>, <a href='#SkCanvas_drawPoint_y'>y</a>) using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPoint_paint'>paint</a>.
-The shape of point drawn depends on <a href='#SkCanvas_drawPoint_paint'>paint</a> <a href='SkPaint_Reference#Stroke_Cap'>Paint Stroke Cap</a>.
-If <a href='#SkCanvas_drawPoint_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint_kRound_Cap'>SkPaint::kRound Cap</a>, draw a circle of diameter
-<a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a>. If <a href='#SkCanvas_drawPoint_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint_kSquare_Cap'>SkPaint::kSquare Cap</a> or <a href='SkPaint_Reference#SkPaint_kButt_Cap'>SkPaint::kButt Cap</a>,
-draw a square of width and height <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a>.
-<a href='SkPaint_Reference#Style'>Paint Style</a> is ignored, as if were set to <a href='SkPaint_Reference#SkPaint_kStroke_Style'>SkPaint::kStroke Style</a>.
+The shape of <a href='SkPoint_Reference#Point'>point</a> drawn depends on <a href='#SkCanvas_drawPoint_paint'>paint</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a>.
+If <a href='#SkCanvas_drawPoint_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kRound_Cap'>kRound_Cap</a>, draw a <a href='undocumented#Circle'>circle</a> of diameter
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width. If <a href='#SkCanvas_drawPoint_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kSquare_Cap'>kSquare_Cap</a> or <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kButt_Cap'>kButt_Cap</a>,
+draw a square of width and height <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width.
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> is ignored, as if were set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawPoint_x'><code><strong>x</strong></code></a></td>
- <td>left edge of circle or square</td>
+ <td>left edge of <a href='undocumented#Circle'>circle</a> or square</td>
</tr>
<tr> <td><a name='SkCanvas_drawPoint_y'><code><strong>y</strong></code></a></td>
- <td>top edge of circle or square</td>
+ <td>top edge of <a href='undocumented#Circle'>circle</a> or square</td>
</tr>
<tr> <td><a name='SkCanvas_drawPoint_paint'><code><strong>paint</strong></code></a></td>
- <td>stroke, blend, color, and so on, used to draw</td>
+ <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3453,21 +3476,21 @@
void <a href='#SkCanvas_drawPoint'>drawPoint</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> p, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws point <a href='#SkCanvas_drawPoint_2_p'>p</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a> and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawPoint_2_paint'>paint</a>.
+Draws <a href='SkPoint_Reference#Point'>point</a> <a href='#SkCanvas_drawPoint_2_p'>p</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPoint_2_paint'>paint</a>.
-The shape of point drawn depends on <a href='#SkCanvas_drawPoint_2_paint'>paint</a> <a href='SkPaint_Reference#Stroke_Cap'>Paint Stroke Cap</a>.
-If <a href='#SkCanvas_drawPoint_2_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint_kRound_Cap'>SkPaint::kRound Cap</a>, draw a circle of diameter
-<a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a>. If <a href='#SkCanvas_drawPoint_2_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint_kSquare_Cap'>SkPaint::kSquare Cap</a> or <a href='SkPaint_Reference#SkPaint_kButt_Cap'>SkPaint::kButt Cap</a>,
-draw a square of width and height <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a>.
-<a href='SkPaint_Reference#Style'>Paint Style</a> is ignored, as if were set to <a href='SkPaint_Reference#SkPaint_kStroke_Style'>SkPaint::kStroke Style</a>.
+The shape of <a href='SkPoint_Reference#Point'>point</a> drawn depends on <a href='#SkCanvas_drawPoint_2_paint'>paint</a> <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a>.
+If <a href='#SkCanvas_drawPoint_2_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kRound_Cap'>kRound_Cap</a>, draw a <a href='undocumented#Circle'>circle</a> of diameter
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width. If <a href='#SkCanvas_drawPoint_2_paint'>paint</a> is set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kSquare_Cap'>kSquare_Cap</a> or <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kButt_Cap'>kButt_Cap</a>,
+draw a square of width and height <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width.
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> is ignored, as if were set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawPoint_2_p'><code><strong>p</strong></code></a></td>
- <td>top-left edge of circle or square</td>
+ <td>top-left edge of <a href='undocumented#Circle'>circle</a> or square</td>
</tr>
<tr> <td><a name='SkCanvas_drawPoint_2_paint'><code><strong>paint</strong></code></a></td>
- <td>stroke, blend, color, and so on, used to draw</td>
+ <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3487,27 +3510,27 @@
void <a href='#SkCanvas_drawLine'>drawLine</a>(<a href='undocumented#SkScalar'>SkScalar</a> x0, <a href='undocumented#SkScalar'>SkScalar</a> y0, <a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws line segment from (<a href='#SkCanvas_drawLine_x0'>x0</a>, <a href='#SkCanvas_drawLine_y0'>y0</a>) to (<a href='#SkCanvas_drawLine_x1'>x1</a>, <a href='#SkCanvas_drawLine_y1'>y1</a>) using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawLine_paint'>paint</a>.
-In <a href='#SkCanvas_drawLine_paint'>paint</a>: <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness;
-<a href='SkPaint_Reference#Stroke_Cap'>Paint Stroke Cap</a> draws the end rounded or square;
-<a href='SkPaint_Reference#Style'>Paint Style</a> is ignored, as if were set to <a href='SkPaint_Reference#SkPaint_kStroke_Style'>SkPaint::kStroke Style</a>.
+Draws <a href='undocumented#Line'>line</a> segment from (<a href='#SkCanvas_drawLine_x0'>x0</a>, <a href='#SkCanvas_drawLine_y0'>y0</a>) to (<a href='#SkCanvas_drawLine_x1'>x1</a>, <a href='#SkCanvas_drawLine_y1'>y1</a>) using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawLine_paint'>paint</a>.
+In <a href='#SkCanvas_drawLine_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness;
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> draws the end rounded or square;
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> is ignored, as if were set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawLine_x0'><code><strong>x0</strong></code></a></td>
- <td>start of line segment on x-axis</td>
+ <td>start of <a href='undocumented#Line'>line</a> segment on x-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawLine_y0'><code><strong>y0</strong></code></a></td>
- <td>start of line segment on y-axis</td>
+ <td>start of <a href='undocumented#Line'>line</a> segment on y-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawLine_x1'><code><strong>x1</strong></code></a></td>
- <td>end of line segment on x-axis</td>
+ <td>end of <a href='undocumented#Line'>line</a> segment on x-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawLine_y1'><code><strong>y1</strong></code></a></td>
- <td>end of line segment on y-axis</td>
+ <td>end of <a href='undocumented#Line'>line</a> segment on y-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawLine_paint'><code><strong>paint</strong></code></a></td>
- <td>stroke, blend, color, and so on, used to draw</td>
+ <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3527,21 +3550,21 @@
void <a href='#SkCanvas_drawLine'>drawLine</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> p0, <a href='SkPoint_Reference#SkPoint'>SkPoint</a> p1, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws line segment from <a href='#SkCanvas_drawLine_2_p0'>p0</a> to <a href='#SkCanvas_drawLine_2_p1'>p1</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawLine_2_paint'>paint</a>.
-In <a href='#SkCanvas_drawLine_2_paint'>paint</a>: <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness;
-<a href='SkPaint_Reference#Stroke_Cap'>Paint Stroke Cap</a> draws the end rounded or square;
-<a href='SkPaint_Reference#Style'>Paint Style</a> is ignored, as if were set to <a href='SkPaint_Reference#SkPaint_kStroke_Style'>SkPaint::kStroke Style</a>.
+Draws <a href='undocumented#Line'>line</a> segment from <a href='#SkCanvas_drawLine_2_p0'>p0</a> to <a href='#SkCanvas_drawLine_2_p1'>p1</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawLine_2_paint'>paint</a>.
+In <a href='#SkCanvas_drawLine_2_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness;
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> draws the end rounded or square;
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> is ignored, as if were set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawLine_2_p0'><code><strong>p0</strong></code></a></td>
- <td>start of line segment</td>
+ <td>start of <a href='undocumented#Line'>line</a> segment</td>
</tr>
<tr> <td><a name='SkCanvas_drawLine_2_p1'><code><strong>p1</strong></code></a></td>
- <td>end of line segment</td>
+ <td>end of <a href='undocumented#Line'>line</a> segment</td>
</tr>
<tr> <td><a name='SkCanvas_drawLine_2_paint'><code><strong>paint</strong></code></a></td>
- <td>stroke, blend, color, and so on, used to draw</td>
+ <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3561,10 +3584,10 @@
void <a href='#SkCanvas_drawRect'>drawRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawRect_rect'>rect</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawRect_paint'>paint</a>.
-In <a href='#SkCanvas_drawRect_paint'>paint</a>: <a href='SkPaint_Reference#Style'>Paint Style</a> determines if rectangle is stroked or filled;
-if stroked, <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness, and
-<a href='SkPaint_Reference#Stroke_Join'>Paint Stroke Join</a> draws the corners rounded or square.
+Draws <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawRect_rect'>rect</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawRect_paint'>paint</a>.
+In <a href='#SkCanvas_drawRect_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> determines if rectangle is stroked or filled;
+if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness, and
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> draws the corners rounded or square.
### Parameters
@@ -3572,7 +3595,7 @@
<td>rectangle to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawRect_paint'><code><strong>paint</strong></code></a></td>
- <td>stroke or fill, blend, color, and so on, used to draw</td>
+ <td>stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3592,10 +3615,10 @@
void <a href='#SkCanvas_drawIRect'>drawIRect</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& rect, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws <a href='SkIRect_Reference#IRect'>IRect</a> <a href='#SkCanvas_drawIRect_rect'>rect</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawIRect_paint'>paint</a>.
-In <a href='#SkCanvas_drawIRect_paint'>paint</a>: <a href='SkPaint_Reference#Style'>Paint Style</a> determines if rectangle is stroked or filled;
-if stroked, <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness, and
-<a href='SkPaint_Reference#Stroke_Join'>Paint Stroke Join</a> draws the corners rounded or square.
+Draws <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_drawIRect_rect'>rect</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawIRect_paint'>paint</a>.
+In <a href='#SkCanvas_drawIRect_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> determines if rectangle is stroked or filled;
+if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness, and
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> draws the corners rounded or square.
### Parameters
@@ -3603,7 +3626,7 @@
<td>rectangle to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawIRect_paint'><code><strong>paint</strong></code></a></td>
- <td>stroke or fill, blend, color, and so on, used to draw</td>
+ <td>stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3623,10 +3646,10 @@
void <a href='#SkCanvas_drawRegion'>drawRegion</a>(const <a href='SkRegion_Reference#SkRegion'>SkRegion</a>& region, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws <a href='SkRegion_Reference#Region'>Region</a> <a href='#SkCanvas_drawRegion_region'>region</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawRegion_paint'>paint</a>.
-In <a href='#SkCanvas_drawRegion_paint'>paint</a>: <a href='SkPaint_Reference#Style'>Paint Style</a> determines if rectangle is stroked or filled;
-if stroked, <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness, and
-<a href='SkPaint_Reference#Stroke_Join'>Paint Stroke Join</a> draws the corners rounded or square.
+Draws <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='#SkCanvas_drawRegion_region'>region</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawRegion_paint'>paint</a>.
+In <a href='#SkCanvas_drawRegion_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> determines if rectangle is stroked or filled;
+if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness, and
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> draws the corners rounded or square.
### Parameters
@@ -3634,7 +3657,7 @@
<td><a href='#SkCanvas_drawRegion_region'>region</a> to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawRegion_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> stroke or fill, blend, color, and so on, used to draw</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3654,17 +3677,17 @@
void <a href='#SkCanvas_drawOval'>drawOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws <a href='undocumented#Oval'>Oval</a> <a href='#SkCanvas_drawOval_oval'>oval</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a>.
-In <a href='#SkCanvas_drawOval_paint'>paint</a>: <a href='SkPaint_Reference#Style'>Paint Style</a> determines if <a href='undocumented#Oval'>Oval</a> is stroked or filled;
-if stroked, <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness.
+Draws <a href='#SkCanvas_drawOval_oval'>oval</a> <a href='#SkCanvas_drawOval_oval'>oval</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a>.
+In <a href='#SkCanvas_drawOval_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> determines if <a href='#SkCanvas_drawOval_oval'>oval</a> is stroked or filled;
+if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawOval_oval'><code><strong>oval</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> bounds of <a href='undocumented#Oval'>Oval</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> bounds of <a href='#SkCanvas_drawOval_oval'>oval</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawOval_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> stroke or fill, blend, color, and so on, used to draw</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3684,20 +3707,20 @@
void <a href='#SkCanvas_drawRRect'>drawRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws <a href='SkRRect_Reference#RRect'>Round Rect</a> <a href='#SkCanvas_drawRRect_rrect'>rrect</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawRRect_paint'>paint</a>.
-In <a href='#SkCanvas_drawRRect_paint'>paint</a>: <a href='SkPaint_Reference#Style'>Paint Style</a> determines if <a href='#SkCanvas_drawRRect_rrect'>rrect</a> is stroked or filled;
-if stroked, <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness.
+Draws <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkCanvas_drawRRect_rrect'>rrect</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawRRect_paint'>paint</a>.
+In <a href='#SkCanvas_drawRRect_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> determines if <a href='#SkCanvas_drawRRect_rrect'>rrect</a> is stroked or filled;
+if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness.
-<a href='#SkCanvas_drawRRect_rrect'>rrect</a> may represent a rectangle, circle, oval, uniformly rounded rectangle, or
+<a href='#SkCanvas_drawRRect_rrect'>rrect</a> may represent a rectangle, <a href='undocumented#Circle'>circle</a>, <a href='undocumented#Oval'>oval</a>, uniformly rounded rectangle, or
may have any combination of positive non-square radii for the four corners.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawRRect_rrect'><code><strong>rrect</strong></code></a></td>
- <td><a href='SkRRect_Reference#RRect'>Round Rect</a> with up to eight corner radii to draw</td>
+ <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> with up to eight corner radii to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawRRect_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> stroke or fill, blend, color, and so on, used to draw</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3717,28 +3740,28 @@
void <a href='#SkCanvas_drawDRRect'>drawDRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& outer, const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& inner, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws <a href='SkRRect_Reference#RRect'>Round Rect</a> <a href='#SkCanvas_drawDRRect_outer'>outer</a> and <a href='#SkCanvas_drawDRRect_inner'>inner</a>
-using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawDRRect_paint'>paint</a>.
+Draws <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkCanvas_drawDRRect_outer'>outer</a> and <a href='#SkCanvas_drawDRRect_inner'>inner</a>
+using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawDRRect_paint'>paint</a>.
<a href='#SkCanvas_drawDRRect_outer'>outer</a> must contain <a href='#SkCanvas_drawDRRect_inner'>inner</a> or the drawing is undefined.
-In <a href='#SkCanvas_drawDRRect_paint'>paint</a>: <a href='SkPaint_Reference#Style'>Paint Style</a> determines if <a href='SkRRect_Reference#RRect'>Round Rect</a> is stroked or filled;
-if stroked, <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness.
-If stroked and <a href='SkRRect_Reference#RRect'>Round Rect</a> corner has zero length radii, <a href='SkPaint_Reference#Stroke_Join'>Paint Stroke Join</a> can
+In <a href='#SkCanvas_drawDRRect_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> determines if <a href='SkRRect_Reference#SkRRect'>SkRRect</a> is stroked or filled;
+if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness.
+If stroked and <a href='SkRRect_Reference#SkRRect'>SkRRect</a> corner has zero length radii, <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> can
draw corners rounded or square.
GPU-backed platforms optimize drawing when both <a href='#SkCanvas_drawDRRect_outer'>outer</a> and <a href='#SkCanvas_drawDRRect_inner'>inner</a> are
concave and <a href='#SkCanvas_drawDRRect_outer'>outer</a> contains <a href='#SkCanvas_drawDRRect_inner'>inner</a>. These platforms may not be able to draw
-<a href='SkPath_Reference#Path'>Path</a> built with identical data as fast.
+<a href='SkPath_Reference#SkPath'>SkPath</a> built with identical <a href='undocumented#Data'>data</a> as fast.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawDRRect_outer'><code><strong>outer</strong></code></a></td>
- <td><a href='SkRRect_Reference#RRect'>Round Rect</a> <a href='#SkCanvas_drawDRRect_outer'>outer</a> bounds to draw</td>
+ <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkCanvas_drawDRRect_outer'>outer</a> bounds to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawDRRect_inner'><code><strong>inner</strong></code></a></td>
- <td><a href='SkRRect_Reference#RRect'>Round Rect</a> <a href='#SkCanvas_drawDRRect_inner'>inner</a> bounds to draw</td>
+ <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='#SkCanvas_drawDRRect_inner'>inner</a> bounds to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawDRRect_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> stroke or fill, blend, color, and so on, used to draw</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3750,7 +3773,7 @@
<div><fiddle-embed name="30823cb4edf884d330285ea161664931"><div>Outer <a href='SkRect_Reference#Rect'>Rect</a> has no corner radii, but stroke join is rounded.
Inner <a href='SkRRect_Reference#RRect'>Round Rect</a> has corner radii; outset stroke increases radii of corners.
-Stroke join does not affect <a href='#SkCanvas_drawDRRect_inner'>inner</a> <a href='SkRRect_Reference#RRect'>Round Rect</a> since it has no sharp corners.
+Stroke join does not affect inner <a href='SkRRect_Reference#RRect'>Round Rect</a> since it has no sharp corners.
</div></fiddle-embed></div>
### See Also
@@ -3765,24 +3788,24 @@
void <a href='#SkCanvas_drawCircle'>drawCircle</a>(<a href='undocumented#SkScalar'>SkScalar</a> cx, <a href='undocumented#SkScalar'>SkScalar</a> cy, <a href='undocumented#SkScalar'>SkScalar</a> radius, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws <a href='undocumented#Circle'>Circle</a> at (<a href='#SkCanvas_drawCircle_cx'>cx</a>, <a href='#SkCanvas_drawCircle_cy'>cy</a>) with <a href='#SkCanvas_drawCircle_radius'>radius</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawCircle_paint'>paint</a>.
+Draws <a href='undocumented#Circle'>circle</a> at (<a href='#SkCanvas_drawCircle_cx'>cx</a>, <a href='#SkCanvas_drawCircle_cy'>cy</a>) with <a href='#SkCanvas_drawCircle_radius'>radius</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawCircle_paint'>paint</a>.
If <a href='#SkCanvas_drawCircle_radius'>radius</a> is zero or less, nothing is drawn.
-In <a href='#SkCanvas_drawCircle_paint'>paint</a>: <a href='SkPaint_Reference#Style'>Paint Style</a> determines if <a href='undocumented#Circle'>Circle</a> is stroked or filled;
-if stroked, <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness.
+In <a href='#SkCanvas_drawCircle_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> determines if <a href='undocumented#Circle'>circle</a> is stroked or filled;
+if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawCircle_cx'><code><strong>cx</strong></code></a></td>
- <td><a href='undocumented#Circle'>Circle</a> center on the x-axis</td>
+ <td><a href='undocumented#Circle'>circle</a> center on the x-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawCircle_cy'><code><strong>cy</strong></code></a></td>
- <td><a href='undocumented#Circle'>Circle</a> center on the y-axis</td>
+ <td><a href='undocumented#Circle'>circle</a> center on the y-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawCircle_radius'><code><strong>radius</strong></code></a></td>
- <td>half the diameter of <a href='undocumented#Circle'>Circle</a></td>
+ <td>half the diameter of <a href='undocumented#Circle'>circle</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawCircle_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> stroke or fill, blend, color, and so on, used to draw</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3802,21 +3825,21 @@
void <a href='#SkCanvas_drawCircle'>drawCircle</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> center, <a href='undocumented#SkScalar'>SkScalar</a> radius, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws <a href='undocumented#Circle'>Circle</a> at <a href='#SkCanvas_drawCircle_2_center'>center</a> with <a href='#SkCanvas_drawCircle_2_radius'>radius</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawCircle_2_paint'>paint</a>.
+Draws <a href='undocumented#Circle'>circle</a> at <a href='#SkCanvas_drawCircle_2_center'>center</a> with <a href='#SkCanvas_drawCircle_2_radius'>radius</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawCircle_2_paint'>paint</a>.
If <a href='#SkCanvas_drawCircle_2_radius'>radius</a> is zero or less, nothing is drawn.
-In <a href='#SkCanvas_drawCircle_2_paint'>paint</a>: <a href='SkPaint_Reference#Style'>Paint Style</a> determines if <a href='undocumented#Circle'>Circle</a> is stroked or filled;
-if stroked, <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness.
+In <a href='#SkCanvas_drawCircle_2_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> determines if <a href='undocumented#Circle'>circle</a> is stroked or filled;
+if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawCircle_2_center'><code><strong>center</strong></code></a></td>
- <td><a href='undocumented#Circle'>Circle</a> <a href='#SkCanvas_drawCircle_2_center'>center</a></td>
+ <td><a href='undocumented#Circle'>circle</a> <a href='#SkCanvas_drawCircle_2_center'>center</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawCircle_2_radius'><code><strong>radius</strong></code></a></td>
- <td>half the diameter of <a href='undocumented#Circle'>Circle</a></td>
+ <td>half the diameter of <a href='undocumented#Circle'>circle</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawCircle_2_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> stroke or fill, blend, color, and so on, used to draw</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3837,27 +3860,27 @@
const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws <a href='undocumented#Arc'>Arc</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawArc_paint'>paint</a>.
+Draws <a href='undocumented#Arc'>arc</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawArc_paint'>paint</a>.
-<a href='undocumented#Arc'>Arc</a> is part of <a href='undocumented#Oval'>Oval</a> bounded by <a href='#SkCanvas_drawArc_oval'>oval</a>, sweeping from <a href='#SkCanvas_drawArc_startAngle'>startAngle</a> to <a href='#SkCanvas_drawArc_startAngle'>startAngle</a> plus
+<a href='undocumented#Arc'>Arc</a> is part of <a href='#SkCanvas_drawArc_oval'>oval</a> bounded by <a href='#SkCanvas_drawArc_oval'>oval</a>, sweeping from <a href='#SkCanvas_drawArc_startAngle'>startAngle</a> to <a href='#SkCanvas_drawArc_startAngle'>startAngle</a> plus
<a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a>. <a href='#SkCanvas_drawArc_startAngle'>startAngle</a> and <a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> are in degrees.
-<a href='#SkCanvas_drawArc_startAngle'>startAngle</a> of zero places start point at the right middle edge of <a href='#SkCanvas_drawArc_oval'>oval</a>.
-A positive <a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> places <a href='undocumented#Arc'>Arc</a> end point clockwise from start point;
-a negative <a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> places <a href='undocumented#Arc'>Arc</a> end point counterclockwise from start point.
-<a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> may exceed 360 degrees, a full circle.
-If <a href='#SkCanvas_drawArc_useCenter'>useCenter</a> is true, draw a wedge that includes lines from <a href='#SkCanvas_drawArc_oval'>oval</a>
-center to <a href='undocumented#Arc'>Arc</a> end points. If <a href='#SkCanvas_drawArc_useCenter'>useCenter</a> is false, draw <a href='undocumented#Arc'>Arc</a> between end points.
+<a href='#SkCanvas_drawArc_startAngle'>startAngle</a> of zero places start <a href='SkPoint_Reference#Point'>point</a> at the right middle edge of <a href='#SkCanvas_drawArc_oval'>oval</a>.
+A positive <a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> places <a href='undocumented#Arc'>arc</a> end <a href='SkPoint_Reference#Point'>point</a> clockwise from start <a href='SkPoint_Reference#Point'>point</a>;
+a negative <a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> places <a href='undocumented#Arc'>arc</a> end <a href='SkPoint_Reference#Point'>point</a> counterclockwise from start <a href='SkPoint_Reference#Point'>point</a>.
+<a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> may exceed 360 degrees, a full <a href='undocumented#Circle'>circle</a>.
+If <a href='#SkCanvas_drawArc_useCenter'>useCenter</a> is true, draw a wedge that includes <a href='undocumented#Line'>lines</a> from <a href='#SkCanvas_drawArc_oval'>oval</a>
+center to <a href='undocumented#Arc'>arc</a> end <a href='SkPoint_Reference#Point'>points</a>. If <a href='#SkCanvas_drawArc_useCenter'>useCenter</a> is false, draw <a href='undocumented#Arc'>arc</a> between end <a href='SkPoint_Reference#Point'>points</a>.
-If <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawArc_oval'>oval</a> is empty or <a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> is zero, nothing is drawn.
+If <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawArc_oval'>oval</a> is empty or <a href='#SkCanvas_drawArc_sweepAngle'>sweepAngle</a> is zero, nothing is drawn.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawArc_oval'><code><strong>oval</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> bounds of <a href='undocumented#Oval'>Oval</a> containing <a href='undocumented#Arc'>Arc</a> to draw</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> bounds of <a href='#SkCanvas_drawArc_oval'>oval</a> containing <a href='undocumented#Arc'>arc</a> to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawArc_startAngle'><code><strong>startAngle</strong></code></a></td>
- <td>angle in degrees where <a href='undocumented#Arc'>Arc</a> begins</td>
+ <td>angle in degrees where <a href='undocumented#Arc'>arc</a> begins</td>
</tr>
<tr> <td><a name='SkCanvas_drawArc_sweepAngle'><code><strong>sweepAngle</strong></code></a></td>
<td>sweep angle in degrees; positive is clockwise</td>
@@ -3866,7 +3889,7 @@
<td>if true, include the center of the <a href='#SkCanvas_drawArc_oval'>oval</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawArc_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> stroke or fill, blend, color, and so on, used to draw</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke or fill, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3890,29 +3913,29 @@
void <a href='#SkCanvas_drawRoundRect'>drawRoundRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws <a href='SkRRect_Reference#RRect'>Round Rect</a> bounded by <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawRoundRect_rect'>rect</a>, with corner radii (<a href='#SkCanvas_drawRoundRect_rx'>rx</a>, <a href='#SkCanvas_drawRoundRect_ry'>ry</a>) using <a href='#Clip'>Clip</a>,
-<a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawRoundRect_paint'>paint</a>.
+Draws <a href='SkRRect_Reference#SkRRect'>SkRRect</a> bounded by <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawRoundRect_rect'>rect</a>, with corner radii (<a href='#SkCanvas_drawRoundRect_rx'>rx</a>, <a href='#SkCanvas_drawRoundRect_ry'>ry</a>) using clip,
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawRoundRect_paint'>paint</a>.
-In <a href='#SkCanvas_drawRoundRect_paint'>paint</a>: <a href='SkPaint_Reference#Style'>Paint Style</a> determines if <a href='SkRRect_Reference#RRect'>Round Rect</a> is stroked or filled;
-if stroked, <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness.
+In <a href='#SkCanvas_drawRoundRect_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> determines if <a href='SkRRect_Reference#SkRRect'>SkRRect</a> is stroked or filled;
+if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness.
If <a href='#SkCanvas_drawRoundRect_rx'>rx</a> or <a href='#SkCanvas_drawRoundRect_ry'>ry</a> are less than zero, they are treated as if they are zero.
If <a href='#SkCanvas_drawRoundRect_rx'>rx</a> plus <a href='#SkCanvas_drawRoundRect_ry'>ry</a> exceeds <a href='#SkCanvas_drawRoundRect_rect'>rect</a> width or <a href='#SkCanvas_drawRoundRect_rect'>rect</a> height, radii are scaled down to fit.
-If <a href='#SkCanvas_drawRoundRect_rx'>rx</a> and <a href='#SkCanvas_drawRoundRect_ry'>ry</a> are zero, <a href='SkRRect_Reference#RRect'>Round Rect</a> is drawn as <a href='SkRect_Reference#Rect'>Rect</a> and if stroked is affected by
-<a href='SkPaint_Reference#Stroke_Join'>Paint Stroke Join</a>.
+If <a href='#SkCanvas_drawRoundRect_rx'>rx</a> and <a href='#SkCanvas_drawRoundRect_ry'>ry</a> are zero, <a href='SkRRect_Reference#SkRRect'>SkRRect</a> is drawn as <a href='SkRect_Reference#SkRect'>SkRect</a> and if stroked is affected by
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawRoundRect_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> bounds of <a href='SkRRect_Reference#RRect'>Round Rect</a> to draw</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> bounds of <a href='SkRRect_Reference#SkRRect'>SkRRect</a> to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawRoundRect_rx'><code><strong>rx</strong></code></a></td>
- <td>axis length on x-axis of oval describing rounded corners</td>
+ <td>axis length on x-axis of <a href='undocumented#Oval'>oval</a> describing rounded corners</td>
</tr>
<tr> <td><a name='SkCanvas_drawRoundRect_ry'><code><strong>ry</strong></code></a></td>
- <td>axis length on y-axis of oval describing rounded corners</td>
+ <td>axis length on y-axis of <a href='undocumented#Oval'>oval</a> describing rounded corners</td>
</tr>
<tr> <td><a name='SkCanvas_drawRoundRect_paint'><code><strong>paint</strong></code></a></td>
- <td>stroke, blend, color, and so on, used to draw</td>
+ <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -3936,28 +3959,28 @@
void <a href='#SkCanvas_drawPath'>drawPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& path, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws <a href='SkPath_Reference#Path'>Path</a> <a href='#SkCanvas_drawPath_path'>path</a> using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawPath_paint'>paint</a>.
-<a href='SkPath_Reference#Path'>Path</a> contains an array of <a href='SkPath_Overview#Contour'>Path Contour</a>, each of which may be open or closed.
+Draws <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='#SkCanvas_drawPath_path'>path</a> using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPath_paint'>paint</a>.
+<a href='SkPath_Reference#SkPath'>SkPath</a> contains an array of <a href='SkPath_Overview#Contour'>path contour</a>, each of which may be open or closed.
-In <a href='#SkCanvas_drawPath_paint'>paint</a>: <a href='SkPaint_Reference#Style'>Paint Style</a> determines if <a href='SkRRect_Reference#RRect'>Round Rect</a> is stroked or filled:
-if filled, <a href='SkPath_Reference#Fill_Type'>Path Fill Type</a> determines whether <a href='SkPath_Overview#Contour'>Path Contour</a> describes inside or
-outside of fill; if stroked, <a href='SkPaint_Reference#Stroke_Width'>Paint Stroke Width</a> describes the line thickness,
-<a href='SkPaint_Reference#Stroke_Cap'>Paint Stroke Cap</a> describes line ends, and <a href='SkPaint_Reference#Stroke_Join'>Paint Stroke Join</a> describes how
+In <a href='#SkCanvas_drawPath_paint'>paint</a>: <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> determines if <a href='SkRRect_Reference#SkRRect'>SkRRect</a> is stroked or filled:
+if filled, <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> determines whether <a href='SkPath_Overview#Contour'>path contour</a> describes inside or
+outside of fill; if stroked, <a href='SkPaint_Reference#SkPaint'>SkPaint</a> stroke width describes the <a href='undocumented#Line'>line</a> thickness,
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> describes <a href='undocumented#Line'>line</a> ends, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> describes how
corners are drawn.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawPath_path'><code><strong>path</strong></code></a></td>
- <td><a href='SkPath_Reference#Path'>Path</a> to draw</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawPath_paint'><code><strong>paint</strong></code></a></td>
- <td>stroke, blend, color, and so on, used to draw</td>
+ <td>stroke, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="fe2294131f422b8d6752f6a880f98ad9"><div>Top rows draw stroked <a href='#SkCanvas_drawPath_path'>path</a> with combinations of joins and caps. The open contour
+<div><fiddle-embed name="fe2294131f422b8d6752f6a880f98ad9"><div>Top rows draw stroked path with combinations of joins and caps. The open contour
is affected by caps; the closed contour is affected by joins.
Bottom row draws fill the same for open and closed contour.
First bottom column shows winding fills overlap.
@@ -3982,15 +4005,15 @@
void <a href='#SkCanvas_drawImage'>drawImage</a>(const <a href='SkImage_Reference#SkImage'>SkImage</a>* image, <a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint = nullptr)
</pre>
-Draws <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImage_image'>image</a>, with its <a href='#SkCanvas_drawImage_top'>top</a>-<a href='#SkCanvas_drawImage_left'>left</a> corner at (<a href='#SkCanvas_drawImage_left'>left</a>, <a href='#SkCanvas_drawImage_top'>top</a>),
-using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImage_paint'>paint</a>.
+Draws <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImage_image'>image</a>, with its top-left corner at (<a href='#SkCanvas_drawImage_left'>left</a>, <a href='#SkCanvas_drawImage_top'>top</a>),
+using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImage_paint'>paint</a>.
-If <a href='#SkCanvas_drawImage_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>,
-and <a href='undocumented#Draw_Looper'>Draw Looper</a>. If <a href='#SkCanvas_drawImage_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawImage_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawImage_image'>image</a> bounds. If generated
-mask extends beyond <a href='#SkCanvas_drawImage_image'>image</a> bounds, replicate <a href='#SkCanvas_drawImage_image'>image</a> edge colors, just as <a href='undocumented#Shader'>Shader</a>
-made from <a href='SkImage_Reference#SkImage_makeShader'>SkImage::makeShader</a> with <a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set replicates the
-<a href='#SkCanvas_drawImage_image'>image</a> edge color when it samples outside of its bounds.
+If <a href='#SkCanvas_drawImage_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>,
+and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawImage_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawImage_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawImage_image'>image</a> bounds. If generated
+mask extends beyond <a href='#SkCanvas_drawImage_image'>image</a> bounds, replicate <a href='#SkCanvas_drawImage_image'>image</a> edge colors, just as <a href='undocumented#SkShader'>SkShader</a>
+made from <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> with <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set replicates the
+<a href='#SkCanvas_drawImage_image'>image</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples outside of its bounds.
### Parameters
@@ -3998,17 +4021,18 @@
<td>uncompressed rectangular map of pixels</td>
</tr>
<tr> <td><a name='SkCanvas_drawImage_left'><code><strong>left</strong></code></a></td>
- <td><a href='#SkCanvas_drawImage_left'>left</a> side of <a href='#SkCanvas_drawImage_image'>image</a></td>
+ <td><a href='#SkCanvas_drawImage_left'>left side</a> of <a href='#SkCanvas_drawImage_image'>image</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawImage_top'><code><strong>top</strong></code></a></td>
<td><a href='#SkCanvas_drawImage_top'>top</a> side of <a href='#SkCanvas_drawImage_image'>image</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawImage_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
</table>
+and so on; or nullptr
+
### Example
<div><fiddle-embed name="185746dc0faa6f1df30c4afe098646ff"></fiddle-embed></div>
@@ -4026,15 +4050,15 @@
const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint = nullptr)
</pre>
-Draws <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImage_2_image'>image</a>, with its <a href='#SkCanvas_drawImage_2_top'>top</a>-<a href='#SkCanvas_drawImage_2_left'>left</a> corner at (<a href='#SkCanvas_drawImage_2_left'>left</a>, <a href='#SkCanvas_drawImage_2_top'>top</a>),
-using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImage_2_paint'>paint</a>.
+Draws <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImage_2_image'>image</a>, with its top-left corner at (<a href='#SkCanvas_drawImage_2_left'>left</a>, <a href='#SkCanvas_drawImage_2_top'>top</a>),
+using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImage_2_paint'>paint</a>.
-If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImage_2_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>. If <a href='#SkCanvas_drawImage_2_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawImage_2_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawImage_2_image'>image</a> bounds. If generated
-mask extends beyond <a href='#SkCanvas_drawImage_2_image'>image</a> bounds, replicate <a href='#SkCanvas_drawImage_2_image'>image</a> edge colors, just as <a href='undocumented#Shader'>Shader</a>
-made from <a href='SkImage_Reference#SkImage_makeShader'>SkImage::makeShader</a> with <a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set replicates the
-<a href='#SkCanvas_drawImage_2_image'>image</a> edge color when it samples outside of its bounds.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImage_2_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawImage_2_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawImage_2_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawImage_2_image'>image</a> bounds. If generated
+mask extends beyond <a href='#SkCanvas_drawImage_2_image'>image</a> bounds, replicate <a href='#SkCanvas_drawImage_2_image'>image</a> edge colors, just as <a href='undocumented#SkShader'>SkShader</a>
+made from <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> with <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set replicates the
+<a href='#SkCanvas_drawImage_2_image'>image</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples outside of its bounds.
### Parameters
@@ -4042,17 +4066,18 @@
<td>uncompressed rectangular map of pixels</td>
</tr>
<tr> <td><a name='SkCanvas_drawImage_2_left'><code><strong>left</strong></code></a></td>
- <td><a href='#SkCanvas_drawImage_2_left'>left</a> side of <a href='#SkCanvas_drawImage_2_image'>image</a></td>
+ <td><a href='#SkCanvas_drawImage_2_left'>left side</a> of <a href='#SkCanvas_drawImage_2_image'>image</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawImage_2_top'><code><strong>top</strong></code></a></td>
<td>pop side of <a href='#SkCanvas_drawImage_2_image'>image</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawImage_2_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
</table>
+and so on; or nullptr
+
### Example
<div><fiddle-embed name="a4e877e891b1be5faa2b7fd07f673a10"></fiddle-embed></div>
@@ -4128,37 +4153,42 @@
<a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a>)
</pre>
-Draws <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageRect_src'>src</a> of <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImageRect_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageRect_dst'>dst</a>.
-Additionally transform draw using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageRect_paint'>paint</a>.
+Draws <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_src'>src</a> of <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImageRect_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_dst'>dst</a>.
+Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_paint'>paint</a>.
-If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageRect_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>. If <a href='#SkCanvas_drawImageRect_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawImageRect_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawImageRect_image'>image</a> bounds.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawImageRect_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawImageRect_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawImageRect_image'>image</a> bounds.
If generated mask extends beyond <a href='#SkCanvas_drawImageRect_image'>image</a> bounds, replicate <a href='#SkCanvas_drawImageRect_image'>image</a> edge colors, just
-as <a href='undocumented#Shader'>Shader</a> made from <a href='SkImage_Reference#SkImage_makeShader'>SkImage::makeShader</a> with <a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set
-replicates the <a href='#SkCanvas_drawImageRect_image'>image</a> edge color when it samples outside of its bounds.
+as <a href='undocumented#SkShader'>SkShader</a> made from <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> with <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set
+replicates the <a href='#SkCanvas_drawImageRect_image'>image</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples outside of its bounds.
-<a href='#SkCanvas_drawImageRect_constraint'>constraint</a> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a> limits <a href='SkPaint_Reference#Paint'>Paint</a> <a href='undocumented#Filter_Quality'>Filter Quality</a> to
-sample within <a href='#SkCanvas_drawImageRect_src'>src</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast SrcRectConstraint</a> allows sampling outside to
+<a href='#SkCanvas_drawImageRect_constraint'>constraint</a> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> limits <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> to
+sample within <a href='#SkCanvas_drawImageRect_src'>src</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> allows sampling outside to
improve performance.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawImageRect_image'><code><strong>image</strong></code></a></td>
- <td><a href='SkImage_Reference#Image'>Image</a> containing pixels, dimensions, and format</td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_src'><code><strong>src</strong></code></a></td>
- <td>source <a href='SkRect_Reference#Rect'>Rect</a> of <a href='#SkCanvas_drawImageRect_image'>image</a> to draw from</td>
+ <td>source <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='#SkCanvas_drawImageRect_image'>image</a> to draw from</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#Rect'>Rect</a> of <a href='#SkCanvas_drawImageRect_image'>image</a> to draw to</td>
+ <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='#SkCanvas_drawImageRect_image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
- <tr> <td><a name='SkCanvas_drawImageRect_constraint'><code><strong>constraint</strong></code></a></td>
+</table>
+
+and so on; or nullptr
+
+### Parameters
+
+<table> <tr> <td><a name='SkCanvas_drawImageRect_constraint'><code><strong>constraint</strong></code></a></td>
<td>filter strictly within <a href='#SkCanvas_drawImageRect_src'>src</a> or draw faster</td>
</tr>
</table>
@@ -4185,39 +4215,44 @@
<a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a>)
</pre>
-Draws <a href='SkIRect_Reference#IRect'>IRect</a> <a href='#SkCanvas_drawImageRect_2_isrc'>isrc</a> of <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImageRect_2_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageRect_2_dst'>dst</a>.
-Note that <a href='#SkCanvas_drawImageRect_2_isrc'>isrc</a> is on integer pixel boundaries; <a href='#SkCanvas_drawImageRect_2_dst'>dst</a> may include fractional
-boundaries. Additionally transform draw using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</a>
+Draws <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_drawImageRect_2_isrc'>isrc</a> of <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImageRect_2_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_2_dst'>dst</a>.
+Note that <a href='#SkCanvas_drawImageRect_2_isrc'>isrc</a> is on integer <a href='undocumented#Pixel'>pixel</a> boundaries; <a href='#SkCanvas_drawImageRect_2_dst'>dst</a> may include fractional
+boundaries. Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a>
<a href='#SkCanvas_drawImageRect_2_paint'>paint</a>.
-If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageRect_2_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>. If <a href='#SkCanvas_drawImageRect_2_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawImageRect_2_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawImageRect_2_image'>image</a> bounds.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_2_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawImageRect_2_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawImageRect_2_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawImageRect_2_image'>image</a> bounds.
If generated mask extends beyond <a href='#SkCanvas_drawImageRect_2_image'>image</a> bounds, replicate <a href='#SkCanvas_drawImageRect_2_image'>image</a> edge colors, just
-as <a href='undocumented#Shader'>Shader</a> made from <a href='SkImage_Reference#SkImage_makeShader'>SkImage::makeShader</a> with <a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set
-replicates the <a href='#SkCanvas_drawImageRect_2_image'>image</a> edge color when it samples outside of its bounds.
+as <a href='undocumented#SkShader'>SkShader</a> made from <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> with <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set
+replicates the <a href='#SkCanvas_drawImageRect_2_image'>image</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples outside of its bounds.
-<a href='#SkCanvas_drawImageRect_2_constraint'>constraint</a> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a> limits <a href='SkPaint_Reference#Paint'>Paint</a> <a href='undocumented#Filter_Quality'>Filter Quality</a> to
-sample within <a href='#SkCanvas_drawImageRect_2_isrc'>isrc</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast SrcRectConstraint</a> allows sampling outside to
+<a href='#SkCanvas_drawImageRect_2_constraint'>constraint</a> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> limits <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> to
+sample within <a href='#SkCanvas_drawImageRect_2_isrc'>isrc</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> allows sampling outside to
improve performance.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawImageRect_2_image'><code><strong>image</strong></code></a></td>
- <td><a href='SkImage_Reference#Image'>Image</a> containing pixels, dimensions, and format</td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_2_isrc'><code><strong>isrc</strong></code></a></td>
- <td>source <a href='SkIRect_Reference#IRect'>IRect</a> of <a href='#SkCanvas_drawImageRect_2_image'>image</a> to draw from</td>
+ <td>source <a href='SkIRect_Reference#SkIRect'>SkIRect</a> of <a href='#SkCanvas_drawImageRect_2_image'>image</a> to draw from</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_2_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#Rect'>Rect</a> of <a href='#SkCanvas_drawImageRect_2_image'>image</a> to draw to</td>
+ <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='#SkCanvas_drawImageRect_2_image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_2_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
- <tr> <td><a name='SkCanvas_drawImageRect_2_constraint'><code><strong>constraint</strong></code></a></td>
+</table>
+
+and so on; or nullptr
+
+### Parameters
+
+<table> <tr> <td><a name='SkCanvas_drawImageRect_2_constraint'><code><strong>constraint</strong></code></a></td>
<td>filter strictly within <a href='#SkCanvas_drawImageRect_2_isrc'>isrc</a> or draw faster</td>
</tr>
</table>
@@ -4238,31 +4273,32 @@
void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(const <a href='SkImage_Reference#SkImage'>SkImage</a>* image, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
</pre>
-Draws <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImageRect_3_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageRect_3_dst'>dst</a>, using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>,
-and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageRect_3_paint'>paint</a>.
+Draws <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImageRect_3_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_3_dst'>dst</a>, using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>,
+and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_3_paint'>paint</a>.
-If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageRect_3_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>. If <a href='#SkCanvas_drawImageRect_3_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawImageRect_3_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawImageRect_3_image'>image</a> bounds.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_3_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawImageRect_3_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawImageRect_3_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawImageRect_3_image'>image</a> bounds.
If generated mask extends beyond <a href='#SkCanvas_drawImageRect_3_image'>image</a> bounds, replicate <a href='#SkCanvas_drawImageRect_3_image'>image</a> edge colors, just
-as <a href='undocumented#Shader'>Shader</a> made from <a href='SkImage_Reference#SkImage_makeShader'>SkImage::makeShader</a> with <a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set
-replicates the <a href='#SkCanvas_drawImageRect_3_image'>image</a> edge color when it samples outside of its bounds.
+as <a href='undocumented#SkShader'>SkShader</a> made from <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> with <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set
+replicates the <a href='#SkCanvas_drawImageRect_3_image'>image</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples outside of its bounds.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawImageRect_3_image'><code><strong>image</strong></code></a></td>
- <td><a href='SkImage_Reference#Image'>Image</a> containing pixels, dimensions, and format</td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_3_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#Rect'>Rect</a> of <a href='#SkCanvas_drawImageRect_3_image'>image</a> to draw to</td>
+ <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='#SkCanvas_drawImageRect_3_image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_3_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
</table>
+and so on; or nullptr
+
### Example
<div><fiddle-embed name="3cf8fb639fef99993cafc064d550c739"></fiddle-embed></div>
@@ -4280,44 +4316,45 @@
const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint, <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a>)
</pre>
-Draws <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageRect_4_src'>src</a> of <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImageRect_4_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageRect_4_dst'>dst</a>.
-Additionally transform draw using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageRect_4_paint'>paint</a>.
+Draws <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_4_src'>src</a> of <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImageRect_4_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_4_dst'>dst</a>.
+Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_4_paint'>paint</a>.
-If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageRect_4_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>. If <a href='#SkCanvas_drawImageRect_4_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawImageRect_4_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawImageRect_4_image'>image</a> bounds.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_4_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawImageRect_4_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawImageRect_4_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawImageRect_4_image'>image</a> bounds.
If generated mask extends beyond <a href='#SkCanvas_drawImageRect_4_image'>image</a> bounds, replicate <a href='#SkCanvas_drawImageRect_4_image'>image</a> edge colors, just
-as <a href='undocumented#Shader'>Shader</a> made from <a href='SkImage_Reference#SkImage_makeShader'>SkImage::makeShader</a> with <a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set
-replicates the <a href='#SkCanvas_drawImageRect_4_image'>image</a> edge color when it samples outside of its bounds.
-
-<a href='#SkCanvas_drawImageRect_4_constraint'>constraint</a> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a> limits <a href='SkPaint_Reference#Paint'>Paint</a> <a href='undocumented#Filter_Quality'>Filter Quality</a> to
-sample within <a href='#SkCanvas_drawImageRect_4_src'>src</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast SrcRectConstraint</a> allows sampling outside to
-improve performance.
+as <a href='undocumented#SkShader'>SkShader</a> made from <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> with <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set
+replicates the <a href='#SkCanvas_drawImageRect_4_image'>image</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples outside of its bounds.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawImageRect_4_image'><code><strong>image</strong></code></a></td>
- <td><a href='SkImage_Reference#Image'>Image</a> containing pixels, dimensions, and format</td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_4_src'><code><strong>src</strong></code></a></td>
- <td>source <a href='SkRect_Reference#Rect'>Rect</a> of <a href='#SkCanvas_drawImageRect_4_image'>image</a> to draw from</td>
+ <td>source <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='#SkCanvas_drawImageRect_4_image'>image</a> to draw from</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_4_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#Rect'>Rect</a> of <a href='#SkCanvas_drawImageRect_4_image'>image</a> to draw to</td>
+ <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='#SkCanvas_drawImageRect_4_image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_4_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
- <tr> <td><a name='SkCanvas_drawImageRect_4_constraint'><code><strong>constraint</strong></code></a></td>
+</table>
+
+and so on; or nullptr
+
+### Parameters
+
+<table> <tr> <td><a name='SkCanvas_drawImageRect_4_constraint'><code><strong>constraint</strong></code></a></td>
<td>filter strictly within <a href='#SkCanvas_drawImageRect_4_src'>src</a> or draw faster</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="d4b35a9d24c32c042bd1f529b8de3c0d"><div><a href='#Canvas'>Canvas</a> scales and translates; transformation from <a href='#SkCanvas_drawImageRect_4_src'>src</a> to <a href='#SkCanvas_drawImageRect_4_dst'>dst</a> also scales.
+<div><fiddle-embed name="d4b35a9d24c32c042bd1f529b8de3c0d"><div><a href='#Canvas'>Canvas</a> scales and translates; transformation from src to dst also scales.
The two matrices are concatenated to create the final transformation.
</div></fiddle-embed></div>
@@ -4334,38 +4371,43 @@
const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint, <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a>)
</pre>
-Draws <a href='SkIRect_Reference#IRect'>IRect</a> <a href='#SkCanvas_drawImageRect_5_isrc'>isrc</a> of <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImageRect_5_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageRect_5_dst'>dst</a>.
-<a href='#SkCanvas_drawImageRect_5_isrc'>isrc</a> is on integer pixel boundaries; <a href='#SkCanvas_drawImageRect_5_dst'>dst</a> may include fractional boundaries.
-Additionally transform draw using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageRect_5_paint'>paint</a>.
+Draws <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_drawImageRect_5_isrc'>isrc</a> of <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImageRect_5_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_5_dst'>dst</a>.
+<a href='#SkCanvas_drawImageRect_5_isrc'>isrc</a> is on integer <a href='undocumented#Pixel'>pixel</a> boundaries; <a href='#SkCanvas_drawImageRect_5_dst'>dst</a> may include fractional boundaries.
+Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_5_paint'>paint</a>.
-If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageRect_5_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>. If <a href='#SkCanvas_drawImageRect_5_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawImageRect_5_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawImageRect_5_image'>image</a> bounds.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_5_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawImageRect_5_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawImageRect_5_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawImageRect_5_image'>image</a> bounds.
If generated mask extends beyond <a href='#SkCanvas_drawImageRect_5_image'>image</a> bounds, replicate <a href='#SkCanvas_drawImageRect_5_image'>image</a> edge colors, just
-as <a href='undocumented#Shader'>Shader</a> made from <a href='SkImage_Reference#SkImage_makeShader'>SkImage::makeShader</a> with <a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set
-replicates the <a href='#SkCanvas_drawImageRect_5_image'>image</a> edge color when it samples outside of its bounds.
+as <a href='undocumented#SkShader'>SkShader</a> made from <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> with <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set
+replicates the <a href='#SkCanvas_drawImageRect_5_image'>image</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples outside of its bounds.
-<a href='#SkCanvas_drawImageRect_5_constraint'>constraint</a> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a> limits <a href='SkPaint_Reference#Paint'>Paint</a> <a href='undocumented#Filter_Quality'>Filter Quality</a> to
-sample within <a href='#SkCanvas_drawImageRect_5_image'>image</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast SrcRectConstraint</a> allows sampling outside to
+<a href='#SkCanvas_drawImageRect_5_constraint'>constraint</a> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> limits <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> to
+sample within <a href='#SkCanvas_drawImageRect_5_image'>image</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> allows sampling outside to
improve performance.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawImageRect_5_image'><code><strong>image</strong></code></a></td>
- <td><a href='SkImage_Reference#Image'>Image</a> containing pixels, dimensions, and format</td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_5_isrc'><code><strong>isrc</strong></code></a></td>
- <td>source <a href='SkIRect_Reference#IRect'>IRect</a> of <a href='#SkCanvas_drawImageRect_5_image'>image</a> to draw from</td>
+ <td>source <a href='SkIRect_Reference#SkIRect'>SkIRect</a> of <a href='#SkCanvas_drawImageRect_5_image'>image</a> to draw from</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_5_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#Rect'>Rect</a> of <a href='#SkCanvas_drawImageRect_5_image'>image</a> to draw to</td>
+ <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='#SkCanvas_drawImageRect_5_image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_5_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
- <tr> <td><a name='SkCanvas_drawImageRect_5_constraint'><code><strong>constraint</strong></code></a></td>
+</table>
+
+and so on; or nullptr
+
+### Parameters
+
+<table> <tr> <td><a name='SkCanvas_drawImageRect_5_constraint'><code><strong>constraint</strong></code></a></td>
<td>filter strictly within <a href='#SkCanvas_drawImageRect_5_image'>image</a> or draw faster</td>
</tr>
</table>
@@ -4386,31 +4428,36 @@
void <a href='#SkCanvas_drawImageRect'>drawImageRect</a>(const <a href='undocumented#sk_sp'>sk sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>>& image, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
</pre>
-Draws <a href='SkImage_Reference#Image'>Image</a> <a href='#SkCanvas_drawImageRect_6_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawImageRect_6_dst'>dst</a>,
-using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageRect_6_paint'>paint</a>.
+Draws <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkCanvas_drawImageRect_6_image'>image</a>, scaled and translated to fill <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawImageRect_6_dst'>dst</a>,
+using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_6_paint'>paint</a>.
-If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawImageRect_6_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>. If <a href='#SkCanvas_drawImageRect_6_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawImageRect_6_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawImageRect_6_image'>image</a> bounds.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawImageRect_6_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawImageRect_6_image'>image</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawImageRect_6_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawImageRect_6_image'>image</a> bounds.
If generated mask extends beyond <a href='#SkCanvas_drawImageRect_6_image'>image</a> bounds, replicate <a href='#SkCanvas_drawImageRect_6_image'>image</a> edge colors, just
-as <a href='undocumented#Shader'>Shader</a> made from <a href='SkImage_Reference#SkImage_makeShader'>SkImage::makeShader</a> with <a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set
-replicates the <a href='#SkCanvas_drawImageRect_6_image'>image</a> edge color when it samples outside of its bounds.
+as <a href='undocumented#SkShader'>SkShader</a> made from <a href='SkImage_Reference#SkImage'>SkImage</a>::<a href='#SkImage_makeShader'>makeShader</a> with <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set
+replicates the <a href='#SkCanvas_drawImageRect_6_image'>image</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples outside of its bounds.
+
+constraint set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> limits <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> to
+sample within <a href='#SkCanvas_drawImageRect_6_image'>image</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> allows sampling outside to
+improve performance.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawImageRect_6_image'><code><strong>image</strong></code></a></td>
- <td><a href='SkImage_Reference#Image'>Image</a> containing pixels, dimensions, and format</td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_6_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#Rect'>Rect</a> of <a href='#SkCanvas_drawImageRect_6_image'>image</a> to draw to</td>
+ <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='#SkCanvas_drawImageRect_6_image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawImageRect_6_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
</table>
+and so on; or nullptr
+
### Example
<div><fiddle-embed name="3a47ef94cb70144455f80333d8653e6c"></fiddle-embed></div>
@@ -4537,35 +4584,36 @@
void <a href='#SkCanvas_drawBitmap'>drawBitmap</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& bitmap, <a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint = nullptr)
</pre>
-Draws <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a>, with its <a href='#SkCanvas_drawBitmap_top'>top</a>-<a href='#SkCanvas_drawBitmap_left'>left</a> corner at (<a href='#SkCanvas_drawBitmap_left'>left</a>, <a href='#SkCanvas_drawBitmap_top'>top</a>),
-using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawBitmap_paint'>paint</a>.
+Draws <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a>, with its top-left corner at (<a href='#SkCanvas_drawBitmap_left'>left</a>, <a href='#SkCanvas_drawBitmap_top'>top</a>),
+using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmap_paint'>paint</a>.
-If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawBitmap_paint'>paint</a> is not nullptr, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>. If <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawBitmap_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> bounds.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmap_paint'>paint</a> is not nullptr, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawBitmap_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> bounds.
If generated mask extends beyond <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> bounds, replicate <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> edge colors,
-just as <a href='undocumented#Shader'>Shader</a> made from <a href='undocumented#SkShader_MakeBitmapShader'>SkShader::MakeBitmapShader</a> with
-<a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set replicates the <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> edge color when it samples
+just as <a href='undocumented#SkShader'>SkShader</a> made from <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_MakeBitmapShader'>MakeBitmapShader</a> with
+<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set replicates the <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples
outside of its bounds.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawBitmap_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td><a href='SkBitmap_Reference#Bitmap'>Bitmap</a> containing pixels, dimensions, and format</td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmap_left'><code><strong>left</strong></code></a></td>
- <td><a href='#SkCanvas_drawBitmap_left'>left</a> side of <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a></td>
+ <td><a href='#SkCanvas_drawBitmap_left'>left side</a> of <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmap_top'><code><strong>top</strong></code></a></td>
<td><a href='#SkCanvas_drawBitmap_top'>top</a> side of <a href='#SkCanvas_drawBitmap_bitmap'>bitmap</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmap_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
</table>
+and so on; or nullptr
+
### Example
<div><fiddle-embed name="4a521be1f850058541e136a808c65e78"></fiddle-embed></div>
@@ -4583,38 +4631,43 @@
const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint, <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a>)
</pre>
-Draws <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawBitmapRect_src'>src</a> of <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a>, scaled and translated to fill <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawBitmapRect_dst'>dst</a>.
-Additionally transform draw using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawBitmapRect_paint'>paint</a>.
+Draws <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawBitmapRect_src'>src</a> of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a>, scaled and translated to fill <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawBitmapRect_dst'>dst</a>.
+Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmapRect_paint'>paint</a>.
-If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawBitmapRect_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>. If <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawBitmapRect_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> bounds.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmapRect_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawBitmapRect_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> bounds.
If generated mask extends beyond <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> bounds, replicate <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> edge colors,
-just as <a href='undocumented#Shader'>Shader</a> made from <a href='undocumented#SkShader_MakeBitmapShader'>SkShader::MakeBitmapShader</a> with
-<a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set replicates the <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> edge color when it samples
+just as <a href='undocumented#SkShader'>SkShader</a> made from <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_MakeBitmapShader'>MakeBitmapShader</a> with
+<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set replicates the <a href='#SkCanvas_drawBitmapRect_bitmap'>bitmap</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples
outside of its bounds.
-<a href='#SkCanvas_drawBitmapRect_constraint'>constraint</a> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a> limits <a href='SkPaint_Reference#Paint'>Paint</a> <a href='undocumented#Filter_Quality'>Filter Quality</a> to
-sample within <a href='#SkCanvas_drawBitmapRect_src'>src</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast SrcRectConstraint</a> allows sampling outside to
+<a href='#SkCanvas_drawBitmapRect_constraint'>constraint</a> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> limits <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> to
+sample within <a href='#SkCanvas_drawBitmapRect_src'>src</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> allows sampling outside to
improve performance.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawBitmapRect_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td><a href='SkBitmap_Reference#Bitmap'>Bitmap</a> containing pixels, dimensions, and format</td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapRect_src'><code><strong>src</strong></code></a></td>
- <td>source <a href='SkRect_Reference#Rect'>Rect</a> of image to draw from</td>
+ <td>source <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='SkImage_Reference#Image'>image</a> to draw from</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapRect_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#Rect'>Rect</a> of image to draw to</td>
+ <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='SkImage_Reference#Image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapRect_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
- <tr> <td><a name='SkCanvas_drawBitmapRect_constraint'><code><strong>constraint</strong></code></a></td>
+</table>
+
+and so on; or nullptr
+
+### Parameters
+
+<table> <tr> <td><a name='SkCanvas_drawBitmapRect_constraint'><code><strong>constraint</strong></code></a></td>
<td>filter strictly within <a href='#SkCanvas_drawBitmapRect_src'>src</a> or draw faster</td>
</tr>
</table>
@@ -4636,39 +4689,44 @@
const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint, <a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a>)
</pre>
-Draws <a href='SkIRect_Reference#IRect'>IRect</a> <a href='#SkCanvas_drawBitmapRect_2_isrc'>isrc</a> of <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a>, scaled and translated to fill <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawBitmapRect_2_dst'>dst</a>.
-<a href='#SkCanvas_drawBitmapRect_2_isrc'>isrc</a> is on integer pixel boundaries; <a href='#SkCanvas_drawBitmapRect_2_dst'>dst</a> may include fractional boundaries.
-Additionally transform draw using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawBitmapRect_2_paint'>paint</a>.
+Draws <a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkCanvas_drawBitmapRect_2_isrc'>isrc</a> of <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a>, scaled and translated to fill <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawBitmapRect_2_dst'>dst</a>.
+<a href='#SkCanvas_drawBitmapRect_2_isrc'>isrc</a> is on integer <a href='undocumented#Pixel'>pixel</a> boundaries; <a href='#SkCanvas_drawBitmapRect_2_dst'>dst</a> may include fractional boundaries.
+Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmapRect_2_paint'>paint</a>.
-If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawBitmapRect_2_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>. If <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawBitmapRect_2_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> bounds.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmapRect_2_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawBitmapRect_2_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> bounds.
If generated mask extends beyond <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> bounds, replicate <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> edge colors,
-just as <a href='undocumented#Shader'>Shader</a> made from <a href='undocumented#SkShader_MakeBitmapShader'>SkShader::MakeBitmapShader</a> with
-<a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set replicates the <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> edge color when it samples
+just as <a href='undocumented#SkShader'>SkShader</a> made from <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_MakeBitmapShader'>MakeBitmapShader</a> with
+<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set replicates the <a href='#SkCanvas_drawBitmapRect_2_bitmap'>bitmap</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples
outside of its bounds.
-<a href='#SkCanvas_drawBitmapRect_2_constraint'>constraint</a> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a> limits <a href='SkPaint_Reference#Paint'>Paint</a> <a href='undocumented#Filter_Quality'>Filter Quality</a> to
-sample within <a href='#SkCanvas_drawBitmapRect_2_isrc'>isrc</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast SrcRectConstraint</a> allows sampling outside to
+<a href='#SkCanvas_drawBitmapRect_2_constraint'>constraint</a> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> limits <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> to
+sample within <a href='#SkCanvas_drawBitmapRect_2_isrc'>isrc</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> allows sampling outside to
improve performance.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawBitmapRect_2_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td><a href='SkBitmap_Reference#Bitmap'>Bitmap</a> containing pixels, dimensions, and format</td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapRect_2_isrc'><code><strong>isrc</strong></code></a></td>
- <td>source <a href='SkIRect_Reference#IRect'>IRect</a> of image to draw from</td>
+ <td>source <a href='SkIRect_Reference#SkIRect'>SkIRect</a> of <a href='SkImage_Reference#Image'>image</a> to draw from</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapRect_2_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#Rect'>Rect</a> of image to draw to</td>
+ <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='SkImage_Reference#Image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapRect_2_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
- <tr> <td><a name='SkCanvas_drawBitmapRect_2_constraint'><code><strong>constraint</strong></code></a></td>
+</table>
+
+and so on; or nullptr
+
+### Parameters
+
+<table> <tr> <td><a name='SkCanvas_drawBitmapRect_2_constraint'><code><strong>constraint</strong></code></a></td>
<td>sample strictly within <a href='#SkCanvas_drawBitmapRect_2_isrc'>isrc</a>, or draw faster</td>
</tr>
</table>
@@ -4690,36 +4748,41 @@
<a href='#SkCanvas_SrcRectConstraint'>SrcRectConstraint</a> constraint = <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a>)
</pre>
-Draws <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a>, scaled and translated to fill <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawBitmapRect_3_dst'>dst</a>.
-<a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> bounds is on integer pixel boundaries; <a href='#SkCanvas_drawBitmapRect_3_dst'>dst</a> may include fractional boundaries.
-Additionally transform draw using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and optional <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawBitmapRect_3_paint'>paint</a>.
+Draws <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a>, scaled and translated to fill <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawBitmapRect_3_dst'>dst</a>.
+<a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> bounds is on integer <a href='undocumented#Pixel'>pixel</a> boundaries; <a href='#SkCanvas_drawBitmapRect_3_dst'>dst</a> may include fractional boundaries.
+Additionally transform draw using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmapRect_3_paint'>paint</a>.
-If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawBitmapRect_3_paint'>paint</a> is supplied, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>. If <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#Shader'>Shader</a>.
-If <a href='#SkCanvas_drawBitmapRect_3_paint'>paint</a> contains <a href='undocumented#Mask_Filter'>Mask Filter</a>, generate mask from <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> bounds.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawBitmapRect_3_paint'>paint</a> is supplied, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>. If <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, apply <a href='undocumented#SkShader'>SkShader</a>.
+If <a href='#SkCanvas_drawBitmapRect_3_paint'>paint</a> contains <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, generate mask from <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> bounds.
If generated mask extends beyond <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> bounds, replicate <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> edge colors,
-just as <a href='undocumented#Shader'>Shader</a> made from <a href='undocumented#SkShader_MakeBitmapShader'>SkShader::MakeBitmapShader</a> with
-<a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> set replicates the <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> edge color when it samples
+just as <a href='undocumented#SkShader'>SkShader</a> made from <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_MakeBitmapShader'>MakeBitmapShader</a> with
+<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> set replicates the <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> edge <a href='SkColor_Reference#Color'>color</a> when it samples
outside of its bounds.
-<a href='#SkCanvas_drawBitmapRect_3_constraint'>constraint</a> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict SrcRectConstraint</a> limits <a href='SkPaint_Reference#Paint'>Paint</a> <a href='undocumented#Filter_Quality'>Filter Quality</a> to
-sample within <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast SrcRectConstraint</a> allows sampling outside to
+<a href='#SkCanvas_drawBitmapRect_3_constraint'>constraint</a> set to <a href='#SkCanvas_kStrict_SrcRectConstraint'>kStrict_SrcRectConstraint</a> limits <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> to
+sample within <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a>; set to <a href='#SkCanvas_kFast_SrcRectConstraint'>kFast_SrcRectConstraint</a> allows sampling outside to
improve performance.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawBitmapRect_3_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td><a href='SkBitmap_Reference#Bitmap'>Bitmap</a> containing pixels, dimensions, and format</td>
+ <td><a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> containing pixels, dimensions, and format</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapRect_3_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkRect_Reference#Rect'>Rect</a> of image to draw to</td>
+ <td>destination <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='SkImage_Reference#Image'>image</a> to draw to</td>
</tr>
<tr> <td><a name='SkCanvas_drawBitmapRect_3_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
- <tr> <td><a name='SkCanvas_drawBitmapRect_3_constraint'><code><strong>constraint</strong></code></a></td>
+</table>
+
+and so on; or nullptr
+
+### Parameters
+
+<table> <tr> <td><a name='SkCanvas_drawBitmapRect_3_constraint'><code><strong>constraint</strong></code></a></td>
<td>filter strictly within <a href='#SkCanvas_drawBitmapRect_3_bitmap'>bitmap</a> or draw faster</td>
</tr>
</table>
@@ -5207,41 +5270,41 @@
void <a href='#SkCanvas_drawText'>drawText</a>(const void* text, size_t byteLength, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws <a href='#SkCanvas_drawText_text'>text</a>, with origin at (<a href='#SkCanvas_drawText_x'>x</a>, <a href='#SkCanvas_drawText_y'>y</a>), using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawText_paint'>paint</a>.
+Draws <a href='#SkCanvas_drawText_text'>text</a>, with origin at (<a href='#SkCanvas_drawText_x'>x</a>, <a href='#SkCanvas_drawText_y'>y</a>), using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawText_paint'>paint</a>.
-<a href='#SkCanvas_drawText_text'>text</a> meaning depends on <a href='SkPaint_Reference#Text_Encoding'>Paint Text Encoding</a>; by default, <a href='#SkCanvas_drawText_text'>text</a> is encoded as
+<a href='#SkCanvas_drawText_text'>text</a> meaning depends on <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a>; by default, <a href='#SkCanvas_drawText_text'>text</a> is encoded as
UTF-8.
-<a href='#SkCanvas_drawText_x'>x</a> and <a href='#SkCanvas_drawText_y'>y</a> meaning depends on <a href='SkPaint_Reference#Text_Align'>Paint Text Align</a>; by default
-<a href='#SkCanvas_drawText_text'>text</a> draws left to right, positioning the first glyph left side bearing at <a href='#SkCanvas_drawText_x'>x</a>
-and its baseline at <a href='#SkCanvas_drawText_y'>y</a>. <a href='undocumented#Text'>Text</a> size is affected by <a href='#Matrix'>Matrix</a> and <a href='SkPaint_Reference#Text_Size'>Paint Text Size</a>.
+<a href='#SkCanvas_drawText_x'>x</a> and <a href='#SkCanvas_drawText_y'>y</a> meaning depends on <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Align'>Align</a> and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> vertical <a href='#SkCanvas_drawText_text'>text</a>; by default
+<a href='#SkCanvas_drawText_text'>text</a> draws left to right, positioning the first <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Left_Side_Bearing'>left side bearing</a> at <a href='#SkCanvas_drawText_x'>x</a>
+and its baseline at <a href='#SkCanvas_drawText_y'>y</a>. <a href='undocumented#Text'>Text</a> <a href='undocumented#Size'>size</a> is affected by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawText_text'>text</a> <a href='undocumented#Size'>size</a>.
-All elements of <a href='#SkCanvas_drawText_paint'>paint</a>: <a href='undocumented#Path_Effect'>Path Effect</a>, <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Shader'>Shader</a>,
-<a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>; apply to <a href='#SkCanvas_drawText_text'>text</a>. By default, draws
-filled 12 point black <a href='undocumented#Glyph'>Glyphs</a>.
+All elements of <a href='#SkCanvas_drawText_paint'>paint</a>: <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkShader'>SkShader</a>,
+<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>; apply to <a href='#SkCanvas_drawText_text'>text</a>. By default, draws
+filled 12 <a href='SkPoint_Reference#Point'>point</a> black <a href='undocumented#Glyph'>glyphs</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawText_text'><code><strong>text</strong></code></a></td>
- <td>character code points or <a href='undocumented#Glyph'>Glyphs</a> drawn</td>
+ <td>character code <a href='SkPoint_Reference#Point'>points</a> or <a href='undocumented#Glyph'>glyphs</a> drawn</td>
</tr>
<tr> <td><a name='SkCanvas_drawText_byteLength'><code><strong>byteLength</strong></code></a></td>
<td>byte length of <a href='#SkCanvas_drawText_text'>text</a> array</td>
</tr>
<tr> <td><a name='SkCanvas_drawText_x'><code><strong>x</strong></code></a></td>
- <td>start of <a href='#SkCanvas_drawText_text'>text</a> on <a href='#SkCanvas_drawText_x'>x</a>-axis</td>
+ <td>start of <a href='#SkCanvas_drawText_text'>text</a> on x-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawText_y'><code><strong>y</strong></code></a></td>
- <td>start of <a href='#SkCanvas_drawText_text'>text</a> on <a href='#SkCanvas_drawText_y'>y</a>-axis</td>
+ <td>start of <a href='#SkCanvas_drawText_text'>text</a> on y-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawText_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='#SkCanvas_drawText_text'>text</a> size, blend, color, and so on, used to draw</td>
+ <td><a href='#SkCanvas_drawText_text'>text</a> <a href='undocumented#Size'>size</a>, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="55f5e59350622c5e2834d1c85789f732"><div>The same <a href='#SkCanvas_drawText_text'>text</a> is drawn varying <a href='SkPaint_Reference#Text_Size'>Paint Text Size</a> and varying
+<div><fiddle-embed name="55f5e59350622c5e2834d1c85789f732"><div>The same text is drawn varying <a href='SkPaint_Reference#Text_Size'>Paint Text Size</a> and varying
<a href='#Matrix'>Matrix</a>.
</div></fiddle-embed></div>
@@ -5257,34 +5320,40 @@
void <a href='#SkCanvas_drawString'>drawString</a>(const char* string, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws null terminated <a href='#SkCanvas_drawString_string'>string</a>, with origin at (<a href='#SkCanvas_drawString_x'>x</a>, <a href='#SkCanvas_drawString_y'>y</a>), using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and
-<a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawString_paint'>paint</a>.
+Draws null terminated <a href='#SkCanvas_drawString_string'>string</a>, with origin at (<a href='#SkCanvas_drawString_x'>x</a>, <a href='#SkCanvas_drawString_y'>y</a>), using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawString_paint'>paint</a>.
-<a href='#SkCanvas_drawString_string'>string</a> meaning depends on <a href='SkPaint_Reference#Text_Encoding'>Paint Text Encoding</a>; by default, strings are encoded
-as UTF-8. Other values of <a href='SkPaint_Reference#Text_Encoding'>Paint Text Encoding</a> are unlikely to produce the desired
+<a href='#SkCanvas_drawString_string'>string</a> meaning depends on <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a>; by default, strings are encoded
+as UTF-8. Other values of <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> are unlikely to produce the desired
results, since zero bytes may be embedded in the <a href='#SkCanvas_drawString_string'>string</a>.
-The <a href='#SkCanvas_drawString_string'>string</a> draws left to right, positioning the first glyph left side bearing at <a href='#SkCanvas_drawString_x'>x</a>
-and its baseline at <a href='#SkCanvas_drawString_y'>y</a>. <a href='undocumented#Text'>Text</a> size is affected by <a href='#Matrix'>Matrix</a> and <a href='SkPaint_Reference#Text_Size'>Paint Text Size</a>.
+<a href='#SkCanvas_drawString_x'>x</a> and <a href='#SkCanvas_drawString_y'>y</a> meaning depends on <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Align'>Align</a> and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> vertical <a href='undocumented#Text'>text</a>; by default
+<a href='#SkCanvas_drawString_string'>string</a> draws left to right, positioning the first <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Left_Side_Bearing'>left side bearing</a> at <a href='#SkCanvas_drawString_x'>x</a>
+and its baseline at <a href='#SkCanvas_drawString_y'>y</a>. <a href='undocumented#Text'>Text</a> <a href='undocumented#Size'>size</a> is affected by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>.
-All elements of <a href='#SkCanvas_drawString_paint'>paint</a>: <a href='undocumented#Path_Effect'>Path Effect</a>, <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Shader'>Shader</a>,
-<a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>; apply to text. By default, draws
-filled 12 point black <a href='undocumented#Glyph'>Glyphs</a>.
+All elements of <a href='#SkCanvas_drawString_paint'>paint</a>: <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkShader'>SkShader</a>,
+<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>; apply to <a href='undocumented#Text'>text</a>. By default, draws
+filled 12 <a href='SkPoint_Reference#Point'>point</a> black <a href='undocumented#Glyph'>glyphs</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawString_string'><code><strong>string</strong></code></a></td>
- <td>character code points or <a href='undocumented#Glyph'>Glyphs</a> drawn,
-ending with a char value of zero</td>
+ <td>character code <a href='SkPoint_Reference#Point'>points</a> or <a href='undocumented#Glyph'>glyphs</a> drawn,</td>
</tr>
- <tr> <td><a name='SkCanvas_drawString_x'><code><strong>x</strong></code></a></td>
- <td>start of <a href='#SkCanvas_drawString_string'>string</a> on <a href='#SkCanvas_drawString_x'>x</a>-axis</td>
+</table>
+
+ending with a char value of zero
+
+### Parameters
+
+<table> <tr> <td><a name='SkCanvas_drawString_x'><code><strong>x</strong></code></a></td>
+ <td>start of <a href='#SkCanvas_drawString_string'>string</a> on x-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawString_y'><code><strong>y</strong></code></a></td>
- <td>start of <a href='#SkCanvas_drawString_string'>string</a> on <a href='#SkCanvas_drawString_y'>y</a>-axis</td>
+ <td>start of <a href='#SkCanvas_drawString_string'>string</a> on y-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawString_paint'><code><strong>paint</strong></code></a></td>
- <td>text size, blend, color, and so on, used to draw</td>
+ <td><a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -5304,34 +5373,40 @@
void <a href='#SkCanvas_drawString'>drawString</a>(const <a href='undocumented#SkString'>SkString</a>& string, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws null terminated <a href='#SkCanvas_drawString_2_string'>string</a>, with origin at (<a href='#SkCanvas_drawString_2_x'>x</a>, <a href='#SkCanvas_drawString_2_y'>y</a>), using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and
-<a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawString_2_paint'>paint</a>.
+Draws null terminated <a href='#SkCanvas_drawString_2_string'>string</a>, with origin at (<a href='#SkCanvas_drawString_2_x'>x</a>, <a href='#SkCanvas_drawString_2_y'>y</a>), using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawString_2_paint'>paint</a>.
-<a href='#SkCanvas_drawString_2_string'>string</a> meaning depends on <a href='SkPaint_Reference#Text_Encoding'>Paint Text Encoding</a>; by default, strings are encoded
-as UTF-8. Other values of <a href='SkPaint_Reference#Text_Encoding'>Paint Text Encoding</a> are unlikely to produce the desired
+<a href='#SkCanvas_drawString_2_string'>string</a> meaning depends on <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a>; by default, strings are encoded
+as UTF-8. Other values of <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> are unlikely to produce the desired
results, since zero bytes may be embedded in the <a href='#SkCanvas_drawString_2_string'>string</a>.
-The <a href='#SkCanvas_drawString_2_string'>string</a> draws left to right, positioning the first glyph left side bearing at <a href='#SkCanvas_drawString_2_x'>x</a>
-and its baseline at <a href='#SkCanvas_drawString_2_y'>y</a>. <a href='undocumented#Text'>Text</a> size is affected by <a href='#Matrix'>Matrix</a> and <a href='SkPaint_Reference#Text_Size'>Paint Text Size</a>.
+<a href='#SkCanvas_drawString_2_x'>x</a> and <a href='#SkCanvas_drawString_2_y'>y</a> meaning depends on <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Align'>Align</a> and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> vertical <a href='undocumented#Text'>text</a>; by default
+<a href='#SkCanvas_drawString_2_string'>string</a> draws left to right, positioning the first <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Left_Side_Bearing'>left side bearing</a> at <a href='#SkCanvas_drawString_2_x'>x</a>
+and its baseline at <a href='#SkCanvas_drawString_2_y'>y</a>. <a href='undocumented#Text'>Text</a> <a href='undocumented#Size'>size</a> is affected by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>.
-All elements of <a href='#SkCanvas_drawString_2_paint'>paint</a>: <a href='undocumented#Path_Effect'>Path Effect</a>, <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Shader'>Shader</a>,
-<a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>; apply to text. By default, draws
-filled 12 point black <a href='undocumented#Glyph'>Glyphs</a>.
+All elements of <a href='#SkCanvas_drawString_2_paint'>paint</a>: <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkShader'>SkShader</a>,
+<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>; apply to <a href='undocumented#Text'>text</a>. By default, draws
+filled 12 <a href='SkPoint_Reference#Point'>point</a> black <a href='undocumented#Glyph'>glyphs</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawString_2_string'><code><strong>string</strong></code></a></td>
- <td>character code points or <a href='undocumented#Glyph'>Glyphs</a> drawn,
-ending with a char value of zero</td>
+ <td>character code <a href='SkPoint_Reference#Point'>points</a> or <a href='undocumented#Glyph'>glyphs</a> drawn,</td>
</tr>
- <tr> <td><a name='SkCanvas_drawString_2_x'><code><strong>x</strong></code></a></td>
- <td>start of <a href='#SkCanvas_drawString_2_string'>string</a> on <a href='#SkCanvas_drawString_2_x'>x</a>-axis</td>
+</table>
+
+ending with a char value of zero
+
+### Parameters
+
+<table> <tr> <td><a name='SkCanvas_drawString_2_x'><code><strong>x</strong></code></a></td>
+ <td>start of <a href='#SkCanvas_drawString_2_string'>string</a> on x-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawString_2_y'><code><strong>y</strong></code></a></td>
- <td>start of <a href='#SkCanvas_drawString_2_string'>string</a> on <a href='#SkCanvas_drawString_2_y'>y</a>-axis</td>
+ <td>start of <a href='#SkCanvas_drawString_2_string'>string</a> on y-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawString_2_paint'><code><strong>paint</strong></code></a></td>
- <td>text size, blend, color, and so on, used to draw</td>
+ <td><a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a>, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -5351,34 +5426,35 @@
void <a href='#SkCanvas_drawPosText'>drawPosText</a>(const void* text, size_t byteLength, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pos[], const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws each glyph in <a href='#SkCanvas_drawPosText_text'>text</a> with the origin in <a href='#SkCanvas_drawPosText_pos'>pos</a> array, using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and
-<a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawPosText_paint'>paint</a>. The number of entries in <a href='#SkCanvas_drawPosText_pos'>pos</a> array must match the number of <a href='undocumented#Glyph'>Glyphs</a>
+Draws each <a href='undocumented#Glyph'>glyph</a> in <a href='#SkCanvas_drawPosText_text'>text</a> with the origin in <a href='#SkCanvas_drawPosText_pos'>pos</a> array, using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPosText_paint'>paint</a>. The number of entries in <a href='#SkCanvas_drawPosText_pos'>pos</a> array must match the number of <a href='undocumented#Glyph'>glyphs</a>
described by <a href='#SkCanvas_drawPosText_byteLength'>byteLength</a> of <a href='#SkCanvas_drawPosText_text'>text</a>.
-<a href='#SkCanvas_drawPosText_text'>text</a> meaning depends on <a href='SkPaint_Reference#Text_Encoding'>Paint Text Encoding</a>; by default, <a href='#SkCanvas_drawPosText_text'>text</a> is encoded as
-UTF-8. glyph left side bearing and baseline are relative to <a href='SkPoint_Reference#Point'>Point</a> in <a href='#SkCanvas_drawPosText_pos'>pos</a> array.
-<a href='undocumented#Text'>Text</a> size is affected by <a href='#Matrix'>Matrix</a> and <a href='SkPaint_Reference#Text_Size'>Paint Text Size</a>.
+<a href='#SkCanvas_drawPosText_text'>text</a> meaning depends on <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a>; by default, <a href='#SkCanvas_drawPosText_text'>text</a> is encoded as
+UTF-8. <a href='#SkCanvas_drawPosText_pos'>pos</a> elements meaning depends on <a href='SkPaint_Reference#SkPaint'>SkPaint</a> vertical <a href='#SkCanvas_drawPosText_text'>text</a>; by default
+<a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Left_Side_Bearing'>left side bearing</a> and baseline are relative to <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='#SkCanvas_drawPosText_pos'>pos</a> array.
+<a href='undocumented#Text'>Text</a> <a href='undocumented#Size'>size</a> is affected by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPosText_text'>text</a> <a href='undocumented#Size'>size</a>.
-All elements of <a href='#SkCanvas_drawPosText_paint'>paint</a>: <a href='undocumented#Path_Effect'>Path Effect</a>, <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Shader'>Shader</a>,
-<a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>; apply to <a href='#SkCanvas_drawPosText_text'>text</a>. By default, draws
-filled 12 point black <a href='undocumented#Glyph'>Glyphs</a>.
+All elements of <a href='#SkCanvas_drawPosText_paint'>paint</a>: <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkShader'>SkShader</a>,
+<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>; apply to <a href='#SkCanvas_drawPosText_text'>text</a>. By default, draws
+filled 12 <a href='SkPoint_Reference#Point'>point</a> black <a href='undocumented#Glyph'>glyphs</a>.
-Layout engines such as Harfbuzz typically position each glyph
-rather than using the font advance widths.
+Layout engines such as Harfbuzz typically position each <a href='undocumented#Glyph'>glyph</a>
+rather than using the <a href='undocumented#Font_Advance'>font advance</a> widths.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawPosText_text'><code><strong>text</strong></code></a></td>
- <td>character code points or <a href='undocumented#Glyph'>Glyphs</a> drawn</td>
+ <td>character code <a href='SkPoint_Reference#Point'>points</a> or <a href='undocumented#Glyph'>glyphs</a> drawn</td>
</tr>
<tr> <td><a name='SkCanvas_drawPosText_byteLength'><code><strong>byteLength</strong></code></a></td>
<td>byte length of <a href='#SkCanvas_drawPosText_text'>text</a> array</td>
</tr>
<tr> <td><a name='SkCanvas_drawPosText_pos'><code><strong>pos</strong></code></a></td>
- <td>array of glyph origins</td>
+ <td>array of <a href='undocumented#Glyph'>glyph</a> origins</td>
</tr>
<tr> <td><a name='SkCanvas_drawPosText_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='#SkCanvas_drawPosText_text'>text</a> size, blend, color, and so on, used to draw</td>
+ <td><a href='#SkCanvas_drawPosText_text'>text</a> <a href='undocumented#Size'>size</a>, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -5399,39 +5475,40 @@
const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws each glyph in <a href='#SkCanvas_drawPosTextH_text'>text</a> with its (x, y) origin composed from <a href='#SkCanvas_drawPosTextH_xpos'>xpos</a> array and
-<a href='#SkCanvas_drawPosTextH_constY'>constY</a>, using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawPosTextH_paint'>paint</a>. The number of entries in <a href='#SkCanvas_drawPosTextH_xpos'>xpos</a> array
-must match the number of <a href='undocumented#Glyph'>Glyphs</a> described by <a href='#SkCanvas_drawPosTextH_byteLength'>byteLength</a> of <a href='#SkCanvas_drawPosTextH_text'>text</a>.
+Draws each <a href='undocumented#Glyph'>glyph</a> in <a href='#SkCanvas_drawPosTextH_text'>text</a> with its origin composed from <a href='#SkCanvas_drawPosTextH_xpos'>xpos</a> array and
+<a href='#SkCanvas_drawPosTextH_constY'>constY</a>, using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPosTextH_paint'>paint</a>. The number of entries in <a href='#SkCanvas_drawPosTextH_xpos'>xpos</a> array
+must match the number of <a href='undocumented#Glyph'>glyphs</a> described by <a href='#SkCanvas_drawPosTextH_byteLength'>byteLength</a> of <a href='#SkCanvas_drawPosTextH_text'>text</a>.
-<a href='#SkCanvas_drawPosTextH_text'>text</a> meaning depends on <a href='SkPaint_Reference#Text_Encoding'>Paint Text Encoding</a>; by default, <a href='#SkCanvas_drawPosTextH_text'>text</a> is encoded as
-UTF-8. Each glyph left side bearing is positioned at an <a href='#SkCanvas_drawPosTextH_xpos'>xpos</a> element and
-its baseline is positioned at <a href='#SkCanvas_drawPosTextH_constY'>constY</a>. <a href='undocumented#Text'>Text</a> size is affected by <a href='#Matrix'>Matrix</a> and
-<a href='SkPaint_Reference#Text_Size'>Paint Text Size</a>.
+<a href='#SkCanvas_drawPosTextH_text'>text</a> meaning depends on <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a>; by default, <a href='#SkCanvas_drawPosTextH_text'>text</a> is encoded as
+UTF-8. <a href='#SkCanvas_drawPosTextH_xpos'>xpos</a> elements meaning depends on <a href='SkPaint_Reference#SkPaint'>SkPaint</a> vertical <a href='#SkCanvas_drawPosTextH_text'>text</a>;
+by default each <a href='undocumented#Glyph'>glyph</a> <a href='undocumented#Left_Side_Bearing'>left side bearing</a> is positioned at an <a href='#SkCanvas_drawPosTextH_xpos'>xpos</a> element and
+its baseline is positioned at <a href='#SkCanvas_drawPosTextH_constY'>constY</a>. <a href='undocumented#Text'>Text</a> <a href='undocumented#Size'>size</a> is affected by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> and
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPosTextH_text'>text</a> <a href='undocumented#Size'>size</a>.
-All elements of <a href='#SkCanvas_drawPosTextH_paint'>paint</a>: <a href='undocumented#Path_Effect'>Path Effect</a>, <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Shader'>Shader</a>,
-<a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>; apply to <a href='#SkCanvas_drawPosTextH_text'>text</a>. By default, draws
-filled 12 point black <a href='undocumented#Glyph'>Glyphs</a>.
+All elements of <a href='#SkCanvas_drawPosTextH_paint'>paint</a>: <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkShader'>SkShader</a>,
+<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>; apply to <a href='#SkCanvas_drawPosTextH_text'>text</a>. By default, draws
+filled 12 <a href='SkPoint_Reference#Point'>point</a> black <a href='undocumented#Glyph'>glyphs</a>.
-Layout engines such as Harfbuzz typically position each glyph
-rather than using the font advance widths if all <a href='undocumented#Glyph'>Glyphs</a> share the same
+Layout engines such as Harfbuzz typically position each <a href='undocumented#Glyph'>glyph</a>
+rather than using the <a href='undocumented#Font_Advance'>font advance</a> widths if all <a href='undocumented#Glyph'>glyphs</a> share the same
baseline.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawPosTextH_text'><code><strong>text</strong></code></a></td>
- <td>character code points or <a href='undocumented#Glyph'>Glyphs</a> drawn</td>
+ <td>character code <a href='SkPoint_Reference#Point'>points</a> or <a href='undocumented#Glyph'>glyphs</a> drawn</td>
</tr>
<tr> <td><a name='SkCanvas_drawPosTextH_byteLength'><code><strong>byteLength</strong></code></a></td>
<td>byte length of <a href='#SkCanvas_drawPosTextH_text'>text</a> array</td>
</tr>
<tr> <td><a name='SkCanvas_drawPosTextH_xpos'><code><strong>xpos</strong></code></a></td>
- <td>array of x-axis positions, used to position each glyph</td>
+ <td>array of x-axis positions, used to position each <a href='undocumented#Glyph'>glyph</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawPosTextH_constY'><code><strong>constY</strong></code></a></td>
<td>shared y-axis value for all of x-axis positions</td>
</tr>
<tr> <td><a name='SkCanvas_drawPosTextH_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='#SkCanvas_drawPosTextH_text'>text</a> size, blend, color, and so on, used to draw</td>
+ <td><a href='#SkCanvas_drawPosTextH_text'>text</a> <a href='undocumented#Size'>size</a>, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -5452,35 +5529,35 @@
const <a href='SkRect_Reference#SkRect'>SkRect</a>* cullRect, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws <a href='#SkCanvas_drawTextRSXform_text'>text</a>, transforming each glyph by the corresponding <a href='undocumented#SkRSXform'>SkRSXform</a>,
-using <a href='#Clip'>Clip</a>, <a href='#Matrix'>Matrix</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawTextRSXform_paint'>paint</a>.
+Draws <a href='#SkCanvas_drawTextRSXform_text'>text</a>, transforming each <a href='undocumented#Glyph'>glyph</a> by the corresponding <a href='undocumented#SkRSXform'>SkRSXform</a>,
+using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawTextRSXform_paint'>paint</a>.
-<a href='undocumented#RSXform'>RSXform</a> <a href='#SkCanvas_drawTextRSXform_xform'>xform</a> array specifies a separate square scale, rotation, and translation
-for each glyph. <a href='#SkCanvas_drawTextRSXform_xform'>xform</a> does not affect <a href='#SkCanvas_drawTextRSXform_paint'>paint</a> <a href='undocumented#Shader'>Shader</a>.
+<a href='undocumented#SkRSXform'>SkRSXform</a> <a href='#SkCanvas_drawTextRSXform_xform'>xform</a> array specifies a separate square scale, rotation, and translation
+for each <a href='undocumented#Glyph'>glyph</a>. <a href='#SkCanvas_drawTextRSXform_xform'>xform</a> does not affect <a href='#SkCanvas_drawTextRSXform_paint'>paint</a> <a href='undocumented#SkShader'>SkShader</a>.
-Optional <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkCanvas_drawTextRSXform_cullRect'>cullRect</a> is a conservative bounds of <a href='#SkCanvas_drawTextRSXform_text'>text</a>, taking into account
-<a href='undocumented#RSXform'>RSXform</a> and <a href='#SkCanvas_drawTextRSXform_paint'>paint</a>. If <a href='#SkCanvas_drawTextRSXform_cullRect'>cullRect</a> is outside of <a href='#Clip'>Clip</a>, canvas can skip drawing.
+Optional <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawTextRSXform_cullRect'>cullRect</a> is a conservative bounds of <a href='#SkCanvas_drawTextRSXform_text'>text</a>, taking into account
+<a href='undocumented#SkRSXform'>SkRSXform</a> and <a href='#SkCanvas_drawTextRSXform_paint'>paint</a>. If <a href='#SkCanvas_drawTextRSXform_cullRect'>cullRect</a> is outside of clip, <a href='SkCanvas_Reference#Canvas'>canvas</a> can skip drawing.
-All elements of <a href='#SkCanvas_drawTextRSXform_paint'>paint</a>: <a href='undocumented#Path_Effect'>Path Effect</a>, <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Shader'>Shader</a>,
-<a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>; apply to <a href='#SkCanvas_drawTextRSXform_text'>text</a>. By default, draws
-filled 12 point black <a href='undocumented#Glyph'>Glyphs</a>.
+All elements of <a href='#SkCanvas_drawTextRSXform_paint'>paint</a>: <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkShader'>SkShader</a>,
+<a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>; apply to <a href='#SkCanvas_drawTextRSXform_text'>text</a>. By default, draws
+filled 12 <a href='SkPoint_Reference#Point'>point</a> black <a href='undocumented#Glyph'>glyphs</a>.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawTextRSXform_text'><code><strong>text</strong></code></a></td>
- <td>character code points or <a href='undocumented#Glyph'>Glyphs</a> drawn</td>
+ <td>character code <a href='SkPoint_Reference#Point'>points</a> or <a href='undocumented#Glyph'>glyphs</a> drawn</td>
</tr>
<tr> <td><a name='SkCanvas_drawTextRSXform_byteLength'><code><strong>byteLength</strong></code></a></td>
<td>byte length of <a href='#SkCanvas_drawTextRSXform_text'>text</a> array</td>
</tr>
<tr> <td><a name='SkCanvas_drawTextRSXform_xform'><code><strong>xform</strong></code></a></td>
- <td><a href='undocumented#RSXform'>RSXform</a> rotates, scales, and translates each glyph individually</td>
+ <td><a href='undocumented#SkRSXform'>SkRSXform</a> rotates, scales, and translates each <a href='undocumented#Glyph'>glyph</a> individually</td>
</tr>
<tr> <td><a name='SkCanvas_drawTextRSXform_cullRect'><code><strong>cullRect</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> bounds of <a href='#SkCanvas_drawTextRSXform_text'>text</a> for efficient clipping; or nullptr</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> bounds of <a href='#SkCanvas_drawTextRSXform_text'>text</a> for efficient clipping; or nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_drawTextRSXform_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='#SkCanvas_drawTextRSXform_text'>text</a> size, blend, color, and so on, used to draw</td>
+ <td><a href='#SkCanvas_drawTextRSXform_text'>text</a> <a href='undocumented#Size'>size</a>, blend, <a href='SkColor_Reference#Color'>color</a>, and so on, used to draw</td>
</tr>
</table>
@@ -5593,11 +5670,11 @@
void <a href='#SkCanvas_drawPicture'>drawPicture</a>(const <a href='SkPicture_Reference#SkPicture'>SkPicture</a>* picture)
</pre>
-Draws <a href='SkPicture_Reference#Picture'>Picture</a> <a href='#SkCanvas_drawPicture_picture'>picture</a>, using <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>.
-<a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a> are unchanged by <a href='#SkCanvas_drawPicture_picture'>picture</a> contents, as if
-<a href='#SkCanvas_save'>save</a>() was called before and <a href='#SkCanvas_restore'>restore</a>() was called after <a href='#SkCanvas_drawPicture'>drawPicture</a>.
+Draws <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='#SkCanvas_drawPicture_picture'>picture</a>, using clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> are unchanged by <a href='#SkCanvas_drawPicture_picture'>picture</a> contents, as if
+<a href='#SkCanvas_save'>save()</a> was called before and <a href='#SkCanvas_restore'>restore()</a> was called after <a href='#SkCanvas_drawPicture'>drawPicture</a>().
-<a href='SkPicture_Reference#Picture'>Picture</a> records a series of draw commands for later playback.
+<a href='SkPicture_Reference#SkPicture'>SkPicture</a> records a series of draw commands for later playback.
### Parameters
@@ -5622,11 +5699,11 @@
void <a href='#SkCanvas_drawPicture'>drawPicture</a>(const <a href='undocumented#sk_sp'>sk sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>>& picture)
</pre>
-Draws <a href='SkPicture_Reference#Picture'>Picture</a> <a href='#SkCanvas_drawPicture_2_picture'>picture</a>, using <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>.
-<a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a> are unchanged by <a href='#SkCanvas_drawPicture_2_picture'>picture</a> contents, as if
-<a href='#SkCanvas_save'>save</a>() was called before and <a href='#SkCanvas_restore'>restore</a>() was called after <a href='#SkCanvas_drawPicture'>drawPicture</a>.
+Draws <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='#SkCanvas_drawPicture_2_picture'>picture</a>, using clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+Clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> are unchanged by <a href='#SkCanvas_drawPicture_2_picture'>picture</a> contents, as if
+<a href='#SkCanvas_save'>save()</a> was called before and <a href='#SkCanvas_restore'>restore()</a> was called after <a href='#SkCanvas_drawPicture'>drawPicture</a>().
-<a href='SkPicture_Reference#Picture'>Picture</a> records a series of draw commands for later playback.
+<a href='SkPicture_Reference#SkPicture'>SkPicture</a> records a series of draw commands for later playback.
### Parameters
@@ -5651,12 +5728,12 @@
void <a href='#SkCanvas_drawPicture'>drawPicture</a>(const <a href='SkPicture_Reference#SkPicture'>SkPicture</a>* picture, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* matrix, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
</pre>
-Draws <a href='SkPicture_Reference#Picture'>Picture</a> <a href='#SkCanvas_drawPicture_3_picture'>picture</a>, using <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>; transforming <a href='#SkCanvas_drawPicture_3_picture'>picture</a> with
-<a href='#Matrix'>Matrix</a> <a href='#SkCanvas_drawPicture_3_matrix'>matrix</a>, if provided; and use <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawPicture_3_paint'>paint</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='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, if provided.
+Draws <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='#SkCanvas_drawPicture_3_picture'>picture</a>, using clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>; transforming <a href='#SkCanvas_drawPicture_3_picture'>picture</a> with
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkCanvas_drawPicture_3_matrix'>matrix</a>, if provided; and use <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPicture_3_paint'>paint alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>,
+<a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, if provided.
-<a href='#SkCanvas_drawPicture_3_matrix'>matrix</a> transformation is equivalent to: <a href='#SkCanvas_save'>save</a>(), <a href='#SkCanvas_concat'>concat</a>(), <a href='#SkCanvas_drawPicture'>drawPicture</a>, <a href='#SkCanvas_restore'>restore</a>().
-<a href='#SkCanvas_drawPicture_3_paint'>paint</a> use is equivalent to: <a href='#SkCanvas_saveLayer'>saveLayer</a>, <a href='#SkCanvas_drawPicture'>drawPicture</a>, <a href='#SkCanvas_restore'>restore</a>().
+<a href='#SkCanvas_drawPicture_3_matrix'>matrix</a> transformation is equivalent to: <a href='#SkCanvas_save'>save()</a>, <a href='#SkCanvas_concat'>concat()</a>, <a href='#SkCanvas_drawPicture'>drawPicture</a>(), <a href='#SkCanvas_restore'>restore()</a>.
+<a href='#SkCanvas_drawPicture_3_paint'>paint</a> use is equivalent to: <a href='#SkCanvas_saveLayer'>saveLayer</a>(), <a href='#SkCanvas_drawPicture'>drawPicture</a>(), <a href='#SkCanvas_restore'>restore()</a>.
### Parameters
@@ -5664,10 +5741,10 @@
<td>recorded drawing commands to play</td>
</tr>
<tr> <td><a name='SkCanvas_drawPicture_3_matrix'><code><strong>matrix</strong></code></a></td>
- <td><a href='#Matrix'>Matrix</a> to rotate, scale, translate, and so on; may be nullptr</td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate, scale, translate, and so on; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_drawPicture_3_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> to apply transparency, filtering, and so on; may be nullptr</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> to apply transparency, filtering, and so on; may be nullptr</td>
</tr>
</table>
@@ -5687,12 +5764,12 @@
void <a href='#SkCanvas_drawPicture'>drawPicture</a>(const <a href='undocumented#sk_sp'>sk sp</a><<a href='SkPicture_Reference#SkPicture'>SkPicture</a>>& picture, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* matrix, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
</pre>
-Draws <a href='SkPicture_Reference#Picture'>Picture</a> <a href='#SkCanvas_drawPicture_4_picture'>picture</a>, using <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>; transforming <a href='#SkCanvas_drawPicture_4_picture'>picture</a> with
-<a href='#Matrix'>Matrix</a> <a href='#SkCanvas_drawPicture_4_matrix'>matrix</a>, if provided; and use <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawPicture_4_paint'>paint</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='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, if provided.
+Draws <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='#SkCanvas_drawPicture_4_picture'>picture</a>, using clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>; transforming <a href='#SkCanvas_drawPicture_4_picture'>picture</a> with
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkCanvas_drawPicture_4_matrix'>matrix</a>, if provided; and use <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawPicture_4_paint'>paint alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>,
+<a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, if provided.
-<a href='#SkCanvas_drawPicture_4_matrix'>matrix</a> transformation is equivalent to: <a href='#SkCanvas_save'>save</a>(), <a href='#SkCanvas_concat'>concat</a>(), <a href='#SkCanvas_drawPicture'>drawPicture</a>, <a href='#SkCanvas_restore'>restore</a>().
-<a href='#SkCanvas_drawPicture_4_paint'>paint</a> use is equivalent to: <a href='#SkCanvas_saveLayer'>saveLayer</a>, <a href='#SkCanvas_drawPicture'>drawPicture</a>, <a href='#SkCanvas_restore'>restore</a>().
+<a href='#SkCanvas_drawPicture_4_matrix'>matrix</a> transformation is equivalent to: <a href='#SkCanvas_save'>save()</a>, <a href='#SkCanvas_concat'>concat()</a>, <a href='#SkCanvas_drawPicture'>drawPicture</a>(), <a href='#SkCanvas_restore'>restore()</a>.
+<a href='#SkCanvas_drawPicture_4_paint'>paint</a> use is equivalent to: <a href='#SkCanvas_saveLayer'>saveLayer</a>(), <a href='#SkCanvas_drawPicture'>drawPicture</a>(), <a href='#SkCanvas_restore'>restore()</a>.
### Parameters
@@ -5700,10 +5777,10 @@
<td>recorded drawing commands to play</td>
</tr>
<tr> <td><a name='SkCanvas_drawPicture_4_matrix'><code><strong>matrix</strong></code></a></td>
- <td><a href='#Matrix'>Matrix</a> to rotate, scale, translate, and so on; may be nullptr</td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate, scale, translate, and so on; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_drawPicture_4_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> to apply transparency, filtering, and so on; may be nullptr</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> to apply transparency, filtering, and so on; may be nullptr</td>
</tr>
</table>
@@ -5723,9 +5800,9 @@
void <a href='#SkCanvas_drawVertices'>drawVertices</a>(const <a href='undocumented#SkVertices'>SkVertices</a>* vertices, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws <a href='undocumented#Vertices'>Vertices</a> <a href='#SkCanvas_drawVertices_vertices'>vertices</a>, a triangle mesh, using <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>.
-If <a href='undocumented#Texs'>Vertices Texs</a> and <a href='undocumented#Colors'>Vertices Colors</a> are defined in <a href='#SkCanvas_drawVertices_vertices'>vertices</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawVertices_paint'>paint</a>
-contains <a href='undocumented#Shader'>Shader</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> <a href='#SkCanvas_drawVertices_mode'>mode</a> combines <a href='undocumented#Colors'>Vertices Colors</a> with <a href='undocumented#Shader'>Shader</a>.
+Draws <a href='undocumented#SkVertices'>SkVertices</a> <a href='#SkCanvas_drawVertices_vertices'>vertices</a>, a triangle mesh, using clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+If <a href='undocumented#Vertices_Texs'>vertices texs</a> and <a href='undocumented#Vertices_Colors'>vertices colors</a> are defined in <a href='#SkCanvas_drawVertices_vertices'>vertices</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawVertices_paint'>paint</a>
+contains <a href='undocumented#SkShader'>SkShader</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkCanvas_drawVertices_mode'>mode</a> combines <a href='undocumented#Vertices_Colors'>vertices colors</a> with <a href='undocumented#SkShader'>SkShader</a>.
### Parameters
@@ -5733,10 +5810,10 @@
<td>triangle mesh to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawVertices_mode'><code><strong>mode</strong></code></a></td>
- <td>combines <a href='undocumented#Colors'>Vertices Colors</a> with <a href='undocumented#Shader'>Shader</a>, if both are present</td>
+ <td>combines <a href='undocumented#Vertices_Colors'>vertices colors</a> with <a href='undocumented#SkShader'>SkShader</a>, if both are present</td>
</tr>
<tr> <td><a name='SkCanvas_drawVertices_paint'><code><strong>paint</strong></code></a></td>
- <td>specifies the <a href='undocumented#Shader'>Shader</a>, used as <a href='undocumented#Vertices'>Vertices</a> texture; may be nullptr</td>
+ <td>specifies the <a href='undocumented#SkShader'>SkShader</a>, used as <a href='undocumented#SkVertices'>SkVertices</a> <a href='undocumented#Texture'>texture</a>; may be nullptr</td>
</tr>
</table>
@@ -5756,9 +5833,9 @@
void <a href='#SkCanvas_drawVertices'>drawVertices</a>(const <a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkVertices'>SkVertices</a>>& vertices, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws <a href='undocumented#Vertices'>Vertices</a> <a href='#SkCanvas_drawVertices_2_vertices'>vertices</a>, a triangle mesh, using <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>.
-If <a href='undocumented#Texs'>Vertices Texs</a> and <a href='undocumented#Colors'>Vertices Colors</a> are defined in <a href='#SkCanvas_drawVertices_2_vertices'>vertices</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawVertices_2_paint'>paint</a>
-contains <a href='undocumented#Shader'>Shader</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> <a href='#SkCanvas_drawVertices_2_mode'>mode</a> combines <a href='undocumented#Colors'>Vertices Colors</a> with <a href='undocumented#Shader'>Shader</a>.
+Draws <a href='undocumented#SkVertices'>SkVertices</a> <a href='#SkCanvas_drawVertices_2_vertices'>vertices</a>, a triangle mesh, using clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+If <a href='undocumented#Vertices_Texs'>vertices texs</a> and <a href='undocumented#Vertices_Colors'>vertices colors</a> are defined in <a href='#SkCanvas_drawVertices_2_vertices'>vertices</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawVertices_2_paint'>paint</a>
+contains <a href='undocumented#SkShader'>SkShader</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkCanvas_drawVertices_2_mode'>mode</a> combines <a href='undocumented#Vertices_Colors'>vertices colors</a> with <a href='undocumented#SkShader'>SkShader</a>.
### Parameters
@@ -5766,10 +5843,10 @@
<td>triangle mesh to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawVertices_2_mode'><code><strong>mode</strong></code></a></td>
- <td>combines <a href='undocumented#Colors'>Vertices Colors</a> with <a href='undocumented#Shader'>Shader</a>, if both are present</td>
+ <td>combines <a href='undocumented#Vertices_Colors'>vertices colors</a> with <a href='undocumented#SkShader'>SkShader</a>, if both are present</td>
</tr>
<tr> <td><a name='SkCanvas_drawVertices_2_paint'><code><strong>paint</strong></code></a></td>
- <td>specifies the <a href='undocumented#Shader'>Shader</a>, used as <a href='undocumented#Vertices'>Vertices</a> texture, may be nullptr</td>
+ <td>specifies the <a href='undocumented#SkShader'>SkShader</a>, used as <a href='undocumented#SkVertices'>SkVertices</a> <a href='undocumented#Texture'>texture</a>, may be nullptr</td>
</tr>
</table>
@@ -5790,14 +5867,14 @@
<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws <a href='undocumented#Vertices'>Vertices</a> <a href='#SkCanvas_drawVertices_3_vertices'>vertices</a>, a triangle mesh, using <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>. Bone data is used to
-deform <a href='#SkCanvas_drawVertices_3_vertices'>vertices</a> with bone weights.
-If <a href='undocumented#Texs'>Vertices Texs</a> and <a href='undocumented#Colors'>Vertices Colors</a> are defined in <a href='#SkCanvas_drawVertices_3_vertices'>vertices</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawVertices_3_paint'>paint</a>
-contains <a href='undocumented#Shader'>Shader</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> <a href='#SkCanvas_drawVertices_3_mode'>mode</a> combines <a href='undocumented#Colors'>Vertices Colors</a> with <a href='undocumented#Shader'>Shader</a>.
-The first element of <a href='#SkCanvas_drawVertices_3_bones'>bones</a> should be an object to world space transformation matrix that
+Draws <a href='undocumented#SkVertices'>SkVertices</a> <a href='#SkCanvas_drawVertices_3_vertices'>vertices</a>, a triangle mesh, using clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. Bone <a href='undocumented#Data'>data</a> is used to
+deform <a href='#SkCanvas_drawVertices_3_vertices'>vertices</a> with bone <a href='SkPath_Reference#Conic_Weight'>weights</a>.
+If <a href='undocumented#Vertices_Texs'>vertices texs</a> and <a href='undocumented#Vertices_Colors'>vertices colors</a> are defined in <a href='#SkCanvas_drawVertices_3_vertices'>vertices</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawVertices_3_paint'>paint</a>
+contains <a href='undocumented#SkShader'>SkShader</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkCanvas_drawVertices_3_mode'>mode</a> combines <a href='undocumented#Vertices_Colors'>vertices colors</a> with <a href='undocumented#SkShader'>SkShader</a>.
+The first element of <a href='#SkCanvas_drawVertices_3_bones'>bones</a> should be an object to world space transformation <a href='SkMatrix_Reference#Matrix'>matrix</a> that
will be applied before performing mesh deformations. If no such transformation is needed,
-it should be the identity matrix.
-<a href='#SkCanvas_drawVertices_3_boneCount'>boneCount</a> must be at most 80, and thus the size of <a href='#SkCanvas_drawVertices_3_bones'>bones</a> should be at most 80.
+it should be the identity <a href='SkMatrix_Reference#Matrix'>matrix</a>.
+<a href='#SkCanvas_drawVertices_3_boneCount'>boneCount</a> must be at most 80, and thus the <a href='undocumented#Size'>size</a> of <a href='#SkCanvas_drawVertices_3_bones'>bones</a> should be at most 80.
### Parameters
@@ -5805,16 +5882,16 @@
<td>triangle mesh to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawVertices_3_bones'><code><strong>bones</strong></code></a></td>
- <td>bone matrix data</td>
+ <td>bone <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='undocumented#Data'>data</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawVertices_3_boneCount'><code><strong>boneCount</strong></code></a></td>
- <td>number of bone matrices</td>
+ <td>number of bone <a href='SkMatrix_Reference#Matrix'>matrices</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawVertices_3_mode'><code><strong>mode</strong></code></a></td>
- <td>combines <a href='undocumented#Colors'>Vertices Colors</a> with <a href='undocumented#Shader'>Shader</a>, if both are present</td>
+ <td>combines <a href='undocumented#Vertices_Colors'>vertices colors</a> with <a href='undocumented#SkShader'>SkShader</a>, if both are present</td>
</tr>
<tr> <td><a name='SkCanvas_drawVertices_3_paint'><code><strong>paint</strong></code></a></td>
- <td>specifies the <a href='undocumented#Shader'>Shader</a>, used as <a href='undocumented#Vertices'>Vertices</a> texture, may be nullptr</td>
+ <td>specifies the <a href='undocumented#SkShader'>SkShader</a>, used as <a href='undocumented#SkVertices'>SkVertices</a> <a href='undocumented#Texture'>texture</a>, may be nullptr</td>
</tr>
</table>
@@ -5831,14 +5908,14 @@
<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws <a href='undocumented#Vertices'>Vertices</a> <a href='#SkCanvas_drawVertices_4_vertices'>vertices</a>, a triangle mesh, using <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>. Bone data is used to
-deform <a href='#SkCanvas_drawVertices_4_vertices'>vertices</a> with bone weights.
-If <a href='undocumented#Texs'>Vertices Texs</a> and <a href='undocumented#Colors'>Vertices Colors</a> are defined in <a href='#SkCanvas_drawVertices_4_vertices'>vertices</a>, and <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkCanvas_drawVertices_4_paint'>paint</a>
-contains <a href='undocumented#Shader'>Shader</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> <a href='#SkCanvas_drawVertices_4_mode'>mode</a> combines <a href='undocumented#Colors'>Vertices Colors</a> with <a href='undocumented#Shader'>Shader</a>.
-The first element of <a href='#SkCanvas_drawVertices_4_bones'>bones</a> should be an object to world space transformation matrix that
+Draws <a href='undocumented#SkVertices'>SkVertices</a> <a href='#SkCanvas_drawVertices_4_vertices'>vertices</a>, a triangle mesh, using clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. Bone <a href='undocumented#Data'>data</a> is used to
+deform <a href='#SkCanvas_drawVertices_4_vertices'>vertices</a> with bone <a href='SkPath_Reference#Conic_Weight'>weights</a>.
+If <a href='undocumented#Vertices_Texs'>vertices texs</a> and <a href='undocumented#Vertices_Colors'>vertices colors</a> are defined in <a href='#SkCanvas_drawVertices_4_vertices'>vertices</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawVertices_4_paint'>paint</a>
+contains <a href='undocumented#SkShader'>SkShader</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkCanvas_drawVertices_4_mode'>mode</a> combines <a href='undocumented#Vertices_Colors'>vertices colors</a> with <a href='undocumented#SkShader'>SkShader</a>.
+The first element of <a href='#SkCanvas_drawVertices_4_bones'>bones</a> should be an object to world space transformation <a href='SkMatrix_Reference#Matrix'>matrix</a> that
will be applied before performing mesh deformations. If no such transformation is needed,
-it should be the identity matrix.
-<a href='#SkCanvas_drawVertices_4_boneCount'>boneCount</a> must be at most 80, and thus the size of <a href='#SkCanvas_drawVertices_4_bones'>bones</a> should be at most 80.
+it should be the identity <a href='SkMatrix_Reference#Matrix'>matrix</a>.
+<a href='#SkCanvas_drawVertices_4_boneCount'>boneCount</a> must be at most 80, and thus the <a href='undocumented#Size'>size</a> of <a href='#SkCanvas_drawVertices_4_bones'>bones</a> should be at most 80.
### Parameters
@@ -5846,16 +5923,16 @@
<td>triangle mesh to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawVertices_4_bones'><code><strong>bones</strong></code></a></td>
- <td>bone matrix data</td>
+ <td>bone <a href='SkMatrix_Reference#Matrix'>matrix</a> <a href='undocumented#Data'>data</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawVertices_4_boneCount'><code><strong>boneCount</strong></code></a></td>
- <td>number of bone matrices</td>
+ <td>number of bone <a href='SkMatrix_Reference#Matrix'>matrices</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawVertices_4_mode'><code><strong>mode</strong></code></a></td>
- <td>combines <a href='undocumented#Colors'>Vertices Colors</a> with <a href='undocumented#Shader'>Shader</a>, if both are present</td>
+ <td>combines <a href='undocumented#Vertices_Colors'>vertices colors</a> with <a href='undocumented#SkShader'>SkShader</a>, if both are present</td>
</tr>
<tr> <td><a name='SkCanvas_drawVertices_4_paint'><code><strong>paint</strong></code></a></td>
- <td>specifies the <a href='undocumented#Shader'>Shader</a>, used as <a href='undocumented#Vertices'>Vertices</a> texture, may be nullptr</td>
+ <td>specifies the <a href='undocumented#SkShader'>SkShader</a>, used as <a href='undocumented#SkVertices'>SkVertices</a> <a href='undocumented#Texture'>texture</a>, may be nullptr</td>
</tr>
</table>
@@ -5872,41 +5949,46 @@
<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws a <a href='undocumented#Coons_Patch'>Coons Patch</a>: the interpolation of four <a href='#SkCanvas_drawPatch_cubics'>cubics</a> with shared corners,
-associating a color, and optionally a texture <a href='SkPoint_Reference#Point'>Point</a>, with each corner.
+Draws a <a href='undocumented#Coons_Patch'>Coons patch</a>: the interpolation of four <a href='#SkCanvas_drawPatch_cubics'>cubics</a> with shared corners,
+associating a <a href='SkColor_Reference#Color'>color</a>, and optionally a <a href='undocumented#Texture'>texture</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, with each corner.
-<a href='undocumented#Coons_Patch'>Coons Patch</a> uses <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>, <a href='#SkCanvas_drawPatch_paint'>paint</a> <a href='undocumented#Shader'>Shader</a>, <a href='undocumented#Color_Filter'>Color Filter</a>,
-<a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>. If <a href='undocumented#Shader'>Shader</a> is provided it is treated
-as <a href='undocumented#Coons_Patch'>Coons Patch</a> texture; <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> <a href='#SkCanvas_drawPatch_mode'>mode</a> combines <a href='SkColor_Reference#Color'>Color</a> <a href='#SkCanvas_drawPatch_colors'>colors</a> and <a href='undocumented#Shader'>Shader</a> if
+<a href='undocumented#Coons_Patch'>Coons patch</a> uses clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='#SkCanvas_drawPatch_paint'>paint</a> <a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>,
+<a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>. If <a href='undocumented#SkShader'>SkShader</a> is provided it is treated
+as <a href='undocumented#Coons_Patch'>Coons patch</a> <a href='undocumented#Texture'>texture</a>; <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkCanvas_drawPatch_mode'>mode</a> combines <a href='SkColor_Reference#Color'>color</a> <a href='#SkCanvas_drawPatch_colors'>colors</a> and <a href='undocumented#SkShader'>SkShader</a> if
both are provided.
-<a href='SkPoint_Reference#Point'>Point</a> array <a href='#SkCanvas_drawPatch_cubics'>cubics</a> specifies four <a href='SkPath_Reference#Cubic'>Cubics</a> starting at the top-left corner,
-in clockwise order, sharing every fourth point. The last <a href='SkPath_Reference#Cubic'>Cubic</a> ends at the
-first point.
+<a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='#SkCanvas_drawPatch_cubics'>cubics</a> specifies four <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> starting at the top-left corner,
+in clockwise order, sharing every fourth <a href='SkPoint_Reference#Point'>point</a>. The last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> ends at the
+first <a href='SkPoint_Reference#Point'>point</a>.
-<a href='SkColor_Reference#Color'>Color</a> array color associates <a href='#SkCanvas_drawPatch_colors'>colors</a> with corners in top-left, top-right,
+<a href='SkColor_Reference#Color'>Color</a> array <a href='SkColor_Reference#Color'>color</a> associates <a href='#SkCanvas_drawPatch_colors'>colors</a> with corners in top-left, top-right,
bottom-right, bottom-left order.
-If <a href='#SkCanvas_drawPatch_paint'>paint</a> contains <a href='undocumented#Shader'>Shader</a>, <a href='SkPoint_Reference#Point'>Point</a> array <a href='#SkCanvas_drawPatch_texCoords'>texCoords</a> maps <a href='undocumented#Shader'>Shader</a> as texture to
+If <a href='#SkCanvas_drawPatch_paint'>paint</a> contains <a href='undocumented#SkShader'>SkShader</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='#SkCanvas_drawPatch_texCoords'>texCoords</a> maps <a href='undocumented#SkShader'>SkShader</a> as <a href='undocumented#Texture'>texture</a> to
corners in top-left, top-right, bottom-right, bottom-left order.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawPatch_cubics'><code><strong>cubics</strong></code></a></td>
- <td><a href='SkPath_Reference#Cubic'>Path Cubic</a> array, sharing common points</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> array, sharing common <a href='SkPoint_Reference#Point'>points</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawPatch_colors'><code><strong>colors</strong></code></a></td>
- <td><a href='SkColor_Reference#Color'>Color</a> array, one for each corner</td>
+ <td><a href='SkColor_Reference#Color'>color</a> array, one for each corner</td>
</tr>
<tr> <td><a name='SkCanvas_drawPatch_texCoords'><code><strong>texCoords</strong></code></a></td>
- <td><a href='SkPoint_Reference#Point'>Point</a> array of texture coordinates, mapping <a href='undocumented#Shader'>Shader</a> to corners;
-may be nullptr</td>
+ <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a> of <a href='undocumented#Texture'>texture</a> coordinates, mapping <a href='undocumented#SkShader'>SkShader</a> to corners;</td>
</tr>
-# <tr> <td><a name='SkCanvas_drawPatch_mode'><code><strong>mode</strong></code></a></td>
- <td><a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> for <a href='#SkCanvas_drawPatch_colors'>colors</a>, and for <a href='undocumented#Shader'>Shader</a> if <a href='#SkCanvas_drawPatch_paint'>paint</a> has one</td>
+</table>
+
+may be nullptr
+
+### Parameters
+
+<table> <tr> <td><a name='SkCanvas_drawPatch_mode'><code><strong>mode</strong></code></a></td>
+ <td><a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> for <a href='#SkCanvas_drawPatch_colors'>colors</a>, and for <a href='undocumented#SkShader'>SkShader</a> if <a href='#SkCanvas_drawPatch_paint'>paint</a> has one</td>
</tr>
<tr> <td><a name='SkCanvas_drawPatch_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='undocumented#Shader'>Shader</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, used to draw</td>
+ <td><a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, used to draw</td>
</tr>
</table>
@@ -5927,38 +6009,43 @@
const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>& paint)
</pre>
-Draws <a href='SkPath_Reference#Cubic'>Cubic</a> <a href='undocumented#Coons_Patch'>Coons Patch</a>: the interpolation of four <a href='#SkCanvas_drawPatch_2_cubics'>cubics</a> with shared corners,
-associating a color, and optionally a texture <a href='SkPoint_Reference#Point'>Point</a>, with each corner.
+Draws <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> <a href='undocumented#Coons_Patch'>Coons patch</a>: the interpolation of four <a href='#SkCanvas_drawPatch_2_cubics'>cubics</a> with shared corners,
+associating a <a href='SkColor_Reference#Color'>color</a>, and optionally a <a href='undocumented#Texture'>texture</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, with each corner.
-<a href='undocumented#Coons_Patch'>Coons Patch</a> uses <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>, <a href='#SkCanvas_drawPatch_2_paint'>paint</a> <a href='undocumented#Shader'>Shader</a>, <a href='undocumented#Color_Filter'>Color Filter</a>,
-<a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, and <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>. If <a href='undocumented#Shader'>Shader</a> is provided it is treated
-as <a href='undocumented#Coons_Patch'>Coons Patch</a> texture; <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> mode combines <a href='SkColor_Reference#Color'>Color</a> <a href='#SkCanvas_drawPatch_2_colors'>colors</a> and <a href='undocumented#Shader'>Shader</a> if
+<a href='undocumented#Coons_Patch'>Coons patch</a> uses clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, <a href='#SkCanvas_drawPatch_2_paint'>paint</a> <a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>,
+<a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>. If <a href='undocumented#SkShader'>SkShader</a> is provided it is treated
+as <a href='undocumented#Coons_Patch'>Coons patch</a> <a href='undocumented#Texture'>texture</a>; <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode combines <a href='SkColor_Reference#Color'>color</a> <a href='#SkCanvas_drawPatch_2_colors'>colors</a> and <a href='undocumented#SkShader'>SkShader</a> if
both are provided.
-<a href='SkPoint_Reference#Point'>Point</a> array <a href='#SkCanvas_drawPatch_2_cubics'>cubics</a> specifies four <a href='SkPath_Reference#Cubic'>Cubics</a> starting at the top-left corner,
-in clockwise order, sharing every fourth point. The last <a href='SkPath_Reference#Cubic'>Cubic</a> ends at the
-first point.
+<a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='#SkCanvas_drawPatch_2_cubics'>cubics</a> specifies four <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> starting at the top-left corner,
+in clockwise order, sharing every fourth <a href='SkPoint_Reference#Point'>point</a>. The last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> ends at the
+first <a href='SkPoint_Reference#Point'>point</a>.
-<a href='SkColor_Reference#Color'>Color</a> array color associates <a href='#SkCanvas_drawPatch_2_colors'>colors</a> with corners in top-left, top-right,
+<a href='SkColor_Reference#Color'>Color</a> array <a href='SkColor_Reference#Color'>color</a> associates <a href='#SkCanvas_drawPatch_2_colors'>colors</a> with corners in top-left, top-right,
bottom-right, bottom-left order.
-If <a href='#SkCanvas_drawPatch_2_paint'>paint</a> contains <a href='undocumented#Shader'>Shader</a>, <a href='SkPoint_Reference#Point'>Point</a> array <a href='#SkCanvas_drawPatch_2_texCoords'>texCoords</a> maps <a href='undocumented#Shader'>Shader</a> as texture to
+If <a href='#SkCanvas_drawPatch_2_paint'>paint</a> contains <a href='undocumented#SkShader'>SkShader</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a> <a href='#SkCanvas_drawPatch_2_texCoords'>texCoords</a> maps <a href='undocumented#SkShader'>SkShader</a> as <a href='undocumented#Texture'>texture</a> to
corners in top-left, top-right, bottom-right, bottom-left order.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawPatch_2_cubics'><code><strong>cubics</strong></code></a></td>
- <td><a href='SkPath_Reference#Cubic'>Path Cubic</a> array, sharing common points</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Cubic'>cubic</a> array, sharing common <a href='SkPoint_Reference#Point'>points</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawPatch_2_colors'><code><strong>colors</strong></code></a></td>
- <td><a href='SkColor_Reference#Color'>Color</a> array, one for each corner</td>
+ <td><a href='SkColor_Reference#Color'>color</a> array, one for each corner</td>
</tr>
<tr> <td><a name='SkCanvas_drawPatch_2_texCoords'><code><strong>texCoords</strong></code></a></td>
- <td><a href='SkPoint_Reference#Point'>Point</a> array of texture coordinates, mapping <a href='undocumented#Shader'>Shader</a> to corners;
-may be nullptr</td>
+ <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a> of <a href='undocumented#Texture'>texture</a> coordinates, mapping <a href='undocumented#SkShader'>SkShader</a> to corners;</td>
</tr>
-# <tr> <td><a name='SkCanvas_drawPatch_2_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='undocumented#Shader'>Shader</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, used to draw</td>
+</table>
+
+may be nullptr
+
+### Parameters
+
+<table> <tr> <td><a name='SkCanvas_drawPatch_2_paint'><code><strong>paint</strong></code></a></td>
+ <td><a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, used to draw</td>
</tr>
</table>
@@ -5984,42 +6071,42 @@
const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
</pre>
-Draws 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 <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='SkBlendMode_Reference#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.
+Draws a set of <a href='undocumented#Sprite'>sprites</a> from <a href='#SkCanvas_drawAtlas_atlas'>atlas</a>, using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawAtlas_paint'>paint</a>.
+<a href='#SkCanvas_drawAtlas_paint'>paint</a> uses <a href='SkPaint_Reference#Anti_Alias'>anti-alias</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>
+to draw, if present. For each entry in the array, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawAtlas_tex'>tex</a> locates <a href='undocumented#Sprite'>sprite</a> in
+<a href='#SkCanvas_drawAtlas_atlas'>atlas</a>, and <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='#SkCanvas_drawAtlas_xform'>xform</a> transforms it into destination space.
-<a href='#SkCanvas_drawAtlas_xform'>xform</a>, text, and <a href='#SkCanvas_drawAtlas_colors'>colors</a> if present, must contain <a href='#SkCanvas_drawAtlas_count'>count</a> entries.
-Optional <a href='#SkCanvas_drawAtlas_colors'>colors</a> are applied for each sprite using <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> <a href='#SkCanvas_drawAtlas_mode'>mode</a>, treating
-sprite as source and <a href='#SkCanvas_drawAtlas_colors'>colors</a> as destination.
-Optional <a href='#SkCanvas_drawAtlas_cullRect'>cullRect</a> is a conservative bounds of all transformed sprites.
-If <a href='#SkCanvas_drawAtlas_cullRect'>cullRect</a> is outside of <a href='#Clip'>Clip</a>, canvas can skip drawing.
+<a href='#SkCanvas_drawAtlas_xform'>xform</a>, <a href='undocumented#Text'>text</a>, and <a href='#SkCanvas_drawAtlas_colors'>colors</a> if present, must contain <a href='#SkCanvas_drawAtlas_count'>count</a> entries.
+Optional <a href='#SkCanvas_drawAtlas_colors'>colors</a> are applied for each <a href='undocumented#Sprite'>sprite</a> using <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkCanvas_drawAtlas_mode'>mode</a>, treating
+<a href='undocumented#Sprite'>sprite</a> as source and <a href='#SkCanvas_drawAtlas_colors'>colors</a> as destination.
+Optional <a href='#SkCanvas_drawAtlas_cullRect'>cullRect</a> is a conservative bounds of all transformed <a href='undocumented#Sprite'>sprites</a>.
+If <a href='#SkCanvas_drawAtlas_cullRect'>cullRect</a> is outside of clip, <a href='SkCanvas_Reference#Canvas'>canvas</a> can skip drawing.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawAtlas_atlas'><code><strong>atlas</strong></code></a></td>
- <td><a href='SkImage_Reference#Image'>Image</a> containing sprites</td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> containing <a href='undocumented#Sprite'>sprites</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_xform'><code><strong>xform</strong></code></a></td>
- <td><a href='undocumented#RSXform'>RSXform</a> mappings for sprites in <a href='#SkCanvas_drawAtlas_atlas'>atlas</a></td>
+ <td><a href='undocumented#SkRSXform'>SkRSXform</a> mappings for <a href='undocumented#Sprite'>sprites</a> in <a href='#SkCanvas_drawAtlas_atlas'>atlas</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_tex'><code><strong>tex</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> locations of sprites in <a href='#SkCanvas_drawAtlas_atlas'>atlas</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> locations of <a href='undocumented#Sprite'>sprites</a> in <a href='#SkCanvas_drawAtlas_atlas'>atlas</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_colors'><code><strong>colors</strong></code></a></td>
- <td>one per sprite, blended with sprite using <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>; may be nullptr</td>
+ <td>one per <a href='undocumented#Sprite'>sprite</a>, blended with <a href='undocumented#Sprite'>sprite</a> using <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_count'><code><strong>count</strong></code></a></td>
- <td>number of sprites to draw</td>
+ <td>number of <a href='undocumented#Sprite'>sprites</a> to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_mode'><code><strong>mode</strong></code></a></td>
- <td><a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> combining <a href='#SkCanvas_drawAtlas_colors'>colors</a> and sprites</td>
+ <td><a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> combining <a href='#SkCanvas_drawAtlas_colors'>colors</a> and <a href='undocumented#Sprite'>sprites</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_cullRect'><code><strong>cullRect</strong></code></a></td>
- <td>bounds of transformed sprites for efficient clipping; may be nullptr</td>
+ <td>bounds of transformed <a href='undocumented#Sprite'>sprites</a> for efficient clipping; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and so on; may be nullptr</td>
+ <td><a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and so on; may be nullptr</td>
</tr>
</table>
@@ -6041,41 +6128,41 @@
const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
</pre>
-Draws 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 <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='SkBlendMode_Reference#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.
+Draws a set of <a href='undocumented#Sprite'>sprites</a> from <a href='#SkCanvas_drawAtlas_2_atlas'>atlas</a>, using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawAtlas_2_paint'>paint</a>.
+<a href='#SkCanvas_drawAtlas_2_paint'>paint</a> uses <a href='SkPaint_Reference#Anti_Alias'>anti-alias</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>
+to draw, if present. For each entry in the array, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawAtlas_2_tex'>tex</a> locates <a href='undocumented#Sprite'>sprite</a> in
+<a href='#SkCanvas_drawAtlas_2_atlas'>atlas</a>, and <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='#SkCanvas_drawAtlas_2_xform'>xform</a> transforms it into destination space.
-<a href='#SkCanvas_drawAtlas_2_xform'>xform</a>, text, and <a href='#SkCanvas_drawAtlas_2_colors'>colors</a> if present, must contain <a href='#SkCanvas_drawAtlas_2_count'>count</a> entries.
-Optional <a href='#SkCanvas_drawAtlas_2_colors'>colors</a> is applied for each sprite using <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>.
-Optional <a href='#SkCanvas_drawAtlas_2_cullRect'>cullRect</a> is a conservative bounds of all transformed sprites.
-If <a href='#SkCanvas_drawAtlas_2_cullRect'>cullRect</a> is outside of <a href='#Clip'>Clip</a>, canvas can skip drawing.
+<a href='#SkCanvas_drawAtlas_2_xform'>xform</a>, <a href='undocumented#Text'>text</a>, and <a href='#SkCanvas_drawAtlas_2_colors'>colors</a> if present, must contain <a href='#SkCanvas_drawAtlas_2_count'>count</a> entries.
+Optional <a href='#SkCanvas_drawAtlas_2_colors'>colors</a> is applied for each <a href='undocumented#Sprite'>sprite</a> using <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>.
+Optional <a href='#SkCanvas_drawAtlas_2_cullRect'>cullRect</a> is a conservative bounds of all transformed <a href='undocumented#Sprite'>sprites</a>.
+If <a href='#SkCanvas_drawAtlas_2_cullRect'>cullRect</a> is outside of clip, <a href='SkCanvas_Reference#Canvas'>canvas</a> can skip drawing.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawAtlas_2_atlas'><code><strong>atlas</strong></code></a></td>
- <td><a href='SkImage_Reference#Image'>Image</a> containing sprites</td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> containing <a href='undocumented#Sprite'>sprites</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_2_xform'><code><strong>xform</strong></code></a></td>
- <td><a href='undocumented#RSXform'>RSXform</a> mappings for sprites in <a href='#SkCanvas_drawAtlas_2_atlas'>atlas</a></td>
+ <td><a href='undocumented#SkRSXform'>SkRSXform</a> mappings for <a href='undocumented#Sprite'>sprites</a> in <a href='#SkCanvas_drawAtlas_2_atlas'>atlas</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_2_tex'><code><strong>tex</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> locations of sprites in <a href='#SkCanvas_drawAtlas_2_atlas'>atlas</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> locations of <a href='undocumented#Sprite'>sprites</a> in <a href='#SkCanvas_drawAtlas_2_atlas'>atlas</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_2_colors'><code><strong>colors</strong></code></a></td>
- <td>one per sprite, blended with sprite using <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>; may be nullptr</td>
+ <td>one per <a href='undocumented#Sprite'>sprite</a>, blended with <a href='undocumented#Sprite'>sprite</a> using <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_2_count'><code><strong>count</strong></code></a></td>
- <td>number of sprites to draw</td>
+ <td>number of <a href='undocumented#Sprite'>sprites</a> to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_2_mode'><code><strong>mode</strong></code></a></td>
- <td><a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> combining <a href='#SkCanvas_drawAtlas_2_colors'>colors</a> and sprites</td>
+ <td><a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> combining <a href='#SkCanvas_drawAtlas_2_colors'>colors</a> and <a href='undocumented#Sprite'>sprites</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_2_cullRect'><code><strong>cullRect</strong></code></a></td>
- <td>bounds of transformed sprites for efficient clipping; may be nullptr</td>
+ <td>bounds of transformed <a href='undocumented#Sprite'>sprites</a> for efficient clipping; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_2_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and so on; may be nullptr</td>
+ <td><a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and so on; may be nullptr</td>
</tr>
</table>
@@ -6096,34 +6183,34 @@
const <a href='SkRect_Reference#SkRect'>SkRect</a>* cullRect, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
</pre>
-Draws 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 <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='SkBlendMode_Reference#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.
+Draws a set of <a href='undocumented#Sprite'>sprites</a> from <a href='#SkCanvas_drawAtlas_3_atlas'>atlas</a>, using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawAtlas_3_paint'>paint</a>.
+<a href='#SkCanvas_drawAtlas_3_paint'>paint</a> uses <a href='SkPaint_Reference#Anti_Alias'>anti-alias</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>
+to draw, if present. For each entry in the array, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawAtlas_3_tex'>tex</a> locates <a href='undocumented#Sprite'>sprite</a> in
+<a href='#SkCanvas_drawAtlas_3_atlas'>atlas</a>, and <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='#SkCanvas_drawAtlas_3_xform'>xform</a> transforms it into destination space.
-<a href='#SkCanvas_drawAtlas_3_xform'>xform</a> and text must contain <a href='#SkCanvas_drawAtlas_3_count'>count</a> entries.
-Optional <a href='#SkCanvas_drawAtlas_3_cullRect'>cullRect</a> is a conservative bounds of all transformed sprites.
-If <a href='#SkCanvas_drawAtlas_3_cullRect'>cullRect</a> is outside of <a href='#Clip'>Clip</a>, canvas can skip drawing.
+<a href='#SkCanvas_drawAtlas_3_xform'>xform</a> and <a href='undocumented#Text'>text</a> must contain <a href='#SkCanvas_drawAtlas_3_count'>count</a> entries.
+Optional <a href='#SkCanvas_drawAtlas_3_cullRect'>cullRect</a> is a conservative bounds of all transformed <a href='undocumented#Sprite'>sprites</a>.
+If <a href='#SkCanvas_drawAtlas_3_cullRect'>cullRect</a> is outside of clip, <a href='SkCanvas_Reference#Canvas'>canvas</a> can skip drawing.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawAtlas_3_atlas'><code><strong>atlas</strong></code></a></td>
- <td><a href='SkImage_Reference#Image'>Image</a> containing sprites</td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> containing <a href='undocumented#Sprite'>sprites</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_3_xform'><code><strong>xform</strong></code></a></td>
- <td><a href='undocumented#RSXform'>RSXform</a> mappings for sprites in <a href='#SkCanvas_drawAtlas_3_atlas'>atlas</a></td>
+ <td><a href='undocumented#SkRSXform'>SkRSXform</a> mappings for <a href='undocumented#Sprite'>sprites</a> in <a href='#SkCanvas_drawAtlas_3_atlas'>atlas</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_3_tex'><code><strong>tex</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> locations of sprites in <a href='#SkCanvas_drawAtlas_3_atlas'>atlas</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> locations of <a href='undocumented#Sprite'>sprites</a> in <a href='#SkCanvas_drawAtlas_3_atlas'>atlas</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_3_count'><code><strong>count</strong></code></a></td>
- <td>number of sprites to draw</td>
+ <td>number of <a href='undocumented#Sprite'>sprites</a> to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_3_cullRect'><code><strong>cullRect</strong></code></a></td>
- <td>bounds of transformed sprites for efficient clipping; may be nullptr</td>
+ <td>bounds of transformed <a href='undocumented#Sprite'>sprites</a> for efficient clipping; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_3_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and so on; may be nullptr</td>
+ <td><a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and so on; may be nullptr</td>
</tr>
</table>
@@ -6144,34 +6231,34 @@
const <a href='SkRect_Reference#SkRect'>SkRect</a>* cullRect, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
</pre>
-Draws 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 <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='SkBlendMode_Reference#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.
+Draws a set of <a href='undocumented#Sprite'>sprites</a> from <a href='#SkCanvas_drawAtlas_4_atlas'>atlas</a>, using clip, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, and optional <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkCanvas_drawAtlas_4_paint'>paint</a>.
+<a href='#SkCanvas_drawAtlas_4_paint'>paint</a> uses <a href='SkPaint_Reference#Anti_Alias'>anti-alias</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>
+to draw, if present. For each entry in the array, <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkCanvas_drawAtlas_4_tex'>tex</a> locates <a href='undocumented#Sprite'>sprite</a> in
+<a href='#SkCanvas_drawAtlas_4_atlas'>atlas</a>, and <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='#SkCanvas_drawAtlas_4_xform'>xform</a> transforms it into destination space.
-<a href='#SkCanvas_drawAtlas_4_xform'>xform</a> and text must contain <a href='#SkCanvas_drawAtlas_4_count'>count</a> entries.
-Optional <a href='#SkCanvas_drawAtlas_4_cullRect'>cullRect</a> is a conservative bounds of all transformed sprites.
-If <a href='#SkCanvas_drawAtlas_4_cullRect'>cullRect</a> is outside of <a href='#Clip'>Clip</a>, canvas can skip drawing.
+<a href='#SkCanvas_drawAtlas_4_xform'>xform</a> and <a href='undocumented#Text'>text</a> must contain <a href='#SkCanvas_drawAtlas_4_count'>count</a> entries.
+Optional <a href='#SkCanvas_drawAtlas_4_cullRect'>cullRect</a> is a conservative bounds of all transformed <a href='undocumented#Sprite'>sprites</a>.
+If <a href='#SkCanvas_drawAtlas_4_cullRect'>cullRect</a> is outside of clip, <a href='SkCanvas_Reference#Canvas'>canvas</a> can skip drawing.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawAtlas_4_atlas'><code><strong>atlas</strong></code></a></td>
- <td><a href='SkImage_Reference#Image'>Image</a> containing sprites</td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> containing <a href='undocumented#Sprite'>sprites</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_4_xform'><code><strong>xform</strong></code></a></td>
- <td><a href='undocumented#RSXform'>RSXform</a> mappings for sprites in <a href='#SkCanvas_drawAtlas_4_atlas'>atlas</a></td>
+ <td><a href='undocumented#SkRSXform'>SkRSXform</a> mappings for <a href='undocumented#Sprite'>sprites</a> in <a href='#SkCanvas_drawAtlas_4_atlas'>atlas</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_4_tex'><code><strong>tex</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> locations of sprites in <a href='#SkCanvas_drawAtlas_4_atlas'>atlas</a></td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> locations of <a href='undocumented#Sprite'>sprites</a> in <a href='#SkCanvas_drawAtlas_4_atlas'>atlas</a></td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_4_count'><code><strong>count</strong></code></a></td>
- <td>number of sprites to draw</td>
+ <td>number of <a href='undocumented#Sprite'>sprites</a> to draw</td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_4_cullRect'><code><strong>cullRect</strong></code></a></td>
- <td>bounds of transformed sprites for efficient clipping; may be nullptr</td>
+ <td>bounds of transformed <a href='undocumented#Sprite'>sprites</a> for efficient clipping; may be nullptr</td>
</tr>
<tr> <td><a name='SkCanvas_drawAtlas_4_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and so on; may be nullptr</td>
+ <td><a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and so on; may be nullptr</td>
</tr>
</table>
@@ -6191,13 +6278,13 @@
void <a href='#SkCanvas_drawDrawable'>drawDrawable</a>(<a href='undocumented#SkDrawable'>SkDrawable</a>* drawable, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* matrix = nullptr)
</pre>
-Draws <a href='undocumented#Drawable'>Drawable</a> <a href='#SkCanvas_drawDrawable_drawable'>drawable</a> using <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>, concatenated with
+Draws <a href='undocumented#SkDrawable'>SkDrawable</a> <a href='#SkCanvas_drawDrawable_drawable'>drawable</a> using clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, concatenated with
optional <a href='#SkCanvas_drawDrawable_matrix'>matrix</a>.
-If <a href='#Canvas'>Canvas</a> has an asynchronous implementation, as is the case
-when it is recording into <a href='SkPicture_Reference#Picture'>Picture</a>, then <a href='#SkCanvas_drawDrawable_drawable'>drawable</a> will be referenced,
-so that <a href='undocumented#SkDrawable_draw'>SkDrawable::draw</a>() can be called when the operation is finalized. To force
-immediate drawing, call <a href='undocumented#SkDrawable_draw'>SkDrawable::draw</a>() instead.
+If <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> has an asynchronous implementation, as is the case
+when it is recording into <a href='SkPicture_Reference#SkPicture'>SkPicture</a>, then <a href='#SkCanvas_drawDrawable_drawable'>drawable</a> will be referenced,
+so that <a href='undocumented#SkDrawable'>SkDrawable</a>::<a href='#SkDrawable_draw'>draw()</a> can be called when the operation is finalized. To force
+immediate drawing, call <a href='undocumented#SkDrawable'>SkDrawable</a>::<a href='#SkDrawable_draw'>draw()</a> instead.
### Parameters
@@ -6225,12 +6312,12 @@
void <a href='#SkCanvas_drawDrawable'>drawDrawable</a>(<a href='undocumented#SkDrawable'>SkDrawable</a>* drawable, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
-Draws <a href='undocumented#Drawable'>Drawable</a> <a href='#SkCanvas_drawDrawable_2_drawable'>drawable</a> using <a href='#Clip'>Clip</a> and <a href='#Matrix'>Matrix</a>, offset by (<a href='#SkCanvas_drawDrawable_2_x'>x</a>, <a href='#SkCanvas_drawDrawable_2_y'>y</a>).
+Draws <a href='undocumented#SkDrawable'>SkDrawable</a> <a href='#SkCanvas_drawDrawable_2_drawable'>drawable</a> using clip and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, offset by (<a href='#SkCanvas_drawDrawable_2_x'>x</a>, <a href='#SkCanvas_drawDrawable_2_y'>y</a>).
-If <a href='#Canvas'>Canvas</a> has an asynchronous implementation, as is the case
-when it is recording into <a href='SkPicture_Reference#Picture'>Picture</a>, then <a href='#SkCanvas_drawDrawable_2_drawable'>drawable</a> will be referenced,
-so that <a href='undocumented#SkDrawable_draw'>SkDrawable::draw</a>() can be called when the operation is finalized. To force
-immediate drawing, call <a href='undocumented#SkDrawable_draw'>SkDrawable::draw</a>() instead.
+If <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> has an asynchronous implementation, as is the case
+when it is recording into <a href='SkPicture_Reference#SkPicture'>SkPicture</a>, then <a href='#SkCanvas_drawDrawable_2_drawable'>drawable</a> will be referenced,
+so that <a href='undocumented#SkDrawable'>SkDrawable</a>::<a href='#SkDrawable_draw'>draw()</a> can be called when the operation is finalized. To force
+immediate drawing, call <a href='undocumented#SkDrawable'>SkDrawable</a>::<a href='#SkDrawable_draw'>draw()</a> instead.
### Parameters
@@ -6238,10 +6325,10 @@
<td>custom struct encapsulating drawing commands</td>
</tr>
<tr> <td><a name='SkCanvas_drawDrawable_2_x'><code><strong>x</strong></code></a></td>
- <td>offset into <a href='#Canvas'>Canvas</a> writable pixels on <a href='#SkCanvas_drawDrawable_2_x'>x</a>-axis</td>
+ <td>offset into <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> writable pixels on x-axis</td>
</tr>
<tr> <td><a name='SkCanvas_drawDrawable_2_y'><code><strong>y</strong></code></a></td>
- <td>offset into <a href='#Canvas'>Canvas</a> writable pixels on <a href='#SkCanvas_drawDrawable_2_y'>y</a>-axis</td>
+ <td>offset into <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> writable pixels on y-axis</td>
</tr>
</table>
@@ -6261,22 +6348,22 @@
void <a href='#SkCanvas_drawAnnotation'>drawAnnotation</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, const char key[], <a href='undocumented#SkData'>SkData</a>* value)
</pre>
-Associates <a href='SkRect_Reference#Rect'>Rect</a> on <a href='#Canvas'>Canvas</a> with an annotation; a <a href='#SkCanvas_drawAnnotation_key'>key</a>-<a href='#SkCanvas_drawAnnotation_value'>value</a> pair, where the <a href='#SkCanvas_drawAnnotation_key'>key</a> is
-a null-terminated utf8 string, and optional <a href='#SkCanvas_drawAnnotation_value'>value</a> is stored as <a href='undocumented#Data'>Data</a>.
+Associates <a href='SkRect_Reference#SkRect'>SkRect</a> on <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> with an annotation; a key-value pair, where the <a href='#SkCanvas_drawAnnotation_key'>key</a> is
+a null-terminated UTF-8 <a href='undocumented#String'>string</a>, and optional <a href='#SkCanvas_drawAnnotation_value'>value</a> is stored as <a href='undocumented#SkData'>SkData</a>.
-Only some canvas implementations, such as recording to <a href='SkPicture_Reference#Picture'>Picture</a>, or drawing to
-<a href='undocumented#PDF'>Document PDF</a>, use annotations.
+Only some <a href='SkCanvas_Reference#Canvas'>canvas</a> implementations, such as recording to <a href='SkPicture_Reference#SkPicture'>SkPicture</a>, or drawing to
+<a href='undocumented#Document_PDF'>document PDF</a>, use annotations.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawAnnotation_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> extent of canvas to annotate</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> extent of <a href='SkCanvas_Reference#Canvas'>canvas</a> to annotate</td>
</tr>
<tr> <td><a name='SkCanvas_drawAnnotation_key'><code><strong>key</strong></code></a></td>
- <td>string used for lookup</td>
+ <td><a href='undocumented#String'>string</a> used for lookup</td>
</tr>
<tr> <td><a name='SkCanvas_drawAnnotation_value'><code><strong>value</strong></code></a></td>
- <td>data holding <a href='#SkCanvas_drawAnnotation_value'>value</a> stored in annotation</td>
+ <td><a href='undocumented#Data'>data</a> holding <a href='#SkCanvas_drawAnnotation_value'>value</a> stored in annotation</td>
</tr>
</table>
@@ -6296,22 +6383,22 @@
void <a href='#SkCanvas_drawAnnotation'>drawAnnotation</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, const char key[], const <a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkData'>SkData</a>>& value)
</pre>
-Associates <a href='SkRect_Reference#Rect'>Rect</a> on <a href='#Canvas'>Canvas</a> when an annotation; a <a href='#SkCanvas_drawAnnotation_2_key'>key</a>-<a href='#SkCanvas_drawAnnotation_2_value'>value</a> pair, where the <a href='#SkCanvas_drawAnnotation_2_key'>key</a> is
-a null-terminated utf8 string, and optional <a href='#SkCanvas_drawAnnotation_2_value'>value</a> is stored as <a href='undocumented#Data'>Data</a>.
+Associates <a href='SkRect_Reference#SkRect'>SkRect</a> on <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> when an annotation; a key-value pair, where the <a href='#SkCanvas_drawAnnotation_2_key'>key</a> is
+a null-terminated UTF-8 <a href='undocumented#String'>string</a>, and optional <a href='#SkCanvas_drawAnnotation_2_value'>value</a> is stored as <a href='undocumented#SkData'>SkData</a>.
-Only some canvas implementations, such as recording to <a href='SkPicture_Reference#Picture'>Picture</a>, or drawing to
-<a href='undocumented#PDF'>Document PDF</a>, use annotations.
+Only some <a href='SkCanvas_Reference#Canvas'>canvas</a> implementations, such as recording to <a href='SkPicture_Reference#SkPicture'>SkPicture</a>, or drawing to
+<a href='undocumented#Document_PDF'>document PDF</a>, use annotations.
### Parameters
<table> <tr> <td><a name='SkCanvas_drawAnnotation_2_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> extent of canvas to annotate</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> extent of <a href='SkCanvas_Reference#Canvas'>canvas</a> to annotate</td>
</tr>
<tr> <td><a name='SkCanvas_drawAnnotation_2_key'><code><strong>key</strong></code></a></td>
- <td>string used for lookup</td>
+ <td><a href='undocumented#String'>string</a> used for lookup</td>
</tr>
<tr> <td><a name='SkCanvas_drawAnnotation_2_value'><code><strong>value</strong></code></a></td>
- <td>data holding <a href='#SkCanvas_drawAnnotation_2_value'>value</a> stored in annotation</td>
+ <td><a href='undocumented#Data'>data</a> holding <a href='#SkCanvas_drawAnnotation_2_value'>value</a> stored in annotation</td>
</tr>
</table>
@@ -6331,15 +6418,15 @@
virtual bool <a href='#SkCanvas_isClipEmpty'>isClipEmpty</a>() const
</pre>
-Returns true if <a href='#Clip'>Clip</a> is empty; that is, nothing will draw.
+Returns true if clip is empty; that is, nothing will draw.
May do work when called; it should not be called
more often than needed. However, once called, subsequent calls perform no
-work until <a href='#Clip'>Clip</a> changes.
+work until clip changes.
### Return Value
-true if <a href='#Clip'>Clip</a> is empty
+true if clip is empty
### Example
@@ -6366,12 +6453,12 @@
virtual bool <a href='#SkCanvas_isClipRect'>isClipRect</a>() const
</pre>
-Returns true if <a href='#Clip'>Clip</a> is <a href='SkRect_Reference#Rect'>Rect</a> and not empty.
-Returns false if the clip is empty, or if it is not <a href='SkRect_Reference#Rect'>Rect</a>.
+Returns true if clip is <a href='SkRect_Reference#SkRect'>SkRect</a> and not empty.
+Returns false if the clip is empty, or if it is not <a href='SkRect_Reference#SkRect'>SkRect</a>.
### Return Value
-true if <a href='#Clip'>Clip</a> is <a href='SkRect_Reference#Rect'>Rect</a> and not empty
+true if clip is <a href='SkRect_Reference#SkRect'>SkRect</a> and not empty
### Example
diff --git a/site/user/api/SkIPoint_Reference.md b/site/user/api/SkIPoint_Reference.md
index 80bfc97..bbc98c9 100644
--- a/site/user/api/SkIPoint_Reference.md
+++ b/site/user/api/SkIPoint_Reference.md
@@ -56,21 +56,21 @@
static constexpr <a href='#SkIPoint'>SkIPoint</a> <a href='#SkIPoint_Make'>Make</a>(int32_t x, int32_t y)
</pre>
-Sets <a href='#SkIPoint_fX'>fX</a> to x, <a href='#SkIPoint_fY'>fY</a> to y.
+Sets <a href='#SkIPoint_fX'>fX</a> to <a href='#SkIPoint_Make_x'>x</a>, <a href='#SkIPoint_fY'>fY</a> to <a href='#SkIPoint_Make_y'>y</a>.
### Parameters
<table> <tr> <td><a name='SkIPoint_Make_x'><code><strong>x</strong></code></a></td>
- <td>integer x-axis value of constructed <a href='#IPoint'>IPoint</a></td>
+ <td>integer x-axis value of constructed <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a></td>
</tr>
<tr> <td><a name='SkIPoint_Make_y'><code><strong>y</strong></code></a></td>
- <td>integer y-axis value of constructed <a href='#IPoint'>IPoint</a></td>
+ <td>integer y-axis value of constructed <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a></td>
</tr>
</table>
### Return Value
-<a href='#IPoint'>IPoint</a> (x, y)
+<a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> (<a href='#SkIPoint_Make_x'>x</a>, <a href='#SkIPoint_Make_y'>y</a>)
### Example
@@ -98,7 +98,7 @@
int32_t <a href='#SkIPoint_x'>x</a>() const
</pre>
-Returns x-axis value of <a href='#IPoint'>IPoint</a>.
+Returns x-axis value of <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>.
### Return Value
@@ -128,7 +128,7 @@
int32_t <a href='#SkIPoint_y'>y</a>() const
</pre>
-Returns y-axis value of <a href='#IPoint'>IPoint</a>.
+Returns y-axis value of <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>.
### Return Value
@@ -190,7 +190,7 @@
void <a href='#SkIPoint_set'>set</a>(int32_t x, int32_t y)
</pre>
-Sets <a href='#SkIPoint_fX'>fX</a> to x and <a href='#SkIPoint_fY'>fY</a> to y.
+Sets <a href='#SkIPoint_fX'>fX</a> to <a href='#SkIPoint_set()_x'>x</a> and <a href='#SkIPoint_fY'>fY</a> to <a href='#SkIPoint_set()_y'>y</a>.
### Parameters
@@ -226,11 +226,11 @@
<a href='#SkIPoint'>SkIPoint</a> operator-() const
</pre>
-Returns <a href='#IPoint'>IPoint</a> changing the signs of <a href='#SkIPoint_fX'>fX</a> and <a href='#SkIPoint_fY'>fY</a>.
+Returns <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> changing the signs of <a href='#SkIPoint_fX'>fX</a> and <a href='#SkIPoint_fY'>fY</a>.
### Return Value
-<a href='#IPoint'>IPoint</a> as (-<a href='#SkIPoint_fX'>fX</a>, -<a href='#SkIPoint_fY'>fY</a>)
+<a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> as (-<a href='#SkIPoint_fX'>fX</a>, -<a href='#SkIPoint_fY'>fY</a>)
### Example
@@ -309,7 +309,7 @@
bool <a href='#SkIPoint_equals'>equals</a>(int32_t x, int32_t y) const
</pre>
-Returns true if <a href='#IPoint'>IPoint</a> is equivalent to <a href='#IPoint'>IPoint</a> constructed from (x, y).
+Returns true if <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> is equivalent to <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> constructed from (<a href='#SkIPoint_equals()_x'>x</a>, <a href='#SkIPoint_equals()_y'>y</a>).
### Parameters
@@ -323,7 +323,7 @@
### Return Value
-true if <a href='#IPoint'>IPoint</a> equals (x, y)
+true if <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> equals (<a href='#SkIPoint_equals()_x'>x</a>, <a href='#SkIPoint_equals()_y'>y</a>)
### Example
@@ -352,21 +352,21 @@
bool <a href='#SkIPoint_equal_operator'>operator==(const SkIPoint& a, const SkIPoint& b)</a>
</pre>
-Returns true if <a href='#SkIPoint_equal_operator_a'>a</a> is equivalent to <a href='#SkIPoint_equal_operator_b'>b</a>.
+Returns true if <a href='#SkIPoint_operator==(const SkIPoint& a, const SkIPoint& b)_a'>a</a> is equivalent to <a href='#SkIPoint_operator==(const SkIPoint& a, const SkIPoint& b)_b'>b</a>.
### Parameters
<table> <tr> <td><a name='SkIPoint_equal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='#IPoint'>IPoint</a> to compare</td>
+ <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> to compare</td>
</tr>
<tr> <td><a name='SkIPoint_equal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='#IPoint'>IPoint</a> to compare</td>
+ <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='#SkIPoint_equal_operator_a'>a</a>.<a href='#SkIPoint_fX'>fX</a> == <a href='#SkIPoint_equal_operator_b'>b</a>.<a href='#SkIPoint_fX'>fX</a> and <a href='#SkIPoint_equal_operator_a'>a</a>.<a href='#SkIPoint_fY'>fY</a> == <a href='#SkIPoint_equal_operator_b'>b</a>.<a href='#SkIPoint_fY'>fY</a>
+true if <a href='#SkIPoint_operator==(const SkIPoint& a, const SkIPoint& b)_a'>a</a>.<a href='#SkIPoint_fX'>fX</a> == <a href='#SkIPoint_operator==(const SkIPoint& a, const SkIPoint& b)_b'>b</a>.<a href='#SkIPoint_fX'>fX</a> and <a href='#SkIPoint_operator==(const SkIPoint& a, const SkIPoint& b)_a'>a</a>.<a href='#SkIPoint_fY'>fY</a> == <a href='#SkIPoint_operator==(const SkIPoint& a, const SkIPoint& b)_b'>b</a>.<a href='#SkIPoint_fY'>fY</a>
### Example
@@ -395,21 +395,21 @@
bool <a href='#SkIPoint_notequal_operator'>operator!=(const SkIPoint& a, const SkIPoint& b)</a>
</pre>
-Returns true if <a href='#SkIPoint_notequal_operator_a'>a</a> is not equivalent to <a href='#SkIPoint_notequal_operator_b'>b</a>.
+Returns true if <a href='#SkIPoint_operator!=(const SkIPoint& a, const SkIPoint& b)_a'>a</a> is not equivalent to <a href='#SkIPoint_operator!=(const SkIPoint& a, const SkIPoint& b)_b'>b</a>.
### Parameters
<table> <tr> <td><a name='SkIPoint_notequal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='#IPoint'>IPoint</a> to compare</td>
+ <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> to compare</td>
</tr>
<tr> <td><a name='SkIPoint_notequal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='#IPoint'>IPoint</a> to compare</td>
+ <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='#SkIPoint_notequal_operator_a'>a</a>.<a href='#SkIPoint_fX'>fX</a> != <a href='#SkIPoint_notequal_operator_b'>b</a>.<a href='#SkIPoint_fX'>fX</a> or <a href='#SkIPoint_notequal_operator_a'>a</a>.<a href='#SkIPoint_fY'>fY</a> != <a href='#SkIPoint_notequal_operator_b'>b</a>.<a href='#SkIPoint_fY'>fY</a>
+true if <a href='#SkIPoint_operator!=(const SkIPoint& a, const SkIPoint& b)_a'>a</a>.<a href='#SkIPoint_fX'>fX</a> != <a href='#SkIPoint_operator!=(const SkIPoint& a, const SkIPoint& b)_b'>b</a>.<a href='#SkIPoint_fX'>fX</a> or <a href='#SkIPoint_operator!=(const SkIPoint& a, const SkIPoint& b)_a'>a</a>.<a href='#SkIPoint_fY'>fY</a> != <a href='#SkIPoint_operator!=(const SkIPoint& a, const SkIPoint& b)_b'>b</a>.<a href='#SkIPoint_fY'>fY</a>
### Example
diff --git a/site/user/api/SkIRect_Reference.md b/site/user/api/SkIRect_Reference.md
index bd43948..aad5f42 100644
--- a/site/user/api/SkIRect_Reference.md
+++ b/site/user/api/SkIRect_Reference.md
@@ -120,7 +120,7 @@
static constexpr <a href='#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeEmpty'>MakeEmpty</a>()
</pre>
-Returns constructed <a href='#IRect'>IRect</a> set to (0, 0, 0, 0).
+Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to (0, 0, 0, 0).
Many other rectangles are empty; if left is equal to or greater than right,
or if top is equal to or greater than bottom. Setting all members to zero
is a convenience, but does not designate a special empty rectangle.
@@ -156,16 +156,16 @@
static constexpr <a href='#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeWH'>MakeWH</a>(int32_t w, int32_t h)
</pre>
-Returns constructed <a href='#IRect'>IRect</a> set to (0, 0, <a href='#SkIRect_MakeWH_w'>w</a>, <a href='#SkIRect_MakeWH_h'>h</a>). Does not validate input; <a href='#SkIRect_MakeWH_w'>w</a> or <a href='#SkIRect_MakeWH_h'>h</a>
+Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to (0, 0, <a href='#SkIRect_MakeWH_w'>w</a>, <a href='#SkIRect_MakeWH_h'>h</a>). Does not validate input; <a href='#SkIRect_MakeWH_w'>w</a> or <a href='#SkIRect_MakeWH_h'>h</a>
may be negative.
### Parameters
<table> <tr> <td><a name='SkIRect_MakeWH_w'><code><strong>w</strong></code></a></td>
- <td>width of constructed <a href='#IRect'>IRect</a></td>
+ <td>width of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
<tr> <td><a name='SkIRect_MakeWH_h'><code><strong>h</strong></code></a></td>
- <td>height of constructed <a href='#IRect'>IRect</a></td>
+ <td>height of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
</table>
@@ -197,19 +197,19 @@
static constexpr <a href='#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeSize'>MakeSize</a>(const <a href='undocumented#SkISize'>SkISize</a>& size)
</pre>
-Returns constructed <a href='#IRect'>IRect</a> set to (0, 0, size.<a href='#SkIRect_width'>width</a>(), size.<a href='#SkIRect_height'>height</a>()).
-Does not validate input; size.<a href='#SkIRect_width'>width</a>() or size.<a href='#SkIRect_height'>height</a>() may be negative.
+Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to (0, 0, <a href='#SkIRect_MakeSize_size'>size</a>.<a href='#SkISize_width'>width()</a>, <a href='#SkIRect_MakeSize_size'>size</a>.<a href='#SkISize_height'>height()</a>).
+Does not validate input; <a href='#SkIRect_MakeSize_size'>size</a>.<a href='#SkISize_width'>width()</a> or <a href='#SkIRect_MakeSize_size'>size</a>.<a href='#SkISize_height'>height()</a> may be negative.
### Parameters
<table> <tr> <td><a name='SkIRect_MakeSize_size'><code><strong>size</strong></code></a></td>
- <td>values for <a href='#IRect'>IRect</a> width and height</td>
+ <td>values for <a href='SkIRect_Reference#SkIRect'>SkIRect</a> width and height</td>
</tr>
</table>
### Return Value
-bounds (0, 0, size.<a href='#SkIRect_width'>width</a>(), size.<a href='#SkIRect_height'>height</a>())
+bounds (0, 0, <a href='#SkIRect_MakeSize_size'>size</a>.<a href='#SkISize_width'>width()</a>, <a href='#SkIRect_MakeSize_size'>size</a>.<a href='#SkISize_height'>height()</a>)
### Example
@@ -236,7 +236,7 @@
static constexpr <a href='#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeLTRB'>MakeLTRB</a>(int32_t l, int32_t t, int32_t r, int32_t b)
</pre>
-Returns constructed <a href='#IRect'>IRect</a> set to (<a href='#SkIRect_MakeLTRB_l'>l</a>, <a href='#SkIRect_MakeLTRB_t'>t</a>, <a href='#SkIRect_MakeLTRB_r'>r</a>, <a href='#SkIRect_MakeLTRB_b'>b</a>). Does not sort input; <a href='#IRect'>IRect</a> may
+Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to (<a href='#SkIRect_MakeLTRB_l'>l</a>, <a href='#SkIRect_MakeLTRB_t'>t</a>, <a href='#SkIRect_MakeLTRB_r'>r</a>, <a href='#SkIRect_MakeLTRB_b'>b</a>). Does not sort input; <a href='SkIRect_Reference#SkIRect'>SkIRect</a> may
result in <a href='#SkIRect_fLeft'>fLeft</a> greater than <a href='#SkIRect_fRight'>fRight</a>, or <a href='#SkIRect_fTop'>fTop</a> greater than <a href='#SkIRect_fBottom'>fBottom</a>.
### Parameters
@@ -284,7 +284,7 @@
static constexpr <a href='#SkIRect'>SkIRect</a> <a href='#SkIRect_MakeXYWH'>MakeXYWH</a>(int32_t x, int32_t y, int32_t w, int32_t h)
</pre>
-Returns constructed <a href='#IRect'>IRect</a> set to: <code>\(x, y, x \+ <a href='#SkIRect_MakeXYWH_w'>w</a>, y \+ <a href='#SkIRect_MakeXYWH_h'>h</a>\)</code>.
+Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to: (<a href='#SkIRect_MakeXYWH_x'>x</a>, <a href='#SkIRect_MakeXYWH_y'>y</a>, <a href='#SkIRect_MakeXYWH_x'>x</a> + <a href='#SkIRect_MakeXYWH_w'>w</a>, <a href='#SkIRect_MakeXYWH_y'>y</a> + <a href='#SkIRect_MakeXYWH_h'>h</a>).
Does not validate input; <a href='#SkIRect_MakeXYWH_w'>w</a> or <a href='#SkIRect_MakeXYWH_h'>h</a> may be negative.
### Parameters
@@ -296,16 +296,16 @@
<td>stored in <a href='#SkIRect_fTop'>fTop</a></td>
</tr>
<tr> <td><a name='SkIRect_MakeXYWH_w'><code><strong>w</strong></code></a></td>
- <td>added to x and stored in <a href='#SkIRect_fRight'>fRight</a></td>
+ <td>added to <a href='#SkIRect_MakeXYWH_x'>x</a> and stored in <a href='#SkIRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkIRect_MakeXYWH_h'><code><strong>h</strong></code></a></td>
- <td>added to y and stored in <a href='#SkIRect_fBottom'>fBottom</a></td>
+ <td>added to <a href='#SkIRect_MakeXYWH_y'>y</a> and stored in <a href='#SkIRect_fBottom'>fBottom</a></td>
</tr>
</table>
### Return Value
-bounds at (x, y) with width <a href='#SkIRect_MakeXYWH_w'>w</a> and height <a href='#SkIRect_MakeXYWH_h'>h</a>
+bounds at (<a href='#SkIRect_MakeXYWH_x'>x</a>, <a href='#SkIRect_MakeXYWH_y'>y</a>) with width <a href='#SkIRect_MakeXYWH_w'>w</a> and height <a href='#SkIRect_MakeXYWH_h'>h</a>
### Example
@@ -334,8 +334,8 @@
int32_t <a href='#SkIRect_left'>left</a>() const
</pre>
-Returns left edge of <a href='#IRect'>IRect</a>, if sorted.
-Call <a href='#SkIRect_sort'>sort</a>() to reverse <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a> if needed.
+Returns left edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, if sorted.
+Call <a href='#SkIRect_sort'>sort()</a> to reverse <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a> if needed.
### Return Value
@@ -366,8 +366,8 @@
int32_t <a href='#SkIRect_top'>top</a>() const
</pre>
-Returns top edge of <a href='#IRect'>IRect</a>, if sorted. Call <a href='#SkIRect_isEmpty'>isEmpty</a> to see if <a href='#IRect'>IRect</a> may be invalid,
-and <a href='#SkIRect_sort'>sort</a>() to reverse <a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a> if needed.
+Returns top edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, if sorted. Call <a href='#SkIRect_isEmpty'>isEmpty</a>() to see if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> may be invalid,
+and <a href='#SkIRect_sort'>sort()</a> to reverse <a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a> if needed.
### Return Value
@@ -398,8 +398,8 @@
int32_t <a href='#SkIRect_right'>right</a>() const
</pre>
-Returns right edge of <a href='#IRect'>IRect</a>, if sorted.
-Call <a href='#SkIRect_sort'>sort</a>() to reverse <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a> if needed.
+Returns right edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, if sorted.
+Call <a href='#SkIRect_sort'>sort()</a> to reverse <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a> if needed.
### Return Value
@@ -430,8 +430,8 @@
int32_t <a href='#SkIRect_bottom'>bottom</a>() const
</pre>
-Returns bottom edge of <a href='#IRect'>IRect</a>, if sorted. Call <a href='#SkIRect_isEmpty'>isEmpty</a> to see if <a href='#IRect'>IRect</a> may be invalid,
-and <a href='#SkIRect_sort'>sort</a>() to reverse <a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a> if needed.
+Returns bottom edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, if sorted. Call <a href='#SkIRect_isEmpty'>isEmpty</a>() to see if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> may be invalid,
+and <a href='#SkIRect_sort'>sort()</a> to reverse <a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a> if needed.
### Return Value
@@ -462,8 +462,8 @@
int32_t <a href='#SkIRect_x'>x</a>() const
</pre>
-Returns left edge of <a href='#IRect'>IRect</a>, if sorted. Call <a href='#SkIRect_isEmpty'>isEmpty</a> to see if <a href='#IRect'>IRect</a> may be invalid,
-and <a href='#SkIRect_sort'>sort</a>() to reverse <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a> if needed.
+Returns left edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, if sorted. Call <a href='#SkIRect_isEmpty'>isEmpty</a>() to see if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> may be invalid,
+and <a href='#SkIRect_sort'>sort()</a> to reverse <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a> if needed.
### Return Value
@@ -494,8 +494,8 @@
int32_t <a href='#SkIRect_y'>y</a>() const
</pre>
-Returns top edge of <a href='#IRect'>IRect</a>, if sorted. Call <a href='#SkIRect_isEmpty'>isEmpty</a> to see if <a href='#IRect'>IRect</a> may be invalid,
-and <a href='#SkIRect_sort'>sort</a>() to reverse <a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a> if needed.
+Returns top edge of <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, if sorted. Call <a href='#SkIRect_isEmpty'>isEmpty</a>() to see if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> may be invalid,
+and <a href='#SkIRect_sort'>sort()</a> to reverse <a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a> if needed.
### Return Value
@@ -526,7 +526,7 @@
int32_t <a href='#SkIRect_width'>width</a>() const
</pre>
-Returns span on the x-axis. This does not check if <a href='#IRect'>IRect</a> is sorted, or if
+Returns span on the x-axis. This does not check if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is sorted, or if
result fits in 32-bit signed integer; result may be negative.
### Return Value
@@ -558,8 +558,8 @@
int64_t <a href='#SkIRect_width64'>width64</a>() const
</pre>
-Returns span on the x-axis. This does not check if <a href='#IRect'>IRect</a> is sorted, so the
-result may be negative. This is safer than calling <a href='#SkIRect_width'>width</a>() since <a href='#SkIRect_width'>width</a>() might
+Returns span on the x-axis. This does not check if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is sorted, so the
+result may be negative. This is safer than calling <a href='#SkIRect_width'>width()</a> since <a href='#SkIRect_width'>width()</a> might
overflow in its calculation.
### Return Value
@@ -590,7 +590,7 @@
int32_t <a href='#SkIRect_height'>height</a>() const
</pre>
-Returns span on the y-axis. This does not check if <a href='#IRect'>IRect</a> is sorted, or if
+Returns span on the y-axis. This does not check if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is sorted, or if
result fits in 32-bit signed integer; result may be negative.
### Return Value
@@ -622,8 +622,8 @@
int64_t <a href='#SkIRect_height64'>height64</a>() const
</pre>
-Returns span on the y-axis. This does not check if <a href='#IRect'>IRect</a> is sorted, so the
-result may be negative. This is safer than calling <a href='#SkIRect_height'>height</a>() since <a href='#SkIRect_height'>height</a>() might
+Returns span on the y-axis. This does not check if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is sorted, so the
+result may be negative. This is safer than calling <a href='#SkIRect_height'>height()</a> since <a href='#SkIRect_height'>height()</a> might
overflow in its calculation.
### Return Value
@@ -654,12 +654,12 @@
<a href='undocumented#SkISize'>SkISize</a> <a href='#SkIRect_size'>size</a>() const
</pre>
-Returns spans on the x-axis and y-axis. This does not check if <a href='#IRect'>IRect</a> is sorted,
+Returns spans on the x-axis and y-axis. This does not check if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is sorted,
or if result fits in 32-bit signed integer; result may be negative.
### Return Value
-<a href='undocumented#ISize'>ISize</a> (width, height)
+<a href='undocumented#SkISize'>SkISize</a> (width, height)
### Example
@@ -687,11 +687,11 @@
bool <a href='#SkIRect_isEmpty'>isEmpty</a>() const
</pre>
-Returns true if <a href='#SkIRect_width'>width</a>() or <a href='#SkIRect_height'>height</a>() are zero or negative or they exceed int32_t.
+Returns true if <a href='#SkIRect_width'>width()</a> or <a href='#SkIRect_height'>height()</a> are zero or negative.
### Return Value
-true if <a href='#SkIRect_width'>width</a>() or <a href='#SkIRect_height'>height</a>() are not positive and valid
+true if <a href='#SkIRect_width'>width()</a> or <a href='#SkIRect_height'>height()</a> are zero or negative
### Example
@@ -721,12 +721,12 @@
</pre>
Returns true if <a href='#SkIRect_fLeft'>fLeft</a> is equal to or greater than <a href='#SkIRect_fRight'>fRight</a>, or if <a href='#SkIRect_fTop'>fTop</a> is equal
-to or greater than <a href='#SkIRect_fBottom'>fBottom</a>. Call <a href='#SkIRect_sort'>sort</a>() to reverse rectangles with negative
+to or greater than <a href='#SkIRect_fBottom'>fBottom</a>. Call <a href='#SkIRect_sort'>sort()</a> to reverse rectangles with negative
<a href='#SkIRect_width64'>width64</a>() or <a href='#SkIRect_height64'>height64</a>().
### Return Value
-true if <a href='#SkIRect_width64'>width64</a>() or <a href='#SkIRect_height64'>height64</a>() are not positive
+true if <a href='#SkIRect_width64'>width64</a>() or <a href='#SkIRect_height64'>height64</a>() are zero or negative
### Example
@@ -757,16 +757,16 @@
bool <a href='#SkIRect_equal_operator'>operator==(const SkIRect& a, const SkIRect& b)</a>
</pre>
-Returns true if all members in <a href='#SkIRect_equal_operator_a'>a</a>: <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_fRight'>fRight</a>, and <a href='#SkIRect_fBottom'>fBottom</a>; are
-identical to corresponding members in <a href='#SkIRect_equal_operator_b'>b</a>.
+Returns true if all members in <a href='#SkIRect_operator==(const SkIRect& a, const SkIRect& b)_a'>a</a>: <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_fRight'>fRight</a>, and <a href='#SkIRect_fBottom'>fBottom</a>; are
+identical to corresponding members in <a href='#SkIRect_operator==(const SkIRect& a, const SkIRect& b)_b'>b</a>.
### Parameters
<table> <tr> <td><a name='SkIRect_equal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='#IRect'>IRect</a> to compare</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to compare</td>
</tr>
<tr> <td><a name='SkIRect_equal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='#IRect'>IRect</a> to compare</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to compare</td>
</tr>
</table>
@@ -798,16 +798,16 @@
bool <a href='#SkIRect_notequal_operator'>operator!=(const SkIRect& a, const SkIRect& b)</a>
</pre>
-Returns true if any member in <a href='#SkIRect_notequal_operator_a'>a</a>: <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_fRight'>fRight</a>, and <a href='#SkIRect_fBottom'>fBottom</a>; is not
-identical to the corresponding member in <a href='#SkIRect_notequal_operator_b'>b</a>.
+Returns true if any member in <a href='#SkIRect_operator!=(const SkIRect& a, const SkIRect& b)_a'>a</a>: <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_fRight'>fRight</a>, and <a href='#SkIRect_fBottom'>fBottom</a>; is not
+identical to the corresponding member in <a href='#SkIRect_operator!=(const SkIRect& a, const SkIRect& b)_b'>b</a>.
### Parameters
<table> <tr> <td><a name='SkIRect_notequal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='#IRect'>IRect</a> to compare</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to compare</td>
</tr>
<tr> <td><a name='SkIRect_notequal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='#IRect'>IRect</a> to compare</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to compare</td>
</tr>
</table>
@@ -841,7 +841,7 @@
void <a href='#SkIRect_setEmpty'>setEmpty</a>()
</pre>
-Sets <a href='#IRect'>IRect</a> to (0, 0, 0, 0).
+Sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to (0, 0, 0, 0).
Many other rectangles are empty; if left is equal to or greater than right,
or if top is equal to or greater than bottom. Setting all members to zero
@@ -872,9 +872,9 @@
void <a href='#SkIRect_set'>set</a>(int32_t left, int32_t top, int32_t right, int32_t bottom)
</pre>
-Sets <a href='#IRect'>IRect</a> to (left, top, right, bottom).
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
+Sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to (<a href='#SkIRect_set()_left'>left</a>, <a href='#SkIRect_set()_top'>top</a>, <a href='#SkIRect_set()_right'>right</a>, <a href='#SkIRect_set()_bottom'>bottom</a>).
+<a href='#SkIRect_set()_left'>left</a> and <a href='#SkIRect_set()_right'>right</a> are not sorted; <a href='#SkIRect_set()_left'>left</a> is not necessarily less than <a href='#SkIRect_set()_right'>right</a>.
+<a href='#SkIRect_set()_top'>top</a> and <a href='#SkIRect_set()_bottom'>bottom</a> are not sorted; <a href='#SkIRect_set()_top'>top</a> is not necessarily less than <a href='#SkIRect_set()_bottom'>bottom</a>.
### Parameters
@@ -917,9 +917,9 @@
void <a href='#SkIRect_setLTRB'>setLTRB</a>(int32_t left, int32_t top, int32_t right, int32_t bottom)
</pre>
-Sets <a href='#IRect'>IRect</a> to (left, top, right, bottom).
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
+Sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to (<a href='#SkIRect_setLTRB_left'>left</a>, <a href='#SkIRect_setLTRB_top'>top</a>, <a href='#SkIRect_setLTRB_right'>right</a>, <a href='#SkIRect_setLTRB_bottom'>bottom</a>).
+<a href='#SkIRect_setLTRB_left'>left</a> and <a href='#SkIRect_setLTRB_right'>right</a> are not sorted; <a href='#SkIRect_setLTRB_left'>left</a> is not necessarily less than <a href='#SkIRect_setLTRB_right'>right</a>.
+<a href='#SkIRect_setLTRB_top'>top</a> and <a href='#SkIRect_setLTRB_bottom'>bottom</a> are not sorted; <a href='#SkIRect_setLTRB_top'>top</a> is not necessarily less than <a href='#SkIRect_setLTRB_bottom'>bottom</a>.
### Parameters
@@ -1008,12 +1008,12 @@
<a href='#SkIRect'>SkIRect</a> <a href='#SkIRect_makeOffset'>makeOffset</a>(int32_t dx, int32_t dy) const
</pre>
-Returns <a href='#IRect'>IRect</a> offset by (<a href='#SkIRect_makeOffset_dx'>dx</a>, <a href='#SkIRect_makeOffset_dy'>dy</a>).
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> offset by (<a href='#SkIRect_makeOffset_dx'>dx</a>, <a href='#SkIRect_makeOffset_dy'>dy</a>).
-If <a href='#SkIRect_makeOffset_dx'>dx</a> is negative, <a href='#IRect'>IRect</a> returned is moved to the left.
-If <a href='#SkIRect_makeOffset_dx'>dx</a> is positive, <a href='#IRect'>IRect</a> returned is moved to the right.
-If <a href='#SkIRect_makeOffset_dy'>dy</a> is negative, <a href='#IRect'>IRect</a> returned is moved upward.
-If <a href='#SkIRect_makeOffset_dy'>dy</a> is positive, <a href='#IRect'>IRect</a> returned is moved downward.
+If <a href='#SkIRect_makeOffset_dx'>dx</a> is negative, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is moved to the left.
+If <a href='#SkIRect_makeOffset_dx'>dx</a> is positive, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is moved to the right.
+If <a href='#SkIRect_makeOffset_dy'>dy</a> is negative, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is moved upward.
+If <a href='#SkIRect_makeOffset_dy'>dy</a> is positive, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is moved downward.
### Parameters
@@ -1027,7 +1027,7 @@
### Return Value
-<a href='#IRect'>IRect</a> offset by <a href='#SkIRect_makeOffset_dx'>dx</a> and <a href='#SkIRect_makeOffset_dy'>dy</a>, with original width and height
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> offset by <a href='#SkIRect_makeOffset_dx'>dx</a> and <a href='#SkIRect_makeOffset_dy'>dy</a>, with original width and height
### Example
@@ -1054,12 +1054,12 @@
<a href='#SkIRect'>SkIRect</a> <a href='#SkIRect_makeInset'>makeInset</a>(int32_t dx, int32_t dy) const
</pre>
-Returns <a href='#IRect'>IRect</a>, inset by (<a href='#SkIRect_makeInset_dx'>dx</a>, <a href='#SkIRect_makeInset_dy'>dy</a>).
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, inset by (<a href='#SkIRect_makeInset_dx'>dx</a>, <a href='#SkIRect_makeInset_dy'>dy</a>).
-If <a href='#SkIRect_makeInset_dx'>dx</a> is negative, <a href='#IRect'>IRect</a> returned is wider.
-If <a href='#SkIRect_makeInset_dx'>dx</a> is positive, <a href='#IRect'>IRect</a> returned is narrower.
-If <a href='#SkIRect_makeInset_dy'>dy</a> is negative, <a href='#IRect'>IRect</a> returned is taller.
-If <a href='#SkIRect_makeInset_dy'>dy</a> is positive, <a href='#IRect'>IRect</a> returned is shorter.
+If <a href='#SkIRect_makeInset_dx'>dx</a> is negative, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is wider.
+If <a href='#SkIRect_makeInset_dx'>dx</a> is positive, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is narrower.
+If <a href='#SkIRect_makeInset_dy'>dy</a> is negative, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is taller.
+If <a href='#SkIRect_makeInset_dy'>dy</a> is positive, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is shorter.
### Parameters
@@ -1073,7 +1073,7 @@
### Return Value
-<a href='#IRect'>IRect</a> inset symmetrically left and right, top and bottom
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> inset symmetrically left and right, top and bottom
### Example
@@ -1100,12 +1100,12 @@
<a href='#SkIRect'>SkIRect</a> <a href='#SkIRect_makeOutset'>makeOutset</a>(int32_t dx, int32_t dy) const
</pre>
-Returns <a href='#IRect'>IRect</a>, outset by (<a href='#SkIRect_makeOutset_dx'>dx</a>, <a href='#SkIRect_makeOutset_dy'>dy</a>).
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, outset by (<a href='#SkIRect_makeOutset_dx'>dx</a>, <a href='#SkIRect_makeOutset_dy'>dy</a>).
-If <a href='#SkIRect_makeOutset_dx'>dx</a> is negative, <a href='#IRect'>IRect</a> returned is narrower.
-If <a href='#SkIRect_makeOutset_dx'>dx</a> is positive, <a href='#IRect'>IRect</a> returned is wider.
-If <a href='#SkIRect_makeOutset_dy'>dy</a> is negative, <a href='#IRect'>IRect</a> returned is shorter.
-If <a href='#SkIRect_makeOutset_dy'>dy</a> is positive, <a href='#IRect'>IRect</a> returned is taller.
+If <a href='#SkIRect_makeOutset_dx'>dx</a> is negative, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is narrower.
+If <a href='#SkIRect_makeOutset_dx'>dx</a> is positive, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is wider.
+If <a href='#SkIRect_makeOutset_dy'>dy</a> is negative, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is shorter.
+If <a href='#SkIRect_makeOutset_dy'>dy</a> is positive, <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned is taller.
### Parameters
@@ -1119,7 +1119,7 @@
### Return Value
-<a href='#IRect'>IRect</a> outset symmetrically left and right, top and bottom
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> outset symmetrically left and right, top and bottom
### Example
@@ -1146,12 +1146,12 @@
void <a href='#SkIRect_offset'>offset</a>(int32_t dx, int32_t dy)
</pre>
-Offsets <a href='#IRect'>IRect</a> by adding <a href='#SkIRect_offset_dx'>dx</a> to <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fRight'>fRight</a>; and by adding <a href='#SkIRect_offset_dy'>dy</a> to <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_fBottom'>fBottom</a>.
+Offsets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> by adding <a href='#SkIRect_offset()_dx'>dx</a> to <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fRight'>fRight</a>; and by adding <a href='#SkIRect_offset()_dy'>dy</a> to <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_fBottom'>fBottom</a>.
-If <a href='#SkIRect_offset_dx'>dx</a> is negative, moves <a href='#IRect'>IRect</a> returned to the left.
-If <a href='#SkIRect_offset_dx'>dx</a> is positive, moves <a href='#IRect'>IRect</a> returned to the right.
-If <a href='#SkIRect_offset_dy'>dy</a> is negative, moves <a href='#IRect'>IRect</a> returned upward.
-If <a href='#SkIRect_offset_dy'>dy</a> is positive, moves <a href='#IRect'>IRect</a> returned downward.
+If <a href='#SkIRect_offset()_dx'>dx</a> is negative, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned to the left.
+If <a href='#SkIRect_offset()_dx'>dx</a> is positive, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned to the right.
+If <a href='#SkIRect_offset()_dy'>dy</a> is negative, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned upward.
+If <a href='#SkIRect_offset()_dy'>dy</a> is positive, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned downward.
### Parameters
@@ -1187,18 +1187,18 @@
void <a href='#SkIRect_offset'>offset</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& delta)
</pre>
-Offsets <a href='#IRect'>IRect</a> by adding <a href='#SkIRect_offset_2_delta'>delta</a>.fX to <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fRight'>fRight</a>; and by adding <a href='#SkIRect_offset_2_delta'>delta</a>.fY to
+Offsets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> by adding <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fX'>fX</a> to <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_fRight'>fRight</a>; and by adding <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fY'>fY</a> to
<a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_fBottom'>fBottom</a>.
-If <a href='#SkIRect_offset_2_delta'>delta</a>.fX is negative, moves <a href='#IRect'>IRect</a> returned to the left.
-If <a href='#SkIRect_offset_2_delta'>delta</a>.fX is positive, moves <a href='#IRect'>IRect</a> returned to the right.
-If <a href='#SkIRect_offset_2_delta'>delta</a>.fY is negative, moves <a href='#IRect'>IRect</a> returned upward.
-If <a href='#SkIRect_offset_2_delta'>delta</a>.fY is positive, moves <a href='#IRect'>IRect</a> returned downward.
+If <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fX'>fX</a> is negative, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned to the left.
+If <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fX'>fX</a> is positive, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned to the right.
+If <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fY'>fY</a> is negative, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned upward.
+If <a href='#SkIRect_offset_2_delta'>delta</a>.<a href='#SkIPoint_fY'>fY</a> is positive, moves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> returned downward.
### Parameters
<table> <tr> <td><a name='SkIRect_offset_2_delta'><code><strong>delta</strong></code></a></td>
- <td>offset added to <a href='#IRect'>IRect</a></td>
+ <td>offset added to <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
</table>
@@ -1226,16 +1226,16 @@
void <a href='#SkIRect_offsetTo'>offsetTo</a>(int32_t newX, int32_t newY)
</pre>
-Offsets <a href='#IRect'>IRect</a> so that <a href='#SkIRect_fLeft'>fLeft</a> equals <a href='#SkIRect_offsetTo_newX'>newX</a>, and <a href='#SkIRect_fTop'>fTop</a> equals <a href='#SkIRect_offsetTo_newY'>newY</a>. width and height
+Offsets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> so that <a href='#SkIRect_fLeft'>fLeft</a> equals <a href='#SkIRect_offsetTo_newX'>newX</a>, and <a href='#SkIRect_fTop'>fTop</a> equals <a href='#SkIRect_offsetTo_newY'>newY</a>. width and height
are unchanged.
### Parameters
<table> <tr> <td><a name='SkIRect_offsetTo_newX'><code><strong>newX</strong></code></a></td>
- <td>stored in <a href='#SkIRect_fLeft'>fLeft</a>, preserving <a href='#SkIRect_width'>width</a>()</td>
+ <td>stored in <a href='#SkIRect_fLeft'>fLeft</a>, preserving <a href='#SkIRect_width'>width()</a></td>
</tr>
<tr> <td><a name='SkIRect_offsetTo_newY'><code><strong>newY</strong></code></a></td>
- <td>stored in <a href='#SkIRect_fTop'>fTop</a>, preserving <a href='#SkIRect_height'>height</a>()</td>
+ <td>stored in <a href='#SkIRect_fTop'>fTop</a>, preserving <a href='#SkIRect_height'>height()</a></td>
</tr>
</table>
@@ -1263,12 +1263,12 @@
void <a href='#SkIRect_inset'>inset</a>(int32_t dx, int32_t dy)
</pre>
-Insets <a href='#IRect'>IRect</a> by (<a href='#SkIRect_inset_dx'>dx</a>,<a href='#SkIRect_inset_dy'>dy</a>).
+Insets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> by (<a href='#SkIRect_inset()_dx'>dx</a>,<a href='#SkIRect_inset()_dy'>dy</a>).
-If <a href='#SkIRect_inset_dx'>dx</a> is positive, makes <a href='#IRect'>IRect</a> narrower.
-If <a href='#SkIRect_inset_dx'>dx</a> is negative, makes <a href='#IRect'>IRect</a> wider.
-If <a href='#SkIRect_inset_dy'>dy</a> is positive, makes <a href='#IRect'>IRect</a> shorter.
-If <a href='#SkIRect_inset_dy'>dy</a> is negative, makes <a href='#IRect'>IRect</a> taller.
+If <a href='#SkIRect_inset()_dx'>dx</a> is positive, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> narrower.
+If <a href='#SkIRect_inset()_dx'>dx</a> is negative, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> wider.
+If <a href='#SkIRect_inset()_dy'>dy</a> is positive, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> shorter.
+If <a href='#SkIRect_inset()_dy'>dy</a> is negative, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> taller.
### Parameters
@@ -1304,12 +1304,12 @@
void <a href='#SkIRect_outset'>outset</a>(int32_t dx, int32_t dy)
</pre>
-Outsets <a href='#IRect'>IRect</a> by (<a href='#SkIRect_outset_dx'>dx</a>, <a href='#SkIRect_outset_dy'>dy</a>).
+Outsets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> by (<a href='#SkIRect_outset()_dx'>dx</a>, <a href='#SkIRect_outset()_dy'>dy</a>).
-If <a href='#SkIRect_outset_dx'>dx</a> is positive, makes <a href='#IRect'>IRect</a> wider.
-If <a href='#SkIRect_outset_dx'>dx</a> is negative, makes <a href='#IRect'>IRect</a> narrower.
-If <a href='#SkIRect_outset_dy'>dy</a> is positive, makes <a href='#IRect'>IRect</a> taller.
-If <a href='#SkIRect_outset_dy'>dy</a> is negative, makes <a href='#IRect'>IRect</a> shorter.
+If <a href='#SkIRect_outset()_dx'>dx</a> is positive, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> wider.
+If <a href='#SkIRect_outset()_dx'>dx</a> is negative, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> narrower.
+If <a href='#SkIRect_outset()_dy'>dy</a> is positive, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> taller.
+If <a href='#SkIRect_outset()_dy'>dy</a> is negative, makes <a href='SkIRect_Reference#SkIRect'>SkIRect</a> shorter.
### Parameters
@@ -1356,15 +1356,15 @@
void <a href='#SkIRect_adjust'>adjust</a>(int32_t dL, int32_t dT, int32_t dR, int32_t dB)
</pre>
-Adjusts <a href='#IRect'>IRect</a> by adding <a href='#SkIRect_adjust_dL'>dL</a> to <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_adjust_dT'>dT</a> to <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_adjust_dR'>dR</a> to <a href='#SkIRect_fRight'>fRight</a>, and <a href='#SkIRect_adjust_dB'>dB</a> to <a href='#SkIRect_fBottom'>fBottom</a>.
+Adjusts <a href='SkIRect_Reference#SkIRect'>SkIRect</a> by adding <a href='#SkIRect_adjust()_dL'>dL</a> to <a href='#SkIRect_fLeft'>fLeft</a>, <a href='#SkIRect_adjust()_dT'>dT</a> to <a href='#SkIRect_fTop'>fTop</a>, <a href='#SkIRect_adjust()_dR'>dR</a> to <a href='#SkIRect_fRight'>fRight</a>, and <a href='#SkIRect_adjust()_dB'>dB</a> to <a href='#SkIRect_fBottom'>fBottom</a>.
-If <a href='#SkIRect_adjust_dL'>dL</a> is positive, narrows <a href='#IRect'>IRect</a> on the left. If negative, widens it on the left.
-If <a href='#SkIRect_adjust_dT'>dT</a> is positive, shrinks <a href='#IRect'>IRect</a> on the top. If negative, lengthens it on the top.
-If <a href='#SkIRect_adjust_dR'>dR</a> is positive, narrows <a href='#IRect'>IRect</a> on the right. If negative, widens it on the right.
-If <a href='#SkIRect_adjust_dB'>dB</a> is positive, shrinks <a href='#IRect'>IRect</a> on the bottom. If negative, lengthens it on the bottom.
+If <a href='#SkIRect_adjust()_dL'>dL</a> is positive, narrows <a href='SkIRect_Reference#SkIRect'>SkIRect</a> on the left. If negative, widens it on the left.
+If <a href='#SkIRect_adjust()_dT'>dT</a> is positive, shrinks <a href='SkIRect_Reference#SkIRect'>SkIRect</a> on the top. If negative, lengthens it on the top.
+If <a href='#SkIRect_adjust()_dR'>dR</a> is positive, narrows <a href='SkIRect_Reference#SkIRect'>SkIRect</a> on the right. If negative, widens it on the right.
+If <a href='#SkIRect_adjust()_dB'>dB</a> is positive, shrinks <a href='SkIRect_Reference#SkIRect'>SkIRect</a> on the bottom. If negative, lengthens it on the bottom.
-The resulting <a href='#IRect'>IRect</a> is not checked for validity. Thus, if the resulting <a href='#IRect'>IRect</a> left is
-greater than right, the <a href='#IRect'>IRect</a> will be considered empty. Call <a href='#SkIRect_sort'>sort</a>() after this call
+The resulting <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is not checked for validity. Thus, if the resulting <a href='SkIRect_Reference#SkIRect'>SkIRect</a> left is
+greater than right, the <a href='SkIRect_Reference#SkIRect'>SkIRect</a> will be considered empty. Call <a href='#SkIRect_sort'>sort()</a> after this call
if that is not the desired behavior.
### Parameters
@@ -1453,31 +1453,31 @@
bool <a href='#SkIRect_contains'>contains</a>(int32_t left, int32_t top, int32_t right, int32_t bottom) const
</pre>
-Constructs <a href='#IRect'>IRect</a> to intersect from (left, top, right, bottom). Does not sort
+Constructs <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect from (<a href='#SkIRect_contains_2_left'>left</a>, <a href='#SkIRect_contains_2_top'>top</a>, <a href='#SkIRect_contains_2_right'>right</a>, <a href='#SkIRect_contains_2_bottom'>bottom</a>). Does not sort
construction.
-Returns true if <a href='#IRect'>IRect</a> contains construction.
-Returns false if <a href='#IRect'>IRect</a> is empty or construction is empty.
+Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains construction.
+Returns false if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or construction is empty.
### Parameters
<table> <tr> <td><a name='SkIRect_contains_2_left'><code><strong>left</strong></code></a></td>
- <td>x-axis minimum of constructed <a href='#IRect'>IRect</a></td>
+ <td>x-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
<tr> <td><a name='SkIRect_contains_2_top'><code><strong>top</strong></code></a></td>
- <td>y-axis minimum of constructed <a href='#IRect'>IRect</a></td>
+ <td>y-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
<tr> <td><a name='SkIRect_contains_2_right'><code><strong>right</strong></code></a></td>
- <td>x-axis maximum of constructed <a href='#IRect'>IRect</a></td>
+ <td>x-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
<tr> <td><a name='SkIRect_contains_2_bottom'><code><strong>bottom</strong></code></a></td>
- <td>y-axis maximum of constructed <a href='#IRect'>IRect</a></td>
+ <td>y-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
</table>
### Return Value
-true if all sides of <a href='#IRect'>IRect</a> are outside construction
+true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> are outside construction
### Example
@@ -1505,21 +1505,21 @@
bool <a href='#SkIRect_contains'>contains</a>(const <a href='#SkIRect'>SkIRect</a>& r) const
</pre>
-Returns true if <a href='#IRect'>IRect</a> contains <a href='#SkIRect_contains_3_r'>r</a>.
-Returns false if <a href='#IRect'>IRect</a> is empty or <a href='#SkIRect_contains_3_r'>r</a> is empty.
+Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains <a href='#SkIRect_contains_3_r'>r</a>.
+Returns false if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or <a href='#SkIRect_contains_3_r'>r</a> is empty.
-<a href='#IRect'>IRect</a> contains <a href='#SkIRect_contains_3_r'>r</a> when <a href='#IRect'>IRect</a> area completely includes <a href='#SkIRect_contains_3_r'>r</a> area.
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains <a href='#SkIRect_contains_3_r'>r</a> when <a href='SkIRect_Reference#SkIRect'>SkIRect</a> area completely includes <a href='#SkIRect_contains_3_r'>r</a> area.
### Parameters
<table> <tr> <td><a name='SkIRect_contains_3_r'><code><strong>r</strong></code></a></td>
- <td><a href='#IRect'>IRect</a> contained</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> contained</td>
</tr>
</table>
### Return Value
-true if all sides of <a href='#IRect'>IRect</a> are outside <a href='#SkIRect_contains_3_r'>r</a>
+true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> are outside <a href='#SkIRect_contains_3_r'>r</a>
### Example
@@ -1547,21 +1547,21 @@
bool <a href='#SkIRect_contains'>contains</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& r) const
</pre>
-Returns true if <a href='#IRect'>IRect</a> contains <a href='#SkIRect_contains_4_r'>r</a>.
-Returns false if <a href='#IRect'>IRect</a> is empty or <a href='#SkIRect_contains_4_r'>r</a> is empty.
+Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains <a href='#SkIRect_contains_4_r'>r</a>.
+Returns false if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or <a href='#SkIRect_contains_4_r'>r</a> is empty.
-<a href='#IRect'>IRect</a> contains <a href='#SkIRect_contains_4_r'>r</a> when <a href='#IRect'>IRect</a> area completely includes <a href='#SkIRect_contains_4_r'>r</a> area.
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains <a href='#SkIRect_contains_4_r'>r</a> when <a href='SkIRect_Reference#SkIRect'>SkIRect</a> area completely includes <a href='#SkIRect_contains_4_r'>r</a> area.
### Parameters
<table> <tr> <td><a name='SkIRect_contains_4_r'><code><strong>r</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> contained</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> contained</td>
</tr>
</table>
### Return Value
-true if all sides of <a href='#IRect'>IRect</a> are outside <a href='#SkIRect_contains_4_r'>r</a>
+true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> are outside <a href='#SkIRect_contains_4_r'>r</a>
### Example
@@ -1589,33 +1589,33 @@
bool <a href='#SkIRect_containsNoEmptyCheck'>containsNoEmptyCheck</a>(int32_t left, int32_t top, int32_t right, int32_t bottom) const
</pre>
-Constructs <a href='#IRect'>IRect</a> from (left, top, right, bottom). Does not sort
+Constructs <a href='SkIRect_Reference#SkIRect'>SkIRect</a> from (<a href='#SkIRect_containsNoEmptyCheck_left'>left</a>, <a href='#SkIRect_containsNoEmptyCheck_top'>top</a>, <a href='#SkIRect_containsNoEmptyCheck_right'>right</a>, <a href='#SkIRect_containsNoEmptyCheck_bottom'>bottom</a>). Does not sort
construction.
-Returns true if <a href='#IRect'>IRect</a> contains construction.
-Asserts if <a href='#IRect'>IRect</a> is empty or construction is empty, and if SK_DEBUG is defined.
+Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains construction.
+Asserts if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or construction is empty, and if SK_DEBUG is defined.
-Return is undefined if <a href='#IRect'>IRect</a> is empty or construction is empty.
+Return is undefined if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or construction is empty.
### Parameters
<table> <tr> <td><a name='SkIRect_containsNoEmptyCheck_left'><code><strong>left</strong></code></a></td>
- <td>x-axis minimum of constructed <a href='#IRect'>IRect</a></td>
+ <td>x-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
<tr> <td><a name='SkIRect_containsNoEmptyCheck_top'><code><strong>top</strong></code></a></td>
- <td>y-axis minimum of constructed <a href='#IRect'>IRect</a></td>
+ <td>y-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
<tr> <td><a name='SkIRect_containsNoEmptyCheck_right'><code><strong>right</strong></code></a></td>
- <td>x-axis maximum of constructed <a href='#IRect'>IRect</a></td>
+ <td>x-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
<tr> <td><a name='SkIRect_containsNoEmptyCheck_bottom'><code><strong>bottom</strong></code></a></td>
- <td>y-axis maximum of constructed <a href='#IRect'>IRect</a></td>
+ <td>y-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
</table>
### Return Value
-true if all sides of <a href='#IRect'>IRect</a> are outside construction
+true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> are outside construction
### Example
@@ -1643,21 +1643,21 @@
bool <a href='#SkIRect_containsNoEmptyCheck'>containsNoEmptyCheck</a>(const <a href='#SkIRect'>SkIRect</a>& r) const
</pre>
-Returns true if <a href='#IRect'>IRect</a> contains construction.
-Asserts if <a href='#IRect'>IRect</a> is empty or construction is empty, and if SK_DEBUG is defined.
+Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> contains construction.
+Asserts if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or construction is empty, and if SK_DEBUG is defined.
-Return is undefined if <a href='#IRect'>IRect</a> is empty or construction is empty.
+Return is undefined if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty or construction is empty.
### Parameters
<table> <tr> <td><a name='SkIRect_containsNoEmptyCheck_2_r'><code><strong>r</strong></code></a></td>
- <td><a href='#IRect'>IRect</a> contained</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> contained</td>
</tr>
</table>
### Return Value
-true if all sides of <a href='#IRect'>IRect</a> are outside <a href='#SkIRect_containsNoEmptyCheck_2_r'>r</a>
+true if all sides of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> are outside <a href='#SkIRect_containsNoEmptyCheck_2_r'>r</a>
### Example
@@ -1685,10 +1685,10 @@
bool <a href='#SkIRect_intersect'>intersect</a>(const <a href='#SkIRect'>SkIRect</a>& r)
</pre>
-Returns true if <a href='#IRect'>IRect</a> intersects <a href='#SkIRect_intersect_r'>r</a>, and sets <a href='#IRect'>IRect</a> to intersection.
-Returns false if <a href='#IRect'>IRect</a> does not intersect <a href='#SkIRect_intersect_r'>r</a>, and leaves <a href='#IRect'>IRect</a> unchanged.
+Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> intersects <a href='#SkIRect_intersect()_r'>r</a>, and sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersection.
+Returns false if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> does not intersect <a href='#SkIRect_intersect()_r'>r</a>, and leaves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged.
-Returns false if either <a href='#SkIRect_intersect_r'>r</a> or <a href='#IRect'>IRect</a> is empty, leaving <a href='#IRect'>IRect</a> unchanged.
+Returns false if either <a href='#SkIRect_intersect()_r'>r</a> or <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty, leaving <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged.
### Parameters
@@ -1699,7 +1699,7 @@
### Return Value
-true if <a href='#SkIRect_intersect_r'>r</a> and <a href='#IRect'>IRect</a> have area in common
+true if <a href='#SkIRect_intersect()_r'>r</a> and <a href='SkIRect_Reference#SkIRect'>SkIRect</a> have area in common
### Example
@@ -1728,18 +1728,18 @@
bool <a href='#SkIRect_intersect'>intersect</a>(const <a href='#SkIRect'>SkIRect</a>& a, const <a href='#SkIRect'>SkIRect</a>& b)
</pre>
-Returns true if <a href='#SkIRect_intersect_2_a'>a</a> intersects <a href='#SkIRect_intersect_2_b'>b</a>, and sets <a href='#IRect'>IRect</a> to intersection.
-Returns false if <a href='#SkIRect_intersect_2_a'>a</a> does not intersect <a href='#SkIRect_intersect_2_b'>b</a>, and leaves <a href='#IRect'>IRect</a> unchanged.
+Returns true if <a href='#SkIRect_intersect_2_a'>a</a> intersects <a href='#SkIRect_intersect_2_b'>b</a>, and sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersection.
+Returns false if <a href='#SkIRect_intersect_2_a'>a</a> does not intersect <a href='#SkIRect_intersect_2_b'>b</a>, and leaves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged.
-Returns false if either <a href='#SkIRect_intersect_2_a'>a</a> or <a href='#SkIRect_intersect_2_b'>b</a> is empty, leaving <a href='#IRect'>IRect</a> unchanged.
+Returns false if either <a href='#SkIRect_intersect_2_a'>a</a> or <a href='#SkIRect_intersect_2_b'>b</a> is empty, leaving <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged.
### Parameters
<table> <tr> <td><a name='SkIRect_intersect_2_a'><code><strong>a</strong></code></a></td>
- <td><a href='#IRect'>IRect</a> to intersect</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
</tr>
<tr> <td><a name='SkIRect_intersect_2_b'><code><strong>b</strong></code></a></td>
- <td><a href='#IRect'>IRect</a> to intersect</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
</tr>
</table>
@@ -1771,18 +1771,18 @@
bool <a href='#SkIRect_intersectNoEmptyCheck'>intersectNoEmptyCheck</a>(const <a href='#SkIRect'>SkIRect</a>& a, const <a href='#SkIRect'>SkIRect</a>& b)
</pre>
-Returns true if <a href='#SkIRect_intersectNoEmptyCheck_a'>a</a> intersects <a href='#SkIRect_intersectNoEmptyCheck_b'>b</a>, and sets <a href='#IRect'>IRect</a> to intersection.
-Returns false if <a href='#SkIRect_intersectNoEmptyCheck_a'>a</a> does not intersect <a href='#SkIRect_intersectNoEmptyCheck_b'>b</a>, and leaves <a href='#IRect'>IRect</a> unchanged.
+Returns true if <a href='#SkIRect_intersectNoEmptyCheck_a'>a</a> intersects <a href='#SkIRect_intersectNoEmptyCheck_b'>b</a>, and sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersection.
+Returns false if <a href='#SkIRect_intersectNoEmptyCheck_a'>a</a> does not intersect <a href='#SkIRect_intersectNoEmptyCheck_b'>b</a>, and leaves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged.
Asserts if either <a href='#SkIRect_intersectNoEmptyCheck_a'>a</a> or <a href='#SkIRect_intersectNoEmptyCheck_b'>b</a> is empty, and if SK_DEBUG is defined.
### Parameters
<table> <tr> <td><a name='SkIRect_intersectNoEmptyCheck_a'><code><strong>a</strong></code></a></td>
- <td><a href='#IRect'>IRect</a> to intersect</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
</tr>
<tr> <td><a name='SkIRect_intersectNoEmptyCheck_b'><code><strong>b</strong></code></a></td>
- <td><a href='#IRect'>IRect</a> to intersect</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
</tr>
</table>
@@ -1814,33 +1814,33 @@
bool <a href='#SkIRect_intersect'>intersect</a>(int32_t left, int32_t top, int32_t right, int32_t bottom)
</pre>
-Constructs <a href='#IRect'>IRect</a> to intersect from (left, top, right, bottom). Does not sort
+Constructs <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect from (<a href='#SkIRect_intersect_3_left'>left</a>, <a href='#SkIRect_intersect_3_top'>top</a>, <a href='#SkIRect_intersect_3_right'>right</a>, <a href='#SkIRect_intersect_3_bottom'>bottom</a>). Does not sort
construction.
-Returns true if <a href='#IRect'>IRect</a> intersects construction, and sets <a href='#IRect'>IRect</a> to intersection.
-Returns false if <a href='#IRect'>IRect</a> does not intersect construction, and leaves <a href='#IRect'>IRect</a> unchanged.
+Returns true if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> intersects construction, and sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersection.
+Returns false if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> does not intersect construction, and leaves <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged.
-Returns false if either construction or <a href='#IRect'>IRect</a> is empty, leaving <a href='#IRect'>IRect</a> unchanged.
+Returns false if either construction or <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty, leaving <a href='SkIRect_Reference#SkIRect'>SkIRect</a> unchanged.
### Parameters
<table> <tr> <td><a name='SkIRect_intersect_3_left'><code><strong>left</strong></code></a></td>
- <td>x-axis minimum of constructed <a href='#IRect'>IRect</a></td>
+ <td>x-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
<tr> <td><a name='SkIRect_intersect_3_top'><code><strong>top</strong></code></a></td>
- <td>y-axis minimum of constructed <a href='#IRect'>IRect</a></td>
+ <td>y-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
<tr> <td><a name='SkIRect_intersect_3_right'><code><strong>right</strong></code></a></td>
- <td>x-axis maximum of constructed <a href='#IRect'>IRect</a></td>
+ <td>x-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
<tr> <td><a name='SkIRect_intersect_3_bottom'><code><strong>bottom</strong></code></a></td>
- <td>y-axis maximum of constructed <a href='#IRect'>IRect</a></td>
+ <td>y-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
</table>
### Return Value
-true if construction and <a href='#IRect'>IRect</a> have area in common
+true if construction and <a href='SkIRect_Reference#SkIRect'>SkIRect</a> have area in common
### Example
@@ -1875,10 +1875,10 @@
### Parameters
<table> <tr> <td><a name='SkIRect_Intersects_a'><code><strong>a</strong></code></a></td>
- <td><a href='#IRect'>IRect</a> to intersect</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
</tr>
<tr> <td><a name='SkIRect_Intersects_b'><code><strong>b</strong></code></a></td>
- <td><a href='#IRect'>IRect</a> to intersect</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
</tr>
</table>
@@ -1916,10 +1916,10 @@
### Parameters
<table> <tr> <td><a name='SkIRect_IntersectsNoEmptyCheck_a'><code><strong>a</strong></code></a></td>
- <td><a href='#IRect'>IRect</a> to intersect</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
</tr>
<tr> <td><a name='SkIRect_IntersectsNoEmptyCheck_b'><code><strong>b</strong></code></a></td>
- <td><a href='#IRect'>IRect</a> to intersect</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
</tr>
</table>
@@ -1953,27 +1953,27 @@
void <a href='#SkIRect_join'>join</a>(int32_t left, int32_t top, int32_t right, int32_t bottom)
</pre>
-Constructs <a href='#IRect'>IRect</a> to intersect from (left, top, right, bottom). Does not sort
+Constructs <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect from (<a href='#SkIRect_join()_left'>left</a>, <a href='#SkIRect_join()_top'>top</a>, <a href='#SkIRect_join()_right'>right</a>, <a href='#SkIRect_join()_bottom'>bottom</a>). Does not sort
construction.
-Sets <a href='#IRect'>IRect</a> to the union of itself and the construction.
+Sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to the union of itself and the construction.
-Has no effect if construction is empty. Otherwise, if <a href='#IRect'>IRect</a> is empty, sets
-<a href='#IRect'>IRect</a> to construction.
+Has no effect if construction is empty. Otherwise, if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty, sets
+<a href='SkIRect_Reference#SkIRect'>SkIRect</a> to construction.
### Parameters
<table> <tr> <td><a name='SkIRect_join_left'><code><strong>left</strong></code></a></td>
- <td>x-axis minimum of constructed <a href='#IRect'>IRect</a></td>
+ <td>x-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
<tr> <td><a name='SkIRect_join_top'><code><strong>top</strong></code></a></td>
- <td>y-axis minimum of constructed <a href='#IRect'>IRect</a></td>
+ <td>y-axis minimum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
<tr> <td><a name='SkIRect_join_right'><code><strong>right</strong></code></a></td>
- <td>x-axis maximum of constructed <a href='#IRect'>IRect</a></td>
+ <td>x-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
<tr> <td><a name='SkIRect_join_bottom'><code><strong>bottom</strong></code></a></td>
- <td>y-axis maximum of constructed <a href='#IRect'>IRect</a></td>
+ <td>y-axis maximum of constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
</table>
@@ -2001,14 +2001,14 @@
void <a href='#SkIRect_join'>join</a>(const <a href='#SkIRect'>SkIRect</a>& r)
</pre>
-Sets <a href='#IRect'>IRect</a> to the union of itself and <a href='#SkIRect_join_2_r'>r</a>.
+Sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to the union of itself and <a href='#SkIRect_join_2_r'>r</a>.
-Has no effect if <a href='#SkIRect_join_2_r'>r</a> is empty. Otherwise, if <a href='#IRect'>IRect</a> is empty, sets <a href='#IRect'>IRect</a> to <a href='#SkIRect_join_2_r'>r</a>.
+Has no effect if <a href='#SkIRect_join_2_r'>r</a> is empty. Otherwise, if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> is empty, sets <a href='SkIRect_Reference#SkIRect'>SkIRect</a> to <a href='#SkIRect_join_2_r'>r</a>.
### Parameters
<table> <tr> <td><a name='SkIRect_join_2_r'><code><strong>r</strong></code></a></td>
- <td>expansion <a href='#IRect'>IRect</a></td>
+ <td>expansion <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
</table>
@@ -2040,7 +2040,7 @@
Swaps <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a> if <a href='#SkIRect_fLeft'>fLeft</a> is greater than <a href='#SkIRect_fRight'>fRight</a>; and swaps
<a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a> if <a href='#SkIRect_fTop'>fTop</a> is greater than <a href='#SkIRect_fBottom'>fBottom</a>. Result may be empty,
-and <a href='#SkIRect_width'>width</a>() and <a href='#SkIRect_height'>height</a>() will be zero or positive.
+and <a href='#SkIRect_width'>width()</a> and <a href='#SkIRect_height'>height()</a> will be zero or positive.
### Example
@@ -2067,13 +2067,13 @@
<a href='#SkIRect'>SkIRect</a> <a href='#SkIRect_makeSorted'>makeSorted</a>() const
</pre>
-Returns <a href='#IRect'>IRect</a> with <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a> swapped if <a href='#SkIRect_fLeft'>fLeft</a> is greater than <a href='#SkIRect_fRight'>fRight</a>; and
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> with <a href='#SkIRect_fLeft'>fLeft</a> and <a href='#SkIRect_fRight'>fRight</a> swapped if <a href='#SkIRect_fLeft'>fLeft</a> is greater than <a href='#SkIRect_fRight'>fRight</a>; and
with <a href='#SkIRect_fTop'>fTop</a> and <a href='#SkIRect_fBottom'>fBottom</a> swapped if <a href='#SkIRect_fTop'>fTop</a> is greater than <a href='#SkIRect_fBottom'>fBottom</a>. Result may be empty;
-and <a href='#SkIRect_width'>width</a>() and <a href='#SkIRect_height'>height</a>() will be zero or positive.
+and <a href='#SkIRect_width'>width()</a> and <a href='#SkIRect_height'>height()</a> will be zero or positive.
### Return Value
-sorted <a href='#IRect'>IRect</a>
+sorted <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
### Example
@@ -2100,11 +2100,11 @@
static const <a href='#SkIRect'>SkIRect</a>& <a href='#SkIRect_EmptyIRect'>EmptyIRect</a>()
</pre>
-Returns a reference to immutable empty <a href='#IRect'>IRect</a>, set to (0, 0, 0, 0).
+Returns a reference to immutable empty <a href='SkIRect_Reference#SkIRect'>SkIRect</a>, set to (0, 0, 0, 0).
### Return Value
-global <a href='#IRect'>IRect</a> set to all zeroes
+global <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to all zeroes
### Example
diff --git a/site/user/api/SkImageInfo_Reference.md b/site/user/api/SkImageInfo_Reference.md
index 0f50f88..05172a2 100644
--- a/site/user/api/SkImageInfo_Reference.md
+++ b/site/user/api/SkImageInfo_Reference.md
@@ -216,23 +216,25 @@
static inline bool <a href='#SkAlphaTypeIsOpaque'>SkAlphaTypeIsOpaque</a>(<a href='#SkAlphaType'>SkAlphaType</a> at)
</pre>
-Returns true if <a href='#Alpha_Type'>Alpha Type</a> equals <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>. <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> is a
-hint that the <a href='#Color_Type'>Color Type</a> is opaque, or that all <a href='SkColor_Reference#Alpha'>Color Alpha</a> values are set to
-their 1.0 equivalent. If <a href='#Alpha_Type'>Alpha Type</a> is <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, and <a href='#Color_Type'>Color Type</a> is not
-opaque, then the result of drawing any pixel with a <a href='SkColor_Reference#Alpha'>Color Alpha</a> value less than
+Returns true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> equals <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>. <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> is a
+hint that the <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is opaque, or that all <a href='SkColor_Reference#Alpha'>alpha</a> values are set to
+their 1.0 equivalent. If <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not
+opaque, then the result of drawing any <a href='undocumented#Pixel'>pixel</a> with a <a href='SkColor_Reference#Alpha'>alpha</a> value less than
1.0 is undefined.
### Parameters
<table> <tr> <td><a name='SkAlphaTypeIsOpaque_at'><code><strong>at</strong></code></a></td>
- <td>one of: <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
-<a href='#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> </td>
+ <td>one of:</td>
</tr>
</table>
+<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
+<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>
+
### Return Value
-true if <a href='#SkAlphaTypeIsOpaque_at'>at</a> equals <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>
+true if <a href='#SkAlphaTypeIsOpaque_at'>at</a> equals <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>
<a name='Color_Type'></a>
@@ -261,7 +263,7 @@
</pre>
Describes how pixel bits encode color. A pixel may be an alpha mask, a
-<a href='undocumented#Grayscale'>Grayscale</a>, RGB, or ARGB.
+grayscale, RGB, or ARGB.
<a href='#kN32_SkColorType'>kN32_SkColorType</a> selects the native 32-bit ARGB format. On <a href='undocumented#Little_Endian'>Little Endian</a>
processors, pixels containing 8-bit ARGB components pack into 32-bit
@@ -628,7 +630,7 @@
---
-<a href='#kGray_8_SkColorType'>kGray_8_SkColorType</a> encodes <a href='undocumented#Grayscale'>Grayscale</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
@@ -720,22 +722,24 @@
int <a href='#SkColorTypeBytesPerPixel'>SkColorTypeBytesPerPixel</a>(<a href='#SkColorType'>SkColorType</a> ct)
</pre>
-Returns the number of bytes required to store a pixel, including unused padding.
-Returns zero if <a href='#SkColorTypeBytesPerPixel_ct'>ct</a> is <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a> or invalid.
+Returns the number of bytes required to store a <a href='undocumented#Pixel'>pixel</a>, including unused padding.
+Returns zero if <a href='#SkColorTypeBytesPerPixel_ct'>ct</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a> or invalid.
### Parameters
<table> <tr> <td><a name='SkColorTypeBytesPerPixel_ct'><code><strong>ct</strong></code></a></td>
- <td>one of: <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
-<a href='#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
-<a href='#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
-<a href='#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> </td>
+ <td>one of:</td>
</tr>
</table>
+<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
+<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
+<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>
+
### Return Value
-bytes per pixel
+bytes per <a href='undocumented#Pixel'>pixel</a>
### Example
@@ -756,22 +760,24 @@
bool <a href='#SkColorTypeIsAlwaysOpaque'>SkColorTypeIsAlwaysOpaque</a>(<a href='#SkColorType'>SkColorType</a> ct)
</pre>
-Returns true if <a href='#Color_Type'>Color Type</a> always decodes <a href='SkColor_Reference#Alpha'>Color Alpha</a> to 1.0, making the pixel
-fully opaque. If true, <a href='#Color_Type'>Color Type</a> does not reserve bits to encode <a href='SkColor_Reference#Alpha'>Color Alpha</a>.
+Returns true if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> always decodes <a href='SkColor_Reference#Alpha'>alpha</a> to 1.0, making the <a href='undocumented#Pixel'>pixel</a>
+fully opaque. If true, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> does not reserve bits to encode <a href='SkColor_Reference#Alpha'>alpha</a>.
### Parameters
<table> <tr> <td><a name='SkColorTypeIsAlwaysOpaque_ct'><code><strong>ct</strong></code></a></td>
- <td>one of: <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
-<a href='#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
-<a href='#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
-<a href='#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> </td>
+ <td>one of:</td>
</tr>
</table>
+<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
+<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
+<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>
+
### Return Value
-true if <a href='SkColor_Reference#Alpha'>Color Alpha</a> is always set to 1.0
+true if <a href='SkColor_Reference#Alpha'>alpha</a> is always set to 1.0
### Example
@@ -793,43 +799,55 @@
<a href='#SkAlphaType'>SkAlphaType</a>* canonical = nullptr)
</pre>
-Returns true if <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> can be set to a valid <a href='#Alpha_Type'>Alpha Type</a> for <a href='#SkImageInfo_colorType'>colorType</a>. If
-there is more than one valid <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> <a href='#Alpha_Type'>Alpha Type</a>, set to <a href='#SkImageInfo_alphaType'>alphaType</a>, if valid.
-If true is returned and <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> is not nullptr, store valid <a href='#Alpha_Type'>Alpha Type</a>.
+Returns true if <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> can be set to a valid <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> for <a href='#SkColorTypeValidateAlphaType_colorType'>colorType</a>. If
+there is more than one valid <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, set to <a href='#SkColorTypeValidateAlphaType_alphaType'>alphaType</a>, if valid.
+If true is returned and <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> is not nullptr, store valid <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>.
-Returns false only if <a href='#SkImageInfo_alphaType'>alphaType</a> is <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, color type is not
-<a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>, and <a href='#Color_Type'>Color Type</a> is not always opaque. If false is returned,
+Returns false only if <a href='#SkColorTypeValidateAlphaType_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#Color_Type'>color type</a> is not
+<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not always opaque. If false is returned,
<a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> is ignored.
-For <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>: set <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> to <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a> and return true.
-For <a href='#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>: set <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> to <a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a> or
-<a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> and return true if <a href='#SkImageInfo_alphaType'>alphaType</a> is not <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
-For <a href='#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>, <a href='#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>, <a href='#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>, and
-<a href='#kGray_8_SkColorType'>kGray_8_SkColorType</a>: set <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> to <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> and return true.
-For <a href='#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>,
-<a href='#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, and <a href='#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>: set <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> to <a href='#SkImageInfo_alphaType'>alphaType</a>
-and return true if <a href='#SkImageInfo_alphaType'>alphaType</a> is not <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
+For <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>: set <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> to <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a> and return true.
+For <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>: set <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> to <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a> or
+<a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> and return true if <a href='#SkColorTypeValidateAlphaType_alphaType'>alphaType</a> is not <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
+For <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>, and
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>: set <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> to <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a> and return true.
+For <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, and <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>: set <a href='#SkColorTypeValidateAlphaType_canonical'>canonical</a> to <a href='#SkColorTypeValidateAlphaType_alphaType'>alphaType</a>
+and return true if <a href='#SkColorTypeValidateAlphaType_alphaType'>alphaType</a> is not <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
### Parameters
<table> <tr> <td><a name='SkColorTypeValidateAlphaType_colorType'><code><strong>colorType</strong></code></a></td>
- <td>one of: <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
-<a href='#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
-<a href='#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
-<a href='#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> </td>
+ <td>one of:</td>
</tr>
- <tr> <td><a name='SkColorTypeValidateAlphaType_alphaType'><code><strong>alphaType</strong></code></a></td>
- <td>one of: <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
-<a href='#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> </td>
+</table>
+
+<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
+<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
+<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkColorTypeValidateAlphaType_alphaType'><code><strong>alphaType</strong></code></a></td>
+ <td>one of:</td>
</tr>
- <tr> <td><a name='SkColorTypeValidateAlphaType_canonical'><code><strong>canonical</strong></code></a></td>
- <td>storage for <a href='#Alpha_Type'>Alpha Type</a></td>
+</table>
+
+<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
+<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkColorTypeValidateAlphaType_canonical'><code><strong>canonical</strong></code></a></td>
+ <td>storage for <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a></td>
</tr>
</table>
### Return Value
-true if valid <a href='#Alpha_Type'>Alpha Type</a> can be associated with <a href='#SkImageInfo_colorType'>colorType</a>
+true if valid <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> can be associated with <a href='#SkColorTypeValidateAlphaType_colorType'>colorType</a>
### Example
@@ -976,12 +994,12 @@
<a href='#SkImageInfo'>SkImageInfo</a>()
</pre>
-Creates an empty <a href='#Image_Info'>Image Info</a> with <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>,
-a width and height of zero, and no <a href='undocumented#Color_Space'>Color Space</a>.
+Creates an empty <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> with <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>,
+a width and height of zero, and no <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
### Return Value
-empty <a href='#Image_Info'>Image Info</a>
+empty <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
### Example
@@ -1002,11 +1020,11 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> cs = nullptr)
</pre>
-Creates <a href='#Image_Info'>Image Info</a> from integral dimensions width and height, <a href='#Color_Type'>Color Type</a> <a href='#SkImageInfo_Make_ct'>ct</a>,
-<a href='#Alpha_Type'>Alpha Type</a> <a href='#SkImageInfo_Make_at'>at</a>, and optionally <a href='undocumented#Color_Space'>Color Space</a> <a href='#SkImageInfo_Make_cs'>cs</a>.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> from integral dimensions <a href='#SkImageInfo_Make_width'>width</a> and <a href='#SkImageInfo_Make_height'>height</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImageInfo_Make_ct'>ct</a>,
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImageInfo_Make_at'>at</a>, and optionally <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='#SkImageInfo_Make_cs'>cs</a>.
-If <a href='undocumented#Color_Space'>Color Space</a> <a href='#SkImageInfo_Make_cs'>cs</a> is nullptr and <a href='#Image_Info'>Image Info</a> is part of drawing source: <a href='undocumented#Color_Space'>Color Space</a>
-defaults to sRGB, mapping into <a href='SkSurface_Reference#Surface'>Surface</a> <a href='undocumented#Color_Space'>Color Space</a>.
+If <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='#SkImageInfo_Make_cs'>cs</a> is nullptr and <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is part of drawing source: <a href='undocumented#SkColorSpace'>SkColorSpace</a>
+defaults to sRGB, mapping into <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
Parameters are not validated to see if their values are legal, or that the
combination is supported.
@@ -1014,29 +1032,41 @@
### Parameters
<table> <tr> <td><a name='SkImageInfo_Make_width'><code><strong>width</strong></code></a></td>
- <td>pixel column count; must be zero or greater</td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_Make_height'><code><strong>height</strong></code></a></td>
- <td>pixel row count; must be zero or greater</td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_Make_ct'><code><strong>ct</strong></code></a></td>
- <td>one of: <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
-<a href='#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
-<a href='#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
-<a href='#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> </td>
+ <td>one of:</td>
</tr>
- <tr> <td><a name='SkImageInfo_Make_at'><code><strong>at</strong></code></a></td>
- <td>one of: <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
-<a href='#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> </td>
+</table>
+
+<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
+<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
+<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImageInfo_Make_at'><code><strong>at</strong></code></a></td>
+ <td>one of:</td>
</tr>
- <tr> <td><a name='SkImageInfo_Make_cs'><code><strong>cs</strong></code></a></td>
+</table>
+
+<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
+<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImageInfo_Make_cs'><code><strong>cs</strong></code></a></td>
<td>range of colors; may be nullptr</td>
</tr>
</table>
### Return Value
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
### Example
@@ -1054,12 +1084,12 @@
static <a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeN32'>MakeN32</a>(int width, int height, <a href='#SkAlphaType'>SkAlphaType</a> at, <a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> cs = nullptr)
</pre>
-Creates <a href='#Image_Info'>Image Info</a> from integral dimensions width and height, <a href='#kN32_SkColorType'>kN32_SkColorType</a>,
-<a href='#Alpha_Type'>Alpha Type</a> <a href='#SkImageInfo_MakeN32_at'>at</a>, and optionally <a href='undocumented#Color_Space'>Color Space</a> <a href='#SkImageInfo_MakeN32_cs'>cs</a>. <a href='#kN32_SkColorType'>kN32_SkColorType</a> will equal either
-<a href='#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a> or <a href='#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, whichever is optimal.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> from integral dimensions <a href='#SkImageInfo_MakeN32_width'>width</a> and <a href='#SkImageInfo_MakeN32_height'>height</a>, <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>,
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImageInfo_MakeN32_at'>at</a>, and optionally <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='#SkImageInfo_MakeN32_cs'>cs</a>. <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a> will equal either
+<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a> or <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, whichever is optimal.
-If <a href='undocumented#Color_Space'>Color Space</a> <a href='#SkImageInfo_MakeN32_cs'>cs</a> is nullptr and <a href='#Image_Info'>Image Info</a> is part of drawing source: <a href='undocumented#Color_Space'>Color Space</a>
-defaults to sRGB, mapping into <a href='SkSurface_Reference#Surface'>Surface</a> <a href='undocumented#Color_Space'>Color Space</a>.
+If <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='#SkImageInfo_MakeN32_cs'>cs</a> is nullptr and <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is part of drawing source: <a href='undocumented#SkColorSpace'>SkColorSpace</a>
+defaults to sRGB, mapping into <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
Parameters are not validated to see if their values are legal, or that the
combination is supported.
@@ -1067,23 +1097,29 @@
### Parameters
<table> <tr> <td><a name='SkImageInfo_MakeN32_width'><code><strong>width</strong></code></a></td>
- <td>pixel column count; must be zero or greater</td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_MakeN32_height'><code><strong>height</strong></code></a></td>
- <td>pixel row count; must be zero or greater</td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_MakeN32_at'><code><strong>at</strong></code></a></td>
- <td>one of: <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
-<a href='#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> </td>
+ <td>one of:</td>
</tr>
- <tr> <td><a name='SkImageInfo_MakeN32_cs'><code><strong>cs</strong></code></a></td>
+</table>
+
+<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
+<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImageInfo_MakeN32_cs'><code><strong>cs</strong></code></a></td>
<td>range of colors; may be nullptr</td>
</tr>
</table>
### Return Value
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
### Example
@@ -1101,8 +1137,8 @@
static <a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeS32'>MakeS32</a>(int width, int height, <a href='#SkAlphaType'>SkAlphaType</a> at)
</pre>
-Creates <a href='#Image_Info'>Image Info</a> from integral dimensions width and height, <a href='#kN32_SkColorType'>kN32_SkColorType</a>,
-<a href='#Alpha_Type'>Alpha Type</a> <a href='#SkImageInfo_MakeS32_at'>at</a>, with sRGB <a href='undocumented#Color_Space'>Color Space</a>.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> from integral dimensions <a href='#SkImageInfo_MakeS32_width'>width</a> and <a href='#SkImageInfo_MakeS32_height'>height</a>, <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>,
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImageInfo_MakeS32_at'>at</a>, with sRGB <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
Parameters are not validated to see if their values are legal, or that the
combination is supported.
@@ -1110,20 +1146,22 @@
### Parameters
<table> <tr> <td><a name='SkImageInfo_MakeS32_width'><code><strong>width</strong></code></a></td>
- <td>pixel column count; must be zero or greater</td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_MakeS32_height'><code><strong>height</strong></code></a></td>
- <td>pixel row count; must be zero or greater</td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_MakeS32_at'><code><strong>at</strong></code></a></td>
- <td>one of: <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
-<a href='#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> </td>
+ <td>one of:</td>
</tr>
</table>
+<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
+<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>
+
### Return Value
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
### Example
@@ -1146,11 +1184,11 @@
static <a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeN32Premul'>MakeN32Premul</a>(int width, int height, <a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> cs = nullptr)
</pre>
-Creates <a href='#Image_Info'>Image Info</a> from integral dimensions width and height, <a href='#kN32_SkColorType'>kN32_SkColorType</a>,
-<a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>, with optional <a href='undocumented#Color_Space'>Color Space</a>.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> from integral dimensions <a href='#SkImageInfo_MakeN32Premul_width'>width</a> and <a href='#SkImageInfo_MakeN32Premul_height'>height</a>, <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>,
+<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>, with optional <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
-If <a href='undocumented#Color_Space'>Color Space</a> <a href='#SkImageInfo_MakeN32Premul_cs'>cs</a> is nullptr and <a href='#Image_Info'>Image Info</a> is part of drawing source: <a href='undocumented#Color_Space'>Color Space</a>
-defaults to sRGB, mapping into <a href='SkSurface_Reference#Surface'>Surface</a> <a href='undocumented#Color_Space'>Color Space</a>.
+If <a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='#SkImageInfo_MakeN32Premul_cs'>cs</a> is nullptr and <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is part of drawing source: <a href='undocumented#SkColorSpace'>SkColorSpace</a>
+defaults to sRGB, mapping into <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
Parameters are not validated to see if their values are legal, or that the
combination is supported.
@@ -1158,10 +1196,10 @@
### Parameters
<table> <tr> <td><a name='SkImageInfo_MakeN32Premul_width'><code><strong>width</strong></code></a></td>
- <td>pixel column count; must be zero or greater</td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_MakeN32Premul_height'><code><strong>height</strong></code></a></td>
- <td>pixel row count; must be zero or greater</td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_MakeN32Premul_cs'><code><strong>cs</strong></code></a></td>
<td>range of colors; may be nullptr</td>
@@ -1170,7 +1208,7 @@
### Return Value
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
### Example
@@ -1188,11 +1226,11 @@
static <a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeN32Premul'>MakeN32Premul</a>(const <a href='undocumented#SkISize'>SkISize</a>& size)
</pre>
-Creates <a href='#Image_Info'>Image Info</a> from integral dimensions width and height, <a href='#kN32_SkColorType'>kN32_SkColorType</a>,
-<a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>, with <a href='undocumented#Color_Space'>Color Space</a> set to nullptr.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> from integral dimensions width and height, <a href='SkImageInfo_Reference#kN32_SkColorType'>kN32_SkColorType</a>,
+<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>, with <a href='undocumented#SkColorSpace'>SkColorSpace</a> set to nullptr.
-If <a href='#Image_Info'>Image Info</a> is part of drawing source: <a href='undocumented#Color_Space'>Color Space</a> defaults to sRGB, mapping
-into <a href='SkSurface_Reference#Surface'>Surface</a> <a href='undocumented#Color_Space'>Color Space</a>.
+If <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is part of drawing source: <a href='undocumented#SkColorSpace'>SkColorSpace</a> defaults to sRGB, mapping
+into <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
Parameters are not validated to see if their values are legal, or that the
combination is supported.
@@ -1206,7 +1244,7 @@
### Return Value
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
### Example
@@ -1224,22 +1262,22 @@
static <a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeA8'>MakeA8</a>(int width, int height)
</pre>
-Creates <a href='#Image_Info'>Image Info</a> from integral dimensions width and height, <a href='#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
-<a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>, with <a href='undocumented#Color_Space'>Color Space</a> set to nullptr.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> from integral dimensions <a href='#SkImageInfo_MakeA8_width'>width</a> and <a href='#SkImageInfo_MakeA8_height'>height</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
+<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>, with <a href='undocumented#SkColorSpace'>SkColorSpace</a> set to nullptr.
### Parameters
<table> <tr> <td><a name='SkImageInfo_MakeA8_width'><code><strong>width</strong></code></a></td>
- <td>pixel column count; must be zero or greater</td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_MakeA8_height'><code><strong>height</strong></code></a></td>
- <td>pixel row count; must be zero or greater</td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
</tr>
</table>
### Return Value
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
### Example
@@ -1257,25 +1295,25 @@
static <a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeUnknown'>MakeUnknown</a>(int width, int height)
</pre>
-Creates <a href='#Image_Info'>Image Info</a> from integral dimensions width and height, <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>,
-<a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, with <a href='undocumented#Color_Space'>Color Space</a> set to nullptr.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> from integral dimensions <a href='#SkImageInfo_MakeUnknown_width'>width</a> and <a href='#SkImageInfo_MakeUnknown_height'>height</a>, <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>,
+<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, with <a href='undocumented#SkColorSpace'>SkColorSpace</a> set to nullptr.
-Returned <a href='#Image_Info'>Image Info</a> as part of source does not draw, and as part of destination
+Returned <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> as part of source does not draw, and as part of destination
can not be drawn to.
### Parameters
<table> <tr> <td><a name='SkImageInfo_MakeUnknown_width'><code><strong>width</strong></code></a></td>
- <td>pixel column count; must be zero or greater</td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_MakeUnknown_height'><code><strong>height</strong></code></a></td>
- <td>pixel row count; must be zero or greater</td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
</tr>
</table>
### Return Value
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
### Example
@@ -1293,15 +1331,15 @@
static <a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_MakeUnknown'>MakeUnknown</a>()
</pre>
-Creates <a href='#Image_Info'>Image Info</a> from integral dimensions width and height set to zero,
-<a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, with <a href='undocumented#Color_Space'>Color Space</a> set to nullptr.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> from integral dimensions width and height set to zero,
+<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, with <a href='undocumented#SkColorSpace'>SkColorSpace</a> set to nullptr.
-Returned <a href='#Image_Info'>Image Info</a> as part of source does not draw, and as part of destination
+Returned <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> as part of source does not draw, and as part of destination
can not be drawn to.
### Return Value
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
### Example
@@ -1321,11 +1359,11 @@
int <a href='#SkImageInfo_width'>width</a>() const
</pre>
-Returns pixel count in each row.
+Returns <a href='undocumented#Pixel'>pixel</a> count in each row.
### Return Value
-pixel width
+<a href='undocumented#Pixel'>pixel</a> width
### Example
@@ -1343,11 +1381,11 @@
int <a href='#SkImageInfo_height'>height</a>() const
</pre>
-Returns pixel row count.
+Returns <a href='undocumented#Pixel'>pixel</a> row count.
### Return Value
-pixel height
+<a href='undocumented#Pixel'>pixel</a> height
### Example
@@ -1429,12 +1467,12 @@
<a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkImageInfo_colorSpace'>colorSpace</a>() const
</pre>
-Returns <a href='undocumented#Color_Space'>Color Space</a>, the range of colors. The reference count of
-<a href='undocumented#Color_Space'>Color Space</a> is unchanged. The returned <a href='undocumented#Color_Space'>Color Space</a> is immutable.
+Returns <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors. The <a href='undocumented#Reference_Count'>reference count</a> of
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> is unchanged. The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is immutable.
### Return Value
-<a href='undocumented#Color_Space'>Color Space</a>, or nullptr
+<a href='undocumented#SkColorSpace'>SkColorSpace</a>, or nullptr
### Example
@@ -1462,15 +1500,15 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImageInfo_refColorSpace'>refColorSpace</a>() const
</pre>
-Returns smart pointer to <a href='undocumented#Color_Space'>Color Space</a>, the range of colors. The smart pointer
-tracks the number of objects sharing this <a href='undocumented#Color_Space'>Color Space</a> reference so the memory
+Returns <a href='undocumented#Smart_Pointer'>smart pointer</a> to <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors. The <a href='undocumented#Smart_Pointer'>smart pointer</a>
+tracks the number of objects sharing this <a href='undocumented#SkColorSpace'>SkColorSpace</a> reference so the memory
is released when the owners destruct.
-The returned <a href='undocumented#Color_Space'>Color Space</a> is immutable.
+The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is immutable.
### Return Value
-<a href='undocumented#Color_Space'>Color Space</a> wrapped in a smart pointer
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> wrapped in a <a href='undocumented#Smart_Pointer'>smart pointer</a>
### Example
@@ -1488,7 +1526,7 @@
bool <a href='#SkImageInfo_isEmpty'>isEmpty</a>() const
</pre>
-Returns if <a href='#Image_Info'>Image Info</a> describes an empty area of pixels by checking if either
+Returns if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> describes an empty area of pixels by checking if either
width or height is zero or smaller.
### Return Value
@@ -1522,16 +1560,16 @@
bool <a href='#SkImageInfo_isOpaque'>isOpaque</a>() const
</pre>
-Returns true if <a href='#Alpha_Type'>Alpha Type</a> is set to hint that all pixels are opaque; their
-<a href='SkColor_Reference#Alpha'>Color Alpha</a> value is implicitly or explicitly 1.0. If true, and all pixels are
+Returns true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is set to hint that all pixels are opaque; their
+<a href='SkColor_Reference#Alpha'>alpha</a> value is implicitly or explicitly 1.0. If true, and all pixels are
not opaque, Skia may draw incorrectly.
-Does not check if <a href='#Color_Type'>Color Type</a> allows <a href='SkColor_Reference#Alpha'>Alpha</a>, or if any pixel value has
+Does not check if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> allows <a href='SkColor_Reference#Alpha'>alpha</a>, or if any <a href='undocumented#Pixel'>pixel</a> value has
transparency.
### Return Value
-true if <a href='#Alpha_Type'>Alpha Type</a> is <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>
+true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>
### Example
@@ -1560,11 +1598,11 @@
<a href='undocumented#SkISize'>SkISize</a> <a href='#SkImageInfo_dimensions'>dimensions</a>() const
</pre>
-Returns <a href='undocumented#ISize'>ISize</a> { <a href='#SkImageInfo_width'>width</a>(), <a href='#SkImageInfo_height'>height</a>() }.
+Returns <a href='undocumented#SkISize'>SkISize</a> { <a href='#SkImageInfo_width'>width()</a>, <a href='#SkImageInfo_height'>height()</a> }.
### Return Value
-integral size of <a href='#SkImageInfo_width'>width</a>() and <a href='#SkImageInfo_height'>height</a>()
+integral <a href='undocumented#Size'>size</a> of <a href='#SkImageInfo_width'>width()</a> and <a href='#SkImageInfo_height'>height()</a>
### Example
@@ -1590,11 +1628,11 @@
<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkImageInfo_bounds'>bounds</a>() const
</pre>
-Returns <a href='SkIRect_Reference#IRect'>IRect</a> { 0, 0, <a href='#SkImageInfo_width'>width</a>(), <a href='#SkImageInfo_height'>height</a>() }.
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> { 0, 0, <a href='#SkImageInfo_width'>width()</a>, <a href='#SkImageInfo_height'>height()</a> }.
### Return Value
-integral rectangle from origin to <a href='#SkImageInfo_width'>width</a>() and <a href='#SkImageInfo_height'>height</a>()
+integral rectangle from origin to <a href='#SkImageInfo_width'>width()</a> and <a href='#SkImageInfo_height'>height()</a>
### Example
@@ -1636,22 +1674,22 @@
<a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeWH'>makeWH</a>(int newWidth, int newHeight) const
</pre>
-Creates <a href='#Image_Info'>Image Info</a> with the same <a href='#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a>, and <a href='#Alpha_Type'>Alpha Type</a>,
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> with the same <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>, and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>,
with dimensions set to width and height.
### Parameters
<table> <tr> <td><a name='SkImageInfo_makeWH_newWidth'><code><strong>newWidth</strong></code></a></td>
- <td>pixel column count; must be zero or greater</td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count; must be zero or greater</td>
</tr>
<tr> <td><a name='SkImageInfo_makeWH_newHeight'><code><strong>newHeight</strong></code></a></td>
- <td>pixel row count; must be zero or greater</td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count; must be zero or greater</td>
</tr>
</table>
### Return Value
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
### Example
@@ -1669,23 +1707,25 @@
<a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeAlphaType'>makeAlphaType</a>(<a href='#SkAlphaType'>SkAlphaType</a> newAlphaType) const
</pre>
-Creates <a href='#Image_Info'>Image Info</a> with same <a href='#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a>, width, and height,
-with <a href='#Alpha_Type'>Alpha Type</a> set to <a href='#SkImageInfo_makeAlphaType_newAlphaType'>newAlphaType</a>.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> with same <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>, width, and height,
+with <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> set to <a href='#SkImageInfo_makeAlphaType_newAlphaType'>newAlphaType</a>.
-Created <a href='#Image_Info'>Image Info</a> contains <a href='#SkImageInfo_makeAlphaType_newAlphaType'>newAlphaType</a> even if it is incompatible with
-<a href='#Color_Type'>Color Type</a>, in which case <a href='#Alpha_Type'>Alpha Type</a> in <a href='#Image_Info'>Image Info</a> is ignored.
+Created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> contains <a href='#SkImageInfo_makeAlphaType_newAlphaType'>newAlphaType</a> even if it is incompatible with
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, in which case <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is ignored.
### Parameters
<table> <tr> <td><a name='SkImageInfo_makeAlphaType_newAlphaType'><code><strong>newAlphaType</strong></code></a></td>
- <td>one of: <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
-<a href='#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> </td>
+ <td>one of:</td>
</tr>
</table>
+<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
+<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>
+
### Return Value
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
### Example
@@ -1703,22 +1743,24 @@
<a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeColorType'>makeColorType</a>(<a href='#SkColorType'>SkColorType</a> newColorType) const
</pre>
-Creates <a href='#Image_Info'>Image Info</a> with same <a href='#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a>, width, and height,
-with <a href='#Color_Type'>Color Type</a> set to <a href='#SkImageInfo_makeColorType_newColorType'>newColorType</a>.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> with same <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>, width, and height,
+with <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> set to <a href='#SkImageInfo_makeColorType_newColorType'>newColorType</a>.
### Parameters
<table> <tr> <td><a name='SkImageInfo_makeColorType_newColorType'><code><strong>newColorType</strong></code></a></td>
- <td>one of: <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
-<a href='#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
-<a href='#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
-<a href='#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> </td>
+ <td>one of:</td>
</tr>
</table>
+<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
+<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
+<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>
+
### Return Value
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
### Example
@@ -1736,8 +1778,8 @@
<a href='#SkImageInfo'>SkImageInfo</a> <a href='#SkImageInfo_makeColorSpace'>makeColorSpace</a>(<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> cs) const
</pre>
-Creates <a href='#Image_Info'>Image Info</a> with same <a href='#Alpha_Type'>Alpha Type</a>, <a href='#Color_Type'>Color Type</a>, width, and height,
-with <a href='undocumented#Color_Space'>Color Space</a> set to <a href='#SkImageInfo_makeColorSpace_cs'>cs</a>.
+Creates <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> with same <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, width, and height,
+with <a href='undocumented#SkColorSpace'>SkColorSpace</a> set to <a href='#SkImageInfo_makeColorSpace_cs'>cs</a>.
### Parameters
@@ -1748,7 +1790,7 @@
### Return Value
-created <a href='#Image_Info'>Image Info</a>
+created <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
### Example
@@ -1766,12 +1808,12 @@
int <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>() const
</pre>
-Returns number of bytes per pixel required by <a href='#Color_Type'>Color Type</a>.
-Returns zero if <a href='#SkImageInfo_colorType'>colorType</a>( is <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
+Returns number of bytes per <a href='undocumented#Pixel'>pixel</a> required by <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
+Returns zero if <a href='#SkImageInfo_colorType'>colorType</a>( is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
### Return Value
-bytes in pixel
+bytes in <a href='undocumented#Pixel'>pixel</a>
### Example
@@ -1811,7 +1853,7 @@
</pre>
Returns bit shift converting row bytes to row pixels.
-Returns zero for <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
+Returns zero for <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
### Return Value
@@ -1854,13 +1896,13 @@
uint64_t <a href='#SkImageInfo_minRowBytes64'>minRowBytes64</a>() const
</pre>
-Returns minimum bytes per row, computed from pixel <a href='#SkImageInfo_width'>width</a>() and <a href='#Color_Type'>Color Type</a>, which
-specifies <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(). <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> maximum value for row bytes must fit
+Returns minimum bytes per row, computed from <a href='undocumented#Pixel'>pixel</a> <a href='#SkImageInfo_width'>width()</a> and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, which
+specifies <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(). <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> maximum value for row bytes must fit
in 31 bits.
### Return Value
-<a href='#SkImageInfo_width'>width</a>() times <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a> as unsigned 64-bit integer
+<a href='#SkImageInfo_width'>width()</a> times <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>() as unsigned 64-bit integer
### Example
@@ -1893,13 +1935,13 @@
size_t <a href='#SkImageInfo_minRowBytes'>minRowBytes</a>() const
</pre>
-Returns minimum bytes per row, computed from pixel <a href='#SkImageInfo_width'>width</a>() and <a href='#Color_Type'>Color Type</a>, which
-specifies <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(). <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> maximum value for row bytes must fit
+Returns minimum bytes per row, computed from <a href='undocumented#Pixel'>pixel</a> <a href='#SkImageInfo_width'>width()</a> and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, which
+specifies <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(). <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> maximum value for row bytes must fit
in 31 bits.
### Return Value
-<a href='#SkImageInfo_width'>width</a>() times <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a> as signed 32-bit integer
+<a href='#SkImageInfo_width'>width()</a> times <a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>() as signed 32-bit integer
### Example
@@ -1932,27 +1974,27 @@
size_t <a href='#SkImageInfo_computeOffset'>computeOffset</a>(int x, int y, size_t rowBytes) const
</pre>
-Returns byte offset of pixel from pixel base address.
+Returns byte offset of <a href='undocumented#Pixel'>pixel</a> from <a href='undocumented#Pixel'>pixel</a> base address.
Asserts in debug build if <a href='#SkImageInfo_computeOffset_x'>x</a> or <a href='#SkImageInfo_computeOffset_y'>y</a> is outside of bounds. Does not assert if
-<a href='#SkImageInfo_computeOffset_rowBytes'>rowBytes</a> is smaller than <a href='#SkImageInfo_minRowBytes'>minRowBytes</a>, even though result may be incorrect.
+<a href='#SkImageInfo_computeOffset_rowBytes'>rowBytes</a> is smaller than <a href='#SkImageInfo_minRowBytes'>minRowBytes</a>(), even though result may be incorrect.
### Parameters
<table> <tr> <td><a name='SkImageInfo_computeOffset_x'><code><strong>x</strong></code></a></td>
- <td>column index, zero or greater, and less than <a href='#SkImageInfo_width'>width</a>()</td>
+ <td>column index, zero or greater, and less than <a href='#SkImageInfo_width'>width()</a></td>
</tr>
<tr> <td><a name='SkImageInfo_computeOffset_y'><code><strong>y</strong></code></a></td>
- <td>row index, zero or greater, and less than <a href='#SkImageInfo_height'>height</a>()</td>
+ <td>row index, zero or greater, and less than <a href='#SkImageInfo_height'>height()</a></td>
</tr>
<tr> <td><a name='SkImageInfo_computeOffset_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td>size of pixel row or larger</td>
+ <td><a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a> row or larger</td>
</tr>
</table>
### Return Value
-offset within pixel array
+offset within <a href='undocumented#Pixel'>pixel</a> array
### Example
@@ -1970,19 +2012,19 @@
bool operator==(const SkImageInfo& other) const
</pre>
-Compares <a href='#Image_Info'>Image Info</a> with <a href='#SkImageInfo_equal1_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.
+Compares <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> with <a href='#SkImageInfo_operator==(const SkImageInfo& other)_const_other'>other</a>, and returns true if width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>,
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='undocumented#SkColorSpace'>SkColorSpace</a> are equivalent.
### Parameters
<table> <tr> <td><a name='SkImageInfo_equal1_operator_other'><code><strong>other</strong></code></a></td>
- <td><a href='#Image_Info'>Image Info</a> to compare</td>
+ <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='#Image_Info'>Image Info</a> equals <a href='#SkImageInfo_equal1_operator_other'>other</a>
+true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> equals <a href='#SkImageInfo_operator==(const SkImageInfo& other)_const_other'>other</a>
### Example
@@ -2011,19 +2053,19 @@
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 not equivalent.
+Compares <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> with <a href='#SkImageInfo_operator!=(const SkImageInfo& other)_const_other'>other</a>, and returns true if width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>,
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='undocumented#SkColorSpace'>SkColorSpace</a> are not equivalent.
### Parameters
<table> <tr> <td><a name='SkImageInfo_notequal1_operator_other'><code><strong>other</strong></code></a></td>
- <td><a href='#Image_Info'>Image Info</a> to compare</td>
+ <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='#Image_Info'>Image Info</a> is not equal to <a href='#SkImageInfo_notequal1_operator_other'>other</a>
+true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is not equal to <a href='#SkImageInfo_operator!=(const SkImageInfo& other)_const_other'>other</a>
### Example
@@ -2052,7 +2094,7 @@
size_t <a href='#SkImageInfo_computeByteSize'>computeByteSize</a>(size_t rowBytes) const
</pre>
-Returns storage required by pixel array, given <a href='#Image_Info'>Image Info</a> dimensions, <a href='#Color_Type'>Color Type</a>,
+Returns storage required by <a href='undocumented#Pixel'>pixel</a> array, given <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> dimensions, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>,
and <a href='#SkImageInfo_computeByteSize_rowBytes'>rowBytes</a>. <a href='#SkImageInfo_computeByteSize_rowBytes'>rowBytes</a> is assumed to be at least as large as <a href='#SkImageInfo_minRowBytes'>minRowBytes</a>().
Returns zero if height is zero.
@@ -2061,13 +2103,13 @@
### Parameters
<table> <tr> <td><a name='SkImageInfo_computeByteSize_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td>size of pixel row or larger</td>
+ <td><a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a> row or larger</td>
</tr>
</table>
### Return Value
-memory required by pixel buffer
+memory required by <a href='undocumented#Pixel'>pixel</a> buffer
### Example
@@ -2085,15 +2127,15 @@
size_t <a href='#SkImageInfo_computeMinByteSize'>computeMinByteSize</a>() const
</pre>
-Returns storage required by pixel array, given <a href='#Image_Info'>Image Info</a> dimensions, and
-<a href='#Color_Type'>Color Type</a>. Uses <a href='#SkImageInfo_minRowBytes'>minRowBytes</a>() to compute bytes for pixel row.
+Returns storage required by <a href='undocumented#Pixel'>pixel</a> array, given <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> dimensions, and
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>. Uses <a href='#SkImageInfo_minRowBytes'>minRowBytes</a>() to compute bytes for <a href='undocumented#Pixel'>pixel</a> row.
Returns zero if height is zero.
Returns SIZE_MAX if answer exceeds the range of size_t.
### Return Value
-least memory required by pixel buffer
+least memory required by <a href='undocumented#Pixel'>pixel</a> buffer
### Example
@@ -2111,19 +2153,19 @@
static bool <a href='#SkImageInfo_ByteSizeOverflowed'>ByteSizeOverflowed</a>(size_t byteSize)
</pre>
-Returns true if <a href='#SkImageInfo_ByteSizeOverflowed_byteSize'>byteSize</a> equals SIZE_MAX. <a href='#SkImageInfo_computeByteSize'>computeByteSize</a> and
-<a href='#SkImageInfo_computeMinByteSize'>computeMinByteSize</a> return SIZE_MAX if size_t can not hold buffer size.
+Returns true if <a href='#SkImageInfo_ByteSizeOverflowed_byteSize'>byteSize</a> equals SIZE_MAX. <a href='#SkImageInfo_computeByteSize'>computeByteSize</a>() and
+<a href='#SkImageInfo_computeMinByteSize'>computeMinByteSize</a>() return SIZE_MAX if size_t can not hold buffer <a href='undocumented#Size'>size</a>.
### Parameters
<table> <tr> <td><a name='SkImageInfo_ByteSizeOverflowed_byteSize'><code><strong>byteSize</strong></code></a></td>
- <td>result of <a href='#SkImageInfo_computeByteSize'>computeByteSize</a> or <a href='#SkImageInfo_computeMinByteSize'>computeMinByteSize</a></td>
+ <td>result of <a href='#SkImageInfo_computeByteSize'>computeByteSize</a>() or <a href='#SkImageInfo_computeMinByteSize'>computeMinByteSize</a>()</td>
</tr>
</table>
### Return Value
-true if <a href='#SkImageInfo_computeByteSize'>computeByteSize</a> or <a href='#SkImageInfo_computeMinByteSize'>computeMinByteSize</a> result exceeds size_t
+true if <a href='#SkImageInfo_computeByteSize'>computeByteSize</a>() or <a href='#SkImageInfo_computeMinByteSize'>computeMinByteSize</a>() result exceeds size_t
### Example
@@ -2153,18 +2195,18 @@
bool <a href='#SkImageInfo_validRowBytes'>validRowBytes</a>(size_t rowBytes) const
</pre>
-Returns true if <a href='#SkImageInfo_validRowBytes_rowBytes'>rowBytes</a> is smaller than width times pixel size.
+Returns true if <a href='#SkImageInfo_validRowBytes_rowBytes'>rowBytes</a> is smaller than width times <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>.
### Parameters
<table> <tr> <td><a name='SkImageInfo_validRowBytes_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td>size of pixel row or larger</td>
+ <td><a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a> row or larger</td>
</tr>
</table>
### Return Value
-true if <a href='#SkImageInfo_validRowBytes_rowBytes'>rowBytes</a> is large enough to contain pixel row
+true if <a href='#SkImageInfo_validRowBytes_rowBytes'>rowBytes</a> is large enough to contain <a href='undocumented#Pixel'>pixel</a> row
### Example
@@ -2192,8 +2234,8 @@
void <a href='#SkImageInfo_reset'>reset</a>()
</pre>
-Creates an empty <a href='#Image_Info'>Image Info</a> with <a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>,
-a width and height of zero, and no <a href='undocumented#Color_Space'>Color Space</a>.
+Creates an empty <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> with <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>,
+a width and height of zero, and no <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
### Example
@@ -2223,9 +2265,6 @@
void <a href='#SkImageInfo_validate'>validate</a>() const
</pre>
-Asserts if internal values are illegal or inconsistent. Only available if
-SK_DEBUG is defined at compile time.
-
### See Also
<a href='#SkImageInfo_validRowBytes'>validRowBytes</a> <a href='SkBitmap_Reference#SkBitmap_validate'>SkBitmap::validate</a>
diff --git a/site/user/api/SkImage_Reference.md b/site/user/api/SkImage_Reference.md
index e8ca89d..1c17f21 100644
--- a/site/user/api/SkImage_Reference.md
+++ b/site/user/api/SkImage_Reference.md
@@ -215,30 +215,30 @@
static <a href='undocumented#sk_sp'>sk sp</a><<a href='#SkImage'>SkImage</a>> <a href='#SkImage_MakeRasterCopy'>MakeRasterCopy</a>(const <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>& pixmap)
</pre>
-Creates <a href='#Image'>Image</a> from <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> and copy of pixels. Since pixels are copied, <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>
-pixels may be modified or deleted without affecting <a href='#Image'>Image</a>.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> and copy of pixels. Since pixels are copied, <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>
+pixels may be modified or deleted without affecting <a href='SkImage_Reference#SkImage'>SkImage</a>.
-<a href='#Image'>Image</a> is returned if <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> is valid. Valid <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> parameters include:
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned if <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> is valid. Valid <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> parameters include:
dimensions are greater than zero;
each dimension fits in 29 bits;
-<a href='SkImageInfo_Reference#Color_Type'>Color Type</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> are valid, and <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> are valid, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
row bytes are large enough to hold one row of pixels;
-pixel address is not nullptr.
+<a href='undocumented#Pixel'>pixel</a> address is not nullptr.
### Parameters
<table> <tr> <td><a name='SkImage_MakeRasterCopy_pixmap'><code><strong>pixmap</strong></code></a></td>
- <td><a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, pixel address, and row bytes</td>
+ <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='undocumented#Pixel'>pixel</a> address, and row bytes</td>
</tr>
</table>
### Return Value
-copy of <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> pixels, or nullptr
+copy of <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> pixels, or nullptr
### Example
-<div><fiddle-embed name="513afec5795a9504ebf6af5373d16b6b"><div>Draw a five by five bitmap, and draw a copy in an <a href='#Image'>Image</a>. Editing the <a href='#SkImage_MakeRasterCopy_pixmap'>pixmap</a>
+<div><fiddle-embed name="513afec5795a9504ebf6af5373d16b6b"><div>Draw a five by five bitmap, and draw a copy in an <a href='#Image'>Image</a>. Editing the pixmap
alters the bitmap draw, but does not alter the <a href='#Image'>Image</a> draw since the <a href='#Image'>Image</a>
contains a copy of the pixels.
</div></fiddle-embed></div>
@@ -255,31 +255,31 @@
static <a href='undocumented#sk_sp'>sk sp</a><<a href='#SkImage'>SkImage</a>> <a href='#SkImage_MakeRasterData'>MakeRasterData</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, <a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkData'>SkData</a>> pixels, size_t rowBytes)
</pre>
-Creates <a href='#Image'>Image</a> from <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, sharing <a href='#SkImage_MakeRasterData_pixels'>pixels</a>.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, sharing <a href='#SkImage_MakeRasterData_pixels'>pixels</a>.
-<a href='#Image'>Image</a> is returned if <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> is valid. Valid <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> parameters include:
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is valid. Valid <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> parameters include:
dimensions are greater than zero;
each dimension fits in 29 bits;
-<a href='SkImageInfo_Reference#Color_Type'>Color Type</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> are valid, and <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> are valid, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
<a href='#SkImage_MakeRasterData_rowBytes'>rowBytes</a> are large enough to hold one row of <a href='#SkImage_MakeRasterData_pixels'>pixels</a>;
-<a href='#SkImage_MakeRasterData_pixels'>pixels</a> is not nullptr, and contains enough data for <a href='#Image'>Image</a>.
+<a href='#SkImage_MakeRasterData_pixels'>pixels</a> is not nullptr, and contains enough <a href='undocumented#Data'>data</a> for <a href='SkImage_Reference#SkImage'>SkImage</a>.
### Parameters
<table> <tr> <td><a name='SkImage_MakeRasterData_info'><code><strong>info</strong></code></a></td>
- <td>contains width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='undocumented#Color_Space'>Color Space</a></td>
+ <td>contains width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
</tr>
<tr> <td><a name='SkImage_MakeRasterData_pixels'><code><strong>pixels</strong></code></a></td>
- <td>address or pixel storage</td>
+ <td>address or <a href='undocumented#Pixel_Storage'>pixel storage</a></td>
</tr>
<tr> <td><a name='SkImage_MakeRasterData_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td>size of pixel row or larger</td>
+ <td><a href='undocumented#Size'>size</a> of <a href='undocumented#Pixel'>pixel</a> row or larger</td>
</tr>
</table>
### Return Value
-<a href='#Image'>Image</a> sharing <a href='#SkImage_MakeRasterData_pixels'>pixels</a>, or nullptr
+<a href='SkImage_Reference#SkImage'>SkImage</a> sharing <a href='#SkImage_MakeRasterData_pixels'>pixels</a>, or nullptr
### Example
@@ -327,25 +327,25 @@
<a href='#SkImage_ReleaseContext'>ReleaseContext</a> releaseContext)
</pre>
-Creates <a href='#Image'>Image</a> from <a href='#SkImage_MakeFromRaster_pixmap'>pixmap</a>, sharing <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> pixels. <a href='#Pixels'>Pixels</a> must remain valid and
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='#SkImage_MakeFromRaster_pixmap'>pixmap</a>, sharing <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> pixels. Pixels must remain valid and
unchanged until <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>rasterReleaseProc</a> is called. <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>rasterReleaseProc</a> is passed
-<a href='#SkImage_MakeFromRaster_releaseContext'>releaseContext</a> when <a href='#Image'>Image</a> is deleted or no longer refers to <a href='#SkImage_MakeFromRaster_pixmap'>pixmap</a> pixels.
+<a href='#SkImage_MakeFromRaster_releaseContext'>releaseContext</a> when <a href='SkImage_Reference#SkImage'>SkImage</a> is deleted or no longer refers to <a href='SkPixmap_Reference#Pixmap_Pixels'>pixmap pixels</a>.
-Pass nullptr for <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>rasterReleaseProc</a> to share <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> without requiring a callback
-when <a href='#Image'>Image</a> is released. Pass nullptr for <a href='#SkImage_MakeFromRaster_releaseContext'>releaseContext</a> if <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>rasterReleaseProc</a>
+Pass nullptr for <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>rasterReleaseProc</a> to share <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> without requiring a callback
+when <a href='SkImage_Reference#SkImage'>SkImage</a> is released. Pass nullptr for <a href='#SkImage_MakeFromRaster_releaseContext'>releaseContext</a> if <a href='#SkImage_MakeFromRaster_rasterReleaseProc'>rasterReleaseProc</a>
does not require state.
-<a href='#Image'>Image</a> is returned if <a href='#SkImage_MakeFromRaster_pixmap'>pixmap</a> is valid. Valid <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> parameters include:
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned if <a href='#SkImage_MakeFromRaster_pixmap'>pixmap</a> is valid. Valid <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> parameters include:
dimensions are greater than zero;
each dimension fits in 29 bits;
-<a href='SkImageInfo_Reference#Color_Type'>Color Type</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> are valid, and <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> are valid, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
row bytes are large enough to hold one row of pixels;
-pixel address is not nullptr.
+<a href='undocumented#Pixel'>pixel</a> address is not nullptr.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromRaster_pixmap'><code><strong>pixmap</strong></code></a></td>
- <td><a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, pixel address, and row bytes</td>
+ <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='undocumented#Pixel'>pixel</a> address, and row bytes</td>
</tr>
<tr> <td><a name='SkImage_MakeFromRaster_rasterReleaseProc'><code><strong>rasterReleaseProc</strong></code></a></td>
<td>function called when pixels can be released; or nullptr</td>
@@ -357,7 +357,7 @@
### Return Value
-<a href='#Image'>Image</a> sharing <a href='#SkImage_MakeFromRaster_pixmap'>pixmap</a>
+<a href='SkImage_Reference#SkImage'>SkImage</a> sharing <a href='#SkImage_MakeFromRaster_pixmap'>pixmap</a>
### Example
@@ -384,27 +384,27 @@
static <a href='undocumented#sk_sp'>sk sp</a><<a href='#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromBitmap'>MakeFromBitmap</a>(const <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>& bitmap)
</pre>
-Creates <a href='#Image'>Image</a> from <a href='#SkImage_MakeFromBitmap_bitmap'>bitmap</a>, sharing or copying <a href='#SkImage_MakeFromBitmap_bitmap'>bitmap</a> pixels. If the <a href='#SkImage_MakeFromBitmap_bitmap'>bitmap</a>
-is marked immutable, and its pixel memory is shareable, it may be shared
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='#SkImage_MakeFromBitmap_bitmap'>bitmap</a>, sharing or copying <a href='SkBitmap_Reference#Bitmap_Pixels'>bitmap pixels</a>. If the <a href='#SkImage_MakeFromBitmap_bitmap'>bitmap</a>
+is marked immutable, and its <a href='undocumented#Pixel'>pixel</a> memory is shareable, it may be shared
instead of copied.
-<a href='#Image'>Image</a> is returned if <a href='#SkImage_MakeFromBitmap_bitmap'>bitmap</a> is valid. Valid <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> parameters include:
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned if <a href='#SkImage_MakeFromBitmap_bitmap'>bitmap</a> is valid. Valid <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> parameters include:
dimensions are greater than zero;
each dimension fits in 29 bits;
-<a href='SkImageInfo_Reference#Color_Type'>Color Type</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> are valid, and <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> are valid, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>;
row bytes are large enough to hold one row of pixels;
-pixel address is not nullptr.
+<a href='undocumented#Pixel'>pixel</a> address is not nullptr.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromBitmap_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td><a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, row bytes, and pixels</td>
+ <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, row bytes, and pixels</td>
</tr>
</table>
### Return Value
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -427,30 +427,30 @@
const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* subset = nullptr)
</pre>
-Creates <a href='#Image'>Image</a> from data returned by <a href='#SkImage_MakeFromGenerator_imageGenerator'>imageGenerator</a>. Generated data is owned by <a href='#Image'>Image</a> and may not
-be shared or accessed.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='undocumented#Data'>data</a> returned by <a href='#SkImage_MakeFromGenerator_imageGenerator'>imageGenerator</a>. Generated <a href='undocumented#Data'>data</a> is owned by <a href='SkImage_Reference#SkImage'>SkImage</a> and
+may not be shared or accessed.
-<a href='#SkImage_MakeFromGenerator_subset'>subset</a> allows selecting a portion of the full image. Pass nullptr to select the entire image;
-otherwise, <a href='#SkImage_MakeFromGenerator_subset'>subset</a> must be contained by image bounds.
+<a href='#SkImage_MakeFromGenerator_subset'>subset</a> allows selecting a portion of the full <a href='SkImage_Reference#Image'>image</a>. Pass nullptr to select the entire
+<a href='SkImage_Reference#Image'>image</a>; otherwise, <a href='#SkImage_MakeFromGenerator_subset'>subset</a> must be contained by <a href='SkImage_Reference#Image'>image</a> bounds.
-<a href='#Image'>Image</a> is returned if generator data is valid. Valid data parameters vary by type of data
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned if generator <a href='undocumented#Data'>data</a> is valid. Valid <a href='undocumented#Data'>data</a> parameters vary by type of <a href='undocumented#Data'>data</a>
and platform.
-<a href='#SkImage_MakeFromGenerator_imageGenerator'>imageGenerator</a> may wrap <a href='SkPicture_Reference#Picture'>Picture</a> data, codec data, or custom data.
+<a href='#SkImage_MakeFromGenerator_imageGenerator'>imageGenerator</a> may wrap <a href='SkPicture_Reference#SkPicture'>SkPicture</a> <a href='undocumented#Data'>data</a>, codec <a href='undocumented#Data'>data</a>, or custom <a href='undocumented#Data'>data</a>.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromGenerator_imageGenerator'><code><strong>imageGenerator</strong></code></a></td>
- <td>stock or custom routines to retrieve <a href='#Image'>Image</a></td>
+ <td>stock or custom routines to retrieve <a href='SkImage_Reference#SkImage'>SkImage</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromGenerator_subset'><code><strong>subset</strong></code></a></td>
- <td>bounds of returned <a href='#Image'>Image</a>; may be nullptr</td>
+ <td>bounds of returned <a href='SkImage_Reference#SkImage'>SkImage</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -469,26 +469,26 @@
static <a href='undocumented#sk_sp'>sk sp</a><<a href='#SkImage'>SkImage</a>> <a href='#SkImage_MakeFromEncoded'>MakeFromEncoded</a>(<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkData'>SkData</a>> encoded, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* subset = nullptr)
</pre>
-Creates <a href='#Image'>Image</a> from <a href='#SkImage_MakeFromEncoded_encoded'>encoded</a> data.
-<a href='#SkImage_MakeFromEncoded_subset'>subset</a> allows selecting a portion of the full image. Pass nullptr to select the entire image;
-otherwise, <a href='#SkImage_MakeFromEncoded_subset'>subset</a> must be contained by image bounds.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='#SkImage_MakeFromEncoded_encoded'>encoded</a> <a href='undocumented#Data'>data</a>.
+<a href='#SkImage_MakeFromEncoded_subset'>subset</a> allows selecting a portion of the full <a href='SkImage_Reference#Image'>image</a>. Pass nullptr to select the entire
+<a href='SkImage_Reference#Image'>image</a>; otherwise, <a href='#SkImage_MakeFromEncoded_subset'>subset</a> must be contained by <a href='SkImage_Reference#Image'>image</a> bounds.
-<a href='#Image'>Image</a> is returned if format of the <a href='#SkImage_MakeFromEncoded_encoded'>encoded</a> data is recognized and supported.
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned if format of the <a href='#SkImage_MakeFromEncoded_encoded'>encoded</a> <a href='undocumented#Data'>data</a> is recognized and supported.
Recognized formats vary by platform.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromEncoded_encoded'><code><strong>encoded</strong></code></a></td>
- <td>data of <a href='#Image'>Image</a> to decode</td>
+ <td><a href='undocumented#Data'>data</a> of <a href='SkImage_Reference#SkImage'>SkImage</a> to decode</td>
</tr>
<tr> <td><a name='SkImage_MakeFromEncoded_subset'><code><strong>subset</strong></code></a></td>
- <td>bounds of returned <a href='#Image'>Image</a>; may be nullptr</td>
+ <td>bounds of returned <a href='SkImage_Reference#SkImage'>SkImage</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -522,41 +522,54 @@
<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> <a href='#SkImage_alphaType'>alphaType</a>, <a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImage_colorSpace'>colorSpace</a>)
</pre>
-Creates <a href='#Image'>Image</a> from <a href='undocumented#GPU_Texture'>GPU Texture</a> associated with <a href='#SkImage_MakeFromTexture_context'>context</a>. Caller is responsible for
-managing the lifetime of <a href='undocumented#GPU_Texture'>GPU Texture</a>.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='undocumented#GPU_Texture'>GPU texture</a> associated with <a href='#SkImage_MakeFromTexture_context'>context</a>. Caller is responsible for
+managing the lifetime of <a href='undocumented#GPU_Texture'>GPU texture</a>.
-<a href='#Image'>Image</a> is returned if format of <a href='#SkImage_MakeFromTexture_backendTexture'>backendTexture</a> is recognized and supported.
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned if format of <a href='#SkImage_MakeFromTexture_backendTexture'>backendTexture</a> is recognized and supported.
Recognized formats vary by GPU back-end.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromTexture_context'><code><strong>context</strong></code></a></td>
- <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromTexture_backendTexture'><code><strong>backendTexture</strong></code></a></td>
- <td>texture residing on GPU</td>
+ <td><a href='undocumented#Texture'>texture</a> residing on GPU</td>
</tr>
<tr> <td><a name='SkImage_MakeFromTexture_origin'><code><strong>origin</strong></code></a></td>
- <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</a></td>
+ <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromTexture_colorType'><code><strong>colorType</strong></code></a></td>
- <td>one of: <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
-<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
-<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> </td>
+ <td>one of:</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromTexture_alphaType'><code><strong>alphaType</strong></code></a></td>
- <td>one of: <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
-<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> </td>
+</table>
+
+<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
+<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromTexture_alphaType'><code><strong>alphaType</strong></code></a></td>
+ <td>one of:</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromTexture_colorSpace'><code><strong>colorSpace</strong></code></a></td>
+</table>
+
+<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
+<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromTexture_colorSpace'><code><strong>colorSpace</strong></code></a></td>
<td>range of colors; may be nullptr</td>
</tr>
</table>
### Return Value
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -579,39 +592,53 @@
<a href='#SkImage_ReleaseContext'>ReleaseContext</a> releaseContext)
</pre>
-Creates <a href='#Image'>Image</a> from <a href='undocumented#GPU_Texture'>GPU Texture</a> associated with <a href='#SkImage_MakeFromTexture_2_context'>context</a>. <a href='undocumented#GPU_Texture'>GPU Texture</a> must stay
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='undocumented#GPU_Texture'>GPU texture</a> associated with <a href='#SkImage_MakeFromTexture_2_context'>context</a>. <a href='undocumented#GPU_Texture'>GPU texture</a> must stay
valid and unchanged until <a href='#SkImage_MakeFromTexture_2_textureReleaseProc'>textureReleaseProc</a> is called. <a href='#SkImage_MakeFromTexture_2_textureReleaseProc'>textureReleaseProc</a> is
-passed <a href='#SkImage_MakeFromTexture_2_releaseContext'>releaseContext</a> when <a href='#Image'>Image</a> is deleted or no longer refers to texture.
+passed <a href='#SkImage_MakeFromTexture_2_releaseContext'>releaseContext</a> when <a href='SkImage_Reference#SkImage'>SkImage</a> is deleted or no longer refers to <a href='undocumented#Texture'>texture</a>.
-<a href='#Image'>Image</a> is returned if format of <a href='#SkImage_MakeFromTexture_2_backendTexture'>backendTexture</a> is recognized and supported.
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned if format of <a href='#SkImage_MakeFromTexture_2_backendTexture'>backendTexture</a> is recognized and supported.
Recognized formats vary by GPU back-end.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromTexture_2_context'><code><strong>context</strong></code></a></td>
- <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromTexture_2_backendTexture'><code><strong>backendTexture</strong></code></a></td>
- <td>texture residing on GPU</td>
+ <td><a href='undocumented#Texture'>texture</a> residing on GPU</td>
</tr>
<tr> <td><a name='SkImage_MakeFromTexture_2_origin'><code><strong>origin</strong></code></a></td>
- <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</a></td>
+ <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromTexture_2_colorType'><code><strong>colorType</strong></code></a></td>
- <td>one of: <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
-<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
-<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> </td>
+ <td>one of:</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromTexture_2_alphaType'><code><strong>alphaType</strong></code></a></td>
- <td>one of: <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
-<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> </td>
+</table>
+
+<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>, <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
+<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromTexture_2_alphaType'><code><strong>alphaType</strong></code></a></td>
+ <td>one of:</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromTexture_2_colorSpace'><code><strong>colorSpace</strong></code></a></td>
+</table>
+
+<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
+<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromTexture_2_colorSpace'><code><strong>colorSpace</strong></code></a></td>
<td>range of colors; may be nullptr</td>
</tr>
<tr> <td><a name='SkImage_MakeFromTexture_2_textureReleaseProc'><code><strong>textureReleaseProc</strong></code></a></td>
- <td>function called when texture can be released</td>
+ <td>function called when <a href='undocumented#Texture'>texture</a> can be released</td>
</tr>
<tr> <td><a name='SkImage_MakeFromTexture_2_releaseContext'><code><strong>releaseContext</strong></code></a></td>
<td>state passed to <a href='#SkImage_MakeFromTexture_2_textureReleaseProc'>textureReleaseProc</a></td>
@@ -620,7 +647,7 @@
### Return Value
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -640,46 +667,46 @@
bool limitToMaxTextureSize = false)
</pre>
-Creates <a href='#Image'>Image</a> from encoded <a href='#SkImage_MakeCrossContextFromEncoded_data'>data</a>. <a href='#Image'>Image</a> is uploaded to GPU back-end using <a href='#SkImage_MakeCrossContextFromEncoded_context'>context</a>.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from encoded <a href='#SkImage_MakeCrossContextFromEncoded_data'>data</a>. <a href='SkImage_Reference#SkImage'>SkImage</a> is uploaded to GPU back-end using <a href='#SkImage_MakeCrossContextFromEncoded_context'>context</a>.
-Created <a href='#Image'>Image</a> is available to other GPU contexts, and is available across thread
-boundaries. All contexts must be in the same <a href='undocumented#GPU_Share_Group'>GPU Share Group</a>, or otherwise
+Created <a href='SkImage_Reference#SkImage'>SkImage</a> is available to other GPU contexts, and is available across thread
+boundaries. All contexts must be in the same <a href='undocumented#GPU_Share_Group'>GPU share group</a>, or otherwise
share resources.
-When <a href='#Image'>Image</a> is no longer referenced, <a href='#SkImage_MakeCrossContextFromEncoded_context'>context</a> releases texture memory
+When <a href='SkImage_Reference#SkImage'>SkImage</a> is no longer referenced, <a href='#SkImage_MakeCrossContextFromEncoded_context'>context</a> releases <a href='undocumented#Texture'>texture</a> memory
asynchronously.
-<a href='undocumented#Texture'>Texture</a> decoded from <a href='#SkImage_MakeCrossContextFromEncoded_data'>data</a> is uploaded to match <a href='SkSurface_Reference#Surface'>Surface</a> created with
-<a href='#SkImage_MakeCrossContextFromEncoded_dstColorSpace'>dstColorSpace</a>. <a href='undocumented#Color_Space'>Color Space</a> of <a href='#Image'>Image</a> is determined by encoded <a href='#SkImage_MakeCrossContextFromEncoded_data'>data</a>.
+<a href='undocumented#GrBackendTexture'>GrBackendTexture</a> decoded from <a href='#SkImage_MakeCrossContextFromEncoded_data'>data</a> is uploaded to match <a href='SkSurface_Reference#SkSurface'>SkSurface</a> created with
+<a href='#SkImage_MakeCrossContextFromEncoded_dstColorSpace'>dstColorSpace</a>. <a href='undocumented#SkColorSpace'>SkColorSpace</a> of <a href='SkImage_Reference#SkImage'>SkImage</a> is determined by encoded <a href='#SkImage_MakeCrossContextFromEncoded_data'>data</a>.
-<a href='#Image'>Image</a> is returned if format of <a href='#SkImage_MakeCrossContextFromEncoded_data'>data</a> is recognized and supported, and if <a href='#SkImage_MakeCrossContextFromEncoded_context'>context</a>
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned if format of <a href='#SkImage_MakeCrossContextFromEncoded_data'>data</a> is recognized and supported, and if <a href='#SkImage_MakeCrossContextFromEncoded_context'>context</a>
supports moving resources. Recognized formats vary by platform and GPU back-end.
-<a href='#Image'>Image</a> is returned using <a href='#SkImage_MakeFromEncoded'>MakeFromEncoded</a> if <a href='#SkImage_MakeCrossContextFromEncoded_context'>context</a> is nullptr or does not support
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned using <a href='#SkImage_MakeFromEncoded'>MakeFromEncoded</a>() if <a href='#SkImage_MakeCrossContextFromEncoded_context'>context</a> is nullptr or does not support
moving resources between contexts.
### Parameters
<table> <tr> <td><a name='SkImage_MakeCrossContextFromEncoded_context'><code><strong>context</strong></code></a></td>
- <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_MakeCrossContextFromEncoded_data'><code><strong>data</strong></code></a></td>
- <td><a href='#Image'>Image</a> to decode</td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> to decode</td>
</tr>
<tr> <td><a name='SkImage_MakeCrossContextFromEncoded_buildMips'><code><strong>buildMips</strong></code></a></td>
- <td>create <a href='#Image'>Image</a> as <a href='undocumented#Mip_Map'>Mip Map</a> if true</td>
+ <td>create <a href='SkImage_Reference#SkImage'>SkImage</a> as <a href='undocumented#Mip_Map'>mip map</a> if true</td>
</tr>
<tr> <td><a name='SkImage_MakeCrossContextFromEncoded_dstColorSpace'><code><strong>dstColorSpace</strong></code></a></td>
- <td>range of colors of matching <a href='SkSurface_Reference#Surface'>Surface</a> on GPU</td>
+ <td>range of colors of matching <a href='SkSurface_Reference#SkSurface'>SkSurface</a> on GPU</td>
</tr>
<tr> <td><a name='SkImage_MakeCrossContextFromEncoded_limitToMaxTextureSize'><code><strong>limitToMaxTextureSize</strong></code></a></td>
- <td>downscale image to GPU maximum texture size, if necessary</td>
+ <td>downscale <a href='SkImage_Reference#Image'>image</a> to GPU maximum <a href='undocumented#Texture'>texture</a> <a href='undocumented#Size'>size</a>, if necessary</td>
</tr>
</table>
### Return Value
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -699,46 +726,46 @@
bool limitToMaxTextureSize = false)
</pre>
-Creates <a href='#Image'>Image</a> from <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>pixmap</a>. <a href='#Image'>Image</a> is uploaded to GPU back-end using <a href='#SkImage_MakeCrossContextFromPixmap_context'>context</a>.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>pixmap</a>. <a href='SkImage_Reference#SkImage'>SkImage</a> is uploaded to GPU back-end using <a href='#SkImage_MakeCrossContextFromPixmap_context'>context</a>.
-Created <a href='#Image'>Image</a> is available to other GPU contexts, and is available across thread
-boundaries. All contexts must be in the same <a href='undocumented#GPU_Share_Group'>GPU Share Group</a>, or otherwise
+Created <a href='SkImage_Reference#SkImage'>SkImage</a> is available to other GPU contexts, and is available across thread
+boundaries. All contexts must be in the same <a href='undocumented#GPU_Share_Group'>GPU share group</a>, or otherwise
share resources.
-When <a href='#Image'>Image</a> is no longer referenced, <a href='#SkImage_MakeCrossContextFromPixmap_context'>context</a> releases texture memory
+When <a href='SkImage_Reference#SkImage'>SkImage</a> is no longer referenced, <a href='#SkImage_MakeCrossContextFromPixmap_context'>context</a> releases <a href='undocumented#Texture'>texture</a> memory
asynchronously.
-<a href='undocumented#Texture'>Texture</a> created from <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>pixmap</a> is uploaded to match <a href='SkSurface_Reference#Surface'>Surface</a> created with
-<a href='#SkImage_MakeCrossContextFromPixmap_dstColorSpace'>dstColorSpace</a>. <a href='undocumented#Color_Space'>Color Space</a> of <a href='#Image'>Image</a> is determined by <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>pixmap</a>.<a href='#SkImage_colorSpace'>colorSpace</a>().
+<a href='undocumented#GrBackendTexture'>GrBackendTexture</a> created from <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>pixmap</a> is uploaded to match <a href='SkSurface_Reference#SkSurface'>SkSurface</a> created with
+<a href='#SkImage_MakeCrossContextFromPixmap_dstColorSpace'>dstColorSpace</a>. <a href='undocumented#SkColorSpace'>SkColorSpace</a> of <a href='SkImage_Reference#SkImage'>SkImage</a> is determined by <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>pixmap</a>.<a href='#SkPixmap_colorSpace'>colorSpace</a>().
-<a href='#Image'>Image</a> is returned referring to GPU back-end if <a href='#SkImage_MakeCrossContextFromPixmap_context'>context</a> is not nullptr,
-format of data is recognized and supported, and if <a href='#SkImage_MakeCrossContextFromPixmap_context'>context</a> supports moving
-resources between contexts. Otherwise, <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>pixmap</a> pixel data is copied and <a href='#Image'>Image</a>
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned referring to GPU back-end if <a href='#SkImage_MakeCrossContextFromPixmap_context'>context</a> is not nullptr,
+format of <a href='undocumented#Data'>data</a> is recognized and supported, and if <a href='#SkImage_MakeCrossContextFromPixmap_context'>context</a> supports moving
+resources between contexts. Otherwise, <a href='#SkImage_MakeCrossContextFromPixmap_pixmap'>pixmap</a> <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Data'>data</a> is copied and <a href='SkImage_Reference#SkImage'>SkImage</a>
as returned in raster format if possible; nullptr may be returned.
Recognized GPU formats vary by platform and GPU back-end.
### Parameters
<table> <tr> <td><a name='SkImage_MakeCrossContextFromPixmap_context'><code><strong>context</strong></code></a></td>
- <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_MakeCrossContextFromPixmap_pixmap'><code><strong>pixmap</strong></code></a></td>
- <td><a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, pixel address, and row bytes</td>
+ <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, <a href='undocumented#Pixel'>pixel</a> address, and row bytes</td>
</tr>
<tr> <td><a name='SkImage_MakeCrossContextFromPixmap_buildMips'><code><strong>buildMips</strong></code></a></td>
- <td>create <a href='#Image'>Image</a> as <a href='undocumented#Mip_Map'>Mip Map</a> if true</td>
+ <td>create <a href='SkImage_Reference#SkImage'>SkImage</a> as <a href='undocumented#Mip_Map'>mip map</a> if true</td>
</tr>
<tr> <td><a name='SkImage_MakeCrossContextFromPixmap_dstColorSpace'><code><strong>dstColorSpace</strong></code></a></td>
- <td>range of colors of matching <a href='SkSurface_Reference#Surface'>Surface</a> on GPU</td>
+ <td>range of colors of matching <a href='SkSurface_Reference#SkSurface'>SkSurface</a> on GPU</td>
</tr>
<tr> <td><a name='SkImage_MakeCrossContextFromPixmap_limitToMaxTextureSize'><code><strong>limitToMaxTextureSize</strong></code></a></td>
- <td>downscale image to GPU maximum texture size, if necessary</td>
+ <td>downscale <a href='SkImage_Reference#Image'>image</a> to GPU maximum <a href='undocumented#Texture'>texture</a> <a href='undocumented#Size'>size</a>, if necessary</td>
</tr>
</table>
### Return Value
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -760,41 +787,55 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImage_colorSpace'>colorSpace</a> = nullptr)
</pre>
-Creates <a href='#Image'>Image</a> from <a href='#SkImage_MakeFromAdoptedTexture_backendTexture'>backendTexture</a> associated with <a href='#SkImage_MakeFromAdoptedTexture_context'>context</a>. <a href='#SkImage_MakeFromAdoptedTexture_backendTexture'>backendTexture</a> and
-returned <a href='#Image'>Image</a> are managed internally, and are released when no longer needed.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='#SkImage_MakeFromAdoptedTexture_backendTexture'>backendTexture</a> associated with <a href='#SkImage_MakeFromAdoptedTexture_context'>context</a>. <a href='#SkImage_MakeFromAdoptedTexture_backendTexture'>backendTexture</a> and
+returned <a href='SkImage_Reference#SkImage'>SkImage</a> are managed internally, and are released when no longer needed.
-<a href='#Image'>Image</a> is returned if format of <a href='#SkImage_MakeFromAdoptedTexture_backendTexture'>backendTexture</a> is recognized and supported.
+<a href='SkImage_Reference#SkImage'>SkImage</a> is returned if format of <a href='#SkImage_MakeFromAdoptedTexture_backendTexture'>backendTexture</a> is recognized and supported.
Recognized formats vary by GPU back-end.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromAdoptedTexture_context'><code><strong>context</strong></code></a></td>
- <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromAdoptedTexture_backendTexture'><code><strong>backendTexture</strong></code></a></td>
- <td>texture residing on GPU</td>
+ <td><a href='undocumented#Texture'>texture</a> residing on GPU</td>
</tr>
<tr> <td><a name='SkImage_MakeFromAdoptedTexture_surfaceOrigin'><code><strong>surfaceOrigin</strong></code></a></td>
- <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</a></td>
+ <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromAdoptedTexture_colorType'><code><strong>colorType</strong></code></a></td>
- <td>one of: <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
-<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
-<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> </td>
+ <td>one of:</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromAdoptedTexture_alphaType'><code><strong>alphaType</strong></code></a></td>
- <td>one of: <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
-<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> </td>
+</table>
+
+<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>, <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
+<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>, <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromAdoptedTexture_alphaType'><code><strong>alphaType</strong></code></a></td>
+ <td>one of:</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromAdoptedTexture_colorSpace'><code><strong>colorSpace</strong></code></a></td>
+</table>
+
+<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
+<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromAdoptedTexture_colorSpace'><code><strong>colorSpace</strong></code></a></td>
<td>range of colors; may be nullptr</td>
</tr>
</table>
### Return Value
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -816,41 +857,62 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr)
</pre>
-Creates an <a href='#SkImage'>SkImage</a> by flattening the specified YUVA planes into a single,
-interleaved RGBA image.
-<a href='#SkImage_MakeFromYUVATexturesCopy_yuvaTextures'>yuvaTextures</a> points to array of up to four YUVA textures which reside on GPU.
-YUVA textures contain YUVA planes which may be interleaved.
+Creates an <a href='SkImage_Reference#SkImage'>SkImage</a> by flattening the specified YUVA planes into a single, interleaved RGBA
+<a href='SkImage_Reference#Image'>image</a>.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromYUVATexturesCopy_context'><code><strong>context</strong></code></a></td>
- <td>GPU <a href='#SkImage_MakeFromYUVATexturesCopy_context'>context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromYUVATexturesCopy_yuvColorSpace'><code><strong>yuvColorSpace</strong></code></a></td>
- <td>one of: <a href='SkImageInfo_Reference#kJPEG_SkYUVColorSpace'>kJPEG_SkYUVColorSpace</a>, <a href='SkImageInfo_Reference#kRec601_SkYUVColorSpace'>kRec601_SkYUVColorSpace</a>,
-<a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a></td>
+ <td>How the YUV values are converted to RGB. One of:</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromYUVATexturesCopy_yuvaTextures'><code><strong>yuvaTextures</strong></code></a></td>
- <td>array of YUVA textures</td>
+</table>
+
+<a href='SkImageInfo_Reference#kJPEG_SkYUVColorSpace'>kJPEG_SkYUVColorSpace</a>, <a href='SkImageInfo_Reference#kRec601_SkYUVColorSpace'>kRec601_SkYUVColorSpace</a>,
+<a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromYUVATexturesCopy_yuvaTextures'><code><strong>yuvaTextures</strong></code></a></td>
+ <td>array of (up to four) YUVA textures on GPU which contain the,</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromYUVATexturesCopy_yuvaIndices'><code><strong>yuvaIndices</strong></code></a></td>
- <td>array indicating <a href='#SkImage_MakeFromYUVATexturesCopy_yuvaTextures'>yuvaTextures</a> element and channel
-that map to Y, U, V, and A</td>
+</table>
+
+possibly interleaved, YUVA planes
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromYUVATexturesCopy_yuvaIndices'><code><strong>yuvaIndices</strong></code></a></td>
+ <td>array indicating which <a href='undocumented#Texture'>texture</a> in <a href='#SkImage_MakeFromYUVATexturesCopy_yuvaTextures'>yuvaTextures</a>, and channel</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromYUVATexturesCopy_imageSize'><code><strong>imageSize</strong></code></a></td>
- <td>size of the resulting image</td>
+</table>
+
+in that <a href='undocumented#Texture'>texture</a>, maps to each component of YUVA.
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromYUVATexturesCopy_imageSize'><code><strong>imageSize</strong></code></a></td>
+ <td><a href='undocumented#Size'>size</a> of the resulting <a href='SkImage_Reference#Image'>image</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromYUVATexturesCopy_imageOrigin'><code><strong>imageOrigin</strong></code></a></td>
- <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</a></td>
+ <td>origin of the resulting <a href='SkImage_Reference#Image'>image</a>. One of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>,</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromYUVATexturesCopy_imageColorSpace'><code><strong>imageColorSpace</strong></code></a></td>
- <td>range of colors of the resulting image; may be nullptr</td>
+</table>
+
+<a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromYUVATexturesCopy_imageColorSpace'><code><strong>imageColorSpace</strong></code></a></td>
+ <td>range of colors of the resulting <a href='SkImage_Reference#Image'>image</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-created <a href='#SkImage'>SkImage</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### See Also
@@ -868,39 +930,62 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr) ;
</pre>
-Creates an <a href='#SkImage'>SkImage</a> by storing the specified YUVA planes into an image, to be rendered
+Creates an <a href='SkImage_Reference#SkImage'>SkImage</a> by storing the specified YUVA planes into an <a href='SkImage_Reference#Image'>image</a>, to be rendered
via multitexturing.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromYUVATextures_context'><code><strong>context</strong></code></a></td>
- <td>GPU <a href='#SkImage_MakeFromYUVATextures_context'>context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromYUVATextures_yuvColorSpace'><code><strong>yuvColorSpace</strong></code></a></td>
- <td>one of: <a href='SkImageInfo_Reference#kJPEG_SkYUVColorSpace'>kJPEG_SkYUVColorSpace</a>, <a href='SkImageInfo_Reference#kRec601_SkYUVColorSpace'>kRec601_SkYUVColorSpace</a>,
-<a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a></td>
+ <td>How the YUV values are converted to RGB. One of:</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromYUVATextures_yuvaTextures'><code><strong>yuvaTextures</strong></code></a></td>
- <td>array of YUVA textures</td>
+</table>
+
+<a href='SkImageInfo_Reference#kJPEG_SkYUVColorSpace'>kJPEG_SkYUVColorSpace</a>, <a href='SkImageInfo_Reference#kRec601_SkYUVColorSpace'>kRec601_SkYUVColorSpace</a>,
+<a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromYUVATextures_yuvaTextures'><code><strong>yuvaTextures</strong></code></a></td>
+ <td>array of (up to four) YUVA textures on GPU which contain the,</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromYUVATextures_yuvaIndices'><code><strong>yuvaIndices</strong></code></a></td>
- <td>array indicating <a href='#SkImage_MakeFromYUVATextures_yuvaTextures'>yuvaTextures</a> element and channel
-that map to Y, U, V, and A</td>
+</table>
+
+possibly interleaved, YUVA planes
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromYUVATextures_yuvaIndices'><code><strong>yuvaIndices</strong></code></a></td>
+ <td>array indicating which <a href='undocumented#Texture'>texture</a> in <a href='#SkImage_MakeFromYUVATextures_yuvaTextures'>yuvaTextures</a>, and channel</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromYUVATextures_imageSize'><code><strong>imageSize</strong></code></a></td>
- <td>size of the resulting image</td>
+</table>
+
+in that <a href='undocumented#Texture'>texture</a>, maps to each component of YUVA.
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromYUVATextures_imageSize'><code><strong>imageSize</strong></code></a></td>
+ <td><a href='undocumented#Size'>size</a> of the resulting <a href='SkImage_Reference#Image'>image</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromYUVATextures_imageOrigin'><code><strong>imageOrigin</strong></code></a></td>
- <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</a></td>
+ <td>origin of the resulting <a href='SkImage_Reference#Image'>image</a>. One of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>,</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromYUVATextures_imageColorSpace'><code><strong>imageColorSpace</strong></code></a></td>
- <td>range of colors of the resulting image; may be nullptr</td>
+</table>
+
+<a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromYUVATextures_imageColorSpace'><code><strong>imageColorSpace</strong></code></a></td>
+ <td>range of colors of the resulting <a href='SkImage_Reference#Image'>image</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-created <a href='#SkImage'>SkImage</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### See Also
@@ -919,44 +1004,65 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr)
</pre>
-Creates an <a href='#SkImage'>SkImage</a> by flattening the specified YUVA planes into a single,
-interleaved RGBA image. <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_backendTexture'>backendTexture</a> is used to store the result of flattening.
-<a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_yuvaTextures'>yuvaTextures</a> points to array of up to four YUVA textures which reside on GPU.
-YUVA textures contain YUVA planes which may be interleaved.
+Creates an <a href='SkImage_Reference#SkImage'>SkImage</a> by flattening the specified YUVA planes into a single, interleaved RGBA
+<a href='SkImage_Reference#Image'>image</a>. '<a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_backendTexture'>backendTexture</a>' is used to store the result of the flattening.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_context'><code><strong>context</strong></code></a></td>
- <td>GPU <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_context'>context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_yuvColorSpace'><code><strong>yuvColorSpace</strong></code></a></td>
- <td>one of: <a href='SkImageInfo_Reference#kJPEG_SkYUVColorSpace'>kJPEG_SkYUVColorSpace</a>, <a href='SkImageInfo_Reference#kRec601_SkYUVColorSpace'>kRec601_SkYUVColorSpace</a>,
-<a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a></td>
+ <td>How the YUV values are converted to RGB. One of:</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_yuvaTextures'><code><strong>yuvaTextures</strong></code></a></td>
- <td>array of YUVA textures</td>
+</table>
+
+<a href='SkImageInfo_Reference#kJPEG_SkYUVColorSpace'>kJPEG_SkYUVColorSpace</a>, <a href='SkImageInfo_Reference#kRec601_SkYUVColorSpace'>kRec601_SkYUVColorSpace</a>,
+<a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_yuvaTextures'><code><strong>yuvaTextures</strong></code></a></td>
+ <td>array of (up to four) YUVA textures on GPU which contain the,</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_yuvaIndices'><code><strong>yuvaIndices</strong></code></a></td>
- <td>array indicating <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_yuvaTextures'>yuvaTextures</a> element and channel
-that map to Y, U, V, and A</td>
+</table>
+
+possibly interleaved, YUVA planes
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_yuvaIndices'><code><strong>yuvaIndices</strong></code></a></td>
+ <td>array indicating which <a href='undocumented#Texture'>texture</a> in <a href='#SkImage_MakeFromYUVATexturesCopyWithExternalBackend_yuvaTextures'>yuvaTextures</a>, and channel</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_imageSize'><code><strong>imageSize</strong></code></a></td>
- <td>size of the resulting image</td>
+</table>
+
+in that <a href='undocumented#Texture'>texture</a>, maps to each component of YUVA.
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_imageSize'><code><strong>imageSize</strong></code></a></td>
+ <td><a href='undocumented#Size'>size</a> of the resulting <a href='SkImage_Reference#Image'>image</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_imageOrigin'><code><strong>imageOrigin</strong></code></a></td>
- <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</a></td>
+ <td>origin of the resulting <a href='SkImage_Reference#Image'>image</a>. One of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>,</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_backendTexture'><code><strong>backendTexture</strong></code></a></td>
- <td>resource that stores the final pixels</td>
+</table>
+
+<a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_backendTexture'><code><strong>backendTexture</strong></code></a></td>
+ <td>the resource that stores the final pixels</td>
</tr>
<tr> <td><a name='SkImage_MakeFromYUVATexturesCopyWithExternalBackend_imageColorSpace'><code><strong>imageColorSpace</strong></code></a></td>
- <td>range of colors of the resulting image; may be nullptr</td>
+ <td>range of colors of the resulting <a href='SkImage_Reference#Image'>image</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-created <a href='#SkImage'>SkImage</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### See Also
@@ -973,24 +1079,29 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr)
</pre>
-Creates <a href='#Image'>Image</a> from copy of <a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>yuvTextures</a>, an array of textures on GPU.
-<a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>yuvTextures</a> contain pixels for YUV planes of <a href='#Image'>Image</a>. Returned <a href='#Image'>Image</a> has the dimensions
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from copy of <a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>yuvTextures</a>, an array of textures on GPU.
+<a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>yuvTextures</a> contain pixels for <a href='undocumented#YUV_Planes'>YUV planes</a> of <a href='SkImage_Reference#SkImage'>SkImage</a>. Returned <a href='SkImage_Reference#SkImage'>SkImage</a> has the dimensions
<a href='#SkImage_MakeFromYUVTexturesCopy_yuvTextures'>yuvTextures</a>[0]. <a href='#SkImage_MakeFromYUVTexturesCopy_yuvColorSpace'>yuvColorSpace</a> describes how YUV colors convert to RGB colors.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromYUVTexturesCopy_context'><code><strong>context</strong></code></a></td>
- <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromYUVTexturesCopy_yuvColorSpace'><code><strong>yuvColorSpace</strong></code></a></td>
- <td>one of: <a href='SkImageInfo_Reference#kJPEG_SkYUVColorSpace'>kJPEG_SkYUVColorSpace</a>, <a href='SkImageInfo_Reference#kRec601_SkYUVColorSpace'>kRec601_SkYUVColorSpace</a>,
-<a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a></td>
+ <td>one of: <a href='SkImageInfo_Reference#kJPEG_SkYUVColorSpace'>kJPEG_SkYUVColorSpace</a>, <a href='SkImageInfo_Reference#kRec601_SkYUVColorSpace'>kRec601_SkYUVColorSpace</a>,</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromYUVTexturesCopy_yuvTextures'><code><strong>yuvTextures</strong></code></a></td>
+</table>
+
+<a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromYUVTexturesCopy_yuvTextures'><code><strong>yuvTextures</strong></code></a></td>
<td>array of YUV textures on GPU</td>
</tr>
<tr> <td><a name='SkImage_MakeFromYUVTexturesCopy_imageOrigin'><code><strong>imageOrigin</strong></code></a></td>
- <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</a></td>
+ <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromYUVTexturesCopy_imageColorSpace'><code><strong>imageColorSpace</strong></code></a></td>
<td>range of colors; may be nullptr</td>
@@ -999,7 +1110,7 @@
### Return Value
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### See Also
@@ -1017,28 +1128,33 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr) ;
</pre>
-Creates <a href='#Image'>Image</a> from copy of <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>yuvTextures</a>, an array of textures on GPU.
-<a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>yuvTextures</a> contain pixels for YUV planes of <a href='#Image'>Image</a>. Returned <a href='#Image'>Image</a> has the dimensions
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from copy of <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>yuvTextures</a>, an array of textures on GPU.
+<a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>yuvTextures</a> contain pixels for <a href='undocumented#YUV_Planes'>YUV planes</a> of <a href='SkImage_Reference#SkImage'>SkImage</a>. Returned <a href='SkImage_Reference#SkImage'>SkImage</a> has the dimensions
<a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'>yuvTextures</a>[0] and stores pixels in <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_backendTexture'>backendTexture</a>. <a href='#SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvColorSpace'>yuvColorSpace</a> describes how YUV colors
convert to RGB colors.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromYUVTexturesCopyWithExternalBackend_context'><code><strong>context</strong></code></a></td>
- <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvColorSpace'><code><strong>yuvColorSpace</strong></code></a></td>
- <td>one of: <a href='SkImageInfo_Reference#kJPEG_SkYUVColorSpace'>kJPEG_SkYUVColorSpace</a>, <a href='SkImageInfo_Reference#kRec601_SkYUVColorSpace'>kRec601_SkYUVColorSpace</a>,
-<a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a></td>
+ <td>one of: <a href='SkImageInfo_Reference#kJPEG_SkYUVColorSpace'>kJPEG_SkYUVColorSpace</a>, <a href='SkImageInfo_Reference#kRec601_SkYUVColorSpace'>kRec601_SkYUVColorSpace</a>,</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'><code><strong>yuvTextures</strong></code></a></td>
+</table>
+
+<a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromYUVTexturesCopyWithExternalBackend_yuvTextures'><code><strong>yuvTextures</strong></code></a></td>
<td>array of YUV textures on GPU</td>
</tr>
<tr> <td><a name='SkImage_MakeFromYUVTexturesCopyWithExternalBackend_imageOrigin'><code><strong>imageOrigin</strong></code></a></td>
- <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</a></td>
+ <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromYUVTexturesCopyWithExternalBackend_backendTexture'><code><strong>backendTexture</strong></code></a></td>
- <td>resource that stores final pixels</td>
+ <td>the resource that stores the final pixels</td>
</tr>
<tr> <td><a name='SkImage_MakeFromYUVTexturesCopyWithExternalBackend_imageColorSpace'><code><strong>imageColorSpace</strong></code></a></td>
<td>range of colors; may be nullptr</td>
@@ -1047,7 +1163,7 @@
### Return Value
-created <a href='#SkImage'>SkImage</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### See Also
@@ -1064,27 +1180,32 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr)
</pre>
-Creates <a href='#Image'>Image</a> from copy of <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>nv12Textures</a>, an array of textures on GPU.
-<a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>nv12Textures</a>[0] contains pixels for <a href='undocumented#YUV_Component_Y'>YUV Component Y</a> plane.
-<a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>nv12Textures</a>[1] contains pixels for <a href='undocumented#YUV_Component_U'>YUV Component U</a> plane,
-followed by pixels for <a href='undocumented#YUV_Component_V'>YUV Component V</a> plane.
-Returned <a href='#Image'>Image</a> has the dimensions <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>nv12Textures</a>[2].
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from copy of <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>nv12Textures</a>, an array of textures on GPU.
+<a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>nv12Textures</a>[0] contains pixels for <a href='undocumented#YUV_Component_Y'>YUV component y</a> plane.
+<a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>nv12Textures</a>[1] contains pixels for <a href='undocumented#YUV_Component_U'>YUV component u</a> plane,
+followed by pixels for <a href='undocumented#YUV_Component_V'>YUV component v</a> plane.
+Returned <a href='SkImage_Reference#SkImage'>SkImage</a> has the dimensions <a href='#SkImage_MakeFromNV12TexturesCopy_nv12Textures'>nv12Textures</a>[2].
<a href='#SkImage_MakeFromNV12TexturesCopy_yuvColorSpace'>yuvColorSpace</a> describes how YUV colors convert to RGB colors.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromNV12TexturesCopy_context'><code><strong>context</strong></code></a></td>
- <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromNV12TexturesCopy_yuvColorSpace'><code><strong>yuvColorSpace</strong></code></a></td>
- <td>one of: <a href='SkImageInfo_Reference#kJPEG_SkYUVColorSpace'>kJPEG_SkYUVColorSpace</a>, <a href='SkImageInfo_Reference#kRec601_SkYUVColorSpace'>kRec601_SkYUVColorSpace</a>,
-<a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a></td>
+ <td>one of: <a href='SkImageInfo_Reference#kJPEG_SkYUVColorSpace'>kJPEG_SkYUVColorSpace</a>, <a href='SkImageInfo_Reference#kRec601_SkYUVColorSpace'>kRec601_SkYUVColorSpace</a>,</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromNV12TexturesCopy_nv12Textures'><code><strong>nv12Textures</strong></code></a></td>
+</table>
+
+<a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromNV12TexturesCopy_nv12Textures'><code><strong>nv12Textures</strong></code></a></td>
<td>array of YUV textures on GPU</td>
</tr>
<tr> <td><a name='SkImage_MakeFromNV12TexturesCopy_imageOrigin'><code><strong>imageOrigin</strong></code></a></td>
- <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</a></td>
+ <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromNV12TexturesCopy_imageColorSpace'><code><strong>imageColorSpace</strong></code></a></td>
<td>range of colors; may be nullptr</td>
@@ -1093,7 +1214,7 @@
### Return Value
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### See Also
@@ -1111,30 +1232,35 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> imageColorSpace = nullptr) ;
</pre>
-Creates <a href='#Image'>Image</a> from copy of <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>nv12Textures</a>, an array of textures on GPU.
-<a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>nv12Textures</a>[0] contains pixels for <a href='undocumented#YUV_Component_Y'>YUV Component Y</a> plane.
-<a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>nv12Textures</a>[1] contains pixels for <a href='undocumented#YUV_Component_U'>YUV Component U</a> plane,
-followed by pixels for <a href='undocumented#YUV_Component_V'>YUV Component V</a> plane.
-Returned <a href='#Image'>Image</a> has the dimensions <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>nv12Textures</a>[2] and stores pixels in <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_backendTexture'>backendTexture</a>.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from copy of <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>nv12Textures</a>, an array of textures on GPU.
+<a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>nv12Textures</a>[0] contains pixels for <a href='undocumented#YUV_Component_Y'>YUV component y</a> plane.
+<a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>nv12Textures</a>[1] contains pixels for <a href='undocumented#YUV_Component_U'>YUV component u</a> plane,
+followed by pixels for <a href='undocumented#YUV_Component_V'>YUV component v</a> plane.
+Returned <a href='SkImage_Reference#SkImage'>SkImage</a> has the dimensions <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'>nv12Textures</a>[2] and stores pixels in <a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_backendTexture'>backendTexture</a>.
<a href='#SkImage_MakeFromNV12TexturesCopyWithExternalBackend_yuvColorSpace'>yuvColorSpace</a> describes how YUV colors convert to RGB colors.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromNV12TexturesCopyWithExternalBackend_context'><code><strong>context</strong></code></a></td>
- <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromNV12TexturesCopyWithExternalBackend_yuvColorSpace'><code><strong>yuvColorSpace</strong></code></a></td>
- <td>one of: <a href='SkImageInfo_Reference#kJPEG_SkYUVColorSpace'>kJPEG_SkYUVColorSpace</a>, <a href='SkImageInfo_Reference#kRec601_SkYUVColorSpace'>kRec601_SkYUVColorSpace</a>,
-<a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a></td>
+ <td>one of: <a href='SkImageInfo_Reference#kJPEG_SkYUVColorSpace'>kJPEG_SkYUVColorSpace</a>, <a href='SkImageInfo_Reference#kRec601_SkYUVColorSpace'>kRec601_SkYUVColorSpace</a>,</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'><code><strong>nv12Textures</strong></code></a></td>
+</table>
+
+<a href='SkImageInfo_Reference#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromNV12TexturesCopyWithExternalBackend_nv12Textures'><code><strong>nv12Textures</strong></code></a></td>
<td>array of YUV textures on GPU</td>
</tr>
<tr> <td><a name='SkImage_MakeFromNV12TexturesCopyWithExternalBackend_imageOrigin'><code><strong>imageOrigin</strong></code></a></td>
- <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</a></td>
+ <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a></td>
</tr>
<tr> <td><a name='SkImage_MakeFromNV12TexturesCopyWithExternalBackend_backendTexture'><code><strong>backendTexture</strong></code></a></td>
- <td>resource that stores final pixels</td>
+ <td>the resource that stores the final pixels</td>
</tr>
<tr> <td><a name='SkImage_MakeFromNV12TexturesCopyWithExternalBackend_imageColorSpace'><code><strong>imageColorSpace</strong></code></a></td>
<td>range of colors; may be nullptr</td>
@@ -1143,7 +1269,7 @@
### Return Value
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### See Also
@@ -1196,25 +1322,25 @@
<a href='#SkImage_BitDepth'>BitDepth</a> bitDepth, <a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImage_colorSpace'>colorSpace</a>)
</pre>
-Creates <a href='#Image'>Image</a> from <a href='#SkImage_MakeFromPicture_picture'>picture</a>. Returned <a href='#Image'>Image</a> width and height are set by dimensions.
-<a href='#Image'>Image</a> draws <a href='#SkImage_MakeFromPicture_picture'>picture</a> with <a href='#SkImage_MakeFromPicture_matrix'>matrix</a> and <a href='#SkImage_MakeFromPicture_paint'>paint</a>, set to <a href='#SkImage_MakeFromPicture_bitDepth'>bitDepth</a> and <a href='#SkImage_colorSpace'>colorSpace</a>.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='#SkImage_MakeFromPicture_picture'>picture</a>. Returned <a href='SkImage_Reference#SkImage'>SkImage</a> width and height are set by <a href='#SkImage_MakeFromPicture_dimensions'>dimensions</a>.
+<a href='SkImage_Reference#SkImage'>SkImage</a> draws <a href='#SkImage_MakeFromPicture_picture'>picture</a> with <a href='#SkImage_MakeFromPicture_matrix'>matrix</a> and <a href='#SkImage_MakeFromPicture_paint'>paint</a>, set to <a href='#SkImage_MakeFromPicture_bitDepth'>bitDepth</a> and <a href='#SkImage_MakeFromPicture_colorSpace'>colorSpace</a>.
-If <a href='#SkImage_MakeFromPicture_matrix'>matrix</a> is nullptr, draws with identity <a href='SkMatrix_Reference#Matrix'>Matrix</a>. If <a href='#SkImage_MakeFromPicture_paint'>paint</a> is nullptr, draws
-with default <a href='SkPaint_Reference#Paint'>Paint</a>. <a href='#SkImage_colorSpace'>colorSpace</a> may be nullptr.
+If <a href='#SkImage_MakeFromPicture_matrix'>matrix</a> is nullptr, draws with identity <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. If <a href='#SkImage_MakeFromPicture_paint'>paint</a> is nullptr, draws
+with default <a href='SkPaint_Reference#SkPaint'>SkPaint</a>. <a href='#SkImage_MakeFromPicture_colorSpace'>colorSpace</a> may be nullptr.
### Parameters
<table> <tr> <td><a name='SkImage_MakeFromPicture_picture'><code><strong>picture</strong></code></a></td>
- <td>stream of drawing commands</td>
+ <td><a href='SkStream_Reference#Stream'>stream</a> of drawing commands</td>
</tr>
<tr> <td><a name='SkImage_MakeFromPicture_dimensions'><code><strong>dimensions</strong></code></a></td>
<td>width and height</td>
</tr>
<tr> <td><a name='SkImage_MakeFromPicture_matrix'><code><strong>matrix</strong></code></a></td>
- <td><a href='SkMatrix_Reference#Matrix'>Matrix</a> to rotate, scale, translate, and so on; may be nullptr</td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate, scale, translate, and so on; may be nullptr</td>
</tr>
<tr> <td><a name='SkImage_MakeFromPicture_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> to apply transparency, filtering, and so on; may be nullptr</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> to apply transparency, filtering, and so on; may be nullptr</td>
</tr>
<tr> <td><a name='SkImage_MakeFromPicture_bitDepth'><code><strong>bitDepth</strong></code></a></td>
<td>8-bit integer or 16-bit float: per component</td>
@@ -1226,7 +1352,7 @@
### Return Value
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -1248,8 +1374,9 @@
<a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a> surfaceOrigin = <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</a>)
</pre>
-Creates <a href='#Image'>Image</a> from Android hardware buffer.
-Returned <a href='#Image'>Image</a> takes a reference on the buffer.
+(See Skia bug 7447)
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> from Android hardware buffer.
+Returned <a href='SkImage_Reference#SkImage'>SkImage</a> takes a reference on the buffer.
Only available on Android, when __ANDROID_API__ is defined to be 26 or greater.
@@ -1259,20 +1386,26 @@
<td>AHardwareBuffer Android hardware buffer</td>
</tr>
<tr> <td><a name='SkImage_MakeFromAHardwareBuffer_alphaType'><code><strong>alphaType</strong></code></a></td>
- <td>one of: <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
-<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a> </td>
+ <td>one of:</td>
</tr>
- <tr> <td><a name='SkImage_MakeFromAHardwareBuffer_colorSpace'><code><strong>colorSpace</strong></code></a></td>
+</table>
+
+<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>,
+<a href='SkImageInfo_Reference#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_MakeFromAHardwareBuffer_colorSpace'><code><strong>colorSpace</strong></code></a></td>
<td>range of colors; may be nullptr</td>
</tr>
<tr> <td><a name='SkImage_MakeFromAHardwareBuffer_surfaceOrigin'><code><strong>surfaceOrigin</strong></code></a></td>
- <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</a></td>
+ <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a></td>
</tr>
</table>
### Return Value
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### See Also
@@ -1288,11 +1421,11 @@
int <a href='#SkImage_width'>width</a>() const
</pre>
-Returns pixel count in each row.
+Returns <a href='undocumented#Pixel'>pixel</a> count in each row.
### Return Value
-pixel width in <a href='#Image'>Image</a>
+<a href='undocumented#Pixel'>pixel</a> width in <a href='SkImage_Reference#SkImage'>SkImage</a>
### Example
@@ -1310,11 +1443,11 @@
int <a href='#SkImage_height'>height</a>() const
</pre>
-Returns pixel row count.
+Returns <a href='undocumented#Pixel'>pixel</a> row count.
### Return Value
-pixel height in <a href='#Image'>Image</a>
+<a href='undocumented#Pixel'>pixel</a> height in <a href='SkImage_Reference#SkImage'>SkImage</a>
### Example
@@ -1332,11 +1465,11 @@
<a href='undocumented#SkISize'>SkISize</a> <a href='#SkImage_dimensions'>dimensions</a>() const
</pre>
-Returns <a href='undocumented#ISize'>ISize</a> { <a href='#SkImage_width'>width</a>(), <a href='#SkImage_height'>height</a>() }.
+Returns <a href='undocumented#SkISize'>SkISize</a> { <a href='#SkImage_width'>width()</a>, <a href='#SkImage_height'>height()</a> }.
### Return Value
-integral size of <a href='#SkImage_width'>width</a>() and <a href='#SkImage_height'>height</a>()
+integral <a href='undocumented#Size'>size</a> of <a href='#SkImage_width'>width()</a> and <a href='#SkImage_height'>height()</a>
### Example
@@ -1362,11 +1495,11 @@
<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkImage_bounds'>bounds</a>() const
</pre>
-Returns <a href='SkIRect_Reference#IRect'>IRect</a> { 0, 0, <a href='#SkImage_width'>width</a>(), <a href='#SkImage_height'>height</a>() }.
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> { 0, 0, <a href='#SkImage_width'>width()</a>, <a href='#SkImage_height'>height()</a> }.
### Return Value
-integral rectangle from origin to <a href='#SkImage_width'>width</a>() and <a href='#SkImage_height'>height</a>()
+integral rectangle from origin to <a href='#SkImage_width'>width()</a> and <a href='#SkImage_height'>height()</a>
### Example
@@ -1384,8 +1517,8 @@
uint32_t <a href='#SkImage_uniqueID'>uniqueID</a>() const
</pre>
-Returns value unique to image. <a href='#Image'>Image</a> contents cannot change after <a href='#Image'>Image</a> is
-created. Any operation to create a new <a href='#Image'>Image</a> will receive generate a new
+Returns value unique to <a href='SkImage_Reference#Image'>image</a>. <a href='SkImage_Reference#SkImage'>SkImage</a> contents cannot change after <a href='SkImage_Reference#SkImage'>SkImage</a> is
+created. Any operation to create a new <a href='SkImage_Reference#SkImage'>SkImage</a> will receive generate a new
unique number.
### Return Value
@@ -1434,11 +1567,11 @@
<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='#SkImage_colorType'>colorType</a>() const
</pre>
-Returns <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> if known; otherwise, returns <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
+Returns <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> if known; otherwise, returns <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
### Return Value
-<a href='SkImageInfo_Reference#Color_Type'>Color Type</a> of <a href='#Image'>Image</a>
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> of <a href='SkImage_Reference#SkImage'>SkImage</a>
### Example
@@ -1456,17 +1589,17 @@
<a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkImage_colorSpace'>colorSpace</a>() const
</pre>
-Returns <a href='undocumented#Color_Space'>Color Space</a>, the range of colors, associated with <a href='#Image'>Image</a>. The
-reference count of <a href='undocumented#Color_Space'>Color Space</a> is unchanged. The returned <a href='undocumented#Color_Space'>Color Space</a> is
+Returns <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors, associated with <a href='SkImage_Reference#SkImage'>SkImage</a>. The
+<a href='undocumented#Reference_Count'>reference count</a> of <a href='undocumented#SkColorSpace'>SkColorSpace</a> is unchanged. The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is
immutable.
-<a href='undocumented#Color_Space'>Color Space</a> returned was passed to an <a href='#Image'>Image</a> constructor,
-or was parsed from encoded data. <a href='undocumented#Color_Space'>Color Space</a> returned may be ignored when <a href='#Image'>Image</a>
-is drawn, depending on the capabilities of the <a href='SkSurface_Reference#Surface'>Surface</a> receiving the drawing.
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> returned was passed to an <a href='SkImage_Reference#SkImage'>SkImage</a> constructor,
+or was parsed from encoded <a href='undocumented#Data'>data</a>. <a href='undocumented#SkColorSpace'>SkColorSpace</a> returned may be ignored when <a href='SkImage_Reference#SkImage'>SkImage</a>
+is drawn, depending on the capabilities of the <a href='SkSurface_Reference#SkSurface'>SkSurface</a> receiving the drawing.
### Return Value
-<a href='undocumented#Color_Space'>Color Space</a> in <a href='#Image'>Image</a>, or nullptr
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -1484,19 +1617,19 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkImage_refColorSpace'>refColorSpace</a>() const
</pre>
-Returns a smart pointer to <a href='undocumented#Color_Space'>Color Space</a>, the range of colors, associated with
-<a href='#Image'>Image</a>. The smart pointer tracks the number of objects sharing this
+Returns a <a href='undocumented#Smart_Pointer'>smart pointer</a> to <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors, associated with
+<a href='SkImage_Reference#SkImage'>SkImage</a>. The <a href='undocumented#Smart_Pointer'>smart pointer</a> tracks the number of objects sharing this
<a href='undocumented#SkColorSpace'>SkColorSpace</a> reference so the memory is released when the owners destruct.
The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is immutable.
-<a href='undocumented#Color_Space'>Color Space</a> returned was passed to an <a href='#Image'>Image</a> constructor,
-or was parsed from encoded data. <a href='undocumented#Color_Space'>Color Space</a> returned may be ignored when <a href='#Image'>Image</a>
-is drawn, depending on the capabilities of the <a href='SkSurface_Reference#Surface'>Surface</a> receiving the drawing.
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> returned was passed to an <a href='SkImage_Reference#SkImage'>SkImage</a> constructor,
+or was parsed from encoded <a href='undocumented#Data'>data</a>. <a href='undocumented#SkColorSpace'>SkColorSpace</a> returned may be ignored when <a href='SkImage_Reference#SkImage'>SkImage</a>
+is drawn, depending on the capabilities of the <a href='SkSurface_Reference#SkSurface'>SkSurface</a> receiving the drawing.
### Return Value
-<a href='undocumented#Color_Space'>Color Space</a> in <a href='#Image'>Image</a>, or nullptr, wrapped in a smart pointer
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr, wrapped in a <a href='undocumented#Smart_Pointer'>smart pointer</a>
### Example
@@ -1514,7 +1647,7 @@
bool <a href='#SkImage_isAlphaOnly'>isAlphaOnly</a>() const
</pre>
-Returns true if <a href='#Image'>Image</a> pixels represent transparency only. If true, each pixel
+Returns true if <a href='SkImage_Reference#SkImage'>SkImage</a> pixels represent transparency only. If true, each <a href='undocumented#Pixel'>pixel</a>
is packed in 8 bits as defined by <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>.
### Return Value
@@ -1545,11 +1678,11 @@
bool <a href='#SkImage_isOpaque'>isOpaque</a>() const
</pre>
-Returns true if pixels ignore their <a href='SkColor_Reference#Alpha'>Alpha</a> value and are treated as fully opaque.
+Returns true if pixels ignore their <a href='SkColor_Reference#Alpha'>alpha</a> value and are treated as fully opaque.
### Return Value
-true if <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>
+true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>
### Example
@@ -1577,28 +1710,38 @@
const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* localMatrix = nullptr) const
</pre>
-Creates <a href='undocumented#Shader'>Shader</a> from <a href='#Image'>Image</a>. <a href='undocumented#Shader'>Shader</a> dimensions are taken from <a href='#Image'>Image</a>. <a href='undocumented#Shader'>Shader</a> uses
-<a href='undocumented#SkShader_TileMode'>SkShader::TileMode</a> rules to fill drawn area outside <a href='#Image'>Image</a>. <a href='#SkImage_makeShader_localMatrix'>localMatrix</a> permits
-transforming <a href='#Image'>Image</a> before <a href='SkCanvas_Reference#Matrix'>Canvas Matrix</a> is applied.
+Creates <a href='undocumented#SkShader'>SkShader</a> from <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='undocumented#SkShader'>SkShader</a> dimensions are taken from <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='undocumented#SkShader'>SkShader</a> uses
+<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_TileMode'>TileMode</a> rules to fill drawn area outside <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='#SkImage_makeShader_localMatrix'>localMatrix</a> permits
+transforming <a href='SkImage_Reference#SkImage'>SkImage</a> before <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> is applied.
### Parameters
<table> <tr> <td><a name='SkImage_makeShader_tileMode1'><code><strong>tileMode1</strong></code></a></td>
- <td>tiling on x-axis, one of: <a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a>,
-<a href='undocumented#SkShader_kRepeat_TileMode'>SkShader::kRepeat TileMode</a>, <a href='undocumented#SkShader_kMirror_TileMode'>SkShader::kMirror TileMode</a></td>
+ <td>tiling on x-axis, one of: <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a>,</td>
</tr>
- <tr> <td><a name='SkImage_makeShader_tileMode2'><code><strong>tileMode2</strong></code></a></td>
- <td>tiling on y-axis, one of: <a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a>,
-<a href='undocumented#SkShader_kRepeat_TileMode'>SkShader::kRepeat TileMode</a>, <a href='undocumented#SkShader_kMirror_TileMode'>SkShader::kMirror TileMode</a></td>
+</table>
+
+<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kRepeat_TileMode'>kRepeat_TileMode</a>, <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kMirror_TileMode'>kMirror_TileMode</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_makeShader_tileMode2'><code><strong>tileMode2</strong></code></a></td>
+ <td>tiling on y-axis, one of: <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a>,</td>
</tr>
- <tr> <td><a name='SkImage_makeShader_localMatrix'><code><strong>localMatrix</strong></code></a></td>
- <td><a href='#Image'>Image</a> transformation, or nullptr</td>
+</table>
+
+<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kRepeat_TileMode'>kRepeat_TileMode</a>, <a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kMirror_TileMode'>kMirror_TileMode</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_makeShader_localMatrix'><code><strong>localMatrix</strong></code></a></td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> transformation, or nullptr</td>
</tr>
</table>
### Return Value
-<a href='undocumented#Shader'>Shader</a> containing <a href='#Image'>Image</a>
+<a href='undocumented#SkShader'>SkShader</a> containing <a href='SkImage_Reference#SkImage'>SkImage</a>
### Example
@@ -1616,20 +1759,20 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkShader'>SkShader</a>> <a href='#SkImage_makeShader'>makeShader</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>* localMatrix = nullptr) const
</pre>
-Creates <a href='undocumented#Shader'>Shader</a> from <a href='#Image'>Image</a>. <a href='undocumented#Shader'>Shader</a> dimensions are taken from <a href='#Image'>Image</a>. <a href='undocumented#Shader'>Shader</a> uses
-<a href='undocumented#SkShader_kClamp_TileMode'>SkShader::kClamp TileMode</a> to fill drawn area outside <a href='#Image'>Image</a>. <a href='#SkImage_makeShader_2_localMatrix'>localMatrix</a> permits
-transforming <a href='#Image'>Image</a> before <a href='SkCanvas_Reference#Matrix'>Canvas Matrix</a> is applied.
+Creates <a href='undocumented#SkShader'>SkShader</a> from <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='undocumented#SkShader'>SkShader</a> dimensions are taken from <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='undocumented#SkShader'>SkShader</a> uses
+<a href='undocumented#SkShader'>SkShader</a>::<a href='#SkShader_kClamp_TileMode'>kClamp_TileMode</a> to fill drawn area outside <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='#SkImage_makeShader_2_localMatrix'>localMatrix</a> permits
+transforming <a href='SkImage_Reference#SkImage'>SkImage</a> before <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> is applied.
### Parameters
<table> <tr> <td><a name='SkImage_makeShader_2_localMatrix'><code><strong>localMatrix</strong></code></a></td>
- <td><a href='#Image'>Image</a> transformation, or nullptr</td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> transformation, or nullptr</td>
</tr>
</table>
### Return Value
-<a href='undocumented#Shader'>Shader</a> containing <a href='#Image'>Image</a>
+<a href='undocumented#SkShader'>SkShader</a> containing <a href='SkImage_Reference#SkImage'>SkImage</a>
### Example
@@ -1649,20 +1792,20 @@
bool <a href='#SkImage_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* pixmap) const
</pre>
-Copies <a href='#Image'>Image</a> pixel address, row bytes, and <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to <a href='#SkImage_peekPixels_pixmap'>pixmap</a>, if address
-is available, and returns true. If pixel address is not available, return
+Copies <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='undocumented#Pixel'>pixel</a> address, row bytes, and <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkImage_peekPixels_pixmap'>pixmap</a>, if address
+is available, and returns true. If <a href='undocumented#Pixel'>pixel</a> address is not available, return
false and leave <a href='#SkImage_peekPixels_pixmap'>pixmap</a> unchanged.
### Parameters
<table> <tr> <td><a name='SkImage_peekPixels_pixmap'><code><strong>pixmap</strong></code></a></td>
- <td>storage for pixel state if pixels are readable; otherwise, ignored</td>
+ <td>storage for <a href='undocumented#Pixel'>pixel</a> state if pixels are readable; otherwise, ignored</td>
</tr>
</table>
### Return Value
-true if <a href='#Image'>Image</a> has direct access to pixels
+true if <a href='SkImage_Reference#SkImage'>SkImage</a> has direct access to pixels
### Example
@@ -1708,12 +1851,12 @@
bool <a href='#SkImage_isTextureBacked'>isTextureBacked</a>() const
</pre>
-Returns true the contents of <a href='#Image'>Image</a> was created on or uploaded to GPU memory,
-and is available as a <a href='undocumented#GPU_Texture'>GPU Texture</a>.
+Returns true the contents of <a href='SkImage_Reference#SkImage'>SkImage</a> was created on or uploaded to GPU memory,
+and is available as a <a href='undocumented#GPU_Texture'>GPU texture</a>.
### Return Value
-true if <a href='#Image'>Image</a> is a <a href='undocumented#GPU_Texture'>GPU Texture</a>
+true if <a href='SkImage_Reference#SkImage'>SkImage</a> is a <a href='undocumented#GPU_Texture'>GPU texture</a>
### Example
@@ -1731,24 +1874,24 @@
bool <a href='#SkImage_isValid'>isValid</a>(<a href='undocumented#GrContext'>GrContext</a>* context) const
</pre>
-Returns true if <a href='#Image'>Image</a> can be drawn on either <a href='undocumented#Raster_Surface'>Raster Surface</a> or <a href='undocumented#GPU_Surface'>GPU Surface</a>.
-If <a href='#SkImage_isValid_context'>context</a> is nullptr, tests if <a href='#Image'>Image</a> draws on <a href='undocumented#Raster_Surface'>Raster Surface</a>;
-otherwise, tests if <a href='#Image'>Image</a> draws on <a href='undocumented#GPU_Surface'>GPU Surface</a> associated with <a href='#SkImage_isValid_context'>context</a>.
+Returns true if <a href='SkImage_Reference#SkImage'>SkImage</a> can be drawn on either <a href='undocumented#Raster_Surface'>raster surface</a> or <a href='undocumented#GPU_Surface'>GPU surface</a>.
+If <a href='#SkImage_isValid_context'>context</a> is nullptr, tests if <a href='SkImage_Reference#SkImage'>SkImage</a> draws on <a href='undocumented#Raster_Surface'>raster surface</a>;
+otherwise, tests if <a href='SkImage_Reference#SkImage'>SkImage</a> draws on <a href='undocumented#GPU_Surface'>GPU surface</a> associated with <a href='#SkImage_isValid_context'>context</a>.
-<a href='#Image'>Image</a> backed by <a href='undocumented#GPU_Texture'>GPU Texture</a> may become invalid if associated <a href='undocumented#GrContext'>GrContext</a> is
-invalid. <a href='#Lazy_Image'>Lazy Image</a> may be invalid and may not draw to <a href='undocumented#Raster_Surface'>Raster Surface</a> or
-<a href='undocumented#GPU_Surface'>GPU Surface</a> or both.
+<a href='SkImage_Reference#SkImage'>SkImage</a> backed by <a href='undocumented#GPU_Texture'>GPU texture</a> may become invalid if associated <a href='undocumented#GrContext'>GrContext</a> is
+invalid. <a href='#Lazy_Image'>lazy image</a> may be invalid and may not draw to <a href='undocumented#Raster_Surface'>raster surface</a> or
+<a href='undocumented#GPU_Surface'>GPU surface</a> or both.
### Parameters
<table> <tr> <td><a name='SkImage_isValid_context'><code><strong>context</strong></code></a></td>
- <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
</table>
### Return Value
-true if <a href='#Image'>Image</a> can be drawn
+true if <a href='SkImage_Reference#SkImage'>SkImage</a> can be drawn
### Example
@@ -1766,13 +1909,13 @@
<a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='#SkImage_getBackendTexture'>getBackendTexture</a>(bool flushPendingGrContextIO, <a href='undocumented#GrSurfaceOrigin'>GrSurfaceOrigin</a>* origin = nullptr) const
</pre>
-Retrieves the back-end texture. If <a href='#Image'>Image</a> has no back-end texture, an invalid
-object is returned. Call <a href='undocumented#GrBackendTexture_isValid'>GrBackendTexture::isValid</a> to determine if the result
+Retrieves the back-end <a href='undocumented#Texture'>texture</a>. If <a href='SkImage_Reference#SkImage'>SkImage</a> has no back-end <a href='undocumented#Texture'>texture</a>, an invalid
+object is returned. Call <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>::<a href='#GrBackendTexture_isValid'>isValid</a> to determine if the result
is valid.
If <a href='#SkImage_getBackendTexture_flushPendingGrContextIO'>flushPendingGrContextIO</a> is true, completes deferred I/O operations.
-If <a href='#SkImage_getBackendTexture_origin'>origin</a> in not nullptr, copies location of content drawn into <a href='#Image'>Image</a>.
+If <a href='#SkImage_getBackendTexture_origin'>origin</a> in not nullptr, copies location of content drawn into <a href='SkImage_Reference#SkImage'>SkImage</a>.
### Parameters
@@ -1780,14 +1923,15 @@
<td>flag to flush outstanding requests</td>
</tr>
<tr> <td><a name='SkImage_getBackendTexture_origin'><code><strong>origin</strong></code></a></td>
- <td>storage for one of: <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</a>,
-<a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>; or nullptr</td>
+ <td>storage for one of: <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a>,</td>
</tr>
</table>
+<a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>; or nullptr
+
### Return Value
-back-end API texture handle; invalid on failure
+back-end API <a href='undocumented#Texture'>texture</a> handle; invalid on failure
### Example
@@ -1991,39 +2135,44 @@
<a href='#SkImage_CachingHint'>CachingHint</a> cachingHint = <a href='#SkImage_kAllow_CachingHint'>kAllow CachingHint</a>) const
</pre>
-Copies <a href='#Image'>Image</a> to <a href='#SkImage_scalePixels_dst'>dst</a>, scaling pixels to fit <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkImage_width'>width</a>() and <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkImage_height'>height</a>(), and
-converting pixels to match <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkImage_colorType'>colorType</a> and <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkImage_alphaType'>alphaType</a>. Returns true if
-pixels are copied. Returns false if <a href='#SkImage_scalePixels_dst'>dst</a>.addr() is nullptr, or <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='SkPixmap_Reference#SkPixmap'>rowBytes</a> is
-less than <a href='#SkImage_scalePixels_dst'>dst</a> <a href='SkImageInfo_Reference#SkImageInfo_minRowBytes'>SkImageInfo::minRowBytes</a>.
+Copies <a href='SkImage_Reference#SkImage'>SkImage</a> to <a href='#SkImage_scalePixels_dst'>dst</a>, scaling pixels to fit <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_width'>width()</a> and <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_height'>height()</a>, and
+converting pixels to match <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_colorType'>colorType</a>() and <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_alphaType'>alphaType</a>(). Returns true if
+pixels are copied. Returns false if <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_addr'>addr()</a> is nullptr, or <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() is
+less than <a href='#SkImage_scalePixels_dst'>dst</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>.
-<a href='#Pixels'>Pixels</a> are copied only if pixel conversion is possible. If <a href='#Image'>Image</a> <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkImage_colorType'>colorType</a> must match.
-If <a href='#Image'>Image</a> <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkImage_colorSpace'>colorSpace</a> must match.
-If <a href='#Image'>Image</a> <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkImage_alphaType'>alphaType</a> must
-match. If <a href='#Image'>Image</a> <a href='undocumented#Color_Space'>Color Space</a> is nullptr, <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkImage_colorSpace'>colorSpace</a> must match. Returns
-false if pixel conversion is not possible.
+Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_colorType'>colorType</a>() must match.
+If <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_colorSpace'>colorSpace</a>() must match.
+If <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_alphaType'>alphaType</a>() must
+match. If <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> is nullptr, <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_colorSpace'>colorSpace</a>() must match. Returns
+false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
-Scales the image, with <a href='#SkImage_scalePixels_filterQuality'>filterQuality</a>, to match <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkImage_width'>width</a>() and <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkImage_height'>height</a>().
+Scales the <a href='SkImage_Reference#Image'>image</a>, with <a href='#SkImage_scalePixels_filterQuality'>filterQuality</a>, to match <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_width'>width()</a> and <a href='#SkImage_scalePixels_dst'>dst</a>.<a href='#SkPixmap_height'>height()</a>.
<a href='#SkImage_scalePixels_filterQuality'>filterQuality</a> <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a> is fastest, typically implemented with
-<a href='undocumented#Nearest_Neighbor'>Filter Quality Nearest Neighbor</a>. <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> is typically implemented with
-<a href='undocumented#Bilerp'>Filter Quality Bilerp</a>. <a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a> is typically implemented with
-<a href='undocumented#Bilerp'>Filter Quality Bilerp</a>, and <a href='undocumented#MipMap'>Filter Quality MipMap</a> when size is reduced.
-<a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a> is slowest, typically implemented with <a href='undocumented#BiCubic'>Filter Quality BiCubic</a>.
+<a href='undocumented#Nearest_Neighbor'>nearest neighbor filter</a>. <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> is typically implemented with
+<a href='undocumented#Bilerp'>bilerp filter</a>. <a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a> is typically implemented with
+<a href='undocumented#Bilerp'>bilerp filter</a>, and <a href='undocumented#MipMap'>mip-map filter</a> when <a href='undocumented#Size'>size</a> is reduced.
+<a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a> is slowest, typically implemented with <a href='undocumented#BiCubic'>bicubic filter</a>.
-If <a href='#SkImage_scalePixels_cachingHint'>cachingHint</a> is <a href='#SkImage_kAllow_CachingHint'>kAllow CachingHint</a>, pixels may be retained locally.
-If <a href='#SkImage_scalePixels_cachingHint'>cachingHint</a> is <a href='#SkImage_kDisallow_CachingHint'>kDisallow CachingHint</a>, pixels are not added to the local cache.
+If <a href='#SkImage_scalePixels_cachingHint'>cachingHint</a> is <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>, pixels may be retained locally.
+If <a href='#SkImage_scalePixels_cachingHint'>cachingHint</a> is <a href='#SkImage_kDisallow_CachingHint'>kDisallow_CachingHint</a>, pixels are not added to the local cache.
### Parameters
<table> <tr> <td><a name='SkImage_scalePixels_dst'><code><strong>dst</strong></code></a></td>
- <td>destination <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>: <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, pixels, row bytes</td>
+ <td>destination <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>: <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, pixels, row bytes</td>
</tr>
<tr> <td><a name='SkImage_scalePixels_filterQuality'><code><strong>filterQuality</strong></code></a></td>
- <td>one of: <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a>,
-<a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a>, <a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a></td>
+ <td>one of: <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a>,</td>
</tr>
- <tr> <td><a name='SkImage_scalePixels_cachingHint'><code><strong>cachingHint</strong></code></a></td>
- <td>one of: <a href='#SkImage_kAllow_CachingHint'>kAllow CachingHint</a>, <a href='#SkImage_kDisallow_CachingHint'>kDisallow CachingHint</a></td>
+</table>
+
+<a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a>, <a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_scalePixels_cachingHint'><code><strong>cachingHint</strong></code></a></td>
+ <td>one of: <a href='#SkImage_kAllow_CachingHint'>kAllow_CachingHint</a>, <a href='#SkImage_kDisallow_CachingHint'>kDisallow_CachingHint</a></td>
</tr>
</table>
@@ -2047,36 +2196,41 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkImage_encodeToData'>encodeToData</a>(<a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a> encodedImageFormat, int quality) const
</pre>
-Encodes <a href='#Image'>Image</a> pixels, returning result as <a href='undocumented#SkData'>SkData</a>.
+Encodes <a href='SkImage_Reference#SkImage'>SkImage</a> pixels, returning result as <a href='undocumented#SkData'>SkData</a>.
Returns nullptr if encoding fails, or if <a href='#SkImage_encodeToData_encodedImageFormat'>encodedImageFormat</a> is not supported.
-<a href='#Image'>Image</a> encoding in a format requires both building with one or more of:
+<a href='SkImage_Reference#SkImage'>SkImage</a> encoding in a format requires both building with one or more of:
SK_HAS_JPEG_LIBRARY, SK_HAS_PNG_LIBRARY, SK_HAS_WEBP_LIBRARY; and platform support
for the encoded format.
If SK_BUILD_FOR_MAC or SK_BUILD_FOR_IOS is defined, <a href='#SkImage_encodeToData_encodedImageFormat'>encodedImageFormat</a> can
-additionally be one of: <a href='undocumented#SkEncodedImageFormat_kICO'>SkEncodedImageFormat::kICO</a>, <a href='undocumented#SkEncodedImageFormat_kBMP'>SkEncodedImageFormat::kBMP</a>,
-<a href='undocumented#SkEncodedImageFormat_kGIF'>SkEncodedImageFormat::kGIF</a>.
+additionally be one of: <a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a>::<a href='#SkEncodedImageFormat_kICO'>kICO</a>, <a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a>::<a href='#SkEncodedImageFormat_kBMP'>kBMP</a>,
+<a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a>::<a href='#SkEncodedImageFormat_kGIF'>kGIF</a>.
-<a href='#SkImage_encodeToData_quality'>quality</a> is a platform and format specific metric trading off size and encoding
+<a href='#SkImage_encodeToData_quality'>quality</a> is a platform and format specific metric trading off <a href='undocumented#Size'>size</a> and encoding
error. When used, <a href='#SkImage_encodeToData_quality'>quality</a> equaling 100 encodes with the least error. <a href='#SkImage_encodeToData_quality'>quality</a> may
be ignored by the encoder.
### Parameters
<table> <tr> <td><a name='SkImage_encodeToData_encodedImageFormat'><code><strong>encodedImageFormat</strong></code></a></td>
- <td>one of: <a href='undocumented#SkEncodedImageFormat_kJPEG'>SkEncodedImageFormat::kJPEG</a>, <a href='undocumented#SkEncodedImageFormat_kPNG'>SkEncodedImageFormat::kPNG</a>,
-<a href='undocumented#SkEncodedImageFormat_kWEBP'>SkEncodedImageFormat::kWEBP</a></td>
+ <td>one of: <a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a>::<a href='#SkEncodedImageFormat_kJPEG'>kJPEG</a>, <a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a>::<a href='#SkEncodedImageFormat_kPNG'>kPNG</a>,</td>
</tr>
- <tr> <td><a name='SkImage_encodeToData_quality'><code><strong>quality</strong></code></a></td>
+</table>
+
+<a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a>::<a href='#SkEncodedImageFormat_kWEBP'>kWEBP</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkImage_encodeToData_quality'><code><strong>quality</strong></code></a></td>
<td>encoder specific metric with 100 equaling best</td>
</tr>
</table>
### Return Value
-encoded <a href='#Image'>Image</a>, or nullptr
+encoded <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -2094,16 +2248,16 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkImage_encodeToData'>encodeToData</a>() const
</pre>
-Encodes <a href='#Image'>Image</a> pixels, returning result as <a href='undocumented#SkData'>SkData</a>. Returns existing encoded data
-if present; otherwise, <a href='#Image'>Image</a> is encoded with <a href='undocumented#SkEncodedImageFormat_kPNG'>SkEncodedImageFormat::kPNG</a>. Skia
-must be built with SK_HAS_PNG_LIBRARY to encode <a href='#Image'>Image</a>.
+Encodes <a href='SkImage_Reference#SkImage'>SkImage</a> pixels, returning result as <a href='undocumented#SkData'>SkData</a>. Returns existing encoded <a href='undocumented#Data'>data</a>
+if present; otherwise, <a href='SkImage_Reference#SkImage'>SkImage</a> is encoded with <a href='undocumented#SkEncodedImageFormat'>SkEncodedImageFormat</a>::<a href='#SkEncodedImageFormat_kPNG'>kPNG</a>. Skia
+must be built with SK_HAS_PNG_LIBRARY to encode <a href='SkImage_Reference#SkImage'>SkImage</a>.
-Returns nullptr if existing encoded data is missing or invalid, and
+Returns nullptr if existing encoded <a href='undocumented#Data'>data</a> is missing or invalid, and
encoding fails.
### Return Value
-encoded <a href='#Image'>Image</a>, or nullptr
+encoded <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -2121,15 +2275,15 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkImage_refEncodedData'>refEncodedData</a>() const
</pre>
-Returns encoded <a href='#Image'>Image</a> pixels as <a href='undocumented#SkData'>SkData</a>, if <a href='#Image'>Image</a> was created from supported
-encoded stream format. Platform support for formats vary and may require building
+Returns encoded <a href='SkImage_Reference#SkImage'>SkImage</a> pixels as <a href='undocumented#SkData'>SkData</a>, if <a href='SkImage_Reference#SkImage'>SkImage</a> was created from supported
+encoded <a href='SkStream_Reference#Stream'>stream</a> format. Platform support for formats vary and may require building
with one or more of: SK_HAS_JPEG_LIBRARY, SK_HAS_PNG_LIBRARY, SK_HAS_WEBP_LIBRARY.
-Returns nullptr if <a href='#Image'>Image</a> contents are not encoded.
+Returns nullptr if <a href='SkImage_Reference#SkImage'>SkImage</a> contents are not encoded.
### Return Value
-encoded <a href='#Image'>Image</a>, or nullptr
+encoded <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -2149,22 +2303,22 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='#SkImage'>SkImage</a>> <a href='#SkImage_makeSubset'>makeSubset</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& subset) const
</pre>
-Returns <a href='#SkImage_makeSubset_subset'>subset</a> of <a href='#Image'>Image</a>. <a href='#SkImage_makeSubset_subset'>subset</a> must be fully contained by <a href='#Image'>Image</a> <a href='#SkImage_dimensions'>dimensions</a>().
+Returns <a href='#SkImage_makeSubset_subset'>subset</a> of <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='#SkImage_makeSubset_subset'>subset</a> must be fully contained by <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkImage_dimensions'>dimensions()</a>.
The implementation may share pixels, or may copy them.
Returns nullptr if <a href='#SkImage_makeSubset_subset'>subset</a> is empty, or <a href='#SkImage_makeSubset_subset'>subset</a> is not contained by bounds, or
-pixels in <a href='#Image'>Image</a> could not be read or copied.
+pixels in <a href='SkImage_Reference#SkImage'>SkImage</a> could not be read or copied.
### Parameters
<table> <tr> <td><a name='SkImage_makeSubset_subset'><code><strong>subset</strong></code></a></td>
- <td>bounds of returned <a href='#Image'>Image</a></td>
+ <td>bounds of returned <a href='SkImage_Reference#SkImage'>SkImage</a></td>
</tr>
</table>
### Return Value
-partial or full <a href='#Image'>Image</a>, or nullptr
+partial or full <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -2183,31 +2337,31 @@
<a href='undocumented#GrMipMapped'>GrMipMapped</a> mipMapped = <a href='undocumented#GrMipMapped_kNo'>GrMipMapped::kNo</a>) const
</pre>
-Returns <a href='#Image'>Image</a> backed by <a href='undocumented#GPU_Texture'>GPU Texture</a> associated with <a href='#SkImage_makeTextureImage_context'>context</a>. Returned <a href='#Image'>Image</a> is
-compatible with <a href='SkSurface_Reference#Surface'>Surface</a> created with <a href='#SkImage_makeTextureImage_dstColorSpace'>dstColorSpace</a>. The returned <a href='#Image'>Image</a> respects
-<a href='#SkImage_makeTextureImage_mipMapped'>mipMapped</a> setting; if <a href='#SkImage_makeTextureImage_mipMapped'>mipMapped</a> equals <a href='undocumented#GrMipMapped_kYes'>GrMipMapped::kYes</a>, the backing texture
-allocates <a href='undocumented#Mip_Map'>Mip Map</a> levels. Returns original <a href='#Image'>Image</a> if <a href='#SkImage_makeTextureImage_context'>context</a>
-and <a href='#SkImage_makeTextureImage_dstColorSpace'>dstColorSpace</a> match and <a href='#SkImage_makeTextureImage_mipMapped'>mipMapped</a> is compatible with backing <a href='undocumented#GPU_Texture'>GPU Texture</a>.
+Returns <a href='SkImage_Reference#SkImage'>SkImage</a> backed by <a href='undocumented#GPU_Texture'>GPU texture</a> associated with <a href='#SkImage_makeTextureImage_context'>context</a>. Returned <a href='SkImage_Reference#SkImage'>SkImage</a> is
+compatible with <a href='SkSurface_Reference#SkSurface'>SkSurface</a> created with <a href='#SkImage_makeTextureImage_dstColorSpace'>dstColorSpace</a>. The returned <a href='SkImage_Reference#SkImage'>SkImage</a> respects
+<a href='#SkImage_makeTextureImage_mipMapped'>mipMapped</a> setting; if <a href='#SkImage_makeTextureImage_mipMapped'>mipMapped</a> equals <a href='undocumented#GrMipMapped'>GrMipMapped</a>::<a href='#GrMipMapped_kYes'>kYes</a>, the backing <a href='undocumented#Texture'>texture</a>
+allocates <a href='undocumented#Mip_Map'>mip map</a> levels. Returns original <a href='SkImage_Reference#SkImage'>SkImage</a> if <a href='#SkImage_makeTextureImage_context'>context</a>
+and <a href='#SkImage_makeTextureImage_dstColorSpace'>dstColorSpace</a> match and <a href='#SkImage_makeTextureImage_mipMapped'>mipMapped</a> is compatible with backing <a href='undocumented#GPU_Texture'>GPU texture</a>.
-Returns nullptr if <a href='#SkImage_makeTextureImage_context'>context</a> is nullptr, or if <a href='#Image'>Image</a> was created with another
+Returns nullptr if <a href='#SkImage_makeTextureImage_context'>context</a> is nullptr, or if <a href='SkImage_Reference#SkImage'>SkImage</a> was created with another
<a href='undocumented#GrContext'>GrContext</a>.
### Parameters
<table> <tr> <td><a name='SkImage_makeTextureImage_context'><code><strong>context</strong></code></a></td>
- <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_makeTextureImage_dstColorSpace'><code><strong>dstColorSpace</strong></code></a></td>
- <td>range of colors of matching <a href='SkSurface_Reference#Surface'>Surface</a> on GPU</td>
+ <td>range of colors of matching <a href='SkSurface_Reference#SkSurface'>SkSurface</a> on GPU</td>
</tr>
<tr> <td><a name='SkImage_makeTextureImage_mipMapped'><code><strong>mipMapped</strong></code></a></td>
- <td>whether created <a href='#Image'>Image</a> texture must allocate <a href='undocumented#Mip_Map'>Mip Map</a> levels</td>
+ <td>whether created <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='undocumented#Texture'>texture</a> must allocate <a href='undocumented#Mip_Map'>mip map</a> levels</td>
</tr>
</table>
### Return Value
-created <a href='#Image'>Image</a>, or nullptr
+created <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
@@ -2225,15 +2379,15 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='#SkImage'>SkImage</a>> <a href='#SkImage_makeNonTextureImage'>makeNonTextureImage</a>() const
</pre>
-Returns <a href='#Raster_Image'>Raster Image</a> or <a href='#Lazy_Image'>Lazy Image</a>. Copies <a href='#Image'>Image</a> backed by <a href='undocumented#GPU_Texture'>GPU Texture</a> into
-CPU memory if needed. Returns original <a href='#Image'>Image</a> if decoded in <a href='undocumented#Raster_Bitmap'>Raster Bitmap</a>,
-or if encoded in a stream.
+Returns <a href='#Raster_Image'>raster image</a> or <a href='#Lazy_Image'>lazy image</a>. Copies <a href='SkImage_Reference#SkImage'>SkImage</a> backed by <a href='undocumented#GPU_Texture'>GPU texture</a> into
+CPU memory if needed. Returns original <a href='SkImage_Reference#SkImage'>SkImage</a> if decoded in <a href='undocumented#Raster_Bitmap'>raster bitmap</a>,
+or if encoded in a <a href='SkStream_Reference#Stream'>stream</a>.
-Returns nullptr if backed by <a href='undocumented#GPU_Texture'>GPU Texture</a> and copy fails.
+Returns nullptr if backed by <a href='undocumented#GPU_Texture'>GPU texture</a> and copy fails.
### Return Value
-<a href='#Raster_Image'>Raster Image</a>, <a href='#Lazy_Image'>Lazy Image</a>, or nullptr
+<a href='#Raster_Image'>raster image</a>, <a href='#Lazy_Image'>lazy image</a>, or nullptr
### Example
@@ -2251,15 +2405,15 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='#SkImage'>SkImage</a>> <a href='#SkImage_makeRasterImage'>makeRasterImage</a>() const
</pre>
-Returns <a href='#Raster_Image'>Raster Image</a>. Copies <a href='#Image'>Image</a> backed by <a href='undocumented#GPU_Texture'>GPU Texture</a> into CPU memory,
-or decodes <a href='#Image'>Image</a> from <a href='#Lazy_Image'>Lazy Image</a>. Returns original <a href='#Image'>Image</a> if decoded in
-<a href='undocumented#Raster_Bitmap'>Raster Bitmap</a>.
+Returns <a href='#Raster_Image'>raster image</a>. Copies <a href='SkImage_Reference#SkImage'>SkImage</a> backed by <a href='undocumented#GPU_Texture'>GPU texture</a> into CPU memory,
+or decodes <a href='SkImage_Reference#SkImage'>SkImage</a> from <a href='#Lazy_Image'>lazy image</a>. Returns original <a href='SkImage_Reference#SkImage'>SkImage</a> if decoded in
+<a href='undocumented#Raster_Bitmap'>raster bitmap</a>.
-Returns nullptr if copy, decode, or pixel read fails.
+Returns nullptr if copy, decode, or <a href='undocumented#Pixel'>pixel</a> read fails.
### Return Value
-<a href='#Raster_Image'>Raster Image</a>, or nullptr
+<a href='#Raster_Image'>raster image</a>, or nullptr
### Example
@@ -2278,48 +2432,48 @@
const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& clipBounds, <a href='SkIRect_Reference#SkIRect'>SkIRect</a>* outSubset, <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>* offset) const
</pre>
-Creates filtered <a href='#Image'>Image</a>. <a href='#SkImage_makeWithFilter_filter'>filter</a> processes original <a href='#Image'>Image</a>, potentially changing
-color, position, and size. <a href='#SkImage_makeWithFilter_subset'>subset</a> is the bounds of original <a href='#Image'>Image</a> processed
-by <a href='#SkImage_makeWithFilter_filter'>filter</a>. <a href='#SkImage_makeWithFilter_clipBounds'>clipBounds</a> is the expected bounds of the filtered <a href='#Image'>Image</a>. <a href='#SkImage_makeWithFilter_outSubset'>outSubset</a>
-is required storage for the actual bounds of the filtered <a href='#Image'>Image</a>. <a href='#SkImage_makeWithFilter_offset'>offset</a> is
-required storage for translation of returned <a href='#Image'>Image</a>.
+Creates filtered <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='#SkImage_makeWithFilter_filter'>filter</a> processes original <a href='SkImage_Reference#SkImage'>SkImage</a>, potentially changing
+<a href='SkColor_Reference#Color'>color</a>, position, and <a href='undocumented#Size'>size</a>. <a href='#SkImage_makeWithFilter_subset'>subset</a> is the bounds of original <a href='SkImage_Reference#SkImage'>SkImage</a> processed
+by <a href='#SkImage_makeWithFilter_filter'>filter</a>. <a href='#SkImage_makeWithFilter_clipBounds'>clipBounds</a> is the expected bounds of the filtered <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='#SkImage_makeWithFilter_outSubset'>outSubset</a>
+is required storage for the actual bounds of the filtered <a href='SkImage_Reference#SkImage'>SkImage</a>. <a href='#SkImage_makeWithFilter_offset'>offset</a> is
+required storage for translation of returned <a href='SkImage_Reference#SkImage'>SkImage</a>.
-Returns nullptr if <a href='#Image'>Image</a> could not be created. If nullptr is returned, <a href='#SkImage_makeWithFilter_outSubset'>outSubset</a>
+Returns nullptr if <a href='SkImage_Reference#SkImage'>SkImage</a> could not be created. If nullptr is returned, <a href='#SkImage_makeWithFilter_outSubset'>outSubset</a>
and <a href='#SkImage_makeWithFilter_offset'>offset</a> are undefined.
-Useful for animation of <a href='undocumented#SkImageFilter'>SkImageFilter</a> that varies size from frame to frame.
-Returned <a href='#Image'>Image</a> is created larger than required by <a href='#SkImage_makeWithFilter_filter'>filter</a> so that <a href='undocumented#GPU_Texture'>GPU Texture</a>
+Useful for animation of <a href='undocumented#SkImageFilter'>SkImageFilter</a> that varies <a href='undocumented#Size'>size</a> from frame to frame.
+Returned <a href='SkImage_Reference#SkImage'>SkImage</a> is created larger than required by <a href='#SkImage_makeWithFilter_filter'>filter</a> so that <a href='undocumented#GPU_Texture'>GPU texture</a>
can be reused with different sized effects. <a href='#SkImage_makeWithFilter_outSubset'>outSubset</a> describes the valid bounds
-of <a href='undocumented#GPU_Texture'>GPU Texture</a> returned. <a href='#SkImage_makeWithFilter_offset'>offset</a> translates the returned <a href='#Image'>Image</a> to keep subsequent
+of <a href='undocumented#GPU_Texture'>GPU texture</a> returned. <a href='#SkImage_makeWithFilter_offset'>offset</a> translates the returned <a href='SkImage_Reference#SkImage'>SkImage</a> to keep subsequent
animation frames aligned with respect to each other.
### Parameters
<table> <tr> <td><a name='SkImage_makeWithFilter_filter'><code><strong>filter</strong></code></a></td>
- <td>how <a href='#Image'>Image</a> is sampled when transformed</td>
+ <td>how <a href='SkImage_Reference#SkImage'>SkImage</a> is sampled when transformed</td>
</tr>
<tr> <td><a name='SkImage_makeWithFilter_subset'><code><strong>subset</strong></code></a></td>
- <td>bounds of <a href='#Image'>Image</a> processed by <a href='#SkImage_makeWithFilter_filter'>filter</a></td>
+ <td>bounds of <a href='SkImage_Reference#SkImage'>SkImage</a> processed by <a href='#SkImage_makeWithFilter_filter'>filter</a></td>
</tr>
<tr> <td><a name='SkImage_makeWithFilter_clipBounds'><code><strong>clipBounds</strong></code></a></td>
- <td>expected bounds of filtered <a href='#Image'>Image</a></td>
+ <td>expected bounds of filtered <a href='SkImage_Reference#SkImage'>SkImage</a></td>
</tr>
<tr> <td><a name='SkImage_makeWithFilter_outSubset'><code><strong>outSubset</strong></code></a></td>
- <td>storage for returned <a href='#Image'>Image</a> bounds</td>
+ <td>storage for returned <a href='SkImage_Reference#SkImage'>SkImage</a> bounds</td>
</tr>
<tr> <td><a name='SkImage_makeWithFilter_offset'><code><strong>offset</strong></code></a></td>
- <td>storage for returned <a href='#Image'>Image</a> translation</td>
+ <td>storage for returned <a href='SkImage_Reference#SkImage'>SkImage</a> translation</td>
</tr>
</table>
### Return Value
-filtered <a href='#Image'>Image</a>, or nullptr
+filtered <a href='SkImage_Reference#SkImage'>SkImage</a>, or nullptr
### Example
<div><fiddle-embed name="85a76163138a2720ac003691d6363938" gpu="true"><div>In each frame of the animation, filtered <a href='#Image'>Image</a> is drawn in a different location.
-By translating canvas by returned <a href='#SkImage_makeWithFilter_offset'>offset</a>, <a href='#Image'>Image</a> appears stationary.
+By translating canvas by returned offset, <a href='#Image'>Image</a> appears stationary.
</div></fiddle-embed></div>
### See Also
@@ -2349,31 +2503,31 @@
<a href='#SkImage_BackendTextureReleaseProc'>BackendTextureReleaseProc</a>* backendTextureReleaseProc)
</pre>
-Creates a <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> from the provided <a href='#SkImage'>SkImage</a>. Returns true and
+Creates a <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> from the provided <a href='SkImage_Reference#SkImage'>SkImage</a>. Returns true and
stores result in <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>backendTexture</a> and <a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>backendTextureReleaseProc</a> if
-texture is created; otherwise, returns false and leaves
+<a href='undocumented#Texture'>texture</a> is created; otherwise, returns false and leaves
<a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>backendTexture</a> and <a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>backendTextureReleaseProc</a> unmodified.
Call <a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>backendTextureReleaseProc</a> after deleting <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>backendTexture</a>.
-<a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>backendTextureReleaseProc</a> cleans up auxiliary data related to returned
+<a href='#SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'>backendTextureReleaseProc</a> cleans up auxiliary <a href='undocumented#Data'>data</a> related to returned
<a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>backendTexture</a>. The caller must delete returned <a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>backendTexture</a> after use.
-If <a href='#Image'>Image</a> is both texture backed and singly referenced, <a href='#SkImage_MakeBackendTextureFromSkImage_image'>image</a> is returned in
-<a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>backendTexture</a> without conversion or making a copy. <a href='#Image'>Image</a> is singly referenced
+If <a href='SkImage_Reference#SkImage'>SkImage</a> is both <a href='undocumented#Texture'>texture</a> backed and singly referenced, <a href='#SkImage_MakeBackendTextureFromSkImage_image'>image</a> is returned in
+<a href='#SkImage_MakeBackendTextureFromSkImage_backendTexture'>backendTexture</a> without conversion or making a copy. <a href='SkImage_Reference#SkImage'>SkImage</a> is singly referenced
if its was transferred solely using std::move().
-If <a href='#Image'>Image</a> is not texture backed, returns texture with <a href='#Image'>Image</a> contents.
+If <a href='SkImage_Reference#SkImage'>SkImage</a> is not <a href='undocumented#Texture'>texture</a> backed, returns <a href='undocumented#Texture'>texture</a> with <a href='SkImage_Reference#SkImage'>SkImage</a> contents.
### Parameters
<table> <tr> <td><a name='SkImage_MakeBackendTextureFromSkImage_context'><code><strong>context</strong></code></a></td>
- <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkImage_MakeBackendTextureFromSkImage_image'><code><strong>image</strong></code></a></td>
- <td><a href='#Image'>Image</a> used for texture</td>
+ <td><a href='SkImage_Reference#SkImage'>SkImage</a> used for <a href='undocumented#Texture'>texture</a></td>
</tr>
<tr> <td><a name='SkImage_MakeBackendTextureFromSkImage_backendTexture'><code><strong>backendTexture</strong></code></a></td>
- <td>storage for back-end texture</td>
+ <td>storage for back-end <a href='undocumented#Texture'>texture</a></td>
</tr>
<tr> <td><a name='SkImage_MakeBackendTextureFromSkImage_backendTextureReleaseProc'><code><strong>backendTextureReleaseProc</strong></code></a></td>
<td>storage for clean up function</td>
@@ -2382,7 +2536,7 @@
### Return Value
-true if back-end texture was created
+true if back-end <a href='undocumented#Texture'>texture</a> was created
### Example
@@ -2426,15 +2580,15 @@
bool <a href='#SkImage_asLegacyBitmap'>asLegacyBitmap</a>(<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a>* bitmap, <a href='#SkImage_LegacyBitmapMode'>LegacyBitmapMode</a> legacyBitmapMode = <a href='#SkImage_kRO_LegacyBitmapMode'>kRO LegacyBitmapMode</a>) const
</pre>
-Creates raster <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> with same pixels as <a href='#Image'>Image</a>. If <a href='#SkImage_asLegacyBitmap_legacyBitmapMode'>legacyBitmapMode</a> is
-<a href='#SkImage_kRO_LegacyBitmapMode'>kRO LegacyBitmapMode</a>, returned <a href='#SkImage_asLegacyBitmap_bitmap'>bitmap</a> is read-only and immutable.
-Returns true if <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> is stored in <a href='#SkImage_asLegacyBitmap_bitmap'>bitmap</a>. Returns false and resets <a href='#SkImage_asLegacyBitmap_bitmap'>bitmap</a> if
-<a href='SkBitmap_Reference#Bitmap'>Bitmap</a> write did not succeed.
+Creates raster <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> with same pixels as <a href='SkImage_Reference#SkImage'>SkImage</a>. If <a href='#SkImage_asLegacyBitmap_legacyBitmapMode'>legacyBitmapMode</a> is
+<a href='#SkImage_kRO_LegacyBitmapMode'>kRO_LegacyBitmapMode</a>, returned <a href='#SkImage_asLegacyBitmap_bitmap'>bitmap</a> is read-only and immutable.
+Returns true if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> is stored in <a href='#SkImage_asLegacyBitmap_bitmap'>bitmap</a>. Returns false and resets <a href='#SkImage_asLegacyBitmap_bitmap'>bitmap</a> if
+<a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> write did not succeed.
### Parameters
<table> <tr> <td><a name='SkImage_asLegacyBitmap_bitmap'><code><strong>bitmap</strong></code></a></td>
- <td>storage for legacy <a href='SkBitmap_Reference#Bitmap'>Bitmap</a></td>
+ <td>storage for legacy <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a></td>
</tr>
<tr> <td><a name='SkImage_asLegacyBitmap_legacyBitmapMode'><code><strong>legacyBitmapMode</strong></code></a></td>
<td>to be deprecated</td>
@@ -2443,7 +2597,7 @@
### Return Value
-true if <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> was created
+true if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> was created
### Example
@@ -2461,12 +2615,12 @@
bool <a href='#SkImage_isLazyGenerated'>isLazyGenerated</a>() const
</pre>
-Returns true if <a href='#Image'>Image</a> is backed by an image-generator or other service that creates
-and caches its pixels or texture on-demand.
+Returns true if <a href='SkImage_Reference#SkImage'>SkImage</a> is backed by an image-generator or other service that creates
+and caches its pixels or <a href='undocumented#Texture'>texture</a> on-demand.
### Return Value
-true if <a href='#Image'>Image</a> is created as needed
+true if <a href='SkImage_Reference#SkImage'>SkImage</a> is created as needed
### Example
@@ -2488,23 +2642,23 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='#SkImage'>SkImage</a>> <a href='#SkImage_makeColorSpace'>makeColorSpace</a>(<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> target) const
</pre>
-Creates <a href='#Image'>Image</a> in <a href='#SkImage_makeColorSpace_target'>target</a> <a href='undocumented#Color_Space'>Color Space</a>.
-Returns nullptr if <a href='#Image'>Image</a> could not be created.
+Creates <a href='SkImage_Reference#SkImage'>SkImage</a> in <a href='#SkImage_makeColorSpace_target'>target</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
+Returns nullptr if <a href='SkImage_Reference#SkImage'>SkImage</a> could not be created.
-Returns original <a href='#Image'>Image</a> if it is in <a href='#SkImage_makeColorSpace_target'>target</a> <a href='undocumented#Color_Space'>Color Space</a>.
-Otherwise, converts pixels from <a href='#Image'>Image</a> <a href='undocumented#Color_Space'>Color Space</a> to <a href='#SkImage_makeColorSpace_target'>target</a> <a href='undocumented#Color_Space'>Color Space</a>.
-If <a href='#Image'>Image</a> <a href='#SkImage_colorSpace'>colorSpace</a> returns nullptr, <a href='#Image'>Image</a> <a href='undocumented#Color_Space'>Color Space</a> is assumed to be sRGB.
+Returns original <a href='SkImage_Reference#SkImage'>SkImage</a> if it is in <a href='#SkImage_makeColorSpace_target'>target</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
+Otherwise, converts pixels from <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> to <a href='#SkImage_makeColorSpace_target'>target</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
+If <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='#SkImage_colorSpace'>colorSpace</a>() returns nullptr, <a href='SkImage_Reference#SkImage'>SkImage</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> is assumed to be sRGB.
### Parameters
<table> <tr> <td><a name='SkImage_makeColorSpace_target'><code><strong>target</strong></code></a></td>
- <td><a href='undocumented#Color_Space'>Color Space</a> describing color range of returned <a href='#Image'>Image</a></td>
+ <td><a href='undocumented#SkColorSpace'>SkColorSpace</a> describing <a href='SkColor_Reference#Color'>color</a> range of returned <a href='SkImage_Reference#SkImage'>SkImage</a></td>
</tr>
</table>
### Return Value
-created <a href='#Image'>Image</a> in <a href='#SkImage_makeColorSpace_target'>target</a> <a href='undocumented#Color_Space'>Color Space</a>
+created <a href='SkImage_Reference#SkImage'>SkImage</a> in <a href='#SkImage_makeColorSpace_target'>target</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a>
### Example
diff --git a/site/user/api/SkMatrix_Reference.md b/site/user/api/SkMatrix_Reference.md
index af70d24..6aa9d28 100644
--- a/site/user/api/SkMatrix_Reference.md
+++ b/site/user/api/SkMatrix_Reference.md
@@ -147,7 +147,7 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getMaxScale'>getMaxScale</a>() const;
bool <a href='#SkMatrix_getMinMaxScales'>getMinMaxScales</a>(<a href='undocumented#SkScalar'>SkScalar</a> scaleFactors[2]) const;
bool <a href='#SkMatrix_decomposeScale'>decomposeScale</a>(<a href='undocumented#SkSize'>SkSize</a>* scale, <a href='#SkMatrix'>SkMatrix</a>* remaining = nullptr) const;
- static const <a href='#SkMatrix'>SkMatrix</a>& I();
+ static const <a href='#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_I'>I</a>();
static const <a href='#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_InvalidMatrix'>InvalidMatrix</a>();
static <a href='#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_Concat'>Concat</a>(const <a href='#SkMatrix'>SkMatrix</a>& a, const <a href='#SkMatrix'>SkMatrix</a>& b);
void <a href='#SkMatrix_dirtyMatrixTypeCache'>dirtyMatrixTypeCache</a>();
@@ -176,13 +176,11 @@
static <a href='#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeScale'>MakeScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to scale by (<a href='#SkMatrix_MakeScale_sx'>sx</a>, <a href='#SkMatrix_MakeScale_sy'>sy</a>). Returned matrix is:
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to scale by (<a href='#SkMatrix_MakeScale_sx'>sx</a>, <a href='#SkMatrix_MakeScale_sy'>sy</a>). Returned <a href='SkMatrix_Reference#Matrix'>matrix</a> is:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-| sx 0 0 |
-| 0 sy 0 |
+| <a href='#SkMatrix_MakeScale_sx'>sx</a> 0 0 |
+| 0 <a href='#SkMatrix_MakeScale_sy'>sy</a> 0 |
| 0 0 1 |
-</pre>
### Parameters
@@ -196,7 +194,7 @@
### Return Value
-<a href='#Matrix'>Matrix</a> with scale
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with scale
### Example
@@ -214,13 +212,11 @@
static <a href='#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeScale'>MakeScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> scale)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to <a href='#SkMatrix_MakeScale_2_scale'>scale</a> by (<a href='#SkMatrix_MakeScale_2_scale'>scale</a>, <a href='#SkMatrix_MakeScale_2_scale'>scale</a>). Returned matrix is:
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='#SkMatrix_MakeScale_2_scale'>scale</a> by (<a href='#SkMatrix_MakeScale_2_scale'>scale</a>, <a href='#SkMatrix_MakeScale_2_scale'>scale</a>). Returned <a href='SkMatrix_Reference#Matrix'>matrix</a> is:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-| scale 0 0 |
-| 0 scale 0 |
+| <a href='#SkMatrix_MakeScale_2_scale'>scale</a> 0 0 |
+| 0 <a href='#SkMatrix_MakeScale_2_scale'>scale</a> 0 |
| 0 0 1 |
-</pre>
### Parameters
@@ -231,7 +227,7 @@
### Return Value
-<a href='#Matrix'>Matrix</a> with <a href='#SkMatrix_MakeScale_2_scale'>scale</a>
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with <a href='#SkMatrix_MakeScale_2_scale'>scale</a>
### Example
@@ -249,13 +245,11 @@
static <a href='#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeTrans'>MakeTrans</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to translate by (<a href='#SkMatrix_MakeTrans_dx'>dx</a>, <a href='#SkMatrix_MakeTrans_dy'>dy</a>). Returned matrix is:
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to translate by (<a href='#SkMatrix_MakeTrans_dx'>dx</a>, <a href='#SkMatrix_MakeTrans_dy'>dy</a>). Returned <a href='SkMatrix_Reference#Matrix'>matrix</a> is:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-| 1 0 dx |
-| 0 1 dy |
+| 1 0 <a href='#SkMatrix_MakeTrans_dx'>dx</a> |
+| 0 1 <a href='#SkMatrix_MakeTrans_dy'>dy</a> |
| 0 0 1 |
-</pre>
### Parameters
@@ -269,7 +263,7 @@
### Return Value
-<a href='#Matrix'>Matrix</a> with translation
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with translation
### Example
@@ -289,13 +283,11 @@
<a href='undocumented#SkScalar'>SkScalar</a> pers2)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to:
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-| scaleX skewX transX |
-| skewY scaleY transY |
-| pers0 pers1 pers2 |
-</pre>
+| <a href='#SkMatrix_MakeAll_scaleX'>scaleX</a> <a href='#SkMatrix_MakeAll_skewX'>skewX</a> <a href='#SkMatrix_MakeAll_transX'>transX</a> |
+| <a href='#SkMatrix_MakeAll_skewY'>skewY</a> <a href='#SkMatrix_MakeAll_scaleY'>scaleY</a> <a href='#SkMatrix_MakeAll_transY'>transY</a> |
+| <a href='#SkMatrix_MakeAll_pers0'>pers0</a> <a href='#SkMatrix_MakeAll_pers1'>pers1</a> <a href='#SkMatrix_MakeAll_pers2'>pers2</a> |
### Parameters
@@ -330,7 +322,7 @@
### Return Value
-<a href='#Matrix'>Matrix</a> constructed from parameters
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from parameters
### Example
@@ -425,15 +417,16 @@
<a href='#SkMatrix_TypeMask'>TypeMask</a> <a href='#SkMatrix_getType'>getType</a>() const
</pre>
-Returns a bit field describing the transformations the matrix may
+Returns a bit field describing the transformations the <a href='SkMatrix_Reference#Matrix'>matrix</a> may
perform. The bit field is computed conservatively, so it may include
-false positives. For example, when <a href='#SkMatrix_kPerspective_Mask'>kPerspective Mask</a> is set, all
+false positives. For example, when <a href='#SkMatrix_kPerspective_Mask'>kPerspective_Mask</a> is set, all
other bits are set.
### Return Value
-<a href='#SkMatrix_kIdentity_Mask'>kIdentity Mask</a>, or combinations of: <a href='#SkMatrix_kTranslate_Mask'>kTranslate Mask</a>, <a href='#SkMatrix_kScale_Mask'>kScale Mask</a>,
-<a href='#SkMatrix_kAffine_Mask'>kAffine Mask</a>, <a href='#SkMatrix_kPerspective_Mask'>kPerspective Mask</a>
+<a href='#SkMatrix_kIdentity_Mask'>kIdentity_Mask</a>, or combinations of: <a href='#SkMatrix_kTranslate_Mask'>kTranslate_Mask</a>, <a href='#SkMatrix_kScale_Mask'>kScale_Mask</a>,
+
+<a href='#SkMatrix_kAffine_Mask'>kAffine_Mask</a>, <a href='#SkMatrix_kPerspective_Mask'>kPerspective_Mask</a>
### Example
@@ -460,17 +453,15 @@
bool <a href='#SkMatrix_isIdentity'>isIdentity</a>() const
</pre>
-Returns true if <a href='#Matrix'>Matrix</a> is identity. Identity matrix is:
+Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is identity. Identity <a href='SkMatrix_Reference#Matrix'>matrix</a> is:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 1 0 0 |
| 0 1 0 |
| 0 0 1 |
-</pre>
### Return Value
-true if <a href='#Matrix'>Matrix</a> has no effect
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> has no effect
### Example
@@ -497,18 +488,16 @@
bool <a href='#SkMatrix_isScaleTranslate'>isScaleTranslate</a>() const
</pre>
-Returns true if <a href='#Matrix'>Matrix</a> at most scales and translates. <a href='#Matrix'>Matrix</a> may be identity,
-contain only scale elements, only translate elements, or both. <a href='#Matrix'>Matrix</a> form is:
+Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> at most scales and translates. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may be identity,
+contain only scale elements, only translate elements, or both. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> form is:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| scale-x 0 translate-x |
| 0 scale-y translate-y |
| 0 0 1 |
-</pre>
### Return Value
-true if <a href='#Matrix'>Matrix</a> is identity; or scales, translates, or both
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is identity; or scales, translates, or both
### Example
@@ -537,17 +526,15 @@
bool <a href='#SkMatrix_isTranslate'>isTranslate</a>() const
</pre>
-Returns true if <a href='#Matrix'>Matrix</a> is identity, or translates. <a href='#Matrix'>Matrix</a> form is:
+Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is identity, or translates. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> form is:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 1 0 translate-x |
| 0 1 translate-y |
| 0 0 1 |
-</pre>
### Return Value
-true if <a href='#Matrix'>Matrix</a> is identity, or translates
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is identity, or translates
### Example
@@ -576,32 +563,28 @@
bool <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>() const
</pre>
-Returns true <a href='#Matrix'>Matrix</a> maps <a href='SkRect_Reference#Rect'>Rect</a> to another <a href='SkRect_Reference#Rect'>Rect</a>. If true, <a href='#Matrix'>Matrix</a> is identity,
+Returns true <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> maps <a href='SkRect_Reference#SkRect'>SkRect</a> to another <a href='SkRect_Reference#SkRect'>SkRect</a>. If true, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is identity,
or scales, or rotates a multiple of 90 degrees, or mirrors on axes. In all
-cases, <a href='#Matrix'>Matrix</a> may also have translation. <a href='#Matrix'>Matrix</a> form is either:
+cases, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may also have translation. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> form is either:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| scale-x 0 translate-x |
| 0 scale-y translate-y |
| 0 0 1 |
-</pre>
or
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 0 rotate-x translate-x |
| rotate-y 0 translate-y |
| 0 0 1 |
-</pre>
for non-zero values of scale-x, scale-y, rotate-x, and rotate-y.
-Also called <a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a>; use the one that provides better inline
+Also called <a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a>(); use the one that provides better inline
documentation.
### Return Value
-true if <a href='#Matrix'>Matrix</a> maps one <a href='SkRect_Reference#Rect'>Rect</a> into another
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> maps one <a href='SkRect_Reference#SkRect'>SkRect</a> into another
### Example
@@ -630,32 +613,28 @@
bool <a href='#SkMatrix_preservesAxisAlignment'>preservesAxisAlignment</a>() const
</pre>
-Returns true <a href='#Matrix'>Matrix</a> maps <a href='SkRect_Reference#Rect'>Rect</a> to another <a href='SkRect_Reference#Rect'>Rect</a>. If true, <a href='#Matrix'>Matrix</a> is identity,
+Returns true <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> maps <a href='SkRect_Reference#SkRect'>SkRect</a> to another <a href='SkRect_Reference#SkRect'>SkRect</a>. If true, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is identity,
or scales, or rotates a multiple of 90 degrees, or mirrors on axes. In all
-cases, <a href='#Matrix'>Matrix</a> may also have translation. <a href='#Matrix'>Matrix</a> form is either:
+cases, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may also have translation. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> form is either:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| scale-x 0 translate-x |
| 0 scale-y translate-y |
| 0 0 1 |
-</pre>
or
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 0 rotate-x translate-x |
| rotate-y 0 translate-y |
| 0 0 1 |
-</pre>
for non-zero values of scale-x, scale-y, rotate-x, and rotate-y.
-Also called <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>; use the one that provides better inline
+Also called <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>(); use the one that provides better inline
documentation.
### Return Value
-true if <a href='#Matrix'>Matrix</a> maps one <a href='SkRect_Reference#Rect'>Rect</a> into another
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> maps one <a href='SkRect_Reference#SkRect'>SkRect</a> into another
### Example
@@ -684,20 +663,18 @@
bool <a href='#SkMatrix_hasPerspective'>hasPerspective</a>() const
</pre>
-Returns true if the matrix contains perspective elements. <a href='#Matrix'>Matrix</a> form is:
+Returns true if the <a href='SkMatrix_Reference#Matrix'>matrix</a> contains perspective elements. <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> form is:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| -- -- -- |
| -- -- -- |
| perspective-x perspective-y perspective-scale |
-</pre>
where perspective-x or perspective-y is non-zero, or perspective-scale is
not one. All other elements may have any value.
### Return Value
-true if <a href='#Matrix'>Matrix</a> is in most general form
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is in most general form
### Example
@@ -715,14 +692,14 @@
bool <a href='#SkMatrix_isSimilarity'>isSimilarity</a>(<a href='undocumented#SkScalar'>SkScalar</a> tol = <a href='undocumented#SK_ScalarNearlyZero'>SK ScalarNearlyZero</a>) const
</pre>
-Returns true if <a href='#Matrix'>Matrix</a> contains only translation, rotation, reflection, and
+Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains only translation, rotation, reflection, and
uniform scale.
-Returns false if <a href='#Matrix'>Matrix</a> contains different scales, skewing, perspective, or
-degenerate forms that collapse to a line or point.
+Returns false if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains different scales, skewing, perspective, or
+degenerate forms that collapse to a <a href='undocumented#Line'>line</a> or <a href='SkPoint_Reference#Point'>point</a>.
-Describes that the <a href='#Matrix'>Matrix</a> makes rendering with and without the matrix are
-visually alike; a transformed circle remains a circle. Mathematically, this is
-referred to as similarity of a <a href='undocumented#Euclidean_Space'>Euclidean Space</a>, or a similarity transformation.
+Describes that the <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> makes rendering with and without the <a href='SkMatrix_Reference#Matrix'>matrix</a> are
+visually alike; a transformed <a href='undocumented#Circle'>circle</a> remains a <a href='undocumented#Circle'>circle</a>. Mathematically, this is
+referred to as similarity of a <a href='undocumented#Euclidean_Space'>Euclidean space</a>, or a similarity transformation.
Preserves right angles, keeping the arms of the angle equal lengths.
@@ -735,7 +712,7 @@
### Return Value
-true if <a href='#Matrix'>Matrix</a> only rotates, uniformly scales, translates
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> only rotates, uniformly scales, translates
### Example
@@ -755,10 +732,10 @@
bool <a href='#SkMatrix_preservesRightAngles'>preservesRightAngles</a>(<a href='undocumented#SkScalar'>SkScalar</a> tol = <a href='undocumented#SK_ScalarNearlyZero'>SK ScalarNearlyZero</a>) const
</pre>
-Returns true if <a href='#Matrix'>Matrix</a> contains only translation, rotation, reflection, and
+Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains only translation, rotation, reflection, and
scale. Scale may differ along rotated axes.
-Returns false if <a href='#Matrix'>Matrix</a> skewing, perspective, or degenerate forms that collapse
-to a line or point.
+Returns false if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> skewing, perspective, or degenerate forms that collapse
+to a <a href='undocumented#Line'>line</a> or <a href='SkPoint_Reference#Point'>point</a>.
Preserves right angles, but not requiring that the arms of the angle
retain equal lengths.
@@ -772,7 +749,7 @@
### Return Value
-true if <a href='#Matrix'>Matrix</a> only rotates, scales, translates
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> only rotates, scales, translates
### Example
@@ -940,21 +917,6 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_array1_operator'>operator[](int index)</a> const
</pre>
-Returns one matrix value. Asserts if <a href='#SkMatrix_array_operator_index'>index</a> is out of range and SK_DEBUG is
-defined.
-
-### Parameters
-
-<table> <tr> <td><a name='SkMatrix_array_operator_index'><code><strong>index</strong></code></a></td>
- <td>one of: <a href='#SkMatrix_kMScaleX'>kMScaleX</a>, <a href='#SkMatrix_kMSkewX'>kMSkewX</a>, <a href='#SkMatrix_kMTransX'>kMTransX</a>, <a href='#SkMatrix_kMSkewY'>kMSkewY</a>, <a href='#SkMatrix_kMScaleY'>kMScaleY</a>, <a href='#SkMatrix_kMTransY'>kMTransY</a>,
-<a href='#SkMatrix_kMPersp0'>kMPersp0</a>, <a href='#SkMatrix_kMPersp1'>kMPersp1</a>, <a href='#SkMatrix_kMPersp2'>kMPersp2</a></td>
- </tr>
-</table>
-
-### Return Value
-
-value corresponding to <a href='#SkMatrix_array_operator_index'>index</a>
-
### Example
<div><fiddle-embed name="e8740493abdf0c6341762db9cee56b89">
@@ -980,20 +942,21 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_get'>get</a>(int index) const
</pre>
-Returns one matrix value. Asserts if <a href='#SkMatrix_get_index'>index</a> is out of range and SK_DEBUG is
+Returns one <a href='SkMatrix_Reference#Matrix'>matrix</a> value. Asserts if <a href='#SkMatrix_get()_index'>index</a> is out of range and SK_DEBUG is
defined.
### Parameters
<table> <tr> <td><a name='SkMatrix_get_index'><code><strong>index</strong></code></a></td>
- <td>one of: <a href='#SkMatrix_kMScaleX'>kMScaleX</a>, <a href='#SkMatrix_kMSkewX'>kMSkewX</a>, <a href='#SkMatrix_kMTransX'>kMTransX</a>, <a href='#SkMatrix_kMSkewY'>kMSkewY</a>, <a href='#SkMatrix_kMScaleY'>kMScaleY</a>, <a href='#SkMatrix_kMTransY'>kMTransY</a>,
-<a href='#SkMatrix_kMPersp0'>kMPersp0</a>, <a href='#SkMatrix_kMPersp1'>kMPersp1</a>, <a href='#SkMatrix_kMPersp2'>kMPersp2</a></td>
+ <td>one of: <a href='#SkMatrix_kMScaleX'>kMScaleX</a>, <a href='#SkMatrix_kMSkewX'>kMSkewX</a>, <a href='#SkMatrix_kMTransX'>kMTransX</a>, <a href='#SkMatrix_kMSkewY'>kMSkewY</a>, <a href='#SkMatrix_kMScaleY'>kMScaleY</a>, <a href='#SkMatrix_kMTransY'>kMTransY</a>,</td>
</tr>
</table>
+<a href='#SkMatrix_kMPersp0'>kMPersp0</a>, <a href='#SkMatrix_kMPersp1'>kMPersp1</a>, <a href='#SkMatrix_kMPersp2'>kMPersp2</a>
+
### Return Value
-value corresponding to <a href='#SkMatrix_get_index'>index</a>
+value corresponding to <a href='#SkMatrix_get()_index'>index</a>
### Example
@@ -1021,7 +984,7 @@
</pre>
Returns scale factor multiplied by x-axis input, contributing to x-axis output.
-With <a href='#SkMatrix_mapPoints'>mapPoints</a>, scales <a href='SkPoint_Reference#Point'>Points</a> along the x-axis.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), scales <a href='SkPoint_Reference#SkPoint'>SkPoint</a> along the x-axis.
### Return Value
@@ -1052,7 +1015,7 @@
</pre>
Returns scale factor multiplied by y-axis input, contributing to y-axis output.
-With <a href='#SkMatrix_mapPoints'>mapPoints</a>, scales <a href='SkPoint_Reference#Point'>Points</a> along the y-axis.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), scales <a href='SkPoint_Reference#SkPoint'>SkPoint</a> along the y-axis.
### Return Value
@@ -1083,8 +1046,8 @@
</pre>
Returns scale factor multiplied by x-axis input, contributing to y-axis output.
-With <a href='#SkMatrix_mapPoints'>mapPoints</a>, skews <a href='SkPoint_Reference#Point'>Points</a> along the y-axis.
-Skewing both axes can rotate <a href='SkPoint_Reference#Point'>Points</a>.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), skews <a href='SkPoint_Reference#SkPoint'>SkPoint</a> along the y-axis.
+Skewing both axes can rotate <a href='SkPoint_Reference#SkPoint'>SkPoint</a>.
### Return Value
@@ -1115,8 +1078,8 @@
</pre>
Returns scale factor multiplied by y-axis input, contributing to x-axis output.
-With <a href='#SkMatrix_mapPoints'>mapPoints</a>, skews <a href='SkPoint_Reference#Point'>Points</a> along the x-axis.
-Skewing both axes can rotate <a href='SkPoint_Reference#Point'>Points</a>.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), skews <a href='SkPoint_Reference#SkPoint'>SkPoint</a> along the x-axis.
+Skewing both axes can rotate <a href='SkPoint_Reference#SkPoint'>SkPoint</a>.
### Return Value
@@ -1147,7 +1110,7 @@
</pre>
Returns translation contributing to x-axis output.
-With <a href='#SkMatrix_mapPoints'>mapPoints</a>, moves <a href='SkPoint_Reference#Point'>Points</a> along the x-axis.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), moves <a href='SkPoint_Reference#SkPoint'>SkPoint</a> along the x-axis.
### Return Value
@@ -1178,7 +1141,7 @@
</pre>
Returns translation contributing to y-axis output.
-With <a href='#SkMatrix_mapPoints'>mapPoints</a>, moves <a href='SkPoint_Reference#Point'>Points</a> along the y-axis.
+With <a href='#SkMatrix_mapPoints'>mapPoints</a>(), moves <a href='SkPoint_Reference#SkPoint'>SkPoint</a> along the y-axis.
### Return Value
@@ -1252,24 +1215,6 @@
<a href='undocumented#SkScalar'>SkScalar</a>& <a href='#SkMatrix_array1_operator'>operator[](int index)</a>
</pre>
-Returns writable <a href='#Matrix'>Matrix</a> value. Asserts if <a href='#SkMatrix_array1_operator_index'>index</a> is out of range and SK_DEBUG is
-defined. Clears internal cache anticipating that caller will change <a href='#Matrix'>Matrix</a> value.
-
-Next call to read <a href='#Matrix'>Matrix</a> state may recompute cache; subsequent writes to <a href='#Matrix'>Matrix</a>
-value must be followed by <a href='#SkMatrix_dirtyMatrixTypeCache'>dirtyMatrixTypeCache</a>.
-
-### Parameters
-
-<table> <tr> <td><a name='SkMatrix_array1_operator_index'><code><strong>index</strong></code></a></td>
- <td>one of: <a href='#SkMatrix_kMScaleX'>kMScaleX</a>, <a href='#SkMatrix_kMSkewX'>kMSkewX</a>, <a href='#SkMatrix_kMTransX'>kMTransX</a>, <a href='#SkMatrix_kMSkewY'>kMSkewY</a>, <a href='#SkMatrix_kMScaleY'>kMScaleY</a>, <a href='#SkMatrix_kMTransY'>kMTransY</a>,
-<a href='#SkMatrix_kMPersp0'>kMPersp0</a>, <a href='#SkMatrix_kMPersp1'>kMPersp1</a>, <a href='#SkMatrix_kMPersp2'>kMPersp2</a></td>
- </tr>
-</table>
-
-### Return Value
-
-writable value corresponding to <a href='#SkMatrix_array1_operator_index'>index</a>
-
### Example
<div><fiddle-embed name="f4365ef332f51f7fd25040e0771ba9a2">
@@ -1299,17 +1244,22 @@
void <a href='#SkMatrix_set'>set</a>(int index, <a href='undocumented#SkScalar'>SkScalar</a> value)
</pre>
-Sets <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_set_value'>value</a>. Asserts if <a href='#SkMatrix_set_index'>index</a> is out of range and SK_DEBUG is
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_set()_value'>value</a>. Asserts if <a href='#SkMatrix_set()_index'>index</a> is out of range and SK_DEBUG is
defined. Safer than operator[]; internal cache is always maintained.
### Parameters
<table> <tr> <td><a name='SkMatrix_set_index'><code><strong>index</strong></code></a></td>
- <td>one of: <a href='#SkMatrix_kMScaleX'>kMScaleX</a>, <a href='#SkMatrix_kMSkewX'>kMSkewX</a>, <a href='#SkMatrix_kMTransX'>kMTransX</a>, <a href='#SkMatrix_kMSkewY'>kMSkewY</a>, <a href='#SkMatrix_kMScaleY'>kMScaleY</a>, <a href='#SkMatrix_kMTransY'>kMTransY</a>,
-<a href='#SkMatrix_kMPersp0'>kMPersp0</a>, <a href='#SkMatrix_kMPersp1'>kMPersp1</a>, <a href='#SkMatrix_kMPersp2'>kMPersp2</a></td>
+ <td>one of: <a href='#SkMatrix_kMScaleX'>kMScaleX</a>, <a href='#SkMatrix_kMSkewX'>kMSkewX</a>, <a href='#SkMatrix_kMTransX'>kMTransX</a>, <a href='#SkMatrix_kMSkewY'>kMSkewY</a>, <a href='#SkMatrix_kMScaleY'>kMScaleY</a>, <a href='#SkMatrix_kMTransY'>kMTransY</a>,</td>
</tr>
- <tr> <td><a name='SkMatrix_set_value'><code><strong>value</strong></code></a></td>
- <td><a href='undocumented#Scalar'>Scalar</a> to store in <a href='#Matrix'>Matrix</a></td>
+</table>
+
+<a href='#SkMatrix_kMPersp0'>kMPersp0</a>, <a href='#SkMatrix_kMPersp1'>kMPersp1</a>, <a href='#SkMatrix_kMPersp2'>kMPersp2</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkMatrix_set_value'><code><strong>value</strong></code></a></td>
+ <td><a href='undocumented#Scalar'>scalar</a> to store in <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
</tr>
</table>
@@ -1489,7 +1439,7 @@
void <a href='#SkMatrix_setPerspX'>setPerspX</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
</pre>
-Sets input x-axis perspective factor, which causes <a href='#SkMatrix_mapXY'>mapXY</a> to vary input x-axis values
+Sets input x-axis perspective factor, which causes <a href='#SkMatrix_mapXY'>mapXY</a>() to vary input x-axis values
inversely proportional to input y-axis values.
### Parameters
@@ -1515,7 +1465,7 @@
void <a href='#SkMatrix_setPerspY'>setPerspY</a>(<a href='undocumented#SkScalar'>SkScalar</a> v)
</pre>
-Sets input y-axis perspective factor, which causes <a href='#SkMatrix_mapXY'>mapXY</a> to vary input y-axis values
+Sets input y-axis perspective factor, which causes <a href='#SkMatrix_mapXY'>mapXY</a>() to vary input y-axis values
inversely proportional to input x-axis values.
### Parameters
@@ -1542,13 +1492,11 @@
<a href='undocumented#SkScalar'>SkScalar</a> transY, <a href='undocumented#SkScalar'>SkScalar</a> persp0, <a href='undocumented#SkScalar'>SkScalar</a> persp1, <a href='undocumented#SkScalar'>SkScalar</a> persp2)
</pre>
-Sets all values from parameters. Sets matrix to:
+Sets all values from parameters. Sets <a href='SkMatrix_Reference#Matrix'>matrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-| scaleX skewX transX |
-| skewY scaleY transY |
-| persp0 persp1 persp2 |
-</pre>
+| <a href='#SkMatrix_setAll_scaleX'>scaleX</a> <a href='#SkMatrix_setAll_skewX'>skewX</a> <a href='#SkMatrix_setAll_transX'>transX</a> |
+| <a href='#SkMatrix_setAll_skewY'>skewY</a> <a href='#SkMatrix_setAll_scaleY'>scaleY</a> <a href='#SkMatrix_setAll_transY'>transY</a> |
+| <a href='#SkMatrix_setAll_persp0'>persp0</a> <a href='#SkMatrix_setAll_persp1'>persp1</a> <a href='#SkMatrix_setAll_persp2'>persp2</a> |
### Parameters
@@ -1597,14 +1545,14 @@
void <a href='#SkMatrix_get9'>get9</a>(<a href='undocumented#SkScalar'>SkScalar</a> buffer[9]) const
</pre>
-Copies nine <a href='undocumented#Scalar'>Scalar</a> values contained by <a href='#Matrix'>Matrix</a> into <a href='#SkMatrix_get9_buffer'>buffer</a>, in member value
+Copies nine <a href='undocumented#Scalar'>scalar</a> values contained by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> into <a href='#SkMatrix_get9_buffer'>buffer</a>, in member value
ascending order: <a href='#SkMatrix_kMScaleX'>kMScaleX</a>, <a href='#SkMatrix_kMSkewX'>kMSkewX</a>, <a href='#SkMatrix_kMTransX'>kMTransX</a>, <a href='#SkMatrix_kMSkewY'>kMSkewY</a>, <a href='#SkMatrix_kMScaleY'>kMScaleY</a>, <a href='#SkMatrix_kMTransY'>kMTransY</a>,
<a href='#SkMatrix_kMPersp0'>kMPersp0</a>, <a href='#SkMatrix_kMPersp1'>kMPersp1</a>, <a href='#SkMatrix_kMPersp2'>kMPersp2</a>.
### Parameters
<table> <tr> <td><a name='SkMatrix_get9_buffer'><code><strong>buffer</strong></code></a></td>
- <td>storage for nine <a href='undocumented#Scalar'>Scalar</a> values</td>
+ <td>storage for nine <a href='undocumented#Scalar'>scalar</a> values</td>
</tr>
</table>
@@ -1634,26 +1582,24 @@
void <a href='#SkMatrix_set9'>set9</a>(const <a href='undocumented#SkScalar'>SkScalar</a> buffer[9])
</pre>
-Sets <a href='#Matrix'>Matrix</a> to nine <a href='undocumented#Scalar'>Scalar</a> values in <a href='#SkMatrix_set9_buffer'>buffer</a>, in member value ascending order:
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to nine <a href='undocumented#Scalar'>scalar</a> values in <a href='#SkMatrix_set9_buffer'>buffer</a>, in member value ascending order:
<a href='#SkMatrix_kMScaleX'>kMScaleX</a>, <a href='#SkMatrix_kMSkewX'>kMSkewX</a>, <a href='#SkMatrix_kMTransX'>kMTransX</a>, <a href='#SkMatrix_kMSkewY'>kMSkewY</a>, <a href='#SkMatrix_kMScaleY'>kMScaleY</a>, <a href='#SkMatrix_kMTransY'>kMTransY</a>, <a href='#SkMatrix_kMPersp0'>kMPersp0</a>, <a href='#SkMatrix_kMPersp1'>kMPersp1</a>,
<a href='#SkMatrix_kMPersp2'>kMPersp2</a>.
-Sets matrix to:
+Sets <a href='SkMatrix_Reference#Matrix'>matrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-| buffer[0] buffer[1] buffer[2] |
-| buffer[3] buffer[4] buffer[5] |
-| buffer[6] buffer[7] buffer[8] |
-</pre>
+| <a href='#SkMatrix_set9_buffer'>buffer</a>[0] <a href='#SkMatrix_set9_buffer'>buffer</a>[1] <a href='#SkMatrix_set9_buffer'>buffer</a>[2] |
+| <a href='#SkMatrix_set9_buffer'>buffer</a>[3] <a href='#SkMatrix_set9_buffer'>buffer</a>[4] <a href='#SkMatrix_set9_buffer'>buffer</a>[5] |
+| <a href='#SkMatrix_set9_buffer'>buffer</a>[6] <a href='#SkMatrix_set9_buffer'>buffer</a>[7] <a href='#SkMatrix_set9_buffer'>buffer</a>[8] |
-In the future, <a href='#SkMatrix_set9'>set9</a> followed by <a href='#SkMatrix_get9'>get9</a> may not return the same values. Since <a href='#Matrix'>Matrix</a>
+In the future, <a href='#SkMatrix_set9'>set9</a> followed by <a href='#SkMatrix_get9'>get9</a> may not return the same values. Since <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
maps non-homogeneous coordinates, scaling all nine values produces an equivalent
transformation, possibly improving precision.
### Parameters
<table> <tr> <td><a name='SkMatrix_set9_buffer'><code><strong>buffer</strong></code></a></td>
- <td>nine <a href='undocumented#Scalar'>Scalar</a> values</td>
+ <td>nine <a href='undocumented#Scalar'>scalar</a> values</td>
</tr>
</table>
@@ -1673,13 +1619,11 @@
void <a href='#SkMatrix_reset'>reset</a>()
</pre>
-Sets <a href='#Matrix'>Matrix</a> to identity; which has no effect on mapped <a href='SkPoint_Reference#Point'>Points</a>. Sets <a href='#Matrix'>Matrix</a> to:
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to identity; which has no effect on mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a>. Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 1 0 0 |
| 0 1 0 |
| 0 0 1 |
-</pre>
Also called <a href='#SkMatrix_setIdentity'>setIdentity</a>(); use the one that provides better inline
documentation.
@@ -1708,15 +1652,13 @@
void <a href='#SkMatrix_setIdentity'>setIdentity</a>()
</pre>
-Sets <a href='#Matrix'>Matrix</a> to identity; which has no effect on mapped <a href='SkPoint_Reference#Point'>Points</a>. Sets <a href='#Matrix'>Matrix</a> to:
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to identity; which has no effect on mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a>. Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 1 0 0 |
| 0 1 0 |
| 0 0 1 |
-</pre>
-Also called <a href='#SkMatrix_reset'>reset</a>(); use the one that provides better inline
+Also called <a href='#SkMatrix_reset'>reset()</a>; use the one that provides better inline
documentation.
### Example
@@ -1743,7 +1685,7 @@
void <a href='#SkMatrix_setTranslate'>setTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to translate by (<a href='#SkMatrix_setTranslate_dx'>dx</a>, <a href='#SkMatrix_setTranslate_dy'>dy</a>).
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to translate by (<a href='#SkMatrix_setTranslate_dx'>dx</a>, <a href='#SkMatrix_setTranslate_dy'>dy</a>).
### Parameters
@@ -1771,12 +1713,12 @@
void <a href='#SkMatrix_setTranslate'>setTranslate</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& v)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to translate by (<a href='#SkMatrix_setTranslate_2_v'>v</a>.fX, <a href='#SkMatrix_setTranslate_2_v'>v</a>.fY).
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to translate by (<a href='#SkMatrix_setTranslate_2_v'>v</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkMatrix_setTranslate_2_v'>v</a>.<a href='#SkPoint_fY'>fY</a>).
### Parameters
<table> <tr> <td><a name='SkMatrix_setTranslate_2_v'><code><strong>v</strong></code></a></td>
- <td><a href='SkPoint_Reference#Vector'>Vector</a> containing horizontal and vertical translation</td>
+ <td><a href='SkPoint_Reference#Vector'>vector</a> containing horizontal and vertical translation</td>
</tr>
</table>
@@ -1796,8 +1738,8 @@
void <a href='#SkMatrix_setScale'>setScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to scale by <a href='#SkMatrix_setScale_sx'>sx</a> and <a href='#SkMatrix_setScale_sy'>sy</a>, about a pivot point at (<a href='#SkMatrix_setScale_px'>px</a>, <a href='#SkMatrix_setScale_py'>py</a>).
-The pivot point is unchanged when mapped with <a href='#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to scale by <a href='#SkMatrix_setScale_sx'>sx</a> and <a href='#SkMatrix_setScale_sy'>sy</a>, about a pivot <a href='SkPoint_Reference#Point'>point</a> at (<a href='#SkMatrix_setScale_px'>px</a>, <a href='#SkMatrix_setScale_py'>py</a>).
+The pivot <a href='SkPoint_Reference#Point'>point</a> is unchanged when mapped with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
### Parameters
@@ -1808,10 +1750,10 @@
<td>vertical scale factor</td>
</tr>
<tr> <td><a name='SkMatrix_setScale_px'><code><strong>px</strong></code></a></td>
- <td>pivot x</td>
+ <td>pivot on x-axis</td>
</tr>
<tr> <td><a name='SkMatrix_setScale_py'><code><strong>py</strong></code></a></td>
- <td>pivot y</td>
+ <td>pivot on y-axis</td>
</tr>
</table>
@@ -1831,7 +1773,7 @@
void <a href='#SkMatrix_setScale'>setScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to scale by <a href='#SkMatrix_setScale_2_sx'>sx</a> and <a href='#SkMatrix_setScale_2_sy'>sy</a> about at pivot point at (0, 0).
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to scale by <a href='#SkMatrix_setScale_2_sx'>sx</a> and <a href='#SkMatrix_setScale_2_sy'>sy</a> about at pivot <a href='SkPoint_Reference#Point'>point</a> at (0, 0).
### Parameters
@@ -1859,8 +1801,8 @@
void <a href='#SkMatrix_setRotate'>setRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to rotate by <a href='#SkMatrix_setRotate_degrees'>degrees</a> about a pivot point at (<a href='#SkMatrix_setRotate_px'>px</a>, <a href='#SkMatrix_setRotate_py'>py</a>).
-The pivot point is unchanged when mapped with <a href='#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate by <a href='#SkMatrix_setRotate_degrees'>degrees</a> about a pivot <a href='SkPoint_Reference#Point'>point</a> at (<a href='#SkMatrix_setRotate_px'>px</a>, <a href='#SkMatrix_setRotate_py'>py</a>).
+The pivot <a href='SkPoint_Reference#Point'>point</a> is unchanged when mapped with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Positive <a href='#SkMatrix_setRotate_degrees'>degrees</a> rotates clockwise.
@@ -1870,10 +1812,10 @@
<td>angle of axes relative to upright axes</td>
</tr>
<tr> <td><a name='SkMatrix_setRotate_px'><code><strong>px</strong></code></a></td>
- <td>pivot x</td>
+ <td>pivot on x-axis</td>
</tr>
<tr> <td><a name='SkMatrix_setRotate_py'><code><strong>py</strong></code></a></td>
- <td>pivot y</td>
+ <td>pivot on y-axis</td>
</tr>
</table>
@@ -1893,7 +1835,7 @@
void <a href='#SkMatrix_setRotate'>setRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to rotate by <a href='#SkMatrix_setRotate_2_degrees'>degrees</a> about a pivot point at (0, 0).
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate by <a href='#SkMatrix_setRotate_2_degrees'>degrees</a> about a pivot <a href='SkPoint_Reference#Point'>point</a> at (0, 0).
Positive <a href='#SkMatrix_setRotate_2_degrees'>degrees</a> rotates clockwise.
### Parameters
@@ -1919,8 +1861,8 @@
void <a href='#SkMatrix_setSinCos'>setSinCos</a>(<a href='undocumented#SkScalar'>SkScalar</a> sinValue, <a href='undocumented#SkScalar'>SkScalar</a> cosValue, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to rotate by <a href='#SkMatrix_setSinCos_sinValue'>sinValue</a> and <a href='#SkMatrix_setSinCos_cosValue'>cosValue</a>, about a pivot point at (<a href='#SkMatrix_setSinCos_px'>px</a>, <a href='#SkMatrix_setSinCos_py'>py</a>).
-The pivot point is unchanged when mapped with <a href='#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate by <a href='#SkMatrix_setSinCos_sinValue'>sinValue</a> and <a href='#SkMatrix_setSinCos_cosValue'>cosValue</a>, about a pivot <a href='SkPoint_Reference#Point'>point</a> at (<a href='#SkMatrix_setSinCos_px'>px</a>, <a href='#SkMatrix_setSinCos_py'>py</a>).
+The pivot <a href='SkPoint_Reference#Point'>point</a> is unchanged when mapped with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
<a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkMatrix_setSinCos_sinValue'>sinValue</a>, <a href='#SkMatrix_setSinCos_cosValue'>cosValue</a>) describes the angle of rotation relative to (0, 1).
<a href='SkPoint_Reference#Vector'>Vector</a> length specifies scale.
@@ -1928,16 +1870,16 @@
### Parameters
<table> <tr> <td><a name='SkMatrix_setSinCos_sinValue'><code><strong>sinValue</strong></code></a></td>
- <td>rotation vector x-axis component</td>
+ <td>rotation <a href='SkPoint_Reference#Vector'>vector</a> x-axis component</td>
</tr>
<tr> <td><a name='SkMatrix_setSinCos_cosValue'><code><strong>cosValue</strong></code></a></td>
- <td>rotation vector y-axis component</td>
+ <td>rotation <a href='SkPoint_Reference#Vector'>vector</a> y-axis component</td>
</tr>
<tr> <td><a name='SkMatrix_setSinCos_px'><code><strong>px</strong></code></a></td>
- <td>pivot x-axis</td>
+ <td>pivot on x-axis</td>
</tr>
<tr> <td><a name='SkMatrix_setSinCos_py'><code><strong>py</strong></code></a></td>
- <td>pivot y-axis</td>
+ <td>pivot on y-axis</td>
</tr>
</table>
@@ -1957,7 +1899,7 @@
void <a href='#SkMatrix_setSinCos'>setSinCos</a>(<a href='undocumented#SkScalar'>SkScalar</a> sinValue, <a href='undocumented#SkScalar'>SkScalar</a> cosValue)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to rotate by <a href='#SkMatrix_setSinCos_2_sinValue'>sinValue</a> and <a href='#SkMatrix_setSinCos_2_cosValue'>cosValue</a>, about a pivot point at (0, 0).
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate by <a href='#SkMatrix_setSinCos_2_sinValue'>sinValue</a> and <a href='#SkMatrix_setSinCos_2_cosValue'>cosValue</a>, about a pivot <a href='SkPoint_Reference#Point'>point</a> at (0, 0).
<a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkMatrix_setSinCos_2_sinValue'>sinValue</a>, <a href='#SkMatrix_setSinCos_2_cosValue'>cosValue</a>) describes the angle of rotation relative to (0, 1).
<a href='SkPoint_Reference#Vector'>Vector</a> length specifies scale.
@@ -1965,10 +1907,10 @@
### Parameters
<table> <tr> <td><a name='SkMatrix_setSinCos_2_sinValue'><code><strong>sinValue</strong></code></a></td>
- <td>rotation vector x-axis component</td>
+ <td>rotation <a href='SkPoint_Reference#Vector'>vector</a> x-axis component</td>
</tr>
<tr> <td><a name='SkMatrix_setSinCos_2_cosValue'><code><strong>cosValue</strong></code></a></td>
- <td>rotation vector y-axis component</td>
+ <td>rotation <a href='SkPoint_Reference#Vector'>vector</a> y-axis component</td>
</tr>
</table>
@@ -1989,22 +1931,22 @@
<a href='#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_setRSXform'>setRSXform</a>(const <a href='undocumented#SkRSXform'>SkRSXform</a>& rsxForm)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to rotate, scale, and translate using a compressed matrix form.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to rotate, scale, and translate using a compressed <a href='SkMatrix_Reference#Matrix'>matrix</a> form.
-<a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.fSSin, <a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.fSCos) describes the angle of rotation relative
-to (0, 1). <a href='SkPoint_Reference#Vector'>Vector</a> length specifies scale. Mapped point is rotated and scaled
-by <a href='SkPoint_Reference#Vector'>Vector</a>, then translated by (<a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.fTx, <a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.fTy).
+<a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.<a href='#SkRSXform_fSSin'>fSSin</a>, <a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.<a href='#SkRSXform_fSCos'>fSCos</a>) describes the angle of rotation relative
+to (0, 1). <a href='SkPoint_Reference#Vector'>Vector</a> length specifies scale. Mapped <a href='SkPoint_Reference#Point'>point</a> is rotated and scaled
+by <a href='SkPoint_Reference#Vector'>vector</a>, then translated by (<a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.<a href='#SkRSXform_fTx'>fTx</a>, <a href='#SkMatrix_setRSXform_rsxForm'>rsxForm</a>.<a href='#SkRSXform_fTy'>fTy</a>).
### Parameters
<table> <tr> <td><a name='SkMatrix_setRSXform_rsxForm'><code><strong>rsxForm</strong></code></a></td>
- <td>compressed <a href='undocumented#RSXform'>RSXform</a> matrix</td>
+ <td>compressed <a href='undocumented#SkRSXform'>SkRSXform</a> <a href='SkMatrix_Reference#Matrix'>matrix</a></td>
</tr>
</table>
### Return Value
-reference to <a href='#Matrix'>Matrix</a>
+reference to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
### Example
@@ -2023,8 +1965,8 @@
void <a href='#SkMatrix_setSkew'>setSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to skew by <a href='#SkMatrix_setSkew_kx'>kx</a> and <a href='#SkMatrix_setSkew_ky'>ky</a>, about a pivot point at (<a href='#SkMatrix_setSkew_px'>px</a>, <a href='#SkMatrix_setSkew_py'>py</a>).
-The pivot point is unchanged when mapped with <a href='#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to skew by <a href='#SkMatrix_setSkew_kx'>kx</a> and <a href='#SkMatrix_setSkew_ky'>ky</a>, about a pivot <a href='SkPoint_Reference#Point'>point</a> at (<a href='#SkMatrix_setSkew_px'>px</a>, <a href='#SkMatrix_setSkew_py'>py</a>).
+The pivot <a href='SkPoint_Reference#Point'>point</a> is unchanged when mapped with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
### Parameters
@@ -2035,10 +1977,10 @@
<td>vertical skew factor</td>
</tr>
<tr> <td><a name='SkMatrix_setSkew_px'><code><strong>px</strong></code></a></td>
- <td>pivot x</td>
+ <td>pivot on x-axis</td>
</tr>
<tr> <td><a name='SkMatrix_setSkew_py'><code><strong>py</strong></code></a></td>
- <td>pivot y</td>
+ <td>pivot on y-axis</td>
</tr>
</table>
@@ -2058,7 +2000,7 @@
void <a href='#SkMatrix_setSkew'>setSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to skew by <a href='#SkMatrix_setSkew_2_kx'>kx</a> and <a href='#SkMatrix_setSkew_2_ky'>ky</a>, about a pivot point at (0, 0).
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to skew by <a href='#SkMatrix_setSkew_2_kx'>kx</a> and <a href='#SkMatrix_setSkew_2_ky'>ky</a>, about a pivot <a href='SkPoint_Reference#Point'>point</a> at (0, 0).
### Parameters
@@ -2086,31 +2028,27 @@
void <a href='#SkMatrix_setConcat'>setConcat</a>(const <a href='#SkMatrix'>SkMatrix</a>& a, const <a href='#SkMatrix'>SkMatrix</a>& b)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_setConcat_a'>a</a> multiplied by <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_setConcat_b'>b</a>. Either <a href='#SkMatrix_setConcat_a'>a</a> or <a href='#SkMatrix_setConcat_b'>b</a> may be this.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_setConcat_a'>a</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_setConcat_b'>b</a>. Either <a href='#SkMatrix_setConcat_a'>a</a> or <a href='#SkMatrix_setConcat_b'>b</a> may be this.
Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | J K L |
-a = | D E F |, b = | M N O |
- | G H I | | P Q R |
-</pre>
+| A B C | | J K L |
+<a href='#SkMatrix_setConcat_a'>a</a> = | D E F |, <a href='#SkMatrix_setConcat_b'>b</a> = | M N O |
+| G H <a href='#SkMatrix_I'>I</a> | | P Q R |
-sets <a href='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
-a * b = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
- | G H I | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
-</pre>
+| A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
+<a href='#SkMatrix_setConcat_a'>a</a> * <a href='#SkMatrix_setConcat_b'>b</a> = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
+| G H <a href='#SkMatrix_I'>I</a> | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
### Parameters
<table> <tr> <td><a name='SkMatrix_setConcat_a'><code><strong>a</strong></code></a></td>
- <td><a href='#Matrix'>Matrix</a> on left side of multiply expression</td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on left side of multiply expression</td>
</tr>
<tr> <td><a name='SkMatrix_setConcat_b'><code><strong>b</strong></code></a></td>
- <td><a href='#Matrix'>Matrix</a> on right side of multiply expression</td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on right side of multiply expression</td>
</tr>
</table>
@@ -2132,32 +2070,28 @@
void <a href='#SkMatrix_preTranslate'>preTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> constructed from translation (<a href='#SkMatrix_preTranslate_dx'>dx</a>, <a href='#SkMatrix_preTranslate_dy'>dy</a>).
-This can be thought of as moving the point to be mapped before applying <a href='#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from translation (<a href='#SkMatrix_preTranslate_dx'>dx</a>, <a href='#SkMatrix_preTranslate_dy'>dy</a>).
+This can be thought of as moving the <a href='SkPoint_Reference#Point'>point</a> to be mapped before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | 1 0 dx |
-Matrix = | D E F |, T(dx, dy) = | 0 1 dy |
- | G H I | | 0 0 1 |
-</pre>
+| A B C | | 1 0 <a href='#SkMatrix_preTranslate_dx'>dx</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, T(<a href='#SkMatrix_preTranslate_dx'>dx</a>, <a href='#SkMatrix_preTranslate_dy'>dy</a>) = | 0 1 <a href='#SkMatrix_preTranslate_dy'>dy</a> |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
-sets <a href='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | 1 0 dx | | A B A*dx+B*dy+C |
-Matrix * T(dx, dy) = | D E F | | 0 1 dy | = | D E D*dx+E*dy+F |
- | G H I | | 0 0 1 | | G H G*dx+H*dy+I |
-</pre>
+| A B C | | 1 0 <a href='#SkMatrix_preTranslate_dx'>dx</a> | | A B A*<a href='#SkMatrix_preTranslate_dx'>dx</a>+B*<a href='#SkMatrix_preTranslate_dy'>dy</a>+C |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * T(<a href='#SkMatrix_preTranslate_dx'>dx</a>, <a href='#SkMatrix_preTranslate_dy'>dy</a>) = | D E F | | 0 1 <a href='#SkMatrix_preTranslate_dy'>dy</a> | = | D E D*<a href='#SkMatrix_preTranslate_dx'>dx</a>+E*<a href='#SkMatrix_preTranslate_dy'>dy</a>+F |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | G H G*<a href='#SkMatrix_preTranslate_dx'>dx</a>+H*<a href='#SkMatrix_preTranslate_dy'>dy</a>+<a href='#SkMatrix_I'>I</a> |
### Parameters
<table> <tr> <td><a name='SkMatrix_preTranslate_dx'><code><strong>dx</strong></code></a></td>
- <td>x-axis translation before applying <a href='#Matrix'>Matrix</a></td>
+ <td>x-axis translation before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
</tr>
<tr> <td><a name='SkMatrix_preTranslate_dy'><code><strong>dy</strong></code></a></td>
- <td>y-axis translation before applying <a href='#Matrix'>Matrix</a></td>
+ <td>y-axis translation before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
</tr>
</table>
@@ -2177,32 +2111,26 @@
void <a href='#SkMatrix_preScale'>preScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> constructed from scaling by (<a href='#SkMatrix_preScale_sx'>sx</a>, <a href='#SkMatrix_preScale_sy'>sy</a>)
-about pivot point (<a href='#SkMatrix_preScale_px'>px</a>, <a href='#SkMatrix_preScale_py'>py</a>).
-This can be thought of as scaling about a pivot point before applying <a href='#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from scaling by (<a href='#SkMatrix_preScale_sx'>sx</a>, <a href='#SkMatrix_preScale_sy'>sy</a>)
+about pivot <a href='SkPoint_Reference#Point'>point</a> (<a href='#SkMatrix_preScale_px'>px</a>, <a href='#SkMatrix_preScale_py'>py</a>).
+This can be thought of as scaling about a pivot <a href='SkPoint_Reference#Point'>point</a> before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | sx 0 dx |
-Matrix = | D E F |, S(sx, sy, px, py) = | 0 sy dy |
- | G H I | | 0 0 1 |
-</pre>
+| A B C | | <a href='#SkMatrix_preScale_sx'>sx</a> 0 dx |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, S(<a href='#SkMatrix_preScale_sx'>sx</a>, <a href='#SkMatrix_preScale_sy'>sy</a>, <a href='#SkMatrix_preScale_px'>px</a>, <a href='#SkMatrix_preScale_py'>py</a>) = | 0 <a href='#SkMatrix_preScale_sy'>sy</a> dy |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
where
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-dx = px - sx * px
-dy = py - sy * py
-</pre>
+dx = <a href='#SkMatrix_preScale_px'>px</a> - <a href='#SkMatrix_preScale_sx'>sx</a> * <a href='#SkMatrix_preScale_px'>px</a>
+dy = <a href='#SkMatrix_preScale_py'>py</a> - <a href='#SkMatrix_preScale_sy'>sy</a> * <a href='#SkMatrix_preScale_py'>py</a>
-sets <a href='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | sx 0 dx | | A*sx B*sy A*dx+B*dy+C |
-Matrix * S(sx, sy, px, py) = | D E F | | 0 sy dy | = | D*sx E*sy D*dx+E*dy+F |
- | G H I | | 0 0 1 | | G*sx H*sy G*dx+H*dy+I |
-</pre>
+| A B C | | <a href='#SkMatrix_preScale_sx'>sx</a> 0 dx | | A*<a href='#SkMatrix_preScale_sx'>sx</a> B*<a href='#SkMatrix_preScale_sy'>sy</a> A*dx+B*dy+C |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * S(<a href='#SkMatrix_preScale_sx'>sx</a>, <a href='#SkMatrix_preScale_sy'>sy</a>, <a href='#SkMatrix_preScale_px'>px</a>, <a href='#SkMatrix_preScale_py'>py</a>) = | D E F | | 0 <a href='#SkMatrix_preScale_sy'>sy</a> dy | = | D*<a href='#SkMatrix_preScale_sx'>sx</a> E*<a href='#SkMatrix_preScale_sy'>sy</a> D*dx+E*dy+F |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | G*<a href='#SkMatrix_preScale_sx'>sx</a> H*<a href='#SkMatrix_preScale_sy'>sy</a> G*dx+H*dy+<a href='#SkMatrix_I'>I</a> |
### Parameters
@@ -2213,10 +2141,10 @@
<td>vertical scale factor</td>
</tr>
<tr> <td><a name='SkMatrix_preScale_px'><code><strong>px</strong></code></a></td>
- <td>pivot x</td>
+ <td>pivot on x-axis</td>
</tr>
<tr> <td><a name='SkMatrix_preScale_py'><code><strong>py</strong></code></a></td>
- <td>pivot y</td>
+ <td>pivot on y-axis</td>
</tr>
</table>
@@ -2236,25 +2164,21 @@
void <a href='#SkMatrix_preScale'>preScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> constructed from scaling by (<a href='#SkMatrix_preScale_2_sx'>sx</a>, <a href='#SkMatrix_preScale_2_sy'>sy</a>)
-about pivot point (0, 0).
-This can be thought of as scaling about the origin before applying <a href='#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from scaling by (<a href='#SkMatrix_preScale_2_sx'>sx</a>, <a href='#SkMatrix_preScale_2_sy'>sy</a>)
+about pivot <a href='SkPoint_Reference#Point'>point</a> (0, 0).
+This can be thought of as scaling about the origin before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | sx 0 0 |
-Matrix = | D E F |, S(sx, sy) = | 0 sy 0 |
- | G H I | | 0 0 1 |
-</pre>
+| A B C | | <a href='#SkMatrix_preScale_2_sx'>sx</a> 0 0 |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, S(<a href='#SkMatrix_preScale_2_sx'>sx</a>, <a href='#SkMatrix_preScale_2_sy'>sy</a>) = | 0 <a href='#SkMatrix_preScale_2_sy'>sy</a> 0 |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
-sets <a href='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | sx 0 0 | | A*sx B*sy C |
-Matrix * S(sx, sy) = | D E F | | 0 sy 0 | = | D*sx E*sy F |
- | G H I | | 0 0 1 | | G*sx H*sy I |
-</pre>
+| A B C | | <a href='#SkMatrix_preScale_2_sx'>sx</a> 0 0 | | A*<a href='#SkMatrix_preScale_2_sx'>sx</a> B*<a href='#SkMatrix_preScale_2_sy'>sy</a> C |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * S(<a href='#SkMatrix_preScale_2_sx'>sx</a>, <a href='#SkMatrix_preScale_2_sy'>sy</a>) = | D E F | | 0 <a href='#SkMatrix_preScale_2_sy'>sy</a> 0 | = | D*<a href='#SkMatrix_preScale_2_sx'>sx</a> E*<a href='#SkMatrix_preScale_2_sy'>sy</a> F |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | G*<a href='#SkMatrix_preScale_2_sx'>sx</a> H*<a href='#SkMatrix_preScale_2_sy'>sy</a> <a href='#SkMatrix_I'>I</a> |
### Parameters
@@ -2282,36 +2206,30 @@
void <a href='#SkMatrix_preRotate'>preRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> constructed from rotating by <a href='#SkMatrix_preRotate_degrees'>degrees</a>
-about pivot point (<a href='#SkMatrix_preRotate_px'>px</a>, <a href='#SkMatrix_preRotate_py'>py</a>).
-This can be thought of as rotating about a pivot point before applying <a href='#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from rotating by <a href='#SkMatrix_preRotate_degrees'>degrees</a>
+about pivot <a href='SkPoint_Reference#Point'>point</a> (<a href='#SkMatrix_preRotate_px'>px</a>, <a href='#SkMatrix_preRotate_py'>py</a>).
+This can be thought of as rotating about a pivot <a href='SkPoint_Reference#Point'>point</a> before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Positive <a href='#SkMatrix_preRotate_degrees'>degrees</a> rotates clockwise.
Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | c -s dx |
-Matrix = | D E F |, R(degrees, px, py) = | s c dy |
- | G H I | | 0 0 1 |
-</pre>
+| A B C | | c -s dx |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, R(<a href='#SkMatrix_preRotate_degrees'>degrees</a>, <a href='#SkMatrix_preRotate_px'>px</a>, <a href='#SkMatrix_preRotate_py'>py</a>) = | s c dy |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
where
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-c = cos(degrees)
-s = sin(degrees)
-dx = s * py + (1 - c) * px
-dy = -s * px + (1 - c) * py
-</pre>
+c = cos(<a href='#SkMatrix_preRotate_degrees'>degrees</a>)
+s = sin(<a href='#SkMatrix_preRotate_degrees'>degrees</a>)
+dx = s * <a href='#SkMatrix_preRotate_py'>py</a> + (1 - c) * <a href='#SkMatrix_preRotate_px'>px</a>
+dy = -s * <a href='#SkMatrix_preRotate_px'>px</a> + (1 - c) * <a href='#SkMatrix_preRotate_py'>py</a>
-sets <a href='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | c -s dx | | Ac+Bs -As+Bc A*dx+B*dy+C |
-Matrix * R(degrees, px, py) = | D E F | | s c dy | = | Dc+Es -Ds+Ec D*dx+E*dy+F |
- | G H I | | 0 0 1 | | Gc+Hs -Gs+Hc G*dx+H*dy+I |
-</pre>
+| A B C | | c -s dx | | Ac+Bs -As+Bc A*dx+B*dy+C |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * R(<a href='#SkMatrix_preRotate_degrees'>degrees</a>, <a href='#SkMatrix_preRotate_px'>px</a>, <a href='#SkMatrix_preRotate_py'>py</a>) = | D E F | | s c dy | = | Dc+Es -Ds+Ec D*dx+E*dy+F |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | Gc+Hs -Gs+Hc G*dx+H*dy+<a href='#SkMatrix_I'>I</a> |
### Parameters
@@ -2319,10 +2237,10 @@
<td>angle of axes relative to upright axes</td>
</tr>
<tr> <td><a name='SkMatrix_preRotate_px'><code><strong>px</strong></code></a></td>
- <td>pivot x</td>
+ <td>pivot on x-axis</td>
</tr>
<tr> <td><a name='SkMatrix_preRotate_py'><code><strong>py</strong></code></a></td>
- <td>pivot y</td>
+ <td>pivot on y-axis</td>
</tr>
</table>
@@ -2342,34 +2260,28 @@
void <a href='#SkMatrix_preRotate'>preRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> constructed from rotating by <a href='#SkMatrix_preRotate_2_degrees'>degrees</a>
-about pivot point (0, 0).
-This can be thought of as rotating about the origin before applying <a href='#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from rotating by <a href='#SkMatrix_preRotate_2_degrees'>degrees</a>
+about pivot <a href='SkPoint_Reference#Point'>point</a> (0, 0).
+This can be thought of as rotating about the origin before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Positive <a href='#SkMatrix_preRotate_2_degrees'>degrees</a> rotates clockwise.
Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | c -s 0 |
-Matrix = | D E F |, R(degrees, px, py) = | s c 0 |
- | G H I | | 0 0 1 |
-</pre>
+| A B C | | c -s 0 |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, R(<a href='#SkMatrix_preRotate_2_degrees'>degrees</a>, px, py) = | s c 0 |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
where
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-c = cos(degrees)
-s = sin(degrees)
-</pre>
+c = cos(<a href='#SkMatrix_preRotate_2_degrees'>degrees</a>)
+s = sin(<a href='#SkMatrix_preRotate_2_degrees'>degrees</a>)
-sets <a href='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | c -s 0 | | Ac+Bs -As+Bc C |
-Matrix * R(degrees, px, py) = | D E F | | s c 0 | = | Dc+Es -Ds+Ec F |
- | G H I | | 0 0 1 | | Gc+Hs -Gs+Hc I |
-</pre>
+| A B C | | c -s 0 | | Ac+Bs -As+Bc C |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * R(<a href='#SkMatrix_preRotate_2_degrees'>degrees</a>, px, py) = | D E F | | s c 0 | = | Dc+Es -Ds+Ec F |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | Gc+Hs -Gs+Hc <a href='#SkMatrix_I'>I</a> |
### Parameters
@@ -2394,32 +2306,26 @@
void <a href='#SkMatrix_preSkew'>preSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> constructed from skewing by (<a href='#SkMatrix_preSkew_kx'>kx</a>, <a href='#SkMatrix_preSkew_ky'>ky</a>)
-about pivot point (<a href='#SkMatrix_preSkew_px'>px</a>, <a href='#SkMatrix_preSkew_py'>py</a>).
-This can be thought of as skewing about a pivot point before applying <a href='#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from skewing by (<a href='#SkMatrix_preSkew_kx'>kx</a>, <a href='#SkMatrix_preSkew_ky'>ky</a>)
+about pivot <a href='SkPoint_Reference#Point'>point</a> (<a href='#SkMatrix_preSkew_px'>px</a>, <a href='#SkMatrix_preSkew_py'>py</a>).
+This can be thought of as skewing about a pivot <a href='SkPoint_Reference#Point'>point</a> before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | 1 kx dx |
-Matrix = | D E F |, K(kx, ky, px, py) = | ky 1 dy |
- | G H I | | 0 0 1 |
-</pre>
+| A B C | | 1 <a href='#SkMatrix_preSkew_kx'>kx</a> dx |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, K(<a href='#SkMatrix_preSkew_kx'>kx</a>, <a href='#SkMatrix_preSkew_ky'>ky</a>, <a href='#SkMatrix_preSkew_px'>px</a>, <a href='#SkMatrix_preSkew_py'>py</a>) = | <a href='#SkMatrix_preSkew_ky'>ky</a> 1 dy |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
where
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-dx = -kx * py
-dy = -ky * px
-</pre>
+dx = -<a href='#SkMatrix_preSkew_kx'>kx</a> * <a href='#SkMatrix_preSkew_py'>py</a>
+dy = -<a href='#SkMatrix_preSkew_ky'>ky</a> * <a href='#SkMatrix_preSkew_px'>px</a>
-sets <a href='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | 1 kx dx | | A+B*ky A*kx+B A*dx+B*dy+C |
-Matrix * K(kx, ky, px, py) = | D E F | | ky 1 dy | = | D+E*ky D*kx+E D*dx+E*dy+F |
- | G H I | | 0 0 1 | | G+H*ky G*kx+H G*dx+H*dy+I |
-</pre>
+| A B C | | 1 <a href='#SkMatrix_preSkew_kx'>kx</a> dx | | A+B*<a href='#SkMatrix_preSkew_ky'>ky</a> A*<a href='#SkMatrix_preSkew_kx'>kx</a>+B A*dx+B*dy+C |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * K(<a href='#SkMatrix_preSkew_kx'>kx</a>, <a href='#SkMatrix_preSkew_ky'>ky</a>, <a href='#SkMatrix_preSkew_px'>px</a>, <a href='#SkMatrix_preSkew_py'>py</a>) = | D E F | | <a href='#SkMatrix_preSkew_ky'>ky</a> 1 dy | = | D+E*<a href='#SkMatrix_preSkew_ky'>ky</a> D*<a href='#SkMatrix_preSkew_kx'>kx</a>+E D*dx+E*dy+F |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | G+H*<a href='#SkMatrix_preSkew_ky'>ky</a> G*<a href='#SkMatrix_preSkew_kx'>kx</a>+H G*dx+H*dy+<a href='#SkMatrix_I'>I</a> |
### Parameters
@@ -2430,10 +2336,10 @@
<td>vertical skew factor</td>
</tr>
<tr> <td><a name='SkMatrix_preSkew_px'><code><strong>px</strong></code></a></td>
- <td>pivot x</td>
+ <td>pivot on x-axis</td>
</tr>
<tr> <td><a name='SkMatrix_preSkew_py'><code><strong>py</strong></code></a></td>
- <td>pivot y</td>
+ <td>pivot on y-axis</td>
</tr>
</table>
@@ -2453,25 +2359,21 @@
void <a href='#SkMatrix_preSkew'>preSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> constructed from skewing by (<a href='#SkMatrix_preSkew_2_kx'>kx</a>, <a href='#SkMatrix_preSkew_2_ky'>ky</a>)
-about pivot point (0, 0).
-This can be thought of as skewing about the origin before applying <a href='#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from skewing by (<a href='#SkMatrix_preSkew_2_kx'>kx</a>, <a href='#SkMatrix_preSkew_2_ky'>ky</a>)
+about pivot <a href='SkPoint_Reference#Point'>point</a> (0, 0).
+This can be thought of as skewing about the origin before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | 1 kx 0 |
-Matrix = | D E F |, K(kx, ky) = | ky 1 0 |
- | G H I | | 0 0 1 |
-</pre>
+| A B C | | 1 <a href='#SkMatrix_preSkew_2_kx'>kx</a> 0 |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, K(<a href='#SkMatrix_preSkew_2_kx'>kx</a>, <a href='#SkMatrix_preSkew_2_ky'>ky</a>) = | <a href='#SkMatrix_preSkew_2_ky'>ky</a> 1 0 |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 |
-sets <a href='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | 1 kx 0 | | A+B*ky A*kx+B C |
-Matrix * K(kx, ky) = | D E F | | ky 1 0 | = | D+E*ky D*kx+E F |
- | G H I | | 0 0 1 | | G+H*ky G*kx+H I |
-</pre>
+| A B C | | 1 <a href='#SkMatrix_preSkew_2_kx'>kx</a> 0 | | A+B*<a href='#SkMatrix_preSkew_2_ky'>ky</a> A*<a href='#SkMatrix_preSkew_2_kx'>kx</a>+B C |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * K(<a href='#SkMatrix_preSkew_2_kx'>kx</a>, <a href='#SkMatrix_preSkew_2_ky'>ky</a>) = | D E F | | <a href='#SkMatrix_preSkew_2_ky'>ky</a> 1 0 | = | D+E*<a href='#SkMatrix_preSkew_2_ky'>ky</a> D*<a href='#SkMatrix_preSkew_2_kx'>kx</a>+E F |
+| G H <a href='#SkMatrix_I'>I</a> | | 0 0 1 | | G+H*<a href='#SkMatrix_preSkew_2_ky'>ky</a> G*<a href='#SkMatrix_preSkew_2_kx'>kx</a>+H <a href='#SkMatrix_I'>I</a> |
### Parameters
@@ -2499,35 +2401,31 @@
void <a href='#SkMatrix_preConcat'>preConcat</a>(const <a href='#SkMatrix'>SkMatrix</a>& other)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> multiplied by <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_preConcat_other'>other</a>.
-This can be thought of mapping by <a href='#SkMatrix_preConcat_other'>other</a> before applying <a href='#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_preConcat_other'>other</a>.
+This can be thought of mapping by <a href='#SkMatrix_preConcat_other'>other</a> before applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | J K L |
-Matrix = | D E F |, other = | M N O |
- | G H I | | P Q R |
-</pre>
+| A B C | | J K L |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, <a href='#SkMatrix_preConcat_other'>other</a> = | M N O |
+| G H <a href='#SkMatrix_I'>I</a> | | P Q R |
-sets <a href='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
-Matrix * other = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
- | G H I | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
-</pre>
+| A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='#SkMatrix_preConcat_other'>other</a> = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
+| G H <a href='#SkMatrix_I'>I</a> | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
### Parameters
<table> <tr> <td><a name='SkMatrix_preConcat_other'><code><strong>other</strong></code></a></td>
- <td><a href='#Matrix'>Matrix</a> on right side of multiply expression</td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on right side of multiply expression</td>
</tr>
</table>
### Example
-<div><fiddle-embed name="b07e62298e7b0ab5683db199faffceb2"><div><a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a> creates perspective matrices, one the inverse of the <a href='#SkMatrix_preConcat_other'>other</a>.
+<div><fiddle-embed name="b07e62298e7b0ab5683db199faffceb2"><div><a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a> creates perspective matrices, one the inverse of the other.
Multiplying the matrix by its inverse turns into an identity matrix.
</div></fiddle-embed></div>
@@ -2543,32 +2441,28 @@
void <a href='#SkMatrix_postTranslate'>postTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from translation (<a href='#SkMatrix_postTranslate_dx'>dx</a>, <a href='#SkMatrix_postTranslate_dy'>dy</a>) multiplied by <a href='#Matrix'>Matrix</a>.
-This can be thought of as moving the point to be mapped after applying <a href='#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from translation (<a href='#SkMatrix_postTranslate_dx'>dx</a>, <a href='#SkMatrix_postTranslate_dy'>dy</a>) multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+This can be thought of as moving the <a href='SkPoint_Reference#Point'>point</a> to be mapped after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | J K L | | 1 0 dx |
-Matrix = | M N O |, T(dx, dy) = | 0 1 dy |
- | P Q R | | 0 0 1 |
-</pre>
+| J K L | | 1 0 <a href='#SkMatrix_postTranslate_dx'>dx</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, T(<a href='#SkMatrix_postTranslate_dx'>dx</a>, <a href='#SkMatrix_postTranslate_dy'>dy</a>) = | 0 1 <a href='#SkMatrix_postTranslate_dy'>dy</a> |
+| P Q R | | 0 0 1 |
-sets <a href='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | 1 0 dx | | J K L | | J+dx*P K+dx*Q L+dx*R |
-T(dx, dy) * Matrix = | 0 1 dy | | M N O | = | M+dy*P N+dy*Q O+dy*R |
- | 0 0 1 | | P Q R | | P Q R |
-</pre>
+| 1 0 <a href='#SkMatrix_postTranslate_dx'>dx</a> | | J K L | | J+<a href='#SkMatrix_postTranslate_dx'>dx</a>*P K+<a href='#SkMatrix_postTranslate_dx'>dx</a>*Q L+<a href='#SkMatrix_postTranslate_dx'>dx</a>*R |
+T(<a href='#SkMatrix_postTranslate_dx'>dx</a>, <a href='#SkMatrix_postTranslate_dy'>dy</a>) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | 0 1 <a href='#SkMatrix_postTranslate_dy'>dy</a> | | M N O | = | M+<a href='#SkMatrix_postTranslate_dy'>dy</a>*P N+<a href='#SkMatrix_postTranslate_dy'>dy</a>*Q O+<a href='#SkMatrix_postTranslate_dy'>dy</a>*R |
+| 0 0 1 | | P Q R | | P Q R |
### Parameters
<table> <tr> <td><a name='SkMatrix_postTranslate_dx'><code><strong>dx</strong></code></a></td>
- <td>x-axis translation after applying <a href='#Matrix'>Matrix</a></td>
+ <td>x-axis translation after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
</tr>
<tr> <td><a name='SkMatrix_postTranslate_dy'><code><strong>dy</strong></code></a></td>
- <td>y-axis translation after applying <a href='#Matrix'>Matrix</a></td>
+ <td>y-axis translation after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a></td>
</tr>
</table>
@@ -2589,32 +2483,26 @@
void <a href='#SkMatrix_postScale'>postScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from scaling by (<a href='#SkMatrix_postScale_sx'>sx</a>, <a href='#SkMatrix_postScale_sy'>sy</a>) about pivot point
-(<a href='#SkMatrix_postScale_px'>px</a>, <a href='#SkMatrix_postScale_py'>py</a>), multiplied by <a href='#Matrix'>Matrix</a>.
-This can be thought of as scaling about a pivot point after applying <a href='#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from scaling by (<a href='#SkMatrix_postScale_sx'>sx</a>, <a href='#SkMatrix_postScale_sy'>sy</a>) about pivot <a href='SkPoint_Reference#Point'>point</a>
+(<a href='#SkMatrix_postScale_px'>px</a>, <a href='#SkMatrix_postScale_py'>py</a>), multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+This can be thought of as scaling about a pivot <a href='SkPoint_Reference#Point'>point</a> after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | J K L | | sx 0 dx |
-Matrix = | M N O |, S(sx, sy, px, py) = | 0 sy dy |
- | P Q R | | 0 0 1 |
-</pre>
+| J K L | | <a href='#SkMatrix_postScale_sx'>sx</a> 0 dx |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, S(<a href='#SkMatrix_postScale_sx'>sx</a>, <a href='#SkMatrix_postScale_sy'>sy</a>, <a href='#SkMatrix_postScale_px'>px</a>, <a href='#SkMatrix_postScale_py'>py</a>) = | 0 <a href='#SkMatrix_postScale_sy'>sy</a> dy |
+| P Q R | | 0 0 1 |
where
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-dx = px - sx * px
-dy = py - sy * py
-</pre>
+dx = <a href='#SkMatrix_postScale_px'>px</a> - <a href='#SkMatrix_postScale_sx'>sx</a> * <a href='#SkMatrix_postScale_px'>px</a>
+dy = <a href='#SkMatrix_postScale_py'>py</a> - <a href='#SkMatrix_postScale_sy'>sy</a> * <a href='#SkMatrix_postScale_py'>py</a>
-sets <a href='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | sx 0 dx | | J K L | | sx*J+dx*P sx*K+dx*Q sx*L+dx+R |
-S(sx, sy, px, py) * Matrix = | 0 sy dy | | M N O | = | sy*M+dy*P sy*N+dy*Q sy*O+dy*R |
- | 0 0 1 | | P Q R | | P Q R |
-</pre>
+| <a href='#SkMatrix_postScale_sx'>sx</a> 0 dx | | J K L | | <a href='#SkMatrix_postScale_sx'>sx</a>*J+dx*P <a href='#SkMatrix_postScale_sx'>sx</a>*K+dx*Q <a href='#SkMatrix_postScale_sx'>sx</a>*L+dx+R |
+S(<a href='#SkMatrix_postScale_sx'>sx</a>, <a href='#SkMatrix_postScale_sy'>sy</a>, <a href='#SkMatrix_postScale_px'>px</a>, <a href='#SkMatrix_postScale_py'>py</a>) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | 0 <a href='#SkMatrix_postScale_sy'>sy</a> dy | | M N O | = | <a href='#SkMatrix_postScale_sy'>sy</a>*M+dy*P <a href='#SkMatrix_postScale_sy'>sy</a>*N+dy*Q <a href='#SkMatrix_postScale_sy'>sy</a>*O+dy*R |
+| 0 0 1 | | P Q R | | P Q R |
### Parameters
@@ -2625,10 +2513,10 @@
<td>vertical scale factor</td>
</tr>
<tr> <td><a name='SkMatrix_postScale_px'><code><strong>px</strong></code></a></td>
- <td>pivot x</td>
+ <td>pivot on x-axis</td>
</tr>
<tr> <td><a name='SkMatrix_postScale_py'><code><strong>py</strong></code></a></td>
- <td>pivot y</td>
+ <td>pivot on y-axis</td>
</tr>
</table>
@@ -2648,25 +2536,21 @@
void <a href='#SkMatrix_postScale'>postScale</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from scaling by (<a href='#SkMatrix_postScale_2_sx'>sx</a>, <a href='#SkMatrix_postScale_2_sy'>sy</a>) about pivot point
-(0, 0), multiplied by <a href='#Matrix'>Matrix</a>.
-This can be thought of as scaling about the origin after applying <a href='#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from scaling by (<a href='#SkMatrix_postScale_2_sx'>sx</a>, <a href='#SkMatrix_postScale_2_sy'>sy</a>) about pivot <a href='SkPoint_Reference#Point'>point</a>
+(0, 0), multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+This can be thought of as scaling about the origin after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | J K L | | sx 0 0 |
-Matrix = | M N O |, S(sx, sy) = | 0 sy 0 |
- | P Q R | | 0 0 1 |
-</pre>
+| J K L | | <a href='#SkMatrix_postScale_2_sx'>sx</a> 0 0 |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, S(<a href='#SkMatrix_postScale_2_sx'>sx</a>, <a href='#SkMatrix_postScale_2_sy'>sy</a>) = | 0 <a href='#SkMatrix_postScale_2_sy'>sy</a> 0 |
+| P Q R | | 0 0 1 |
-sets <a href='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | sx 0 0 | | J K L | | sx*J sx*K sx*L |
-S(sx, sy) * Matrix = | 0 sy 0 | | M N O | = | sy*M sy*N sy*O |
- | 0 0 1 | | P Q R | | P Q R |
-</pre>
+| <a href='#SkMatrix_postScale_2_sx'>sx</a> 0 0 | | J K L | | <a href='#SkMatrix_postScale_2_sx'>sx</a>*J <a href='#SkMatrix_postScale_2_sx'>sx</a>*K <a href='#SkMatrix_postScale_2_sx'>sx</a>*L |
+S(<a href='#SkMatrix_postScale_2_sx'>sx</a>, <a href='#SkMatrix_postScale_2_sy'>sy</a>) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | 0 <a href='#SkMatrix_postScale_2_sy'>sy</a> 0 | | M N O | = | <a href='#SkMatrix_postScale_2_sy'>sy</a>*M <a href='#SkMatrix_postScale_2_sy'>sy</a>*N <a href='#SkMatrix_postScale_2_sy'>sy</a>*O |
+| 0 0 1 | | P Q R | | P Q R |
### Parameters
@@ -2752,36 +2636,30 @@
void <a href='#SkMatrix_postRotate'>postRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from rotating by <a href='#SkMatrix_postRotate_degrees'>degrees</a> about pivot point
-(<a href='#SkMatrix_postRotate_px'>px</a>, <a href='#SkMatrix_postRotate_py'>py</a>), multiplied by <a href='#Matrix'>Matrix</a>.
-This can be thought of as rotating about a pivot point after applying <a href='#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from rotating by <a href='#SkMatrix_postRotate_degrees'>degrees</a> about pivot <a href='SkPoint_Reference#Point'>point</a>
+(<a href='#SkMatrix_postRotate_px'>px</a>, <a href='#SkMatrix_postRotate_py'>py</a>), multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+This can be thought of as rotating about a pivot <a href='SkPoint_Reference#Point'>point</a> after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Positive <a href='#SkMatrix_postRotate_degrees'>degrees</a> rotates clockwise.
Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | J K L | | c -s dx |
-Matrix = | M N O |, R(degrees, px, py) = | s c dy |
- | P Q R | | 0 0 1 |
-</pre>
+| J K L | | c -s dx |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, R(<a href='#SkMatrix_postRotate_degrees'>degrees</a>, <a href='#SkMatrix_postRotate_px'>px</a>, <a href='#SkMatrix_postRotate_py'>py</a>) = | s c dy |
+| P Q R | | 0 0 1 |
where
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-c = cos(degrees)
-s = sin(degrees)
-dx = s * py + (1 - c) * px
-dy = -s * px + (1 - c) * py
-</pre>
+c = cos(<a href='#SkMatrix_postRotate_degrees'>degrees</a>)
+s = sin(<a href='#SkMatrix_postRotate_degrees'>degrees</a>)
+dx = s * <a href='#SkMatrix_postRotate_py'>py</a> + (1 - c) * <a href='#SkMatrix_postRotate_px'>px</a>
+dy = -s * <a href='#SkMatrix_postRotate_px'>px</a> + (1 - c) * <a href='#SkMatrix_postRotate_py'>py</a>
-sets <a href='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- |c -s dx| |J K L| |cJ-sM+dx*P cK-sN+dx*Q cL-sO+dx+R|
-R(degrees, px, py) * Matrix = |s c dy| |M N O| = |sJ+cM+dy*P sK+cN+dy*Q sL+cO+dy*R|
- |0 0 1| |P Q R| | P Q R|
-</pre>
+|c -s dx| |J K L| |cJ-sM+dx*P cK-sN+dx*Q cL-sO+dx+R|
+R(<a href='#SkMatrix_postRotate_degrees'>degrees</a>, <a href='#SkMatrix_postRotate_px'>px</a>, <a href='#SkMatrix_postRotate_py'>py</a>) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = |s c dy| |M N O| = |sJ+cM+dy*P sK+cN+dy*Q sL+cO+dy*R|
+|0 0 1| |P Q R| | P Q R|
### Parameters
@@ -2789,10 +2667,10 @@
<td>angle of axes relative to upright axes</td>
</tr>
<tr> <td><a name='SkMatrix_postRotate_px'><code><strong>px</strong></code></a></td>
- <td>pivot x</td>
+ <td>pivot on x-axis</td>
</tr>
<tr> <td><a name='SkMatrix_postRotate_py'><code><strong>py</strong></code></a></td>
- <td>pivot y</td>
+ <td>pivot on y-axis</td>
</tr>
</table>
@@ -2812,34 +2690,28 @@
void <a href='#SkMatrix_postRotate'>postRotate</a>(<a href='undocumented#SkScalar'>SkScalar</a> degrees)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from rotating by <a href='#SkMatrix_postRotate_2_degrees'>degrees</a> about pivot point
-(0, 0), multiplied by <a href='#Matrix'>Matrix</a>.
-This can be thought of as rotating about the origin after applying <a href='#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from rotating by <a href='#SkMatrix_postRotate_2_degrees'>degrees</a> about pivot <a href='SkPoint_Reference#Point'>point</a>
+(0, 0), multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+This can be thought of as rotating about the origin after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Positive <a href='#SkMatrix_postRotate_2_degrees'>degrees</a> rotates clockwise.
Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | J K L | | c -s 0 |
-Matrix = | M N O |, R(degrees, px, py) = | s c 0 |
- | P Q R | | 0 0 1 |
-</pre>
+| J K L | | c -s 0 |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, R(<a href='#SkMatrix_postRotate_2_degrees'>degrees</a>, px, py) = | s c 0 |
+| P Q R | | 0 0 1 |
where
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-c = cos(degrees)
-s = sin(degrees)
-</pre>
+c = cos(<a href='#SkMatrix_postRotate_2_degrees'>degrees</a>)
+s = sin(<a href='#SkMatrix_postRotate_2_degrees'>degrees</a>)
-sets <a href='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | c -s dx | | J K L | | cJ-sM cK-sN cL-sO |
-R(degrees, px, py) * Matrix = | s c dy | | M N O | = | sJ+cM sK+cN sL+cO |
- | 0 0 1 | | P Q R | | P Q R |
-</pre>
+| c -s dx | | J K L | | cJ-sM cK-sN cL-sO |
+R(<a href='#SkMatrix_postRotate_2_degrees'>degrees</a>, px, py) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | s c dy | | M N O | = | sJ+cM sK+cN sL+cO |
+| 0 0 1 | | P Q R | | P Q R |
### Parameters
@@ -2864,32 +2736,26 @@
void <a href='#SkMatrix_postSkew'>postSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky, <a href='undocumented#SkScalar'>SkScalar</a> px, <a href='undocumented#SkScalar'>SkScalar</a> py)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from skewing by (<a href='#SkMatrix_postSkew_kx'>kx</a>, <a href='#SkMatrix_postSkew_ky'>ky</a>) about pivot point
-(<a href='#SkMatrix_postSkew_px'>px</a>, <a href='#SkMatrix_postSkew_py'>py</a>), multiplied by <a href='#Matrix'>Matrix</a>.
-This can be thought of as skewing about a pivot point after applying <a href='#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from skewing by (<a href='#SkMatrix_postSkew_kx'>kx</a>, <a href='#SkMatrix_postSkew_ky'>ky</a>) about pivot <a href='SkPoint_Reference#Point'>point</a>
+(<a href='#SkMatrix_postSkew_px'>px</a>, <a href='#SkMatrix_postSkew_py'>py</a>), multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+This can be thought of as skewing about a pivot <a href='SkPoint_Reference#Point'>point</a> after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | J K L | | 1 kx dx |
-Matrix = | M N O |, K(kx, ky, px, py) = | ky 1 dy |
- | P Q R | | 0 0 1 |
-</pre>
+| J K L | | 1 <a href='#SkMatrix_postSkew_kx'>kx</a> dx |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, K(<a href='#SkMatrix_postSkew_kx'>kx</a>, <a href='#SkMatrix_postSkew_ky'>ky</a>, <a href='#SkMatrix_postSkew_px'>px</a>, <a href='#SkMatrix_postSkew_py'>py</a>) = | <a href='#SkMatrix_postSkew_ky'>ky</a> 1 dy |
+| P Q R | | 0 0 1 |
where
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-dx = -kx * py
-dy = -ky * px
-</pre>
+dx = -<a href='#SkMatrix_postSkew_kx'>kx</a> * <a href='#SkMatrix_postSkew_py'>py</a>
+dy = -<a href='#SkMatrix_postSkew_ky'>ky</a> * <a href='#SkMatrix_postSkew_px'>px</a>
-sets <a href='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | 1 kx dx| |J K L| |J+kx*M+dx*P K+kx*N+dx*Q L+kx*O+dx+R|
-K(kx, ky, px, py) * Matrix = |ky 1 dy| |M N O| = |ky*J+M+dy*P ky*K+N+dy*Q ky*L+O+dy*R|
- | 0 0 1| |P Q R| | P Q R|
-</pre>
+| 1 <a href='#SkMatrix_postSkew_kx'>kx</a> dx| |J K L| |J+<a href='#SkMatrix_postSkew_kx'>kx</a>*M+dx*P K+<a href='#SkMatrix_postSkew_kx'>kx</a>*N+dx*Q L+<a href='#SkMatrix_postSkew_kx'>kx</a>*O+dx+R|
+K(<a href='#SkMatrix_postSkew_kx'>kx</a>, <a href='#SkMatrix_postSkew_ky'>ky</a>, <a href='#SkMatrix_postSkew_px'>px</a>, <a href='#SkMatrix_postSkew_py'>py</a>) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = |<a href='#SkMatrix_postSkew_ky'>ky</a> 1 dy| |M N O| = |<a href='#SkMatrix_postSkew_ky'>ky</a>*J+M+dy*P <a href='#SkMatrix_postSkew_ky'>ky</a>*K+N+dy*Q <a href='#SkMatrix_postSkew_ky'>ky</a>*L+O+dy*R|
+| 0 0 1| |P Q R| | P Q R|
### Parameters
@@ -2900,10 +2766,10 @@
<td>vertical skew factor</td>
</tr>
<tr> <td><a name='SkMatrix_postSkew_px'><code><strong>px</strong></code></a></td>
- <td>pivot x</td>
+ <td>pivot on x-axis</td>
</tr>
<tr> <td><a name='SkMatrix_postSkew_py'><code><strong>py</strong></code></a></td>
- <td>pivot y</td>
+ <td>pivot on y-axis</td>
</tr>
</table>
@@ -2923,25 +2789,21 @@
void <a href='#SkMatrix_postSkew'>postSkew</a>(<a href='undocumented#SkScalar'>SkScalar</a> kx, <a href='undocumented#SkScalar'>SkScalar</a> ky)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> constructed from skewing by (<a href='#SkMatrix_postSkew_2_kx'>kx</a>, <a href='#SkMatrix_postSkew_2_ky'>ky</a>) about pivot point
-(0, 0), multiplied by <a href='#Matrix'>Matrix</a>.
-This can be thought of as skewing about the origin after applying <a href='#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> constructed from skewing by (<a href='#SkMatrix_postSkew_2_kx'>kx</a>, <a href='#SkMatrix_postSkew_2_ky'>ky</a>) about pivot <a href='SkPoint_Reference#Point'>point</a>
+(0, 0), multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+This can be thought of as skewing about the origin after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | J K L | | 1 kx 0 |
-Matrix = | M N O |, K(kx, ky) = | ky 1 0 |
- | P Q R | | 0 0 1 |
-</pre>
+| J K L | | 1 <a href='#SkMatrix_postSkew_2_kx'>kx</a> 0 |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, K(<a href='#SkMatrix_postSkew_2_kx'>kx</a>, <a href='#SkMatrix_postSkew_2_ky'>ky</a>) = | <a href='#SkMatrix_postSkew_2_ky'>ky</a> 1 0 |
+| P Q R | | 0 0 1 |
-sets <a href='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | 1 kx 0 | | J K L | | J+kx*M K+kx*N L+kx*O |
-K(kx, ky) * Matrix = | ky 1 0 | | M N O | = | ky*J+M ky*K+N ky*L+O |
- | 0 0 1 | | P Q R | | P Q R |
-</pre>
+| 1 <a href='#SkMatrix_postSkew_2_kx'>kx</a> 0 | | J K L | | J+<a href='#SkMatrix_postSkew_2_kx'>kx</a>*M K+<a href='#SkMatrix_postSkew_2_kx'>kx</a>*N L+<a href='#SkMatrix_postSkew_2_kx'>kx</a>*O |
+K(<a href='#SkMatrix_postSkew_2_kx'>kx</a>, <a href='#SkMatrix_postSkew_2_ky'>ky</a>) * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | <a href='#SkMatrix_postSkew_2_ky'>ky</a> 1 0 | | M N O | = | <a href='#SkMatrix_postSkew_2_ky'>ky</a>*J+M <a href='#SkMatrix_postSkew_2_ky'>ky</a>*K+N <a href='#SkMatrix_postSkew_2_ky'>ky</a>*L+O |
+| 0 0 1 | | P Q R | | P Q R |
### Parameters
@@ -2969,29 +2831,25 @@
void <a href='#SkMatrix_postConcat'>postConcat</a>(const <a href='#SkMatrix'>SkMatrix</a>& other)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_postConcat_other'>other</a> multiplied by <a href='#Matrix'>Matrix</a>.
-This can be thought of mapping by <a href='#SkMatrix_postConcat_other'>other</a> after applying <a href='#Matrix'>Matrix</a>.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_postConcat_other'>other</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+This can be thought of mapping by <a href='#SkMatrix_postConcat_other'>other</a> after applying <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | J K L | | A B C |
-Matrix = | M N O |, other = | D E F |
- | P Q R | | G H I |
-</pre>
+| J K L | | A B C |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | M N O |, <a href='#SkMatrix_postConcat_other'>other</a> = | D E F |
+| P Q R | | G H <a href='#SkMatrix_I'>I</a> |
-sets <a href='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
-other * Matrix = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
- | G H I | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
-</pre>
+| A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
+<a href='#SkMatrix_postConcat_other'>other</a> * <a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
+| G H <a href='#SkMatrix_I'>I</a> | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
### Parameters
<table> <tr> <td><a name='SkMatrix_postConcat_other'><code><strong>other</strong></code></a></td>
- <td><a href='#Matrix'>Matrix</a> on left side of multiply expression</td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on left side of multiply expression</td>
</tr>
</table>
@@ -3081,34 +2939,33 @@
bool <a href='#SkMatrix_setRectToRect'>setRectToRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& src, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst, <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> stf)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to scale and translate <a href='#SkMatrix_setRectToRect_src'>src</a> <a href='SkRect_Reference#Rect'>Rect</a> to <a href='#SkMatrix_setRectToRect_dst'>dst</a> <a href='SkRect_Reference#Rect'>Rect</a>. <a href='#SkMatrix_setRectToRect_stf'>stf</a> selects whether
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to scale and translate <a href='#SkMatrix_setRectToRect_src'>src</a> <a href='SkRect_Reference#SkRect'>SkRect</a> to <a href='#SkMatrix_setRectToRect_dst'>dst</a> <a href='SkRect_Reference#SkRect'>SkRect</a>. <a href='#SkMatrix_setRectToRect_stf'>stf</a> selects whether
mapping completely fills <a href='#SkMatrix_setRectToRect_dst'>dst</a> or preserves the aspect ratio, and how to align
-<a href='#SkMatrix_setRectToRect_src'>src</a> within <a href='#SkMatrix_setRectToRect_dst'>dst</a>. Returns false if <a href='#SkMatrix_setRectToRect_src'>src</a> is empty, and sets <a href='#Matrix'>Matrix</a> to identity.
-Returns true if <a href='#SkMatrix_setRectToRect_dst'>dst</a> is empty, and sets <a href='#Matrix'>Matrix</a> to:
+<a href='#SkMatrix_setRectToRect_src'>src</a> within <a href='#SkMatrix_setRectToRect_dst'>dst</a>. Returns false if <a href='#SkMatrix_setRectToRect_src'>src</a> is empty, and sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to identity.
+Returns true if <a href='#SkMatrix_setRectToRect_dst'>dst</a> is empty, and sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 0 0 0 |
| 0 0 0 |
| 0 0 1 |
-</pre>
### Parameters
<table> <tr> <td><a name='SkMatrix_setRectToRect_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> to map from</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map from</td>
</tr>
<tr> <td><a name='SkMatrix_setRectToRect_dst'><code><strong>dst</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> to map to</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map to</td>
</tr>
<tr> <td><a name='SkMatrix_setRectToRect_stf'><code><strong>stf</strong></code></a></td>
- <td>one of: <a href='#SkMatrix_kFill_ScaleToFit'>kFill ScaleToFit</a>, <a href='#SkMatrix_kStart_ScaleToFit'>kStart ScaleToFit</a>,
-<a href='#SkMatrix_kCenter_ScaleToFit'>kCenter ScaleToFit</a>, <a href='#SkMatrix_kEnd_ScaleToFit'>kEnd ScaleToFit</a></td>
+ <td>one of: <a href='#SkMatrix_kFill_ScaleToFit'>kFill_ScaleToFit</a>, <a href='#SkMatrix_kStart_ScaleToFit'>kStart_ScaleToFit</a>,</td>
</tr>
</table>
+<a href='#SkMatrix_kCenter_ScaleToFit'>kCenter_ScaleToFit</a>, <a href='#SkMatrix_kEnd_ScaleToFit'>kEnd_ScaleToFit</a>
+
### Return Value
-true if <a href='#Matrix'>Matrix</a> can represent <a href='SkRect_Reference#Rect'>Rect</a> mapping
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> can represent <a href='SkRect_Reference#SkRect'>SkRect</a> mapping
### Example
@@ -3141,34 +2998,33 @@
static <a href='#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_MakeRectToRect'>MakeRectToRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& src, const <a href='SkRect_Reference#SkRect'>SkRect</a>& dst, <a href='#SkMatrix_ScaleToFit'>ScaleToFit</a> stf)
</pre>
-Returns <a href='#Matrix'>Matrix</a> set to scale and translate <a href='#SkMatrix_MakeRectToRect_src'>src</a> <a href='SkRect_Reference#Rect'>Rect</a> to <a href='#SkMatrix_MakeRectToRect_dst'>dst</a> <a href='SkRect_Reference#Rect'>Rect</a>. <a href='#SkMatrix_MakeRectToRect_stf'>stf</a> selects
+Returns <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> set to scale and translate <a href='#SkMatrix_MakeRectToRect_src'>src</a> <a href='SkRect_Reference#SkRect'>SkRect</a> to <a href='#SkMatrix_MakeRectToRect_dst'>dst</a> <a href='SkRect_Reference#SkRect'>SkRect</a>. <a href='#SkMatrix_MakeRectToRect_stf'>stf</a> selects
whether mapping completely fills <a href='#SkMatrix_MakeRectToRect_dst'>dst</a> or preserves the aspect ratio, and how to
-align <a href='#SkMatrix_MakeRectToRect_src'>src</a> within <a href='#SkMatrix_MakeRectToRect_dst'>dst</a>. Returns the identity <a href='#Matrix'>Matrix</a> if <a href='#SkMatrix_MakeRectToRect_src'>src</a> is empty. If <a href='#SkMatrix_MakeRectToRect_dst'>dst</a> is
-empty, returns <a href='#Matrix'>Matrix</a> set to:
+align <a href='#SkMatrix_MakeRectToRect_src'>src</a> within <a href='#SkMatrix_MakeRectToRect_dst'>dst</a>. Returns the identity <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> if <a href='#SkMatrix_MakeRectToRect_src'>src</a> is empty. If <a href='#SkMatrix_MakeRectToRect_dst'>dst</a> is
+empty, returns <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> set to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 0 0 0 |
| 0 0 0 |
| 0 0 1 |
-</pre>
### Parameters
<table> <tr> <td><a name='SkMatrix_MakeRectToRect_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> to map from</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map from</td>
</tr>
<tr> <td><a name='SkMatrix_MakeRectToRect_dst'><code><strong>dst</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> to map to</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map to</td>
</tr>
<tr> <td><a name='SkMatrix_MakeRectToRect_stf'><code><strong>stf</strong></code></a></td>
- <td>one of: <a href='#SkMatrix_kFill_ScaleToFit'>kFill ScaleToFit</a>, <a href='#SkMatrix_kStart_ScaleToFit'>kStart ScaleToFit</a>,
-<a href='#SkMatrix_kCenter_ScaleToFit'>kCenter ScaleToFit</a>, <a href='#SkMatrix_kEnd_ScaleToFit'>kEnd ScaleToFit</a></td>
+ <td>one of: <a href='#SkMatrix_kFill_ScaleToFit'>kFill_ScaleToFit</a>, <a href='#SkMatrix_kStart_ScaleToFit'>kStart_ScaleToFit</a>,</td>
</tr>
</table>
+<a href='#SkMatrix_kCenter_ScaleToFit'>kCenter_ScaleToFit</a>, <a href='#SkMatrix_kEnd_ScaleToFit'>kEnd_ScaleToFit</a>
+
### Return Value
-<a href='#Matrix'>Matrix</a> mapping <a href='#SkMatrix_MakeRectToRect_src'>src</a> to <a href='#SkMatrix_MakeRectToRect_dst'>dst</a>
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> mapping <a href='#SkMatrix_MakeRectToRect_src'>src</a> to <a href='#SkMatrix_MakeRectToRect_dst'>dst</a>
### Example
@@ -3201,30 +3057,30 @@
bool <a href='#SkMatrix_setPolyToPoly'>setPolyToPoly</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> src[], const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> dst[], int count)
</pre>
-Sets <a href='#Matrix'>Matrix</a> to map <a href='#SkMatrix_setPolyToPoly_src'>src</a> to <a href='#SkMatrix_setPolyToPoly_dst'>dst</a>. <a href='#SkMatrix_setPolyToPoly_count'>count</a> must be zero or greater, and four or less.
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to map <a href='#SkMatrix_setPolyToPoly_src'>src</a> to <a href='#SkMatrix_setPolyToPoly_dst'>dst</a>. <a href='#SkMatrix_setPolyToPoly_count'>count</a> must be zero or greater, and four or less.
-If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is zero, sets <a href='#Matrix'>Matrix</a> to identity and returns true.
-If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is one, sets <a href='#Matrix'>Matrix</a> to translate and returns true.
-If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is two or more, sets <a href='#Matrix'>Matrix</a> to map <a href='SkPoint_Reference#Point'>Points</a> if possible; returns false
-if <a href='#Matrix'>Matrix</a> cannot be constructed. If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is four, <a href='#Matrix'>Matrix</a> may include
+If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is zero, sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to identity and returns true.
+If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is one, sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to translate and returns true.
+If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is two or more, sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to map <a href='SkPoint_Reference#SkPoint'>SkPoint</a> if possible; returns false
+if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> cannot be constructed. If <a href='#SkMatrix_setPolyToPoly_count'>count</a> is four, <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> may include
perspective.
### Parameters
<table> <tr> <td><a name='SkMatrix_setPolyToPoly_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkPoint_Reference#Point'>Points</a> to map from</td>
+ <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to map from</td>
</tr>
<tr> <td><a name='SkMatrix_setPolyToPoly_dst'><code><strong>dst</strong></code></a></td>
- <td><a href='SkPoint_Reference#Point'>Points</a> to map to</td>
+ <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to map to</td>
</tr>
<tr> <td><a name='SkMatrix_setPolyToPoly_count'><code><strong>count</strong></code></a></td>
- <td>number of <a href='SkPoint_Reference#Point'>Points</a> in <a href='#SkMatrix_setPolyToPoly_src'>src</a> and <a href='#SkMatrix_setPolyToPoly_dst'>dst</a></td>
+ <td>number of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='#SkMatrix_setPolyToPoly_src'>src</a> and <a href='#SkMatrix_setPolyToPoly_dst'>dst</a></td>
</tr>
</table>
### Return Value
-true if <a href='#Matrix'>Matrix</a> was constructed successfully
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> was constructed successfully
### Example
@@ -3242,21 +3098,21 @@
bool <a href='#SkMatrix_invert'>invert</a>(<a href='#SkMatrix'>SkMatrix</a>* inverse) const
</pre>
-Sets <a href='#SkMatrix_invert_inverse'>inverse</a> to reciprocal matrix, returning true if <a href='#Matrix'>Matrix</a> can be inverted.
-Geometrically, if <a href='#Matrix'>Matrix</a> maps from source to destination, <a href='#SkMatrix_invert_inverse'>inverse</a> <a href='#Matrix'>Matrix</a>
-maps from destination to source. If <a href='#Matrix'>Matrix</a> can not be inverted, <a href='#SkMatrix_invert_inverse'>inverse</a> is
+Sets <a href='#SkMatrix_invert()_inverse'>inverse</a> to reciprocal <a href='SkMatrix_Reference#Matrix'>matrix</a>, returning true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> can be inverted.
+Geometrically, if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> maps from source to destination, <a href='#SkMatrix_invert()_inverse'>inverse</a> <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
+maps from destination to source. If <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> can not be inverted, <a href='#SkMatrix_invert()_inverse'>inverse</a> is
unchanged.
### Parameters
<table> <tr> <td><a name='SkMatrix_invert_inverse'><code><strong>inverse</strong></code></a></td>
- <td>storage for inverted <a href='#Matrix'>Matrix</a>; may be nullptr</td>
+ <td>storage for inverted <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href='#Matrix'>Matrix</a> can be inverted
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> can be inverted
### Example
@@ -3277,17 +3133,15 @@
Fills <a href='#SkMatrix_SetAffineIdentity_affine'>affine</a> with identity values in column major order.
Sets <a href='#SkMatrix_SetAffineIdentity_affine'>affine</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 1 0 0 |
| 0 1 0 |
-</pre>
-Affine 3x2 matrices in column major order are used by OpenGL and XPS.
+Affine 3 by 2 <a href='SkMatrix_Reference#Matrix'>matrices</a> in column major order are used by OpenGL and XPS.
### Parameters
<table> <tr> <td><a name='SkMatrix_SetAffineIdentity_affine'><code><strong>affine</strong></code></a></td>
- <td>storage for 3x2 <a href='#SkMatrix_SetAffineIdentity_affine'>affine</a> matrix</td>
+ <td>storage for 3 by 2 <a href='#SkMatrix_SetAffineIdentity_affine'>affine</a> <a href='SkMatrix_Reference#Matrix'>matrix</a></td>
</tr>
</table>
@@ -3317,23 +3171,21 @@
Fills <a href='#SkMatrix_asAffine_affine'>affine</a> in column major order. Sets <a href='#SkMatrix_asAffine_affine'>affine</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| scale-x skew-x translate-x |
| skew-y scale-y translate-y |
-</pre>
-If <a href='#Matrix'>Matrix</a> contains perspective, returns false and leaves <a href='#SkMatrix_asAffine_affine'>affine</a> unchanged.
+If <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains perspective, returns false and leaves <a href='#SkMatrix_asAffine_affine'>affine</a> unchanged.
### Parameters
<table> <tr> <td><a name='SkMatrix_asAffine_affine'><code><strong>affine</strong></code></a></td>
- <td>storage for 3x2 <a href='#SkMatrix_asAffine_affine'>affine</a> matrix; may be nullptr</td>
+ <td>storage for 3 by 2 <a href='#SkMatrix_asAffine_affine'>affine</a> <a href='SkMatrix_Reference#Matrix'>matrix</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href='#Matrix'>Matrix</a> does not contain perspective
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> does not contain perspective
### Example
@@ -3359,26 +3211,22 @@
void <a href='#SkMatrix_setAffine'>setAffine</a>(const <a href='undocumented#SkScalar'>SkScalar</a> affine[6])
</pre>
-Sets <a href='#Matrix'>Matrix</a> to <a href='#SkMatrix_setAffine_affine'>affine</a> values, passed in column major order. Given <a href='#SkMatrix_setAffine_affine'>affine</a>,
+Sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to <a href='#SkMatrix_setAffine_affine'>affine</a> values, passed in column major order. Given <a href='#SkMatrix_setAffine_affine'>affine</a>,
column, then row, as:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| scale-x skew-x translate-x |
| skew-y scale-y translate-y |
-</pre>
-<a href='#Matrix'>Matrix</a> is set, row, then column, to:
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is set, row, then column, to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| scale-x skew-x translate-x |
| skew-y scale-y translate-y |
| 0 0 1 |
-</pre>
### Parameters
<table> <tr> <td><a name='SkMatrix_setAffine_affine'><code><strong>affine</strong></code></a></td>
- <td>3x2 <a href='#SkMatrix_setAffine_affine'>affine</a> matrix</td>
+ <td>3 by 2 <a href='#SkMatrix_setAffine_affine'>affine</a> <a href='SkMatrix_Reference#Matrix'>matrix</a></td>
</tr>
</table>
@@ -3409,44 +3257,38 @@
void <a href='#SkMatrix_mapPoints'>mapPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> dst[], const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> src[], int count) const
</pre>
-Maps <a href='#SkMatrix_mapPoints_src'>src</a> <a href='SkPoint_Reference#Point'>Point</a> array of length <a href='#SkMatrix_mapPoints_count'>count</a> to <a href='#SkMatrix_mapPoints_dst'>dst</a> <a href='SkPoint_Reference#Point'>Point</a> array of equal or greater
-length. <a href='SkPoint_Reference#Point'>Points</a> are mapped by multiplying each <a href='SkPoint_Reference#Point'>Point</a> by <a href='#Matrix'>Matrix</a>. Given:
+Maps <a href='#SkMatrix_mapPoints_src'>src</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> of length <a href='#SkMatrix_mapPoints_count'>count</a> to <a href='#SkMatrix_mapPoints_dst'>dst</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> of equal or greater
+length. <a href='SkPoint_Reference#SkPoint'>SkPoint</a> are mapped by multiplying each <a href='SkPoint_Reference#SkPoint'>SkPoint</a> by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | x |
-Matrix = | D E F |, pt = | y |
- | G H I | | 1 |
-</pre>
+| A B C | | x |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, pt = | y |
+| G H <a href='#SkMatrix_I'>I</a> | | 1 |
where
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-for (i = 0; i < count; ++i) {
- x = src[i].fX
- y = src[i].fY
+for (i = 0; i < <a href='#SkMatrix_mapPoints_count'>count</a>; ++i) {
+x = <a href='#SkMatrix_mapPoints_src'>src</a>[i].fX
+y = <a href='#SkMatrix_mapPoints_src'>src</a>[i].fY
}
-</pre>
-each <a href='#SkMatrix_mapPoints_dst'>dst</a> <a href='SkPoint_Reference#Point'>Point</a> is computed as:
+each <a href='#SkMatrix_mapPoints_dst'>dst</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> is computed as:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- |A B C| |x| Ax+By+C Dx+Ey+F
-Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
- |G H I| |1| Gx+Hy+I Gx+Hy+I
-</pre>
+|A B C| |x| Ax+By+C Dx+Ey+F
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+<a href='#SkMatrix_I'>I</a>| = ------- , -------
+|G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</a> Gx+Hy+<a href='#SkMatrix_I'>I</a>
-<a href='#SkMatrix_mapPoints_src'>src</a> and <a href='#SkMatrix_mapPoints_dst'>dst</a> may point to the same storage.
+<a href='#SkMatrix_mapPoints_src'>src</a> and <a href='#SkMatrix_mapPoints_dst'>dst</a> may <a href='SkPoint_Reference#Point'>point</a> to the same storage.
### Parameters
<table> <tr> <td><a name='SkMatrix_mapPoints_dst'><code><strong>dst</strong></code></a></td>
- <td>storage for mapped <a href='SkPoint_Reference#Point'>Points</a></td>
+ <td>storage for mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
</tr>
<tr> <td><a name='SkMatrix_mapPoints_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkPoint_Reference#Point'>Points</a> to transform</td>
+ <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to transform</td>
</tr>
<tr> <td><a name='SkMatrix_mapPoints_count'><code><strong>count</strong></code></a></td>
- <td>number of <a href='SkPoint_Reference#Point'>Points</a> to transform</td>
+ <td>number of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to transform</td>
</tr>
</table>
@@ -3466,39 +3308,33 @@
void <a href='#SkMatrix_mapPoints'>mapPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count) const
</pre>
-Maps <a href='#SkMatrix_mapPoints_2_pts'>pts</a> <a href='SkPoint_Reference#Point'>Point</a> array of length <a href='#SkMatrix_mapPoints_2_count'>count</a> in place. <a href='SkPoint_Reference#Point'>Points</a> are mapped by multiplying
-each <a href='SkPoint_Reference#Point'>Point</a> by <a href='#Matrix'>Matrix</a>. Given:
+Maps <a href='#SkMatrix_mapPoints_2_pts'>pts</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> of length <a href='#SkMatrix_mapPoints_2_count'>count</a> in place. <a href='SkPoint_Reference#SkPoint'>SkPoint</a> are mapped by multiplying
+each <a href='SkPoint_Reference#SkPoint'>SkPoint</a> by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | x |
-Matrix = | D E F |, pt = | y |
- | G H I | | 1 |
-</pre>
+| A B C | | x |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, pt = | y |
+| G H <a href='#SkMatrix_I'>I</a> | | 1 |
where
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-for (i = 0; i < count; ++i) {
- x = pts[i].fX
- y = pts[i].fY
+for (i = 0; i < <a href='#SkMatrix_mapPoints_2_count'>count</a>; ++i) {
+x = <a href='#SkMatrix_mapPoints_2_pts'>pts</a>[i].fX
+y = <a href='#SkMatrix_mapPoints_2_pts'>pts</a>[i].fY
}
-</pre>
-each resulting <a href='#SkMatrix_mapPoints_2_pts'>pts</a> <a href='SkPoint_Reference#Point'>Point</a> is computed as:
+each resulting <a href='#SkMatrix_mapPoints_2_pts'>pts</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> is computed as:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- |A B C| |x| Ax+By+C Dx+Ey+F
-Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
- |G H I| |1| Gx+Hy+I Gx+Hy+I
-</pre>
+|A B C| |x| Ax+By+C Dx+Ey+F
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+<a href='#SkMatrix_I'>I</a>| = ------- , -------
+|G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</a> Gx+Hy+<a href='#SkMatrix_I'>I</a>
### Parameters
<table> <tr> <td><a name='SkMatrix_mapPoints_2_pts'><code><strong>pts</strong></code></a></td>
- <td>storage for mapped <a href='SkPoint_Reference#Point'>Points</a></td>
+ <td>storage for mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
</tr>
<tr> <td><a name='SkMatrix_mapPoints_2_count'><code><strong>count</strong></code></a></td>
- <td>number of <a href='SkPoint_Reference#Point'>Points</a> to transform</td>
+ <td>number of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to transform</td>
</tr>
</table>
@@ -3518,33 +3354,29 @@
void <a href='#SkMatrix_mapHomogeneousPoints'>mapHomogeneousPoints</a>(<a href='undocumented#SkPoint3'>SkPoint3</a> dst[], const <a href='undocumented#SkPoint3'>SkPoint3</a> src[], int count) const
</pre>
-Maps <a href='#SkMatrix_mapHomogeneousPoints_src'>src</a> <a href='undocumented#Point3'>Point3</a> array of length <a href='#SkMatrix_mapHomogeneousPoints_count'>count</a> to <a href='#SkMatrix_mapHomogeneousPoints_dst'>dst</a> <a href='undocumented#Point3'>Point3</a> array, which must of length <a href='#SkMatrix_mapHomogeneousPoints_count'>count</a> or
-greater. <a href='undocumented#Point3'>Point3</a> array is mapped by multiplying each <a href='undocumented#Point3'>Point3</a> by <a href='#Matrix'>Matrix</a>. Given:
+Maps <a href='#SkMatrix_mapHomogeneousPoints_src'>src</a> <a href='undocumented#SkPoint3'>SkPoint3</a> array of length <a href='#SkMatrix_mapHomogeneousPoints_count'>count</a> to <a href='#SkMatrix_mapHomogeneousPoints_dst'>dst</a> <a href='undocumented#SkPoint3'>SkPoint3</a> array, which must of length <a href='#SkMatrix_mapHomogeneousPoints_count'>count</a> or
+greater. <a href='undocumented#SkPoint3'>SkPoint3</a> array is mapped by multiplying each <a href='undocumented#SkPoint3'>SkPoint3</a> by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | x |
-Matrix = | D E F |, src = | y |
- | G H I | | z |
-</pre>
+| A B C | | x |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, <a href='#SkMatrix_mapHomogeneousPoints_src'>src</a> = | y |
+| G H <a href='#SkMatrix_I'>I</a> | | z |
-each resulting <a href='#SkMatrix_mapHomogeneousPoints_dst'>dst</a> <a href='SkPoint_Reference#Point'>Point</a> is computed as:
+each resulting <a href='#SkMatrix_mapHomogeneousPoints_dst'>dst</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> is computed as:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- |A B C| |x|
-Matrix * src = |D E F| |y| = |Ax+By+Cz Dx+Ey+Fz Gx+Hy+Iz|
- |G H I| |z|
-</pre>
+|A B C| |x|
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='#SkMatrix_mapHomogeneousPoints_src'>src</a> = |D E F| |y| = |Ax+By+Cz Dx+Ey+Fz Gx+Hy+Iz|
+|G H <a href='#SkMatrix_I'>I</a>| |z|
### Parameters
<table> <tr> <td><a name='SkMatrix_mapHomogeneousPoints_dst'><code><strong>dst</strong></code></a></td>
- <td>storage for mapped <a href='undocumented#Point3'>Point3</a> array</td>
+ <td>storage for mapped <a href='undocumented#SkPoint3'>SkPoint3</a> array</td>
</tr>
<tr> <td><a name='SkMatrix_mapHomogeneousPoints_src'><code><strong>src</strong></code></a></td>
- <td><a href='undocumented#Point3'>Point3</a> array to transform</td>
+ <td><a href='undocumented#SkPoint3'>SkPoint3</a> array to transform</td>
</tr>
<tr> <td><a name='SkMatrix_mapHomogeneousPoints_count'><code><strong>count</strong></code></a></td>
- <td>items in <a href='undocumented#Point3'>Point3</a> array to transform</td>
+ <td>items in <a href='undocumented#SkPoint3'>SkPoint3</a> array to transform</td>
</tr>
</table>
@@ -3564,32 +3396,28 @@
void <a href='#SkMatrix_mapXY'>mapXY</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>* result) const
</pre>
-Maps <a href='SkPoint_Reference#Point'>Point</a> (<a href='#SkMatrix_mapXY_x'>x</a>, <a href='#SkMatrix_mapXY_y'>y</a>) to <a href='#SkMatrix_mapXY_result'>result</a>. <a href='SkPoint_Reference#Point'>Point</a> is mapped by multiplying by <a href='#Matrix'>Matrix</a>. Given:
+Maps <a href='SkPoint_Reference#SkPoint'>SkPoint</a> (<a href='#SkMatrix_mapXY_x'>x</a>, <a href='#SkMatrix_mapXY_y'>y</a>) to <a href='#SkMatrix_mapXY_result'>result</a>. <a href='SkPoint_Reference#SkPoint'>SkPoint</a> is mapped by multiplying by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | x |
-Matrix = | D E F |, pt = | y |
- | G H I | | 1 |
-</pre>
+| A B C | | <a href='#SkMatrix_mapXY_x'>x</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, pt = | <a href='#SkMatrix_mapXY_y'>y</a> |
+| G H <a href='#SkMatrix_I'>I</a> | | 1 |
<a href='#SkMatrix_mapXY_result'>result</a> is computed as:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- |A B C| |x| Ax+By+C Dx+Ey+F
-Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
- |G H I| |1| Gx+Hy+I Gx+Hy+I
-</pre>
+|A B C| |<a href='#SkMatrix_mapXY_x'>x</a>| Ax+By+C Dx+Ey+F
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * pt = |D E F| |<a href='#SkMatrix_mapXY_y'>y</a>| = |Ax+By+C Dx+Ey+F Gx+Hy+<a href='#SkMatrix_I'>I</a>| = ------- , -------
+|G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</a> Gx+Hy+<a href='#SkMatrix_I'>I</a>
### Parameters
<table> <tr> <td><a name='SkMatrix_mapXY_x'><code><strong>x</strong></code></a></td>
- <td><a href='#SkMatrix_mapXY_x'>x</a>-axis value of <a href='SkPoint_Reference#Point'>Point</a> to map</td>
+ <td>x-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to map</td>
</tr>
<tr> <td><a name='SkMatrix_mapXY_y'><code><strong>y</strong></code></a></td>
- <td><a href='#SkMatrix_mapXY_y'>y</a>-axis value of <a href='SkPoint_Reference#Point'>Point</a> to map</td>
+ <td>y-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to map</td>
</tr>
<tr> <td><a name='SkMatrix_mapXY_result'><code><strong>result</strong></code></a></td>
- <td>storage for mapped <a href='SkPoint_Reference#Point'>Point</a></td>
+ <td>storage for mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
</tr>
</table>
@@ -3609,35 +3437,31 @@
<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkMatrix_mapXY'>mapXY</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y) const
</pre>
-Returns <a href='SkPoint_Reference#Point'>Point</a> (<a href='#SkMatrix_mapXY_2_x'>x</a>, <a href='#SkMatrix_mapXY_2_y'>y</a>) multiplied by <a href='#Matrix'>Matrix</a>. Given:
+Returns <a href='SkPoint_Reference#SkPoint'>SkPoint</a> (<a href='#SkMatrix_mapXY_2_x'>x</a>, <a href='#SkMatrix_mapXY_2_y'>y</a>) multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | x |
-Matrix = | D E F |, pt = | y |
- | G H I | | 1 |
-</pre>
+| A B C | | <a href='#SkMatrix_mapXY_2_x'>x</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, pt = | <a href='#SkMatrix_mapXY_2_y'>y</a> |
+| G H <a href='#SkMatrix_I'>I</a> | | 1 |
result is computed as:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- |A B C| |x| Ax+By+C Dx+Ey+F
-Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
- |G H I| |1| Gx+Hy+I Gx+Hy+I
-</pre>
+|A B C| |<a href='#SkMatrix_mapXY_2_x'>x</a>| Ax+By+C Dx+Ey+F
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * pt = |D E F| |<a href='#SkMatrix_mapXY_2_y'>y</a>| = |Ax+By+C Dx+Ey+F Gx+Hy+<a href='#SkMatrix_I'>I</a>| = ------- , -------
+|G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</a> Gx+Hy+<a href='#SkMatrix_I'>I</a>
### Parameters
<table> <tr> <td><a name='SkMatrix_mapXY_2_x'><code><strong>x</strong></code></a></td>
- <td><a href='#SkMatrix_mapXY_2_x'>x</a>-axis value of <a href='SkPoint_Reference#Point'>Point</a> to map</td>
+ <td>x-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to map</td>
</tr>
<tr> <td><a name='SkMatrix_mapXY_2_y'><code><strong>y</strong></code></a></td>
- <td><a href='#SkMatrix_mapXY_2_y'>y</a>-axis value of <a href='SkPoint_Reference#Point'>Point</a> to map</td>
+ <td>y-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to map</td>
</tr>
</table>
### Return Value
-mapped <a href='SkPoint_Reference#Point'>Point</a>
+mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a>
### Example
@@ -3655,45 +3479,39 @@
void <a href='#SkMatrix_mapVectors'>mapVectors</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a> dst[], const <a href='SkPoint_Reference#SkVector'>SkVector</a> src[], int count) const
</pre>
-Maps <a href='#SkMatrix_mapVectors_src'>src</a> <a href='SkPoint_Reference#Vector'>Vector</a> array of length <a href='#SkMatrix_mapVectors_count'>count</a> to <a href='SkPoint_Reference#Vector'>Vector</a> <a href='SkPoint_Reference#Point'>Point</a> array of equal or greater
-length. <a href='SkPoint_Reference#Vector'>Vectors</a> are mapped by multiplying each <a href='SkPoint_Reference#Vector'>Vector</a> by <a href='#Matrix'>Matrix</a>, treating
-<a href='#Matrix'>Matrix</a> translation as zero. Given:
+Maps <a href='#SkMatrix_mapVectors_src'>src</a> <a href='SkPoint_Reference#Vector'>vector</a> array of length <a href='#SkMatrix_mapVectors_count'>count</a> to <a href='SkPoint_Reference#Vector'>vector</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> of equal or greater
+length. <a href='SkPoint_Reference#Vector'>Vectors</a> are mapped by multiplying each <a href='SkPoint_Reference#Vector'>vector</a> by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, treating
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> translation as zero. Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B 0 | | x |
-Matrix = | D E 0 |, src = | y |
- | G H I | | 1 |
-</pre>
+| A B 0 | | x |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E 0 |, <a href='#SkMatrix_mapVectors_src'>src</a> = | y |
+| G H <a href='#SkMatrix_I'>I</a> | | 1 |
where
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-for (i = 0; i < count; ++i) {
- x = src[i].fX
- y = src[i].fY
+for (i = 0; i < <a href='#SkMatrix_mapVectors_count'>count</a>; ++i) {
+x = <a href='#SkMatrix_mapVectors_src'>src</a>[i].fX
+y = <a href='#SkMatrix_mapVectors_src'>src</a>[i].fY
}
-</pre>
-each <a href='#SkMatrix_mapVectors_dst'>dst</a> <a href='SkPoint_Reference#Vector'>Vector</a> is computed as:
+each <a href='#SkMatrix_mapVectors_dst'>dst</a> <a href='SkPoint_Reference#Vector'>vector</a> is computed as:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- |A B 0| |x| Ax+By Dx+Ey
-Matrix * src = |D E 0| |y| = |Ax+By Dx+Ey Gx+Hy+I| = ------- , -------
- |G H I| |1| Gx+Hy+I Gx+Hy+I
-</pre>
+|A B 0| |x| Ax+By Dx+Ey
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * <a href='#SkMatrix_mapVectors_src'>src</a> = |D E 0| |y| = |Ax+By Dx+Ey Gx+Hy+<a href='#SkMatrix_I'>I</a>| = ------- , -------
+|G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</a> Gx+Hy+<a href='#SkMatrix_I'>I</a>
-<a href='#SkMatrix_mapVectors_src'>src</a> and <a href='#SkMatrix_mapVectors_dst'>dst</a> may point to the same storage.
+<a href='#SkMatrix_mapVectors_src'>src</a> and <a href='#SkMatrix_mapVectors_dst'>dst</a> may <a href='SkPoint_Reference#Point'>point</a> to the same storage.
### Parameters
<table> <tr> <td><a name='SkMatrix_mapVectors_dst'><code><strong>dst</strong></code></a></td>
- <td>storage for mapped <a href='SkPoint_Reference#Vector'>Vectors</a></td>
+ <td>storage for mapped <a href='SkPoint_Reference#Vector'>vectors</a></td>
</tr>
<tr> <td><a name='SkMatrix_mapVectors_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkPoint_Reference#Vector'>Vectors</a> to transform</td>
+ <td><a href='SkPoint_Reference#Vector'>vectors</a> to transform</td>
</tr>
<tr> <td><a name='SkMatrix_mapVectors_count'><code><strong>count</strong></code></a></td>
- <td>number of <a href='SkPoint_Reference#Vector'>Vectors</a> to transform</td>
+ <td>number of <a href='SkPoint_Reference#Vector'>vectors</a> to transform</td>
</tr>
</table>
@@ -3713,39 +3531,33 @@
void <a href='#SkMatrix_mapVectors'>mapVectors</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a> vecs[], int count) const
</pre>
-Maps <a href='#SkMatrix_mapVectors_2_vecs'>vecs</a> <a href='SkPoint_Reference#Vector'>Vector</a> array of length <a href='#SkMatrix_mapVectors_2_count'>count</a> in place, multiplying each <a href='SkPoint_Reference#Vector'>Vector</a> by
-<a href='#Matrix'>Matrix</a>, treating <a href='#Matrix'>Matrix</a> translation as zero. Given:
+Maps <a href='#SkMatrix_mapVectors_2_vecs'>vecs</a> <a href='SkPoint_Reference#Vector'>vector</a> array of length <a href='#SkMatrix_mapVectors_2_count'>count</a> in place, multiplying each <a href='SkPoint_Reference#Vector'>vector</a> by
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, treating <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> translation as zero. Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B 0 | | x |
-Matrix = | D E 0 |, vec = | y |
- | G H I | | 1 |
-</pre>
+| A B 0 | | x |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E 0 |, vec = | y |
+| G H <a href='#SkMatrix_I'>I</a> | | 1 |
where
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-for (i = 0; i < count; ++i) {
- x = vecs[i].fX
- y = vecs[i].fY
+for (i = 0; i < <a href='#SkMatrix_mapVectors_2_count'>count</a>; ++i) {
+x = <a href='#SkMatrix_mapVectors_2_vecs'>vecs</a>[i].fX
+y = <a href='#SkMatrix_mapVectors_2_vecs'>vecs</a>[i].fY
}
-</pre>
-each result <a href='SkPoint_Reference#Vector'>Vector</a> is computed as:
+each result <a href='SkPoint_Reference#Vector'>vector</a> is computed as:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- |A B 0| |x| Ax+By Dx+Ey
-Matrix * vec = |D E 0| |y| = |Ax+By Dx+Ey Gx+Hy+I| = ------- , -------
- |G H I| |1| Gx+Hy+I Gx+Hy+I
-</pre>
+|A B 0| |x| Ax+By Dx+Ey
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * vec = |D E 0| |y| = |Ax+By Dx+Ey Gx+Hy+<a href='#SkMatrix_I'>I</a>| = ------- , -------
+|G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</a> Gx+Hy+<a href='#SkMatrix_I'>I</a>
### Parameters
<table> <tr> <td><a name='SkMatrix_mapVectors_2_vecs'><code><strong>vecs</strong></code></a></td>
- <td><a href='SkPoint_Reference#Vector'>Vectors</a> to transform, and storage for mapped <a href='SkPoint_Reference#Vector'>Vectors</a></td>
+ <td><a href='SkPoint_Reference#Vector'>vectors</a> to transform, and storage for mapped <a href='SkPoint_Reference#Vector'>vectors</a></td>
</tr>
<tr> <td><a name='SkMatrix_mapVectors_2_count'><code><strong>count</strong></code></a></td>
- <td>number of <a href='SkPoint_Reference#Vector'>Vectors</a> to transform</td>
+ <td>number of <a href='SkPoint_Reference#Vector'>vectors</a> to transform</td>
</tr>
</table>
@@ -3765,33 +3577,29 @@
void <a href='#SkMatrix_mapVector'>mapVector</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='SkPoint_Reference#SkVector'>SkVector</a>* result) const
</pre>
-Maps <a href='SkPoint_Reference#Vector'>Vector</a> (x, y) to <a href='#SkMatrix_mapVector_result'>result</a>. <a href='SkPoint_Reference#Vector'>Vector</a> is mapped by multiplying by <a href='#Matrix'>Matrix</a>,
-treating <a href='#Matrix'>Matrix</a> translation as zero. Given:
+Maps <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkMatrix_mapVector_dx'>dx</a>, <a href='#SkMatrix_mapVector_dy'>dy</a>) to <a href='#SkMatrix_mapVector_result'>result</a>. <a href='SkPoint_Reference#Vector'>Vector</a> is mapped by multiplying by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>,
+treating <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> translation as zero. Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B 0 | | dx |
-Matrix = | D E 0 |, vec = | dy |
- | G H I | | 1 |
-</pre>
+| A B 0 | | <a href='#SkMatrix_mapVector_dx'>dx</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E 0 |, vec = | <a href='#SkMatrix_mapVector_dy'>dy</a> |
+| G H <a href='#SkMatrix_I'>I</a> | | 1 |
-each <a href='#SkMatrix_mapVector_result'>result</a> <a href='SkPoint_Reference#Vector'>Vector</a> is computed as:
+each <a href='#SkMatrix_mapVector_result'>result</a> <a href='SkPoint_Reference#Vector'>vector</a> is computed as:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- |A B 0| |dx| A*dx+B*dy D*dx+E*dy
-Matrix * vec = |D E 0| |dy| = |A*dx+B*dy D*dx+E*dy G*dx+H*dy+I| = ----------- , -----------
- |G H I| | 1| G*dx+H*dy+I G*dx+*dHy+I
-</pre>
+|A B 0| |<a href='#SkMatrix_mapVector_dx'>dx</a>| A*<a href='#SkMatrix_mapVector_dx'>dx</a>+B*<a href='#SkMatrix_mapVector_dy'>dy</a> D*<a href='#SkMatrix_mapVector_dx'>dx</a>+E*<a href='#SkMatrix_mapVector_dy'>dy</a>
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * vec = |D E 0| |<a href='#SkMatrix_mapVector_dy'>dy</a>| = |A*<a href='#SkMatrix_mapVector_dx'>dx</a>+B*<a href='#SkMatrix_mapVector_dy'>dy</a> D*<a href='#SkMatrix_mapVector_dx'>dx</a>+E*<a href='#SkMatrix_mapVector_dy'>dy</a> G*<a href='#SkMatrix_mapVector_dx'>dx</a>+H*<a href='#SkMatrix_mapVector_dy'>dy</a>+<a href='#SkMatrix_I'>I</a>| = ----------- , -----------
+|G H <a href='#SkMatrix_I'>I</a>| | 1| G*<a href='#SkMatrix_mapVector_dx'>dx</a>+H*<a href='#SkMatrix_mapVector_dy'>dy</a>+<a href='#SkMatrix_I'>I</a> G*<a href='#SkMatrix_mapVector_dx'>dx</a>+*dHy+<a href='#SkMatrix_I'>I</a>
### Parameters
<table> <tr> <td><a name='SkMatrix_mapVector_dx'><code><strong>dx</strong></code></a></td>
- <td>x-axis value of <a href='SkPoint_Reference#Vector'>Vector</a> to map</td>
+ <td>x-axis value of <a href='SkPoint_Reference#Vector'>vector</a> to map</td>
</tr>
<tr> <td><a name='SkMatrix_mapVector_dy'><code><strong>dy</strong></code></a></td>
- <td>y-axis value of <a href='SkPoint_Reference#Vector'>Vector</a> to map</td>
+ <td>y-axis value of <a href='SkPoint_Reference#Vector'>vector</a> to map</td>
</tr>
<tr> <td><a name='SkMatrix_mapVector_result'><code><strong>result</strong></code></a></td>
- <td>storage for mapped <a href='SkPoint_Reference#Vector'>Vector</a></td>
+ <td>storage for mapped <a href='SkPoint_Reference#Vector'>vector</a></td>
</tr>
</table>
@@ -3811,36 +3619,32 @@
<a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkMatrix_mapVector'>mapVector</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) const
</pre>
-Returns <a href='SkPoint_Reference#Vector'>Vector</a> (x, y) multiplied by <a href='#Matrix'>Matrix</a>, treating <a href='#Matrix'>Matrix</a> translation as zero.
+Returns <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkMatrix_mapVector_2_dx'>dx</a>, <a href='#SkMatrix_mapVector_2_dy'>dy</a>) multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>, treating <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> translation as zero.
Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B 0 | | dx |
-Matrix = | D E 0 |, vec = | dy |
- | G H I | | 1 |
-</pre>
+| A B 0 | | <a href='#SkMatrix_mapVector_2_dx'>dx</a> |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E 0 |, vec = | <a href='#SkMatrix_mapVector_2_dy'>dy</a> |
+| G H <a href='#SkMatrix_I'>I</a> | | 1 |
-each result <a href='SkPoint_Reference#Vector'>Vector</a> is computed as:
+each result <a href='SkPoint_Reference#Vector'>vector</a> is computed as:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- |A B 0| |dx| A*dx+B*dy D*dx+E*dy
-Matrix * vec = |D E 0| |dy| = |A*dx+B*dy D*dx+E*dy G*dx+H*dy+I| = ----------- , -----------
- |G H I| | 1| G*dx+H*dy+I G*dx+*dHy+I
-</pre>
+|A B 0| |<a href='#SkMatrix_mapVector_2_dx'>dx</a>| A*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+B*<a href='#SkMatrix_mapVector_2_dy'>dy</a> D*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+E*<a href='#SkMatrix_mapVector_2_dy'>dy</a>
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * vec = |D E 0| |<a href='#SkMatrix_mapVector_2_dy'>dy</a>| = |A*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+B*<a href='#SkMatrix_mapVector_2_dy'>dy</a> D*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+E*<a href='#SkMatrix_mapVector_2_dy'>dy</a> G*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+H*<a href='#SkMatrix_mapVector_2_dy'>dy</a>+<a href='#SkMatrix_I'>I</a>| = ----------- , -----------
+|G H <a href='#SkMatrix_I'>I</a>| | 1| G*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+H*<a href='#SkMatrix_mapVector_2_dy'>dy</a>+<a href='#SkMatrix_I'>I</a> G*<a href='#SkMatrix_mapVector_2_dx'>dx</a>+*dHy+<a href='#SkMatrix_I'>I</a>
### Parameters
<table> <tr> <td><a name='SkMatrix_mapVector_2_dx'><code><strong>dx</strong></code></a></td>
- <td>x-axis value of <a href='SkPoint_Reference#Vector'>Vector</a> to map</td>
+ <td>x-axis value of <a href='SkPoint_Reference#Vector'>vector</a> to map</td>
</tr>
<tr> <td><a name='SkMatrix_mapVector_2_dy'><code><strong>dy</strong></code></a></td>
- <td>y-axis value of <a href='SkPoint_Reference#Vector'>Vector</a> to map</td>
+ <td>y-axis value of <a href='SkPoint_Reference#Vector'>vector</a> to map</td>
</tr>
</table>
### Return Value
-mapped <a href='SkPoint_Reference#Vector'>Vector</a>
+mapped <a href='SkPoint_Reference#Vector'>vector</a>
### Example
@@ -3858,18 +3662,18 @@
bool <a href='#SkMatrix_mapRect'>mapRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* dst, const <a href='SkRect_Reference#SkRect'>SkRect</a>& src) const
</pre>
-Sets <a href='#SkMatrix_mapRect_dst'>dst</a> to bounds of <a href='#SkMatrix_mapRect_src'>src</a> corners mapped by <a href='#Matrix'>Matrix</a>.
+Sets <a href='#SkMatrix_mapRect_dst'>dst</a> to bounds of <a href='#SkMatrix_mapRect_src'>src</a> corners mapped by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Returns true if mapped corners are <a href='#SkMatrix_mapRect_dst'>dst</a> corners.
-Returned value is the same as calling <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>.
+Returned value is the same as calling <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>().
### Parameters
<table> <tr> <td><a name='SkMatrix_mapRect_dst'><code><strong>dst</strong></code></a></td>
- <td>storage for bounds of mapped <a href='SkPoint_Reference#Point'>Points</a></td>
+ <td>storage for bounds of mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
</tr>
<tr> <td><a name='SkMatrix_mapRect_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> to map</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map</td>
</tr>
</table>
@@ -3893,10 +3697,10 @@
bool <a href='#SkMatrix_mapRect'>mapRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* rect) const
</pre>
-Sets <a href='#SkMatrix_mapRect_2_rect'>rect</a> to bounds of <a href='#SkMatrix_mapRect_2_rect'>rect</a> corners mapped by <a href='#Matrix'>Matrix</a>.
+Sets <a href='#SkMatrix_mapRect_2_rect'>rect</a> to bounds of <a href='#SkMatrix_mapRect_2_rect'>rect</a> corners mapped by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
Returns true if mapped corners are computed <a href='#SkMatrix_mapRect_2_rect'>rect</a> corners.
-Returned value is the same as calling <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>.
+Returned value is the same as calling <a href='#SkMatrix_rectStaysRect'>rectStaysRect</a>().
### Parameters
@@ -3925,7 +3729,7 @@
<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkMatrix_mapRect'>mapRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& src) const
</pre>
-Returns bounds of <a href='#SkMatrix_mapRect_3_src'>src</a> corners mapped by <a href='#Matrix'>Matrix</a>.
+Returns bounds of <a href='#SkMatrix_mapRect_3_src'>src</a> corners mapped by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
### Parameters
@@ -3954,39 +3758,35 @@
void <a href='#SkMatrix_mapRectToQuad'>mapRectToQuad</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> dst[4], const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect) const
</pre>
-Maps four corners of <a href='#SkMatrix_mapRectToQuad_rect'>rect</a> to <a href='#SkMatrix_mapRectToQuad_dst'>dst</a>. <a href='SkPoint_Reference#Point'>Points</a> are mapped by multiplying each
-<a href='#SkMatrix_mapRectToQuad_rect'>rect</a> corner by <a href='#Matrix'>Matrix</a>. <a href='#SkMatrix_mapRectToQuad_rect'>rect</a> corner is processed in this order:
-(<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fLeft, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fTop), (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fRight, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fTop), (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fRight, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fBottom),
-(<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fLeft, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fBottom).
+Maps four corners of <a href='#SkMatrix_mapRectToQuad_rect'>rect</a> to <a href='#SkMatrix_mapRectToQuad_dst'>dst</a>. <a href='SkPoint_Reference#SkPoint'>SkPoint</a> are mapped by multiplying each
+<a href='#SkMatrix_mapRectToQuad_rect'>rect</a> corner by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. <a href='#SkMatrix_mapRectToQuad_rect'>rect</a> corner is processed in this order:
+(<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fTop'>fTop</a>), (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fRight'>fRight</a>, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fTop'>fTop</a>), (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fRight'>fRight</a>, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fBottom'>fBottom</a>),
+(<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fBottom'>fBottom</a>).
-<a href='#SkMatrix_mapRectToQuad_rect'>rect</a> may be empty: <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fLeft may be greater than or equal to <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fRight;
-<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fTop may be greater than or equal to <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fBottom.
+<a href='#SkMatrix_mapRectToQuad_rect'>rect</a> may be empty: <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fLeft'>fLeft</a> may be greater than or equal to <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fRight'>fRight</a>;
+<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fTop'>fTop</a> may be greater than or equal to <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fBottom'>fBottom</a>.
Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | x |
-Matrix = | D E F |, pt = | y |
- | G H I | | 1 |
-</pre>
+| A B C | | x |
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> = | D E F |, pt = | y |
+| G H <a href='#SkMatrix_I'>I</a> | | 1 |
-where pt is initialized from each of (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fLeft, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fTop),
-(<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fRight, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fTop), (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fRight, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fBottom), (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fLeft, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.fBottom),
-each <a href='#SkMatrix_mapRectToQuad_dst'>dst</a> <a href='SkPoint_Reference#Point'>Point</a> is computed as:
+where pt is initialized from each of (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fTop'>fTop</a>),
+(<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fRight'>fRight</a>, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fTop'>fTop</a>), (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fRight'>fRight</a>, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fBottom'>fBottom</a>), (<a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkMatrix_mapRectToQuad_rect'>rect</a>.<a href='#SkRect_fBottom'>fBottom</a>),
+each <a href='#SkMatrix_mapRectToQuad_dst'>dst</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> is computed as:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- |A B C| |x| Ax+By+C Dx+Ey+F
-Matrix * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+I| = ------- , -------
- |G H I| |1| Gx+Hy+I Gx+Hy+I
-</pre>
+|A B C| |x| Ax+By+C Dx+Ey+F
+<a href='SkMatrix_Reference#Matrix'>Matrix</a> * pt = |D E F| |y| = |Ax+By+C Dx+Ey+F Gx+Hy+<a href='#SkMatrix_I'>I</a>| = ------- , -------
+|G H <a href='#SkMatrix_I'>I</a>| |1| Gx+Hy+<a href='#SkMatrix_I'>I</a> Gx+Hy+<a href='#SkMatrix_I'>I</a>
### Parameters
<table> <tr> <td><a name='SkMatrix_mapRectToQuad_dst'><code><strong>dst</strong></code></a></td>
- <td>storage for mapped corner <a href='SkPoint_Reference#Point'>Points</a></td>
+ <td>storage for mapped corner <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
</tr>
<tr> <td><a name='SkMatrix_mapRectToQuad_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> to map</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map</td>
</tr>
</table>
@@ -4006,17 +3806,17 @@
void <a href='#SkMatrix_mapRectScaleTranslate'>mapRectScaleTranslate</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* dst, const <a href='SkRect_Reference#SkRect'>SkRect</a>& src) const
</pre>
-Sets <a href='#SkMatrix_mapRectScaleTranslate_dst'>dst</a> to bounds of <a href='#SkMatrix_mapRectScaleTranslate_src'>src</a> corners mapped by <a href='#Matrix'>Matrix</a>. If matrix contains
+Sets <a href='#SkMatrix_mapRectScaleTranslate_dst'>dst</a> to bounds of <a href='#SkMatrix_mapRectScaleTranslate_src'>src</a> corners mapped by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. If <a href='SkMatrix_Reference#Matrix'>matrix</a> contains
elements other than scale or translate: asserts if SK_DEBUG is defined;
otherwise, results are undefined.
### Parameters
<table> <tr> <td><a name='SkMatrix_mapRectScaleTranslate_dst'><code><strong>dst</strong></code></a></td>
- <td>storage for bounds of mapped <a href='SkPoint_Reference#Point'>Points</a></td>
+ <td>storage for bounds of mapped <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
</tr>
<tr> <td><a name='SkMatrix_mapRectScaleTranslate_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> to map</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to map</td>
</tr>
</table>
@@ -4036,15 +3836,15 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_mapRadius'>mapRadius</a>(<a href='undocumented#SkScalar'>SkScalar</a> radius) const
</pre>
-Returns geometric mean <a href='#SkMatrix_mapRadius_radius'>radius</a> of ellipse formed by constructing <a href='undocumented#Circle'>Circle</a> of
-size <a href='#SkMatrix_mapRadius_radius'>radius</a>, and mapping constructed <a href='undocumented#Circle'>Circle</a> with <a href='#Matrix'>Matrix</a>. The result squared is
+Returns geometric mean <a href='#SkMatrix_mapRadius_radius'>radius</a> of ellipse formed by constructing <a href='undocumented#Circle'>circle</a> of
+<a href='undocumented#Size'>size</a> <a href='#SkMatrix_mapRadius_radius'>radius</a>, and mapping constructed <a href='undocumented#Circle'>circle</a> with <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. The result squared is
equal to the major axis length times the minor axis length.
-Result is not meaningful if <a href='#Matrix'>Matrix</a> contains perspective elements.
+Result is not meaningful if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains perspective elements.
### Parameters
<table> <tr> <td><a name='SkMatrix_mapRadius_radius'><code><strong>radius</strong></code></a></td>
- <td><a href='undocumented#Circle'>Circle</a> size to map</td>
+ <td><a href='undocumented#Circle'>circle</a> <a href='undocumented#Size'>size</a> to map</td>
</tr>
</table>
@@ -4070,16 +3870,16 @@
bool <a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a>() const
</pre>
-Returns true if a unit step on x-axis at some y-axis value mapped through <a href='#Matrix'>Matrix</a>
-can be represented by a constant <a href='SkPoint_Reference#Vector'>Vector</a>. Returns true if <a href='#SkMatrix_getType'>getType</a> returns
-<a href='#SkMatrix_kIdentity_Mask'>kIdentity Mask</a>, or combinations of: <a href='#SkMatrix_kTranslate_Mask'>kTranslate Mask</a>, <a href='#SkMatrix_kScale_Mask'>kScale Mask</a>, and <a href='#SkMatrix_kAffine_Mask'>kAffine Mask</a>.
+Returns true if a unit step on x-axis at some y-axis value mapped through <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
+can be represented by a constant <a href='SkPoint_Reference#Vector'>vector</a>. Returns true if <a href='#SkMatrix_getType'>getType</a>() returns
+<a href='#SkMatrix_kIdentity_Mask'>kIdentity_Mask</a>, or combinations of: <a href='#SkMatrix_kTranslate_Mask'>kTranslate_Mask</a>, <a href='#SkMatrix_kScale_Mask'>kScale_Mask</a>, and <a href='#SkMatrix_kAffine_Mask'>kAffine_Mask</a>.
-May return true if <a href='#SkMatrix_getType'>getType</a> returns <a href='#SkMatrix_kPerspective_Mask'>kPerspective Mask</a>, but only when <a href='#Matrix'>Matrix</a>
+May return true if <a href='#SkMatrix_getType'>getType</a>() returns <a href='#SkMatrix_kPerspective_Mask'>kPerspective_Mask</a>, but only when <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
does not include rotation or skewing along the y-axis.
### Return Value
-true if <a href='#Matrix'>Matrix</a> does not have complex perspective
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> does not have complex perspective
### Example
@@ -4120,19 +3920,19 @@
<a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkMatrix_fixedStepInX'>fixedStepInX</a>(<a href='undocumented#SkScalar'>SkScalar</a> y) const
</pre>
-Returns <a href='SkPoint_Reference#Vector'>Vector</a> representing a unit step on x-axis at <a href='#SkMatrix_fixedStepInX_y'>y</a> mapped through <a href='#Matrix'>Matrix</a>.
-If <a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a> is false, returned value is undefined.
+Returns <a href='SkPoint_Reference#Vector'>vector</a> representing a unit step on x-axis at <a href='#SkMatrix_fixedStepInX_y'>y</a> mapped through <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>.
+If <a href='#SkMatrix_isFixedStepInX'>isFixedStepInX</a>() is false, returned value is undefined.
### Parameters
<table> <tr> <td><a name='SkMatrix_fixedStepInX_y'><code><strong>y</strong></code></a></td>
- <td>position of line parallel to x-axis</td>
+ <td>position of <a href='undocumented#Line'>line</a> parallel to x-axis</td>
</tr>
</table>
### Return Value
-<a href='SkPoint_Reference#Vector'>Vector</a> advance of mapped unit step on x-axis
+<a href='SkPoint_Reference#Vector'>vector</a> advance of mapped unit step on x-axis
### Example
@@ -4150,12 +3950,12 @@
bool <a href='#SkMatrix_cheapEqualTo'>cheapEqualTo</a>(const <a href='#SkMatrix'>SkMatrix</a>& m) const
</pre>
-Returns true if <a href='#Matrix'>Matrix</a> equals <a href='#SkMatrix_cheapEqualTo_m'>m</a>, using an efficient comparison.
+Returns true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> equals <a href='#SkMatrix_cheapEqualTo_m'>m</a>, using an efficient comparison.
Returns false when the sign of zero values is the different; when one
-matrix has positive zero value and the other has negative zero value.
+<a href='SkMatrix_Reference#Matrix'>matrix</a> has positive zero value and the other has negative zero value.
-Returns true even when both <a href='#Matrix'>Matrices</a> contain NaN.
+Returns true even when both <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contain NaN.
NaN never equals any value, including itself. To improve performance, NaN values
are treated as bit patterns that are equal if their bit patterns are equal.
@@ -4163,13 +3963,13 @@
### Parameters
<table> <tr> <td><a name='SkMatrix_cheapEqualTo_m'><code><strong>m</strong></code></a></td>
- <td><a href='#Matrix'>Matrix</a> to compare</td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='#SkMatrix_cheapEqualTo_m'>m</a> and <a href='#Matrix'>Matrix</a> are represented by identical bit patterns
+true if <a href='#SkMatrix_cheapEqualTo_m'>m</a> and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> are represented by identical bit patterns
### Example
@@ -4198,23 +3998,23 @@
bool <a href='#SkMatrix_equal_operator'>operator==(const SkMatrix& a, const SkMatrix& b)</a>
</pre>
-Compares <a href='#SkMatrix_equal_operator_a'>a</a> and <a href='#SkMatrix_equal_operator_b'>b</a>; returns true if <a href='#SkMatrix_equal_operator_a'>a</a> and <a href='#SkMatrix_equal_operator_b'>b</a> are numerically equal. Returns true
-even if sign of zero values are different. Returns false if either <a href='#Matrix'>Matrix</a>
-contains NaN, even if the other <a href='#Matrix'>Matrix</a> also contains NaN.
+Compares <a href='#SkMatrix_operator==(const SkMatrix& a, const SkMatrix& b)_a'>a</a> and <a href='#SkMatrix_operator==(const SkMatrix& a, const SkMatrix& b)_b'>b</a>; returns true if <a href='#SkMatrix_operator==(const SkMatrix& a, const SkMatrix& b)_a'>a</a> and <a href='#SkMatrix_operator==(const SkMatrix& a, const SkMatrix& b)_b'>b</a> are numerically equal. Returns true
+even if sign of zero values are different. Returns false if either <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
+contains NaN, even if the other <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> also contains NaN.
### Parameters
<table> <tr> <td><a name='SkMatrix_equal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='#Matrix'>Matrix</a> to compare</td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to compare</td>
</tr>
<tr> <td><a name='SkMatrix_equal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='#Matrix'>Matrix</a> to compare</td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_equal_operator_a'>a</a> and <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_equal_operator_b'>b</a> are numerically equal
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_operator==(const SkMatrix& a, const SkMatrix& b)_a'>a</a> and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_operator==(const SkMatrix& a, const SkMatrix& b)_b'>b</a> are numerically equal
### Example
@@ -4240,23 +4040,23 @@
bool <a href='#SkMatrix_notequal_operator'>operator!=(const SkMatrix& a, const SkMatrix& b)</a>
</pre>
-Compares <a href='#SkMatrix_notequal_operator_a'>a</a> and <a href='#SkMatrix_notequal_operator_b'>b</a>; returns true if <a href='#SkMatrix_notequal_operator_a'>a</a> and <a href='#SkMatrix_notequal_operator_b'>b</a> are not numerically equal. Returns false
-even if sign of zero values are different. Returns true if either <a href='#Matrix'>Matrix</a>
-contains NaN, even if the other <a href='#Matrix'>Matrix</a> also contains NaN.
+Compares <a href='#SkMatrix_operator!=(const SkMatrix& a, const SkMatrix& b)_a'>a</a> and <a href='#SkMatrix_operator!=(const SkMatrix& a, const SkMatrix& b)_b'>b</a>; returns true if <a href='#SkMatrix_operator!=(const SkMatrix& a, const SkMatrix& b)_a'>a</a> and <a href='#SkMatrix_operator!=(const SkMatrix& a, const SkMatrix& b)_b'>b</a> are not numerically equal. Returns false
+even if sign of zero values are different. Returns true if either <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
+contains NaN, even if the other <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> also contains NaN.
### Parameters
<table> <tr> <td><a name='SkMatrix_notequal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='#Matrix'>Matrix</a> to compare</td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to compare</td>
</tr>
<tr> <td><a name='SkMatrix_notequal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='#Matrix'>Matrix</a> to compare</td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_notequal_operator_a'>a</a> and <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_notequal_operator_b'>b</a> are numerically not equal
+true if <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_operator!=(const SkMatrix& a, const SkMatrix& b)_a'>a</a> and <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_operator!=(const SkMatrix& a, const SkMatrix& b)_b'>b</a> are numerically not equal
### Example
@@ -4276,9 +4076,9 @@
void <a href='#SkMatrix_dump'>dump</a>() const
</pre>
-Writes text representation of <a href='#Matrix'>Matrix</a> to standard output. Floating point values
+Writes <a href='undocumented#Text'>text</a> representation of <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to standard output. Floating <a href='SkPoint_Reference#Point'>point</a> values
are written with limited precision; it may not be possible to reconstruct
-original <a href='#Matrix'>Matrix</a> from output.
+original <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> from output.
### Example
@@ -4306,9 +4106,9 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getMinScale'>getMinScale</a>() const
</pre>
-Returns the minimum scaling factor of <a href='#Matrix'>Matrix</a> by decomposing the scaling and
+Returns the minimum scaling factor of <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> by decomposing the scaling and
skewing elements.
-Returns -1 if scale factor overflows or <a href='#Matrix'>Matrix</a> contains perspective.
+Returns -1 if scale factor overflows or <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains perspective.
### Return Value
@@ -4338,9 +4138,9 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkMatrix_getMaxScale'>getMaxScale</a>() const
</pre>
-Returns the maximum scaling factor of <a href='#Matrix'>Matrix</a> by decomposing the scaling and
+Returns the maximum scaling factor of <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> by decomposing the scaling and
skewing elements.
-Returns -1 if scale factor overflows or <a href='#Matrix'>Matrix</a> contains perspective.
+Returns -1 if scale factor overflows or <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> contains perspective.
### Return Value
@@ -4372,7 +4172,7 @@
Sets <a href='#SkMatrix_getMinMaxScales_scaleFactors'>scaleFactors</a>[0] to the minimum scaling factor, and <a href='#SkMatrix_getMinMaxScales_scaleFactors'>scaleFactors</a>[1] to the
maximum scaling factor. Scaling factors are computed by decomposing
-the <a href='#Matrix'>Matrix</a> scaling and skewing elements.
+the <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> scaling and skewing elements.
Returns true if <a href='#SkMatrix_getMinMaxScales_scaleFactors'>scaleFactors</a> are found; otherwise, returns false and sets
<a href='#SkMatrix_getMinMaxScales_scaleFactors'>scaleFactors</a> to undefined values.
@@ -4463,20 +4263,18 @@
---
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-static const <a href='#SkMatrix'>SkMatrix</a>& I()
+static const <a href='#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_I'>I</a>()
</pre>
-Returns reference to const identity <a href='#Matrix'>Matrix</a>. Returned <a href='#Matrix'>Matrix</a> is set to:
+Returns reference to const identity <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>. Returned <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is set to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
| 1 0 0 |
| 0 1 0 |
| 0 0 1 |
-</pre>
### Return Value
-const identity <a href='#Matrix'>Matrix</a>
+const identity <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
### Example
@@ -4503,18 +4301,16 @@
static const <a href='#SkMatrix'>SkMatrix</a>& <a href='#SkMatrix_InvalidMatrix'>InvalidMatrix</a>()
</pre>
-Returns reference to a const <a href='#Matrix'>Matrix</a> with invalid values. Returned <a href='#Matrix'>Matrix</a> is set
+Returns reference to a const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with invalid values. Returned <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> is set
to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-| SK_ScalarMax SK_ScalarMax SK_ScalarMax |
-| SK_ScalarMax SK_ScalarMax SK_ScalarMax |
-| SK_ScalarMax SK_ScalarMax SK_ScalarMax |
-</pre>
+| <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> |
+| <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> |
+| <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> |
### Return Value
-const invalid <a href='#Matrix'>Matrix</a>
+const invalid <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>
### Example
@@ -4540,37 +4336,33 @@
static <a href='#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_Concat'>Concat</a>(const <a href='#SkMatrix'>SkMatrix</a>& a, const <a href='#SkMatrix'>SkMatrix</a>& b)
</pre>
-Returns <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_Concat_a'>a</a> multiplied by <a href='#Matrix'>Matrix</a> <a href='#SkMatrix_Concat_b'>b</a>.
+Returns <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_Concat_a'>a</a> multiplied by <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> <a href='#SkMatrix_Concat_b'>b</a>.
Given:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | J K L |
-a = | D E F |, b = | M N O |
- | G H I | | P Q R |
-</pre>
+| A B C | | J K L |
+<a href='#SkMatrix_Concat_a'>a</a> = | D E F |, <a href='#SkMatrix_Concat_b'>b</a> = | M N O |
+| G H <a href='#SkMatrix_I'>I</a> | | P Q R |
-sets <a href='#Matrix'>Matrix</a> to:
+sets <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- | A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
-a * b = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
- | G H I | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
-</pre>
+| A B C | | J K L | | AJ+BM+CP AK+BN+CQ AL+BO+CR |
+<a href='#SkMatrix_Concat_a'>a</a> * <a href='#SkMatrix_Concat_b'>b</a> = | D E F | * | M N O | = | DJ+EM+FP DK+EN+FQ DL+EO+FR |
+| G H <a href='#SkMatrix_I'>I</a> | | P Q R | | GJ+HM+IP GK+HN+IQ GL+HO+IR |
### Parameters
<table> <tr> <td><a name='SkMatrix_Concat_a'><code><strong>a</strong></code></a></td>
- <td><a href='#Matrix'>Matrix</a> on left side of multiply expression</td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on left side of multiply expression</td>
</tr>
<tr> <td><a name='SkMatrix_Concat_b'><code><strong>b</strong></code></a></td>
- <td><a href='#Matrix'>Matrix</a> on right side of multiply expression</td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> on right side of multiply expression</td>
</tr>
</table>
### Return Value
-<a href='#Matrix'>Matrix</a> computed from <a href='#SkMatrix_Concat_a'>a</a> times <a href='#SkMatrix_Concat_b'>b</a>
+<a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> computed from <a href='#SkMatrix_Concat_a'>a</a> times <a href='#SkMatrix_Concat_b'>b</a>
### Example
@@ -4591,7 +4383,7 @@
</pre>
Sets internal cache to unknown state. Use to force update after repeated
-modifications to <a href='#Matrix'>Matrix</a> element reference returned by <a href='#SkMatrix_array1_operator'>operator[](int index)</a>.
+modifications to <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> element reference returned by <a href='#SkMatrix_array1_operator'>operator[](int index)</a>.
### Example
@@ -4620,13 +4412,11 @@
void <a href='#SkMatrix_setScaleTranslate'>setScaleTranslate</a>(<a href='undocumented#SkScalar'>SkScalar</a> sx, <a href='undocumented#SkScalar'>SkScalar</a> sy, <a href='undocumented#SkScalar'>SkScalar</a> tx, <a href='undocumented#SkScalar'>SkScalar</a> ty)
</pre>
-Initializes <a href='#Matrix'>Matrix</a> with scale and translate elements.
+Initializes <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> with scale and translate elements.
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-| sx 0 tx |
-| 0 sy ty |
+| <a href='#SkMatrix_setScaleTranslate_sx'>sx</a> 0 <a href='#SkMatrix_setScaleTranslate_tx'>tx</a> |
+| 0 <a href='#SkMatrix_setScaleTranslate_sy'>sy</a> <a href='#SkMatrix_setScaleTranslate_ty'>ty</a> |
| 0 0 1 |
-</pre>
### Parameters
@@ -4668,12 +4458,12 @@
bool <a href='#SkMatrix_isFinite'>isFinite</a>() const
</pre>
-Returns true if all elements of the matrix are finite. Returns false if any
+Returns true if all elements of the <a href='SkMatrix_Reference#Matrix'>matrix</a> are finite. Returns false if any
element is infinity, or NaN.
### Return Value
-true if matrix has only finite elements
+true if <a href='SkMatrix_Reference#Matrix'>matrix</a> has only finite elements
### Example
diff --git a/site/user/api/SkPaint_Reference.md b/site/user/api/SkPaint_Reference.md
index 84f97fa..da8e1ca 100644
--- a/site/user/api/SkPaint_Reference.md
+++ b/site/user/api/SkPaint_Reference.md
@@ -329,14 +329,14 @@
<a href='#SkPaint'>SkPaint</a>(const <a href='#SkPaint'>SkPaint</a>& paint)
</pre>
-Makes a shallow copy of <a href='#Paint'>Paint</a>. <a href='undocumented#Typeface'>Typeface</a>, <a href='undocumented#Path_Effect'>Path Effect</a>, <a href='undocumented#Shader'>Shader</a>,
-<a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Draw_Looper'>Draw Looper</a>, and <a href='undocumented#Image_Filter'>Image Filter</a> are shared
-between the original <a href='#SkPaint_copy_const_SkPaint_paint'>paint</a> and the copy. Objects containing <a href='undocumented#Reference_Count'>Reference Count</a> increment
+Makes a shallow copy of <a href='SkPaint_Reference#SkPaint'>SkPaint</a>. <a href='undocumented#SkTypeface'>SkTypeface</a>, <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkShader'>SkShader</a>,
+<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>, and <a href='undocumented#SkImageFilter'>SkImageFilter</a> are shared
+between the original <a href='#SkPaint_SkPaint(const SkPaint& paint)_paint'>paint</a> and the copy. Objects containing <a href='undocumented#SkRefCnt'>SkRefCnt</a> increment
their references by one.
-The referenced objects <a href='undocumented#Path_Effect'>Path Effect</a>, <a href='undocumented#Shader'>Shader</a>, <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Color_Filter'>Color Filter</a>,
-<a href='undocumented#Draw_Looper'>Draw Looper</a>, and <a href='undocumented#Image_Filter'>Image Filter</a> cannot be modified after they are created.
-This prevents objects with <a href='undocumented#Reference_Count'>Reference Count</a> from being modified once <a href='#Paint'>Paint</a> refers to them.
+The referenced objects <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>,
+<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>, and <a href='undocumented#SkImageFilter'>SkImageFilter</a> cannot be modified after they are created.
+This prevents objects with <a href='undocumented#SkRefCnt'>SkRefCnt</a> from being modified once <a href='SkPaint_Reference#SkPaint'>SkPaint</a> refers to them.
### Parameters
@@ -347,7 +347,7 @@
### Return Value
-shallow copy of <a href='#SkPaint_copy_const_SkPaint_paint'>paint</a>
+shallow copy of <a href='#SkPaint_SkPaint(const SkPaint& paint)_paint'>paint</a>
### Example
@@ -371,9 +371,9 @@
</pre>
Implements a move constructor to avoid increasing the reference counts
-of objects referenced by the <a href='#SkPaint_move_SkPaint_paint'>paint</a>.
+of objects referenced by the <a href='#SkPaint_SkPaint(SkPaint&& paint)_paint'>paint</a>.
-After the call, <a href='#SkPaint_move_SkPaint_paint'>paint</a> is undefined, and can be safely destructed.
+After the call, <a href='#SkPaint_SkPaint(SkPaint&& paint)_paint'>paint</a> is undefined, and can be safely destructed.
### Parameters
@@ -384,7 +384,7 @@
### Return Value
-content of <a href='#SkPaint_move_SkPaint_paint'>paint</a>
+content of <a href='#SkPaint_SkPaint(SkPaint&& paint)_paint'>paint</a>
### Example
@@ -406,8 +406,8 @@
void <a href='#SkPaint_reset'>reset</a>()
</pre>
-Sets all <a href='#Paint'>Paint</a> contents to their initial values. This is equivalent to replacing
-<a href='#Paint'>Paint</a> with the result of <a href='#SkPaint_empty_constructor'>SkPaint()</a>.
+Sets all <a href='SkPaint_Reference#SkPaint'>SkPaint</a> contents to their initial values. This is equivalent to replacing
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a> with the result of <a href='#SkPaint_empty_constructor'>SkPaint()</a>.
### Example
@@ -429,9 +429,9 @@
<a href='#SkPaint_destructor'>~SkPaint</a>()
</pre>
-Decreases <a href='#Paint'>Paint</a> <a href='undocumented#Reference_Count'>Reference Count</a> of owned objects: <a href='undocumented#Typeface'>Typeface</a>, <a href='undocumented#Path_Effect'>Path Effect</a>, <a href='undocumented#Shader'>Shader</a>,
-<a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Draw_Looper'>Draw Looper</a>, and <a href='undocumented#Image_Filter'>Image Filter</a>. If the
-objects containing <a href='undocumented#Reference_Count'>Reference Count</a> go to zero, they are deleted.
+Decreases <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> of owned objects: <a href='undocumented#SkTypeface'>SkTypeface</a>, <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkShader'>SkShader</a>,
+<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>, and <a href='undocumented#SkImageFilter'>SkImageFilter</a>. If the
+objects containing <a href='undocumented#SkRefCnt'>SkRefCnt</a> go to zero, they are deleted.
<a name='Management'></a>
@@ -443,12 +443,12 @@
<a href='#SkPaint'>SkPaint</a>& <a href='#SkPaint_copy_operator'>operator=(const SkPaint& paint)</a>
</pre>
-Makes a shallow copy of <a href='#Paint'>Paint</a>. <a href='undocumented#Typeface'>Typeface</a>, <a href='undocumented#Path_Effect'>Path Effect</a>, <a href='undocumented#Shader'>Shader</a>,
-<a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Draw_Looper'>Draw Looper</a>, and <a href='undocumented#Image_Filter'>Image Filter</a> are shared
-between the original <a href='#SkPaint_copy_operator_paint'>paint</a> and the copy. Objects containing <a href='undocumented#Reference_Count'>Reference Count</a> in the
+Makes a shallow copy of <a href='SkPaint_Reference#SkPaint'>SkPaint</a>. <a href='undocumented#SkTypeface'>SkTypeface</a>, <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkShader'>SkShader</a>,
+<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>, and <a href='undocumented#SkImageFilter'>SkImageFilter</a> are shared
+between the original <a href='#SkPaint_operator=(const SkPaint& paint)_paint'>paint</a> and the copy. Objects containing <a href='undocumented#SkRefCnt'>SkRefCnt</a> in the
prior destination are decreased by one, and the referenced objects are deleted if the
-resulting count is zero. Objects containing <a href='undocumented#Reference_Count'>Reference Count</a> in the parameter <a href='#SkPaint_copy_operator_paint'>paint</a>
-are increased by one. <a href='#SkPaint_copy_operator_paint'>paint</a> is unmodified.
+resulting count is zero. Objects containing <a href='undocumented#SkRefCnt'>SkRefCnt</a> in the parameter <a href='#SkPaint_operator=(const SkPaint& paint)_paint'>paint</a>
+are increased by one. <a href='#SkPaint_operator=(const SkPaint& paint)_paint'>paint</a> is unmodified.
### Parameters
@@ -459,7 +459,7 @@
### Return Value
-content of <a href='#SkPaint_copy_operator_paint'>paint</a>
+content of <a href='#SkPaint_operator=(const SkPaint& paint)_paint'>paint</a>
### Example
@@ -482,12 +482,12 @@
<a href='#SkPaint'>SkPaint</a>& <a href='#SkPaint_move_operator'>operator=(SkPaint&& paint)</a>
</pre>
-Moves the <a href='#SkPaint_move_operator_paint'>paint</a> to avoid increasing the reference counts
-of objects referenced by the <a href='#SkPaint_move_operator_paint'>paint</a> parameter. Objects containing <a href='undocumented#Reference_Count'>Reference Count</a> in the
+Moves the <a href='#SkPaint_operator=(SkPaint&& paint)_paint'>paint</a> to avoid increasing the reference counts
+of objects referenced by the <a href='#SkPaint_operator=(SkPaint&& paint)_paint'>paint</a> parameter. Objects containing <a href='undocumented#SkRefCnt'>SkRefCnt</a> in the
prior destination are decreased by one; those objects are deleted if the resulting count
is zero.
-After the call, <a href='#SkPaint_move_operator_paint'>paint</a> is undefined, and can be safely destructed.
+After the call, <a href='#SkPaint_operator=(SkPaint&& paint)_paint'>paint</a> is undefined, and can be safely destructed.
### Parameters
@@ -498,7 +498,7 @@
### Return Value
-content of <a href='#SkPaint_move_operator_paint'>paint</a>
+content of <a href='#SkPaint_operator=(SkPaint&& paint)_paint'>paint</a>
### Example
@@ -520,23 +520,23 @@
bool <a href='#SkPaint_equal_operator'>operator==(const SkPaint& a, const SkPaint& b)</a>
</pre>
-Compares <a href='#SkPaint_equal_operator_a'>a</a> and <a href='#SkPaint_equal_operator_b'>b</a>, and returns true if <a href='#SkPaint_equal_operator_a'>a</a> and <a href='#SkPaint_equal_operator_b'>b</a> are equivalent. May return false
-if <a href='undocumented#Typeface'>Typeface</a>, <a href='undocumented#Path_Effect'>Path Effect</a>, <a href='undocumented#Shader'>Shader</a>, <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Color_Filter'>Color Filter</a>,
-<a href='undocumented#Draw_Looper'>Draw Looper</a>, or <a href='undocumented#Image_Filter'>Image Filter</a> have identical contents but different pointers.
+Compares <a href='#SkPaint_operator==(const SkPaint& a, const SkPaint& b)_a'>a</a> and <a href='#SkPaint_operator==(const SkPaint& a, const SkPaint& b)_b'>b</a>, and returns true if <a href='#SkPaint_operator==(const SkPaint& a, const SkPaint& b)_a'>a</a> and <a href='#SkPaint_operator==(const SkPaint& a, const SkPaint& b)_b'>b</a> are equivalent. May return false
+if <a href='undocumented#SkTypeface'>SkTypeface</a>, <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>,
+<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>, or <a href='undocumented#SkImageFilter'>SkImageFilter</a> have identical contents but different pointers.
### Parameters
<table> <tr> <td><a name='SkPaint_equal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='#Paint'>Paint</a> to compare</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> to compare</td>
</tr>
<tr> <td><a name='SkPaint_equal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='#Paint'>Paint</a> to compare</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='#Paint'>Paint</a> pair are equivalent
+true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a> pair are equivalent
### Example
@@ -563,23 +563,23 @@
bool <a href='#SkPaint_notequal_operator'>operator!=(const SkPaint& a, const SkPaint& b)</a>
</pre>
-Compares <a href='#SkPaint_notequal_operator_a'>a</a> and <a href='#SkPaint_notequal_operator_b'>b</a>, and returns true if <a href='#SkPaint_notequal_operator_a'>a</a> and <a href='#SkPaint_notequal_operator_b'>b</a> are not equivalent. May return true
-if <a href='undocumented#Typeface'>Typeface</a>, <a href='undocumented#Path_Effect'>Path Effect</a>, <a href='undocumented#Shader'>Shader</a>, <a href='undocumented#Mask_Filter'>Mask Filter</a>, <a href='undocumented#Color_Filter'>Color Filter</a>,
-<a href='undocumented#Draw_Looper'>Draw Looper</a>, or <a href='undocumented#Image_Filter'>Image Filter</a> have identical contents but different pointers.
+Compares <a href='#SkPaint_operator!=(const SkPaint& a, const SkPaint& b)_a'>a</a> and <a href='#SkPaint_operator!=(const SkPaint& a, const SkPaint& b)_b'>b</a>, and returns true if <a href='#SkPaint_operator!=(const SkPaint& a, const SkPaint& b)_a'>a</a> and <a href='#SkPaint_operator!=(const SkPaint& a, const SkPaint& b)_b'>b</a> are not equivalent. May return true
+if <a href='undocumented#SkTypeface'>SkTypeface</a>, <a href='undocumented#SkPathEffect'>SkPathEffect</a>, <a href='undocumented#SkShader'>SkShader</a>, <a href='undocumented#SkMaskFilter'>SkMaskFilter</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>,
+<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>, or <a href='undocumented#SkImageFilter'>SkImageFilter</a> have identical contents but different pointers.
### Parameters
<table> <tr> <td><a name='SkPaint_notequal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='#Paint'>Paint</a> to compare</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> to compare</td>
</tr>
<tr> <td><a name='SkPaint_notequal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='#Paint'>Paint</a> to compare</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='#Paint'>Paint</a> pair are not equivalent
+true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a> pair are not equivalent
### Example
@@ -606,7 +606,7 @@
uint32_t <a href='#SkPaint_getHash'>getHash</a>() const
</pre>
-Returns a hash generated from <a href='#Paint'>Paint</a> values and pointers.
+Returns a hash generated from <a href='SkPaint_Reference#SkPaint'>SkPaint</a> values and pointers.
Identical hashes guarantee that the paints are
equivalent, but differing hashes do not guarantee that the paints have differing
contents.
@@ -707,9 +707,9 @@
</table>
On <a href='undocumented#OS_X'>OS X</a> and iOS, hinting controls whether <a href='undocumented#Core_Graphics'>Core Graphics</a> dilates the font outlines
-to account for LCD text. No hinting uses <a href='undocumented#Core_Text'>Core Text</a> <a href='undocumented#Grayscale'>Grayscale</a> output.
+to account for LCD text. No hinting uses <a href='undocumented#Core_Text'>Core Text</a> grayscale output.
Normal hinting uses <a href='undocumented#Core_Text'>Core Text</a> LCD output. If <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText Flag</a> is clear,
-the LCD output is reduced to a single <a href='undocumented#Grayscale'>Grayscale</a> channel.
+the LCD output is reduced to a single grayscale channel.
On Windows with DirectWrite, <a href='#SkPaint_Hinting'>Hinting</a> has no effect.
@@ -724,11 +724,11 @@
<a href='#SkPaint_Hinting'>Hinting</a> <a href='#SkPaint_getHinting'>getHinting</a>() const
</pre>
-Returns level of glyph outline adjustment.
+Returns level of <a href='undocumented#Glyph'>glyph</a> outline adjustment.
### Return Value
-one of: <a href='#SkPaint_kNo_Hinting'>kNo Hinting</a>, <a href='#SkPaint_kSlight_Hinting'>kSlight Hinting</a>, <a href='#SkPaint_kNormal_Hinting'>kNormal Hinting</a>, <a href='#SkPaint_kFull_Hinting'>kFull Hinting</a>
+one of: <a href='#SkPaint_kNo_Hinting'>kNo_Hinting</a>, <a href='#SkPaint_kSlight_Hinting'>kSlight_Hinting</a>, <a href='#SkPaint_kNormal_Hinting'>kNormal_Hinting</a>, <a href='#SkPaint_kFull_Hinting'>kFull_Hinting</a>
### Example
@@ -915,12 +915,12 @@
uint32_t <a href='#SkPaint_getFlags'>getFlags</a>() const
</pre>
-Returns paint settings described by <a href='#SkPaint_Flags'>Flags</a>. Each setting uses one
-bit, and can be tested with <a href='#SkPaint_Flags'>Flags</a> members.
+Returns <a href='SkPaint_Reference#Paint'>paint</a> settings described by <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a>. Each setting uses one
+bit, and can be tested with <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a> members.
### Return Value
-zero, one, or more bits described by <a href='#SkPaint_Flags'>Flags</a>
+zero, one, or more bits described by <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a>
### Example
@@ -942,13 +942,13 @@
void <a href='#SkPaint_setFlags'>setFlags</a>(uint32_t flags)
</pre>
-Replaces <a href='#SkPaint_Flags'>Flags</a> with <a href='#SkPaint_setFlags_flags'>flags</a>, the union of the <a href='#SkPaint_Flags'>Flags</a> members.
-All <a href='#SkPaint_Flags'>Flags</a> members may be cleared, or one or more may be set.
+Replaces <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a> with <a href='#SkPaint_setFlags_flags'>flags</a>, the union of the <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a> members.
+All <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a> members may be cleared, or one or more may be set.
### Parameters
<table> <tr> <td><a name='SkPaint_setFlags_flags'><code><strong>flags</strong></code></a></td>
- <td>union of <a href='#SkPaint_Flags'>Flags</a> for <a href='#Paint'>Paint</a></td>
+ <td>union of <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a> for <a href='SkPaint_Reference#SkPaint'>SkPaint</a></td>
</tr>
</table>
@@ -1005,13 +1005,13 @@
bool <a href='#SkPaint_isAntiAlias'>isAntiAlias</a>() const
</pre>
-Returns true if pixels on the active edges of <a href='SkPath_Reference#Path'>Path</a> may be drawn with partial transparency.
+Returns true if pixels on the active edges of <a href='SkPath_Reference#SkPath'>SkPath</a> may be drawn with partial transparency.
-Equivalent to <a href='#SkPaint_getFlags'>getFlags</a> masked with <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias Flag</a>.
+Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() masked with <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a>.
### Return Value
-<a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias Flag</a> state
+<a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> state
### Example
@@ -1034,16 +1034,16 @@
void <a href='#SkPaint_setAntiAlias'>setAntiAlias</a>(bool aa)
</pre>
-Requests, but does not require, that <a href='SkPath_Reference#Path'>Path</a> edge pixels draw opaque or with
+Requests, but does not require, that <a href='SkPath_Reference#SkPath'>SkPath</a> edge pixels draw opaque or with
partial transparency.
-Sets <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias Flag</a> if <a href='#SkPaint_setAntiAlias_aa'>aa</a> is true.
-Clears <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias Flag</a> if <a href='#SkPaint_setAntiAlias_aa'>aa</a> is false.
+Sets <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> if <a href='#SkPaint_setAntiAlias_aa'>aa</a> is true.
+Clears <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a> if <a href='#SkPaint_setAntiAlias_aa'>aa</a> is false.
### Parameters
<table> <tr> <td><a name='SkPaint_setAntiAlias_aa'><code><strong>aa</strong></code></a></td>
- <td>setting for <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias Flag</a></td>
+ <td>setting for <a href='#SkPaint_kAntiAlias_Flag'>kAntiAlias_Flag</a></td>
</tr>
</table>
@@ -1105,13 +1105,13 @@
bool <a href='#SkPaint_isDither'>isDither</a>() const
</pre>
-Returns true if color error may be distributed to smooth color transition.
+Returns true if <a href='SkColor_Reference#Color'>color</a> error may be distributed to smooth <a href='SkColor_Reference#Color'>color</a> transition.
-Equivalent to <a href='#SkPaint_getFlags'>getFlags</a> masked with <a href='#SkPaint_kDither_Flag'>kDither Flag</a>.
+Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() masked with <a href='#SkPaint_kDither_Flag'>kDither_Flag</a>.
### Return Value
-<a href='#SkPaint_kDither_Flag'>kDither Flag</a> state
+<a href='#SkPaint_kDither_Flag'>kDither_Flag</a> state
### Example
@@ -1134,15 +1134,15 @@
void <a href='#SkPaint_setDither'>setDither</a>(bool dither)
</pre>
-Requests, but does not require, to distribute color error.
+Requests, but does not require, to distribute <a href='SkColor_Reference#Color'>color</a> error.
-Sets <a href='#SkPaint_kDither_Flag'>kDither Flag</a> if <a href='#SkPaint_setDither_dither'>dither</a> is true.
-Clears <a href='#SkPaint_kDither_Flag'>kDither Flag</a> if <a href='#SkPaint_setDither_dither'>dither</a> is false.
+Sets <a href='#SkPaint_kDither_Flag'>kDither_Flag</a> if <a href='#SkPaint_setDither_dither'>dither</a> is true.
+Clears <a href='#SkPaint_kDither_Flag'>kDither_Flag</a> if <a href='#SkPaint_setDither_dither'>dither</a> is false.
### Parameters
<table> <tr> <td><a name='SkPaint_setDither_dither'><code><strong>dither</strong></code></a></td>
- <td>setting for <a href='#SkPaint_kDither_Flag'>kDither Flag</a></td>
+ <td>setting for <a href='#SkPaint_kDither_Flag'>kDither_Flag</a></td>
</tr>
</table>
@@ -1204,13 +1204,13 @@
bool <a href='#SkPaint_isLinearText'>isLinearText</a>() const
</pre>
-Returns true if text is converted to <a href='SkPath_Reference#Path'>Path</a> before drawing and measuring.
+Returns true if <a href='undocumented#Text'>text</a> is converted to <a href='SkPath_Reference#SkPath'>SkPath</a> before drawing and measuring.
-Equivalent to <a href='#SkPaint_getFlags'>getFlags</a> masked with <a href='#SkPaint_kLinearText_Flag'>kLinearText Flag</a>.
+Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() masked with <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a>.
### Return Value
-<a href='#SkPaint_kLinearText_Flag'>kLinearText Flag</a> state
+<a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> state
### Example
@@ -1228,16 +1228,16 @@
void <a href='#SkPaint_setLinearText'>setLinearText</a>(bool linearText)
</pre>
-Returns true if text is converted to <a href='SkPath_Reference#Path'>Path</a> before drawing and measuring.
-By default, <a href='#SkPaint_kLinearText_Flag'>kLinearText Flag</a> is clear.
+Returns true if <a href='undocumented#Text'>text</a> is converted to <a href='SkPath_Reference#SkPath'>SkPath</a> before drawing and measuring.
+By default, <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> is clear.
-Sets <a href='#SkPaint_kLinearText_Flag'>kLinearText Flag</a> if <a href='#SkPaint_setLinearText_linearText'>linearText</a> is true.
-Clears <a href='#SkPaint_kLinearText_Flag'>kLinearText Flag</a> if <a href='#SkPaint_setLinearText_linearText'>linearText</a> is false.
+Sets <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> if <a href='#SkPaint_setLinearText_linearText'>linearText</a> is true.
+Clears <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a> if <a href='#SkPaint_setLinearText_linearText'>linearText</a> is false.
### Parameters
<table> <tr> <td><a name='SkPaint_setLinearText_linearText'><code><strong>linearText</strong></code></a></td>
- <td>setting for <a href='#SkPaint_kLinearText_Flag'>kLinearText Flag</a></td>
+ <td>setting for <a href='#SkPaint_kLinearText_Flag'>kLinearText_Flag</a></td>
</tr>
</table>
@@ -1263,13 +1263,13 @@
bool <a href='#SkPaint_isSubpixelText'>isSubpixelText</a>() const
</pre>
-Returns true if <a href='undocumented#Glyph'>Glyphs</a> at different sub-pixel positions may differ on pixel edge coverage.
+Returns true if <a href='undocumented#Glyph'>glyphs</a> at different sub-pixel positions may differ on <a href='undocumented#Pixel'>pixel</a> edge coverage.
-Equivalent to <a href='#SkPaint_getFlags'>getFlags</a> masked with <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText Flag</a>.
+Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() masked with <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a>.
### Return Value
-<a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText Flag</a> state
+<a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> state
### Example
@@ -1292,15 +1292,15 @@
void <a href='#SkPaint_setSubpixelText'>setSubpixelText</a>(bool subpixelText)
</pre>
-Requests, but does not require, that <a href='undocumented#Glyph'>Glyphs</a> respect sub-pixel positioning.
+Requests, but does not require, that <a href='undocumented#Glyph'>glyphs</a> respect sub-pixel positioning.
-Sets <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText Flag</a> if <a href='#SkPaint_setSubpixelText_subpixelText'>subpixelText</a> is true.
-Clears <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText Flag</a> if <a href='#SkPaint_setSubpixelText_subpixelText'>subpixelText</a> is false.
+Sets <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> if <a href='#SkPaint_setSubpixelText_subpixelText'>subpixelText</a> is true.
+Clears <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a> if <a href='#SkPaint_setSubpixelText_subpixelText'>subpixelText</a> is false.
### Parameters
<table> <tr> <td><a name='SkPaint_setSubpixelText_subpixelText'><code><strong>subpixelText</strong></code></a></td>
- <td>setting for <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText Flag</a></td>
+ <td>setting for <a href='#SkPaint_kSubpixelText_Flag'>kSubpixelText_Flag</a></td>
</tr>
</table>
@@ -1332,13 +1332,13 @@
bool <a href='#SkPaint_isLCDRenderText'>isLCDRenderText</a>() const
</pre>
-Returns true if <a href='undocumented#Glyph'>Glyphs</a> may use LCD striping to improve glyph edges.
+Returns true if <a href='undocumented#Glyph'>glyphs</a> may use LCD striping to improve <a href='undocumented#Glyph'>glyph</a> edges.
-Returns true if <a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText Flag</a> is set.
+Returns true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Flags'>Flags</a> <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> is set.
### Return Value
-<a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText Flag</a> state
+<a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> state
### Example
@@ -1361,15 +1361,15 @@
void <a href='#SkPaint_setLCDRenderText'>setLCDRenderText</a>(bool lcdText)
</pre>
-Requests, but does not require, that <a href='undocumented#Glyph'>Glyphs</a> use LCD striping for glyph edges.
+Requests, but does not require, that <a href='undocumented#Glyph'>glyphs</a> use LCD striping for <a href='undocumented#Glyph'>glyph</a> edges.
-Sets <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText Flag</a> if <a href='#SkPaint_setLCDRenderText_lcdText'>lcdText</a> is true.
-Clears <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText Flag</a> if <a href='#SkPaint_setLCDRenderText_lcdText'>lcdText</a> is false.
+Sets <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> if <a href='#SkPaint_setLCDRenderText_lcdText'>lcdText</a> is true.
+Clears <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a> if <a href='#SkPaint_setLCDRenderText_lcdText'>lcdText</a> is false.
### Parameters
<table> <tr> <td><a name='SkPaint_setLCDRenderText_lcdText'><code><strong>lcdText</strong></code></a></td>
- <td>setting for <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText Flag</a></td>
+ <td>setting for <a href='#SkPaint_kLCDRenderText_Flag'>kLCDRenderText_Flag</a></td>
</tr>
</table>
@@ -1435,13 +1435,13 @@
bool <a href='#SkPaint_isEmbeddedBitmapText'>isEmbeddedBitmapText</a>() const
</pre>
-Returns true if <a href='undocumented#Engine'>Font Engine</a> may return <a href='undocumented#Glyph'>Glyphs</a> from font bitmaps instead of from outlines.
+Returns true if <a href='undocumented#Font_Engine'>font engine</a> may return <a href='undocumented#Glyph'>glyphs</a> from <a href='undocumented#Font'>font</a> <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> instead of from outlines.
-Equivalent to <a href='#SkPaint_getFlags'>getFlags</a> masked with <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText Flag</a>.
+Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() masked with <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a>.
### Return Value
-<a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText Flag</a> state
+<a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> state
### Example
@@ -1464,15 +1464,15 @@
void <a href='#SkPaint_setEmbeddedBitmapText'>setEmbeddedBitmapText</a>(bool useEmbeddedBitmapText)
</pre>
-Requests, but does not require, to use bitmaps in fonts instead of outlines.
+Requests, but does not require, to use <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> in fonts instead of outlines.
-Sets <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText Flag</a> if <a href='#SkPaint_setEmbeddedBitmapText_useEmbeddedBitmapText'>useEmbeddedBitmapText</a> is true.
-Clears <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText Flag</a> if <a href='#SkPaint_setEmbeddedBitmapText_useEmbeddedBitmapText'>useEmbeddedBitmapText</a> is false.
+Sets <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> if <a href='#SkPaint_setEmbeddedBitmapText_useEmbeddedBitmapText'>useEmbeddedBitmapText</a> is true.
+Clears <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a> if <a href='#SkPaint_setEmbeddedBitmapText_useEmbeddedBitmapText'>useEmbeddedBitmapText</a> is false.
### Parameters
<table> <tr> <td><a name='SkPaint_setEmbeddedBitmapText_useEmbeddedBitmapText'><code><strong>useEmbeddedBitmapText</strong></code></a></td>
- <td>setting for <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText Flag</a></td>
+ <td>setting for <a href='#SkPaint_kEmbeddedBitmapText_Flag'>kEmbeddedBitmapText_Flag</a></td>
</tr>
</table>
@@ -1505,15 +1505,15 @@
bool <a href='#SkPaint_isAutohinted'>isAutohinted</a>() const
</pre>
-Returns true if <a href='#SkPaint_Hinting'>Hinting</a> is set to <a href='#SkPaint_kNormal_Hinting'>kNormal Hinting</a> or <a href='#SkPaint_kFull_Hinting'>kFull Hinting</a>, and if
-platform uses FreeType as the <a href='undocumented#Font_Manager'>Font Manager</a>. If true, instructs
-the <a href='undocumented#Font_Manager'>Font Manager</a> to always hint <a href='undocumented#Glyph'>Glyphs</a>.
+Returns true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Hinting'>Hinting</a> is set to <a href='#SkPaint_kNormal_Hinting'>kNormal_Hinting</a> or <a href='#SkPaint_kFull_Hinting'>kFull_Hinting</a>, and if
+platform uses FreeType as the <a href='undocumented#Font_Manager'>font manager</a>. If true, instructs
+the <a href='undocumented#Font_Manager'>font manager</a> to always hint <a href='undocumented#Glyph'>glyphs</a>.
-Equivalent to <a href='#SkPaint_getFlags'>getFlags</a> masked with <a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting Flag</a>.
+Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() masked with <a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting_Flag</a>.
### Return Value
-<a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting Flag</a> state
+<a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting_Flag</a> state
### Example
@@ -1540,21 +1540,21 @@
void <a href='#SkPaint_setAutohinted'>setAutohinted</a>(bool useAutohinter)
</pre>
-Sets whether to always hint <a href='undocumented#Glyph'>Glyphs</a>.
-If <a href='#SkPaint_Hinting'>Hinting</a> is set to <a href='#SkPaint_kNormal_Hinting'>kNormal Hinting</a> or <a href='#SkPaint_kFull_Hinting'>kFull Hinting</a> and <a href='#SkPaint_setAutohinted_useAutohinter'>useAutohinter</a> is set,
-instructs the <a href='undocumented#Font_Manager'>Font Manager</a> to always hint <a href='undocumented#Glyph'>Glyphs</a>.
-<a href='#Automatic_Hinting'>Automatic Hinting</a> has no effect if <a href='#SkPaint_Hinting'>Hinting</a> is set to <a href='#SkPaint_kNo_Hinting'>kNo Hinting</a> or
-<a href='#SkPaint_kSlight_Hinting'>kSlight Hinting</a>.
+Sets whether to always hint <a href='undocumented#Glyph'>glyphs</a>.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Hinting'>Hinting</a> is set to <a href='#SkPaint_kNormal_Hinting'>kNormal_Hinting</a> or <a href='#SkPaint_kFull_Hinting'>kFull_Hinting</a> and <a href='#SkPaint_setAutohinted_useAutohinter'>useAutohinter</a> is set,
+instructs the <a href='undocumented#Font_Manager'>font manager</a> to always hint <a href='undocumented#Glyph'>glyphs</a>.
+<a href='SkPaint_Reference#Automatic_Hinting'>auto-hinting</a> has no effect if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Hinting'>Hinting</a> is set to <a href='#SkPaint_kNo_Hinting'>kNo_Hinting</a> or
+<a href='#SkPaint_kSlight_Hinting'>kSlight_Hinting</a>.
-Only affects platforms that use FreeType as the <a href='undocumented#Font_Manager'>Font Manager</a>.
+Only affects platforms that use FreeType as the <a href='undocumented#Font_Manager'>font manager</a>.
-Sets <a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting Flag</a> if <a href='#SkPaint_setAutohinted_useAutohinter'>useAutohinter</a> is true.
-Clears <a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting Flag</a> if <a href='#SkPaint_setAutohinted_useAutohinter'>useAutohinter</a> is false.
+Sets <a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting_Flag</a> if <a href='#SkPaint_setAutohinted_useAutohinter'>useAutohinter</a> is true.
+Clears <a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting_Flag</a> if <a href='#SkPaint_setAutohinted_useAutohinter'>useAutohinter</a> is false.
### Parameters
<table> <tr> <td><a name='SkPaint_setAutohinted_useAutohinter'><code><strong>useAutohinter</strong></code></a></td>
- <td>setting for <a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting Flag</a></td>
+ <td>setting for <a href='#SkPaint_kAutoHinting_Flag'>kAutoHinting_Flag</a></td>
</tr>
</table>
@@ -1595,14 +1595,14 @@
bool <a href='#SkPaint_isFakeBoldText'>isFakeBoldText</a>() const
</pre>
-Returns true if approximate bold by increasing the stroke width when creating glyph bitmaps
+Returns true if approximate bold by increasing the <a href='#Stroke_Width'>stroke width</a> when creating <a href='undocumented#Glyph'>glyph</a> <a href='SkBitmap_Reference#Bitmap'>bitmaps</a>
from outlines.
-Equivalent to <a href='#SkPaint_getFlags'>getFlags</a> masked with <a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText Flag</a>.
+Equivalent to <a href='#SkPaint_getFlags'>getFlags</a>() masked with <a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText_Flag</a>.
### Return Value
-<a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText Flag</a> state
+<a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText_Flag</a> state
### Example
@@ -1625,15 +1625,15 @@
void <a href='#SkPaint_setFakeBoldText'>setFakeBoldText</a>(bool fakeBoldText)
</pre>
-Increases stroke width when creating glyph bitmaps to approximate a bold typeface.
+Increases <a href='#Stroke_Width'>stroke width</a> when creating <a href='undocumented#Glyph'>glyph</a> <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> to approximate a bold <a href='undocumented#Typeface'>typeface</a>.
-Sets <a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText Flag</a> if <a href='#SkPaint_setFakeBoldText_fakeBoldText'>fakeBoldText</a> is true.
-Clears <a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText Flag</a> if <a href='#SkPaint_setFakeBoldText_fakeBoldText'>fakeBoldText</a> is false.
+Sets <a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText_Flag</a> if <a href='#SkPaint_setFakeBoldText_fakeBoldText'>fakeBoldText</a> is true.
+Clears <a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText_Flag</a> if <a href='#SkPaint_setFakeBoldText_fakeBoldText'>fakeBoldText</a> is false.
### Parameters
<table> <tr> <td><a name='SkPaint_setFakeBoldText_fakeBoldText'><code><strong>fakeBoldText</strong></code></a></td>
- <td>setting for <a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText Flag</a></td>
+ <td>setting for <a href='#SkPaint_kFakeBoldText_Flag'>kFakeBoldText_Flag</a></td>
</tr>
</table>
@@ -1652,12 +1652,12 @@
<a name='Full_Hinting_Spacing'></a>
if <a href='#SkPaint_Hinting'>Hinting</a> is set to <a href='#SkPaint_kFull_Hinting'>kFull Hinting</a>, <a href='#Full_Hinting_Spacing'>Full Hinting Spacing</a> adjusts the character
-spacing by the difference of the hinted and <a href='undocumented#Unhinted'>Unhinted</a> <a href='undocumented#Left_Side_Bearing'>Left Side Bearing</a> and
+spacing by the difference of the hinted and unhinted <a href='undocumented#Left_Side_Bearing'>Left Side Bearing</a> and
<a href='undocumented#Right_Side_Bearing'>Right Side Bearing</a>. <a href='#Full_Hinting_Spacing'>Full Hinting Spacing</a> only applies to platforms that use
FreeType as their <a href='undocumented#Engine'>Font Engine</a>.
-<a href='#Full_Hinting_Spacing'>Full Hinting Spacing</a> is not related to text <a href='undocumented#Kerning'>Kerning</a>, where the space between
-a specific pair of characters is adjusted using data in the font <a href='undocumented#Kerning'>Kerning</a> tables.
+<a href='#Full_Hinting_Spacing'>Full Hinting Spacing</a> is not related to text kerning, where the space between
+a specific pair of characters is adjusted using data in the font kerning tables.
<a name='SkPaint_isDevKernText'></a>
@@ -1718,12 +1718,13 @@
<a href='undocumented#SkFilterQuality'>SkFilterQuality</a> <a href='#SkPaint_getFilterQuality'>getFilterQuality</a>() const
</pre>
-Returns <a href='undocumented#Filter_Quality'>Filter Quality</a>, the image filtering level. A lower setting
-draws faster; a higher setting looks better when the image is scaled.
+Returns <a href='undocumented#SkFilterQuality'>SkFilterQuality</a>, the <a href='SkImage_Reference#Image'>image</a> filtering level. A lower setting
+draws faster; a higher setting looks better when the <a href='SkImage_Reference#Image'>image</a> is scaled.
### Return Value
one of: <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a>,
+
<a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a>, <a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a>
### Example
@@ -1746,18 +1747,19 @@
void <a href='#SkPaint_setFilterQuality'>setFilterQuality</a>(<a href='undocumented#SkFilterQuality'>SkFilterQuality</a> quality)
</pre>
-Sets <a href='undocumented#Filter_Quality'>Filter Quality</a>, the image filtering level. A lower setting
-draws faster; a higher setting looks better when the image is scaled.
+Sets <a href='undocumented#SkFilterQuality'>SkFilterQuality</a>, the <a href='SkImage_Reference#Image'>image</a> filtering level. A lower setting
+draws faster; a higher setting looks better when the <a href='SkImage_Reference#Image'>image</a> is scaled.
Does not check to see if <a href='#SkPaint_setFilterQuality_quality'>quality</a> is valid.
### Parameters
<table> <tr> <td><a name='SkPaint_setFilterQuality_quality'><code><strong>quality</strong></code></a></td>
- <td>one of: <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a>,
-<a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a>, <a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a></td>
+ <td>one of: <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a>,</td>
</tr>
</table>
+<a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a>, <a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a>
+
### Example
<div><fiddle-embed name="e4288fabf24ee60b645e8bb6ea0afadf">
@@ -1811,13 +1813,13 @@
<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkPaint_getColor'>getColor</a>() const
</pre>
-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.
+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 <a href='SkColor_Reference#Color'>color</a> component.
### Return Value
-<a href='undocumented#Unpremultiply'>Unpremultiplied</a> ARGB
+<a href='undocumented#Unpremultiply'>unpremultiplied</a> ARGB
### Example
@@ -1843,12 +1845,12 @@
<a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a> <a href='#SkPaint_getColor4f'>getColor4f</a>() const
</pre>
-Retrieves alpha and RGB, unpmreultiplied, as four floating point values. RGB are
+Retrieves <a href='SkColor_Reference#Alpha'>alpha</a> and RGB, <a href='undocumented#Unpremultiply'>unpremultiplied</a>, as four floating <a href='SkPoint_Reference#Point'>point</a> values. RGB are
are extended sRGB values (sRGB gamut, and encoded with the sRGB transfer function).
### Return Value
-<a href='undocumented#Unpremultiply'>Unpremultiplied</a> RGBA
+<a href='undocumented#Unpremultiply'>unpremultiplied</a> RGBA
### Example
@@ -1874,13 +1876,13 @@
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 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.
+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> ARGB</td>
+ <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> ARGB</td>
</tr>
</table>
@@ -1908,18 +1910,18 @@
void <a href='#SkPaint_setColor4f'>setColor4f</a>(const <a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a>& color, <a href='undocumented#SkColorSpace'>SkColorSpace</a>* colorSpace)
</pre>
-Sets alpha and RGB used when stroking and filling. The <a href='#SkPaint_setColor4f_color'>color</a> is four floating
-point values, unpremultiplied. The <a href='#SkPaint_setColor4f_color'>color</a> values are interpreted as being in
+Sets <a href='SkColor_Reference#Alpha'>alpha</a> and RGB used when stroking and filling. The <a href='#SkPaint_setColor4f_color'>color</a> is four floating
+<a href='SkPoint_Reference#Point'>point</a> values, <a href='undocumented#Unpremultiply'>unpremultiplied</a>. The <a href='#SkPaint_setColor4f_color'>color</a> values are interpreted as being in
the <a href='#SkPaint_setColor4f_colorSpace'>colorSpace</a>. If <a href='#SkPaint_setColor4f_colorSpace'>colorSpace</a> is nullptr, then <a href='#SkPaint_setColor4f_color'>color</a> is assumed to be in the
-sRGB <a href='#SkPaint_setColor4f_color'>color</a> space.
+sRGB <a href='undocumented#Color_Space'>color space</a>.
### Parameters
<table> <tr> <td><a name='SkPaint_setColor4f_color'><code><strong>color</strong></code></a></td>
- <td><a href='undocumented#Unpremultiply'>Unpremultiplied</a> RGBA</td>
+ <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> RGBA</td>
</tr>
<tr> <td><a name='SkPaint_setColor4f_colorSpace'><code><strong>colorSpace</strong></code></a></td>
- <td><a href='undocumented#Color_Space'>Color Space</a> describing the encoding of <a href='#SkPaint_setColor4f_color'>color</a></td>
+ <td><a href='undocumented#SkColorSpace'>SkColorSpace</a> describing the encoding of <a href='#SkPaint_setColor4f_color'>color</a></td>
</tr>
</table>
@@ -1951,11 +1953,11 @@
uint8_t <a href='#SkPaint_getAlpha'>getAlpha</a>() const
</pre>
-Retrieves <a href='SkColor_Reference#Alpha'>Alpha</a> from the <a href='SkColor_Reference#Color'>Color</a> used when stroking and filling.
+Retrieves <a href='SkColor_Reference#Alpha'>alpha</a> from the <a href='SkColor_Reference#Color'>color</a> used when stroking and filling.
### Return Value
-<a href='SkColor_Reference#Alpha'>Alpha</a> ranging from zero, fully transparent, to 255, fully opaque
+<a href='SkColor_Reference#Alpha'>alpha</a> ranging from zero, fully transparent, to 255, fully opaque
### Example
@@ -1977,16 +1979,16 @@
void <a href='#SkPaint_setAlpha'>setAlpha</a>(<a href='undocumented#U8CPU'>U8CPU</a> a)
</pre>
-Replaces <a href='SkColor_Reference#Alpha'>Alpha</a>, leaving RGB
+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>
+<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>
fully opaque.
### Parameters
<table> <tr> <td><a name='SkPaint_setAlpha_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkColor_Reference#Alpha'>Alpha</a> component of <a href='SkColor_Reference#Color'>Color</a></td>
+ <td><a href='SkColor_Reference#Alpha'>alpha</a> component of <a href='SkColor_Reference#Color'>color</a></td>
</tr>
</table>
@@ -2010,13 +2012,13 @@
void <a href='#SkPaint_setARGB'>setARGB</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>
-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 RGB.
+Sets <a href='SkColor_Reference#Color'>color</a> used when drawing solid fills. The <a href='SkColor_Reference#Color'>color</a> components range from 0 to 255.
+The <a href='SkColor_Reference#Color'>color</a> is <a href='undocumented#Unpremultiply'>unpremultiplied</a>; <a href='SkColor_Reference#Alpha'>alpha</a> sets the transparency independent of RGB.
### Parameters
<table> <tr> <td><a name='SkPaint_setARGB_a'><code><strong>a</strong></code></a></td>
- <td>amount of <a href='SkColor_Reference#Alpha'>Color Alpha</a>, from fully transparent (0) to fully opaque (255)</td>
+ <td>amount of <a href='SkColor_Reference#Alpha'>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 red, from no red (0) to full red (255)</td>
@@ -2170,7 +2172,7 @@
### Return Value
-one of:<a href='#SkPaint_kFill_Style'>kFill Style</a>, <a href='#SkPaint_kStroke_Style'>kStroke Style</a>, <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill Style</a>
+one of:<a href='#SkPaint_kFill_Style'>kFill_Style</a>, <a href='#SkPaint_kStroke_Style'>kStroke_Style</a>, <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill_Style</a>
### Example
@@ -2197,12 +2199,12 @@
</pre>
Sets whether the geometry is filled, stroked, or filled and stroked.
-Has no effect if <a href='#SkPaint_setStyle_style'>style</a> is not a legal <a href='#SkPaint_Style'>Style</a> value.
+Has no effect if <a href='#SkPaint_setStyle_style'>style</a> is not a legal <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> value.
### Parameters
<table> <tr> <td><a name='SkPaint_setStyle_style'><code><strong>style</strong></code></a></td>
- <td>one of: <a href='#SkPaint_kFill_Style'>kFill Style</a>, <a href='#SkPaint_kStroke_Style'>kStroke Style</a>, <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill Style</a></td>
+ <td>one of: <a href='#SkPaint_kFill_Style'>kFill_Style</a>, <a href='#SkPaint_kStroke_Style'>kStroke_Style</a>, <a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill_Style</a></td>
</tr>
</table>
@@ -2245,12 +2247,12 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getStrokeWidth'>getStrokeWidth</a>() const
</pre>
-Returns the thickness of the pen used by <a href='#Paint'>Paint</a> to
+Returns the thickness of the pen used by <a href='SkPaint_Reference#SkPaint'>SkPaint</a> to
outline the shape.
### Return Value
-zero for <a href='#Hairline'>Hairline</a>, greater than zero for pen thickness
+zero for hairline, greater than zero for pen thickness
### Example
@@ -2272,14 +2274,14 @@
void <a href='#SkPaint_setStrokeWidth'>setStrokeWidth</a>(<a href='undocumented#SkScalar'>SkScalar</a> width)
</pre>
-Sets the thickness of the pen used by the paint to
+Sets the thickness of the pen used by the <a href='SkPaint_Reference#Paint'>paint</a> to
outline the shape.
Has no effect if <a href='#SkPaint_setStrokeWidth_width'>width</a> is less than zero.
### Parameters
<table> <tr> <td><a name='SkPaint_setStrokeWidth_width'><code><strong>width</strong></code></a></td>
- <td>zero thickness for <a href='#Hairline'>Hairline</a>; greater than zero for pen thickness</td>
+ <td>zero thickness for hairline; greater than zero for pen thickness</td>
</tr>
</table>
@@ -2350,7 +2352,7 @@
### Return Value
-zero and greater <a href='#Miter_Limit'>Miter Limit</a>
+zero and greater <a href='#Miter_Limit'>miter limit</a>
### Example
@@ -2383,7 +2385,7 @@
### Parameters
<table> <tr> <td><a name='SkPaint_setStrokeMiter_miter'><code><strong>miter</strong></code></a></td>
- <td>zero and greater <a href='#Miter_Limit'>Miter Limit</a></td>
+ <td>zero and greater <a href='#Miter_Limit'>miter limit</a></td>
</tr>
</table>
@@ -2510,7 +2512,7 @@
### Return Value
-one of: <a href='#SkPaint_kButt_Cap'>kButt Cap</a>, <a href='#SkPaint_kRound_Cap'>kRound Cap</a>, <a href='#SkPaint_kSquare_Cap'>kSquare Cap</a>
+one of: <a href='#SkPaint_kButt_Cap'>kButt_Cap</a>, <a href='#SkPaint_kRound_Cap'>kRound_Cap</a>, <a href='#SkPaint_kSquare_Cap'>kSquare_Cap</a>
### Example
@@ -2541,11 +2543,12 @@
### Parameters
<table> <tr> <td><a name='SkPaint_setStrokeCap_cap'><code><strong>cap</strong></code></a></td>
- <td>one of: <a href='#SkPaint_kButt_Cap'>kButt Cap</a>, <a href='#SkPaint_kRound_Cap'>kRound Cap</a>, <a href='#SkPaint_kSquare_Cap'>kSquare Cap</a>;
-has no effect if <a href='#SkPaint_setStrokeCap_cap'>cap</a> is not valid</td>
+ <td>one of: <a href='#SkPaint_kButt_Cap'>kButt_Cap</a>, <a href='#SkPaint_kRound_Cap'>kRound_Cap</a>, <a href='#SkPaint_kSquare_Cap'>kSquare_Cap</a>;</td>
</tr>
</table>
+has no effect if <a href='#SkPaint_setStrokeCap_cap'>cap</a> is not valid
+
### Example
<div><fiddle-embed name="de83fbd848a4625345b4b87a6e55d98a">
@@ -2677,7 +2680,7 @@
### Return Value
-one of: <a href='#SkPaint_kMiter_Join'>kMiter Join</a>, <a href='#SkPaint_kRound_Join'>kRound Join</a>, <a href='#SkPaint_kBevel_Join'>kBevel Join</a>
+one of: <a href='#SkPaint_kMiter_Join'>kMiter_Join</a>, <a href='#SkPaint_kRound_Join'>kRound_Join</a>, <a href='#SkPaint_kBevel_Join'>kBevel_Join</a>
### Example
@@ -2708,11 +2711,12 @@
### Parameters
<table> <tr> <td><a name='SkPaint_setStrokeJoin_join'><code><strong>join</strong></code></a></td>
- <td>one of: <a href='#SkPaint_kMiter_Join'>kMiter Join</a>, <a href='#SkPaint_kRound_Join'>kRound Join</a>, <a href='#SkPaint_kBevel_Join'>kBevel Join</a>;
-otherwise, has no effect</td>
+ <td>one of: <a href='#SkPaint_kMiter_Join'>kMiter_Join</a>, <a href='#SkPaint_kRound_Join'>kRound_Join</a>, <a href='#SkPaint_kBevel_Join'>kBevel_Join</a>;</td>
</tr>
</table>
+otherwise, has no effect
+
### Example
<div><fiddle-embed name="48d963ad4286eddf680f9c511eb6da91">
@@ -2767,28 +2771,29 @@
bool <a href='#SkPaint_getFillPath'>getFillPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& src, <a href='SkPath_Reference#SkPath'>SkPath</a>* dst, const <a href='SkRect_Reference#SkRect'>SkRect</a>* cullRect, <a href='undocumented#SkScalar'>SkScalar</a> resScale = 1) const
</pre>
-Returns the filled equivalent of the stroked path.
+Returns the filled equivalent of the stroked <a href='SkPath_Reference#Path'>path</a>.
### Parameters
<table> <tr> <td><a name='SkPaint_getFillPath_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkPath_Reference#Path'>Path</a> read to create a filled version</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> read to create a filled version</td>
</tr>
<tr> <td><a name='SkPaint_getFillPath_dst'><code><strong>dst</strong></code></a></td>
- <td>resulting <a href='SkPath_Reference#Path'>Path</a>; may be the same as <a href='#SkPaint_getFillPath_src'>src</a>, but may not be nullptr</td>
+ <td>resulting <a href='SkPath_Reference#SkPath'>SkPath</a>; may be the same as <a href='#SkPaint_getFillPath_src'>src</a>, but may not be nullptr</td>
</tr>
<tr> <td><a name='SkPaint_getFillPath_cullRect'><code><strong>cullRect</strong></code></a></td>
- <td>optional limit passed to <a href='undocumented#Path_Effect'>Path Effect</a></td>
+ <td>optional limit passed to <a href='undocumented#SkPathEffect'>SkPathEffect</a></td>
</tr>
<tr> <td><a name='SkPaint_getFillPath_resScale'><code><strong>resScale</strong></code></a></td>
- <td>if > 1, increase precision, else if (0 < res < 1) reduce precision
-to favor speed and size</td>
+ <td>if > 1, increase precision, else if (0 < <a href='#SkPaint_getFillPath_resScale'>resScale</a> < 1) reduce precision</td>
</tr>
</table>
+to favor speed and <a href='undocumented#Size'>size</a>
+
### Return Value
-true if the path represents <a href='#Style_Fill'>Style Fill</a>, or false if it represents <a href='#Hairline'>Hairline</a>
+true if the <a href='SkPath_Reference#Path'>path</a> represents <a href='#Style_Fill'>style fill</a>, or false if it represents hairline
### Example
@@ -2805,24 +2810,24 @@
bool <a href='#SkPaint_getFillPath'>getFillPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& src, <a href='SkPath_Reference#SkPath'>SkPath</a>* dst) const
</pre>
-Returns the filled equivalent of the stroked path.
+Returns the filled equivalent of the stroked <a href='SkPath_Reference#Path'>path</a>.
-Replaces <a href='#SkPaint_getFillPath_2_dst'>dst</a> with the <a href='#SkPaint_getFillPath_2_src'>src</a> path modified by <a href='undocumented#Path_Effect'>Path Effect</a> and <a href='#Style_Stroke'>Style Stroke</a>.
-<a href='undocumented#Path_Effect'>Path Effect</a>, if any, is not culled. <a href='#Stroke_Width'>Stroke Width</a> is created with default precision.
+Replaces <a href='#SkPaint_getFillPath_2_dst'>dst</a> with the <a href='#SkPaint_getFillPath_2_src'>src</a> <a href='SkPath_Reference#Path'>path</a> modified by <a href='undocumented#SkPathEffect'>SkPathEffect</a> and <a href='#Style_Stroke'>style stroke</a>.
+<a href='undocumented#SkPathEffect'>SkPathEffect</a>, if any, is not culled. <a href='#Stroke_Width'>stroke width</a> is created with default precision.
### Parameters
<table> <tr> <td><a name='SkPaint_getFillPath_2_src'><code><strong>src</strong></code></a></td>
- <td><a href='SkPath_Reference#Path'>Path</a> read to create a filled version</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> read to create a filled version</td>
</tr>
<tr> <td><a name='SkPaint_getFillPath_2_dst'><code><strong>dst</strong></code></a></td>
- <td>resulting <a href='SkPath_Reference#Path'>Path</a> <a href='#SkPaint_getFillPath_2_dst'>dst</a> may be the same as <a href='#SkPaint_getFillPath_2_src'>src</a>, but may not be nullptr</td>
+ <td>resulting <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='#SkPaint_getFillPath_2_dst'>dst</a> may be the same as <a href='#SkPaint_getFillPath_2_src'>src</a>, but may not be nullptr</td>
</tr>
</table>
### Return Value
-true if the path represents <a href='#Style_Fill'>Style Fill</a>, or false if it represents <a href='#Hairline'>Hairline</a>
+true if the <a href='SkPath_Reference#Path'>path</a> represents <a href='#Style_Fill'>style fill</a>, or false if it represents hairline
### Example
@@ -2860,13 +2865,13 @@
<a href='undocumented#SkShader'>SkShader</a>* <a href='#SkPaint_getShader'>getShader</a>() const
</pre>
-Returns optional colors used when filling a path, such as a gradient.
+Returns optional colors used when filling a <a href='SkPath_Reference#Path'>path</a>, such as a gradient.
-Does not alter <a href='undocumented#Shader'>Shader</a> <a href='undocumented#Reference_Count'>Reference Count</a>.
+Does not alter <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a>.
### Return Value
-<a href='undocumented#Shader'>Shader</a> if previously set, nullptr otherwise
+<a href='undocumented#SkShader'>SkShader</a> if previously set, nullptr otherwise
### Example
@@ -2889,13 +2894,13 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkShader'>SkShader</a>> <a href='#SkPaint_refShader'>refShader</a>() const
</pre>
-Returns optional colors used when filling a path, such as a gradient.
+Returns optional colors used when filling a <a href='SkPath_Reference#Path'>path</a>, such as a gradient.
-Increases <a href='undocumented#Shader'>Shader</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+Increases <a href='undocumented#SkShader'>SkShader</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Return Value
-<a href='undocumented#Shader'>Shader</a> if previously set, nullptr otherwise
+<a href='undocumented#SkShader'>SkShader</a> if previously set, nullptr otherwise
### Example
@@ -2918,15 +2923,15 @@
void <a href='#SkPaint_setShader'>setShader</a>(<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkShader'>SkShader</a>> shader)
</pre>
-Sets optional colors used when filling a path, such as a gradient.
+Sets optional colors used when filling a <a href='SkPath_Reference#Path'>path</a>, such as a gradient.
-Sets <a href='undocumented#Shader'>Shader</a> to <a href='#SkPaint_setShader_shader'>shader</a>, decreasing <a href='undocumented#Reference_Count'>Reference Count</a> of the previous <a href='undocumented#Shader'>Shader</a>.
-Increments <a href='#SkPaint_setShader_shader'>shader</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+Sets <a href='undocumented#SkShader'>SkShader</a> to <a href='#SkPaint_setShader_shader'>shader</a>, decreasing <a href='undocumented#SkRefCnt'>SkRefCnt</a> of the previous <a href='undocumented#SkShader'>SkShader</a>.
+Increments <a href='#SkPaint_setShader_shader'>shader</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Parameters
<table> <tr> <td><a name='SkPaint_setShader_shader'><code><strong>shader</strong></code></a></td>
- <td>how geometry is filled with color; if nullptr, <a href='SkColor_Reference#Color'>Color</a> is used instead</td>
+ <td>how geometry is filled with <a href='SkColor_Reference#Color'>color</a>; if nullptr, <a href='SkColor_Reference#Color'>color</a> is used instead</td>
</tr>
</table>
@@ -2956,12 +2961,12 @@
<a href='undocumented#SkColorFilter'>SkColorFilter</a>* <a href='#SkPaint_getColorFilter'>getColorFilter</a>() const
</pre>
-Returns <a href='undocumented#Color_Filter'>Color Filter</a> if set, or nullptr.
-Does not alter <a href='undocumented#Color_Filter'>Color Filter</a> <a href='undocumented#Reference_Count'>Reference Count</a>.
+Returns <a href='undocumented#SkColorFilter'>SkColorFilter</a> if set, or nullptr.
+Does not alter <a href='undocumented#SkColorFilter'>SkColorFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a>.
### Return Value
-<a href='undocumented#Color_Filter'>Color Filter</a> if previously set, nullptr otherwise
+<a href='undocumented#SkColorFilter'>SkColorFilter</a> if previously set, nullptr otherwise
### Example
@@ -2984,12 +2989,12 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorFilter'>SkColorFilter</a>> <a href='#SkPaint_refColorFilter'>refColorFilter</a>() const
</pre>
-Returns <a href='undocumented#Color_Filter'>Color Filter</a> if set, or nullptr.
-Increases <a href='undocumented#Color_Filter'>Color Filter</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+Returns <a href='undocumented#SkColorFilter'>SkColorFilter</a> if set, or nullptr.
+Increases <a href='undocumented#SkColorFilter'>SkColorFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Return Value
-<a href='undocumented#Color_Filter'>Color Filter</a> if set, or nullptr
+<a href='undocumented#SkColorFilter'>SkColorFilter</a> if set, or nullptr
### Example
@@ -3012,15 +3017,15 @@
void <a href='#SkPaint_setColorFilter'>setColorFilter</a>(<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorFilter'>SkColorFilter</a>> colorFilter)
</pre>
-Sets <a href='undocumented#Color_Filter'>Color Filter</a> to filter, decreasing <a href='undocumented#Reference_Count'>Reference Count</a> of the previous
-<a href='undocumented#Color_Filter'>Color Filter</a>. Pass nullptr to clear <a href='undocumented#Color_Filter'>Color Filter</a>.
+Sets <a href='undocumented#SkColorFilter'>SkColorFilter</a> to filter, decreasing <a href='undocumented#SkRefCnt'>SkRefCnt</a> of the previous
+<a href='undocumented#SkColorFilter'>SkColorFilter</a>. Pass nullptr to clear <a href='undocumented#SkColorFilter'>SkColorFilter</a>.
-Increments filter <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+Increments filter <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Parameters
<table> <tr> <td><a name='SkPaint_setColorFilter_colorFilter'><code><strong>colorFilter</strong></code></a></td>
- <td><a href='undocumented#Color_Filter'>Color Filter</a> to apply to subsequent draw</td>
+ <td><a href='undocumented#SkColorFilter'>SkColorFilter</a> to apply to subsequent draw</td>
</tr>
</table>
@@ -3052,12 +3057,12 @@
<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> <a href='#SkPaint_getBlendMode'>getBlendMode</a>() const
</pre>
-Returns <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>.
-By default, returns <a href='SkBlendMode_Reference#SkBlendMode_kSrcOver'>SkBlendMode::kSrcOver</a>.
+Returns <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>.
+By default, returns <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a>.
### Return Value
-mode used to combine source color with destination color
+mode used to combine source <a href='SkColor_Reference#Color'>color</a> with destination <a href='SkColor_Reference#Color'>color</a>
### Example
@@ -3080,11 +3085,11 @@
bool <a href='#SkPaint_isSrcOver'>isSrcOver</a>() const
</pre>
-Returns true if <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> is <a href='SkBlendMode_Reference#SkBlendMode_kSrcOver'>SkBlendMode::kSrcOver</a>, the default.
+Returns true if <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> is <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a>, the default.
### Return Value
-true if <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> is <a href='SkBlendMode_Reference#SkBlendMode_kSrcOver'>SkBlendMode::kSrcOver</a>
+true if <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> is <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>::<a href='#SkBlendMode_kSrcOver'>kSrcOver</a>
### Example
@@ -3107,13 +3112,13 @@
void <a href='#SkPaint_setBlendMode'>setBlendMode</a>(<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> mode)
</pre>
-Sets <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> to <a href='#SkPaint_setBlendMode_mode'>mode</a>.
+Sets <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> to <a href='#SkPaint_setBlendMode_mode'>mode</a>.
Does not check for valid input.
### Parameters
<table> <tr> <td><a name='SkPaint_setBlendMode_mode'><code><strong>mode</strong></code></a></td>
- <td><a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> used to combine source color and destination</td>
+ <td><a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> used to combine source <a href='SkColor_Reference#Color'>color</a> and destination</td>
</tr>
</table>
@@ -3154,12 +3159,12 @@
<a href='undocumented#SkPathEffect'>SkPathEffect</a>* <a href='#SkPaint_getPathEffect'>getPathEffect</a>() const
</pre>
-Returns <a href='undocumented#Path_Effect'>Path Effect</a> if set, or nullptr.
-Does not alter <a href='undocumented#Path_Effect'>Path Effect</a> <a href='undocumented#Reference_Count'>Reference Count</a>.
+Returns <a href='undocumented#SkPathEffect'>SkPathEffect</a> if set, or nullptr.
+Does not alter <a href='undocumented#SkPathEffect'>SkPathEffect</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a>.
### Return Value
-<a href='undocumented#Path_Effect'>Path Effect</a> if previously set, nullptr otherwise
+<a href='undocumented#SkPathEffect'>SkPathEffect</a> if previously set, nullptr otherwise
### Example
@@ -3182,12 +3187,12 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkPathEffect'>SkPathEffect</a>> <a href='#SkPaint_refPathEffect'>refPathEffect</a>() const
</pre>
-Returns <a href='undocumented#Path_Effect'>Path Effect</a> if set, or nullptr.
-Increases <a href='undocumented#Path_Effect'>Path Effect</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+Returns <a href='undocumented#SkPathEffect'>SkPathEffect</a> if set, or nullptr.
+Increases <a href='undocumented#SkPathEffect'>SkPathEffect</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Return Value
-<a href='undocumented#Path_Effect'>Path Effect</a> if previously set, nullptr otherwise
+<a href='undocumented#SkPathEffect'>SkPathEffect</a> if previously set, nullptr otherwise
### Example
@@ -3210,15 +3215,15 @@
void <a href='#SkPaint_setPathEffect'>setPathEffect</a>(<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkPathEffect'>SkPathEffect</a>> pathEffect)
</pre>
-Sets <a href='undocumented#Path_Effect'>Path Effect</a> to <a href='#SkPaint_setPathEffect_pathEffect'>pathEffect</a>, decreasing <a href='undocumented#Reference_Count'>Reference Count</a> of the previous
-<a href='undocumented#Path_Effect'>Path Effect</a>. Pass nullptr to leave the path geometry unaltered.
+Sets <a href='undocumented#SkPathEffect'>SkPathEffect</a> to <a href='#SkPaint_setPathEffect_pathEffect'>pathEffect</a>, decreasing <a href='undocumented#SkRefCnt'>SkRefCnt</a> of the previous
+<a href='undocumented#SkPathEffect'>SkPathEffect</a>. Pass nullptr to leave the <a href='SkPath_Reference#Path'>path</a> geometry unaltered.
-Increments <a href='#SkPaint_setPathEffect_pathEffect'>pathEffect</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+Increments <a href='#SkPaint_setPathEffect_pathEffect'>pathEffect</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Parameters
<table> <tr> <td><a name='SkPaint_setPathEffect_pathEffect'><code><strong>pathEffect</strong></code></a></td>
- <td>replace <a href='SkPath_Reference#Path'>Path</a> with a modification when drawn</td>
+ <td>replace <a href='SkPath_Reference#SkPath'>SkPath</a> with a modification when drawn</td>
</tr>
</table>
@@ -3249,12 +3254,12 @@
<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>* <a href='#SkPaint_getMaskFilter'>getMaskFilter</a>() const
</pre>
-Returns <a href='undocumented#Mask_Filter'>Mask Filter</a> if set, or nullptr.
-Does not alter <a href='undocumented#Mask_Filter'>Mask Filter</a> <a href='undocumented#Reference_Count'>Reference Count</a>.
+Returns <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> if set, or nullptr.
+Does not alter <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a>.
### Return Value
-<a href='undocumented#Mask_Filter'>Mask Filter</a> if previously set, nullptr otherwise
+<a href='undocumented#SkMaskFilter'>SkMaskFilter</a> if previously set, nullptr otherwise
### Example
@@ -3277,13 +3282,13 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>> <a href='#SkPaint_refMaskFilter'>refMaskFilter</a>() const
</pre>
-Returns <a href='undocumented#Mask_Filter'>Mask Filter</a> if set, or nullptr.
+Returns <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> if set, or nullptr.
-Increases <a href='undocumented#Mask_Filter'>Mask Filter</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+Increases <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Return Value
-<a href='undocumented#Mask_Filter'>Mask Filter</a> if previously set, nullptr otherwise
+<a href='undocumented#SkMaskFilter'>SkMaskFilter</a> if previously set, nullptr otherwise
### Example
@@ -3306,11 +3311,11 @@
void <a href='#SkPaint_setMaskFilter'>setMaskFilter</a>(<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>> maskFilter)
</pre>
-Sets <a href='undocumented#Mask_Filter'>Mask Filter</a> to <a href='#SkPaint_setMaskFilter_maskFilter'>maskFilter</a>, decreasing <a href='undocumented#Reference_Count'>Reference Count</a> of the previous
-<a href='undocumented#Mask_Filter'>Mask Filter</a>. Pass nullptr to clear <a href='undocumented#Mask_Filter'>Mask Filter</a> and leave <a href='undocumented#Mask_Filter'>Mask Filter</a> effect on
-<a href='undocumented#Mask_Alpha'>Mask Alpha</a> unaltered.
+Sets <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> to <a href='#SkPaint_setMaskFilter_maskFilter'>maskFilter</a>, decreasing <a href='undocumented#SkRefCnt'>SkRefCnt</a> of the previous
+<a href='undocumented#SkMaskFilter'>SkMaskFilter</a>. Pass nullptr to clear <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> and leave <a href='undocumented#SkMaskFilter'>SkMaskFilter</a> effect on
+<a href='undocumented#Mask_Alpha'>mask alpha</a> unaltered.
-Increments <a href='#SkPaint_setMaskFilter_maskFilter'>maskFilter</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+Increments <a href='#SkPaint_setMaskFilter_maskFilter'>maskFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Parameters
@@ -3344,12 +3349,12 @@
<a href='undocumented#SkTypeface'>SkTypeface</a>* <a href='#SkPaint_getTypeface'>getTypeface</a>() const
</pre>
-Returns <a href='undocumented#Typeface'>Typeface</a> if set, or nullptr.
-Does not alter <a href='undocumented#Typeface'>Typeface</a> <a href='undocumented#Reference_Count'>Reference Count</a>.
+Returns <a href='undocumented#SkTypeface'>SkTypeface</a> if set, or nullptr.
+Does not alter <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a>.
### Return Value
-<a href='undocumented#Typeface'>Typeface</a> if previously set, nullptr otherwise
+<a href='undocumented#SkTypeface'>SkTypeface</a> if previously set, nullptr otherwise
### Example
@@ -3372,11 +3377,11 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkTypeface'>SkTypeface</a>> <a href='#SkPaint_refTypeface'>refTypeface</a>() const
</pre>
-Increases <a href='undocumented#Typeface'>Typeface</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+Increases <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Return Value
-<a href='undocumented#Typeface'>Typeface</a> if previously set, nullptr otherwise
+<a href='undocumented#SkTypeface'>SkTypeface</a> if previously set, nullptr otherwise
### Example
@@ -3399,14 +3404,14 @@
void <a href='#SkPaint_setTypeface'>setTypeface</a>(<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkTypeface'>SkTypeface</a>> typeface)
</pre>
-Sets <a href='undocumented#Typeface'>Typeface</a> to <a href='#SkPaint_setTypeface_typeface'>typeface</a>, decreasing <a href='undocumented#Reference_Count'>Reference Count</a> of the previous <a href='undocumented#Typeface'>Typeface</a>.
-Pass nullptr to clear <a href='undocumented#Typeface'>Typeface</a> and use the default <a href='#SkPaint_setTypeface_typeface'>typeface</a>. Increments
-<a href='#SkPaint_setTypeface_typeface'>typeface</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+Sets <a href='undocumented#SkTypeface'>SkTypeface</a> to <a href='#SkPaint_setTypeface_typeface'>typeface</a>, decreasing <a href='undocumented#SkRefCnt'>SkRefCnt</a> of the previous <a href='undocumented#SkTypeface'>SkTypeface</a>.
+Pass nullptr to clear <a href='undocumented#SkTypeface'>SkTypeface</a> and use the default <a href='#SkPaint_setTypeface_typeface'>typeface</a>. Increments
+<a href='#SkPaint_setTypeface_typeface'>typeface</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Parameters
<table> <tr> <td><a name='SkPaint_setTypeface_typeface'><code><strong>typeface</strong></code></a></td>
- <td>font and style used to draw text</td>
+ <td><a href='undocumented#Font'>font</a> and style used to draw <a href='undocumented#Text'>text</a></td>
</tr>
</table>
@@ -3439,12 +3444,12 @@
<a href='undocumented#SkImageFilter'>SkImageFilter</a>* <a href='#SkPaint_getImageFilter'>getImageFilter</a>() const
</pre>
-Returns <a href='undocumented#Image_Filter'>Image Filter</a> if set, or nullptr.
-Does not alter <a href='undocumented#Image_Filter'>Image Filter</a> <a href='undocumented#Reference_Count'>Reference Count</a>.
+Returns <a href='undocumented#SkImageFilter'>SkImageFilter</a> if set, or nullptr.
+Does not alter <a href='undocumented#SkImageFilter'>SkImageFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a>.
### Return Value
-<a href='undocumented#Image_Filter'>Image Filter</a> if previously set, nullptr otherwise
+<a href='undocumented#SkImageFilter'>SkImageFilter</a> if previously set, nullptr otherwise
### Example
@@ -3467,12 +3472,12 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkImageFilter'>SkImageFilter</a>> <a href='#SkPaint_refImageFilter'>refImageFilter</a>() const
</pre>
-Returns <a href='undocumented#Image_Filter'>Image Filter</a> if set, or nullptr.
-Increases <a href='undocumented#Image_Filter'>Image Filter</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+Returns <a href='undocumented#SkImageFilter'>SkImageFilter</a> if set, or nullptr.
+Increases <a href='undocumented#SkImageFilter'>SkImageFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Return Value
-<a href='undocumented#Image_Filter'>Image Filter</a> if previously set, nullptr otherwise
+<a href='undocumented#SkImageFilter'>SkImageFilter</a> if previously set, nullptr otherwise
### Example
@@ -3495,16 +3500,16 @@
void <a href='#SkPaint_setImageFilter'>setImageFilter</a>(<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkImageFilter'>SkImageFilter</a>> imageFilter)
</pre>
-Sets <a href='undocumented#Image_Filter'>Image Filter</a> to <a href='#SkPaint_setImageFilter_imageFilter'>imageFilter</a>, decreasing <a href='undocumented#Reference_Count'>Reference Count</a> of the previous
-<a href='undocumented#Image_Filter'>Image Filter</a>. Pass nullptr to clear <a href='undocumented#Image_Filter'>Image Filter</a>, and remove <a href='undocumented#Image_Filter'>Image Filter</a> effect
+Sets <a href='undocumented#SkImageFilter'>SkImageFilter</a> to <a href='#SkPaint_setImageFilter_imageFilter'>imageFilter</a>, decreasing <a href='undocumented#SkRefCnt'>SkRefCnt</a> of the previous
+<a href='undocumented#SkImageFilter'>SkImageFilter</a>. Pass nullptr to clear <a href='undocumented#SkImageFilter'>SkImageFilter</a>, and remove <a href='undocumented#SkImageFilter'>SkImageFilter</a> effect
on drawing.
-Increments <a href='#SkPaint_setImageFilter_imageFilter'>imageFilter</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+Increments <a href='#SkPaint_setImageFilter_imageFilter'>imageFilter</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Parameters
<table> <tr> <td><a name='SkPaint_setImageFilter_imageFilter'><code><strong>imageFilter</strong></code></a></td>
- <td>how <a href='SkImage_Reference#Image'>Image</a> is sampled when transformed</td>
+ <td>how <a href='SkImage_Reference#SkImage'>SkImage</a> is sampled when transformed</td>
</tr>
</table>
@@ -3535,12 +3540,12 @@
<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>* <a href='#SkPaint_getDrawLooper'>getDrawLooper</a>() const
</pre>
-Returns <a href='undocumented#Draw_Looper'>Draw Looper</a> if set, or nullptr.
-Does not alter <a href='undocumented#Draw_Looper'>Draw Looper</a> <a href='undocumented#Reference_Count'>Reference Count</a>.
+Returns <a href='undocumented#SkDrawLooper'>SkDrawLooper</a> if set, or nullptr.
+Does not alter <a href='undocumented#SkDrawLooper'>SkDrawLooper</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a>.
### Return Value
-<a href='undocumented#Draw_Looper'>Draw Looper</a> if previously set, nullptr otherwise
+<a href='undocumented#SkDrawLooper'>SkDrawLooper</a> if previously set, nullptr otherwise
### Example
@@ -3563,12 +3568,12 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>> <a href='#SkPaint_refDrawLooper'>refDrawLooper</a>() const
</pre>
-Returns <a href='undocumented#Draw_Looper'>Draw Looper</a> if set, or nullptr.
-Increases <a href='undocumented#Draw_Looper'>Draw Looper</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+Returns <a href='undocumented#SkDrawLooper'>SkDrawLooper</a> if set, or nullptr.
+Increases <a href='undocumented#SkDrawLooper'>SkDrawLooper</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Return Value
-<a href='undocumented#Draw_Looper'>Draw Looper</a> if previously set, nullptr otherwise
+<a href='undocumented#SkDrawLooper'>SkDrawLooper</a> if previously set, nullptr otherwise
### Example
@@ -3601,16 +3606,16 @@
void <a href='#SkPaint_setDrawLooper'>setDrawLooper</a>(<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkDrawLooper'>SkDrawLooper</a>> drawLooper)
</pre>
-Sets <a href='undocumented#Draw_Looper'>Draw Looper</a> to <a href='#SkPaint_setDrawLooper_drawLooper'>drawLooper</a>, decreasing <a href='undocumented#Reference_Count'>Reference Count</a> of the previous
-<a href='#SkPaint_setDrawLooper_drawLooper'>drawLooper</a>. Pass nullptr to clear <a href='undocumented#Draw_Looper'>Draw Looper</a> and leave <a href='undocumented#Draw_Looper'>Draw Looper</a> effect on
+Sets <a href='undocumented#SkDrawLooper'>SkDrawLooper</a> to <a href='#SkPaint_setDrawLooper_drawLooper'>drawLooper</a>, decreasing <a href='undocumented#SkRefCnt'>SkRefCnt</a> of the previous
+<a href='#SkPaint_setDrawLooper_drawLooper'>drawLooper</a>. Pass nullptr to clear <a href='undocumented#SkDrawLooper'>SkDrawLooper</a> and leave <a href='undocumented#SkDrawLooper'>SkDrawLooper</a> effect on
drawing unaltered.
-Increments <a href='#SkPaint_setDrawLooper_drawLooper'>drawLooper</a> <a href='undocumented#Reference_Count'>Reference Count</a> by one.
+Increments <a href='#SkPaint_setDrawLooper_drawLooper'>drawLooper</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
### Parameters
<table> <tr> <td><a name='SkPaint_setDrawLooper_drawLooper'><code><strong>drawLooper</strong></code></a></td>
- <td>iterates through drawing one or more time, altering <a href='#Paint'>Paint</a></td>
+ <td>iterates through drawing one or more time, altering <a href='SkPaint_Reference#SkPaint'>SkPaint</a></td>
</tr>
</table>
@@ -3733,11 +3738,11 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getTextSize'>getTextSize</a>() const
</pre>
-Returns <a href='#Text_Size'>Text Size</a> in points.
+Returns <a href='#Text_Size'>text size</a> in <a href='SkPoint_Reference#Point'>points</a>.
### Return Value
-typographic height of text
+typographic height of <a href='undocumented#Text'>text</a>
### Example
@@ -3751,13 +3756,13 @@
void <a href='#SkPaint_setTextSize'>setTextSize</a>(<a href='undocumented#SkScalar'>SkScalar</a> textSize)
</pre>
-Sets <a href='#Text_Size'>Text Size</a> in points.
+Sets <a href='#Text_Size'>text size</a> in <a href='SkPoint_Reference#Point'>points</a>.
Has no effect if <a href='#SkPaint_setTextSize_textSize'>textSize</a> is not greater than or equal to zero.
### Parameters
<table> <tr> <td><a name='SkPaint_setTextSize_textSize'><code><strong>textSize</strong></code></a></td>
- <td>typographic height of text</td>
+ <td>typographic height of <a href='undocumented#Text'>text</a></td>
</tr>
</table>
@@ -3787,12 +3792,12 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getTextScaleX'>getTextScaleX</a>() const
</pre>
-Returns <a href='#Text_Scale_X'>Text Scale X</a>.
+Returns <a href='undocumented#Text'>text scale</a> on x-axis.
Default value is 1.
### Return Value
-text horizontal scale
+<a href='undocumented#Text'>text</a> horizontal scale
### Example
@@ -3806,13 +3811,13 @@
void <a href='#SkPaint_setTextScaleX'>setTextScaleX</a>(<a href='undocumented#SkScalar'>SkScalar</a> scaleX)
</pre>
-Sets <a href='#Text_Scale_X'>Text Scale X</a>.
+Sets <a href='undocumented#Text'>text scale</a> on x-axis.
Default value is 1.
### Parameters
<table> <tr> <td><a name='SkPaint_setTextScaleX_scaleX'><code><strong>scaleX</strong></code></a></td>
- <td>text horizontal scale</td>
+ <td><a href='undocumented#Text'>text</a> horizontal scale</td>
</tr>
</table>
@@ -3842,12 +3847,12 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getTextSkewX'>getTextSkewX</a>() const
</pre>
-Returns <a href='#Text_Skew_X'>Text Skew X</a>.
+Returns <a href='undocumented#Text'>text skew</a> on x-axis.
Default value is zero.
### Return Value
-additional shear in x-axis relative to y-axis
+additional shear on x-axis relative to y-axis
### Example
@@ -3861,13 +3866,13 @@
void <a href='#SkPaint_setTextSkewX'>setTextSkewX</a>(<a href='undocumented#SkScalar'>SkScalar</a> skewX)
</pre>
-Sets <a href='#Text_Skew_X'>Text Skew X</a>.
+Sets <a href='undocumented#Text'>text skew</a> on x-axis.
Default value is zero.
### Parameters
<table> <tr> <td><a name='SkPaint_setTextSkewX_skewX'><code><strong>skewX</strong></code></a></td>
- <td>additional shear in x-axis relative to y-axis</td>
+ <td>additional shear on x-axis relative to y-axis</td>
</tr>
</table>
@@ -3958,13 +3963,14 @@
<a href='#SkPaint_TextEncoding'>TextEncoding</a> <a href='#SkPaint_getTextEncoding'>getTextEncoding</a>() const
</pre>
-Returns <a href='#Text_Encoding'>Text Encoding</a>.
-<a href='#Text_Encoding'>Text Encoding</a> determines how character code points are mapped to font glyph indices.
+Returns <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a>.
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> determines how character code <a href='SkPoint_Reference#Point'>points</a> are mapped to <a href='undocumented#Font'>font</a> <a href='undocumented#Glyph'>glyph</a> indices.
### Return Value
-one of: <a href='#SkPaint_kUTF8_TextEncoding'>kUTF8 TextEncoding</a>, <a href='#SkPaint_kUTF16_TextEncoding'>kUTF16 TextEncoding</a>, <a href='#SkPaint_kUTF32_TextEncoding'>kUTF32 TextEncoding</a>, or
-<a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID TextEncoding</a>
+one of: <a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a>, <a href='#SkPaint_kUTF16_TextEncoding'>kUTF16_TextEncoding</a>, <a href='#SkPaint_kUTF32_TextEncoding'>kUTF32_TextEncoding</a>, or
+
+<a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID_TextEncoding</a>
### Example
@@ -3987,20 +3993,19 @@
void <a href='#SkPaint_setTextEncoding'>setTextEncoding</a>(<a href='#SkPaint_TextEncoding'>TextEncoding</a> encoding)
</pre>
-Sets <a href='#Text_Encoding'>Text Encoding</a> to <a href='#SkPaint_setTextEncoding_encoding'>encoding</a>.
-<a href='#Text_Encoding'>Text Encoding</a> determines how character code points are mapped to font glyph indices.
+Sets <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to <a href='#SkPaint_setTextEncoding_encoding'>encoding</a>.
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> determines how character code <a href='SkPoint_Reference#Point'>points</a> are mapped to <a href='undocumented#Font'>font</a> <a href='undocumented#Glyph'>glyph</a> indices.
Invalid values for <a href='#SkPaint_setTextEncoding_encoding'>encoding</a> are ignored.
### Parameters
<table> <tr> <td><a name='SkPaint_setTextEncoding_encoding'><code><strong>encoding</strong></code></a></td>
- <td>one of: <a href='#SkPaint_kUTF8_TextEncoding'>kUTF8 TextEncoding</a>, <a href='#SkPaint_kUTF16_TextEncoding'>kUTF16 TextEncoding</a>, <a href='#SkPaint_kUTF32_TextEncoding'>kUTF32 TextEncoding</a>, or
-<a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID TextEncoding</a></td>
+ <td>one of: <a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a>, <a href='#SkPaint_kUTF16_TextEncoding'>kUTF16_TextEncoding</a>, <a href='#SkPaint_kUTF32_TextEncoding'>kUTF32_TextEncoding</a>, or</td>
</tr>
-#
-
</table>
+<a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID_TextEncoding</a>
+
### Example
<div><fiddle-embed name="6d9ffdd3c5543e9f12972a06dd4a0ce5">
@@ -4271,7 +4276,7 @@
bool <a href='#SkPaint_FontMetrics_hasUnderlineThickness'>hasUnderlineThickness</a>(<a href='undocumented#SkScalar'>SkScalar</a>* thickness) const
</pre>
-Returns true if <a href='#Font_Metrics'>Font Metrics</a> has a valid underline <a href='#SkPaint_FontMetrics_hasUnderlineThickness_thickness'>thickness</a>, and sets
+Returns true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_FontMetrics'>FontMetrics</a> has a valid underline <a href='#SkPaint_FontMetrics_hasUnderlineThickness_thickness'>thickness</a>, and sets
<a href='#SkPaint_FontMetrics_hasUnderlineThickness_thickness'>thickness</a> to that value. If the underline <a href='#SkPaint_FontMetrics_hasUnderlineThickness_thickness'>thickness</a> is not valid,
return false, and ignore <a href='#SkPaint_FontMetrics_hasUnderlineThickness_thickness'>thickness</a>.
@@ -4284,7 +4289,7 @@
### Return Value
-true if font specifies underline width
+true if <a href='undocumented#Font'>font</a> specifies underline width
<a name='SkPaint_FontMetrics_hasUnderlinePosition'></a>
@@ -4294,7 +4299,7 @@
bool <a href='#SkPaint_FontMetrics_hasUnderlinePosition'>hasUnderlinePosition</a>(<a href='undocumented#SkScalar'>SkScalar</a>* position) const
</pre>
-Returns true if <a href='#Font_Metrics'>Font Metrics</a> has a valid underline <a href='#SkPaint_FontMetrics_hasUnderlinePosition_position'>position</a>, and sets
+Returns true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_FontMetrics'>FontMetrics</a> has a valid underline <a href='#SkPaint_FontMetrics_hasUnderlinePosition_position'>position</a>, and sets
<a href='#SkPaint_FontMetrics_hasUnderlinePosition_position'>position</a> to that value. If the underline <a href='#SkPaint_FontMetrics_hasUnderlinePosition_position'>position</a> is not valid,
return false, and ignore <a href='#SkPaint_FontMetrics_hasUnderlinePosition_position'>position</a>.
@@ -4307,7 +4312,7 @@
### Return Value
-true if font specifies underline <a href='#SkPaint_FontMetrics_hasUnderlinePosition_position'>position</a>
+true if <a href='undocumented#Font'>font</a> specifies underline <a href='#SkPaint_FontMetrics_hasUnderlinePosition_position'>position</a>
<a name='SkPaint_FontMetrics_hasStrikeoutThickness'></a>
@@ -4317,7 +4322,7 @@
bool <a href='#SkPaint_FontMetrics_hasStrikeoutThickness'>hasStrikeoutThickness</a>(<a href='undocumented#SkScalar'>SkScalar</a>* thickness) const
</pre>
-Returns true if <a href='#Font_Metrics'>Font Metrics</a> has a valid strikeout <a href='#SkPaint_FontMetrics_hasStrikeoutThickness_thickness'>thickness</a>, and sets
+Returns true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_FontMetrics'>FontMetrics</a> has a valid strikeout <a href='#SkPaint_FontMetrics_hasStrikeoutThickness_thickness'>thickness</a>, and sets
<a href='#SkPaint_FontMetrics_hasStrikeoutThickness_thickness'>thickness</a> to that value. If the underline <a href='#SkPaint_FontMetrics_hasStrikeoutThickness_thickness'>thickness</a> is not valid,
return false, and ignore <a href='#SkPaint_FontMetrics_hasStrikeoutThickness_thickness'>thickness</a>.
@@ -4330,7 +4335,7 @@
### Return Value
-true if font specifies strikeout width
+true if <a href='undocumented#Font'>font</a> specifies strikeout width
<a name='SkPaint_FontMetrics_hasStrikeoutPosition'></a>
@@ -4340,7 +4345,7 @@
bool <a href='#SkPaint_FontMetrics_hasStrikeoutPosition'>hasStrikeoutPosition</a>(<a href='undocumented#SkScalar'>SkScalar</a>* position) const
</pre>
-Returns true if <a href='#Font_Metrics'>Font Metrics</a> has a valid strikeout <a href='#SkPaint_FontMetrics_hasStrikeoutPosition_position'>position</a>, and sets
+Returns true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_FontMetrics'>FontMetrics</a> has a valid strikeout <a href='#SkPaint_FontMetrics_hasStrikeoutPosition_position'>position</a>, and sets
<a href='#SkPaint_FontMetrics_hasStrikeoutPosition_position'>position</a> to that value. If the underline <a href='#SkPaint_FontMetrics_hasStrikeoutPosition_position'>position</a> is not valid,
return false, and ignore <a href='#SkPaint_FontMetrics_hasStrikeoutPosition_position'>position</a>.
@@ -4353,7 +4358,7 @@
### Return Value
-true if font specifies strikeout <a href='#SkPaint_FontMetrics_hasStrikeoutPosition_position'>position</a>
+true if <a href='undocumented#Font'>font</a> specifies strikeout <a href='#SkPaint_FontMetrics_hasStrikeoutPosition_position'>position</a>
<a name='SkPaint_getFontMetrics'></a>
@@ -4363,20 +4368,20 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getFontMetrics'>getFontMetrics</a>(<a href='#SkPaint_FontMetrics'>FontMetrics</a>* metrics, <a href='undocumented#SkScalar'>SkScalar</a> scale = 0) const
</pre>
-Returns <a href='#Font_Metrics'>Font Metrics</a> associated with <a href='undocumented#Typeface'>Typeface</a>.
-The return value is the recommended spacing between lines: the sum of <a href='#SkPaint_getFontMetrics_metrics'>metrics</a>
+Returns <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_FontMetrics'>FontMetrics</a> associated with <a href='undocumented#SkTypeface'>SkTypeface</a>.
+The return value is the recommended spacing between <a href='undocumented#Line'>lines</a>: the sum of <a href='#SkPaint_getFontMetrics_metrics'>metrics</a>
descent, ascent, and leading.
-If <a href='#SkPaint_getFontMetrics_metrics'>metrics</a> is not nullptr, <a href='#Font_Metrics'>Font Metrics</a> is copied to <a href='#SkPaint_getFontMetrics_metrics'>metrics</a>.
-Results are scaled by <a href='#Text_Size'>Text Size</a> but does not take into account
-dimensions required by <a href='#Text_Scale_X'>Text Scale X</a>, <a href='#Text_Skew_X'>Text Skew X</a>, <a href='#Fake_Bold'>Fake Bold</a>,
-<a href='#Style_Stroke'>Style Stroke</a>, and <a href='undocumented#Path_Effect'>Path Effect</a>.
+If <a href='#SkPaint_getFontMetrics_metrics'>metrics</a> is not nullptr, <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_FontMetrics'>FontMetrics</a> is copied to <a href='#SkPaint_getFontMetrics_metrics'>metrics</a>.
+Results are scaled by <a href='#Text_Size'>text size</a> but does not take into account
+dimensions required by <a href='#Text_Scale_X'>text scale x</a>, <a href='#Text_Skew_X'>text skew x</a>, <a href='#Fake_Bold'>fake bold</a>,
+<a href='#Style_Stroke'>style stroke</a>, and <a href='undocumented#SkPathEffect'>SkPathEffect</a>.
Results can be additionally scaled by <a href='#SkPaint_getFontMetrics_scale'>scale</a>; a <a href='#SkPaint_getFontMetrics_scale'>scale</a> of zero
is ignored.
### Parameters
<table> <tr> <td><a name='SkPaint_getFontMetrics_metrics'><code><strong>metrics</strong></code></a></td>
- <td>storage for <a href='#Font_Metrics'>Font Metrics</a> from <a href='undocumented#Typeface'>Typeface</a>; may be nullptr</td>
+ <td>storage for <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_FontMetrics'>FontMetrics</a> from <a href='undocumented#SkTypeface'>SkTypeface</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkPaint_getFontMetrics_scale'><code><strong>scale</strong></code></a></td>
<td>additional multiplier for returned values</td>
@@ -4385,7 +4390,7 @@
### Return Value
-recommended spacing between lines
+recommended spacing between <a href='undocumented#Line'>lines</a>
### Example
@@ -4403,15 +4408,15 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPaint_getFontSpacing'>getFontSpacing</a>() const
</pre>
-Returns the recommended spacing between lines: the sum of metrics
+Returns the recommended spacing between <a href='undocumented#Line'>lines</a>: the sum of metrics
descent, ascent, and leading.
-Result is scaled by <a href='#Text_Size'>Text Size</a> but does not take into account
-dimensions required by stroking and <a href='undocumented#Path_Effect'>Path Effect</a>.
-Returns the same result as <a href='#SkPaint_getFontMetrics'>getFontMetrics</a>.
+Result is scaled by <a href='#Text_Size'>text size</a> but does not take into account
+dimensions required by stroking and <a href='undocumented#SkPathEffect'>SkPathEffect</a>.
+Returns the same result as <a href='#SkPaint_getFontMetrics'>getFontMetrics</a>().
### Return Value
-recommended spacing between lines
+recommended spacing between <a href='undocumented#Line'>lines</a>
### Example
@@ -4436,18 +4441,18 @@
<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPaint_getFontBounds'>getFontBounds</a>() const
</pre>
-Returns the union of bounds of all <a href='undocumented#Glyph'>Glyphs</a>.
-Returned dimensions are computed by <a href='undocumented#Font_Manager'>Font Manager</a> from font data,
-ignoring <a href='#SkPaint_Hinting'>Hinting</a>. Includes <a href='#Text_Size'>Text Size</a>, <a href='#Text_Scale_X'>Text Scale X</a>,
-and <a href='#Text_Skew_X'>Text Skew X</a>, but not <a href='#Fake_Bold'>Fake Bold</a> or <a href='undocumented#Path_Effect'>Path Effect</a>.
+Returns the union of bounds of all <a href='undocumented#Glyph'>glyphs</a>.
+Returned dimensions are computed by <a href='undocumented#Font_Manager'>font manager</a> from <a href='undocumented#Font'>font</a> <a href='undocumented#Data'>data</a>,
+ignoring <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Hinting'>Hinting</a>. Includes <a href='#Text_Size'>text size</a>, <a href='#Text_Scale_X'>text scale x</a>,
+and <a href='#Text_Skew_X'>text skew x</a>, but not <a href='#Fake_Bold'>fake bold</a> or <a href='undocumented#SkPathEffect'>SkPathEffect</a>.
-If <a href='#Text_Size'>Text Size</a> is large, <a href='#Text_Scale_X'>Text Scale X</a> is one, and <a href='#Text_Skew_X'>Text Skew X</a> is zero,
-returns the same bounds as <a href='#Font_Metrics'>Font Metrics</a> { <a href='#SkPaint_FontMetrics_fXMin'>FontMetrics::fXMin</a>,
-<a href='#SkPaint_FontMetrics_fTop'>FontMetrics::fTop</a>, <a href='#SkPaint_FontMetrics_fXMax'>FontMetrics::fXMax</a>, <a href='#SkPaint_FontMetrics_fBottom'>FontMetrics::fBottom</a> }.
+If <a href='#Text_Size'>text size</a> is large, <a href='#Text_Scale_X'>text scale x</a> is one, and <a href='#Text_Skew_X'>text skew x</a> is zero,
+returns the same bounds as:
+{ <a href='#SkPaint_FontMetrics'>FontMetrics</a>::<a href='#SkPaint_FontMetrics_fXMin'>fXMin</a>, <a href='#SkPaint_FontMetrics'>FontMetrics</a>::<a href='#SkPaint_FontMetrics_fTop'>fTop</a>, <a href='#SkPaint_FontMetrics'>FontMetrics</a>::<a href='#SkPaint_FontMetrics_fXMax'>fXMax</a>, <a href='#SkPaint_FontMetrics'>FontMetrics</a>::<a href='#SkPaint_FontMetrics_fBottom'>fBottom</a> }.
### Return Value
-union of bounds of all <a href='undocumented#Glyph'>Glyphs</a>
+union of bounds of all <a href='undocumented#Glyph'>glyphs</a>
### Example
@@ -4470,29 +4475,29 @@
int <a href='#SkPaint_textToGlyphs'>textToGlyphs</a>(const void* text, size_t byteLength, <a href='undocumented#SkGlyphID'>SkGlyphID</a> glyphs[]) const
</pre>
-Converts <a href='#SkPaint_textToGlyphs_text'>text</a> into glyph indices.
-Returns the number of glyph indices represented by <a href='#SkPaint_textToGlyphs_text'>text</a>.
-<a href='#Text_Encoding'>Text Encoding</a> specifies how <a href='#SkPaint_textToGlyphs_text'>text</a> represents characters or <a href='#SkPaint_textToGlyphs_glyphs'>glyphs</a>.
-<a href='#SkPaint_textToGlyphs_glyphs'>glyphs</a> may be nullptr, to compute the glyph count.
+Converts <a href='#SkPaint_textToGlyphs_text'>text</a> into <a href='undocumented#Glyph'>glyph</a> indices.
+Returns the number of <a href='undocumented#Glyph'>glyph</a> indices represented by <a href='#SkPaint_textToGlyphs_text'>text</a>.
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> specifies how <a href='#SkPaint_textToGlyphs_text'>text</a> represents characters or <a href='#SkPaint_textToGlyphs_glyphs'>glyphs</a>.
+<a href='#SkPaint_textToGlyphs_glyphs'>glyphs</a> may be nullptr, to compute the <a href='undocumented#Glyph'>glyph</a> count.
-Does not check <a href='#SkPaint_textToGlyphs_text'>text</a> for valid character codes or valid glyph indices.
+Does not check <a href='#SkPaint_textToGlyphs_text'>text</a> for valid character codes or valid <a href='undocumented#Glyph'>glyph</a> indices.
If <a href='#SkPaint_textToGlyphs_byteLength'>byteLength</a> equals zero, returns zero.
If <a href='#SkPaint_textToGlyphs_byteLength'>byteLength</a> includes a partial character, the partial character is ignored.
-If <a href='#Text_Encoding'>Text Encoding</a> is <a href='#SkPaint_kUTF8_TextEncoding'>kUTF8 TextEncoding</a> and
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> is <a href='#SkPaint_kUTF8_TextEncoding'>kUTF8_TextEncoding</a> and
<a href='#SkPaint_textToGlyphs_text'>text</a> contains an invalid UTF-8 sequence, zero is returned.
### Parameters
<table> <tr> <td><a name='SkPaint_textToGlyphs_text'><code><strong>text</strong></code></a></td>
- <td>character storage encoded with <a href='#Text_Encoding'>Text Encoding</a></td>
+ <td>character storage encoded with <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a></td>
</tr>
<tr> <td><a name='SkPaint_textToGlyphs_byteLength'><code><strong>byteLength</strong></code></a></td>
<td>length of character storage in bytes</td>
</tr>
<tr> <td><a name='SkPaint_textToGlyphs_glyphs'><code><strong>glyphs</strong></code></a></td>
- <td>storage for glyph indices; may be nullptr</td>
+ <td>storage for <a href='undocumented#Glyph'>glyph</a> indices; may be nullptr</td>
</tr>
</table>
@@ -4512,14 +4517,14 @@
int <a href='#SkPaint_countText'>countText</a>(const void* text, size_t byteLength) const
</pre>
-Returns the number of <a href='undocumented#Glyph'>Glyphs</a> in <a href='#SkPaint_countText_text'>text</a>.
-Uses <a href='#Text_Encoding'>Text Encoding</a> to count the <a href='undocumented#Glyph'>Glyphs</a>.
-Returns the same result as <a href='#SkPaint_textToGlyphs'>textToGlyphs</a>.
+Returns the number of <a href='undocumented#Glyph'>glyphs</a> in <a href='#SkPaint_countText_text'>text</a>.
+Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to count the <a href='undocumented#Glyph'>glyphs</a>.
+Returns the same result as <a href='#SkPaint_textToGlyphs'>textToGlyphs</a>().
### Parameters
<table> <tr> <td><a name='SkPaint_countText_text'><code><strong>text</strong></code></a></td>
- <td>character storage encoded with <a href='#Text_Encoding'>Text Encoding</a></td>
+ <td>character storage encoded with <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a></td>
</tr>
<tr> <td><a name='SkPaint_countText_byteLength'><code><strong>byteLength</strong></code></a></td>
<td>length of character storage in bytes</td>
@@ -4528,7 +4533,7 @@
### Return Value
-number of <a href='undocumented#Glyph'>Glyphs</a> represented by <a href='#SkPaint_countText_text'>text</a> of length <a href='#SkPaint_countText_byteLength'>byteLength</a>
+number of <a href='undocumented#Glyph'>glyphs</a> represented by <a href='#SkPaint_countText_text'>text</a> of length <a href='#SkPaint_countText_byteLength'>byteLength</a>
### Example
@@ -4550,20 +4555,20 @@
bool <a href='#SkPaint_containsText'>containsText</a>(const void* text, size_t byteLength) const
</pre>
-Returns true if all <a href='#SkPaint_containsText_text'>text</a> corresponds to a non-zero glyph index.
+Returns true if all <a href='#SkPaint_containsText_text'>text</a> corresponds to a non-zero <a href='undocumented#Glyph'>glyph</a> index.
Returns false if any characters in <a href='#SkPaint_containsText_text'>text</a> are not supported in
-<a href='undocumented#Typeface'>Typeface</a>.
+<a href='undocumented#SkTypeface'>SkTypeface</a>.
-If <a href='#Text_Encoding'>Text Encoding</a> is <a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID TextEncoding</a>,
-returns true if all glyph indices in <a href='#SkPaint_containsText_text'>text</a> are non-zero;
-does not check to see if <a href='#SkPaint_containsText_text'>text</a> contains valid glyph indices for <a href='undocumented#Typeface'>Typeface</a>.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> is <a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID_TextEncoding</a>,
+returns true if all <a href='undocumented#Glyph'>glyph</a> indices in <a href='#SkPaint_containsText_text'>text</a> are non-zero;
+does not check to see if <a href='#SkPaint_containsText_text'>text</a> contains valid <a href='undocumented#Glyph'>glyph</a> indices for <a href='undocumented#SkTypeface'>SkTypeface</a>.
Returns true if <a href='#SkPaint_containsText_byteLength'>byteLength</a> is zero.
### Parameters
<table> <tr> <td><a name='SkPaint_containsText_text'><code><strong>text</strong></code></a></td>
- <td>array of characters or <a href='undocumented#Glyph'>Glyphs</a></td>
+ <td>array of characters or <a href='undocumented#Glyph'>glyphs</a></td>
</tr>
<tr> <td><a name='SkPaint_containsText_byteLength'><code><strong>byteLength</strong></code></a></td>
<td>number of bytes in <a href='#SkPaint_containsText_text'>text</a> array</td>
@@ -4572,7 +4577,7 @@
### Return Value
-true if all <a href='#SkPaint_containsText_text'>text</a> corresponds to a non-zero glyph index
+true if all <a href='#SkPaint_containsText_text'>text</a> corresponds to a non-zero <a href='undocumented#Glyph'>glyph</a> index
<div><a href='#SkPaint_containsText'>containsText</a> succeeds for degree symbol, but cannot find a glyph index
corresponding to the Unicode surrogate code point.
@@ -4615,27 +4620,27 @@
Converts <a href='#SkPaint_glyphsToUnichars_glyphs'>glyphs</a> into <a href='#SkPaint_glyphsToUnichars_text'>text</a> if possible.
<a href='undocumented#Glyph'>Glyph</a> values without direct Unicode equivalents are mapped to zero.
-Uses the <a href='undocumented#Typeface'>Typeface</a>, but is unaffected
-by <a href='#Text_Encoding'>Text Encoding</a>; the <a href='#SkPaint_glyphsToUnichars_text'>text</a> values returned are equivalent to <a href='#SkPaint_kUTF32_TextEncoding'>kUTF32 TextEncoding</a>.
+Uses the <a href='undocumented#SkTypeface'>SkTypeface</a>, but is unaffected
+by <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a>; the <a href='#SkPaint_glyphsToUnichars_text'>text</a> values returned are equivalent to <a href='#SkPaint_kUTF32_TextEncoding'>kUTF32_TextEncoding</a>.
-Only supported on platforms that use FreeType as the <a href='undocumented#Engine'>Font Engine</a>.
+Only supported on platforms that use FreeType as the <a href='undocumented#Font_Engine'>font engine</a>.
### Parameters
<table> <tr> <td><a name='SkPaint_glyphsToUnichars_glyphs'><code><strong>glyphs</strong></code></a></td>
- <td>array of indices into font</td>
+ <td>array of indices into <a href='undocumented#Font'>font</a></td>
</tr>
<tr> <td><a name='SkPaint_glyphsToUnichars_count'><code><strong>count</strong></code></a></td>
- <td>length of glyph array</td>
+ <td>length of <a href='undocumented#Glyph'>glyph</a> array</td>
</tr>
<tr> <td><a name='SkPaint_glyphsToUnichars_text'><code><strong>text</strong></code></a></td>
- <td>storage for character codes, one per glyph</td>
+ <td>storage for character codes, one per <a href='undocumented#Glyph'>glyph</a></td>
</tr>
</table>
### Example
-<div><fiddle-embed name="c12686b0b3e0a87d0a248bbfc57e9492"><div>Convert UTF-8 <a href='#SkPaint_glyphsToUnichars_text'>text</a> to <a href='#SkPaint_glyphsToUnichars_glyphs'>glyphs</a>; then convert <a href='#SkPaint_glyphsToUnichars_glyphs'>glyphs</a> to Unichar code points.
+<div><fiddle-embed name="c12686b0b3e0a87d0a248bbfc57e9492"><div>Convert UTF-8 text to glyphs; then convert glyphs to Unichar code points.
</div></fiddle-embed></div>
<a name='Measure_Text'></a>
@@ -4650,16 +4655,16 @@
Returns the advance width of <a href='#SkPaint_measureText_text'>text</a>.
The advance is the normal distance to move before drawing additional <a href='#SkPaint_measureText_text'>text</a>.
-Uses <a href='#Text_Encoding'>Text Encoding</a> to decode <a href='#SkPaint_measureText_text'>text</a>, <a href='undocumented#Typeface'>Typeface</a> to get the font metrics,
-and <a href='#Text_Size'>Text Size</a>, <a href='#Text_Scale_X'>Text Scale X</a>, <a href='#Text_Skew_X'>Text Skew X</a>, <a href='#Stroke_Width'>Stroke Width</a>, and
-<a href='undocumented#Path_Effect'>Path Effect</a> to scale the metrics and <a href='#SkPaint_measureText_bounds'>bounds</a>.
+Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to decode <a href='#SkPaint_measureText_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> to get the <a href='#Font_Metrics'>font metrics</a>,
+and <a href='#Text_Size'>text size</a>, <a href='#Text_Scale_X'>text scale x</a>, <a href='#Text_Skew_X'>text skew x</a>, <a href='#Stroke_Width'>stroke width</a>, and
+<a href='undocumented#SkPathEffect'>SkPathEffect</a> to scale the metrics and <a href='#SkPaint_measureText_bounds'>bounds</a>.
Returns the bounding box of <a href='#SkPaint_measureText_text'>text</a> if <a href='#SkPaint_measureText_bounds'>bounds</a> is not nullptr.
The bounding box is computed as if the <a href='#SkPaint_measureText_text'>text</a> was drawn at the origin.
### Parameters
<table> <tr> <td><a name='SkPaint_measureText_text'><code><strong>text</strong></code></a></td>
- <td>character codes or glyph indices to be measured</td>
+ <td>character codes or <a href='undocumented#Glyph'>glyph</a> indices to be measured</td>
</tr>
<tr> <td><a name='SkPaint_measureText_length'><code><strong>length</strong></code></a></td>
<td>number of bytes of <a href='#SkPaint_measureText_text'>text</a> to measure</td>
@@ -4687,14 +4692,14 @@
Returns the advance width of <a href='#SkPaint_measureText_2_text'>text</a>.
The advance is the normal distance to move before drawing additional <a href='#SkPaint_measureText_2_text'>text</a>.
-Uses <a href='#Text_Encoding'>Text Encoding</a> to decode <a href='#SkPaint_measureText_2_text'>text</a>, <a href='undocumented#Typeface'>Typeface</a> to get the font metrics,
-and <a href='#Text_Size'>Text Size</a> to scale the metrics.
-Does not scale the advance or bounds by <a href='#Fake_Bold'>Fake Bold</a> or <a href='undocumented#Path_Effect'>Path Effect</a>.
+Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to decode <a href='#SkPaint_measureText_2_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> to get the <a href='#Font_Metrics'>font metrics</a>,
+and <a href='#Text_Size'>text size</a> to scale the metrics.
+Does not scale the advance or bounds by <a href='#Fake_Bold'>fake bold</a> or <a href='undocumented#SkPathEffect'>SkPathEffect</a>.
### Parameters
<table> <tr> <td><a name='SkPaint_measureText_2_text'><code><strong>text</strong></code></a></td>
- <td>character codes or glyph indices to be measured</td>
+ <td>character codes or <a href='undocumented#Glyph'>glyph</a> indices to be measured</td>
</tr>
<tr> <td><a name='SkPaint_measureText_2_length'><code><strong>length</strong></code></a></td>
<td>number of bytes of <a href='#SkPaint_measureText_2_text'>text</a> to measure</td>
@@ -4731,14 +4736,14 @@
The <a href='#SkPaint_breakText_text'>text</a> fragment fits if its advance width is less than or equal to <a href='#SkPaint_breakText_maxWidth'>maxWidth</a>.
Measures only while the advance is less than or equal to <a href='#SkPaint_breakText_maxWidth'>maxWidth</a>.
Returns the advance or the <a href='#SkPaint_breakText_text'>text</a> fragment in <a href='#SkPaint_breakText_measuredWidth'>measuredWidth</a> if it not nullptr.
-Uses <a href='#Text_Encoding'>Text Encoding</a> to decode <a href='#SkPaint_breakText_text'>text</a>, <a href='undocumented#Typeface'>Typeface</a> to get the font metrics,
-and <a href='#Text_Size'>Text Size</a> to scale the metrics.
-Does not scale the advance or bounds by <a href='#Fake_Bold'>Fake Bold</a> or <a href='undocumented#Path_Effect'>Path Effect</a>.
+Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to decode <a href='#SkPaint_breakText_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> to get the <a href='#Font_Metrics'>font metrics</a>,
+and <a href='#Text_Size'>text size</a> to scale the metrics.
+Does not scale the advance or bounds by <a href='#Fake_Bold'>fake bold</a> or <a href='undocumented#SkPathEffect'>SkPathEffect</a>.
### Parameters
<table> <tr> <td><a name='SkPaint_breakText_text'><code><strong>text</strong></code></a></td>
- <td>character codes or glyph indices to be measured</td>
+ <td>character codes or <a href='undocumented#Glyph'>glyph</a> indices to be measured</td>
</tr>
<tr> <td><a name='SkPaint_breakText_length'><code><strong>length</strong></code></a></td>
<td>number of bytes of <a href='#SkPaint_breakText_text'>text</a> to measure</td>
@@ -4758,7 +4763,7 @@
### Example
<div><fiddle-embed name="fd0033470ccbd5c7059670fdbf96cffc"><div><a href='undocumented#Line'>Line</a> under "" shows desired width, shorter than available characters.
-<a href='undocumented#Line'>Line</a> under "" shows measured width after breaking <a href='#SkPaint_breakText_text'>text</a>.
+<a href='undocumented#Line'>Line</a> under "" shows measured width after breaking text.
</div></fiddle-embed></div>
<a name='SkPaint_getTextWidths'></a>
@@ -4769,41 +4774,40 @@
int <a href='#SkPaint_getTextWidths'>getTextWidths</a>(const void* text, size_t byteLength, <a href='undocumented#SkScalar'>SkScalar</a> widths[], <a href='SkRect_Reference#SkRect'>SkRect</a> bounds[] = nullptr) const
</pre>
-Retrieves the advance and <a href='#SkPaint_getTextWidths_bounds'>bounds</a> for each glyph in <a href='#SkPaint_getTextWidths_text'>text</a>, and returns
-the glyph count in <a href='#SkPaint_getTextWidths_text'>text</a>.
+Retrieves the advance and <a href='#SkPaint_getTextWidths_bounds'>bounds</a> for each <a href='undocumented#Glyph'>glyph</a> in <a href='#SkPaint_getTextWidths_text'>text</a>, and returns
+the <a href='undocumented#Glyph'>glyph</a> count in <a href='#SkPaint_getTextWidths_text'>text</a>.
Both <a href='#SkPaint_getTextWidths_widths'>widths</a> and <a href='#SkPaint_getTextWidths_bounds'>bounds</a> may be nullptr.
-If <a href='#SkPaint_getTextWidths_widths'>widths</a> is not nullptr, <a href='#SkPaint_getTextWidths_widths'>widths</a> must be an array of glyph count entries.
-if <a href='#SkPaint_getTextWidths_bounds'>bounds</a> is not nullptr, <a href='#SkPaint_getTextWidths_bounds'>bounds</a> must be an array of glyph count entries.
-Widths returns the horizontal advance.
-Uses <a href='#Text_Encoding'>Text Encoding</a> to decode <a href='#SkPaint_getTextWidths_text'>text</a>, <a href='undocumented#Typeface'>Typeface</a> to get the font metrics,
-and <a href='#Text_Size'>Text Size</a> to scale the <a href='#SkPaint_getTextWidths_widths'>widths</a> and <a href='#SkPaint_getTextWidths_bounds'>bounds</a>.
-Does not scale the advance by <a href='#Fake_Bold'>Fake Bold</a> or <a href='undocumented#Path_Effect'>Path Effect</a>.
-Does include <a href='#Fake_Bold'>Fake Bold</a> and <a href='undocumented#Path_Effect'>Path Effect</a> in the <a href='#SkPaint_getTextWidths_bounds'>bounds</a>.
+If <a href='#SkPaint_getTextWidths_widths'>widths</a> is not nullptr, <a href='#SkPaint_getTextWidths_widths'>widths</a> must be an array of <a href='undocumented#Glyph'>glyph</a> count entries.
+if <a href='#SkPaint_getTextWidths_bounds'>bounds</a> is not nullptr, <a href='#SkPaint_getTextWidths_bounds'>bounds</a> must be an array of <a href='undocumented#Glyph'>glyph</a> count entries.
+Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to decode <a href='#SkPaint_getTextWidths_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> to get the <a href='#Font_Metrics'>font metrics</a>,
+and <a href='#Text_Size'>text size</a> to scale the <a href='#SkPaint_getTextWidths_widths'>widths</a> and <a href='#SkPaint_getTextWidths_bounds'>bounds</a>.
+Does not scale the advance by <a href='#Fake_Bold'>fake bold</a> or <a href='undocumented#SkPathEffect'>SkPathEffect</a>.
+Does include <a href='#Fake_Bold'>fake bold</a> and <a href='undocumented#SkPathEffect'>SkPathEffect</a> in the <a href='#SkPaint_getTextWidths_bounds'>bounds</a>.
### Parameters
<table> <tr> <td><a name='SkPaint_getTextWidths_text'><code><strong>text</strong></code></a></td>
- <td>character codes or glyph indices to be measured</td>
+ <td>character codes or <a href='undocumented#Glyph'>glyph</a> indices to be measured</td>
</tr>
<tr> <td><a name='SkPaint_getTextWidths_byteLength'><code><strong>byteLength</strong></code></a></td>
<td>number of bytes of <a href='#SkPaint_getTextWidths_text'>text</a> to measure</td>
</tr>
<tr> <td><a name='SkPaint_getTextWidths_widths'><code><strong>widths</strong></code></a></td>
- <td>returns <a href='#SkPaint_getTextWidths_text'>text</a> advances for each glyph; may be nullptr</td>
+ <td>returns <a href='#SkPaint_getTextWidths_text'>text</a> advances for each <a href='undocumented#Glyph'>glyph</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkPaint_getTextWidths_bounds'><code><strong>bounds</strong></code></a></td>
- <td>returns <a href='#SkPaint_getTextWidths_bounds'>bounds</a> for each glyph relative to (0, 0); may be nullptr</td>
+ <td>returns <a href='#SkPaint_getTextWidths_bounds'>bounds</a> for each <a href='undocumented#Glyph'>glyph</a> relative to (0, 0); may be nullptr</td>
</tr>
</table>
### Return Value
-glyph count in <a href='#SkPaint_getTextWidths_text'>text</a>
+<a href='undocumented#Glyph'>glyph</a> count in <a href='#SkPaint_getTextWidths_text'>text</a>
### Example
-<div><fiddle-embed name="6b9e101f49e9c2c28755c5bdcef64dfb"><div>Bounds of <a href='undocumented#Glyph'>Glyphs</a> increase for stroked <a href='#SkPaint_getTextWidths_text'>text</a>, but <a href='#SkPaint_getTextWidths_text'>text</a> advance remains the same.
-The underlines show the <a href='#SkPaint_getTextWidths_text'>text</a> advance, spaced to keep them distinct.
+<div><fiddle-embed name="6b9e101f49e9c2c28755c5bdcef64dfb"><div>Bounds of <a href='undocumented#Glyph'>Glyphs</a> increase for stroked text, but text advance remains the same.
+The underlines show the text advance, spaced to keep them distinct.
</div></fiddle-embed></div>
<a name='Text_Path'></a>
@@ -4818,28 +4822,28 @@
void <a href='#SkPaint_getTextPath'>getTextPath</a>(const void* text, size_t length, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='SkPath_Reference#SkPath'>SkPath</a>* path) const
</pre>
-Returns the geometry as <a href='SkPath_Reference#Path'>Path</a> equivalent to the drawn <a href='#SkPaint_getTextPath_text'>text</a>.
-Uses <a href='#Text_Encoding'>Text Encoding</a> to decode <a href='#SkPaint_getTextPath_text'>text</a>, <a href='undocumented#Typeface'>Typeface</a> to get the glyph paths,
-and <a href='#Text_Size'>Text Size</a>, <a href='#Fake_Bold'>Fake Bold</a>, and <a href='undocumented#Path_Effect'>Path Effect</a> to scale and modify the glyph paths.
-All of the glyph paths are stored in <a href='#SkPaint_getTextPath_path'>path</a>.
-Uses <a href='#SkPaint_getTextPath_x'>x</a>, <a href='#SkPaint_getTextPath_y'>y</a>, and <a href='#Text_Align'>Text Align</a> to position <a href='#SkPaint_getTextPath_path'>path</a>.
+Returns the geometry as <a href='SkPath_Reference#SkPath'>SkPath</a> equivalent to the drawn <a href='#SkPaint_getTextPath_text'>text</a>.
+Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to decode <a href='#SkPaint_getTextPath_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> to get the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>,
+and <a href='#Text_Size'>text size</a>, <a href='#Fake_Bold'>fake bold</a>, and <a href='undocumented#SkPathEffect'>SkPathEffect</a> to scale and modify the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>.
+All of the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a> are stored in <a href='#SkPaint_getTextPath_path'>path</a>.
+Uses <a href='#SkPaint_getTextPath_x'>x</a>, <a href='#SkPaint_getTextPath_y'>y</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Align'>Align</a> to position <a href='#SkPaint_getTextPath_path'>path</a>.
### Parameters
<table> <tr> <td><a name='SkPaint_getTextPath_text'><code><strong>text</strong></code></a></td>
- <td>character codes or glyph indices</td>
+ <td>character codes or <a href='undocumented#Glyph'>glyph</a> indices</td>
</tr>
<tr> <td><a name='SkPaint_getTextPath_length'><code><strong>length</strong></code></a></td>
<td>number of bytes of <a href='#SkPaint_getTextPath_text'>text</a></td>
</tr>
<tr> <td><a name='SkPaint_getTextPath_x'><code><strong>x</strong></code></a></td>
- <td><a href='#SkPaint_getTextPath_x'>x</a>-axis value of the origin of the <a href='#SkPaint_getTextPath_text'>text</a></td>
+ <td>x-axis value of the origin of the <a href='#SkPaint_getTextPath_text'>text</a></td>
</tr>
<tr> <td><a name='SkPaint_getTextPath_y'><code><strong>y</strong></code></a></td>
- <td><a href='#SkPaint_getTextPath_y'>y</a>-axis value of the origin of the <a href='#SkPaint_getTextPath_text'>text</a></td>
+ <td>y-axis value of the origin of the <a href='#SkPaint_getTextPath_text'>text</a></td>
</tr>
<tr> <td><a name='SkPaint_getTextPath_path'><code><strong>path</strong></code></a></td>
- <td>geometry of the <a href='undocumented#Glyph'>Glyphs</a></td>
+ <td>geometry of the <a href='undocumented#Glyph'>glyphs</a></td>
</tr>
</table>
@@ -4857,26 +4861,26 @@
void <a href='#SkPaint_getPosTextPath'>getPosTextPath</a>(const void* text, size_t length, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pos[], <a href='SkPath_Reference#SkPath'>SkPath</a>* path) const
</pre>
-Returns the geometry as <a href='SkPath_Reference#Path'>Path</a> equivalent to the drawn <a href='#SkPaint_getPosTextPath_text'>text</a>.
-Uses <a href='#Text_Encoding'>Text Encoding</a> to decode <a href='#SkPaint_getPosTextPath_text'>text</a>, <a href='undocumented#Typeface'>Typeface</a> to get the glyph paths,
-and <a href='#Text_Size'>Text Size</a>, <a href='#Fake_Bold'>Fake Bold</a>, and <a href='undocumented#Path_Effect'>Path Effect</a> to scale and modify the glyph paths.
-All of the glyph paths are stored in <a href='#SkPaint_getPosTextPath_path'>path</a>.
-Uses <a href='#SkPaint_getPosTextPath_pos'>pos</a> array and <a href='#Text_Align'>Text Align</a> to position <a href='#SkPaint_getPosTextPath_path'>path</a>.
-<a href='#SkPaint_getPosTextPath_pos'>pos</a> contains a position for each glyph.
+Returns the geometry as <a href='SkPath_Reference#SkPath'>SkPath</a> equivalent to the drawn <a href='#SkPaint_getPosTextPath_text'>text</a>.
+Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to decode <a href='#SkPaint_getPosTextPath_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> to get the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>,
+and <a href='#Text_Size'>text size</a>, <a href='#Fake_Bold'>fake bold</a>, and <a href='undocumented#SkPathEffect'>SkPathEffect</a> to scale and modify the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>.
+All of the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a> are stored in <a href='#SkPaint_getPosTextPath_path'>path</a>.
+Uses <a href='#SkPaint_getPosTextPath_pos'>pos</a> array and <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Align'>Align</a> to position <a href='#SkPaint_getPosTextPath_path'>path</a>.
+<a href='#SkPaint_getPosTextPath_pos'>pos</a> contains a position for each <a href='undocumented#Glyph'>glyph</a>.
### Parameters
<table> <tr> <td><a name='SkPaint_getPosTextPath_text'><code><strong>text</strong></code></a></td>
- <td>character codes or glyph indices</td>
+ <td>character codes or <a href='undocumented#Glyph'>glyph</a> indices</td>
</tr>
<tr> <td><a name='SkPaint_getPosTextPath_length'><code><strong>length</strong></code></a></td>
<td>number of bytes of <a href='#SkPaint_getPosTextPath_text'>text</a></td>
</tr>
<tr> <td><a name='SkPaint_getPosTextPath_pos'><code><strong>pos</strong></code></a></td>
- <td>positions of each glyph</td>
+ <td>positions of each <a href='undocumented#Glyph'>glyph</a></td>
</tr>
<tr> <td><a name='SkPaint_getPosTextPath_path'><code><strong>path</strong></code></a></td>
- <td>geometry of the <a href='undocumented#Glyph'>Glyphs</a></td>
+ <td>geometry of the <a href='undocumented#Glyph'>glyphs</a></td>
</tr>
</table>
@@ -4889,7 +4893,7 @@
<a href='#Text_Intercepts'>Text Intercepts</a> describe the intersection of drawn text <a href='undocumented#Glyph'>Glyphs</a> with a pair
of lines parallel to the text advance. <a href='#Text_Intercepts'>Text Intercepts</a> permits creating a
-underline that skips <a href='undocumented#Descenders'>Descenders</a>.
+underline that skips Descenders.
<a name='SkPaint_getTextIntercepts'></a>
@@ -4901,33 +4905,33 @@
</pre>
Returns the number of <a href='#SkPaint_getTextIntercepts_intervals'>intervals</a> that intersect <a href='#SkPaint_getTextIntercepts_bounds'>bounds</a>.
-<a href='#SkPaint_getTextIntercepts_bounds'>bounds</a> describes a pair of lines parallel to the <a href='#SkPaint_getTextIntercepts_text'>text</a> advance.
-The return count is zero or a multiple of two, and is at most twice the number of <a href='undocumented#Glyph'>Glyphs</a> in
-the string.
-Uses <a href='#Text_Encoding'>Text Encoding</a> to decode <a href='#SkPaint_getTextIntercepts_text'>text</a>, <a href='undocumented#Typeface'>Typeface</a> to get the glyph paths,
-and <a href='#Text_Size'>Text Size</a>, <a href='#Fake_Bold'>Fake Bold</a>, and <a href='undocumented#Path_Effect'>Path Effect</a> to scale and modify the glyph paths.
-Uses <a href='#SkPaint_getTextIntercepts_x'>x</a>, <a href='#SkPaint_getTextIntercepts_y'>y</a>, and <a href='#Text_Align'>Text Align</a> to position <a href='#SkPaint_getTextIntercepts_intervals'>intervals</a>.
+<a href='#SkPaint_getTextIntercepts_bounds'>bounds</a> describes a pair of <a href='undocumented#Line'>lines</a> parallel to the <a href='#SkPaint_getTextIntercepts_text'>text</a> advance.
+The return count is zero or a multiple of two, and is at most twice the number of <a href='undocumented#Glyph'>glyphs</a> in
+the <a href='undocumented#String'>string</a>.
+Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to decode <a href='#SkPaint_getTextIntercepts_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> to get the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>,
+and <a href='#Text_Size'>text size</a>, <a href='#Fake_Bold'>fake bold</a>, and <a href='undocumented#SkPathEffect'>SkPathEffect</a> to scale and modify the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>.
+Uses <a href='#SkPaint_getTextIntercepts_x'>x</a>, <a href='#SkPaint_getTextIntercepts_y'>y</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Align'>Align</a> to position <a href='#SkPaint_getTextIntercepts_intervals'>intervals</a>.
-Pass nullptr for <a href='#SkPaint_getTextIntercepts_intervals'>intervals</a> to determine the size of the interval array.
+Pass nullptr for <a href='#SkPaint_getTextIntercepts_intervals'>intervals</a> to determine the <a href='undocumented#Size'>size</a> of the interval array.
<a href='#SkPaint_getTextIntercepts_intervals'>intervals</a> are cached to improve performance for multiple calls.
### Parameters
<table> <tr> <td><a name='SkPaint_getTextIntercepts_text'><code><strong>text</strong></code></a></td>
- <td>character codes or glyph indices</td>
+ <td>character codes or <a href='undocumented#Glyph'>glyph</a> indices</td>
</tr>
<tr> <td><a name='SkPaint_getTextIntercepts_length'><code><strong>length</strong></code></a></td>
<td>number of bytes of <a href='#SkPaint_getTextIntercepts_text'>text</a></td>
</tr>
<tr> <td><a name='SkPaint_getTextIntercepts_x'><code><strong>x</strong></code></a></td>
- <td><a href='#SkPaint_getTextIntercepts_x'>x</a>-axis value of the origin of the <a href='#SkPaint_getTextIntercepts_text'>text</a></td>
+ <td>x-axis value of the origin of the <a href='#SkPaint_getTextIntercepts_text'>text</a></td>
</tr>
<tr> <td><a name='SkPaint_getTextIntercepts_y'><code><strong>y</strong></code></a></td>
- <td><a href='#SkPaint_getTextIntercepts_y'>y</a>-axis value of the origin of the <a href='#SkPaint_getTextIntercepts_text'>text</a></td>
+ <td>y-axis value of the origin of the <a href='#SkPaint_getTextIntercepts_text'>text</a></td>
</tr>
<tr> <td><a name='SkPaint_getTextIntercepts_bounds'><code><strong>bounds</strong></code></a></td>
- <td>lower and upper line parallel to the advance</td>
+ <td>lower and upper <a href='undocumented#Line'>line</a> parallel to the advance</td>
</tr>
<tr> <td><a name='SkPaint_getTextIntercepts_intervals'><code><strong>intervals</strong></code></a></td>
<td>returned intersections; may be nullptr</td>
@@ -4953,30 +4957,30 @@
</pre>
Returns the number of <a href='#SkPaint_getPosTextIntercepts_intervals'>intervals</a> that intersect <a href='#SkPaint_getPosTextIntercepts_bounds'>bounds</a>.
-<a href='#SkPaint_getPosTextIntercepts_bounds'>bounds</a> describes a pair of lines parallel to the <a href='#SkPaint_getPosTextIntercepts_text'>text</a> advance.
-The return count is zero or a multiple of two, and is at most twice the number of <a href='undocumented#Glyph'>Glyphs</a> in
-the string.
-Uses <a href='#Text_Encoding'>Text Encoding</a> to decode <a href='#SkPaint_getPosTextIntercepts_text'>text</a>, <a href='undocumented#Typeface'>Typeface</a> to get the glyph paths,
-and <a href='#Text_Size'>Text Size</a>, <a href='#Fake_Bold'>Fake Bold</a>, and <a href='undocumented#Path_Effect'>Path Effect</a> to scale and modify the glyph paths.
-Uses <a href='#SkPaint_getPosTextIntercepts_pos'>pos</a> array and <a href='#Text_Align'>Text Align</a> to position <a href='#SkPaint_getPosTextIntercepts_intervals'>intervals</a>.
+<a href='#SkPaint_getPosTextIntercepts_bounds'>bounds</a> describes a pair of <a href='undocumented#Line'>lines</a> parallel to the <a href='#SkPaint_getPosTextIntercepts_text'>text</a> advance.
+The return count is zero or a multiple of two, and is at most twice the number of <a href='undocumented#Glyph'>glyphs</a> in
+the <a href='undocumented#String'>string</a>.
+Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to decode <a href='#SkPaint_getPosTextIntercepts_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> to get the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>,
+and <a href='#Text_Size'>text size</a>, <a href='#Fake_Bold'>fake bold</a>, and <a href='undocumented#SkPathEffect'>SkPathEffect</a> to scale and modify the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>.
+Uses <a href='#SkPaint_getPosTextIntercepts_pos'>pos</a> array and <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Align'>Align</a> to position <a href='#SkPaint_getPosTextIntercepts_intervals'>intervals</a>.
-Pass nullptr for <a href='#SkPaint_getPosTextIntercepts_intervals'>intervals</a> to determine the size of the interval array.
+Pass nullptr for <a href='#SkPaint_getPosTextIntercepts_intervals'>intervals</a> to determine the <a href='undocumented#Size'>size</a> of the interval array.
<a href='#SkPaint_getPosTextIntercepts_intervals'>intervals</a> are cached to improve performance for multiple calls.
### Parameters
<table> <tr> <td><a name='SkPaint_getPosTextIntercepts_text'><code><strong>text</strong></code></a></td>
- <td>character codes or glyph indices</td>
+ <td>character codes or <a href='undocumented#Glyph'>glyph</a> indices</td>
</tr>
<tr> <td><a name='SkPaint_getPosTextIntercepts_length'><code><strong>length</strong></code></a></td>
<td>number of bytes of <a href='#SkPaint_getPosTextIntercepts_text'>text</a></td>
</tr>
<tr> <td><a name='SkPaint_getPosTextIntercepts_pos'><code><strong>pos</strong></code></a></td>
- <td>positions of each glyph</td>
+ <td>positions of each <a href='undocumented#Glyph'>glyph</a></td>
</tr>
<tr> <td><a name='SkPaint_getPosTextIntercepts_bounds'><code><strong>bounds</strong></code></a></td>
- <td>lower and upper line parallel to the advance</td>
+ <td>lower and upper <a href='undocumented#Line'>line</a> parallel to the advance</td>
</tr>
<tr> <td><a name='SkPaint_getPosTextIntercepts_intervals'><code><strong>intervals</strong></code></a></td>
<td>returned intersections; may be nullptr</td>
@@ -5002,33 +5006,33 @@
</pre>
Returns the number of <a href='#SkPaint_getPosTextHIntercepts_intervals'>intervals</a> that intersect <a href='#SkPaint_getPosTextHIntercepts_bounds'>bounds</a>.
-<a href='#SkPaint_getPosTextHIntercepts_bounds'>bounds</a> describes a pair of lines parallel to the <a href='#SkPaint_getPosTextHIntercepts_text'>text</a> advance.
-The return count is zero or a multiple of two, and is at most twice the number of <a href='undocumented#Glyph'>Glyphs</a> in
-the string.
-Uses <a href='#Text_Encoding'>Text Encoding</a> to decode <a href='#SkPaint_getPosTextHIntercepts_text'>text</a>, <a href='undocumented#Typeface'>Typeface</a> to get the glyph paths,
-and <a href='#Text_Size'>Text Size</a>, <a href='#Fake_Bold'>Fake Bold</a>, and <a href='undocumented#Path_Effect'>Path Effect</a> to scale and modify the glyph paths.
-Uses <a href='#SkPaint_getPosTextHIntercepts_xpos'>xpos</a> array, <a href='#SkPaint_getPosTextHIntercepts_constY'>constY</a>, and <a href='#Text_Align'>Text Align</a> to position <a href='#SkPaint_getPosTextHIntercepts_intervals'>intervals</a>.
+<a href='#SkPaint_getPosTextHIntercepts_bounds'>bounds</a> describes a pair of <a href='undocumented#Line'>lines</a> parallel to the <a href='#SkPaint_getPosTextHIntercepts_text'>text</a> advance.
+The return count is zero or a multiple of two, and is at most twice the number of <a href='undocumented#Glyph'>glyphs</a> in
+the <a href='undocumented#String'>string</a>.
+Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> to decode <a href='#SkPaint_getPosTextHIntercepts_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> to get the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>,
+and <a href='#Text_Size'>text size</a>, <a href='#Fake_Bold'>fake bold</a>, and <a href='undocumented#SkPathEffect'>SkPathEffect</a> to scale and modify the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>.
+Uses <a href='#SkPaint_getPosTextHIntercepts_xpos'>xpos</a> array, <a href='#SkPaint_getPosTextHIntercepts_constY'>constY</a>, and <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Align'>Align</a> to position <a href='#SkPaint_getPosTextHIntercepts_intervals'>intervals</a>.
-Pass nullptr for <a href='#SkPaint_getPosTextHIntercepts_intervals'>intervals</a> to determine the size of the interval array.
+Pass nullptr for <a href='#SkPaint_getPosTextHIntercepts_intervals'>intervals</a> to determine the <a href='undocumented#Size'>size</a> of the interval array.
<a href='#SkPaint_getPosTextHIntercepts_intervals'>intervals</a> are cached to improve performance for multiple calls.
### Parameters
<table> <tr> <td><a name='SkPaint_getPosTextHIntercepts_text'><code><strong>text</strong></code></a></td>
- <td>character codes or glyph indices</td>
+ <td>character codes or <a href='undocumented#Glyph'>glyph</a> indices</td>
</tr>
<tr> <td><a name='SkPaint_getPosTextHIntercepts_length'><code><strong>length</strong></code></a></td>
<td>number of bytes of <a href='#SkPaint_getPosTextHIntercepts_text'>text</a></td>
</tr>
<tr> <td><a name='SkPaint_getPosTextHIntercepts_xpos'><code><strong>xpos</strong></code></a></td>
- <td>positions of each glyph in x</td>
+ <td>positions of each <a href='undocumented#Glyph'>glyph</a> on x-axis</td>
</tr>
<tr> <td><a name='SkPaint_getPosTextHIntercepts_constY'><code><strong>constY</strong></code></a></td>
- <td>position of each glyph in y</td>
+ <td>position of each <a href='undocumented#Glyph'>glyph</a> on y-axis</td>
</tr>
<tr> <td><a name='SkPaint_getPosTextHIntercepts_bounds'><code><strong>bounds</strong></code></a></td>
- <td>lower and upper line parallel to the advance</td>
+ <td>lower and upper <a href='undocumented#Line'>line</a> parallel to the advance</td>
</tr>
<tr> <td><a name='SkPaint_getPosTextHIntercepts_intervals'><code><strong>intervals</strong></code></a></td>
<td>returned intersections; may be nullptr</td>
@@ -5053,26 +5057,26 @@
</pre>
Returns the number of <a href='#SkPaint_getTextBlobIntercepts_intervals'>intervals</a> that intersect <a href='#SkPaint_getTextBlobIntercepts_bounds'>bounds</a>.
-<a href='#SkPaint_getTextBlobIntercepts_bounds'>bounds</a> describes a pair of lines parallel to the text advance.
-The return count is zero or a multiple of two, and is at most twice the number of <a href='undocumented#Glyph'>Glyphs</a> in
-the string.
-Uses <a href='undocumented#Typeface'>Typeface</a> to get the glyph paths,
-and <a href='#Text_Size'>Text Size</a>, <a href='#Fake_Bold'>Fake Bold</a>, and <a href='undocumented#Path_Effect'>Path Effect</a> to scale and modify the glyph paths.
-Uses run array and <a href='#Text_Align'>Text Align</a> to position <a href='#SkPaint_getTextBlobIntercepts_intervals'>intervals</a>.
+<a href='#SkPaint_getTextBlobIntercepts_bounds'>bounds</a> describes a pair of <a href='undocumented#Line'>lines</a> parallel to the <a href='undocumented#Text'>text</a> advance.
+The return count is zero or a multiple of two, and is at most twice the number of <a href='undocumented#Glyph'>glyphs</a> in
+the <a href='undocumented#String'>string</a>.
+Uses <a href='undocumented#SkTypeface'>SkTypeface</a> to get the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>,
+and <a href='#Text_Size'>text size</a>, <a href='#Fake_Bold'>fake bold</a>, and <a href='undocumented#SkPathEffect'>SkPathEffect</a> to scale and modify the <a href='undocumented#Glyph'>glyph</a> <a href='SkPath_Reference#Path'>paths</a>.
+Uses run array and <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Align'>Align</a> to position <a href='#SkPaint_getTextBlobIntercepts_intervals'>intervals</a>.
-<a href='#Text_Encoding'>Text Encoding</a> must be set to <a href='#SkPaint_kGlyphID_TextEncoding'>SkPaint::kGlyphID TextEncoding</a>.
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_TextEncoding'>TextEncoding</a> must be set to <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kGlyphID_TextEncoding'>kGlyphID_TextEncoding</a>.
-Pass nullptr for <a href='#SkPaint_getTextBlobIntercepts_intervals'>intervals</a> to determine the size of the interval array.
+Pass nullptr for <a href='#SkPaint_getTextBlobIntercepts_intervals'>intervals</a> to determine the <a href='undocumented#Size'>size</a> of the interval array.
<a href='#SkPaint_getTextBlobIntercepts_intervals'>intervals</a> are cached to improve performance for multiple calls.
### Parameters
<table> <tr> <td><a name='SkPaint_getTextBlobIntercepts_blob'><code><strong>blob</strong></code></a></td>
- <td><a href='undocumented#Glyph'>Glyphs</a>, positions, and text paint attributes</td>
+ <td><a href='undocumented#Glyph'>glyphs</a>, positions, and <a href='undocumented#Text'>text</a> <a href='SkPaint_Reference#Paint'>paint</a> attributes</td>
</tr>
<tr> <td><a name='SkPaint_getTextBlobIntercepts_bounds'><code><strong>bounds</strong></code></a></td>
- <td>lower and upper line parallel to the advance</td>
+ <td>lower and upper <a href='undocumented#Line'>line</a> parallel to the advance</td>
</tr>
<tr> <td><a name='SkPaint_getTextBlobIntercepts_intervals'><code><strong>intervals</strong></code></a></td>
<td>returned intersections; may be nullptr</td>
@@ -5095,15 +5099,15 @@
bool <a href='#SkPaint_nothingToDraw'>nothingToDraw</a>() const
</pre>
-Returns true if <a href='#Paint'>Paint</a> prevents all drawing;
-otherwise, the <a href='#Paint'>Paint</a> may or may not allow drawing.
+Returns true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a> prevents all drawing;
+otherwise, the <a href='SkPaint_Reference#SkPaint'>SkPaint</a> may or may not allow drawing.
-Returns true if, for example, <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a> combined with <a href='SkColor_Reference#Alpha'>Color Alpha</a> computes a
-new <a href='SkColor_Reference#Alpha'>Alpha</a> of zero.
+Returns true if, for example, <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a> combined with <a href='SkColor_Reference#Alpha'>alpha</a> computes a
+new <a href='SkColor_Reference#Alpha'>alpha</a> of zero.
### Return Value
-true if <a href='#Paint'>Paint</a> prevents all drawing
+true if <a href='SkPaint_Reference#SkPaint'>SkPaint</a> prevents all drawing
### Example
diff --git a/site/user/api/SkPath_Reference.md b/site/user/api/SkPath_Reference.md
index ee2c38f..2fbad00 100644
--- a/site/user/api/SkPath_Reference.md
+++ b/site/user/api/SkPath_Reference.md
@@ -405,12 +405,12 @@
<a href='#SkPath'>SkPath</a>()
</pre>
-Constucts an empty <a href='#Path'>Path</a>. By default, <a href='#Path'>Path</a> has no <a href='#Verb'>Verbs</a>, no <a href='SkPoint_Reference#Point'>Points</a>, and no <a href='#Conic_Weight'>Weights</a>.
-<a href='#Fill_Type'>Fill Type</a> is set to <a href='#SkPath_kWinding_FillType'>kWinding FillType</a>.
+Constructs an empty <a href='SkPath_Reference#SkPath'>SkPath</a>. By default, <a href='SkPath_Reference#SkPath'>SkPath</a> has no <a href='SkPath_Reference#Verb'>verbs</a>, no <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and no <a href='SkPath_Reference#Conic_Weight'>weights</a>.
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> is set to <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>.
### Return Value
-empty <a href='#Path'>Path</a>
+empty <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -436,29 +436,29 @@
<a href='#SkPath'>SkPath</a>(const <a href='#SkPath'>SkPath</a>& path)
</pre>
-Constructs a copy of an existing <a href='#SkPath_copy_const_SkPath_path'>path</a>.
-Copy constructor makes two paths identical by value. Internally, <a href='#SkPath_copy_const_SkPath_path'>path</a> and
-the returned result share pointer values. The underlying <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>
-and <a href='#Conic_Weight'>Weights</a> are copied when modified.
+Constructs a copy of an existing <a href='#SkPath_SkPath(const SkPath& path)_path'>path</a>.
+Copy constructor makes two <a href='SkPath_Reference#Path'>paths</a> identical by value. Internally, <a href='#SkPath_SkPath(const SkPath& path)_path'>path</a> and
+the returned result share pointer values. The underlying <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>
+and <a href='SkPath_Reference#Conic_Weight'>weights</a> are copied when modified.
-Creating a <a href='#Path'>Path</a> copy is very efficient and never allocates memory.
-<a href='#Path'>Paths</a> are always copied by value from the interface; the underlying shared
+Creating a <a href='SkPath_Reference#SkPath'>SkPath</a> copy is very efficient and never allocates memory.
+<a href='SkPath_Reference#SkPath'>SkPath</a> are always copied by value from the interface; the underlying shared
pointers are not exposed.
### Parameters
<table> <tr> <td><a name='SkPath_copy_const_SkPath_path'><code><strong>path</strong></code></a></td>
- <td><a href='#Path'>Path</a> to copy by value</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to copy by value</td>
</tr>
</table>
### Return Value
-copy of <a href='#Path'>Path</a>
+copy of <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
-<div><fiddle-embed name="647312aacd946c8a6eabaca797140432"><div>Modifying one <a href='#SkPath_copy_const_SkPath_path'>path</a> does not effect another, even if they started as copies
+<div><fiddle-embed name="647312aacd946c8a6eabaca797140432"><div>Modifying one path does not effect another, even if they started as copies
of each other.
</div>
@@ -486,11 +486,11 @@
<a href='#SkPath_destructor'>~SkPath</a>()
</pre>
-Releases ownership of any shared data and deletes data if <a href='#Path'>Path</a> is sole owner.
+Releases ownership of any shared <a href='undocumented#Data'>data</a> and deletes <a href='undocumented#Data'>data</a> if <a href='SkPath_Reference#SkPath'>SkPath</a> is sole owner.
### Example
-<div><fiddle-embed name="01ad6be9b7d15a2217daea273eb3d466"><div>delete calls <a href='#Path'>Path</a> <a href='undocumented#Destructor'>Destructor</a>, but copy of original in path2 is unaffected.
+<div><fiddle-embed name="01ad6be9b7d15a2217daea273eb3d466"><div>delete calls <a href='#Path'>Path</a> destructor, but copy of original in path2 is unaffected.
</div></fiddle-embed></div>
### See Also
@@ -505,25 +505,25 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_copy_operator'>operator=(const SkPath& path)</a>
</pre>
-Constructs a copy of an existing <a href='#SkPath_copy_operator_path'>path</a>.
-<a href='#Path'>Path</a> assignment makes two paths identical by value. Internally, assignment
-shares pointer values. The underlying <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a> and <a href='#Conic_Weight'>Weights</a>
+Constructs a copy of an existing <a href='#SkPath_operator=(const SkPath& path)_path'>path</a>.
+<a href='SkPath_Reference#SkPath'>SkPath</a> assignment makes two <a href='SkPath_Reference#Path'>paths</a> identical by value. Internally, assignment
+shares pointer values. The underlying <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a> and <a href='SkPath_Reference#Conic_Weight'>weights</a>
are copied when modified.
-Copying <a href='#Path'>Paths</a> by assignment is very efficient and never allocates memory.
-<a href='#Path'>Paths</a> are always copied by value from the interface; the underlying shared
+Copying <a href='SkPath_Reference#SkPath'>SkPath</a> by assignment is very efficient and never allocates memory.
+<a href='SkPath_Reference#SkPath'>SkPath</a> are always copied by value from the interface; the underlying shared
pointers are not exposed.
### Parameters
<table> <tr> <td><a name='SkPath_copy_operator_path'><code><strong>path</strong></code></a></td>
- <td><a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, <a href='#Conic_Weight'>Weights</a>, and <a href='#Fill_Type'>Fill Type</a> to copy</td>
+ <td><a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPath_Reference#Conic_Weight'>weights</a>, and <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> to copy</td>
</tr>
</table>
### Return Value
-<a href='#Path'>Path</a> copied by value
+<a href='SkPath_Reference#SkPath'>SkPath</a> copied by value
### Example
@@ -550,22 +550,22 @@
bool <a href='#SkPath_equal_operator'>operator==(const SkPath& a, const SkPath& b)</a>
</pre>
-Compares <a href='#SkPath_equal_operator_a'>a</a> and <a href='#SkPath_equal_operator_b'>b</a>; returns true if <a href='#Fill_Type'>Fill Type</a>, <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and <a href='#Conic_Weight'>Weights</a>
+Compares <a href='#SkPath_operator==(const SkPath& a, const SkPath& b)_a'>a</a> and <a href='#SkPath_operator==(const SkPath& a, const SkPath& b)_b'>b</a>; returns true if <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a>, <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and <a href='SkPath_Reference#Conic_Weight'>weights</a>
are equivalent.
### Parameters
<table> <tr> <td><a name='SkPath_equal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='#Path'>Path</a> to compare</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to compare</td>
</tr>
<tr> <td><a name='SkPath_equal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='#Path'>Path</a> to compare</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='#Path'>Path</a> pair are equivalent
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> pair are equivalent
### Example
@@ -596,22 +596,22 @@
bool <a href='#SkPath_notequal_operator'>operator!=(const SkPath& a, const SkPath& b)</a>
</pre>
-Compares <a href='#SkPath_notequal_operator_a'>a</a> and <a href='#SkPath_notequal_operator_b'>b</a>; returns true if <a href='#Fill_Type'>Fill Type</a>, <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and <a href='#Conic_Weight'>Weights</a>
+Compares <a href='#SkPath_operator!=(const SkPath& a, const SkPath& b)_a'>a</a> and <a href='#SkPath_operator!=(const SkPath& a, const SkPath& b)_b'>b</a>; returns true if <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a>, <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and <a href='SkPath_Reference#Conic_Weight'>weights</a>
are not equivalent.
### Parameters
<table> <tr> <td><a name='SkPath_notequal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='#Path'>Path</a> to compare</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to compare</td>
</tr>
<tr> <td><a name='SkPath_notequal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='#Path'>Path</a> to compare</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='#Path'>Path</a> pair are not equivalent
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> pair are not equivalent
### Example
@@ -639,23 +639,23 @@
bool <a href='#SkPath_isInterpolatable'>isInterpolatable</a>(const <a href='#SkPath'>SkPath</a>& compare) const
</pre>
-Returns true if <a href='#Path'>Paths</a> contain equal <a href='#Verb'>Verbs</a> and equal <a href='#Conic_Weight'>Weights</a>.
-If <a href='#Path'>Paths</a> contain one or more <a href='#Conic'>Conics</a>, the <a href='#Conic_Weight'>Weights</a> must match.
+Returns true if <a href='SkPath_Reference#SkPath'>SkPath</a> contain equal <a href='SkPath_Reference#Verb'>verbs</a> and equal <a href='SkPath_Reference#Conic_Weight'>weights</a>.
+If <a href='SkPath_Reference#SkPath'>SkPath</a> contain one or more <a href='SkPath_Reference#Conic'>conics</a>, the <a href='SkPath_Reference#Conic_Weight'>weights</a> must match.
-<a href='#SkPath_conicTo'>conicTo</a> may add different <a href='#Verb'>Verbs</a> depending on <a href='#Conic_Weight'>Conic Weight</a>, so it is not
-trivial to interpolate a pair of <a href='#Path'>Paths</a> containing <a href='#Conic'>Conics</a> with different
-<a href='#Conic_Weight'>Conic Weight</a> values.
+<a href='#SkPath_conicTo'>conicTo</a>() may add different <a href='SkPath_Reference#Verb'>verbs</a> depending on <a href='#Conic_Weight'>conic weight</a>, so it is not
+trivial to interpolate a pair of <a href='SkPath_Reference#SkPath'>SkPath</a> containing <a href='SkPath_Reference#Conic'>conics</a> with different
+<a href='#Conic_Weight'>conic weight</a> values.
### Parameters
<table> <tr> <td><a name='SkPath_isInterpolatable_compare'><code><strong>compare</strong></code></a></td>
- <td><a href='#Path'>Path</a> to <a href='#SkPath_isInterpolatable_compare'>compare</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to <a href='#SkPath_isInterpolatable_compare'>compare</a></td>
</tr>
</table>
### Return Value
-true if <a href='#Path'>Paths</a> <a href='#Verb_Array'>Verb Array</a> and <a href='#Conic_Weight'>Weights</a> are equivalent
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='#Verb_Array'>verb array</a> and <a href='SkPath_Reference#Conic_Weight'>weights</a> are equivalent
### Example
@@ -813,13 +813,14 @@
<a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_getFillType'>getFillType</a>() const
</pre>
-Returns <a href='#SkPath_FillType'>FillType</a>, the rule used to fill <a href='#Path'>Path</a>. <a href='#SkPath_FillType'>FillType</a> of a new <a href='#Path'>Path</a> is
-<a href='#SkPath_kWinding_FillType'>kWinding FillType</a>.
+Returns <a href='#SkPath_FillType'>FillType</a>, the rule used to fill <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='#SkPath_FillType'>FillType</a> of a new <a href='SkPath_Reference#SkPath'>SkPath</a> is
+<a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>.
### Return Value
-one of: <a href='#SkPath_kWinding_FillType'>kWinding FillType</a>, <a href='#SkPath_kEvenOdd_FillType'>kEvenOdd FillType</a>, <a href='#SkPath_kInverseWinding_FillType'>kInverseWinding FillType</a>,
-<a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd FillType</a>
+one of: <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>, <a href='#SkPath_kEvenOdd_FillType'>kEvenOdd_FillType</a>, <a href='#SkPath_kInverseWinding_FillType'>kInverseWinding_FillType</a>,
+
+<a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd_FillType</a>
### Example
@@ -845,17 +846,18 @@
void <a href='#SkPath_setFillType'>setFillType</a>(<a href='#SkPath_FillType'>FillType</a> ft)
</pre>
-Sets <a href='#SkPath_FillType'>FillType</a>, the rule used to fill <a href='#Path'>Path</a>. While there is no check
+Sets <a href='#SkPath_FillType'>FillType</a>, the rule used to fill <a href='SkPath_Reference#SkPath'>SkPath</a>. While there is no check
that <a href='#SkPath_setFillType_ft'>ft</a> is legal, values outside of <a href='#SkPath_FillType'>FillType</a> are not supported.
### Parameters
<table> <tr> <td><a name='SkPath_setFillType_ft'><code><strong>ft</strong></code></a></td>
- <td>one of: <a href='#SkPath_kWinding_FillType'>kWinding FillType</a>, <a href='#SkPath_kEvenOdd_FillType'>kEvenOdd FillType</a>, <a href='#SkPath_kInverseWinding_FillType'>kInverseWinding FillType</a>,
-<a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd FillType</a></td>
+ <td>one of: <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>, <a href='#SkPath_kEvenOdd_FillType'>kEvenOdd_FillType</a>, <a href='#SkPath_kInverseWinding_FillType'>kInverseWinding_FillType</a>,</td>
</tr>
</table>
+<a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd_FillType</a>
+
### Example
<div><fiddle-embed name="b4a91cd7f50b2a0a0d1bec6d0ac823d2"><div>If empty <a href='#Path'>Path</a> is set to inverse <a href='#SkPath_FillType'>FillType</a>, it fills all pixels.
@@ -873,12 +875,12 @@
bool <a href='#SkPath_isInverseFillType'>isInverseFillType</a>() const
</pre>
-Returns if <a href='#SkPath_FillType'>FillType</a> describes area outside <a href='#Path'>Path</a> geometry. The inverse fill area
+Returns if <a href='#SkPath_FillType'>FillType</a> describes area outside <a href='SkPath_Reference#SkPath'>SkPath</a> geometry. The inverse fill area
extends indefinitely.
### Return Value
-true if <a href='#SkPath_FillType'>FillType</a> is <a href='#SkPath_kInverseWinding_FillType'>kInverseWinding FillType</a> or <a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd FillType</a>
+true if <a href='#SkPath_FillType'>FillType</a> is <a href='#SkPath_kInverseWinding_FillType'>kInverseWinding_FillType</a> or <a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd_FillType</a>
### Example
@@ -990,13 +992,13 @@
<a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_getConvexity'>getConvexity</a>() const
</pre>
-Computes <a href='#SkPath_Convexity'>Convexity</a> if required, and returns stored value.
-<a href='#SkPath_Convexity'>Convexity</a> is computed if stored value is <a href='#SkPath_kUnknown_Convexity'>kUnknown Convexity</a>,
-or if <a href='#Path'>Path</a> has been altered since <a href='#SkPath_Convexity'>Convexity</a> was computed or set.
+Computes <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> if required, and returns stored value.
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> is computed if stored value is <a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a>,
+or if <a href='SkPath_Reference#SkPath'>SkPath</a> has been altered since <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> was computed or set.
### Return Value
-computed or stored <a href='#SkPath_Convexity'>Convexity</a>
+computed or stored <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a>
### Example
@@ -1014,12 +1016,12 @@
<a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUnknown</a>() const
</pre>
-Returns last computed <a href='#SkPath_Convexity'>Convexity</a>, or <a href='#SkPath_kUnknown_Convexity'>kUnknown Convexity</a> if
-<a href='#Path'>Path</a> has been altered since <a href='#SkPath_Convexity'>Convexity</a> was computed or set.
+Returns last computed <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a>, or <a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a> if
+<a href='SkPath_Reference#SkPath'>SkPath</a> has been altered since <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> was computed or set.
### Return Value
-stored <a href='#SkPath_Convexity'>Convexity</a>
+stored <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a>
### Example
@@ -1039,21 +1041,21 @@
void <a href='#SkPath_setConvexity'>setConvexity</a>(<a href='#SkPath_Convexity'>Convexity</a> convexity)
</pre>
-Stores <a href='#SkPath_setConvexity_convexity'>convexity</a> so that it is later returned by <a href='#SkPath_getConvexity'>getConvexity</a> or <a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUnknown</a>.
-<a href='#SkPath_setConvexity_convexity'>convexity</a> may differ from <a href='#SkPath_getConvexity'>getConvexity</a>, although setting an incorrect value may
+Stores <a href='#SkPath_setConvexity_convexity'>convexity</a> so that it is later returned by <a href='#SkPath_getConvexity'>getConvexity</a>() or <a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUnknown</a>().
+<a href='#SkPath_setConvexity_convexity'>convexity</a> may differ from <a href='#SkPath_getConvexity'>getConvexity</a>(), although setting an incorrect value may
cause incorrect or inefficient drawing.
-If <a href='#SkPath_setConvexity_convexity'>convexity</a> is <a href='#SkPath_kUnknown_Convexity'>kUnknown Convexity</a>: <a href='#SkPath_getConvexity'>getConvexity</a> will
-compute <a href='#SkPath_Convexity'>Convexity</a>, and <a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUnknown</a> will return <a href='#SkPath_kUnknown_Convexity'>kUnknown Convexity</a>.
+If <a href='#SkPath_setConvexity_convexity'>convexity</a> is <a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a>: <a href='#SkPath_getConvexity'>getConvexity</a>() will
+compute <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a>, and <a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUnknown</a>() will return <a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a>.
-If <a href='#SkPath_setConvexity_convexity'>convexity</a> is <a href='#SkPath_kConvex_Convexity'>kConvex Convexity</a> or <a href='#SkPath_kConcave_Convexity'>kConcave Convexity</a>, <a href='#SkPath_getConvexity'>getConvexity</a>
-and <a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUnknown</a> will return <a href='#SkPath_setConvexity_convexity'>convexity</a> until the path is
+If <a href='#SkPath_setConvexity_convexity'>convexity</a> is <a href='#SkPath_kConvex_Convexity'>kConvex_Convexity</a> or <a href='#SkPath_kConcave_Convexity'>kConcave_Convexity</a>, <a href='#SkPath_getConvexity'>getConvexity</a>()
+and <a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUnknown</a>() will return <a href='#SkPath_setConvexity_convexity'>convexity</a> until the <a href='SkPath_Reference#Path'>path</a> is
altered.
### Parameters
<table> <tr> <td><a name='SkPath_setConvexity_convexity'><code><strong>convexity</strong></code></a></td>
- <td>one of: <a href='#SkPath_kUnknown_Convexity'>kUnknown Convexity</a>, <a href='#SkPath_kConvex_Convexity'>kConvex Convexity</a>, or <a href='#SkPath_kConcave_Convexity'>kConcave Convexity</a></td>
+ <td>one of: <a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a>, <a href='#SkPath_kConvex_Convexity'>kConvex_Convexity</a>, or <a href='#SkPath_kConcave_Convexity'>kConcave_Convexity</a></td>
</tr>
</table>
@@ -1073,13 +1075,13 @@
bool <a href='#SkPath_isConvex'>isConvex</a>() const
</pre>
-Computes <a href='#SkPath_Convexity'>Convexity</a> if required, and returns true if value is <a href='#SkPath_kConvex_Convexity'>kConvex Convexity</a>.
-If <a href='#SkPath_setConvexity'>setConvexity</a> was called with <a href='#SkPath_kConvex_Convexity'>kConvex Convexity</a> or <a href='#SkPath_kConcave_Convexity'>kConcave Convexity</a>, and
-the path has not been altered, <a href='#SkPath_Convexity'>Convexity</a> is not recomputed.
+Computes <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> if required, and returns true if value is <a href='#SkPath_kConvex_Convexity'>kConvex_Convexity</a>.
+If <a href='#SkPath_setConvexity'>setConvexity</a>() was called with <a href='#SkPath_kConvex_Convexity'>kConvex_Convexity</a> or <a href='#SkPath_kConcave_Convexity'>kConcave_Convexity</a>, and
+the <a href='SkPath_Reference#Path'>path</a> has not been altered, <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> is not recomputed.
### Return Value
-true if <a href='#SkPath_Convexity'>Convexity</a> stored or computed is <a href='#SkPath_kConvex_Convexity'>kConvex Convexity</a>
+true if <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> stored or computed is <a href='#SkPath_kConvex_Convexity'>kConvex_Convexity</a>
### Example
@@ -1099,22 +1101,22 @@
bool <a href='#SkPath_isOval'>isOval</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* bounds) const
</pre>
-Returns true if this path is recognized as an oval or circle.
+Returns true if this <a href='SkPath_Reference#Path'>path</a> is recognized as an <a href='undocumented#Oval'>oval</a> or <a href='undocumented#Circle'>circle</a>.
-<a href='#SkPath_isOval_bounds'>bounds</a> receives <a href='#SkPath_isOval_bounds'>bounds</a> of <a href='undocumented#Oval'>Oval</a>.
+<a href='#SkPath_isOval_bounds'>bounds</a> receives <a href='#SkPath_isOval_bounds'>bounds</a> of <a href='undocumented#Oval'>oval</a>.
-<a href='#SkPath_isOval_bounds'>bounds</a> is unmodified if <a href='undocumented#Oval'>Oval</a> is not found.
+<a href='#SkPath_isOval_bounds'>bounds</a> is unmodified if <a href='undocumented#Oval'>oval</a> is not found.
### Parameters
<table> <tr> <td><a name='SkPath_isOval_bounds'><code><strong>bounds</strong></code></a></td>
- <td>storage for bounding <a href='SkRect_Reference#Rect'>Rect</a> of <a href='undocumented#Oval'>Oval</a>; may be nullptr</td>
+ <td>storage for bounding <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='undocumented#Oval'>oval</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href='#Path'>Path</a> is recognized as an oval or circle
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> is recognized as an <a href='undocumented#Oval'>oval</a> or <a href='undocumented#Circle'>circle</a>
### Example
@@ -1132,22 +1134,23 @@
bool <a href='#SkPath_isRRect'>isRRect</a>(<a href='SkRRect_Reference#SkRRect'>SkRRect</a>* rrect) const
</pre>
-Returns true if this path is recognized as a <a href='SkRRect_Reference#SkRRect'>SkRRect</a> (but not an oval/circle or rect).
+Returns true if <a href='SkPath_Reference#Path'>path</a> is representable as <a href='SkRRect_Reference#SkRRect'>SkRRect</a>.
+Returns false if <a href='SkPath_Reference#Path'>path</a> is representable as <a href='undocumented#Oval'>oval</a>, <a href='undocumented#Circle'>circle</a>, or <a href='SkRect_Reference#SkRect'>SkRect</a>.
-<a href='#SkPath_isRRect_rrect'>rrect</a> receives bounds of <a href='SkRRect_Reference#RRect'>Round Rect</a>.
+<a href='#SkPath_isRRect_rrect'>rrect</a> receives bounds of <a href='SkRRect_Reference#SkRRect'>SkRRect</a>.
-<a href='#SkPath_isRRect_rrect'>rrect</a> is unmodified if <a href='SkRRect_Reference#RRect'>Round Rect</a> is not found.
+<a href='#SkPath_isRRect_rrect'>rrect</a> is unmodified if <a href='SkRRect_Reference#SkRRect'>SkRRect</a> is not found.
### Parameters
<table> <tr> <td><a name='SkPath_isRRect_rrect'><code><strong>rrect</strong></code></a></td>
- <td>storage for bounding <a href='SkRect_Reference#Rect'>Rect</a> of <a href='SkRRect_Reference#RRect'>Round Rect</a>; may be nullptr</td>
+ <td>storage for bounding <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='SkRRect_Reference#SkRRect'>SkRRect</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href='#Path'>Path</a> contains only <a href='SkRRect_Reference#RRect'>Round Rect</a>
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> contains only <a href='SkRRect_Reference#SkRRect'>SkRRect</a>
### Example
@@ -1166,13 +1169,13 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_reset'>reset</a>()
</pre>
-Sets <a href='#Path'>Path</a> to its initial state.
-Removes <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and <a href='#Conic_Weight'>Weights</a>, and sets <a href='#SkPath_FillType'>FillType</a> to <a href='#SkPath_kWinding_FillType'>kWinding FillType</a>.
-Internal storage associated with <a href='#Path'>Path</a> is released.
+Sets <a href='SkPath_Reference#SkPath'>SkPath</a> to its initial state.
+Removes <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and <a href='SkPath_Reference#Conic_Weight'>weights</a>, and sets <a href='#SkPath_FillType'>FillType</a> to <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>.
+Internal storage associated with <a href='SkPath_Reference#SkPath'>SkPath</a> is released.
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -1190,16 +1193,16 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_rewind'>rewind</a>()
</pre>
-Sets <a href='#Path'>Path</a> to its initial state, preserving internal storage.
-Removes <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and <a href='#Conic_Weight'>Weights</a>, and sets <a href='#SkPath_FillType'>FillType</a> to <a href='#SkPath_kWinding_FillType'>kWinding FillType</a>.
-Internal storage associated with <a href='#Path'>Path</a> is retained.
+Sets <a href='SkPath_Reference#SkPath'>SkPath</a> to its initial state, preserving internal storage.
+Removes <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and <a href='SkPath_Reference#Conic_Weight'>weights</a>, and sets <a href='#SkPath_FillType'>FillType</a> to <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>.
+Internal storage associated with <a href='SkPath_Reference#SkPath'>SkPath</a> is retained.
-Use <a href='#SkPath_rewind'>rewind</a>() instead of <a href='#SkPath_reset'>reset</a>() if <a href='#Path'>Path</a> storage will be reused and performance
+Use <a href='#SkPath_rewind'>rewind()</a> instead of <a href='#SkPath_reset'>reset()</a> if <a href='SkPath_Reference#SkPath'>SkPath</a> storage will be reused and performance
is critical.
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -1219,13 +1222,13 @@
bool <a href='#SkPath_isEmpty'>isEmpty</a>() const
</pre>
-Returns if <a href='#Path'>Path</a> is empty.
-Empty <a href='#Path'>Path</a> may have <a href='#SkPath_FillType'>FillType</a> but has no <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, <a href='#SkPath_Verb'>Verb</a>, or <a href='#Conic_Weight'>Conic Weight</a>.
-<a href='#SkPath_empty_constructor'>SkPath()</a> constructs empty <a href='#Path'>Path</a>; <a href='#SkPath_reset'>reset</a>() and <a href='#SkPath_rewind'>rewind</a>() make <a href='#Path'>Path</a> empty.
+Returns if <a href='SkPath_Reference#SkPath'>SkPath</a> is empty.
+Empty <a href='SkPath_Reference#SkPath'>SkPath</a> may have <a href='#SkPath_FillType'>FillType</a> but has no <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>, or <a href='#Conic_Weight'>conic weight</a>.
+<a href='#SkPath_empty_constructor'>SkPath()</a> constructs empty <a href='SkPath_Reference#SkPath'>SkPath</a>; <a href='#SkPath_reset'>reset()</a> and <a href='#SkPath_rewind'>rewind()</a> make <a href='SkPath_Reference#SkPath'>SkPath</a> empty.
### Return Value
-true if the path contains no <a href='#SkPath_Verb'>Verb</a> array
+true if the <a href='SkPath_Reference#Path'>path</a> contains no <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> array
### Example
@@ -1255,14 +1258,13 @@
bool <a href='#SkPath_isLastContourClosed'>isLastContourClosed</a>() const
</pre>
-Returns if <a href='SkPath_Overview#Contour'>Contour</a> is closed.
-<a href='SkPath_Overview#Contour'>Contour</a> is closed if <a href='#Path'>Path</a> <a href='#SkPath_Verb'>Verb</a> array was last modified by <a href='#SkPath_close'>close</a>(). When stroked,
-closed <a href='SkPath_Overview#Contour'>Contour</a> draws <a href='SkPaint_Reference#Stroke_Join'>Paint Stroke Join</a> instead of <a href='SkPaint_Reference#Stroke_Cap'>Paint Stroke Cap</a> at first and
-last <a href='SkPoint_Reference#Point'>Point</a>.
+Returns if <a href='SkPath_Overview#Contour'>contour</a> is closed.
+<a href='SkPath_Overview#Contour'>Contour</a> is closed if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> array was last modified by <a href='#SkPath_close'>close()</a>. When stroked,
+closed <a href='SkPath_Overview#Contour'>contour</a> draws <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> instead of <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> at first and last <a href='SkPoint_Reference#SkPoint'>SkPoint</a>.
### Return Value
-true if the last <a href='SkPath_Overview#Contour'>Contour</a> ends with a <a href='#SkPath_kClose_Verb'>kClose Verb</a>
+true if the last <a href='SkPath_Overview#Contour'>contour</a> ends with a <a href='#SkPath_kClose_Verb'>kClose_Verb</a>
### Example
@@ -1293,13 +1295,13 @@
bool <a href='#SkPath_isFinite'>isFinite</a>() const
</pre>
-Returns true for finite <a href='SkPoint_Reference#Point'>Point</a> array values between negative <a href='undocumented#SK_ScalarMax'>SK ScalarMax</a> and
-positive <a href='undocumented#SK_ScalarMax'>SK ScalarMax</a>. Returns false for any <a href='SkPoint_Reference#Point'>Point</a> array value of
-<a href='undocumented#SK_ScalarInfinity'>SK ScalarInfinity</a>, <a href='undocumented#SK_ScalarNegativeInfinity'>SK ScalarNegativeInfinity</a>, or <a href='undocumented#SK_ScalarNaN'>SK ScalarNaN</a>.
+Returns true for finite <a href='SkPath_Reference#Point_Array'>SkPoint array</a> values between negative <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> and
+positive <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a>. Returns false for any <a href='SkPath_Reference#Point_Array'>SkPoint array</a> value of
+<a href='undocumented#SK_ScalarInfinity'>SK_ScalarInfinity</a>, <a href='undocumented#SK_ScalarNegativeInfinity'>SK_ScalarNegativeInfinity</a>, or <a href='undocumented#SK_ScalarNaN'>SK_ScalarNaN</a>.
### Return Value
-true if all <a href='SkPoint_Reference#Point'>Point</a> values are finite
+true if all <a href='SkPoint_Reference#SkPoint'>SkPoint</a> values are finite
### Example
@@ -1327,14 +1329,14 @@
bool <a href='#SkPath_isVolatile'>isVolatile</a>() const
</pre>
-Returns true if the path is volatile; it will not be altered or discarded
-by the caller after it is drawn. <a href='#Path'>Paths</a> by default have volatile set false, allowing
-<a href='SkSurface_Reference#Surface'>Surface</a> to attach a cache of data which speeds repeated drawing. If true, <a href='SkSurface_Reference#Surface'>Surface</a>
+Returns true if the <a href='SkPath_Reference#Path'>path</a> is volatile; it will not be altered or discarded
+by the caller after it is drawn. <a href='SkPath_Reference#SkPath'>SkPath</a> by default have volatile set false, allowing
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> to attach a cache of <a href='undocumented#Data'>data</a> which speeds repeated drawing. If true, <a href='SkSurface_Reference#SkSurface'>SkSurface</a>
may not speed repeated drawing.
### Return Value
-true if caller will alter <a href='#Path'>Path</a> after drawing
+true if caller will alter <a href='SkPath_Reference#SkPath'>SkPath</a> after drawing
### Example
@@ -1362,23 +1364,23 @@
void <a href='#SkPath_setIsVolatile'>setIsVolatile</a>(bool <a href='#SkPath_isVolatile'>isVolatile</a>)
</pre>
-Specifies whether <a href='#Path'>Path</a> is volatile; whether it will be altered or discarded
-by the caller after it is drawn. <a href='#Path'>Paths</a> by default have volatile set false, allowing
-<a href='undocumented#Device'>Device</a> to attach a cache of data which speeds repeated drawing.
+Specifies whether <a href='SkPath_Reference#SkPath'>SkPath</a> is volatile; whether it will be altered or discarded
+by the caller after it is drawn. <a href='SkPath_Reference#SkPath'>SkPath</a> by default have volatile set false, allowing
+<a href='undocumented#SkBaseDevice'>SkBaseDevice</a> to attach a cache of <a href='undocumented#Data'>data</a> which speeds repeated drawing.
-Mark temporary paths, discarded or modified after use, as volatile
-to inform <a href='undocumented#Device'>Device</a> that the path need not be cached.
+Mark temporary <a href='SkPath_Reference#Path'>paths</a>, discarded or modified after use, as volatile
+to inform <a href='undocumented#SkBaseDevice'>SkBaseDevice</a> that the <a href='SkPath_Reference#Path'>path</a> need not be cached.
-Mark animating <a href='#Path'>Path</a> volatile to improve performance.
-Mark unchanging <a href='#Path'>Path</a> non-volatile to improve repeated rendering.
+Mark animating <a href='SkPath_Reference#SkPath'>SkPath</a> volatile to improve performance.
+Mark unchanging <a href='SkPath_Reference#SkPath'>SkPath</a> non-volatile to improve repeated rendering.
-<a href='undocumented#Raster_Surface'>Raster Surface</a> <a href='#Path'>Path</a> draws are affected by volatile for some shadows.
-<a href='undocumented#GPU_Surface'>GPU Surface</a> <a href='#Path'>Path</a> draws are affected by volatile for some shadows and concave geometries.
+<a href='undocumented#Raster_Surface'>raster surface</a> <a href='SkPath_Reference#SkPath'>SkPath</a> draws are affected by volatile for some shadows.
+<a href='undocumented#GPU_Surface'>GPU surface</a> <a href='SkPath_Reference#SkPath'>SkPath</a> draws are affected by volatile for some shadows and concave geometries.
### Parameters
<table> <tr> <td><a name='SkPath_setIsVolatile_isVolatile'><code><strong>isVolatile</strong></code></a></td>
- <td>true if caller will alter <a href='#Path'>Path</a> after drawing</td>
+ <td>true if caller will alter <a href='SkPath_Reference#SkPath'>SkPath</a> after drawing</td>
</tr>
</table>
@@ -1398,9 +1400,9 @@
static bool <a href='#SkPath_IsLineDegenerate'>IsLineDegenerate</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, bool exact)
</pre>
-Tests if <a href='undocumented#Line'>Line</a> between <a href='SkPoint_Reference#Point'>Point</a> pair is degenerate.
+Tests if <a href='undocumented#Line'>line</a> between <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pair is degenerate.
<a href='undocumented#Line'>Line</a> with no length or that moves a very short distance is degenerate; it is
-treated as a point.
+treated as a <a href='SkPoint_Reference#Point'>point</a>.
<a href='#SkPath_IsLineDegenerate_exact'>exact</a> changes the equality test. If true, returns true only if <a href='#SkPath_IsLineDegenerate_p1'>p1</a> equals <a href='#SkPath_IsLineDegenerate_p2'>p2</a>.
If false, returns true if <a href='#SkPath_IsLineDegenerate_p1'>p1</a> equals or nearly equals <a href='#SkPath_IsLineDegenerate_p2'>p2</a>.
@@ -1408,10 +1410,10 @@
### Parameters
<table> <tr> <td><a name='SkPath_IsLineDegenerate_p1'><code><strong>p1</strong></code></a></td>
- <td>line start point</td>
+ <td><a href='undocumented#Line'>line</a> start <a href='SkPoint_Reference#Point'>point</a></td>
</tr>
<tr> <td><a name='SkPath_IsLineDegenerate_p2'><code><strong>p2</strong></code></a></td>
- <td>line end point</td>
+ <td><a href='undocumented#Line'>line</a> end <a href='SkPoint_Reference#Point'>point</a></td>
</tr>
<tr> <td><a name='SkPath_IsLineDegenerate_exact'><code><strong>exact</strong></code></a></td>
<td>if false, allow nearly equals</td>
@@ -1420,7 +1422,7 @@
### Return Value
-true if <a href='undocumented#Line'>Line</a> is degenerate; its length is effectively zero
+true if <a href='undocumented#Line'>line</a> is degenerate; its length is effectively zero
### Example
@@ -1452,30 +1454,31 @@
static bool <a href='#SkPath_IsQuadDegenerate'>IsQuadDegenerate</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p3, bool exact)
</pre>
-Tests if <a href='#Quad'>Quad</a> is degenerate.
-<a href='#Quad'>Quad</a> with no length or that moves a very short distance is degenerate; it is
-treated as a point.
+Tests if <a href='SkPath_Reference#Quad'>quad</a> is degenerate.
+<a href='SkPath_Reference#Quad'>Quad</a> with no length or that moves a very short distance is degenerate; it is
+treated as a <a href='SkPoint_Reference#Point'>point</a>.
### Parameters
<table> <tr> <td><a name='SkPath_IsQuadDegenerate_p1'><code><strong>p1</strong></code></a></td>
- <td><a href='#Quad'>Quad</a> start point</td>
+ <td><a href='SkPath_Reference#Quad'>quad</a> start <a href='SkPoint_Reference#Point'>point</a></td>
</tr>
<tr> <td><a name='SkPath_IsQuadDegenerate_p2'><code><strong>p2</strong></code></a></td>
- <td><a href='#Quad'>Quad</a> control point</td>
+ <td><a href='SkPath_Reference#Quad'>quad</a> control <a href='SkPoint_Reference#Point'>point</a></td>
</tr>
<tr> <td><a name='SkPath_IsQuadDegenerate_p3'><code><strong>p3</strong></code></a></td>
- <td><a href='#Quad'>Quad</a> end point</td>
+ <td><a href='SkPath_Reference#Quad'>quad</a> end <a href='SkPoint_Reference#Point'>point</a></td>
</tr>
<tr> <td><a name='SkPath_IsQuadDegenerate_exact'><code><strong>exact</strong></code></a></td>
- <td>if true, returns true only if <a href='#SkPath_IsQuadDegenerate_p1'>p1</a>, <a href='#SkPath_IsQuadDegenerate_p2'>p2</a>, and <a href='#SkPath_IsQuadDegenerate_p3'>p3</a> are equal;
-if false, returns true if <a href='#SkPath_IsQuadDegenerate_p1'>p1</a>, <a href='#SkPath_IsQuadDegenerate_p2'>p2</a>, and <a href='#SkPath_IsQuadDegenerate_p3'>p3</a> are equal or nearly equal</td>
+ <td>if true, returns true only if <a href='#SkPath_IsQuadDegenerate_p1'>p1</a>, <a href='#SkPath_IsQuadDegenerate_p2'>p2</a>, and <a href='#SkPath_IsQuadDegenerate_p3'>p3</a> are equal;</td>
</tr>
</table>
+if false, returns true if <a href='#SkPath_IsQuadDegenerate_p1'>p1</a>, <a href='#SkPath_IsQuadDegenerate_p2'>p2</a>, and <a href='#SkPath_IsQuadDegenerate_p3'>p3</a> are equal or nearly equal
+
### Return Value
-true if <a href='#Quad'>Quad</a> is degenerate; its length is effectively zero
+true if <a href='SkPath_Reference#Quad'>quad</a> is degenerate; its length is effectively zero
### Example
@@ -1508,33 +1511,34 @@
const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p4, bool exact)
</pre>
-Tests if <a href='#Cubic'>Cubic</a> is degenerate.
-<a href='#Cubic'>Cubic</a> with no length or that moves a very short distance is degenerate; it is
-treated as a point.
+Tests if <a href='SkPath_Reference#Cubic'>cubic</a> is degenerate.
+<a href='SkPath_Reference#Cubic'>Cubic</a> with no length or that moves a very short distance is degenerate; it is
+treated as a <a href='SkPoint_Reference#Point'>point</a>.
### Parameters
<table> <tr> <td><a name='SkPath_IsCubicDegenerate_p1'><code><strong>p1</strong></code></a></td>
- <td><a href='#Cubic'>Cubic</a> start point</td>
+ <td><a href='SkPath_Reference#Cubic'>cubic</a> start <a href='SkPoint_Reference#Point'>point</a></td>
</tr>
<tr> <td><a name='SkPath_IsCubicDegenerate_p2'><code><strong>p2</strong></code></a></td>
- <td><a href='#Cubic'>Cubic</a> control point 1</td>
+ <td><a href='SkPath_Reference#Cubic'>cubic</a> control <a href='SkPoint_Reference#Point'>point</a> 1</td>
</tr>
<tr> <td><a name='SkPath_IsCubicDegenerate_p3'><code><strong>p3</strong></code></a></td>
- <td><a href='#Cubic'>Cubic</a> control point 2</td>
+ <td><a href='SkPath_Reference#Cubic'>cubic</a> control <a href='SkPoint_Reference#Point'>point</a> 2</td>
</tr>
<tr> <td><a name='SkPath_IsCubicDegenerate_p4'><code><strong>p4</strong></code></a></td>
- <td><a href='#Cubic'>Cubic</a> end point</td>
+ <td><a href='SkPath_Reference#Cubic'>cubic</a> end <a href='SkPoint_Reference#Point'>point</a></td>
</tr>
<tr> <td><a name='SkPath_IsCubicDegenerate_exact'><code><strong>exact</strong></code></a></td>
- <td>if true, returns true only if <a href='#SkPath_IsCubicDegenerate_p1'>p1</a>, <a href='#SkPath_IsCubicDegenerate_p2'>p2</a>, <a href='#SkPath_IsCubicDegenerate_p3'>p3</a>, and <a href='#SkPath_IsCubicDegenerate_p4'>p4</a> are equal;
-if false, returns true if <a href='#SkPath_IsCubicDegenerate_p1'>p1</a>, <a href='#SkPath_IsCubicDegenerate_p2'>p2</a>, <a href='#SkPath_IsCubicDegenerate_p3'>p3</a>, and <a href='#SkPath_IsCubicDegenerate_p4'>p4</a> are equal or nearly equal</td>
+ <td>if true, returns true only if <a href='#SkPath_IsCubicDegenerate_p1'>p1</a>, <a href='#SkPath_IsCubicDegenerate_p2'>p2</a>, <a href='#SkPath_IsCubicDegenerate_p3'>p3</a>, and <a href='#SkPath_IsCubicDegenerate_p4'>p4</a> are equal;</td>
</tr>
</table>
+if false, returns true if <a href='#SkPath_IsCubicDegenerate_p1'>p1</a>, <a href='#SkPath_IsCubicDegenerate_p2'>p2</a>, <a href='#SkPath_IsCubicDegenerate_p3'>p3</a>, and <a href='#SkPath_IsCubicDegenerate_p4'>p4</a> are equal or nearly equal
+
### Return Value
-true if <a href='#Cubic'>Cubic</a> is degenerate; its length is effectively zero
+true if <a href='SkPath_Reference#Cubic'>cubic</a> is degenerate; its length is effectively zero
### Example
@@ -1557,22 +1561,22 @@
bool <a href='#SkPath_isLine'>isLine</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> line[2]) const
</pre>
-Returns true if <a href='#Path'>Path</a> contains only one <a href='undocumented#Line'>Line</a>;
-<a href='#Verb'>Path Verb</a> array has two entries: <a href='#SkPath_kMove_Verb'>kMove Verb</a>, <a href='#SkPath_kLine_Verb'>kLine Verb</a>.
-If <a href='#Path'>Path</a> contains one <a href='undocumented#Line'>Line</a> and <a href='#SkPath_isLine_line'>line</a> is not nullptr, <a href='#SkPath_isLine_line'>line</a> is set to
-<a href='undocumented#Line'>Line</a> start point and <a href='undocumented#Line'>Line</a> end point.
-Returns false if <a href='#Path'>Path</a> is not one <a href='undocumented#Line'>Line</a>; <a href='#SkPath_isLine_line'>line</a> is unaltered.
+Returns true if <a href='SkPath_Reference#SkPath'>SkPath</a> contains only one <a href='#SkPath_isLine_line'>line</a>;
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> array has two entries: <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, <a href='#SkPath_kLine_Verb'>kLine_Verb</a>.
+If <a href='SkPath_Reference#SkPath'>SkPath</a> contains one <a href='#SkPath_isLine_line'>line</a> and <a href='#SkPath_isLine_line'>line</a> is not nullptr, <a href='#SkPath_isLine_line'>line</a> is set to
+<a href='#SkPath_isLine_line'>line</a> start <a href='SkPoint_Reference#Point'>point</a> and <a href='#SkPath_isLine_line'>line</a> end <a href='SkPoint_Reference#Point'>point</a>.
+Returns false if <a href='SkPath_Reference#SkPath'>SkPath</a> is not one <a href='#SkPath_isLine_line'>line</a>; <a href='#SkPath_isLine_line'>line</a> is unaltered.
### Parameters
<table> <tr> <td><a name='SkPath_isLine_line'><code><strong>line</strong></code></a></td>
- <td>storage for <a href='undocumented#Line'>Line</a>. May be nullptr</td>
+ <td>storage for <a href='#SkPath_isLine_line'>line</a>. May be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href='#Path'>Path</a> contains exactly one <a href='undocumented#Line'>Line</a>
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> contains exactly one <a href='#SkPath_isLine_line'>line</a>
### Example
@@ -1607,14 +1611,14 @@
int <a href='#SkPath_getPoints'>getPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> points[], int max) const
</pre>
-Returns number of <a href='#SkPath_getPoints_points'>points</a> in <a href='#Path'>Path</a>. Up to max <a href='#SkPath_getPoints_points'>points</a> are copied.
-<a href='#SkPath_getPoints_points'>points</a> may be nullptr; then, max must be zero.
-If max is greater than number of <a href='#SkPath_getPoints_points'>points</a>, excess <a href='#SkPath_getPoints_points'>points</a> storage is unaltered.
+Returns number of <a href='#SkPath_getPoints_points'>points</a> in <a href='SkPath_Reference#SkPath'>SkPath</a>. Up to <a href='#SkPath_getPoints_max'>max</a> <a href='#SkPath_getPoints_points'>points</a> are copied.
+<a href='#SkPath_getPoints_points'>points</a> may be nullptr; then, <a href='#SkPath_getPoints_max'>max</a> must be zero.
+If <a href='#SkPath_getPoints_max'>max</a> is greater than number of <a href='#SkPath_getPoints_points'>points</a>, excess <a href='#SkPath_getPoints_points'>points</a> storage is unaltered.
### Parameters
<table> <tr> <td><a name='SkPath_getPoints_points'><code><strong>points</strong></code></a></td>
- <td>storage for <a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> array. May be nullptr</td>
+ <td>storage for <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a>. May be nullptr</td>
</tr>
<tr> <td><a name='SkPath_getPoints_max'><code><strong>max</strong></code></a></td>
<td>maximum to copy; must be greater than or equal to zero</td>
@@ -1623,7 +1627,7 @@
### Return Value
-<a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> array length
+<a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> length
### Example
@@ -1652,12 +1656,12 @@
int <a href='#SkPath_countPoints'>countPoints</a>() const
</pre>
-Returns the number of points in <a href='#Path'>Path</a>.
-<a href='SkPoint_Reference#Point'>Point</a> count is initially zero.
+Returns the number of <a href='SkPoint_Reference#Point'>points</a> in <a href='SkPath_Reference#SkPath'>SkPath</a>.
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> count is initially zero.
### Return Value
-<a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> array length
+<a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> length
### Example
@@ -1686,20 +1690,20 @@
<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_getPoint'>getPoint</a>(int index) const
</pre>
-Returns <a href='SkPoint_Reference#Point'>Point</a> at <a href='#SkPath_getPoint_index'>index</a> in <a href='#Point_Array'>Point Array</a>. Valid range for <a href='#SkPath_getPoint_index'>index</a> is
-0 to <a href='#SkPath_countPoints'>countPoints</a> - 1.
+Returns <a href='SkPoint_Reference#SkPoint'>SkPoint</a> at <a href='#SkPath_getPoint_index'>index</a> in <a href='SkPath_Reference#Point_Array'>SkPoint array</a>. Valid range for <a href='#SkPath_getPoint_index'>index</a> is
+0 to <a href='#SkPath_countPoints'>countPoints</a>() - 1.
Returns (0, 0) if <a href='#SkPath_getPoint_index'>index</a> is out of range.
### Parameters
<table> <tr> <td><a name='SkPath_getPoint_index'><code><strong>index</strong></code></a></td>
- <td><a href='SkPoint_Reference#Point'>Point</a> array element selector</td>
+ <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a> element selector</td>
</tr>
</table>
### Return Value
-<a href='SkPoint_Reference#Point'>Point</a> array value or (0, 0)
+<a href='SkPath_Reference#Point_Array'>SkPoint array</a> value or (0, 0)
### Example
@@ -1737,12 +1741,12 @@
int <a href='#SkPath_countVerbs'>countVerbs</a>() const
</pre>
-Returns the number of <a href='#Verb'>Verbs</a>: <a href='#SkPath_kMove_Verb'>kMove Verb</a>, <a href='#SkPath_kLine_Verb'>kLine Verb</a>, <a href='#SkPath_kQuad_Verb'>kQuad Verb</a>, <a href='#SkPath_kConic_Verb'>kConic Verb</a>,
-<a href='#SkPath_kCubic_Verb'>kCubic Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose Verb</a>; added to <a href='#Path'>Path</a>.
+Returns the number of <a href='SkPath_Reference#Verb'>verbs</a>: <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, <a href='#SkPath_kLine_Verb'>kLine_Verb</a>, <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a>, <a href='#SkPath_kConic_Verb'>kConic_Verb</a>,
+<a href='#SkPath_kCubic_Verb'>kCubic_Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose_Verb</a>; added to <a href='SkPath_Reference#SkPath'>SkPath</a>.
### Return Value
-length of <a href='#Verb_Array'>Verb Array</a>
+length of <a href='#Verb_Array'>verb array</a>
### Example
@@ -1769,7 +1773,7 @@
int <a href='#SkPath_getVerbs'>getVerbs</a>(uint8_t verbs[], int max) const
</pre>
-Returns the number of <a href='#SkPath_getVerbs_verbs'>verbs</a> in the path. Up to max <a href='#SkPath_getVerbs_verbs'>verbs</a> are copied. The
+Returns the number of <a href='#SkPath_getVerbs_verbs'>verbs</a> in the <a href='SkPath_Reference#Path'>path</a>. Up to <a href='#SkPath_getVerbs_max'>max</a> <a href='#SkPath_getVerbs_verbs'>verbs</a> are copied. The
<a href='#SkPath_getVerbs_verbs'>verbs</a> are copied as one byte per verb.
### Parameters
@@ -1784,7 +1788,7 @@
### Return Value
-the actual number of <a href='#SkPath_getVerbs_verbs'>verbs</a> in the path
+the actual number of <a href='#SkPath_getVerbs_verbs'>verbs</a> in the <a href='SkPath_Reference#Path'>path</a>
### Example
@@ -1813,18 +1817,18 @@
void <a href='#SkPath_swap'>swap</a>(<a href='#SkPath'>SkPath</a>& other)
</pre>
-Exchanges the <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, <a href='#Conic_Weight'>Weights</a>, and <a href='#Fill_Type'>Fill Type</a> with <a href='#SkPath_swap_other'>other</a>.
-Cached state is also exchanged. <a href='#SkPath_swap'>swap</a>() internally exchanges pointers, so
+Exchanges the <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='SkPath_Reference#Conic_Weight'>weights</a>, and <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> with <a href='#SkPath_swap()_other'>other</a>.
+Cached state is also exchanged. <a href='#SkPath_swap'>swap()</a> internally exchanges pointers, so
it is lightweight and does not allocate memory.
-<a href='#SkPath_swap'>swap</a>() usage has largely been replaced by <a href='#SkPath_copy_operator'>operator=(const SkPath& path)</a>.
-<a href='#Path'>Paths</a> do not copy their content on assignment until they are written to,
-making assignment as efficient as <a href='#SkPath_swap'>swap</a>().
+<a href='#SkPath_swap'>swap()</a> usage has largely been replaced by <a href='#SkPath_copy_operator'>operator=(const SkPath& path)</a>.
+<a href='SkPath_Reference#SkPath'>SkPath</a> do not copy their content on assignment until they are written to,
+making assignment as efficient as <a href='#SkPath_swap'>swap()</a>.
### Parameters
<table> <tr> <td><a name='SkPath_swap_other'><code><strong>other</strong></code></a></td>
- <td><a href='#Path'>Path</a> exchanged by value</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> exchanged by value</td>
</tr>
</table>
@@ -1853,16 +1857,16 @@
const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkPath_getBounds'>getBounds</a>() const
</pre>
-Returns minimum and maximum axes values of <a href='#Point_Array'>Point Array</a>.
-Returns (0, 0, 0, 0) if <a href='#Path'>Path</a> contains no points. Returned bounds width and height may
-be larger or smaller than area affected when <a href='#Path'>Path</a> is drawn.
+Returns minimum and maximum axes values of <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
+Returns (0, 0, 0, 0) if <a href='SkPath_Reference#SkPath'>SkPath</a> contains no <a href='SkPoint_Reference#Point'>points</a>. Returned bounds width and height may
+be larger or smaller than area affected when <a href='SkPath_Reference#SkPath'>SkPath</a> is drawn.
-<a href='SkRect_Reference#Rect'>Rect</a> returned includes all <a href='SkPoint_Reference#Point'>Points</a> added to <a href='#Path'>Path</a>, including <a href='SkPoint_Reference#Point'>Points</a> associated with
-<a href='#SkPath_kMove_Verb'>kMove Verb</a> that define empty <a href='SkPath_Overview#Contour'>Contours</a>.
+<a href='SkRect_Reference#SkRect'>SkRect</a> returned includes all <a href='SkPoint_Reference#SkPoint'>SkPoint</a> added to <a href='SkPath_Reference#SkPath'>SkPath</a>, including <a href='SkPoint_Reference#SkPoint'>SkPoint</a> associated with
+<a href='#SkPath_kMove_Verb'>kMove_Verb</a> that define empty <a href='SkPath_Overview#Contour'>contours</a>.
### Return Value
-bounds of all <a href='SkPoint_Reference#Point'>Points</a> in <a href='#Point_Array'>Point Array</a>
+bounds of all <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='SkPath_Reference#Point_Array'>SkPoint array</a>
### Example
@@ -1894,12 +1898,12 @@
void <a href='#SkPath_updateBoundsCache'>updateBoundsCache</a>() const
</pre>
-Updates internal bounds so that subsequent calls to <a href='#SkPath_getBounds'>getBounds</a> are instantaneous.
-Unaltered copies of <a href='#Path'>Path</a> may also access cached bounds through <a href='#SkPath_getBounds'>getBounds</a>.
+Updates internal bounds so that subsequent calls to <a href='#SkPath_getBounds'>getBounds</a>() are instantaneous.
+Unaltered copies of <a href='SkPath_Reference#SkPath'>SkPath</a> may also access cached bounds through <a href='#SkPath_getBounds'>getBounds</a>().
-For now, identical to calling <a href='#SkPath_getBounds'>getBounds</a> and ignoring the returned value.
+For now, identical to calling <a href='#SkPath_getBounds'>getBounds</a>() and ignoring the returned value.
-Call to prepare <a href='#Path'>Path</a> subsequently drawn from multiple threads,
+Call to prepare <a href='SkPath_Reference#SkPath'>SkPath</a> subsequently drawn from multiple threads,
to avoid a race condition where each draw separately computes the bounds.
### Example
@@ -1928,22 +1932,22 @@
<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPath_computeTightBounds'>computeTightBounds</a>() const
</pre>
-Returns minimum and maximum axes values of the lines and curves in <a href='#Path'>Path</a>.
-Returns (0, 0, 0, 0) if <a href='#Path'>Path</a> contains no points.
+Returns minimum and maximum axes values of the <a href='undocumented#Line'>lines</a> and <a href='undocumented#Curve'>curves</a> in <a href='SkPath_Reference#SkPath'>SkPath</a>.
+Returns (0, 0, 0, 0) if <a href='SkPath_Reference#SkPath'>SkPath</a> contains no <a href='SkPoint_Reference#Point'>points</a>.
Returned bounds width and height may be larger or smaller than area affected
-when <a href='#Path'>Path</a> is drawn.
+when <a href='SkPath_Reference#SkPath'>SkPath</a> is drawn.
-Includes <a href='SkPoint_Reference#Point'>Points</a> associated with <a href='#SkPath_kMove_Verb'>kMove Verb</a> that define empty
-<a href='SkPath_Overview#Contour'>Contours</a>.
+Includes <a href='SkPoint_Reference#SkPoint'>SkPoint</a> associated with <a href='#SkPath_kMove_Verb'>kMove_Verb</a> that define empty
+<a href='SkPath_Overview#Contour'>contours</a>.
-Behaves identically to <a href='#SkPath_getBounds'>getBounds</a> when <a href='#Path'>Path</a> contains
-only lines. If <a href='#Path'>Path</a> contains curves, computed bounds includes
-the maximum extent of the <a href='#Quad'>Quad</a>, <a href='#Conic'>Conic</a>, or <a href='#Cubic'>Cubic</a>; is slower than <a href='#SkPath_getBounds'>getBounds</a>;
-and unlike <a href='#SkPath_getBounds'>getBounds</a>, does not cache the result.
+Behaves identically to <a href='#SkPath_getBounds'>getBounds</a>() when <a href='SkPath_Reference#SkPath'>SkPath</a> contains
+only <a href='undocumented#Line'>lines</a>. If <a href='SkPath_Reference#SkPath'>SkPath</a> contains <a href='undocumented#Curve'>curves</a>, computed bounds includes
+the maximum extent of the <a href='SkPath_Reference#Quad'>quad</a>, conic, or <a href='SkPath_Reference#Cubic'>cubic</a>; is slower than <a href='#SkPath_getBounds'>getBounds</a>();
+and unlike <a href='#SkPath_getBounds'>getBounds</a>(), does not cache the result.
### Return Value
-tight bounds of curves in <a href='#Path'>Path</a>
+tight bounds of <a href='undocumented#Curve'>curves</a> in <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -1971,18 +1975,18 @@
bool <a href='#SkPath_conservativelyContainsRect'>conservativelyContainsRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect) const
</pre>
-Returns true if <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> is contained by <a href='#Path'>Path</a>.
-May return false when <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> is contained by <a href='#Path'>Path</a>.
+Returns true if <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> is contained by <a href='SkPath_Reference#SkPath'>SkPath</a>.
+May return false when <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> is contained by <a href='SkPath_Reference#SkPath'>SkPath</a>.
-For now, only returns true if <a href='#Path'>Path</a> has one <a href='SkPath_Overview#Contour'>Contour</a> and is convex.
-<a href='#SkPath_conservativelyContainsRect_rect'>rect</a> may share points and edges with <a href='#Path'>Path</a> and be contained.
+For now, only returns true if <a href='SkPath_Reference#SkPath'>SkPath</a> has one <a href='SkPath_Overview#Contour'>contour</a> and is convex.
+<a href='#SkPath_conservativelyContainsRect_rect'>rect</a> may share <a href='SkPoint_Reference#Point'>points</a> and edges with <a href='SkPath_Reference#SkPath'>SkPath</a> and be contained.
Returns true if <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> is empty, that is, it has zero width or height; and
-the <a href='SkPoint_Reference#Point'>Point</a> or <a href='undocumented#Line'>Line</a> described by <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> is contained by <a href='#Path'>Path</a>.
+the <a href='SkPoint_Reference#SkPoint'>SkPoint</a> or <a href='undocumented#Line'>line</a> described by <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> is contained by <a href='SkPath_Reference#SkPath'>SkPath</a>.
### Parameters
<table> <tr> <td><a name='SkPath_conservativelyContainsRect_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a>, <a href='undocumented#Line'>Line</a>, or <a href='SkPoint_Reference#Point'>Point</a> checked for containment</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='undocumented#Line'>line</a>, or <a href='SkPoint_Reference#SkPoint'>SkPoint</a> checked for containment</td>
</tr>
</table>
@@ -2007,14 +2011,14 @@
void <a href='#SkPath_incReserve'>incReserve</a>(int extraPtCount)
</pre>
-Grows <a href='#Path'>Path</a> <a href='#Verb_Array'>Verb Array</a> and <a href='#Point_Array'>Point Array</a> to contain <a href='#SkPath_incReserve_extraPtCount'>extraPtCount</a> additional <a href='SkPoint_Reference#Point'>Points</a>.
+Grows <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='#Verb_Array'>verb array</a> and <a href='SkPath_Reference#Point_Array'>SkPoint array</a> to contain <a href='#SkPath_incReserve_extraPtCount'>extraPtCount</a> additional <a href='SkPoint_Reference#SkPoint'>SkPoint</a>.
May improve performance and use less memory by
-reducing the number and size of allocations when creating <a href='#Path'>Path</a>.
+reducing the number and <a href='undocumented#Size'>size</a> of allocations when creating <a href='SkPath_Reference#SkPath'>SkPath</a>.
### Parameters
<table> <tr> <td><a name='SkPath_incReserve_extraPtCount'><code><strong>extraPtCount</strong></code></a></td>
- <td>number of additional <a href='SkPoint_Reference#Point'>Points</a> to allocate</td>
+ <td>number of additional <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to allocate</td>
</tr>
</table>
@@ -2034,8 +2038,8 @@
void <a href='#SkPath_shrinkToFit'>shrinkToFit</a>()
</pre>
-Shrinks <a href='#Path'>Path</a> <a href='#Verb_Array'>Verb Array</a> and <a href='#Point_Array'>Point Array</a> storage to discard unused capacity.
-May reduce the heap overhead for <a href='#Path'>Paths</a> known to be fully constructed.
+Shrinks <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='#Verb_Array'>verb array</a> and <a href='SkPath_Reference#Point_Array'>SkPoint array</a> storage to discard unused capacity.
+May reduce the heap overhead for <a href='SkPath_Reference#SkPath'>SkPath</a> known to be fully constructed.
### See Also
@@ -2051,21 +2055,21 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_moveTo'>moveTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
-Adds beginning of <a href='SkPath_Overview#Contour'>Contour</a> at <a href='SkPoint_Reference#Point'>Point</a> (<a href='#SkPath_moveTo_x'>x</a>, <a href='#SkPath_moveTo_y'>y</a>).
+Adds beginning of <a href='SkPath_Overview#Contour'>contour</a> at <a href='SkPoint_Reference#SkPoint'>SkPoint</a> (<a href='#SkPath_moveTo_x'>x</a>, <a href='#SkPath_moveTo_y'>y</a>).
### Parameters
<table> <tr> <td><a name='SkPath_moveTo_x'><code><strong>x</strong></code></a></td>
- <td><a href='#SkPath_moveTo_x'>x</a>-axis value of <a href='SkPath_Overview#Contour'>Contour</a> start</td>
+ <td>x-axis value of <a href='SkPath_Overview#Contour'>contour</a> start</td>
</tr>
<tr> <td><a name='SkPath_moveTo_y'><code><strong>y</strong></code></a></td>
- <td><a href='#SkPath_moveTo_y'>y</a>-axis value of <a href='SkPath_Overview#Contour'>Contour</a> start</td>
+ <td>y-axis value of <a href='SkPath_Overview#Contour'>contour</a> start</td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -2083,18 +2087,18 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_moveTo'>moveTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p)
</pre>
-Adds beginning of <a href='SkPath_Overview#Contour'>Contour</a> at <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_moveTo_2_p'>p</a>.
+Adds beginning of <a href='SkPath_Overview#Contour'>contour</a> at <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_moveTo_2_p'>p</a>.
### Parameters
<table> <tr> <td><a name='SkPath_moveTo_2_p'><code><strong>p</strong></code></a></td>
- <td>contour start</td>
+ <td><a href='SkPath_Overview#Contour'>contour</a> start</td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -2112,24 +2116,24 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_rMoveTo'>rMoveTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Adds beginning of <a href='SkPath_Overview#Contour'>Contour</a> relative to <a href='#Last_Point'>Last Point</a>.
-If <a href='#Path'>Path</a> is empty, starts <a href='SkPath_Overview#Contour'>Contour</a> at (<a href='#SkPath_rMoveTo_dx'>dx</a>, <a href='#SkPath_rMoveTo_dy'>dy</a>).
-Otherwise, start <a href='SkPath_Overview#Contour'>Contour</a> at <a href='#Last_Point'>Last Point</a> offset by (<a href='#SkPath_rMoveTo_dx'>dx</a>, <a href='#SkPath_rMoveTo_dy'>dy</a>).
+Adds beginning of <a href='SkPath_Overview#Contour'>contour</a> relative to <a href='#Last_Point'>last point</a>.
+If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, starts <a href='SkPath_Overview#Contour'>contour</a> at (<a href='#SkPath_rMoveTo_dx'>dx</a>, <a href='#SkPath_rMoveTo_dy'>dy</a>).
+Otherwise, start <a href='SkPath_Overview#Contour'>contour</a> at <a href='#Last_Point'>last point</a> offset by (<a href='#SkPath_rMoveTo_dx'>dx</a>, <a href='#SkPath_rMoveTo_dy'>dy</a>).
Function name stands for "relative move to".
### Parameters
<table> <tr> <td><a name='SkPath_rMoveTo_dx'><code><strong>dx</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>Last Point</a> to <a href='SkPath_Overview#Contour'>Contour</a> start on x-axis</td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Overview#Contour'>contour</a> start on x-axis</td>
</tr>
<tr> <td><a name='SkPath_rMoveTo_dy'><code><strong>dy</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>Last Point</a> to <a href='SkPath_Overview#Contour'>Contour</a> start on y-axis</td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Overview#Contour'>contour</a> start on y-axis</td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -2147,25 +2151,25 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_lineTo'>lineTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
-Adds <a href='undocumented#Line'>Line</a> from <a href='#Last_Point'>Last Point</a> to (<a href='#SkPath_lineTo_x'>x</a>, <a href='#SkPath_lineTo_y'>y</a>). If <a href='#Path'>Path</a> is empty, or last <a href='#SkPath_Verb'>Verb</a> is
-<a href='#SkPath_kClose_Verb'>kClose Verb</a>, <a href='#Last_Point'>Last Point</a> is set to (0, 0) before adding <a href='undocumented#Line'>Line</a>.
+Adds <a href='undocumented#Line'>line</a> from <a href='#Last_Point'>last point</a> to (<a href='#SkPath_lineTo_x'>x</a>, <a href='#SkPath_lineTo_y'>y</a>). If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> is
+<a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, 0) before adding <a href='undocumented#Line'>line</a>.
-<a href='#SkPath_lineTo'>lineTo</a> appends <a href='#SkPath_kMove_Verb'>kMove Verb</a> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point Array</a>, if needed.
-<a href='#SkPath_lineTo'>lineTo</a> then appends <a href='#SkPath_kLine_Verb'>kLine Verb</a> to <a href='#Verb_Array'>Verb Array</a> and (<a href='#SkPath_lineTo_x'>x</a>, <a href='#SkPath_lineTo_y'>y</a>) to <a href='#Point_Array'>Point Array</a>.
+<a href='#SkPath_lineTo'>lineTo</a>() appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, if needed.
+<a href='#SkPath_lineTo'>lineTo</a>() then appends <a href='#SkPath_kLine_Verb'>kLine_Verb</a> to <a href='#Verb_Array'>verb array</a> and (<a href='#SkPath_lineTo_x'>x</a>, <a href='#SkPath_lineTo_y'>y</a>) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
### Parameters
<table> <tr> <td><a name='SkPath_lineTo_x'><code><strong>x</strong></code></a></td>
- <td>end of added <a href='undocumented#Line'>Line</a> in <a href='#SkPath_lineTo_x'>x</a></td>
+ <td>end of added <a href='undocumented#Line'>line</a> on x-axis</td>
</tr>
<tr> <td><a name='SkPath_lineTo_y'><code><strong>y</strong></code></a></td>
- <td>end of added <a href='undocumented#Line'>Line</a> in <a href='#SkPath_lineTo_y'>y</a></td>
+ <td>end of added <a href='undocumented#Line'>line</a> on y-axis</td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -2183,22 +2187,22 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_lineTo'>lineTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p)
</pre>
-Adds <a href='undocumented#Line'>Line</a> from <a href='#Last_Point'>Last Point</a> to <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_lineTo_2_p'>p</a>. If <a href='#Path'>Path</a> is empty, or last <a href='#SkPath_Verb'>Verb</a> is
-<a href='#SkPath_kClose_Verb'>kClose Verb</a>, <a href='#Last_Point'>Last Point</a> is set to (0, 0) before adding <a href='undocumented#Line'>Line</a>.
+Adds <a href='undocumented#Line'>line</a> from <a href='#Last_Point'>last point</a> to <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_lineTo_2_p'>p</a>. If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> is
+<a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, 0) before adding <a href='undocumented#Line'>line</a>.
-<a href='#SkPath_lineTo'>lineTo</a> first appends <a href='#SkPath_kMove_Verb'>kMove Verb</a> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point Array</a>, if needed.
-<a href='#SkPath_lineTo'>lineTo</a> then appends <a href='#SkPath_kLine_Verb'>kLine Verb</a> to <a href='#Verb_Array'>Verb Array</a> and <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_lineTo_2_p'>p</a> to <a href='#Point_Array'>Point Array</a>.
+<a href='#SkPath_lineTo'>lineTo</a>() first appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, if needed.
+<a href='#SkPath_lineTo'>lineTo</a>() then appends <a href='#SkPath_kLine_Verb'>kLine_Verb</a> to <a href='#Verb_Array'>verb array</a> and <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_lineTo_2_p'>p</a> to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
### Parameters
<table> <tr> <td><a name='SkPath_lineTo_2_p'><code><strong>p</strong></code></a></td>
- <td>end <a href='SkPoint_Reference#Point'>Point</a> of added <a href='undocumented#Line'>Line</a></td>
+ <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of added <a href='undocumented#Line'>line</a></td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -2216,27 +2220,27 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_rLineTo'>rLineTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Adds <a href='undocumented#Line'>Line</a> from <a href='#Last_Point'>Last Point</a> to <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rLineTo_dx'>dx</a>, <a href='#SkPath_rLineTo_dy'>dy</a>). If <a href='#Path'>Path</a> is empty, or last <a href='#SkPath_Verb'>Verb</a> is
-<a href='#SkPath_kClose_Verb'>kClose Verb</a>, <a href='#Last_Point'>Last Point</a> is set to (0, 0) before adding <a href='undocumented#Line'>Line</a>.
+Adds <a href='undocumented#Line'>line</a> from <a href='#Last_Point'>last point</a> to <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rLineTo_dx'>dx</a>, <a href='#SkPath_rLineTo_dy'>dy</a>). If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> is
+<a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, 0) before adding <a href='undocumented#Line'>line</a>.
-Appends <a href='#SkPath_kMove_Verb'>kMove Verb</a> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point Array</a>, if needed;
-then appends <a href='#SkPath_kLine_Verb'>kLine Verb</a> to <a href='#Verb_Array'>Verb Array</a> and <a href='undocumented#Line'>Line</a> end to <a href='#Point_Array'>Point Array</a>.
-<a href='undocumented#Line'>Line</a> end is <a href='#Last_Point'>Last Point</a> plus <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rLineTo_dx'>dx</a>, <a href='#SkPath_rLineTo_dy'>dy</a>).
-Function name stands for "relative line to".
+Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, if needed;
+then appends <a href='#SkPath_kLine_Verb'>kLine_Verb</a> to <a href='#Verb_Array'>verb array</a> and <a href='undocumented#Line'>line</a> end to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
+<a href='undocumented#Line'>Line</a> end is <a href='#Last_Point'>last point</a> plus <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rLineTo_dx'>dx</a>, <a href='#SkPath_rLineTo_dy'>dy</a>).
+Function name stands for "relative <a href='undocumented#Line'>line</a> to".
### Parameters
<table> <tr> <td><a name='SkPath_rLineTo_dx'><code><strong>dx</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>Last Point</a> to <a href='undocumented#Line'>Line</a> end on x-axis</td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='undocumented#Line'>line</a> end on x-axis</td>
</tr>
<tr> <td><a name='SkPath_rLineTo_dy'><code><strong>dy</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>Last Point</a> to <a href='undocumented#Line'>Line</a> end on y-axis</td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='undocumented#Line'>line</a> end on y-axis</td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -2276,33 +2280,33 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_quadTo'>quadTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2)
</pre>
-Adds <a href='#Quad'>Quad</a> from <a href='#Last_Point'>Last Point</a> towards (<a href='#SkPath_quadTo_x1'>x1</a>, <a href='#SkPath_quadTo_y1'>y1</a>), to (<a href='#SkPath_quadTo_x2'>x2</a>, <a href='#SkPath_quadTo_y2'>y2</a>).
-If <a href='#Path'>Path</a> is empty, or last <a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose Verb</a>, <a href='#Last_Point'>Last Point</a> is set to (0, 0)
-before adding <a href='#Quad'>Quad</a>.
+Adds <a href='SkPath_Reference#Quad'>quad</a> from <a href='#Last_Point'>last point</a> towards (<a href='#SkPath_quadTo_x1'>x1</a>, <a href='#SkPath_quadTo_y1'>y1</a>), to (<a href='#SkPath_quadTo_x2'>x2</a>, <a href='#SkPath_quadTo_y2'>y2</a>).
+If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, 0)
+before adding <a href='SkPath_Reference#Quad'>quad</a>.
-Appends <a href='#SkPath_kMove_Verb'>kMove Verb</a> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point Array</a>, if needed;
-then appends <a href='#SkPath_kQuad_Verb'>kQuad Verb</a> to <a href='#Verb_Array'>Verb Array</a>; and (<a href='#SkPath_quadTo_x1'>x1</a>, <a href='#SkPath_quadTo_y1'>y1</a>), (<a href='#SkPath_quadTo_x2'>x2</a>, <a href='#SkPath_quadTo_y2'>y2</a>)
-to <a href='#Point_Array'>Point Array</a>.
+Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, if needed;
+then appends <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> to <a href='#Verb_Array'>verb array</a>; and (<a href='#SkPath_quadTo_x1'>x1</a>, <a href='#SkPath_quadTo_y1'>y1</a>), (<a href='#SkPath_quadTo_x2'>x2</a>, <a href='#SkPath_quadTo_y2'>y2</a>)
+to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
### Parameters
<table> <tr> <td><a name='SkPath_quadTo_x1'><code><strong>x1</strong></code></a></td>
- <td>control <a href='SkPoint_Reference#Point'>Point</a> of <a href='#Quad'>Quad</a> in x</td>
+ <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Quad'>quad</a> on x-axis</td>
</tr>
<tr> <td><a name='SkPath_quadTo_y1'><code><strong>y1</strong></code></a></td>
- <td>control <a href='SkPoint_Reference#Point'>Point</a> of <a href='#Quad'>Quad</a> in y</td>
+ <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Quad'>quad</a> on y-axis</td>
</tr>
<tr> <td><a name='SkPath_quadTo_x2'><code><strong>x2</strong></code></a></td>
- <td>end <a href='SkPoint_Reference#Point'>Point</a> of <a href='#Quad'>Quad</a> in x</td>
+ <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Quad'>quad</a> on x-axis</td>
</tr>
<tr> <td><a name='SkPath_quadTo_y2'><code><strong>y2</strong></code></a></td>
- <td>end <a href='SkPoint_Reference#Point'>Point</a> of <a href='#Quad'>Quad</a> in y</td>
+ <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Quad'>quad</a> on y-axis</td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -2320,27 +2324,27 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_quadTo'>quadTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2)
</pre>
-Adds <a href='#Quad'>Quad</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_quadTo_2_p1'>p1</a>, to <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_quadTo_2_p2'>p2</a>.
-If <a href='#Path'>Path</a> is empty, or last <a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose Verb</a>, <a href='#Last_Point'>Last Point</a> is set to (0, 0)
-before adding <a href='#Quad'>Quad</a>.
+Adds <a href='SkPath_Reference#Quad'>quad</a> from <a href='#Last_Point'>last point</a> towards <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_quadTo_2_p1'>p1</a>, to <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_quadTo_2_p2'>p2</a>.
+If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, 0)
+before adding <a href='SkPath_Reference#Quad'>quad</a>.
-Appends <a href='#SkPath_kMove_Verb'>kMove Verb</a> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point Array</a>, if needed;
-then appends <a href='#SkPath_kQuad_Verb'>kQuad Verb</a> to <a href='#Verb_Array'>Verb Array</a>; and <a href='SkPoint_Reference#Point'>Points</a> <a href='#SkPath_quadTo_2_p1'>p1</a>, <a href='#SkPath_quadTo_2_p2'>p2</a>
-to <a href='#Point_Array'>Point Array</a>.
+Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, if needed;
+then appends <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> to <a href='#Verb_Array'>verb array</a>; and <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_quadTo_2_p1'>p1</a>, <a href='#SkPath_quadTo_2_p2'>p2</a>
+to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
### Parameters
<table> <tr> <td><a name='SkPath_quadTo_2_p1'><code><strong>p1</strong></code></a></td>
- <td>control <a href='SkPoint_Reference#Point'>Point</a> of added <a href='#Quad'>Quad</a></td>
+ <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of added <a href='SkPath_Reference#Quad'>quad</a></td>
</tr>
<tr> <td><a name='SkPath_quadTo_2_p2'><code><strong>p2</strong></code></a></td>
- <td>end <a href='SkPoint_Reference#Point'>Point</a> of added <a href='#Quad'>Quad</a></td>
+ <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of added <a href='SkPath_Reference#Quad'>quad</a></td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -2358,36 +2362,36 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_rQuadTo'>rQuadTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx1, <a href='undocumented#SkScalar'>SkScalar</a> dy1, <a href='undocumented#SkScalar'>SkScalar</a> dx2, <a href='undocumented#SkScalar'>SkScalar</a> dy2)
</pre>
-Adds <a href='#Quad'>Quad</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rQuadTo_dx1'>dx1</a>, <a href='#SkPath_rQuadTo_dy1'>dy1</a>), to <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rQuadTo_dx2'>dx2</a>, <a href='#SkPath_rQuadTo_dy2'>dy2</a>).
-If <a href='#Path'>Path</a> is empty, or last <a href='#SkPath_Verb'>Verb</a>
-is <a href='#SkPath_kClose_Verb'>kClose Verb</a>, <a href='#Last_Point'>Last Point</a> is set to (0, 0) before adding <a href='#Quad'>Quad</a>.
+Adds <a href='SkPath_Reference#Quad'>quad</a> from <a href='#Last_Point'>last point</a> towards <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rQuadTo_dx1'>dx1</a>, <a href='#SkPath_rQuadTo_dy1'>dy1</a>), to <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rQuadTo_dx2'>dx2</a>, <a href='#SkPath_rQuadTo_dy2'>dy2</a>).
+If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>
+is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, 0) before adding <a href='SkPath_Reference#Quad'>quad</a>.
-Appends <a href='#SkPath_kMove_Verb'>kMove Verb</a> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point Array</a>,
-if needed; then appends <a href='#SkPath_kQuad_Verb'>kQuad Verb</a> to <a href='#Verb_Array'>Verb Array</a>; and appends <a href='#Quad'>Quad</a>
-control and <a href='#Quad'>Quad</a> end to <a href='#Point_Array'>Point Array</a>.
-<a href='#Quad'>Quad</a> control is <a href='#Last_Point'>Last Point</a> plus <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rQuadTo_dx1'>dx1</a>, <a href='#SkPath_rQuadTo_dy1'>dy1</a>).
-<a href='#Quad'>Quad</a> end is <a href='#Last_Point'>Last Point</a> plus <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rQuadTo_dx2'>dx2</a>, <a href='#SkPath_rQuadTo_dy2'>dy2</a>).
-Function name stands for "relative quad to".
+Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>,
+if needed; then appends <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> to <a href='#Verb_Array'>verb array</a>; and appends <a href='SkPath_Reference#Quad'>quad</a>
+control and <a href='SkPath_Reference#Quad'>quad</a> end to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
+<a href='SkPath_Reference#Quad'>Quad</a> control is <a href='#Last_Point'>last point</a> plus <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rQuadTo_dx1'>dx1</a>, <a href='#SkPath_rQuadTo_dy1'>dy1</a>).
+<a href='SkPath_Reference#Quad'>Quad</a> end is <a href='#Last_Point'>last point</a> plus <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rQuadTo_dx2'>dx2</a>, <a href='#SkPath_rQuadTo_dy2'>dy2</a>).
+Function name stands for "relative <a href='SkPath_Reference#Quad'>quad</a> to".
### Parameters
<table> <tr> <td><a name='SkPath_rQuadTo_dx1'><code><strong>dx1</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>Last Point</a> to <a href='#Quad'>Quad</a> control on x-axis</td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Quad'>quad</a> control on x-axis</td>
</tr>
<tr> <td><a name='SkPath_rQuadTo_dy1'><code><strong>dy1</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>Last Point</a> to <a href='#Quad'>Quad</a> control on y-axis</td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Quad'>quad</a> control on y-axis</td>
</tr>
<tr> <td><a name='SkPath_rQuadTo_dx2'><code><strong>dx2</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>Last Point</a> to <a href='#Quad'>Quad</a> end on x-axis</td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Quad'>quad</a> end on x-axis</td>
</tr>
<tr> <td><a name='SkPath_rQuadTo_dy2'><code><strong>dy2</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>Last Point</a> to <a href='#Quad'>Quad</a> end on y-axis</td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Quad'>quad</a> end on y-axis</td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -2479,43 +2483,43 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_conicTo'>conicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> w)
</pre>
-Adds <a href='#Conic'>Conic</a> from <a href='#Last_Point'>Last Point</a> towards (<a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), to (<a href='#SkPath_conicTo_x2'>x2</a>, <a href='#SkPath_conicTo_y2'>y2</a>), weighted by <a href='#SkPath_conicTo_w'>w</a>.
-If <a href='#Path'>Path</a> is empty, or last <a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose Verb</a>, <a href='#Last_Point'>Last Point</a> is set to (0, 0)
-before adding <a href='#Conic'>Conic</a>.
+Adds conic from <a href='#Last_Point'>last point</a> towards (<a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), to (<a href='#SkPath_conicTo_x2'>x2</a>, <a href='#SkPath_conicTo_y2'>y2</a>), weighted by <a href='#SkPath_conicTo_w'>w</a>.
+If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, 0)
+before adding conic.
-Appends <a href='#SkPath_kMove_Verb'>kMove Verb</a> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point Array</a>, if needed.
+Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, if needed.
-If <a href='#SkPath_conicTo_w'>w</a> is finite and not one, appends <a href='#SkPath_kConic_Verb'>kConic Verb</a> to <a href='#Verb_Array'>Verb Array</a>;
-and (<a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), (<a href='#SkPath_conicTo_x2'>x2</a>, <a href='#SkPath_conicTo_y2'>y2</a>) to <a href='#Point_Array'>Point Array</a>; and <a href='#SkPath_conicTo_w'>w</a> to <a href='#Conic_Weight'>Conic Weights</a>.
+If <a href='#SkPath_conicTo_w'>w</a> is finite and not one, appends <a href='#SkPath_kConic_Verb'>kConic_Verb</a> to <a href='#Verb_Array'>verb array</a>;
+and (<a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), (<a href='#SkPath_conicTo_x2'>x2</a>, <a href='#SkPath_conicTo_y2'>y2</a>) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>; and <a href='#SkPath_conicTo_w'>w</a> to <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
-If <a href='#SkPath_conicTo_w'>w</a> is one, appends <a href='#SkPath_kQuad_Verb'>kQuad Verb</a> to <a href='#Verb_Array'>Verb Array</a>, and
-(<a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), (<a href='#SkPath_conicTo_x2'>x2</a>, <a href='#SkPath_conicTo_y2'>y2</a>) to <a href='#Point_Array'>Point Array</a>.
+If <a href='#SkPath_conicTo_w'>w</a> is one, appends <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> to <a href='#Verb_Array'>verb array</a>, and
+(<a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), (<a href='#SkPath_conicTo_x2'>x2</a>, <a href='#SkPath_conicTo_y2'>y2</a>) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
-If <a href='#SkPath_conicTo_w'>w</a> is not finite, appends <a href='#SkPath_kLine_Verb'>kLine Verb</a> twice to <a href='#Verb_Array'>Verb Array</a>, and
-(<a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), (<a href='#SkPath_conicTo_x2'>x2</a>, <a href='#SkPath_conicTo_y2'>y2</a>) to <a href='#Point_Array'>Point Array</a>.
+If <a href='#SkPath_conicTo_w'>w</a> is not finite, appends <a href='#SkPath_kLine_Verb'>kLine_Verb</a> twice to <a href='#Verb_Array'>verb array</a>, and
+(<a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), (<a href='#SkPath_conicTo_x2'>x2</a>, <a href='#SkPath_conicTo_y2'>y2</a>) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
### Parameters
<table> <tr> <td><a name='SkPath_conicTo_x1'><code><strong>x1</strong></code></a></td>
- <td>control <a href='SkPoint_Reference#Point'>Point</a> of <a href='#Conic'>Conic</a> in x</td>
+ <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of conic on x-axis</td>
</tr>
<tr> <td><a name='SkPath_conicTo_y1'><code><strong>y1</strong></code></a></td>
- <td>control <a href='SkPoint_Reference#Point'>Point</a> of <a href='#Conic'>Conic</a> in y</td>
+ <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of conic on y-axis</td>
</tr>
<tr> <td><a name='SkPath_conicTo_x2'><code><strong>x2</strong></code></a></td>
- <td>end <a href='SkPoint_Reference#Point'>Point</a> of <a href='#Conic'>Conic</a> in x</td>
+ <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of conic on x-axis</td>
</tr>
<tr> <td><a name='SkPath_conicTo_y2'><code><strong>y2</strong></code></a></td>
- <td>end <a href='SkPoint_Reference#Point'>Point</a> of <a href='#Conic'>Conic</a> in y</td>
+ <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of conic on y-axis</td>
</tr>
<tr> <td><a name='SkPath_conicTo_w'><code><strong>w</strong></code></a></td>
- <td>weight of added <a href='#Conic'>Conic</a></td>
+ <td>weight of added conic</td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -2536,37 +2540,37 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_conicTo'>conicTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, <a href='undocumented#SkScalar'>SkScalar</a> w)
</pre>
-Adds <a href='#Conic'>Conic</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, to <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_conicTo_2_p2'>p2</a>, weighted by <a href='#SkPath_conicTo_2_w'>w</a>.
-If <a href='#Path'>Path</a> is empty, or last <a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose Verb</a>, <a href='#Last_Point'>Last Point</a> is set to (0, 0)
-before adding <a href='#Conic'>Conic</a>.
+Adds conic from <a href='#Last_Point'>last point</a> towards <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, to <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_conicTo_2_p2'>p2</a>, weighted by <a href='#SkPath_conicTo_2_w'>w</a>.
+If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, 0)
+before adding conic.
-Appends <a href='#SkPath_kMove_Verb'>kMove Verb</a> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point Array</a>, if needed.
+Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, if needed.
-If <a href='#SkPath_conicTo_2_w'>w</a> is finite and not one, appends <a href='#SkPath_kConic_Verb'>kConic Verb</a> to <a href='#Verb_Array'>Verb Array</a>;
-and <a href='SkPoint_Reference#Point'>Points</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, <a href='#SkPath_conicTo_2_p2'>p2</a> to <a href='#Point_Array'>Point Array</a>; and <a href='#SkPath_conicTo_2_w'>w</a> to <a href='#Conic_Weight'>Conic Weights</a>.
+If <a href='#SkPath_conicTo_2_w'>w</a> is finite and not one, appends <a href='#SkPath_kConic_Verb'>kConic_Verb</a> to <a href='#Verb_Array'>verb array</a>;
+and <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, <a href='#SkPath_conicTo_2_p2'>p2</a> to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>; and <a href='#SkPath_conicTo_2_w'>w</a> to <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
-If <a href='#SkPath_conicTo_2_w'>w</a> is one, appends <a href='#SkPath_kQuad_Verb'>kQuad Verb</a> to <a href='#Verb_Array'>Verb Array</a>, and <a href='SkPoint_Reference#Point'>Points</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, <a href='#SkPath_conicTo_2_p2'>p2</a>
-to <a href='#Point_Array'>Point Array</a>.
+If <a href='#SkPath_conicTo_2_w'>w</a> is one, appends <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> to <a href='#Verb_Array'>verb array</a>, and <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, <a href='#SkPath_conicTo_2_p2'>p2</a>
+to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
-If <a href='#SkPath_conicTo_2_w'>w</a> is not finite, appends <a href='#SkPath_kLine_Verb'>kLine Verb</a> twice to <a href='#Verb_Array'>Verb Array</a>, and
-<a href='SkPoint_Reference#Point'>Points</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, <a href='#SkPath_conicTo_2_p2'>p2</a> to <a href='#Point_Array'>Point Array</a>.
+If <a href='#SkPath_conicTo_2_w'>w</a> is not finite, appends <a href='#SkPath_kLine_Verb'>kLine_Verb</a> twice to <a href='#Verb_Array'>verb array</a>, and
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, <a href='#SkPath_conicTo_2_p2'>p2</a> to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
### Parameters
<table> <tr> <td><a name='SkPath_conicTo_2_p1'><code><strong>p1</strong></code></a></td>
- <td>control <a href='SkPoint_Reference#Point'>Point</a> of added <a href='#Conic'>Conic</a></td>
+ <td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of added conic</td>
</tr>
<tr> <td><a name='SkPath_conicTo_2_p2'><code><strong>p2</strong></code></a></td>
- <td>end <a href='SkPoint_Reference#Point'>Point</a> of added <a href='#Conic'>Conic</a></td>
+ <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of added conic</td>
</tr>
<tr> <td><a name='SkPath_conicTo_2_w'><code><strong>w</strong></code></a></td>
- <td>weight of added <a href='#Conic'>Conic</a></td>
+ <td>weight of added conic</td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -2586,46 +2590,46 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_rConicTo'>rConicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx1, <a href='undocumented#SkScalar'>SkScalar</a> dy1, <a href='undocumented#SkScalar'>SkScalar</a> dx2, <a href='undocumented#SkScalar'>SkScalar</a> dy2, <a href='undocumented#SkScalar'>SkScalar</a> w)
</pre>
-Adds <a href='#Conic'>Conic</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rConicTo_dx1'>dx1</a>, <a href='#SkPath_rConicTo_dy1'>dy1</a>), to <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rConicTo_dx2'>dx2</a>, <a href='#SkPath_rConicTo_dy2'>dy2</a>),
-weighted by <a href='#SkPath_rConicTo_w'>w</a>. If <a href='#Path'>Path</a> is empty, or last <a href='#SkPath_Verb'>Verb</a>
-is <a href='#SkPath_kClose_Verb'>kClose Verb</a>, <a href='#Last_Point'>Last Point</a> is set to (0, 0) before adding <a href='#Conic'>Conic</a>.
+Adds conic from <a href='#Last_Point'>last point</a> towards <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rConicTo_dx1'>dx1</a>, <a href='#SkPath_rConicTo_dy1'>dy1</a>), to <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rConicTo_dx2'>dx2</a>, <a href='#SkPath_rConicTo_dy2'>dy2</a>),
+weighted by <a href='#SkPath_rConicTo_w'>w</a>. If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>
+is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, 0) before adding conic.
-Appends <a href='#SkPath_kMove_Verb'>kMove Verb</a> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point Array</a>,
+Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>,
if needed.
-If <a href='#SkPath_rConicTo_w'>w</a> is finite and not one, next appends <a href='#SkPath_kConic_Verb'>kConic Verb</a> to <a href='#Verb_Array'>Verb Array</a>,
-and <a href='#SkPath_rConicTo_w'>w</a> is recorded as <a href='#Conic_Weight'>Conic Weight</a>; otherwise, if <a href='#SkPath_rConicTo_w'>w</a> is one, appends
-<a href='#SkPath_kQuad_Verb'>kQuad Verb</a> to <a href='#Verb_Array'>Verb Array</a>; or if <a href='#SkPath_rConicTo_w'>w</a> is not finite, appends <a href='#SkPath_kLine_Verb'>kLine Verb</a>
-twice to <a href='#Verb_Array'>Verb Array</a>.
+If <a href='#SkPath_rConicTo_w'>w</a> is finite and not one, next appends <a href='#SkPath_kConic_Verb'>kConic_Verb</a> to <a href='#Verb_Array'>verb array</a>,
+and <a href='#SkPath_rConicTo_w'>w</a> is recorded as <a href='#Conic_Weight'>conic weight</a>; otherwise, if <a href='#SkPath_rConicTo_w'>w</a> is one, appends
+<a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> to <a href='#Verb_Array'>verb array</a>; or if <a href='#SkPath_rConicTo_w'>w</a> is not finite, appends <a href='#SkPath_kLine_Verb'>kLine_Verb</a>
+twice to <a href='#Verb_Array'>verb array</a>.
-In all cases appends <a href='SkPoint_Reference#Point'>Points</a> control and end to <a href='#Point_Array'>Point Array</a>.
-control is <a href='#Last_Point'>Last Point</a> plus <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rConicTo_dx1'>dx1</a>, <a href='#SkPath_rConicTo_dy1'>dy1</a>).
-end is <a href='#Last_Point'>Last Point</a> plus <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rConicTo_dx2'>dx2</a>, <a href='#SkPath_rConicTo_dy2'>dy2</a>).
+In all cases appends <a href='SkPoint_Reference#SkPoint'>SkPoint</a> control and end to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
+control is <a href='#Last_Point'>last point</a> plus <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rConicTo_dx1'>dx1</a>, <a href='#SkPath_rConicTo_dy1'>dy1</a>).
+end is <a href='#Last_Point'>last point</a> plus <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rConicTo_dx2'>dx2</a>, <a href='#SkPath_rConicTo_dy2'>dy2</a>).
Function name stands for "relative conic to".
### Parameters
<table> <tr> <td><a name='SkPath_rConicTo_dx1'><code><strong>dx1</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>Last Point</a> to <a href='#Conic'>Conic</a> control on x-axis</td>
+ <td>offset from <a href='#Last_Point'>last point</a> to conic control on x-axis</td>
</tr>
<tr> <td><a name='SkPath_rConicTo_dy1'><code><strong>dy1</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>Last Point</a> to <a href='#Conic'>Conic</a> control on y-axis</td>
+ <td>offset from <a href='#Last_Point'>last point</a> to conic control on y-axis</td>
</tr>
<tr> <td><a name='SkPath_rConicTo_dx2'><code><strong>dx2</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>Last Point</a> to <a href='#Conic'>Conic</a> end on x-axis</td>
+ <td>offset from <a href='#Last_Point'>last point</a> to conic end on x-axis</td>
</tr>
<tr> <td><a name='SkPath_rConicTo_dy2'><code><strong>dy2</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>Last Point</a> to <a href='#Conic'>Conic</a> end on y-axis</td>
+ <td>offset from <a href='#Last_Point'>last point</a> to conic end on y-axis</td>
</tr>
<tr> <td><a name='SkPath_rConicTo_w'><code><strong>w</strong></code></a></td>
- <td>weight of added <a href='#Conic'>Conic</a></td>
+ <td>weight of added conic</td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -2655,39 +2659,39 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_cubicTo'>cubicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> x3, <a href='undocumented#SkScalar'>SkScalar</a> y3)
</pre>
-Adds <a href='#Cubic'>Cubic</a> from <a href='#Last_Point'>Last Point</a> towards (<a href='#SkPath_cubicTo_x1'>x1</a>, <a href='#SkPath_cubicTo_y1'>y1</a>), then towards (<a href='#SkPath_cubicTo_x2'>x2</a>, <a href='#SkPath_cubicTo_y2'>y2</a>), ending at
-(<a href='#SkPath_cubicTo_x3'>x3</a>, <a href='#SkPath_cubicTo_y3'>y3</a>). If <a href='#Path'>Path</a> is empty, or last <a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose Verb</a>, <a href='#Last_Point'>Last Point</a> is set to
-(0, 0) before adding <a href='#Cubic'>Cubic</a>.
+Adds <a href='SkPath_Reference#Cubic'>cubic</a> from <a href='#Last_Point'>last point</a> towards (<a href='#SkPath_cubicTo_x1'>x1</a>, <a href='#SkPath_cubicTo_y1'>y1</a>), then towards (<a href='#SkPath_cubicTo_x2'>x2</a>, <a href='#SkPath_cubicTo_y2'>y2</a>), ending at
+(<a href='#SkPath_cubicTo_x3'>x3</a>, <a href='#SkPath_cubicTo_y3'>y3</a>). If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to
+(0, 0) before adding <a href='SkPath_Reference#Cubic'>cubic</a>.
-Appends <a href='#SkPath_kMove_Verb'>kMove Verb</a> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point Array</a>, if needed;
-then appends <a href='#SkPath_kCubic_Verb'>kCubic Verb</a> to <a href='#Verb_Array'>Verb Array</a>; and (<a href='#SkPath_cubicTo_x1'>x1</a>, <a href='#SkPath_cubicTo_y1'>y1</a>), (<a href='#SkPath_cubicTo_x2'>x2</a>, <a href='#SkPath_cubicTo_y2'>y2</a>), (<a href='#SkPath_cubicTo_x3'>x3</a>, <a href='#SkPath_cubicTo_y3'>y3</a>)
-to <a href='#Point_Array'>Point Array</a>.
+Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, if needed;
+then appends <a href='#SkPath_kCubic_Verb'>kCubic_Verb</a> to <a href='#Verb_Array'>verb array</a>; and (<a href='#SkPath_cubicTo_x1'>x1</a>, <a href='#SkPath_cubicTo_y1'>y1</a>), (<a href='#SkPath_cubicTo_x2'>x2</a>, <a href='#SkPath_cubicTo_y2'>y2</a>), (<a href='#SkPath_cubicTo_x3'>x3</a>, <a href='#SkPath_cubicTo_y3'>y3</a>)
+to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
### Parameters
<table> <tr> <td><a name='SkPath_cubicTo_x1'><code><strong>x1</strong></code></a></td>
- <td>first control <a href='SkPoint_Reference#Point'>Point</a> of <a href='#Cubic'>Cubic</a> in x</td>
+ <td>first control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic</a> on x-axis</td>
</tr>
<tr> <td><a name='SkPath_cubicTo_y1'><code><strong>y1</strong></code></a></td>
- <td>first control <a href='SkPoint_Reference#Point'>Point</a> of <a href='#Cubic'>Cubic</a> in y</td>
+ <td>first control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic</a> on y-axis</td>
</tr>
<tr> <td><a name='SkPath_cubicTo_x2'><code><strong>x2</strong></code></a></td>
- <td>second control <a href='SkPoint_Reference#Point'>Point</a> of <a href='#Cubic'>Cubic</a> in x</td>
+ <td>second control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic</a> on x-axis</td>
</tr>
<tr> <td><a name='SkPath_cubicTo_y2'><code><strong>y2</strong></code></a></td>
- <td>second control <a href='SkPoint_Reference#Point'>Point</a> of <a href='#Cubic'>Cubic</a> in y</td>
+ <td>second control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic</a> on y-axis</td>
</tr>
<tr> <td><a name='SkPath_cubicTo_x3'><code><strong>x3</strong></code></a></td>
- <td>end <a href='SkPoint_Reference#Point'>Point</a> of <a href='#Cubic'>Cubic</a> in x</td>
+ <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic</a> on x-axis</td>
</tr>
<tr> <td><a name='SkPath_cubicTo_y3'><code><strong>y3</strong></code></a></td>
- <td>end <a href='SkPoint_Reference#Point'>Point</a> of <a href='#Cubic'>Cubic</a> in y</td>
+ <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic</a> on y-axis</td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -2705,30 +2709,30 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_cubicTo'>cubicTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p3)
</pre>
-Adds <a href='#Cubic'>Cubic</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_cubicTo_2_p1'>p1</a>, then towards <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_cubicTo_2_p2'>p2</a>, ending at
-<a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_cubicTo_2_p3'>p3</a>. If <a href='#Path'>Path</a> is empty, or last <a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose Verb</a>, <a href='#Last_Point'>Last Point</a> is set to
-(0, 0) before adding <a href='#Cubic'>Cubic</a>.
+Adds <a href='SkPath_Reference#Cubic'>cubic</a> from <a href='#Last_Point'>last point</a> towards <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_cubicTo_2_p1'>p1</a>, then towards <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_cubicTo_2_p2'>p2</a>, ending at
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_cubicTo_2_p3'>p3</a>. If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to
+(0, 0) before adding <a href='SkPath_Reference#Cubic'>cubic</a>.
-Appends <a href='#SkPath_kMove_Verb'>kMove Verb</a> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point Array</a>, if needed;
-then appends <a href='#SkPath_kCubic_Verb'>kCubic Verb</a> to <a href='#Verb_Array'>Verb Array</a>; and <a href='SkPoint_Reference#Point'>Points</a> <a href='#SkPath_cubicTo_2_p1'>p1</a>, <a href='#SkPath_cubicTo_2_p2'>p2</a>, <a href='#SkPath_cubicTo_2_p3'>p3</a>
-to <a href='#Point_Array'>Point Array</a>.
+Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, if needed;
+then appends <a href='#SkPath_kCubic_Verb'>kCubic_Verb</a> to <a href='#Verb_Array'>verb array</a>; and <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_cubicTo_2_p1'>p1</a>, <a href='#SkPath_cubicTo_2_p2'>p2</a>, <a href='#SkPath_cubicTo_2_p3'>p3</a>
+to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
### Parameters
<table> <tr> <td><a name='SkPath_cubicTo_2_p1'><code><strong>p1</strong></code></a></td>
- <td>first control <a href='SkPoint_Reference#Point'>Point</a> of <a href='#Cubic'>Cubic</a></td>
+ <td>first control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic</a></td>
</tr>
<tr> <td><a name='SkPath_cubicTo_2_p2'><code><strong>p2</strong></code></a></td>
- <td>second control <a href='SkPoint_Reference#Point'>Point</a> of <a href='#Cubic'>Cubic</a></td>
+ <td>second control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic</a></td>
</tr>
<tr> <td><a name='SkPath_cubicTo_2_p3'><code><strong>p3</strong></code></a></td>
- <td>end <a href='SkPoint_Reference#Point'>Point</a> of <a href='#Cubic'>Cubic</a></td>
+ <td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic</a></td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -2746,43 +2750,43 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_rCubicTo'>rCubicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx1, <a href='undocumented#SkScalar'>SkScalar</a> dy1, <a href='undocumented#SkScalar'>SkScalar</a> dx2, <a href='undocumented#SkScalar'>SkScalar</a> dy2, <a href='undocumented#SkScalar'>SkScalar</a> dx3, <a href='undocumented#SkScalar'>SkScalar</a> dy3)
</pre>
-Adds <a href='#Cubic'>Cubic</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rCubicTo_dx1'>dx1</a>, <a href='#SkPath_rCubicTo_dy1'>dy1</a>), then towards
-<a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rCubicTo_dx2'>dx2</a>, <a href='#SkPath_rCubicTo_dy2'>dy2</a>), to <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rCubicTo_dx3'>dx3</a>, <a href='#SkPath_rCubicTo_dy3'>dy3</a>).
-If <a href='#Path'>Path</a> is empty, or last <a href='#SkPath_Verb'>Verb</a>
-is <a href='#SkPath_kClose_Verb'>kClose Verb</a>, <a href='#Last_Point'>Last Point</a> is set to (0, 0) before adding <a href='#Cubic'>Cubic</a>.
+Adds <a href='SkPath_Reference#Cubic'>cubic</a> from <a href='#Last_Point'>last point</a> towards <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rCubicTo_dx1'>dx1</a>, <a href='#SkPath_rCubicTo_dy1'>dy1</a>), then towards
+<a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rCubicTo_dx2'>dx2</a>, <a href='#SkPath_rCubicTo_dy2'>dy2</a>), to <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rCubicTo_dx3'>dx3</a>, <a href='#SkPath_rCubicTo_dy3'>dy3</a>).
+If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>
+is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, 0) before adding <a href='SkPath_Reference#Cubic'>cubic</a>.
-Appends <a href='#SkPath_kMove_Verb'>kMove Verb</a> to <a href='#Verb_Array'>Verb Array</a> and (0, 0) to <a href='#Point_Array'>Point Array</a>,
-if needed; then appends <a href='#SkPath_kCubic_Verb'>kCubic Verb</a> to <a href='#Verb_Array'>Verb Array</a>; and appends <a href='#Cubic'>Cubic</a>
-control and <a href='#Cubic'>Cubic</a> end to <a href='#Point_Array'>Point Array</a>.
-<a href='#Cubic'>Cubic</a> control is <a href='#Last_Point'>Last Point</a> plus <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rCubicTo_dx1'>dx1</a>, <a href='#SkPath_rCubicTo_dy1'>dy1</a>).
-<a href='#Cubic'>Cubic</a> end is <a href='#Last_Point'>Last Point</a> plus <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rCubicTo_dx2'>dx2</a>, <a href='#SkPath_rCubicTo_dy2'>dy2</a>).
-Function name stands for "relative cubic to".
+Appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>,
+if needed; then appends <a href='#SkPath_kCubic_Verb'>kCubic_Verb</a> to <a href='#Verb_Array'>verb array</a>; and appends <a href='SkPath_Reference#Cubic'>cubic</a>
+control and <a href='SkPath_Reference#Cubic'>cubic</a> end to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
+<a href='SkPath_Reference#Cubic'>Cubic</a> control is <a href='#Last_Point'>last point</a> plus <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rCubicTo_dx1'>dx1</a>, <a href='#SkPath_rCubicTo_dy1'>dy1</a>).
+<a href='SkPath_Reference#Cubic'>Cubic</a> end is <a href='#Last_Point'>last point</a> plus <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rCubicTo_dx2'>dx2</a>, <a href='#SkPath_rCubicTo_dy2'>dy2</a>).
+Function name stands for "relative <a href='SkPath_Reference#Cubic'>cubic</a> to".
### Parameters
<table> <tr> <td><a name='SkPath_rCubicTo_dx1'><code><strong>dx1</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>Last Point</a> to first <a href='#Cubic'>Cubic</a> control on x-axis</td>
+ <td>offset from <a href='#Last_Point'>last point</a> to first <a href='SkPath_Reference#Cubic'>cubic</a> control on x-axis</td>
</tr>
<tr> <td><a name='SkPath_rCubicTo_dy1'><code><strong>dy1</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>Last Point</a> to first <a href='#Cubic'>Cubic</a> control on y-axis</td>
+ <td>offset from <a href='#Last_Point'>last point</a> to first <a href='SkPath_Reference#Cubic'>cubic</a> control on y-axis</td>
</tr>
<tr> <td><a name='SkPath_rCubicTo_dx2'><code><strong>dx2</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>Last Point</a> to second <a href='#Cubic'>Cubic</a> control on x-axis</td>
+ <td>offset from <a href='#Last_Point'>last point</a> to second <a href='SkPath_Reference#Cubic'>cubic</a> control on x-axis</td>
</tr>
<tr> <td><a name='SkPath_rCubicTo_dy2'><code><strong>dy2</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>Last Point</a> to second <a href='#Cubic'>Cubic</a> control on y-axis</td>
+ <td>offset from <a href='#Last_Point'>last point</a> to second <a href='SkPath_Reference#Cubic'>cubic</a> control on y-axis</td>
</tr>
<tr> <td><a name='SkPath_rCubicTo_dx3'><code><strong>dx3</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>Last Point</a> to <a href='#Cubic'>Cubic</a> end on x-axis</td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Cubic'>cubic</a> end on x-axis</td>
</tr>
<tr> <td><a name='SkPath_rCubicTo_dy3'><code><strong>dy3</strong></code></a></td>
- <td>offset from <a href='#Last_Point'>Last Point</a> to <a href='#Cubic'>Cubic</a> end on y-axis</td>
+ <td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Cubic'>cubic</a> end on y-axis</td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -2869,38 +2873,38 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='undocumented#SkScalar'>SkScalar</a> startAngle, <a href='undocumented#SkScalar'>SkScalar</a> sweepAngle, bool forceMoveTo)
</pre>
-Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>. <a href='#Arc'>Arc</a> added is part of ellipse
+Appends <a href='undocumented#Arc'>arc</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='undocumented#Arc'>Arc</a> added is part of ellipse
bounded by <a href='#SkPath_arcTo_oval'>oval</a>, from <a href='#SkPath_arcTo_startAngle'>startAngle</a> through <a href='#SkPath_arcTo_sweepAngle'>sweepAngle</a>. Both <a href='#SkPath_arcTo_startAngle'>startAngle</a> and
<a href='#SkPath_arcTo_sweepAngle'>sweepAngle</a> are measured in degrees, where zero degrees is aligned with the
-positive x-axis, and positive sweeps extends <a href='#Arc'>Arc</a> clockwise.
+positive x-axis, and positive sweeps extends <a href='undocumented#Arc'>arc</a> clockwise.
-<a href='#SkPath_arcTo'>arcTo</a> adds <a href='undocumented#Line'>Line</a> connecting <a href='#Path'>Path</a> last <a href='SkPoint_Reference#Point'>Point</a> to initial <a href='#Arc'>Arc</a> <a href='SkPoint_Reference#Point'>Point</a> if <a href='#SkPath_arcTo_forceMoveTo'>forceMoveTo</a>
-is false and <a href='#Path'>Path</a> is not empty. Otherwise, added <a href='SkPath_Overview#Contour'>Contour</a> begins with first point
-of <a href='#Arc'>Arc</a>. Angles greater than -360 and less than 360 are treated modulo 360.
+<a href='#SkPath_arcTo'>arcTo</a>() adds <a href='undocumented#Line'>line</a> connecting <a href='SkPath_Reference#SkPath'>SkPath</a> last <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to initial <a href='undocumented#Arc'>arc</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> if <a href='#SkPath_arcTo_forceMoveTo'>forceMoveTo</a>
+is false and <a href='SkPath_Reference#SkPath'>SkPath</a> is not empty. Otherwise, added <a href='SkPath_Overview#Contour'>contour</a> begins with first <a href='SkPoint_Reference#Point'>point</a>
+of <a href='undocumented#Arc'>arc</a>. Angles greater than -360 and less than 360 are treated modulo 360.
### Parameters
<table> <tr> <td><a name='SkPath_arcTo_oval'><code><strong>oval</strong></code></a></td>
- <td>bounds of ellipse containing <a href='#Arc'>Arc</a></td>
+ <td>bounds of ellipse containing <a href='undocumented#Arc'>arc</a></td>
</tr>
<tr> <td><a name='SkPath_arcTo_startAngle'><code><strong>startAngle</strong></code></a></td>
- <td>starting angle of <a href='#Arc'>Arc</a> in degrees</td>
+ <td>starting angle of <a href='undocumented#Arc'>arc</a> in degrees</td>
</tr>
<tr> <td><a name='SkPath_arcTo_sweepAngle'><code><strong>sweepAngle</strong></code></a></td>
<td>sweep, in degrees. Positive is clockwise; treated modulo 360</td>
</tr>
<tr> <td><a name='SkPath_arcTo_forceMoveTo'><code><strong>forceMoveTo</strong></code></a></td>
- <td>true to start a new contour with <a href='#Arc'>Arc</a></td>
+ <td>true to start a new <a href='SkPath_Overview#Contour'>contour</a> with <a href='undocumented#Arc'>arc</a></td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
-<div><fiddle-embed name="5f02890edaa10cb5e1a4243a82b6a382"><div><a href='#SkPath_arcTo'>arcTo</a> continues a previous contour when <a href='#SkPath_arcTo_forceMoveTo'>forceMoveTo</a> is false and when <a href='#Path'>Path</a>
+<div><fiddle-embed name="5f02890edaa10cb5e1a4243a82b6a382"><div><a href='#SkPath_arcTo'>arcTo</a> continues a previous contour when forceMoveTo is false and when <a href='#Path'>Path</a>
is not empty.
</div></fiddle-embed></div>
@@ -2916,27 +2920,19 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> radius)
</pre>
-Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>, after appending <a href='undocumented#Line'>Line</a> if needed. <a href='#Arc'>Arc</a> is implemented by <a href='#Conic'>Conic</a>
-weighted to describe part of <a href='undocumented#Circle'>Circle</a>. <a href='#Arc'>Arc</a> is contained by tangent from
-last <a href='#Path'>Path</a> point (x0, y0) to (<a href='#SkPath_arcTo_2_x1'>x1</a>, <a href='#SkPath_arcTo_2_y1'>y1</a>), and tangent from (<a href='#SkPath_arcTo_2_x1'>x1</a>, <a href='#SkPath_arcTo_2_y1'>y1</a>) to (<a href='#SkPath_arcTo_2_x2'>x2</a>, <a href='#SkPath_arcTo_2_y2'>y2</a>). <a href='#Arc'>Arc</a>
-is part of <a href='undocumented#Circle'>Circle</a> sized to <a href='#SkPath_arcTo_2_radius'>radius</a>, positioned so it touches both tangent lines.
+Appends <a href='undocumented#Arc'>arc</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, after appending <a href='undocumented#Line'>line</a> if needed. <a href='undocumented#Arc'>Arc</a> is implemented by conic
+weighted to describe part of <a href='undocumented#Circle'>circle</a>. <a href='undocumented#Arc'>Arc</a> is contained by tangent from
+last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#Point'>point</a> to (<a href='#SkPath_arcTo_2_x1'>x1</a>, <a href='#SkPath_arcTo_2_y1'>y1</a>), and tangent from (<a href='#SkPath_arcTo_2_x1'>x1</a>, <a href='#SkPath_arcTo_2_y1'>y1</a>) to (<a href='#SkPath_arcTo_2_x2'>x2</a>, <a href='#SkPath_arcTo_2_y2'>y2</a>). <a href='undocumented#Arc'>Arc</a>
+is part of <a href='undocumented#Circle'>circle</a> sized to <a href='#SkPath_arcTo_2_radius'>radius</a>, positioned so it touches both tangent <a href='undocumented#Line'>lines</a>.
-### Example
+If last <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> does not start <a href='undocumented#Arc'>Arc</a>, <a href='#SkPath_arcTo'>arcTo</a> appends connecting <a href='undocumented#Line'>Line</a> to <a href='SkPath_Reference#Path'>Path</a>.
+The length of <a href='SkPoint_Reference#Vector'>Vector</a> from (<a href='#SkPath_arcTo_2_x1'>x1</a>, <a href='#SkPath_arcTo_2_y1'>y1</a>) to (<a href='#SkPath_arcTo_2_x2'>x2</a>, <a href='#SkPath_arcTo_2_y2'>y2</a>) does not affect <a href='undocumented#Arc'>Arc</a>.
-<div><fiddle-embed name="386000684073fccabc224d7d6dc81cd9"></fiddle-embed></div>
+<a href='undocumented#Arc'>Arc</a> sweep is always less than 180 degrees. If <a href='#SkPath_arcTo_2_radius'>radius</a> is zero, or if
+tangents are nearly parallel, <a href='#SkPath_arcTo'>arcTo</a> appends <a href='undocumented#Line'>Line</a> from last <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> to (<a href='#SkPath_arcTo_2_x1'>x1</a>, <a href='#SkPath_arcTo_2_y1'>y1</a>).
-If last <a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> does not start <a href='#Arc'>Arc</a>, <a href='#SkPath_arcTo'>arcTo</a> appends connecting <a href='undocumented#Line'>Line</a> to <a href='#Path'>Path</a>.
-The length of <a href='SkPoint_Reference#Vector'>Vector</a> from (<a href='#SkPath_arcTo_2_x1'>x1</a>, <a href='#SkPath_arcTo_2_y1'>y1</a>) to (<a href='#SkPath_arcTo_2_x2'>x2</a>, <a href='#SkPath_arcTo_2_y2'>y2</a>) does not affect <a href='#Arc'>Arc</a>.
-
-### Example
-
-<div><fiddle-embed name="78f3c65fa900610bb52518989b547095"></fiddle-embed></div>
-
-<a href='#Arc'>Arc</a> sweep is always less than 180 degrees. If <a href='#SkPath_arcTo_2_radius'>radius</a> is zero, or if
-tangents are nearly parallel, <a href='#SkPath_arcTo'>arcTo</a> appends <a href='undocumented#Line'>Line</a> from last <a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> to (<a href='#SkPath_arcTo_2_x1'>x1</a>, <a href='#SkPath_arcTo_2_y1'>y1</a>).
-
-<a href='#SkPath_arcTo'>arcTo</a> appends at most one <a href='undocumented#Line'>Line</a> and one <a href='#Conic'>Conic</a>.
-<a href='#SkPath_arcTo'>arcTo</a> implements the functionality of <a href='undocumented#Arct'>PostScript Arct</a> and <a href='undocumented#ArcTo'>HTML Canvas ArcTo</a>.
+<a href='#SkPath_arcTo'>arcTo</a> appends at most one <a href='undocumented#Line'>Line</a> and one conic.
+<a href='#SkPath_arcTo'>arcTo</a> implements the functionality of <a href='undocumented#Arct'>PostScript arct</a> and <a href='undocumented#ArcTo'>HTML Canvas arcTo</a>.
### Parameters
@@ -2953,13 +2949,21 @@
<td>y-axis value end of second tangent</td>
</tr>
<tr> <td><a name='SkPath_arcTo_2_radius'><code><strong>radius</strong></code></a></td>
- <td>distance from <a href='#Arc'>Arc</a> to <a href='undocumented#Circle'>Circle</a> center</td>
+ <td>distance from <a href='undocumented#Arc'>arc</a> to <a href='undocumented#Circle'>circle</a> center</td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
+
+### Example
+
+<div><fiddle-embed name="386000684073fccabc224d7d6dc81cd9"></fiddle-embed></div>
+
+### Example
+
+<div><fiddle-embed name="78f3c65fa900610bb52518989b547095"></fiddle-embed></div>
### Example
@@ -2988,41 +2992,41 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> p2, <a href='undocumented#SkScalar'>SkScalar</a> radius)
</pre>
-Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>, after appending <a href='undocumented#Line'>Line</a> if needed. <a href='#Arc'>Arc</a> is implemented by <a href='#Conic'>Conic</a>
-weighted to describe part of <a href='undocumented#Circle'>Circle</a>. <a href='#Arc'>Arc</a> is contained by tangent from
-last <a href='#Path'>Path</a> point to <a href='#SkPath_arcTo_3_p1'>p1</a>, and tangent from <a href='#SkPath_arcTo_3_p1'>p1</a> to <a href='#SkPath_arcTo_3_p2'>p2</a>. <a href='#Arc'>Arc</a>
-is part of <a href='undocumented#Circle'>Circle</a> sized to <a href='#SkPath_arcTo_3_radius'>radius</a>, positioned so it touches both tangent lines.
+Appends <a href='undocumented#Arc'>arc</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, after appending <a href='undocumented#Line'>line</a> if needed. <a href='undocumented#Arc'>Arc</a> is implemented by conic
+weighted to describe part of <a href='undocumented#Circle'>circle</a>. <a href='undocumented#Arc'>Arc</a> is contained by tangent from
+last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#Point'>point</a> to <a href='#SkPath_arcTo_3_p1'>p1</a>, and tangent from <a href='#SkPath_arcTo_3_p1'>p1</a> to <a href='#SkPath_arcTo_3_p2'>p2</a>. <a href='undocumented#Arc'>Arc</a>
+is part of <a href='undocumented#Circle'>circle</a> sized to <a href='#SkPath_arcTo_3_radius'>radius</a>, positioned so it touches both tangent <a href='undocumented#Line'>lines</a>.
-If last <a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> does not start <a href='#Arc'>Arc</a>, <a href='#SkPath_arcTo'>arcTo</a> appends connecting <a href='undocumented#Line'>Line</a> to <a href='#Path'>Path</a>.
-The length of <a href='SkPoint_Reference#Vector'>Vector</a> from <a href='#SkPath_arcTo_3_p1'>p1</a> to <a href='#SkPath_arcTo_3_p2'>p2</a> does not affect <a href='#Arc'>Arc</a>.
+If last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> does not start <a href='undocumented#Arc'>arc</a>, <a href='#SkPath_arcTo'>arcTo</a>() appends connecting <a href='undocumented#Line'>line</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>.
+The length of <a href='SkPoint_Reference#Vector'>vector</a> from <a href='#SkPath_arcTo_3_p1'>p1</a> to <a href='#SkPath_arcTo_3_p2'>p2</a> does not affect <a href='undocumented#Arc'>arc</a>.
-<a href='#Arc'>Arc</a> sweep is always less than 180 degrees. If <a href='#SkPath_arcTo_3_radius'>radius</a> is zero, or if
-tangents are nearly parallel, <a href='#SkPath_arcTo'>arcTo</a> appends <a href='undocumented#Line'>Line</a> from last <a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> to <a href='#SkPath_arcTo_3_p1'>p1</a>.
+<a href='undocumented#Arc'>Arc</a> sweep is always less than 180 degrees. If <a href='#SkPath_arcTo_3_radius'>radius</a> is zero, or if
+tangents are nearly parallel, <a href='#SkPath_arcTo'>arcTo</a>() appends <a href='undocumented#Line'>line</a> from last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to <a href='#SkPath_arcTo_3_p1'>p1</a>.
-<a href='#SkPath_arcTo'>arcTo</a> appends at most one <a href='undocumented#Line'>Line</a> and one <a href='#Conic'>Conic</a>.
-<a href='#SkPath_arcTo'>arcTo</a> implements the functionality of <a href='undocumented#Arct'>PostScript Arct</a> and <a href='undocumented#ArcTo'>HTML Canvas ArcTo</a>.
+<a href='#SkPath_arcTo'>arcTo</a>() appends at most one <a href='undocumented#Line'>line</a> and one conic.
+<a href='#SkPath_arcTo'>arcTo</a>() implements the functionality of <a href='undocumented#Arct'>PostScript arct</a> and <a href='undocumented#ArcTo'>HTML Canvas arcTo</a>.
### Parameters
<table> <tr> <td><a name='SkPath_arcTo_3_p1'><code><strong>p1</strong></code></a></td>
- <td><a href='SkPoint_Reference#Point'>Point</a> common to pair of tangents</td>
+ <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> common to pair of tangents</td>
</tr>
<tr> <td><a name='SkPath_arcTo_3_p2'><code><strong>p2</strong></code></a></td>
<td>end of second tangent</td>
</tr>
<tr> <td><a name='SkPath_arcTo_3_radius'><code><strong>radius</strong></code></a></td>
- <td>distance from <a href='#Arc'>Arc</a> to <a href='undocumented#Circle'>Circle</a> center</td>
+ <td>distance from <a href='undocumented#Arc'>arc</a> to <a href='undocumented#Circle'>circle</a> center</td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
<div><fiddle-embed name="0c056264a361579c18e5d02d3172d4d4"><div>Because tangent lines are parallel, <a href='#SkPath_arcTo'>arcTo</a> appends line from last <a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> to
-<a href='#SkPath_arcTo_3_p1'>p1</a>, but does not append a circular <a href='#Conic'>Conic</a>.
+p1, but does not append a circular <a href='#Conic'>Conic</a>.
</div>
#### Example Output
@@ -3092,49 +3096,49 @@
<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
-Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>. <a href='#Arc'>Arc</a> is implemented by one or more <a href='#Conic'>Conics</a> weighted to
-describe part of <a href='undocumented#Oval'>Oval</a> with radii (<a href='#SkPath_arcTo_4_rx'>rx</a>, <a href='#SkPath_arcTo_4_ry'>ry</a>) rotated by <a href='#SkPath_arcTo_4_xAxisRotate'>xAxisRotate</a> degrees. <a href='#Arc'>Arc</a>
-curves from last <a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> to (<a href='#SkPath_arcTo_4_x'>x</a>, <a href='#SkPath_arcTo_4_y'>y</a>), choosing one of four possible routes:
+Appends <a href='undocumented#Arc'>arc</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='undocumented#Arc'>Arc</a> is implemented by one or more <a href='SkPath_Reference#Conic'>conics</a> weighted to
+describe part of <a href='undocumented#Oval'>oval</a> with radii (<a href='#SkPath_arcTo_4_rx'>rx</a>, <a href='#SkPath_arcTo_4_ry'>ry</a>) rotated by <a href='#SkPath_arcTo_4_xAxisRotate'>xAxisRotate</a> degrees. <a href='undocumented#Arc'>Arc</a>
+<a href='undocumented#Curve'>curves</a> from last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to (<a href='#SkPath_arcTo_4_x'>x</a>, <a href='#SkPath_arcTo_4_y'>y</a>), choosing one of four possible routes:
clockwise or counterclockwise, and smaller or larger.
-<a href='#Arc'>Arc</a> <a href='#SkPath_arcTo_4_sweep'>sweep</a> is always less than 360 degrees. <a href='#SkPath_arcTo'>arcTo</a> appends <a href='undocumented#Line'>Line</a> to (<a href='#SkPath_arcTo_4_x'>x</a>, <a href='#SkPath_arcTo_4_y'>y</a>) if
-either radii are zero, or if last <a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> equals (<a href='#SkPath_arcTo_4_x'>x</a>, <a href='#SkPath_arcTo_4_y'>y</a>). <a href='#SkPath_arcTo'>arcTo</a> scales radii
-(<a href='#SkPath_arcTo_4_rx'>rx</a>, <a href='#SkPath_arcTo_4_ry'>ry</a>) to fit last <a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> and (<a href='#SkPath_arcTo_4_x'>x</a>, <a href='#SkPath_arcTo_4_y'>y</a>) if both are greater than zero but
+<a href='undocumented#Arc'>Arc</a> <a href='#SkPath_arcTo_4_sweep'>sweep</a> is always less than 360 degrees. <a href='#SkPath_arcTo'>arcTo</a>() appends <a href='undocumented#Line'>line</a> to (<a href='#SkPath_arcTo_4_x'>x</a>, <a href='#SkPath_arcTo_4_y'>y</a>) if
+either radii are zero, or if last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> equals (<a href='#SkPath_arcTo_4_x'>x</a>, <a href='#SkPath_arcTo_4_y'>y</a>). <a href='#SkPath_arcTo'>arcTo</a>() scales radii
+(<a href='#SkPath_arcTo_4_rx'>rx</a>, <a href='#SkPath_arcTo_4_ry'>ry</a>) to fit last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> and (<a href='#SkPath_arcTo_4_x'>x</a>, <a href='#SkPath_arcTo_4_y'>y</a>) if both are greater than zero but
too small.
-<a href='#SkPath_arcTo'>arcTo</a> appends up to four <a href='#Conic'>Conic</a> curves.
-<a href='#SkPath_arcTo'>arcTo</a> implements the functionality of <a href='undocumented#Arc'>SVG Arc</a>, although <a href='undocumented#SVG'>SVG</a> "<a href='#SkPath_arcTo_4_sweep'>sweep</a>-flag" value
-is opposite the integer value of <a href='#SkPath_arcTo_4_sweep'>sweep</a>; <a href='undocumented#SVG'>SVG</a> "<a href='#SkPath_arcTo_4_sweep'>sweep</a>-flag" uses 1 for clockwise,
-while <a href='#SkPath_kCW_Direction'>kCW Direction</a> cast to int is zero.
+<a href='#SkPath_arcTo'>arcTo</a>() appends up to four conic <a href='undocumented#Curve'>curves</a>.
+<a href='#SkPath_arcTo'>arcTo</a>() implements the functionality of <a href='undocumented#SVG_Arc'>SVG arc</a>, although <a href='undocumented#Sweep_Flag'>SVG sweep-flag</a> value
+is opposite the integer value of <a href='#SkPath_arcTo_4_sweep'>sweep</a>; <a href='undocumented#Sweep_Flag'>SVG sweep-flag</a> uses 1 for clockwise,
+while <a href='#SkPath_kCW_Direction'>kCW_Direction</a> cast to int is zero.
### Parameters
<table> <tr> <td><a name='SkPath_arcTo_4_rx'><code><strong>rx</strong></code></a></td>
- <td>radius in <a href='#SkPath_arcTo_4_x'>x</a> before <a href='#SkPath_arcTo_4_x'>x</a>-axis rotation</td>
+ <td>radius on x-axis before x-axis rotation</td>
</tr>
<tr> <td><a name='SkPath_arcTo_4_ry'><code><strong>ry</strong></code></a></td>
- <td>radius in <a href='#SkPath_arcTo_4_y'>y</a> before <a href='#SkPath_arcTo_4_x'>x</a>-axis rotation</td>
+ <td>radius on y-axis before x-axis rotation</td>
</tr>
<tr> <td><a name='SkPath_arcTo_4_xAxisRotate'><code><strong>xAxisRotate</strong></code></a></td>
- <td><a href='#SkPath_arcTo_4_x'>x</a>-axis rotation in degrees; positive values are clockwise</td>
+ <td>x-axis rotation in degrees; positive values are clockwise</td>
</tr>
<tr> <td><a name='SkPath_arcTo_4_largeArc'><code><strong>largeArc</strong></code></a></td>
- <td>chooses smaller or larger <a href='#Arc'>Arc</a></td>
+ <td>chooses smaller or larger <a href='undocumented#Arc'>arc</a></td>
</tr>
<tr> <td><a name='SkPath_arcTo_4_sweep'><code><strong>sweep</strong></code></a></td>
- <td>chooses clockwise or counterclockwise <a href='#Arc'>Arc</a></td>
+ <td>chooses clockwise or counterclockwise <a href='undocumented#Arc'>arc</a></td>
</tr>
<tr> <td><a name='SkPath_arcTo_4_x'><code><strong>x</strong></code></a></td>
- <td>end of <a href='#Arc'>Arc</a></td>
+ <td>end of <a href='undocumented#Arc'>arc</a></td>
</tr>
<tr> <td><a name='SkPath_arcTo_4_y'><code><strong>y</strong></code></a></td>
- <td>end of <a href='#Arc'>Arc</a></td>
+ <td>end of <a href='undocumented#Arc'>arc</a></td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -3153,21 +3157,21 @@
const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> xy)
</pre>
-Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>. <a href='#Arc'>Arc</a> is implemented by one or more <a href='#Conic'>Conic</a> weighted to describe
-part of <a href='undocumented#Oval'>Oval</a> with radii (<a href='#SkPath_arcTo_5_r'>r</a>.fX, <a href='#SkPath_arcTo_5_r'>r</a>.fY) rotated by <a href='#SkPath_arcTo_5_xAxisRotate'>xAxisRotate</a> degrees. <a href='#Arc'>Arc</a> curves
-from last <a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> to (<a href='#SkPath_arcTo_5_xy'>xy</a>.fX, <a href='#SkPath_arcTo_5_xy'>xy</a>.fY), choosing one of four possible routes:
+Appends <a href='undocumented#Arc'>arc</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='undocumented#Arc'>Arc</a> is implemented by one or more conic weighted to describe
+part of <a href='undocumented#Oval'>oval</a> with radii (<a href='#SkPath_arcTo_5_r'>r</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkPath_arcTo_5_r'>r</a>.<a href='#SkPoint_fY'>fY</a>) rotated by <a href='#SkPath_arcTo_5_xAxisRotate'>xAxisRotate</a> degrees. <a href='undocumented#Arc'>Arc</a> <a href='undocumented#Curve'>curves</a>
+from last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to (<a href='#SkPath_arcTo_5_xy'>xy</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkPath_arcTo_5_xy'>xy</a>.<a href='#SkPoint_fY'>fY</a>), choosing one of four possible routes:
clockwise or counterclockwise,
and smaller or larger.
-<a href='#Arc'>Arc</a> <a href='#SkPath_arcTo_5_sweep'>sweep</a> is always less than 360 degrees. <a href='#SkPath_arcTo'>arcTo</a> appends <a href='undocumented#Line'>Line</a> to <a href='#SkPath_arcTo_5_xy'>xy</a> if either
-radii are zero, or if last <a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> equals (x, y). <a href='#SkPath_arcTo'>arcTo</a> scales radii <a href='#SkPath_arcTo_5_r'>r</a> to fit
-last <a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> and <a href='#SkPath_arcTo_5_xy'>xy</a> if both are greater than zero but too small to describe
-an arc.
+<a href='undocumented#Arc'>Arc</a> <a href='#SkPath_arcTo_5_sweep'>sweep</a> is always less than 360 degrees. <a href='#SkPath_arcTo'>arcTo</a>() appends <a href='undocumented#Line'>line</a> to <a href='#SkPath_arcTo_5_xy'>xy</a> if either
+radii are zero, or if last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> equals (<a href='#SkPath_arcTo_5_xy'>xy</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkPath_arcTo_5_xy'>xy</a>.<a href='#SkPoint_fY'>fY</a>). <a href='#SkPath_arcTo'>arcTo</a>() scales radii <a href='#SkPath_arcTo_5_r'>r</a> to
+fit last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> and <a href='#SkPath_arcTo_5_xy'>xy</a> if both are greater than zero but too small to describe
+an <a href='undocumented#Arc'>arc</a>.
-<a href='#SkPath_arcTo'>arcTo</a> appends up to four <a href='#Conic'>Conic</a> curves.
-<a href='#SkPath_arcTo'>arcTo</a> implements the functionality of <a href='undocumented#Arc'>SVG Arc</a>, although <a href='undocumented#SVG'>SVG</a> "<a href='#SkPath_arcTo_5_sweep'>sweep</a>-flag" value is
-opposite the integer value of <a href='#SkPath_arcTo_5_sweep'>sweep</a>; <a href='undocumented#SVG'>SVG</a> "<a href='#SkPath_arcTo_5_sweep'>sweep</a>-flag" uses 1 for clockwise, while
-<a href='#SkPath_kCW_Direction'>kCW Direction</a> cast to int is zero.
+<a href='#SkPath_arcTo'>arcTo</a>() appends up to four conic <a href='undocumented#Curve'>curves</a>.
+<a href='#SkPath_arcTo'>arcTo</a>() implements the functionality of <a href='undocumented#SVG_Arc'>SVG arc</a>, although <a href='undocumented#Sweep_Flag'>SVG sweep-flag</a> value is
+opposite the integer value of <a href='#SkPath_arcTo_5_sweep'>sweep</a>; <a href='undocumented#Sweep_Flag'>SVG sweep-flag</a> uses 1 for clockwise, while
+<a href='#SkPath_kCW_Direction'>kCW_Direction</a> cast to int is zero.
### Parameters
@@ -3178,19 +3182,19 @@
<td>x-axis rotation in degrees; positive values are clockwise</td>
</tr>
<tr> <td><a name='SkPath_arcTo_5_largeArc'><code><strong>largeArc</strong></code></a></td>
- <td>chooses smaller or larger <a href='#Arc'>Arc</a></td>
+ <td>chooses smaller or larger <a href='undocumented#Arc'>arc</a></td>
</tr>
<tr> <td><a name='SkPath_arcTo_5_sweep'><code><strong>sweep</strong></code></a></td>
- <td>chooses clockwise or counterclockwise <a href='#Arc'>Arc</a></td>
+ <td>chooses clockwise or counterclockwise <a href='undocumented#Arc'>arc</a></td>
</tr>
<tr> <td><a name='SkPath_arcTo_5_xy'><code><strong>xy</strong></code></a></td>
- <td>end of <a href='#Arc'>Arc</a></td>
+ <td>end of <a href='undocumented#Arc'>arc</a></td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -3271,17 +3275,17 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_close'>close</a>()
</pre>
-Appends <a href='#SkPath_kClose_Verb'>kClose Verb</a> to <a href='#Path'>Path</a>. A closed <a href='SkPath_Overview#Contour'>Contour</a> connects the first and last <a href='SkPoint_Reference#Point'>Point</a>
-with <a href='undocumented#Line'>Line</a>, forming a continuous loop. Open and closed <a href='SkPath_Overview#Contour'>Contour</a> draw the same
-with <a href='SkPaint_Reference#SkPaint_kFill_Style'>SkPaint::kFill Style</a>. With <a href='SkPaint_Reference#SkPaint_kStroke_Style'>SkPaint::kStroke Style</a>, open <a href='SkPath_Overview#Contour'>Contour</a> draws
-<a href='SkPaint_Reference#Stroke_Cap'>Paint Stroke Cap</a> at <a href='SkPath_Overview#Contour'>Contour</a> start and end; closed <a href='SkPath_Overview#Contour'>Contour</a> draws
-<a href='SkPaint_Reference#Stroke_Join'>Paint Stroke Join</a> at <a href='SkPath_Overview#Contour'>Contour</a> start and end.
+Appends <a href='#SkPath_kClose_Verb'>kClose_Verb</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>. A closed <a href='SkPath_Overview#Contour'>contour</a> connects the first and last <a href='SkPoint_Reference#SkPoint'>SkPoint</a>
+with <a href='undocumented#Line'>line</a>, forming a continuous loop. Open and closed <a href='SkPath_Overview#Contour'>contour</a> draw the same
+with <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kFill_Style'>kFill_Style</a>. With <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStroke_Style'>kStroke_Style</a>, open <a href='SkPath_Overview#Contour'>contour</a> draws
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> at <a href='SkPath_Overview#Contour'>contour</a> start and end; closed <a href='SkPath_Overview#Contour'>contour</a> draws
+<a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> at <a href='SkPath_Overview#Contour'>contour</a> start and end.
-<a href='#SkPath_close'>close</a>() has no effect if <a href='#Path'>Path</a> is empty or last <a href='#Path'>Path</a> <a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose Verb</a>.
+<a href='#SkPath_close'>close()</a> has no effect if <a href='SkPath_Reference#SkPath'>SkPath</a> is empty or last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose_Verb</a>.
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -3459,35 +3463,35 @@
bool <a href='#SkPath_isRect'>isRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* rect, bool* isClosed = nullptr, <a href='#SkPath_Direction'>Direction</a>* direction = nullptr) const
</pre>
-Returns true if <a href='#Path'>Path</a> is equivalent to <a href='SkRect_Reference#Rect'>Rect</a> when filled.
+Returns true if <a href='SkPath_Reference#SkPath'>SkPath</a> is equivalent to <a href='SkRect_Reference#SkRect'>SkRect</a> when filled.
If false: <a href='#SkPath_isRect_rect'>rect</a>, <a href='#SkPath_isRect_isClosed'>isClosed</a>, and <a href='#SkPath_isRect_direction'>direction</a> are unchanged.
If true: <a href='#SkPath_isRect_rect'>rect</a>, <a href='#SkPath_isRect_isClosed'>isClosed</a>, and <a href='#SkPath_isRect_direction'>direction</a> are written to if not nullptr.
-<a href='#SkPath_isRect_rect'>rect</a> may be smaller than the <a href='#Path'>Path</a> bounds. <a href='#Path'>Path</a> bounds may include <a href='#SkPath_kMove_Verb'>kMove Verb</a> points
+<a href='#SkPath_isRect_rect'>rect</a> may be smaller than the <a href='SkPath_Reference#SkPath'>SkPath</a> bounds. <a href='SkPath_Reference#SkPath'>SkPath</a> bounds may include <a href='#SkPath_kMove_Verb'>kMove_Verb</a> <a href='SkPoint_Reference#Point'>points</a>
that do not alter the area drawn by the returned <a href='#SkPath_isRect_rect'>rect</a>.
### Parameters
<table> <tr> <td><a name='SkPath_isRect_rect'><code><strong>rect</strong></code></a></td>
- <td>storage for bounds of <a href='SkRect_Reference#Rect'>Rect</a>; may be nullptr</td>
+ <td>storage for bounds of <a href='SkRect_Reference#SkRect'>SkRect</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkPath_isRect_isClosed'><code><strong>isClosed</strong></code></a></td>
- <td>storage set to true if <a href='#Path'>Path</a> is closed; may be nullptr</td>
+ <td>storage set to true if <a href='SkPath_Reference#SkPath'>SkPath</a> is closed; may be nullptr</td>
</tr>
<tr> <td><a name='SkPath_isRect_direction'><code><strong>direction</strong></code></a></td>
- <td>storage set to <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkPath_isRect_direction'>direction</a>; may be nullptr</td>
+ <td>storage set to <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPath_isRect_direction'>direction</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href='#Path'>Path</a> contains <a href='SkRect_Reference#Rect'>Rect</a>
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> contains <a href='SkRect_Reference#SkRect'>SkRect</a>
### Example
<div><fiddle-embed name="81a2aac1b8f0ff3d4c8d35ccb9149b16"><div>After <a href='#SkPath_addRect'>addRect</a>, <a href='#SkPath_isRect'>isRect</a> returns true. Following <a href='#SkPath_moveTo'>moveTo</a> permits <a href='#SkPath_isRect'>isRect</a> to return true, but
-following <a href='#SkPath_lineTo'>lineTo</a> does not. <a href='#SkPath_addPoly'>addPoly</a> returns true even though <a href='#SkPath_isRect_rect'>rect</a> is not closed, and one
-side of <a href='#SkPath_isRect_rect'>rect</a> is made up of consecutive line segments.
+following <a href='#SkPath_lineTo'>lineTo</a> does not. <a href='#SkPath_addPoly'>addPoly</a> returns true even though rect is not closed, and one
+side of rect is made up of consecutive line segments.
</div>
#### Example Output
@@ -3514,26 +3518,26 @@
bool <a href='#SkPath_isNestedFillRects'>isNestedFillRects</a>(<a href='SkRect_Reference#SkRect'>SkRect</a> rect[2], <a href='#SkPath_Direction'>Direction</a> dirs[2] = nullptr) const
</pre>
-Returns true if <a href='#Path'>Path</a> is equivalent to nested <a href='SkRect_Reference#Rect'>Rect</a> pair when filled.
+Returns true if <a href='SkPath_Reference#SkPath'>SkPath</a> is equivalent to nested <a href='SkRect_Reference#SkRect'>SkRect</a> pair when filled.
If false, <a href='#SkPath_isNestedFillRects_rect'>rect</a> and <a href='#SkPath_isNestedFillRects_dirs'>dirs</a> are unchanged.
If true, <a href='#SkPath_isNestedFillRects_rect'>rect</a> and <a href='#SkPath_isNestedFillRects_dirs'>dirs</a> are written to if not nullptr:
-setting <a href='#SkPath_isNestedFillRects_rect'>rect</a>[0] to outer <a href='SkRect_Reference#Rect'>Rect</a>, and <a href='#SkPath_isNestedFillRects_rect'>rect</a>[1] to inner <a href='SkRect_Reference#Rect'>Rect</a>;
-setting <a href='#SkPath_isNestedFillRects_dirs'>dirs</a>[0] to <a href='#SkPath_Direction'>Direction</a> of outer <a href='SkRect_Reference#Rect'>Rect</a>, and <a href='#SkPath_isNestedFillRects_dirs'>dirs</a>[1] to <a href='#SkPath_Direction'>Direction</a> of inner
-<a href='SkRect_Reference#Rect'>Rect</a>.
+setting <a href='#SkPath_isNestedFillRects_rect'>rect</a>[0] to outer <a href='SkRect_Reference#SkRect'>SkRect</a>, and <a href='#SkPath_isNestedFillRects_rect'>rect</a>[1] to inner <a href='SkRect_Reference#SkRect'>SkRect</a>;
+setting <a href='#SkPath_isNestedFillRects_dirs'>dirs</a>[0] to <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> of outer <a href='SkRect_Reference#SkRect'>SkRect</a>, and <a href='#SkPath_isNestedFillRects_dirs'>dirs</a>[1] to <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> of
+inner <a href='SkRect_Reference#SkRect'>SkRect</a>.
### Parameters
<table> <tr> <td><a name='SkPath_isNestedFillRects_rect'><code><strong>rect</strong></code></a></td>
- <td>storage for <a href='SkRect_Reference#Rect'>Rect</a> pair; may be nullptr</td>
+ <td>storage for <a href='SkRect_Reference#SkRect'>SkRect</a> pair; may be nullptr</td>
</tr>
<tr> <td><a name='SkPath_isNestedFillRects_dirs'><code><strong>dirs</strong></code></a></td>
- <td>storage for <a href='#SkPath_Direction'>Direction</a> pair; may be nullptr</td>
+ <td>storage for <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> pair; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href='#Path'>Path</a> contains nested <a href='SkRect_Reference#Rect'>Rect</a> pair
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> contains nested <a href='SkRect_Reference#SkRect'>SkRect</a> pair
### Example
@@ -3560,24 +3564,24 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
</pre>
-Adds <a href='SkRect_Reference#Rect'>Rect</a> to <a href='#Path'>Path</a>, appending <a href='#SkPath_kMove_Verb'>kMove Verb</a>, three <a href='#SkPath_kLine_Verb'>kLine Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose Verb</a>,
-starting with top-left corner of <a href='SkRect_Reference#Rect'>Rect</a>; followed by top-right, bottom-right,
-and bottom-left if <a href='#SkPath_addRect_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW Direction</a>; or followed by bottom-left,
-bottom-right, and top-right if <a href='#SkPath_addRect_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW Direction</a>.
+Adds <a href='SkRect_Reference#SkRect'>SkRect</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, appending <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, three <a href='#SkPath_kLine_Verb'>kLine_Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose_Verb</a>,
+starting with top-left corner of <a href='SkRect_Reference#SkRect'>SkRect</a>; followed by top-right, bottom-right,
+and bottom-left if <a href='#SkPath_addRect_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>; or followed by bottom-left,
+bottom-right, and top-right if <a href='#SkPath_addRect_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>.
### Parameters
<table> <tr> <td><a name='SkPath_addRect_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> to add as a closed contour</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to add as a closed <a href='SkPath_Overview#Contour'>contour</a></td>
</tr>
<tr> <td><a name='SkPath_addRect_dir'><code><strong>dir</strong></code></a></td>
- <td><a href='#SkPath_Direction'>Direction</a> to wind added contour</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> to wind added <a href='SkPath_Overview#Contour'>contour</a></td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -3645,39 +3649,39 @@
<a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
</pre>
-Adds <a href='SkRect_Reference#Rect'>Rect</a> (<a href='#SkPath_addRect_3_left'>left</a>, <a href='#SkPath_addRect_3_top'>top</a>, <a href='#SkPath_addRect_3_right'>right</a>, <a href='#SkPath_addRect_3_bottom'>bottom</a>) to <a href='#Path'>Path</a>,
-appending <a href='#SkPath_kMove_Verb'>kMove Verb</a>, three <a href='#SkPath_kLine_Verb'>kLine Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose Verb</a>,
-starting with <a href='#SkPath_addRect_3_top'>top</a>-<a href='#SkPath_addRect_3_left'>left</a> corner of <a href='SkRect_Reference#Rect'>Rect</a>; followed by <a href='#SkPath_addRect_3_top'>top</a>-<a href='#SkPath_addRect_3_right'>right</a>, <a href='#SkPath_addRect_3_bottom'>bottom</a>-<a href='#SkPath_addRect_3_right'>right</a>,
-and <a href='#SkPath_addRect_3_bottom'>bottom</a>-<a href='#SkPath_addRect_3_left'>left</a> if <a href='#SkPath_addRect_3_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW Direction</a>; or followed by <a href='#SkPath_addRect_3_bottom'>bottom</a>-<a href='#SkPath_addRect_3_left'>left</a>,
-<a href='#SkPath_addRect_3_bottom'>bottom</a>-<a href='#SkPath_addRect_3_right'>right</a>, and <a href='#SkPath_addRect_3_top'>top</a>-<a href='#SkPath_addRect_3_right'>right</a> if <a href='#SkPath_addRect_3_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW Direction</a>.
+Adds <a href='SkRect_Reference#SkRect'>SkRect</a> (<a href='#SkPath_addRect_3_left'>left</a>, <a href='#SkPath_addRect_3_top'>top</a>, <a href='#SkPath_addRect_3_right'>right</a>, <a href='#SkPath_addRect_3_bottom'>bottom</a>) to <a href='SkPath_Reference#SkPath'>SkPath</a>,
+appending <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, three <a href='#SkPath_kLine_Verb'>kLine_Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose_Verb</a>,
+starting with top-left corner of <a href='SkRect_Reference#SkRect'>SkRect</a>; followed by top-right, bottom-right,
+and bottom-left if <a href='#SkPath_addRect_3_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>; or followed by bottom-left,
+bottom-right, and top-right if <a href='#SkPath_addRect_3_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>.
### Parameters
<table> <tr> <td><a name='SkPath_addRect_3_left'><code><strong>left</strong></code></a></td>
- <td>smaller x-axis value of <a href='SkRect_Reference#Rect'>Rect</a></td>
+ <td>smaller x-axis value of <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
<tr> <td><a name='SkPath_addRect_3_top'><code><strong>top</strong></code></a></td>
- <td>smaller y-axis value of <a href='SkRect_Reference#Rect'>Rect</a></td>
+ <td>smaller y-axis value of <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
<tr> <td><a name='SkPath_addRect_3_right'><code><strong>right</strong></code></a></td>
- <td>larger x-axis value of <a href='SkRect_Reference#Rect'>Rect</a></td>
+ <td>larger x-axis value of <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
<tr> <td><a name='SkPath_addRect_3_bottom'><code><strong>bottom</strong></code></a></td>
- <td>larger y-axis value of <a href='SkRect_Reference#Rect'>Rect</a></td>
+ <td>larger y-axis value of <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
<tr> <td><a name='SkPath_addRect_3_dir'><code><strong>dir</strong></code></a></td>
- <td><a href='#SkPath_Direction'>Direction</a> to wind added contour</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> to wind added <a href='SkPath_Overview#Contour'>contour</a></td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
-<div><fiddle-embed name="3837827310e8b88b8c2e128ef9fbbd65"><div>The <a href='#SkPath_addRect_3_left'>left</a> <a href='SkRect_Reference#Rect'>Rect</a> dashes start at the <a href='#SkPath_addRect_3_top'>top</a>-<a href='#SkPath_addRect_3_left'>left</a> corner, and continue to the <a href='#SkPath_addRect_3_right'>right</a>.
-The <a href='#SkPath_addRect_3_right'>right</a> <a href='SkRect_Reference#Rect'>Rect</a> dashes start at the <a href='#SkPath_addRect_3_top'>top</a>-<a href='#SkPath_addRect_3_left'>left</a> corner, and continue down.
+<div><fiddle-embed name="3837827310e8b88b8c2e128ef9fbbd65"><div>The left <a href='SkRect_Reference#Rect'>Rect</a> dashes start at the top-left corner, and continue to the right.
+The right <a href='SkRect_Reference#Rect'>Rect</a> dashes start at the top-left corner, and continue down.
</div></fiddle-embed></div>
### See Also
@@ -3692,10 +3696,10 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addOval'>addOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
</pre>
-Adds <a href='undocumented#Oval'>Oval</a> to path, appending <a href='#SkPath_kMove_Verb'>kMove Verb</a>, four <a href='#SkPath_kConic_Verb'>kConic Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose Verb</a>.
-<a href='undocumented#Oval'>Oval</a> is upright ellipse bounded by <a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkPath_addOval_oval'>oval</a> with radii equal to half <a href='#SkPath_addOval_oval'>oval</a> width
-and half <a href='#SkPath_addOval_oval'>oval</a> height. <a href='undocumented#Oval'>Oval</a> begins at (<a href='#SkPath_addOval_oval'>oval</a>.fRight, <a href='#SkPath_addOval_oval'>oval</a>.centerY()) and continues
-clockwise if <a href='#SkPath_addOval_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW Direction</a>, counterclockwise if <a href='#SkPath_addOval_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW Direction</a>.
+Adds <a href='#SkPath_addOval_oval'>oval</a> to <a href='SkPath_Reference#Path'>path</a>, appending <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, four <a href='#SkPath_kConic_Verb'>kConic_Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose_Verb</a>.
+<a href='undocumented#Oval'>Oval</a> is upright ellipse bounded by <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPath_addOval_oval'>oval</a> with radii equal to half <a href='#SkPath_addOval_oval'>oval</a> width
+and half <a href='#SkPath_addOval_oval'>oval</a> height. <a href='undocumented#Oval'>Oval</a> begins at (<a href='#SkPath_addOval_oval'>oval</a>.<a href='#SkRect_fRight'>fRight</a>, <a href='#SkPath_addOval_oval'>oval</a>.<a href='#SkRect_centerY'>centerY</a>()) and continues
+clockwise if <a href='#SkPath_addOval_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, counterclockwise if <a href='#SkPath_addOval_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>.
### Parameters
@@ -3703,13 +3707,13 @@
<td>bounds of ellipse added</td>
</tr>
<tr> <td><a name='SkPath_addOval_dir'><code><strong>dir</strong></code></a></td>
- <td><a href='#SkPath_Direction'>Direction</a> to wind ellipse</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> to wind ellipse</td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -3814,22 +3818,22 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addArc'>addArc</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='undocumented#SkScalar'>SkScalar</a> startAngle, <a href='undocumented#SkScalar'>SkScalar</a> sweepAngle)
</pre>
-Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>, as the start of new <a href='SkPath_Overview#Contour'>Contour</a>. <a href='#Arc'>Arc</a> added is part of ellipse
+Appends <a href='undocumented#Arc'>arc</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, as the start of new <a href='SkPath_Overview#Contour'>contour</a>. <a href='undocumented#Arc'>Arc</a> added is part of ellipse
bounded by <a href='#SkPath_addArc_oval'>oval</a>, from <a href='#SkPath_addArc_startAngle'>startAngle</a> through <a href='#SkPath_addArc_sweepAngle'>sweepAngle</a>. Both <a href='#SkPath_addArc_startAngle'>startAngle</a> and
<a href='#SkPath_addArc_sweepAngle'>sweepAngle</a> are measured in degrees, where zero degrees is aligned with the
-positive x-axis, and positive sweeps extends <a href='#Arc'>Arc</a> clockwise.
+positive x-axis, and positive sweeps extends <a href='undocumented#Arc'>arc</a> clockwise.
If <a href='#SkPath_addArc_sweepAngle'>sweepAngle</a> <= -360, or <a href='#SkPath_addArc_sweepAngle'>sweepAngle</a> >= 360; and <a href='#SkPath_addArc_startAngle'>startAngle</a> modulo 90 is nearly
-zero, append <a href='undocumented#Oval'>Oval</a> instead of <a href='#Arc'>Arc</a>. Otherwise, <a href='#SkPath_addArc_sweepAngle'>sweepAngle</a> values are treated
-modulo 360, and <a href='#Arc'>Arc</a> may or may not draw depending on numeric rounding.
+zero, append <a href='#SkPath_addArc_oval'>oval</a> instead of <a href='undocumented#Arc'>arc</a>. Otherwise, <a href='#SkPath_addArc_sweepAngle'>sweepAngle</a> values are treated
+modulo 360, and <a href='undocumented#Arc'>arc</a> may or may not draw depending on numeric rounding.
### Parameters
<table> <tr> <td><a name='SkPath_addArc_oval'><code><strong>oval</strong></code></a></td>
- <td>bounds of ellipse containing <a href='#Arc'>Arc</a></td>
+ <td>bounds of ellipse containing <a href='undocumented#Arc'>arc</a></td>
</tr>
<tr> <td><a name='SkPath_addArc_startAngle'><code><strong>startAngle</strong></code></a></td>
- <td>starting angle of <a href='#Arc'>Arc</a> in degrees</td>
+ <td>starting angle of <a href='undocumented#Arc'>arc</a> in degrees</td>
</tr>
<tr> <td><a name='SkPath_addArc_sweepAngle'><code><strong>sweepAngle</strong></code></a></td>
<td>sweep, in degrees. Positive is clockwise; treated modulo 360</td>
@@ -3838,13 +3842,13 @@
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
<div><fiddle-embed name="9cf5122475624e4cf39f06c698f80b1a"><div>The middle row of the left and right columns draw differently from the entries
-above and below because <a href='#SkPath_addArc_sweepAngle'>sweepAngle</a> is outside of the range of +/-360,
-and <a href='#SkPath_addArc_startAngle'>startAngle</a> modulo 90 is not zero.
+above and below because sweepAngle is outside of the range of +/-360,
+and startAngle modulo 90 is not zero.
</div></fiddle-embed></div>
### See Also
@@ -3859,37 +3863,37 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addRoundRect'>addRoundRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
</pre>
-Appends <a href='SkRRect_Reference#RRect'>Round Rect</a> to <a href='#Path'>Path</a>, creating a new closed <a href='SkPath_Overview#Contour'>Contour</a>. <a href='SkRRect_Reference#RRect'>Round Rect</a> has bounds
+Appends <a href='SkRRect_Reference#SkRRect'>SkRRect</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, creating a new closed <a href='SkPath_Overview#Contour'>contour</a>. <a href='SkRRect_Reference#SkRRect'>SkRRect</a> has bounds
equal to <a href='#SkPath_addRoundRect_rect'>rect</a>; each corner is 90 degrees of an ellipse with radii (<a href='#SkPath_addRoundRect_rx'>rx</a>, <a href='#SkPath_addRoundRect_ry'>ry</a>). If
-<a href='#SkPath_addRoundRect_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW Direction</a>, <a href='SkRRect_Reference#RRect'>Round Rect</a> starts at top-left of the lower-left corner and
-winds clockwise. If <a href='#SkPath_addRoundRect_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW Direction</a>, <a href='SkRRect_Reference#RRect'>Round Rect</a> starts at the bottom-left
+<a href='#SkPath_addRoundRect_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, <a href='SkRRect_Reference#SkRRect'>SkRRect</a> starts at top-left of the lower-left corner and
+winds clockwise. If <a href='#SkPath_addRoundRect_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>, <a href='SkRRect_Reference#SkRRect'>SkRRect</a> starts at the bottom-left
of the upper-left corner and winds counterclockwise.
If either <a href='#SkPath_addRoundRect_rx'>rx</a> or <a href='#SkPath_addRoundRect_ry'>ry</a> is too large, <a href='#SkPath_addRoundRect_rx'>rx</a> and <a href='#SkPath_addRoundRect_ry'>ry</a> are scaled uniformly until the
-corners fit. If <a href='#SkPath_addRoundRect_rx'>rx</a> or <a href='#SkPath_addRoundRect_ry'>ry</a> is less than or equal to zero, <a href='#SkPath_addRoundRect'>addRoundRect</a> appends
-<a href='SkRect_Reference#Rect'>Rect</a> <a href='#SkPath_addRoundRect_rect'>rect</a> to <a href='#Path'>Path</a>.
+corners fit. If <a href='#SkPath_addRoundRect_rx'>rx</a> or <a href='#SkPath_addRoundRect_ry'>ry</a> is less than or equal to zero, <a href='#SkPath_addRoundRect'>addRoundRect</a>() appends
+<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPath_addRoundRect_rect'>rect</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>.
-After appending, <a href='#Path'>Path</a> may be empty, or may contain: <a href='SkRect_Reference#Rect'>Rect</a>, <a href='undocumented#Oval'>Oval</a>, or RoundRect.
+After appending, <a href='SkPath_Reference#SkPath'>SkPath</a> may be empty, or may contain: <a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='undocumented#Oval'>oval</a>, or <a href='SkRRect_Reference#SkRRect'>SkRRect</a>.
### Parameters
<table> <tr> <td><a name='SkPath_addRoundRect_rect'><code><strong>rect</strong></code></a></td>
- <td>bounds of <a href='SkRRect_Reference#RRect'>Round Rect</a></td>
+ <td>bounds of <a href='SkRRect_Reference#SkRRect'>SkRRect</a></td>
</tr>
<tr> <td><a name='SkPath_addRoundRect_rx'><code><strong>rx</strong></code></a></td>
- <td>x-axis radius of rounded corners on the <a href='SkRRect_Reference#RRect'>Round Rect</a></td>
+ <td>x-axis radius of rounded corners on the <a href='SkRRect_Reference#SkRRect'>SkRRect</a></td>
</tr>
<tr> <td><a name='SkPath_addRoundRect_ry'><code><strong>ry</strong></code></a></td>
- <td>y-axis radius of rounded corners on the <a href='SkRRect_Reference#RRect'>Round Rect</a></td>
+ <td>y-axis radius of rounded corners on the <a href='SkRRect_Reference#SkRRect'>SkRRect</a></td>
</tr>
<tr> <td><a name='SkPath_addRoundRect_dir'><code><strong>dir</strong></code></a></td>
- <td><a href='#SkPath_Direction'>Direction</a> to wind <a href='SkRRect_Reference#RRect'>Round Rect</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> to wind <a href='SkRRect_Reference#SkRRect'>SkRRect</a></td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -3970,12 +3974,12 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addRRect'>addRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
</pre>
-Adds <a href='#SkPath_addRRect_rrect'>rrect</a> to <a href='#Path'>Path</a>, creating a new closed <a href='SkPath_Overview#Contour'>Contour</a>. If
-<a href='#SkPath_addRRect_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW Direction</a>, <a href='#SkPath_addRRect_rrect'>rrect</a> starts at top-left of the lower-left corner and
-winds clockwise. If <a href='#SkPath_addRRect_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW Direction</a>, <a href='#SkPath_addRRect_rrect'>rrect</a> starts at the bottom-left
+Adds <a href='#SkPath_addRRect_rrect'>rrect</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, creating a new closed <a href='SkPath_Overview#Contour'>contour</a>. If
+<a href='#SkPath_addRRect_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, <a href='#SkPath_addRRect_rrect'>rrect</a> starts at top-left of the lower-left corner and
+winds clockwise. If <a href='#SkPath_addRRect_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>, <a href='#SkPath_addRRect_rrect'>rrect</a> starts at the bottom-left
of the upper-left corner and winds counterclockwise.
-After appending, <a href='#Path'>Path</a> may be empty, or may contain: <a href='SkRect_Reference#Rect'>Rect</a>, <a href='undocumented#Oval'>Oval</a>, or <a href='SkRRect_Reference#RRect'>Round Rect</a>.
+After appending, <a href='SkPath_Reference#SkPath'>SkPath</a> may be empty, or may contain: <a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='undocumented#Oval'>oval</a>, or <a href='SkRRect_Reference#SkRRect'>SkRRect</a>.
### Parameters
@@ -3983,13 +3987,13 @@
<td>bounds and radii of rounded rectangle</td>
</tr>
<tr> <td><a name='SkPath_addRRect_dir'><code><strong>dir</strong></code></a></td>
- <td><a href='#SkPath_Direction'>Direction</a> to wind <a href='SkRRect_Reference#RRect'>Round Rect</a></td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> to wind <a href='SkRRect_Reference#SkRRect'>SkRRect</a></td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -4057,30 +4061,30 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addPoly'>addPoly</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count, bool close)
</pre>
-Adds <a href='SkPath_Overview#Contour'>Contour</a> created from <a href='undocumented#Line'>Line</a> array, adding (<a href='#SkPath_addPoly_count'>count</a> - 1) <a href='undocumented#Line'>Line</a> segments.
-<a href='SkPath_Overview#Contour'>Contour</a> added starts at <a href='#SkPath_addPoly_pts'>pts</a>[0], then adds a line for every additional <a href='SkPoint_Reference#Point'>Point</a>
-in <a href='#SkPath_addPoly_pts'>pts</a> array. If close is true, appends <a href='#SkPath_kClose_Verb'>kClose Verb</a> to <a href='#Path'>Path</a>, connecting
+Adds <a href='SkPath_Overview#Contour'>contour</a> created from <a href='undocumented#Line'>line</a> array, adding (<a href='#SkPath_addPoly_count'>count</a> - 1) <a href='undocumented#Line'>line</a> segments.
+<a href='SkPath_Overview#Contour'>Contour</a> added starts at <a href='#SkPath_addPoly_pts'>pts</a>[0], then adds a <a href='undocumented#Line'>line</a> for every additional <a href='SkPoint_Reference#SkPoint'>SkPoint</a>
+in <a href='#SkPath_addPoly_pts'>pts</a> array. If <a href='#SkPath_addPoly_close'>close</a> is true, appends <a href='#SkPath_kClose_Verb'>kClose_Verb</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, connecting
<a href='#SkPath_addPoly_pts'>pts</a>[<a href='#SkPath_addPoly_count'>count</a> - 1] and <a href='#SkPath_addPoly_pts'>pts</a>[0].
-If <a href='#SkPath_addPoly_count'>count</a> is zero, append <a href='#SkPath_kMove_Verb'>kMove Verb</a> to path.
+If <a href='#SkPath_addPoly_count'>count</a> is zero, append <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='SkPath_Reference#Path'>path</a>.
Has no effect if <a href='#SkPath_addPoly_count'>count</a> is less than one.
### Parameters
<table> <tr> <td><a name='SkPath_addPoly_pts'><code><strong>pts</strong></code></a></td>
- <td>array of <a href='undocumented#Line'>Line</a> sharing end and start <a href='SkPoint_Reference#Point'>Point</a></td>
+ <td>array of <a href='undocumented#Line'>line</a> sharing end and start <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
</tr>
<tr> <td><a name='SkPath_addPoly_count'><code><strong>count</strong></code></a></td>
- <td>length of <a href='SkPoint_Reference#Point'>Point</a> array</td>
+ <td>length of <a href='SkPath_Reference#Point_Array'>SkPoint array</a></td>
</tr>
<tr> <td><a name='SkPath_addPoly_close'><code><strong>close</strong></code></a></td>
- <td>true to add <a href='undocumented#Line'>Line</a> connecting <a href='SkPath_Overview#Contour'>Contour</a> end and start</td>
+ <td>true to add <a href='undocumented#Line'>line</a> connecting <a href='SkPath_Overview#Contour'>contour</a> end and start</td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -4098,25 +4102,25 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addPoly'>addPoly</a>(const std::initializer_list<<a href='SkPoint_Reference#SkPoint'>SkPoint</a>>& list, bool close)
</pre>
-Adds <a href='SkPath_Overview#Contour'>Contour</a> created from <a href='#SkPath_addPoly_2_list'>list</a>. <a href='SkPath_Overview#Contour'>Contour</a> added starts at <a href='#SkPath_addPoly_2_list'>list</a>[0], then adds a line
-for every additional <a href='SkPoint_Reference#Point'>Point</a> in <a href='#SkPath_addPoly_2_list'>list</a>. If close is true, appends <a href='#SkPath_kClose_Verb'>kClose Verb</a> to <a href='#Path'>Path</a>,
-connecting last and first <a href='SkPoint_Reference#Point'>Point</a> in <a href='#SkPath_addPoly_2_list'>list</a>.
+Adds <a href='SkPath_Overview#Contour'>contour</a> created from <a href='#SkPath_addPoly_2_list'>list</a>. <a href='SkPath_Overview#Contour'>Contour</a> added starts at <a href='#SkPath_addPoly_2_list'>list</a>[0], then adds a <a href='undocumented#Line'>line</a>
+for every additional <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='#SkPath_addPoly_2_list'>list</a>. If <a href='#SkPath_addPoly_2_close'>close</a> is true, appends <a href='#SkPath_kClose_Verb'>kClose_Verb</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>,
+connecting last and first <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='#SkPath_addPoly_2_list'>list</a>.
-If <a href='#SkPath_addPoly_2_list'>list</a> is empty, append <a href='#SkPath_kMove_Verb'>kMove Verb</a> to path.
+If <a href='#SkPath_addPoly_2_list'>list</a> is empty, append <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='SkPath_Reference#Path'>path</a>.
### Parameters
<table> <tr> <td><a name='SkPath_addPoly_2_list'><code><strong>list</strong></code></a></td>
- <td>array of <a href='SkPoint_Reference#Point'>Points</a></td>
+ <td>array of <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
</tr>
<tr> <td><a name='SkPath_addPoly_2_close'><code><strong>close</strong></code></a></td>
- <td>true to add <a href='undocumented#Line'>Line</a> connecting <a href='SkPath_Overview#Contour'>Contour</a> end and start</td>
+ <td>true to add <a href='undocumented#Line'>line</a> connecting <a href='SkPath_Overview#Contour'>contour</a> end and start</td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -4185,31 +4189,31 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='#SkPath'>SkPath</a>& src, <a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a>)
</pre>
-Appends <a href='#SkPath_addPath_src'>src</a> to <a href='#Path'>Path</a>, offset by (<a href='#SkPath_addPath_dx'>dx</a>, <a href='#SkPath_addPath_dy'>dy</a>).
+Appends <a href='#SkPath_addPath_src'>src</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, offset by (<a href='#SkPath_addPath_dx'>dx</a>, <a href='#SkPath_addPath_dy'>dy</a>).
-If <a href='#SkPath_addPath_mode'>mode</a> is <a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a>, <a href='#SkPath_addPath_src'>src</a> <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and <a href='#Conic_Weight'>Conic Weights</a> are
-added unaltered. If <a href='#SkPath_addPath_mode'>mode</a> is <a href='#SkPath_kExtend_AddPathMode'>kExtend AddPathMode</a>, add <a href='undocumented#Line'>Line</a> before appending
-<a href='#Verb'>Verbs</a>, <a href='SkPoint_Reference#Point'>Points</a>, and <a href='#Conic_Weight'>Conic Weights</a>.
+If <a href='#SkPath_addPath_mode'>mode</a> is <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>, <a href='#SkPath_addPath_src'>src</a> <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a> are
+added unaltered. If <a href='#SkPath_addPath_mode'>mode</a> is <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a>, add <a href='undocumented#Line'>line</a> before appending
+<a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
### Parameters
<table> <tr> <td><a name='SkPath_addPath_src'><code><strong>src</strong></code></a></td>
- <td><a href='#Path'>Path</a> <a href='#Verb'>Verbs</a>, <a href='SkPoint_Reference#Point'>Points</a>, and <a href='#Conic_Weight'>Conic Weights</a> to add</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a> to add</td>
</tr>
<tr> <td><a name='SkPath_addPath_dx'><code><strong>dx</strong></code></a></td>
- <td>offset added to <a href='#SkPath_addPath_src'>src</a> <a href='#Point_Array'>Point Array</a> x-axis coordinates</td>
+ <td>offset added to <a href='#SkPath_addPath_src'>src</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> x-axis coordinates</td>
</tr>
<tr> <td><a name='SkPath_addPath_dy'><code><strong>dy</strong></code></a></td>
- <td>offset added to <a href='#SkPath_addPath_src'>src</a> <a href='#Point_Array'>Point Array</a> y-axis coordinates</td>
+ <td>offset added to <a href='#SkPath_addPath_src'>src</a> <a href='SkPath_Reference#Point_Array'>SkPoint array</a> y-axis coordinates</td>
</tr>
<tr> <td><a name='SkPath_addPath_mode'><code><strong>mode</strong></code></a></td>
- <td><a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a> or <a href='#SkPath_kExtend_AddPathMode'>kExtend AddPathMode</a></td>
+ <td><a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a> or <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a></td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -4227,25 +4231,25 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='#SkPath'>SkPath</a>& src, <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a>)
</pre>
-Appends <a href='#SkPath_addPath_2_src'>src</a> to <a href='#Path'>Path</a>.
+Appends <a href='#SkPath_addPath_2_src'>src</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>.
-If <a href='#SkPath_addPath_2_mode'>mode</a> is <a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a>, <a href='#SkPath_addPath_2_src'>src</a> <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and <a href='#Conic_Weight'>Conic Weights</a> are
-added unaltered. If <a href='#SkPath_addPath_2_mode'>mode</a> is <a href='#SkPath_kExtend_AddPathMode'>kExtend AddPathMode</a>, add <a href='undocumented#Line'>Line</a> before appending
-<a href='#Verb'>Verbs</a>, <a href='SkPoint_Reference#Point'>Points</a>, and <a href='#Conic_Weight'>Conic Weights</a>.
+If <a href='#SkPath_addPath_2_mode'>mode</a> is <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>, <a href='#SkPath_addPath_2_src'>src</a> <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a> are
+added unaltered. If <a href='#SkPath_addPath_2_mode'>mode</a> is <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a>, add <a href='undocumented#Line'>line</a> before appending
+<a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
### Parameters
<table> <tr> <td><a name='SkPath_addPath_2_src'><code><strong>src</strong></code></a></td>
- <td><a href='#Path'>Path</a> <a href='#Verb'>Verbs</a>, <a href='SkPoint_Reference#Point'>Points</a>, and <a href='#Conic_Weight'>Conic Weights</a> to add</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a> to add</td>
</tr>
<tr> <td><a name='SkPath_addPath_2_mode'><code><strong>mode</strong></code></a></td>
- <td><a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a> or <a href='#SkPath_kExtend_AddPathMode'>kExtend AddPathMode</a></td>
+ <td><a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a> or <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a></td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -4263,29 +4267,29 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='#SkPath'>SkPath</a>& src, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& matrix, <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a>)
</pre>
-Appends <a href='#SkPath_addPath_3_src'>src</a> to <a href='#Path'>Path</a>, transformed by <a href='#SkPath_addPath_3_matrix'>matrix</a>. Transformed curves may have different
-<a href='#Verb'>Verbs</a>, <a href='SkPoint_Reference#Point'>Points</a>, and <a href='#Conic_Weight'>Conic Weights</a>.
+Appends <a href='#SkPath_addPath_3_src'>src</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, transformed by <a href='#SkPath_addPath_3_matrix'>matrix</a>. Transformed <a href='undocumented#Curve'>curves</a> may have different
+<a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
-If <a href='#SkPath_addPath_3_mode'>mode</a> is <a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a>, <a href='#SkPath_addPath_3_src'>src</a> <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and <a href='#Conic_Weight'>Conic Weights</a> are
-added unaltered. If <a href='#SkPath_addPath_3_mode'>mode</a> is <a href='#SkPath_kExtend_AddPathMode'>kExtend AddPathMode</a>, add <a href='undocumented#Line'>Line</a> before appending
-<a href='#Verb'>Verbs</a>, <a href='SkPoint_Reference#Point'>Points</a>, and <a href='#Conic_Weight'>Conic Weights</a>.
+If <a href='#SkPath_addPath_3_mode'>mode</a> is <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>, <a href='#SkPath_addPath_3_src'>src</a> <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a> are
+added unaltered. If <a href='#SkPath_addPath_3_mode'>mode</a> is <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a>, add <a href='undocumented#Line'>line</a> before appending
+<a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
### Parameters
<table> <tr> <td><a name='SkPath_addPath_3_src'><code><strong>src</strong></code></a></td>
- <td><a href='#Path'>Path</a> <a href='#Verb'>Verbs</a>, <a href='SkPoint_Reference#Point'>Points</a>, and <a href='#Conic_Weight'>Conic Weights</a> to add</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a> to add</td>
</tr>
<tr> <td><a name='SkPath_addPath_3_matrix'><code><strong>matrix</strong></code></a></td>
<td>transform applied to <a href='#SkPath_addPath_3_src'>src</a></td>
</tr>
<tr> <td><a name='SkPath_addPath_3_mode'><code><strong>mode</strong></code></a></td>
- <td><a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a> or <a href='#SkPath_kExtend_AddPathMode'>kExtend AddPathMode</a></td>
+ <td><a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a> or <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a></td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -4303,19 +4307,19 @@
<a href='#SkPath'>SkPath</a>& <a href='#SkPath_reverseAddPath'>reverseAddPath</a>(const <a href='#SkPath'>SkPath</a>& src)
</pre>
-Appends <a href='#SkPath_reverseAddPath_src'>src</a> to <a href='#Path'>Path</a>, from back to front.
-Reversed <a href='#SkPath_reverseAddPath_src'>src</a> always appends a new <a href='SkPath_Overview#Contour'>Contour</a> to <a href='#Path'>Path</a>.
+Appends <a href='#SkPath_reverseAddPath_src'>src</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, from back to front.
+Reversed <a href='#SkPath_reverseAddPath_src'>src</a> always appends a new <a href='SkPath_Overview#Contour'>contour</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>.
### Parameters
<table> <tr> <td><a name='SkPath_reverseAddPath_src'><code><strong>src</strong></code></a></td>
- <td><a href='#Path'>Path</a> <a href='#Verb'>Verbs</a>, <a href='SkPoint_Reference#Point'>Points</a>, and <a href='#Conic_Weight'>Conic Weights</a> to add</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and <a href='SkPath_Reference#Conic_Weight'>conic weights</a> to add</td>
</tr>
</table>
### Return Value
-reference to <a href='#Path'>Path</a>
+reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -4333,19 +4337,19 @@
void <a href='#SkPath_offset'>offset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='#SkPath'>SkPath</a>* dst) const
</pre>
-Offsets <a href='#Point_Array'>Point Array</a> by (<a href='#SkPath_offset_dx'>dx</a>, <a href='#SkPath_offset_dy'>dy</a>). Offset <a href='#Path'>Path</a> replaces <a href='#SkPath_offset_dst'>dst</a>.
-If <a href='#SkPath_offset_dst'>dst</a> is nullptr, <a href='#Path'>Path</a> is replaced by offset data.
+Offsets <a href='SkPath_Reference#Point_Array'>SkPoint array</a> by (<a href='#SkPath_offset()_dx'>dx</a>, <a href='#SkPath_offset()_dy'>dy</a>). Offset <a href='SkPath_Reference#SkPath'>SkPath</a> replaces <a href='#SkPath_offset()_dst'>dst</a>.
+If <a href='#SkPath_offset()_dst'>dst</a> is nullptr, <a href='SkPath_Reference#SkPath'>SkPath</a> is replaced by offset <a href='undocumented#Data'>data</a>.
### Parameters
<table> <tr> <td><a name='SkPath_offset_dx'><code><strong>dx</strong></code></a></td>
- <td>offset added to <a href='#Point_Array'>Point Array</a> x-axis coordinates</td>
+ <td>offset added to <a href='SkPath_Reference#Point_Array'>SkPoint array</a> x-axis coordinates</td>
</tr>
<tr> <td><a name='SkPath_offset_dy'><code><strong>dy</strong></code></a></td>
- <td>offset added to <a href='#Point_Array'>Point Array</a> y-axis coordinates</td>
+ <td>offset added to <a href='SkPath_Reference#Point_Array'>SkPoint array</a> y-axis coordinates</td>
</tr>
<tr> <td><a name='SkPath_offset_dst'><code><strong>dst</strong></code></a></td>
- <td>overwritten, translated copy of <a href='#Path'>Path</a>; may be nullptr</td>
+ <td>overwritten, translated copy of <a href='SkPath_Reference#SkPath'>SkPath</a>; may be nullptr</td>
</tr>
</table>
@@ -4367,15 +4371,15 @@
void <a href='#SkPath_offset'>offset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Offsets <a href='#Point_Array'>Point Array</a> by (<a href='#SkPath_offset_2_dx'>dx</a>, <a href='#SkPath_offset_2_dy'>dy</a>). <a href='#Path'>Path</a> is replaced by offset data.
+Offsets <a href='SkPath_Reference#Point_Array'>SkPoint array</a> by (<a href='#SkPath_offset_2_dx'>dx</a>, <a href='#SkPath_offset_2_dy'>dy</a>). <a href='SkPath_Reference#SkPath'>SkPath</a> is replaced by offset <a href='undocumented#Data'>data</a>.
### Parameters
<table> <tr> <td><a name='SkPath_offset_2_dx'><code><strong>dx</strong></code></a></td>
- <td>offset added to <a href='#Point_Array'>Point Array</a> x-axis coordinates</td>
+ <td>offset added to <a href='SkPath_Reference#Point_Array'>SkPoint array</a> x-axis coordinates</td>
</tr>
<tr> <td><a name='SkPath_offset_2_dy'><code><strong>dy</strong></code></a></td>
- <td>offset added to <a href='#Point_Array'>Point Array</a> y-axis coordinates</td>
+ <td>offset added to <a href='SkPath_Reference#Point_Array'>SkPoint array</a> y-axis coordinates</td>
</tr>
</table>
@@ -4395,18 +4399,18 @@
void <a href='#SkPath_transform'>transform</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& matrix, <a href='#SkPath'>SkPath</a>* dst) const
</pre>
-Transforms <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and weight by <a href='#SkPath_transform_matrix'>matrix</a>.
-transform may change <a href='#Verb'>Verbs</a> and increase their number.
-Transformed <a href='#Path'>Path</a> replaces <a href='#SkPath_transform_dst'>dst</a>; if <a href='#SkPath_transform_dst'>dst</a> is nullptr, original data
+Transforms <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and weight by <a href='#SkPath_transform()_matrix'>matrix</a>.
+transform may change <a href='SkPath_Reference#Verb'>verbs</a> and increase their number.
+Transformed <a href='SkPath_Reference#SkPath'>SkPath</a> replaces <a href='#SkPath_transform()_dst'>dst</a>; if <a href='#SkPath_transform()_dst'>dst</a> is nullptr, original <a href='undocumented#Data'>data</a>
is replaced.
### Parameters
<table> <tr> <td><a name='SkPath_transform_matrix'><code><strong>matrix</strong></code></a></td>
- <td><a href='SkMatrix_Reference#Matrix'>Matrix</a> to apply to <a href='#Path'>Path</a></td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to apply to <a href='SkPath_Reference#SkPath'>SkPath</a></td>
</tr>
<tr> <td><a name='SkPath_transform_dst'><code><strong>dst</strong></code></a></td>
- <td>overwritten, transformed copy of <a href='#Path'>Path</a>; may be nullptr</td>
+ <td>overwritten, transformed copy of <a href='SkPath_Reference#SkPath'>SkPath</a>; may be nullptr</td>
</tr>
</table>
@@ -4426,14 +4430,14 @@
void <a href='#SkPath_transform'>transform</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& matrix)
</pre>
-Transforms <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and weight by <a href='#SkPath_transform_2_matrix'>matrix</a>.
-transform may change <a href='#Verb'>Verbs</a> and increase their number.
-<a href='#Path'>Path</a> is replaced by transformed data.
+Transforms <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and weight by <a href='#SkPath_transform_2_matrix'>matrix</a>.
+transform may change <a href='SkPath_Reference#Verb'>verbs</a> and increase their number.
+<a href='SkPath_Reference#SkPath'>SkPath</a> is replaced by transformed <a href='undocumented#Data'>data</a>.
### Parameters
<table> <tr> <td><a name='SkPath_transform_2_matrix'><code><strong>matrix</strong></code></a></td>
- <td><a href='SkMatrix_Reference#Matrix'>Matrix</a> to apply to <a href='#Path'>Path</a></td>
+ <td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to apply to <a href='SkPath_Reference#SkPath'>SkPath</a></td>
</tr>
</table>
@@ -4459,19 +4463,19 @@
bool <a href='#SkPath_getLastPt'>getLastPt</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a>* lastPt) const
</pre>
-Returns <a href='#Last_Point'>Last Point</a> on <a href='#Path'>Path</a> in <a href='#SkPath_getLastPt_lastPt'>lastPt</a>. Returns false if <a href='#Point_Array'>Point Array</a> is empty,
+Returns <a href='#Last_Point'>last point</a> on <a href='SkPath_Reference#SkPath'>SkPath</a> in <a href='#SkPath_getLastPt_lastPt'>lastPt</a>. Returns false if <a href='SkPath_Reference#Point_Array'>SkPoint array</a> is empty,
storing (0, 0) if <a href='#SkPath_getLastPt_lastPt'>lastPt</a> is not nullptr.
### Parameters
<table> <tr> <td><a name='SkPath_getLastPt_lastPt'><code><strong>lastPt</strong></code></a></td>
- <td>storage for final <a href='SkPoint_Reference#Point'>Point</a> in <a href='#Point_Array'>Point Array</a>; may be nullptr</td>
+ <td>storage for final <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='SkPath_Reference#Point_Array'>SkPoint array</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-true if <a href='#Point_Array'>Point Array</a> contains one or more <a href='SkPoint_Reference#Point'>Points</a>
+true if <a href='SkPath_Reference#Point_Array'>SkPoint array</a> contains one or more <a href='SkPoint_Reference#SkPoint'>SkPoint</a>
### Example
@@ -4497,16 +4501,16 @@
void <a href='#SkPath_setLastPt'>setLastPt</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
-Sets <a href='#Last_Point'>Last Point</a> to (<a href='#SkPath_setLastPt_x'>x</a>, <a href='#SkPath_setLastPt_y'>y</a>). If <a href='#Point_Array'>Point Array</a> is empty, append <a href='#SkPath_kMove_Verb'>kMove Verb</a> to
-<a href='#Verb_Array'>Verb Array</a> and append (<a href='#SkPath_setLastPt_x'>x</a>, <a href='#SkPath_setLastPt_y'>y</a>) to <a href='#Point_Array'>Point Array</a>.
+Sets <a href='#Last_Point'>last point</a> to (<a href='#SkPath_setLastPt_x'>x</a>, <a href='#SkPath_setLastPt_y'>y</a>). If <a href='SkPath_Reference#Point_Array'>SkPoint array</a> is empty, append <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to
+<a href='#Verb_Array'>verb array</a> and append (<a href='#SkPath_setLastPt_x'>x</a>, <a href='#SkPath_setLastPt_y'>y</a>) to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
### Parameters
<table> <tr> <td><a name='SkPath_setLastPt_x'><code><strong>x</strong></code></a></td>
- <td>set <a href='#SkPath_setLastPt_x'>x</a>-axis value of <a href='#Last_Point'>Last Point</a></td>
+ <td>set x-axis value of <a href='#Last_Point'>last point</a></td>
</tr>
<tr> <td><a name='SkPath_setLastPt_y'><code><strong>y</strong></code></a></td>
- <td>set <a href='#SkPath_setLastPt_y'>y</a>-axis value of <a href='#Last_Point'>Last Point</a></td>
+ <td>set y-axis value of <a href='#Last_Point'>last point</a></td>
</tr>
</table>
@@ -4526,13 +4530,13 @@
void <a href='#SkPath_setLastPt'>setLastPt</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p)
</pre>
-Sets the last point on the path. If <a href='#Point_Array'>Point Array</a> is empty, append <a href='#SkPath_kMove_Verb'>kMove Verb</a> to
-<a href='#Verb_Array'>Verb Array</a> and append <a href='#SkPath_setLastPt_2_p'>p</a> to <a href='#Point_Array'>Point Array</a>.
+Sets the <a href='#Last_Point'>last point</a> on the <a href='SkPath_Reference#Path'>path</a>. If <a href='SkPath_Reference#Point_Array'>SkPoint array</a> is empty, append <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to
+<a href='#Verb_Array'>verb array</a> and append <a href='#SkPath_setLastPt_2_p'>p</a> to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
### Parameters
<table> <tr> <td><a name='SkPath_setLastPt_2_p'><code><strong>p</strong></code></a></td>
- <td>set value of <a href='#Last_Point'>Last Point</a></td>
+ <td>set value of <a href='#Last_Point'>last point</a></td>
</tr>
</table>
@@ -4623,8 +4627,8 @@
</pre>
Returns a mask, where each set bit corresponds to a <a href='#SkPath_SegmentMask'>SegmentMask</a> constant
-if <a href='#Path'>Path</a> contains one or more <a href='#Verb'>Verbs</a> of that type.
-Returns zero if <a href='#Path'>Path</a> contains no <a href='undocumented#Line'>Lines</a>, or <a href='undocumented#Curve'>Curves</a>: <a href='#Quad'>Quads</a>, <a href='#Conic'>Conics</a>, or <a href='#Cubic'>Cubics</a>.
+if <a href='SkPath_Reference#SkPath'>SkPath</a> contains one or more <a href='SkPath_Reference#Verb'>verbs</a> of that type.
+Returns zero if <a href='SkPath_Reference#SkPath'>SkPath</a> contains no <a href='undocumented#Line'>lines</a>, or <a href='undocumented#Curve'>curves</a>: <a href='SkPath_Reference#Quad'>quads</a>, <a href='SkPath_Reference#Conic'>conics</a>, or <a href='SkPath_Reference#Cubic'>cubics</a>.
<a href='#SkPath_getSegmentMasks'>getSegmentMasks</a>() returns a cached result; it is very fast.
@@ -4696,18 +4700,18 @@
void <a href='#SkPath_dump'>dump</a>(<a href='SkWStream_Reference#SkWStream'>SkWStream</a>* stream, bool forceClose, bool dumpAsHex) const
</pre>
-Writes text representation of <a href='#Path'>Path</a> to <a href='#SkPath_dump_stream'>stream</a>. If <a href='#SkPath_dump_stream'>stream</a> is nullptr, writes to
-standard output. Set <a href='#SkPath_dump_forceClose'>forceClose</a> to true to get edges used to fill <a href='#Path'>Path</a>.
-Set <a href='#SkPath_dump_dumpAsHex'>dumpAsHex</a> true to generate exact binary representations
-of floating point numbers used in <a href='#Point_Array'>Point Array</a> and <a href='#Conic_Weight'>Conic Weights</a>.
+Writes <a href='undocumented#Text'>text</a> representation of <a href='SkPath_Reference#SkPath'>SkPath</a> to <a href='#SkPath_dump()_stream'>stream</a>. If <a href='#SkPath_dump()_stream'>stream</a> is nullptr, writes to
+standard output. Set <a href='#SkPath_dump()_forceClose'>forceClose</a> to true to get edges used to fill <a href='SkPath_Reference#SkPath'>SkPath</a>.
+Set <a href='#SkPath_dump()_dumpAsHex'>dumpAsHex</a> true to generate exact binary representations
+of floating <a href='SkPoint_Reference#Point'>point</a> numbers used in <a href='SkPath_Reference#Point_Array'>SkPoint array</a> and <a href='SkPath_Reference#Conic_Weight'>conic weights</a>.
### Parameters
<table> <tr> <td><a name='SkPath_dump_stream'><code><strong>stream</strong></code></a></td>
- <td>writable <a href='SkWStream_Reference#WStream'>WStream</a> receiving <a href='#Path'>Path</a> text representation; may be nullptr</td>
+ <td>writable <a href='SkWStream_Reference#SkWStream'>SkWStream</a> receiving <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='undocumented#Text'>text</a> representation; may be nullptr</td>
</tr>
<tr> <td><a name='SkPath_dump_forceClose'><code><strong>forceClose</strong></code></a></td>
- <td>true if missing <a href='#SkPath_kClose_Verb'>kClose Verb</a> is output</td>
+ <td>true if missing <a href='#SkPath_kClose_Verb'>kClose_Verb</a> is output</td>
</tr>
<tr> <td><a name='SkPath_dump_dumpAsHex'><code><strong>dumpAsHex</strong></code></a></td>
<td>true if <a href='undocumented#SkScalar'>SkScalar</a> values are written as hexadecimal</td>
@@ -4753,9 +4757,9 @@
void <a href='#SkPath_dump'>dump</a>() const
</pre>
-Writes text representation of <a href='#Path'>Path</a> to standard output. The representation may be
-directly compiled as C++ code. Floating point values are written
-with limited precision; it may not be possible to reconstruct original <a href='#Path'>Path</a>
+Writes <a href='undocumented#Text'>text</a> representation of <a href='SkPath_Reference#SkPath'>SkPath</a> to standard output. The representation may be
+directly compiled as C++ code. Floating <a href='SkPoint_Reference#Point'>point</a> values are written
+with limited precision; it may not be possible to reconstruct original <a href='SkPath_Reference#SkPath'>SkPath</a>
from output.
### Example
@@ -4819,25 +4823,25 @@
size_t <a href='#SkPath_writeToMemory'>writeToMemory</a>(void* buffer) const
</pre>
-Writes <a href='#Path'>Path</a> to <a href='#SkPath_writeToMemory_buffer'>buffer</a>, returning the number of bytes written.
-Pass nullptr to obtain the storage size.
+Writes <a href='SkPath_Reference#SkPath'>SkPath</a> to <a href='#SkPath_writeToMemory_buffer'>buffer</a>, returning the number of bytes written.
+Pass nullptr to obtain the storage <a href='undocumented#Size'>size</a>.
-Writes <a href='#Fill_Type'>Fill Type</a>, <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, <a href='#Conic_Weight'>Conic Weight</a>, and
-additionally writes computed information like <a href='#SkPath_Convexity'>Convexity</a> and bounds.
+Writes <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a>, <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='#Conic_Weight'>conic weight</a>, and
+additionally writes computed information like <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> and bounds.
-Use only be used in concert with <a href='#SkPath_readFromMemory'>readFromMemory</a>;
-the format used for <a href='#Path'>Path</a> in memory is not guaranteed.
+Use only be used in concert with <a href='#SkPath_readFromMemory'>readFromMemory</a>();
+the format used for <a href='SkPath_Reference#SkPath'>SkPath</a> in memory is not guaranteed.
### Parameters
<table> <tr> <td><a name='SkPath_writeToMemory_buffer'><code><strong>buffer</strong></code></a></td>
- <td>storage for <a href='#Path'>Path</a>; may be nullptr</td>
+ <td>storage for <a href='SkPath_Reference#SkPath'>SkPath</a>; may be nullptr</td>
</tr>
</table>
### Return Value
-size of storage required for <a href='#Path'>Path</a>; always a multiple of 4
+<a href='undocumented#Size'>size</a> of storage required for <a href='SkPath_Reference#SkPath'>SkPath</a>; always a multiple of 4
### Example
@@ -4863,17 +4867,17 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkPath_serialize'>serialize</a>() const
</pre>
-Writes <a href='#Path'>Path</a> to buffer, returning the buffer written to, wrapped in <a href='undocumented#Data'>Data</a>.
+Writes <a href='SkPath_Reference#SkPath'>SkPath</a> to buffer, returning the buffer written to, wrapped in <a href='undocumented#SkData'>SkData</a>.
-<a href='#SkPath_serialize'>serialize</a>() writes <a href='#Fill_Type'>Fill Type</a>, <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, <a href='#Conic_Weight'>Conic Weight</a>, and
-additionally writes computed information like <a href='#SkPath_Convexity'>Convexity</a> and bounds.
+<a href='#SkPath_serialize'>serialize()</a> writes <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a>, <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='#Conic_Weight'>conic weight</a>, and
+additionally writes computed information like <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> and bounds.
-<a href='#SkPath_serialize'>serialize</a>() should only be used in concert with <a href='#SkPath_readFromMemory'>readFromMemory</a>.
-The format used for <a href='#Path'>Path</a> in memory is not guaranteed.
+<a href='#SkPath_serialize'>serialize()</a> should only be used in concert with <a href='#SkPath_readFromMemory'>readFromMemory</a>().
+The format used for <a href='SkPath_Reference#SkPath'>SkPath</a> in memory is not guaranteed.
### Return Value
-<a href='#Path'>Path</a> data wrapped in <a href='undocumented#Data'>Data</a> buffer
+<a href='SkPath_Reference#SkPath'>SkPath</a> <a href='undocumented#Data'>data</a> wrapped in <a href='undocumented#SkData'>SkData</a> buffer
### Example
@@ -4899,22 +4903,22 @@
size_t <a href='#SkPath_readFromMemory'>readFromMemory</a>(const void* buffer, size_t length)
</pre>
-Initializes <a href='#Path'>Path</a> from <a href='#SkPath_readFromMemory_buffer'>buffer</a> of size <a href='#SkPath_readFromMemory_length'>length</a>. Returns zero if the <a href='#SkPath_readFromMemory_buffer'>buffer</a> is
-data is inconsistent, or the <a href='#SkPath_readFromMemory_length'>length</a> is too small.
+Initializes <a href='SkPath_Reference#SkPath'>SkPath</a> from <a href='#SkPath_readFromMemory_buffer'>buffer</a> of <a href='undocumented#Size'>size</a> <a href='#SkPath_readFromMemory_length'>length</a>. Returns zero if the <a href='#SkPath_readFromMemory_buffer'>buffer</a> is
+<a href='undocumented#Data'>data</a> is inconsistent, or the <a href='#SkPath_readFromMemory_length'>length</a> is too small.
-Reads <a href='#Fill_Type'>Fill Type</a>, <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, <a href='#Conic_Weight'>Conic Weight</a>, and
-additionally reads computed information like <a href='#SkPath_Convexity'>Convexity</a> and bounds.
+Reads <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a>, <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a href='#Conic_Weight'>conic weight</a>, and
+additionally reads computed information like <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> and bounds.
-Used only in concert with <a href='#SkPath_writeToMemory'>writeToMemory</a>;
-the format used for <a href='#Path'>Path</a> in memory is not guaranteed.
+Used only in concert with <a href='#SkPath_writeToMemory'>writeToMemory</a>();
+the format used for <a href='SkPath_Reference#SkPath'>SkPath</a> in memory is not guaranteed.
### Parameters
<table> <tr> <td><a name='SkPath_readFromMemory_buffer'><code><strong>buffer</strong></code></a></td>
- <td>storage for <a href='#Path'>Path</a></td>
+ <td>storage for <a href='SkPath_Reference#SkPath'>SkPath</a></td>
</tr>
<tr> <td><a name='SkPath_readFromMemory_length'><code><strong>length</strong></code></a></td>
- <td><a href='#SkPath_readFromMemory_buffer'>buffer</a> size in bytes; must be multiple of 4</td>
+ <td><a href='#SkPath_readFromMemory_buffer'>buffer</a> <a href='undocumented#Size'>size</a> in bytes; must be multiple of 4</td>
</tr>
</table>
@@ -4955,14 +4959,14 @@
uint32_t <a href='#SkPath_getGenerationID'>getGenerationID</a>() const
</pre>
+(See Skia bug 1762.)
Returns a non-zero, globally unique value. A different value is returned
-if <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, or <a href='#Conic_Weight'>Conic Weight</a> changes.
+if <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, or <a href='#Conic_Weight'>conic weight</a> changes.
-Setting <a href='#Fill_Type'>Fill Type</a> does not change <a href='#Generation_ID'>Generation ID</a>.
+Setting <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> does not change generation identifier.
-Each time the path is modified, a different <a href='#Generation_ID'>Generation ID</a> will be returned.
-
-<a href='#Fill_Type'>Fill Type</a> does affect <a href='#Generation_ID'>Generation ID</a> on Android framework.
+Each time the <a href='SkPath_Reference#Path'>path</a> is modified, a different generation identifier will be returned.
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> does affect generation identifier on Android framework.
### Return Value
@@ -4995,13 +4999,13 @@
bool <a href='#SkPath_isValid'>isValid</a>() const
</pre>
-Returns if <a href='#Path'>Path</a> data is consistent. Corrupt <a href='#Path'>Path</a> data is detected if
+Returns if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='undocumented#Data'>data</a> is consistent. Corrupt <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='undocumented#Data'>data</a> is detected if
internal values are out of range or internal storage does not match
array dimensions.
### Return Value
-true if <a href='#Path'>Path</a> data is consistent
+true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='undocumented#Data'>data</a> is consistent
<a name='SkPath_pathRefIsValid'></a>
@@ -5052,12 +5056,13 @@
<a href='#SkPath_Iter_Iter'>Iter</a>()
</pre>
-Initializes <a href='#SkPath_Iter_Iter'>Iter</a> with an empty <a href='#Path'>Path</a>. <a href='#SkPath_Iter_next'>next</a>() on <a href='#SkPath_Iter_Iter'>Iter</a> returns <a href='#SkPath_kDone_Verb'>kDone Verb</a>.
-Call <a href='#SkPath_Iter_setPath'>setPath</a> to initialize <a href='#SkPath_Iter_Iter'>Iter</a> at a later time.
+Initializes <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> with an empty <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='#SkPath_Iter_next'>next()</a> on <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> returns
+<a href='#SkPath_kDone_Verb'>kDone_Verb</a>.
+Call <a href='#SkPath_Iter_setPath'>setPath</a> to initialize <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> at a later time.
### Return Value
-<a href='#SkPath_Iter_Iter'>Iter</a> of empty <a href='#Path'>Path</a>
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> of empty <a href='SkPath_Reference#SkPath'>SkPath</a>
### Example
@@ -5084,23 +5089,23 @@
<a href='#SkPath_Iter_Iter'>Iter</a>(const <a href='#SkPath'>SkPath</a>& path, bool forceClose)
</pre>
-Sets <a href='#SkPath_Iter_Iter'>Iter</a> to return elements of <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and <a href='#Conic_Weight'>Conic Weight</a> in <a href='#SkPath_Iter_const_SkPath_path'>path</a>.
-If <a href='#SkPath_Iter_const_SkPath_forceClose'>forceClose</a> is true, <a href='#SkPath_Iter_Iter'>Iter</a> will add <a href='#SkPath_kLine_Verb'>kLine Verb</a> and <a href='#SkPath_kClose_Verb'>kClose Verb</a> after each
-open <a href='SkPath_Overview#Contour'>Contour</a>. <a href='#SkPath_Iter_const_SkPath_path'>path</a> is not altered.
+Sets <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> to return elements of <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and <a href='#Conic_Weight'>conic weight</a> in
+<a href='#SkPath_Iter_Iter(const SkPath& path, bool forceClose)_path'>path</a>. If <a href='#SkPath_Iter_Iter(const SkPath& path, bool forceClose)_forceClose'>forceClose</a> is true, <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> will add <a href='#SkPath_kLine_Verb'>kLine_Verb</a> and <a href='#SkPath_kClose_Verb'>kClose_Verb</a> after each
+open <a href='SkPath_Overview#Contour'>contour</a>. <a href='#SkPath_Iter_Iter(const SkPath& path, bool forceClose)_path'>path</a> is not altered.
### Parameters
<table> <tr> <td><a name='SkPath_Iter_const_SkPath_path'><code><strong>path</strong></code></a></td>
- <td><a href='#Path'>Path</a> to iterate</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to iterate</td>
</tr>
<tr> <td><a name='SkPath_Iter_const_SkPath_forceClose'><code><strong>forceClose</strong></code></a></td>
- <td>true if open <a href='SkPath_Overview#Contour'>Contours</a> generate <a href='#SkPath_kClose_Verb'>kClose Verb</a></td>
+ <td>true if open <a href='SkPath_Overview#Contour'>contours</a> generate <a href='#SkPath_kClose_Verb'>kClose_Verb</a></td>
</tr>
</table>
### Return Value
-<a href='#SkPath_Iter_Iter'>Iter</a> of <a href='#SkPath_Iter_const_SkPath_path'>path</a>
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> of <a href='#SkPath_Iter_Iter(const SkPath& path, bool forceClose)_path'>path</a>
### Example
@@ -5135,17 +5140,17 @@
void <a href='#SkPath_Iter_setPath'>setPath</a>(const <a href='#SkPath'>SkPath</a>& path, bool forceClose)
</pre>
-Sets <a href='#SkPath_Iter_Iter'>Iter</a> to return elements of <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and <a href='#Conic_Weight'>Conic Weight</a> in <a href='#SkPath_Iter_setPath_path'>path</a>.
-If <a href='#SkPath_Iter_setPath_forceClose'>forceClose</a> is true, <a href='#SkPath_Iter_Iter'>Iter</a> will add <a href='#SkPath_kLine_Verb'>kLine Verb</a> and <a href='#SkPath_kClose_Verb'>kClose Verb</a> after each
-open <a href='SkPath_Overview#Contour'>Contour</a>. <a href='#SkPath_Iter_setPath_path'>path</a> is not altered.
+Sets <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> to return elements of <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and <a href='#Conic_Weight'>conic weight</a> in
+<a href='#SkPath_Iter_setPath_path'>path</a>. If <a href='#SkPath_Iter_setPath_forceClose'>forceClose</a> is true, <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> will add <a href='#SkPath_kLine_Verb'>kLine_Verb</a> and <a href='#SkPath_kClose_Verb'>kClose_Verb</a> after each
+open <a href='SkPath_Overview#Contour'>contour</a>. <a href='#SkPath_Iter_setPath_path'>path</a> is not altered.
### Parameters
<table> <tr> <td><a name='SkPath_Iter_setPath_path'><code><strong>path</strong></code></a></td>
- <td><a href='#Path'>Path</a> to iterate</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to iterate</td>
</tr>
<tr> <td><a name='SkPath_Iter_setPath_forceClose'><code><strong>forceClose</strong></code></a></td>
- <td>true if open <a href='SkPath_Overview#Contour'>Contours</a> generate <a href='#SkPath_kClose_Verb'>kClose Verb</a></td>
+ <td>true if open <a href='SkPath_Overview#Contour'>contours</a> generate <a href='#SkPath_kClose_Verb'>kClose_Verb</a></td>
</tr>
</table>
@@ -5182,40 +5187,40 @@
<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Iter_next'>next</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[4], bool doConsumeDegenerates = true, bool exact = false)
</pre>
-Returns next <a href='#SkPath_Verb'>Verb</a> in <a href='#Verb_Array'>Verb Array</a>, and advances <a href='#SkPath_Iter_Iter'>Iter</a>.
-When <a href='#Verb_Array'>Verb Array</a> is exhausted, returns <a href='#SkPath_kDone_Verb'>kDone Verb</a>.
+Returns next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> in <a href='#Verb_Array'>verb array</a>, and advances <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a>.
+When <a href='#Verb_Array'>verb array</a> is exhausted, returns <a href='#SkPath_kDone_Verb'>kDone_Verb</a>.
-Zero to four <a href='SkPoint_Reference#Point'>Points</a> are stored in <a href='#SkPath_Iter_next_pts'>pts</a>, depending on the returned <a href='#SkPath_Verb'>Verb</a>.
+Zero to four <a href='SkPoint_Reference#SkPoint'>SkPoint</a> are stored in <a href='#SkPath_Iter_next()_pts'>pts</a>, depending on the returned <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>.
-If <a href='#SkPath_Iter_next_doConsumeDegenerates'>doConsumeDegenerates</a> is true, skip consecutive <a href='#SkPath_kMove_Verb'>kMove Verb</a> entries, returning
-only the last in the series; and skip very small <a href='undocumented#Line'>Lines</a>, <a href='#Quad'>Quads</a>, and <a href='#Conic'>Conics</a>; and
-skip <a href='#SkPath_kClose_Verb'>kClose Verb</a> following <a href='#SkPath_kMove_Verb'>kMove Verb</a>.
-if <a href='#SkPath_Iter_next_doConsumeDegenerates'>doConsumeDegenerates</a> is true and <a href='#SkPath_Iter_next_exact'>exact</a> is true, only skip <a href='undocumented#Line'>Lines</a>, <a href='#Quad'>Quads</a>, and
-<a href='#Conic'>Conics</a> with zero lengths.
+If <a href='#SkPath_Iter_next()_doConsumeDegenerates'>doConsumeDegenerates</a> is true, skip consecutive <a href='#SkPath_kMove_Verb'>kMove_Verb</a> entries, returning
+only the last in the series; and skip very small <a href='undocumented#Line'>lines</a>, <a href='SkPath_Reference#Quad'>quads</a>, and <a href='SkPath_Reference#Conic'>conics</a>; and
+skip <a href='#SkPath_kClose_Verb'>kClose_Verb</a> following <a href='#SkPath_kMove_Verb'>kMove_Verb</a>.
+if <a href='#SkPath_Iter_next()_doConsumeDegenerates'>doConsumeDegenerates</a> is true and <a href='#SkPath_Iter_next()_exact'>exact</a> is true, only skip <a href='undocumented#Line'>lines</a>, <a href='SkPath_Reference#Quad'>quads</a>, and
+<a href='SkPath_Reference#Conic'>conics</a> with zero lengths.
### Parameters
<table> <tr> <td><a name='SkPath_Iter_next_pts'><code><strong>pts</strong></code></a></td>
- <td>storage for <a href='SkPoint_Reference#Point'>Point</a> data describing returned <a href='#SkPath_Verb'>Verb</a></td>
+ <td>storage for <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='undocumented#Data'>data</a> describing returned <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a></td>
</tr>
<tr> <td><a name='SkPath_Iter_next_doConsumeDegenerates'><code><strong>doConsumeDegenerates</strong></code></a></td>
- <td>if true, skip degenerate <a href='#Verb'>Verbs</a></td>
+ <td>if true, skip degenerate <a href='SkPath_Reference#Verb'>verbs</a></td>
</tr>
<tr> <td><a name='SkPath_Iter_next_exact'><code><strong>exact</strong></code></a></td>
- <td>skip zero length curves</td>
+ <td>skip zero length <a href='undocumented#Curve'>curves</a></td>
</tr>
</table>
### Return Value
-next <a href='#SkPath_Verb'>Verb</a> from <a href='#Verb_Array'>Verb Array</a>
+next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> from <a href='#Verb_Array'>verb array</a>
### Example
<div><fiddle-embed name="00ae8984856486bdb626d0ed6587855a"><div>skip degenerate skips the first in a <a href='#SkPath_kMove_Verb'>kMove Verb</a> pair, the <a href='#SkPath_kMove_Verb'>kMove Verb</a>
followed by the <a href='#SkPath_kClose_Verb'>kClose Verb</a>, the zero length <a href='undocumented#Line'>Line</a> and the very small <a href='undocumented#Line'>Line</a>.
-skip degenerate if <a href='#SkPath_Iter_next_exact'>exact</a> skips the same as skip degenerate, but shows
+skip degenerate if exact skips the same as skip degenerate, but shows
the very small <a href='undocumented#Line'>Line</a>.
skip none shows all of the <a href='#Verb'>Verbs</a> and <a href='SkPoint_Reference#Point'>Points</a> in <a href='#Path'>Path</a>.
@@ -5261,14 +5266,14 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPath_Iter_conicWeight'>conicWeight</a>() const
</pre>
-Returns <a href='#Conic_Weight'>Conic Weight</a> if <a href='#SkPath_Iter_next'>next</a>() returned <a href='#SkPath_kConic_Verb'>kConic Verb</a>.
+Returns <a href='#Conic_Weight'>conic weight</a> if <a href='#SkPath_Iter_next'>next()</a> returned <a href='#SkPath_kConic_Verb'>kConic_Verb</a>.
-If <a href='#SkPath_Iter_next'>next</a>() has not been called, or <a href='#SkPath_Iter_next'>next</a>() did not return <a href='#SkPath_kConic_Verb'>kConic Verb</a>,
+If <a href='#SkPath_Iter_next'>next()</a> has not been called, or <a href='#SkPath_Iter_next'>next()</a> did not return <a href='#SkPath_kConic_Verb'>kConic_Verb</a>,
result is undefined.
### Return Value
-<a href='#Conic_Weight'>Conic Weight</a> for <a href='#Conic'>Conic</a> <a href='SkPoint_Reference#Point'>Points</a> returned by <a href='#SkPath_Iter_next'>next</a>()
+<a href='#Conic_Weight'>conic weight</a> for conic <a href='SkPoint_Reference#SkPoint'>SkPoint</a> returned by <a href='#SkPath_Iter_next'>next()</a>
### Example
@@ -5297,16 +5302,16 @@
bool <a href='#SkPath_Iter_isCloseLine'>isCloseLine</a>() const
</pre>
-Returns true if last <a href='#SkPath_kLine_Verb'>kLine Verb</a> returned by <a href='#SkPath_Iter_next'>next</a>() was generated
-by <a href='#SkPath_kClose_Verb'>kClose Verb</a>. When true, the end point returned by <a href='#SkPath_Iter_next'>next</a>() is
-also the start point of <a href='SkPath_Overview#Contour'>Contour</a>.
+Returns true if last <a href='#SkPath_kLine_Verb'>kLine_Verb</a> returned by <a href='#SkPath_Iter_next'>next()</a> was generated
+by <a href='#SkPath_kClose_Verb'>kClose_Verb</a>. When true, the end <a href='SkPoint_Reference#Point'>point</a> returned by <a href='#SkPath_Iter_next'>next()</a> is
+also the start <a href='SkPoint_Reference#Point'>point</a> of <a href='SkPath_Overview#Contour'>contour</a>.
-If <a href='#SkPath_Iter_next'>next</a>() has not been called, or <a href='#SkPath_Iter_next'>next</a>() did not return <a href='#SkPath_kLine_Verb'>kLine Verb</a>,
+If <a href='#SkPath_Iter_next'>next()</a> has not been called, or <a href='#SkPath_Iter_next'>next()</a> did not return <a href='#SkPath_kLine_Verb'>kLine_Verb</a>,
result is undefined.
### Return Value
-true if last <a href='#SkPath_kLine_Verb'>kLine Verb</a> was generated by <a href='#SkPath_kClose_Verb'>kClose Verb</a>
+true if last <a href='#SkPath_kLine_Verb'>kLine_Verb</a> was generated by <a href='#SkPath_kClose_Verb'>kClose_Verb</a>
### Example
@@ -5338,13 +5343,13 @@
bool <a href='#SkPath_Iter_isClosedContour'>isClosedContour</a>() const
</pre>
-Returns true if subsequent calls to <a href='#SkPath_Iter_next'>next</a>() return <a href='#SkPath_kClose_Verb'>kClose Verb</a> before returning
-<a href='#SkPath_kMove_Verb'>kMove Verb</a>. if true, <a href='SkPath_Overview#Contour'>Contour</a> <a href='#SkPath_Iter_Iter'>Iter</a> is processing may end with <a href='#SkPath_kClose_Verb'>kClose Verb</a>, or
-<a href='#SkPath_Iter_Iter'>Iter</a> may have been initialized with force close set to true.
+Returns true if subsequent calls to <a href='#SkPath_Iter_next'>next()</a> return <a href='#SkPath_kClose_Verb'>kClose_Verb</a> before returning
+<a href='#SkPath_kMove_Verb'>kMove_Verb</a>. if true, <a href='SkPath_Overview#Contour'>contour</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> is processing may end with <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, or
+<a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> may have been initialized with force close set to true.
### Return Value
-true if <a href='SkPath_Overview#Contour'>Contour</a> is closed
+true if <a href='SkPath_Overview#Contour'>contour</a> is closed
### Example
@@ -5392,12 +5397,12 @@
<a href='#SkPath_RawIter_RawIter'>RawIter</a>()
</pre>
-Initializes <a href='#SkPath_RawIter_RawIter'>RawIter</a> with an empty <a href='#Path'>Path</a>. <a href='#SkPath_RawIter_next'>next</a>() on <a href='#SkPath_RawIter_RawIter'>RawIter</a> returns <a href='#SkPath_kDone_Verb'>kDone Verb</a>.
-Call <a href='#SkPath_RawIter_setPath'>setPath</a> to initialize <a href='#SkPath_Iter'>SkPath::Iter</a> at a later time.
+Initializes <a href='#SkPath_RawIter'>RawIter</a> with an empty <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='#SkPath_RawIter_next'>next()</a> on <a href='#SkPath_RawIter'>RawIter</a> returns <a href='#SkPath_kDone_Verb'>kDone_Verb</a>.
+Call <a href='#SkPath_RawIter_setPath'>setPath</a> to initialize <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> at a later time.
### Return Value
-<a href='#SkPath_RawIter_RawIter'>RawIter</a> of empty <a href='#Path'>Path</a>
+<a href='#SkPath_RawIter'>RawIter</a> of empty <a href='SkPath_Reference#SkPath'>SkPath</a>
<a name='SkPath_RawIter_copy_const_SkPath'></a>
@@ -5407,18 +5412,18 @@
<a href='#SkPath_RawIter_RawIter'>RawIter</a>(const <a href='#SkPath'>SkPath</a>& path)
</pre>
-Sets <a href='#SkPath_RawIter_RawIter'>RawIter</a> to return elements of <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and <a href='#Conic_Weight'>Conic Weight</a> in <a href='#SkPath_RawIter_copy_const_SkPath_path'>path</a>.
+Sets <a href='#SkPath_RawIter'>RawIter</a> to return elements of <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and <a href='#Conic_Weight'>conic weight</a> in <a href='#SkPath_RawIter_RawIter(const SkPath& path)_path'>path</a>.
### Parameters
<table> <tr> <td><a name='SkPath_RawIter_copy_const_SkPath_path'><code><strong>path</strong></code></a></td>
- <td><a href='#Path'>Path</a> to iterate</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to iterate</td>
</tr>
</table>
### Return Value
-<a href='#SkPath_RawIter_RawIter'>RawIter</a> of <a href='#SkPath_RawIter_copy_const_SkPath_path'>path</a>
+<a href='#SkPath_RawIter'>RawIter</a> of <a href='#SkPath_RawIter_RawIter(const SkPath& path)_path'>path</a>
<a name='SkPath_RawIter_setPath'></a>
@@ -5428,12 +5433,13 @@
void <a href='#SkPath_RawIter_setPath'>setPath</a>(const <a href='#SkPath'>SkPath</a>& path)
</pre>
-Sets <a href='#SkPath_Iter'>SkPath::Iter</a> to return elements of <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and <a href='#Conic_Weight'>Conic Weight</a> in <a href='#SkPath_RawIter_setPath_path'>path</a>.
+Sets <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> to return elements of <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, and <a href='#Conic_Weight'>conic weight</a> in
+<a href='#SkPath_RawIter_setPath_path'>path</a>.
### Parameters
<table> <tr> <td><a name='SkPath_RawIter_setPath_path'><code><strong>path</strong></code></a></td>
- <td><a href='#Path'>Path</a> to iterate</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to iterate</td>
</tr>
</table>
@@ -5445,20 +5451,20 @@
<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_RawIter_next'>next</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[4])
</pre>
-Returns next <a href='#SkPath_Verb'>Verb</a> in <a href='#Verb_Array'>Verb Array</a>, and advances <a href='#SkPath_RawIter_RawIter'>RawIter</a>.
-When <a href='#Verb_Array'>Verb Array</a> is exhausted, returns <a href='#SkPath_kDone_Verb'>kDone Verb</a>.
-Zero to four <a href='SkPoint_Reference#Point'>Points</a> are stored in <a href='#SkPath_RawIter_next_pts'>pts</a>, depending on the returned <a href='#SkPath_Verb'>Verb</a>.
+Returns next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> in <a href='#Verb_Array'>verb array</a>, and advances <a href='#SkPath_RawIter'>RawIter</a>.
+When <a href='#Verb_Array'>verb array</a> is exhausted, returns <a href='#SkPath_kDone_Verb'>kDone_Verb</a>.
+Zero to four <a href='SkPoint_Reference#SkPoint'>SkPoint</a> are stored in <a href='#SkPath_RawIter_next()_pts'>pts</a>, depending on the returned <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>.
### Parameters
<table> <tr> <td><a name='SkPath_RawIter_next_pts'><code><strong>pts</strong></code></a></td>
- <td>storage for <a href='SkPoint_Reference#Point'>Point</a> data describing returned <a href='#SkPath_Verb'>Verb</a></td>
+ <td>storage for <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='undocumented#Data'>data</a> describing returned <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a></td>
</tr>
</table>
### Return Value
-next <a href='#SkPath_Verb'>Verb</a> from <a href='#Verb_Array'>Verb Array</a>
+next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> from <a href='#Verb_Array'>verb array</a>
### Example
@@ -5491,11 +5497,11 @@
<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_RawIter_peek'>peek</a>() const
</pre>
-Returns next <a href='#SkPath_Verb'>Verb</a>, but does not advance <a href='#SkPath_RawIter_RawIter'>RawIter</a>.
+Returns next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>, but does not advance <a href='#SkPath_RawIter'>RawIter</a>.
### Return Value
-next <a href='#SkPath_Verb'>Verb</a> from <a href='#Verb_Array'>Verb Array</a>
+next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> from <a href='#Verb_Array'>verb array</a>
### Example
@@ -5515,11 +5521,6 @@
</fiddle-embed></div>
-StdOut is not really volatile, it just produces the wrong result.
-A simple fix changes the output of hairlines and needs to be
-investigated to see if the change is correct or not.
-see change 21340 (abandoned for now)
-
### See Also
<a href='#SkPath_RawIter_next'>next</a>
@@ -5532,14 +5533,14 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPath_RawIter_conicWeight'>conicWeight</a>() const
</pre>
-Returns <a href='#Conic_Weight'>Conic Weight</a> if <a href='#SkPath_RawIter_next'>next</a>() returned <a href='#SkPath_kConic_Verb'>kConic Verb</a>.
+Returns <a href='#Conic_Weight'>conic weight</a> if <a href='#SkPath_RawIter_next'>next()</a> returned <a href='#SkPath_kConic_Verb'>kConic_Verb</a>.
-If <a href='#SkPath_RawIter_next'>next</a>() has not been called, or <a href='#SkPath_RawIter_next'>next</a>() did not return <a href='#SkPath_kConic_Verb'>kConic Verb</a>,
+If <a href='#SkPath_RawIter_next'>next()</a> has not been called, or <a href='#SkPath_RawIter_next'>next()</a> did not return <a href='#SkPath_kConic_Verb'>kConic_Verb</a>,
result is undefined.
### Return Value
-<a href='#Conic_Weight'>Conic Weight</a> for <a href='#Conic'>Conic</a> <a href='SkPoint_Reference#Point'>Points</a> returned by <a href='#SkPath_RawIter_next'>next</a>()
+<a href='#Conic_Weight'>conic weight</a> for conic <a href='SkPoint_Reference#SkPoint'>SkPoint</a> returned by <a href='#SkPath_RawIter_next'>next()</a>
### Example
diff --git a/site/user/api/SkPicture_Reference.md b/site/user/api/SkPicture_Reference.md
index 93771c9..c4e48aa 100644
--- a/site/user/api/SkPicture_Reference.md
+++ b/site/user/api/SkPicture_Reference.md
@@ -104,15 +104,15 @@
virtual bool <a href='#SkPicture_AbortCallback_abort'>abort</a>() = 0
</pre>
-Stops <a href='#Picture'>Picture</a> playback when some condition is met. A subclass of
-<a href='#SkPicture_AbortCallback_AbortCallback'>AbortCallback</a> provides an override for <a href='#SkPicture_AbortCallback_abort'>abort</a>() that can stop <a href='#SkPicture_playback'>SkPicture::playback</a>.
+Stops <a href='SkPicture_Reference#SkPicture'>SkPicture</a> playback when some condition is met. A subclass of
+<a href='#SkPicture_AbortCallback'>AbortCallback</a> provides an override for <a href='#SkPicture_AbortCallback_abort'>abort()</a> that can stop <a href='SkPicture_Reference#SkPicture'>SkPicture</a>::playback.
-The part of <a href='#Picture'>Picture</a> drawn when aborted is undefined. <a href='#Picture'>Picture</a> instantiations are
-free to stop drawing at different points during playback.
+The part of <a href='SkPicture_Reference#SkPicture'>SkPicture</a> drawn when aborted is undefined. <a href='SkPicture_Reference#SkPicture'>SkPicture</a> instantiations are
+free to stop drawing at different <a href='SkPoint_Reference#Point'>points</a> during playback.
-If the abort happens inside one or more calls to <a href='SkCanvas_Reference#SkCanvas_save'>SkCanvas::save</a>(), stack
-of <a href='SkCanvas_Reference#Matrix'>Canvas Matrix</a> and <a href='SkCanvas_Reference#Clip'>Canvas Clip</a> values is restored to its state before
-<a href='#SkPicture_playback'>SkPicture::playback</a> was called.
+If the abort happens inside one or more calls to <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_save'>save()</a>, stack
+of <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> <a href='SkMatrix_Reference#Matrix'>matrix</a> and <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> clip values is restored to its state before
+<a href='SkPicture_Reference#SkPicture'>SkPicture</a>::playback was called.
### Return Value
@@ -136,28 +136,28 @@
static <a href='undocumented#sk_sp'>sk sp</a><<a href='#SkPicture'>SkPicture</a>> <a href='#SkPicture_MakeFromStream'>MakeFromStream</a>(<a href='SkStream_Reference#SkStream'>SkStream</a>* stream, const <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>* procs = nullptr)
</pre>
-Recreates <a href='#Picture'>Picture</a> that was serialized into a <a href='#SkPicture_MakeFromStream_stream'>stream</a>. Returns constructed <a href='#Picture'>Picture</a>
-if successful; otherwise, returns nullptr. Fails if data does not permit
-constructing valid <a href='#Picture'>Picture</a>.
+Recreates <a href='SkPicture_Reference#SkPicture'>SkPicture</a> that was serialized into a <a href='#SkPicture_MakeFromStream_stream'>stream</a>. Returns constructed <a href='SkPicture_Reference#SkPicture'>SkPicture</a>
+if successful; otherwise, returns nullptr. Fails if <a href='undocumented#Data'>data</a> does not permit
+constructing valid <a href='SkPicture_Reference#SkPicture'>SkPicture</a>.
-<a href='#SkPicture_MakeFromStream_procs'>procs</a>.fPictureProc permits supplying a custom function to decode <a href='#Picture'>Picture</a>.
-If <a href='#SkPicture_MakeFromStream_procs'>procs</a>.fPictureProc is nullptr, default decoding is used. <a href='#SkPicture_MakeFromStream_procs'>procs</a>.fPictureCtx
-may be used to provide user context to <a href='#SkPicture_MakeFromStream_procs'>procs</a>.fPictureProc; <a href='#SkPicture_MakeFromStream_procs'>procs</a>.fPictureProc
-is called with a pointer to data, data byte length, and user context.
+<a href='#SkPicture_MakeFromStream_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureProc'>fPictureProc</a> permits supplying a custom function to decode <a href='SkPicture_Reference#SkPicture'>SkPicture</a>.
+If <a href='#SkPicture_MakeFromStream_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureProc'>fPictureProc</a> is nullptr, default decoding is used. <a href='#SkPicture_MakeFromStream_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureCtx'>fPictureCtx</a>
+may be used to provide user context to <a href='#SkPicture_MakeFromStream_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureProc'>fPictureProc</a>; <a href='#SkPicture_MakeFromStream_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureProc'>fPictureProc</a>
+is called with a pointer to <a href='undocumented#Data'>data</a>, <a href='undocumented#Data'>data</a> byte length, and user context.
### Parameters
<table> <tr> <td><a name='SkPicture_MakeFromStream_stream'><code><strong>stream</strong></code></a></td>
- <td>container for serial data</td>
+ <td>container for serial <a href='undocumented#Data'>data</a></td>
</tr>
<tr> <td><a name='SkPicture_MakeFromStream_procs'><code><strong>procs</strong></code></a></td>
- <td>custom serial data decoders; may be nullptr</td>
+ <td>custom serial <a href='undocumented#Data'>data</a> decoders; may be nullptr</td>
</tr>
</table>
### Return Value
-<a href='#Picture'>Picture</a> constructed from <a href='#SkPicture_MakeFromStream_stream'>stream</a> data
+<a href='SkPicture_Reference#SkPicture'>SkPicture</a> constructed from <a href='#SkPicture_MakeFromStream_stream'>stream</a> <a href='undocumented#Data'>data</a>
### Example
@@ -175,13 +175,13 @@
static <a href='undocumented#sk_sp'>sk sp</a><<a href='#SkPicture'>SkPicture</a>> <a href='#SkPicture_MakeFromData'>MakeFromData</a>(const <a href='undocumented#SkData'>SkData</a>* data, const <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>* procs = nullptr)
</pre>
-Recreates <a href='#Picture'>Picture</a> that was serialized into <a href='#SkPicture_MakeFromData_data'>data</a>. Returns constructed <a href='#Picture'>Picture</a>
+Recreates <a href='SkPicture_Reference#SkPicture'>SkPicture</a> that was serialized into <a href='#SkPicture_MakeFromData_data'>data</a>. Returns constructed <a href='SkPicture_Reference#SkPicture'>SkPicture</a>
if successful; otherwise, returns nullptr. Fails if <a href='#SkPicture_MakeFromData_data'>data</a> does not permit
-constructing valid <a href='#Picture'>Picture</a>.
+constructing valid <a href='SkPicture_Reference#SkPicture'>SkPicture</a>.
-<a href='#SkPicture_MakeFromData_procs'>procs</a>.fPictureProc permits supplying a custom function to decode <a href='#Picture'>Picture</a>.
-If <a href='#SkPicture_MakeFromData_procs'>procs</a>.fPictureProc is nullptr, default decoding is used. <a href='#SkPicture_MakeFromData_procs'>procs</a>.fPictureCtx
-may be used to provide user context to <a href='#SkPicture_MakeFromData_procs'>procs</a>.fPictureProc; <a href='#SkPicture_MakeFromData_procs'>procs</a>.fPictureProc
+<a href='#SkPicture_MakeFromData_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureProc'>fPictureProc</a> permits supplying a custom function to decode <a href='SkPicture_Reference#SkPicture'>SkPicture</a>.
+If <a href='#SkPicture_MakeFromData_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureProc'>fPictureProc</a> is nullptr, default decoding is used. <a href='#SkPicture_MakeFromData_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureCtx'>fPictureCtx</a>
+may be used to provide user context to <a href='#SkPicture_MakeFromData_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureProc'>fPictureProc</a>; <a href='#SkPicture_MakeFromData_procs'>procs</a>-><a href='#SkDeserialProcs_fPictureProc'>fPictureProc</a>
is called with a pointer to <a href='#SkPicture_MakeFromData_data'>data</a>, <a href='#SkPicture_MakeFromData_data'>data</a> byte length, and user context.
### Parameters
@@ -196,7 +196,7 @@
### Return Value
-<a href='#Picture'>Picture</a> constructed from <a href='#SkPicture_MakeFromData_data'>data</a>
+<a href='SkPicture_Reference#SkPicture'>SkPicture</a> constructed from <a href='#SkPicture_MakeFromData_data'>data</a>
### Example
@@ -226,20 +226,11 @@
<tr> <td><a name='SkPicture_MakeFromData_2_procs'><code><strong>procs</strong></code></a></td>
<td>custom serial <a href='#SkPicture_MakeFromData_2_data'>data</a> decoders; may be nullptr</td>
</tr>
-Recreates <a href='#Picture'>Picture</a> that was serialized into <a href='#SkPicture_MakeFromData_2_data'>data</a>. Returns constructed <a href='#Picture'>Picture</a>
-if successful; otherwise, returns nullptr. Fails if <a href='#SkPicture_MakeFromData_2_size'>size</a> is smaller than
-required <a href='#SkPicture_MakeFromData_2_data'>data</a> length, or if <a href='#SkPicture_MakeFromData_2_data'>data</a> does not permit constructing valid <a href='#Picture'>Picture</a>.
-
-<a href='#SkPicture_MakeFromData_2_procs'>procs</a>.fPictureProc permits supplying a custom function to decode <a href='#Picture'>Picture</a>.
-If <a href='#SkPicture_MakeFromData_2_procs'>procs</a>.fPictureProc is nullptr, default decoding is used. <a href='#SkPicture_MakeFromData_2_procs'>procs</a>.fPictureCtx
-may be used to provide user context to <a href='#SkPicture_MakeFromData_2_procs'>procs</a>.fPictureProc; <a href='#SkPicture_MakeFromData_2_procs'>procs</a>.fPictureProc
-is called with a pointer to <a href='#SkPicture_MakeFromData_2_data'>data</a>, <a href='#SkPicture_MakeFromData_2_data'>data</a> byte length, and user context.
-
</table>
### Return Value
-<a href='#Picture'>Picture</a> constructed from <a href='#SkPicture_MakeFromData_2_data'>data</a>
+<a href='SkPicture_Reference#SkPicture'>SkPicture</a> constructed from <a href='#SkPicture_MakeFromData_2_data'>data</a>
### Example
@@ -257,11 +248,11 @@
virtual void <a href='#SkPicture_playback'>playback</a>(<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* canvas, <a href='#SkPicture_AbortCallback'>AbortCallback</a>* callback = nullptr) const = 0
</pre>
-Replays the drawing commands on the specified <a href='#SkPicture_playback_canvas'>canvas</a>. In the case that the
-commands are recorded, each command in the <a href='#Picture'>Picture</a> is sent separately to <a href='#SkPicture_playback_canvas'>canvas</a>.
+Replays the drawing commands on the specified <a href='#SkPicture_playback()_canvas'>canvas</a>. In the case that the
+commands are recorded, each command in the <a href='SkPicture_Reference#SkPicture'>SkPicture</a> is sent separately to <a href='#SkPicture_playback()_canvas'>canvas</a>.
-To add a single command to draw <a href='#Picture'>Picture</a> to recording <a href='#SkPicture_playback_canvas'>canvas</a>, call
-<a href='SkCanvas_Reference#SkCanvas_drawPicture'>SkCanvas::drawPicture</a> instead.
+To add a single command to draw <a href='SkPicture_Reference#SkPicture'>SkPicture</a> to recording <a href='#SkPicture_playback()_canvas'>canvas</a>, call
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawPicture'>drawPicture</a> instead.
### Parameters
@@ -289,16 +280,16 @@
virtual <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPicture_cullRect'>cullRect</a>() const = 0
</pre>
-Returns cull <a href='SkRect_Reference#Rect'>Rect</a> for this picture, passed in when <a href='#Picture'>Picture</a> was created.
-Returned <a href='SkRect_Reference#Rect'>Rect</a> does not specify clipping <a href='SkRect_Reference#Rect'>Rect</a> for <a href='#Picture'>Picture</a>; cull is hint
-of <a href='#Picture'>Picture</a> bounds.
+Returns cull <a href='SkRect_Reference#SkRect'>SkRect</a> for this <a href='SkPicture_Reference#Picture'>picture</a>, passed in when <a href='SkPicture_Reference#SkPicture'>SkPicture</a> was created.
+Returned <a href='SkRect_Reference#SkRect'>SkRect</a> does not specify clipping <a href='SkRect_Reference#SkRect'>SkRect</a> for <a href='SkPicture_Reference#SkPicture'>SkPicture</a>; cull is hint
+of <a href='SkPicture_Reference#SkPicture'>SkPicture</a> bounds.
-<a href='#Picture'>Picture</a> is free to discard recorded drawing commands that fall outside
+<a href='SkPicture_Reference#SkPicture'>SkPicture</a> is free to discard recorded drawing commands that fall outside
cull.
### Return Value
-bounds passed when <a href='#Picture'>Picture</a> was created
+bounds passed when <a href='SkPicture_Reference#SkPicture'>SkPicture</a> was created
### Example
@@ -318,11 +309,11 @@
uint32_t <a href='#SkPicture_uniqueID'>uniqueID</a>() const
</pre>
-Returns a non-zero value unique among <a href='#Picture'>Pictures</a> in Skia process.
+Returns a non-zero value unique among <a href='SkPicture_Reference#SkPicture'>SkPicture</a> in Skia process.
### Return Value
-identifier for <a href='#Picture'>Picture</a>
+identifier for <a href='SkPicture_Reference#SkPicture'>SkPicture</a>
### Example
@@ -349,24 +340,24 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkPicture_serialize'>serialize</a>(const <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>* procs = nullptr) const
</pre>
-Returns storage containing <a href='undocumented#Data'>Data</a> describing <a href='#Picture'>Picture</a>, using optional custom
+Returns storage containing <a href='undocumented#SkData'>SkData</a> describing <a href='SkPicture_Reference#SkPicture'>SkPicture</a>, using optional custom
encoders.
-<a href='#SkPicture_serialize_procs'>procs</a>.fPictureProc permits supplying a custom function to encode <a href='#Picture'>Picture</a>.
-If <a href='#SkPicture_serialize_procs'>procs</a>.fPictureProc is nullptr, default encoding is used. <a href='#SkPicture_serialize_procs'>procs</a>.fPictureCtx
-may be used to provide user context to <a href='#SkPicture_serialize_procs'>procs</a>.fPictureProc; <a href='#SkPicture_serialize_procs'>procs</a>.fPictureProc
-is called with a pointer to <a href='#Picture'>Picture</a> and user context.
+<a href='#SkPicture_serialize()_procs'>procs</a>-><a href='#SkSerialProcs_fPictureProc'>fPictureProc</a> permits supplying a custom function to encode <a href='SkPicture_Reference#SkPicture'>SkPicture</a>.
+If <a href='#SkPicture_serialize()_procs'>procs</a>-><a href='#SkSerialProcs_fPictureProc'>fPictureProc</a> is nullptr, default encoding is used. <a href='#SkPicture_serialize()_procs'>procs</a>-><a href='#SkSerialProcs_fPictureCtx'>fPictureCtx</a>
+may be used to provide user context to <a href='#SkPicture_serialize()_procs'>procs</a>-><a href='#SkSerialProcs_fPictureProc'>fPictureProc</a>; <a href='#SkPicture_serialize()_procs'>procs</a>-><a href='#SkSerialProcs_fPictureProc'>fPictureProc</a>
+is called with a pointer to <a href='SkPicture_Reference#SkPicture'>SkPicture</a> and user context.
### Parameters
<table> <tr> <td><a name='SkPicture_serialize_procs'><code><strong>procs</strong></code></a></td>
- <td>custom serial data encoders; may be nullptr</td>
+ <td>custom serial <a href='undocumented#Data'>data</a> encoders; may be nullptr</td>
</tr>
</table>
### Return Value
-storage containing serialized <a href='#Picture'>Picture</a>
+storage containing serialized <a href='SkPicture_Reference#SkPicture'>SkPicture</a>
### Example
@@ -384,20 +375,20 @@
void <a href='#SkPicture_serialize'>serialize</a>(<a href='SkWStream_Reference#SkWStream'>SkWStream</a>* stream, const <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>* procs = nullptr) const
</pre>
-Writes picture to <a href='#SkPicture_serialize_2_stream'>stream</a>, using optional custom encoders.
+Writes <a href='SkPicture_Reference#Picture'>picture</a> to <a href='#SkPicture_serialize_2_stream'>stream</a>, using optional custom encoders.
-<a href='#SkPicture_serialize_2_procs'>procs</a>.fPictureProc permits supplying a custom function to encode <a href='#Picture'>Picture</a>.
-If <a href='#SkPicture_serialize_2_procs'>procs</a>.fPictureProc is nullptr, default encoding is used. <a href='#SkPicture_serialize_2_procs'>procs</a>.fPictureCtx
-may be used to provide user context to <a href='#SkPicture_serialize_2_procs'>procs</a>.fPictureProc; <a href='#SkPicture_serialize_2_procs'>procs</a>.fPictureProc
-is called with a pointer to <a href='#Picture'>Picture</a> and user context.
+<a href='#SkPicture_serialize_2_procs'>procs</a>-><a href='#SkSerialProcs_fPictureProc'>fPictureProc</a> permits supplying a custom function to encode <a href='SkPicture_Reference#SkPicture'>SkPicture</a>.
+If <a href='#SkPicture_serialize_2_procs'>procs</a>-><a href='#SkSerialProcs_fPictureProc'>fPictureProc</a> is nullptr, default encoding is used. <a href='#SkPicture_serialize_2_procs'>procs</a>-><a href='#SkSerialProcs_fPictureCtx'>fPictureCtx</a>
+may be used to provide user context to <a href='#SkPicture_serialize_2_procs'>procs</a>-><a href='#SkSerialProcs_fPictureProc'>fPictureProc</a>; <a href='#SkPicture_serialize_2_procs'>procs</a>-><a href='#SkSerialProcs_fPictureProc'>fPictureProc</a>
+is called with a pointer to <a href='SkPicture_Reference#SkPicture'>SkPicture</a> and user context.
### Parameters
<table> <tr> <td><a name='SkPicture_serialize_2_stream'><code><strong>stream</strong></code></a></td>
- <td>writable serial data <a href='#SkPicture_serialize_2_stream'>stream</a></td>
+ <td>writable serial <a href='undocumented#Data'>data</a> <a href='#SkPicture_serialize_2_stream'>stream</a></td>
</tr>
<tr> <td><a name='SkPicture_serialize_2_procs'><code><strong>procs</strong></code></a></td>
- <td>custom serial data encoders; may be nullptr</td>
+ <td>custom serial <a href='undocumented#Data'>data</a> encoders; may be nullptr</td>
</tr>
</table>
@@ -417,12 +408,12 @@
static <a href='undocumented#sk_sp'>sk sp</a><<a href='#SkPicture'>SkPicture</a>> <a href='#SkPicture_MakePlaceholder'>MakePlaceholder</a>(<a href='SkRect_Reference#SkRect'>SkRect</a> cull)
</pre>
-Returns a placeholder <a href='#SkPicture'>SkPicture</a>. Result does not draw, and contains only
-<a href='#SkPicture_MakePlaceholder_cull'>cull</a> <a href='SkRect_Reference#Rect'>Rect</a>, a hint of its bounds. Result is immutable; it cannot be changed
+Returns a placeholder <a href='SkPicture_Reference#SkPicture'>SkPicture</a>. Result does not draw, and contains only
+<a href='#SkPicture_MakePlaceholder_cull'>cull</a> <a href='SkRect_Reference#SkRect'>SkRect</a>, a hint of its bounds. Result is immutable; it cannot be changed
later. Result identifier is unique.
Returned placeholder can be intercepted during playback to insert other
-commands into <a href='SkCanvas_Reference#Canvas'>Canvas</a> draw stream.
+commands into <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> draw <a href='SkStream_Reference#Stream'>stream</a>.
### Parameters
@@ -451,7 +442,7 @@
virtual int <a href='#SkPicture_approximateOpCount'>approximateOpCount</a>() const = 0
</pre>
-Returns the approximate number of operations in <a href='#Picture'>Picture</a>. Returned value
+Returns the approximate number of operations in <a href='SkPicture_Reference#SkPicture'>SkPicture</a>. Returned value
may be greater or less than the number of <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> calls
recorded: some calls may be recorded as more than one operation, other
calls may be optimized away.
@@ -476,12 +467,12 @@
virtual size_t <a href='#SkPicture_approximateBytesUsed'>approximateBytesUsed</a>() const = 0
</pre>
-Returns the approximate byte size of <a href='#Picture'>Picture</a>. Does not include large objects
-referenced by <a href='#Picture'>Picture</a>.
+Returns the approximate byte <a href='undocumented#Size'>size</a> of <a href='SkPicture_Reference#SkPicture'>SkPicture</a>. Does not include large objects
+referenced by <a href='SkPicture_Reference#SkPicture'>SkPicture</a>.
### Return Value
-approximate size
+approximate <a href='undocumented#Size'>size</a>
### Example
diff --git a/site/user/api/SkPixmap_Reference.md b/site/user/api/SkPixmap_Reference.md
index 1dc58fe..89c847e 100644
--- a/site/user/api/SkPixmap_Reference.md
+++ b/site/user/api/SkPixmap_Reference.md
@@ -83,14 +83,14 @@
<a href='#SkPixmap'>SkPixmap</a>()
</pre>
-Creates an empty <a href='#Pixmap'>Pixmap</a> without pixels, with <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, with
+Creates an empty <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> without pixels, with <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, with
<a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>, and with a width and height of zero. Use
-<a href='#SkPixmap_reset'>reset</a>() to associate pixels, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, width, and height
-after <a href='#Pixmap'>Pixmap</a> has been created.
+<a href='#SkPixmap_reset'>reset()</a> to associate pixels, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, width, and height
+after <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> has been created.
### Return Value
-empty <a href='#Pixmap'>Pixmap</a>
+empty <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>
### Example
@@ -117,35 +117,35 @@
<a href='#SkPixmap'>SkPixmap</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, const void* addr, size_t <a href='#SkPixmap_rowBytes'>rowBytes</a>)
</pre>
-Creates <a href='#Pixmap'>Pixmap</a> from info width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-addr points to pixels, or nullptr. <a href='#SkPixmap_rowBytes'>rowBytes</a> should be info.<a href='#SkPixmap_width'>width</a>() times
-info.bytesPerPixel(), or larger.
+Creates <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> from <a href='#SkPixmap_SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes)_info'>info</a> width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
+<a href='#SkPixmap_SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes)_addr'>addr</a> <a href='SkPoint_Reference#Point'>points</a> to pixels, or nullptr. <a href='#SkPixmap_SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes)_rowBytes'>rowBytes</a> should be <a href='#SkPixmap_SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes)_info'>info</a>.<a href='#SkImageInfo_width'>width()</a> times
+<a href='#SkPixmap_SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes)_info'>info</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(), or larger.
No parameter checking is performed; it is up to the caller to ensure that
-addr and <a href='#SkPixmap_rowBytes'>rowBytes</a> agree with info.
+<a href='#SkPixmap_SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes)_addr'>addr</a> and <a href='#SkPixmap_SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes)_rowBytes'>rowBytes</a> agree with <a href='#SkPixmap_SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes)_info'>info</a>.
-The memory lifetime of pixels is managed by the caller. When <a href='#Pixmap'>Pixmap</a> goes
-out of scope, addr is unaffected.
+The memory lifetime of pixels is managed by the caller. When <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> goes
+out of scope, <a href='#SkPixmap_SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes)_addr'>addr</a> is unaffected.
-<a href='#Pixmap'>Pixmap</a> may be later modified by <a href='#SkPixmap_reset'>reset</a>() to change its size, pixel type, or
+<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> may be later modified by <a href='#SkPixmap_reset'>reset()</a> to change its <a href='undocumented#Size'>size</a>, <a href='undocumented#Pixel'>pixel</a> type, or
storage.
### Parameters
<table> <tr> <td><a name='SkPixmap_const_SkImageInfo_const_star_info'><code><strong>info</strong></code></a></td>
- <td>width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> of <a href='SkImageInfo_Reference#Image_Info'>Image Info</a></td>
+ <td>width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> of <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a></td>
</tr>
<tr> <td><a name='SkPixmap_const_SkImageInfo_const_star_addr'><code><strong>addr</strong></code></a></td>
<td>pointer to pixels allocated by caller; may be nullptr</td>
</tr>
<tr> <td><a name='SkPixmap_const_SkImageInfo_const_star_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td>size of one row of addr; width times pixel size, or larger</td>
+ <td><a href='undocumented#Size'>size</a> of one row of <a href='#SkPixmap_SkPixmap(const SkImageInfo& info, const void* addr, size_t rowBytes)_addr'>addr</a>; width times <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>, or larger</td>
</tr>
</table>
### Return Value
-initialized <a href='#Pixmap'>Pixmap</a>
+initialized <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>
### Example
@@ -174,7 +174,7 @@
void <a href='#SkPixmap_reset'>reset</a>()
</pre>
-Sets width, height, row bytes to zero; pixel address to nullptr; <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> to
+Sets width, height, row bytes to zero; <a href='undocumented#Pixel'>pixel</a> address to nullptr; <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> to
<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>; and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> to <a href='SkImageInfo_Reference#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a>.
The prior pixels are unaffected; it is up to the caller to release pixels
@@ -205,27 +205,27 @@
void <a href='#SkPixmap_reset'>reset</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& info, const void* addr, size_t <a href='#SkPixmap_rowBytes'>rowBytes</a>)
</pre>
-Sets width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> from info.
-Sets pixel address from addr, which may be nullptr.
-Sets row bytes from <a href='#SkPixmap_rowBytes'>rowBytes</a>, which should be info.<a href='#SkPixmap_width'>width</a>() times
-info.bytesPerPixel(), or larger.
+Sets width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> from <a href='#SkPixmap_reset_2_info'>info</a>.
+Sets <a href='undocumented#Pixel'>pixel</a> address from <a href='#SkPixmap_reset_2_addr'>addr</a>, which may be nullptr.
+Sets row bytes from <a href='#SkPixmap_reset_2_rowBytes'>rowBytes</a>, which should be <a href='#SkPixmap_reset_2_info'>info</a>.<a href='#SkImageInfo_width'>width()</a> times
+<a href='#SkPixmap_reset_2_info'>info</a>.<a href='#SkImageInfo_bytesPerPixel'>bytesPerPixel</a>(), or larger.
-Does not check addr. Asserts if built with SK_DEBUG defined and if <a href='#SkPixmap_rowBytes'>rowBytes</a> is
+Does not check <a href='#SkPixmap_reset_2_addr'>addr</a>. Asserts if built with SK_DEBUG defined and if <a href='#SkPixmap_reset_2_rowBytes'>rowBytes</a> is
too small to hold one row of pixels.
-The memory lifetime pixels are managed by the caller. When <a href='#Pixmap'>Pixmap</a> goes
-out of scope, addr is unaffected.
+The memory lifetime pixels are managed by the caller. When <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> goes
+out of scope, <a href='#SkPixmap_reset_2_addr'>addr</a> is unaffected.
### Parameters
<table> <tr> <td><a name='SkPixmap_reset_2_info'><code><strong>info</strong></code></a></td>
- <td>width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> of <a href='SkImageInfo_Reference#Image_Info'>Image Info</a></td>
+ <td>width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> of <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a></td>
</tr>
<tr> <td><a name='SkPixmap_reset_2_addr'><code><strong>addr</strong></code></a></td>
<td>pointer to pixels allocated by caller; may be nullptr</td>
</tr>
<tr> <td><a name='SkPixmap_reset_2_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td>size of one row of addr; width times pixel size, or larger</td>
+ <td><a href='undocumented#Size'>size</a> of one row of <a href='#SkPixmap_reset_2_addr'>addr</a>; width times <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>, or larger</td>
</tr>
</table>
@@ -245,14 +245,14 @@
void <a href='#SkPixmap_setColorSpace'>setColorSpace</a>(<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkColorSpace'>SkColorSpace</a>> <a href='#SkPixmap_colorSpace'>colorSpace</a>)
</pre>
-Changes <a href='undocumented#Color_Space'>Color Space</a> in <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>; preserves width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and
-<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> in <a href='SkImage_Reference#Image'>Image</a>, and leaves pixel address and row bytes unchanged.
-<a href='undocumented#Color_Space'>Color Space</a> reference count is incremented.
+Changes <a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>; preserves width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and
+<a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> in <a href='SkImage_Reference#SkImage'>SkImage</a>, and leaves <a href='undocumented#Pixel'>pixel</a> address and row bytes unchanged.
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> <a href='undocumented#Reference_Count'>reference count</a> is incremented.
### Parameters
<table> <tr> <td><a name='SkPixmap_setColorSpace_colorSpace'><code><strong>colorSpace</strong></code></a></td>
- <td><a href='undocumented#Color_Space'>Color Space</a> moved to <a href='SkImageInfo_Reference#Image_Info'>Image Info</a></td>
+ <td><a href='undocumented#SkColorSpace'>SkColorSpace</a> moved to <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a></td>
</tr>
</table>
@@ -291,7 +291,7 @@
bool <a href='#SkPixmap_extractSubset'>extractSubset</a>(<a href='#SkPixmap'>SkPixmap</a>* subset, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& area) const
</pre>
-Sets <a href='#SkPixmap_extractSubset_subset'>subset</a> width, height, pixel address to intersection of <a href='#Pixmap'>Pixmap</a> with <a href='#SkPixmap_extractSubset_area'>area</a>,
+Sets <a href='#SkPixmap_extractSubset_subset'>subset</a> width, height, <a href='undocumented#Pixel'>pixel</a> address to intersection of <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> with <a href='#SkPixmap_extractSubset_area'>area</a>,
if intersection is not empty; and return true. Otherwise, leave <a href='#SkPixmap_extractSubset_subset'>subset</a> unchanged
and return false.
@@ -300,16 +300,16 @@
### Parameters
<table> <tr> <td><a name='SkPixmap_extractSubset_subset'><code><strong>subset</strong></code></a></td>
- <td>storage for width, height, pixel address of intersection</td>
+ <td>storage for width, height, <a href='undocumented#Pixel'>pixel</a> address of intersection</td>
</tr>
<tr> <td><a name='SkPixmap_extractSubset_area'><code><strong>area</strong></code></a></td>
- <td>bounds to intersect with <a href='#Pixmap'>Pixmap</a></td>
+ <td>bounds to intersect with <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a></td>
</tr>
</table>
### Return Value
-true if intersection of <a href='#Pixmap'>Pixmap</a> and <a href='#SkPixmap_extractSubset_area'>area</a> is not empty
+true if intersection of <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> and <a href='#SkPixmap_extractSubset_area'>area</a> is not empty
### Example
@@ -329,11 +329,11 @@
const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& <a href='#SkPixmap_info'>info</a>() const
</pre>
-Returns width, height, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, and <a href='undocumented#Color_Space'>Color Space</a>.
+Returns width, height, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, and <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
### Return Value
-reference to ImageInfo
+reference to <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
### Example
@@ -394,13 +394,13 @@
const void* <a href='#SkPixmap_addr'>addr</a>() const
</pre>
-Returns pixel address, the base address corresponding to the pixel origin.
+Returns <a href='undocumented#Pixel'>pixel</a> address, the base address corresponding to the <a href='undocumented#Pixel'>pixel</a> origin.
-It is up to the <a href='#Pixmap'>Pixmap</a> creator to ensure that pixel address is a useful value.
+It is up to the <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> creator to ensure that <a href='undocumented#Pixel'>pixel</a> address is a useful value.
### Return Value
-pixel address
+<a href='undocumented#Pixel'>pixel</a> address
### Example
@@ -460,11 +460,11 @@
int <a href='#SkPixmap_height'>height</a>() const
</pre>
-Returns pixel row count.
+Returns <a href='undocumented#Pixel'>pixel</a> row count.
### Return Value
-pixel height in <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>
+<a href='undocumented#Pixel'>pixel</a> height in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>
### Example
@@ -554,13 +554,13 @@
<a href='undocumented#SkColorSpace'>SkColorSpace</a>* <a href='#SkPixmap_colorSpace'>colorSpace</a>() const
</pre>
-Returns <a href='undocumented#Color_Space'>Color Space</a>, the range of colors, associated with <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>. The
-reference count of <a href='undocumented#Color_Space'>Color Space</a> is unchanged. The returned <a href='undocumented#Color_Space'>Color Space</a> is
+Returns <a href='undocumented#SkColorSpace'>SkColorSpace</a>, the range of colors, associated with <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. The
+<a href='undocumented#Reference_Count'>reference count</a> of <a href='undocumented#SkColorSpace'>SkColorSpace</a> is unchanged. The returned <a href='undocumented#SkColorSpace'>SkColorSpace</a> is
immutable.
### Return Value
-<a href='undocumented#Color_Space'>Color Space</a> in <a href='SkImageInfo_Reference#Image_Info'>Image Info</a>, or nullptr
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>, or nullptr
### Example
@@ -588,13 +588,13 @@
bool <a href='#SkPixmap_isOpaque'>isOpaque</a>() const
</pre>
-Returns true if <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.
-Does not check if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> allows <a href='SkColor_Reference#Alpha'>Alpha</a>, or if any pixel value has
+Returns true if <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>.
+Does not check if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> allows <a href='SkColor_Reference#Alpha'>alpha</a>, or if any <a href='undocumented#Pixel'>pixel</a> value has
transparency.
### Return Value
-true if <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> has opaque <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>
+true if <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> has opaque <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>
### Example
@@ -624,11 +624,11 @@
<a href='SkIRect_Reference#SkIRect'>SkIRect</a> <a href='#SkPixmap_bounds'>bounds</a>() const
</pre>
-Returns <a href='SkIRect_Reference#IRect'>IRect</a> { 0, 0, <a href='#SkPixmap_width'>width</a>(), <a href='#SkPixmap_height'>height</a>() }.
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> { 0, 0, <a href='#SkPixmap_width'>width()</a>, <a href='#SkPixmap_height'>height()</a> }.
### Return Value
-integral rectangle from origin to <a href='#SkPixmap_width'>width</a>() and <a href='#SkPixmap_height'>height</a>()
+integral rectangle from origin to <a href='#SkPixmap_width'>width()</a> and <a href='#SkPixmap_height'>height()</a>
### Example
@@ -658,7 +658,7 @@
</pre>
Returns number of pixels that fit on row. Should be greater than or equal to
-<a href='#SkPixmap_width'>width</a>().
+<a href='#SkPixmap_width'>width()</a>.
### Return Value
@@ -730,15 +730,15 @@
size_t <a href='#SkPixmap_computeByteSize'>computeByteSize</a>() const
</pre>
-Returns minimum memory required for pixel storage.
-Does not include unused memory on last row when <a href='#SkPixmap_rowBytesAsPixels'>rowBytesAsPixels</a> exceeds <a href='#SkPixmap_width'>width</a>().
+Returns minimum memory required for <a href='undocumented#Pixel_Storage'>pixel storage</a>.
+Does not include unused memory on last row when <a href='#SkPixmap_rowBytesAsPixels'>rowBytesAsPixels</a>() exceeds <a href='#SkPixmap_width'>width()</a>.
Returns zero if result does not fit in size_t.
-Returns zero if <a href='#SkPixmap_height'>height</a>() or <a href='#SkPixmap_width'>width</a>() is 0.
-Returns <a href='#SkPixmap_height'>height</a>() times <a href='#SkPixmap_rowBytes'>rowBytes</a> if <a href='#SkPixmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
+Returns zero if <a href='#SkPixmap_height'>height()</a> or <a href='#SkPixmap_width'>width()</a> is 0.
+Returns <a href='#SkPixmap_height'>height()</a> times <a href='#SkPixmap_rowBytes'>rowBytes</a>() if <a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
### Return Value
-size in bytes of image buffer
+<a href='undocumented#Size'>size</a> in bytes of <a href='SkImage_Reference#Image'>image</a> buffer
### Example
@@ -774,23 +774,23 @@
bool <a href='#SkPixmap_computeIsOpaque'>computeIsOpaque</a>() const
</pre>
-Returns true if all pixels are opaque. <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> determines how pixels
-are encoded, and whether pixel describes <a href='SkColor_Reference#Alpha'>Alpha</a>. Returns true for <a href='SkImageInfo_Reference#Color_Type'>Color Types</a>
-without alpha in each pixel; for other <a href='SkImageInfo_Reference#Color_Type'>Color Types</a>, returns true if all
-pixels have alpha values equivalent to 1.0 or greater.
+Returns true if all pixels are opaque. <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> determines how pixels
+are encoded, and whether <a href='undocumented#Pixel'>pixel</a> describes <a href='SkColor_Reference#Alpha'>alpha</a>. Returns true for <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>
+without <a href='SkColor_Reference#Alpha'>alpha</a> in each <a href='undocumented#Pixel'>pixel</a>; for other <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, returns true if all
+pixels have <a href='SkColor_Reference#Alpha'>alpha</a> values equivalent to 1.0 or greater.
-For <a href='SkImageInfo_Reference#Color_Type'>Color Types</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>: always
-returns true. For <a href='SkImageInfo_Reference#Color_Type'>Color Types</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>,
-<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>: returns true if all pixel <a href='SkColor_Reference#Alpha'>Alpha</a> values are 255.
-For <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>: returns true if all pixel <a href='SkColor_Reference#Alpha'>Alpha</a> values are 15.
-For <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>: returns true if all pixel <a href='SkColor_Reference#Alpha'>Alpha</a> values are 1.0 or
+For <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>: always
+returns true. For <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>: returns true if all <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> values are 255.
+For <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>: returns true if all <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> values are 15.
+For <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>: returns true if all <a href='undocumented#Pixel'>pixel</a> <a href='SkColor_Reference#Alpha'>alpha</a> values are 1.0 or
greater.
Returns false for <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
### Return Value
-true if all pixels have opaque values or <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is opaque
+true if all pixels have opaque values or <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is opaque
### Example
@@ -819,31 +819,31 @@
<a href='SkColor_Reference#SkColor'>SkColor</a> <a href='#SkPixmap_getColor'>getColor</a>(int x, int y) const
</pre>
-Returns pixel at (<a href='#SkPixmap_getColor_x'>x</a>, <a href='#SkPixmap_getColor_y'>y</a>) as <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor_Reference#Color'>Color</a>.
-Returns black with <a href='SkColor_Reference#Alpha'>Alpha</a> if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>.
+Returns <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkPixmap_getColor_x'>x</a>, <a href='#SkPixmap_getColor_y'>y</a>) as <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>.
+Returns black with <a href='SkColor_Reference#Alpha'>alpha</a> if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>.
Input is not validated: out of bounds values of <a href='#SkPixmap_getColor_x'>x</a> or <a href='#SkPixmap_getColor_y'>y</a> trigger an assert() if
built with SK_DEBUG defined; and returns undefined values or may crash if
-SK_RELEASE is defined. Fails if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a> or
-pixel address is nullptr.
+SK_RELEASE is defined. Fails if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a> or
+<a href='undocumented#Pixel'>pixel</a> address is nullptr.
-<a href='undocumented#Color_Space'>Color Space</a> in <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> is ignored. Some <a href='SkColor_Reference#Color'>Color</a> precision may be lost in the
-conversion to <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor_Reference#Color'>Color</a>; original pixel data may have additional
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> is ignored. Some <a href='SkColor_Reference#Color'>color</a> precision may be lost in the
+conversion to <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>; original <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Data'>data</a> may have additional
precision.
### Parameters
<table> <tr> <td><a name='SkPixmap_getColor_x'><code><strong>x</strong></code></a></td>
- <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+ <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
</tr>
<tr> <td><a name='SkPixmap_getColor_y'><code><strong>y</strong></code></a></td>
- <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+ <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
</tr>
</table>
### Return Value
-pixel converted to <a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor_Reference#Color'>Color</a>
+<a href='undocumented#Pixel'>pixel</a> converted to <a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='SkColor_Reference#Color'>color</a>
### Example
@@ -910,27 +910,27 @@
const void* <a href='#SkPixmap_addr'>addr</a>(int x, int y) const
</pre>
-Returns readable pixel address at (<a href='#SkPixmap_addr_2_x'>x</a>, <a href='#SkPixmap_addr_2_y'>y</a>). Returns nullptr if <a href='undocumented#Pixel_Ref'>Pixel Ref</a> is nullptr.
+Returns readable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_addr_2_x'>x</a>, <a href='#SkPixmap_addr_2_y'>y</a>). Returns nullptr if <a href='undocumented#SkPixelRef'>SkPixelRef</a> is nullptr.
Input is not validated: out of bounds values of <a href='#SkPixmap_addr_2_x'>x</a> or <a href='#SkPixmap_addr_2_y'>y</a> trigger an assert() if
-built with SK_DEBUG defined. Returns nullptr if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
+built with SK_DEBUG defined. Returns nullptr if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
-Performs a lookup of pixel size; for better performance, call
-one of: <a href='#SkPixmap_addr8'>addr8</a>, <a href='#SkPixmap_addr16'>addr16</a>, <a href='#SkPixmap_addr32'>addr32</a>, <a href='#SkPixmap_addr64'>addr64</a>, or <a href='#SkPixmap_addrF16'>addrF16</a>.
+Performs a lookup of <a href='undocumented#Pixel'>pixel</a> <a href='undocumented#Size'>size</a>; for better performance, call
+one of: <a href='#SkPixmap_addr8'>addr8</a>, <a href='#SkPixmap_addr16'>addr16</a>, <a href='#SkPixmap_addr32'>addr32</a>, <a href='#SkPixmap_addr64'>addr64</a>, or <a href='#SkPixmap_addrF16'>addrF16</a>().
### Parameters
<table> <tr> <td><a name='SkPixmap_addr_2_x'><code><strong>x</strong></code></a></td>
- <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+ <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
</tr>
<tr> <td><a name='SkPixmap_addr_2_y'><code><strong>y</strong></code></a></td>
- <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+ <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
</tr>
</table>
### Return Value
-readable generic pointer to pixel
+readable generic pointer to <a href='undocumented#Pixel'>pixel</a>
### Example
@@ -956,11 +956,11 @@
const uint8_t* <a href='#SkPixmap_addr8'>addr8</a>() const
</pre>
-Returns readable base pixel address. Result is addressable as unsigned 8-bit bytes.
-Will trigger an assert() if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a> or
+Returns readable base <a href='undocumented#Pixel'>pixel</a> address. Result is addressable as unsigned 8-bit bytes.
+Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a> or
<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, and is built with SK_DEBUG defined.
-One byte corresponds to one pixel.
+One byte corresponds to one <a href='undocumented#Pixel'>pixel</a>.
### Return Value
@@ -990,11 +990,11 @@
const uint16_t* <a href='#SkPixmap_addr16'>addr16</a>() const
</pre>
-Returns readable base pixel address. Result is addressable as unsigned 16-bit words.
-Will trigger an assert() if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or
+Returns readable base <a href='undocumented#Pixel'>pixel</a> address. Result is addressable as unsigned 16-bit words.
+Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or
<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, and is built with SK_DEBUG defined.
-One word corresponds to one pixel.
+One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
### Return Value
@@ -1024,11 +1024,11 @@
const uint32_t* <a href='#SkPixmap_addr32'>addr32</a>() const
</pre>
-Returns readable base pixel address. Result is addressable as unsigned 32-bit words.
-Will trigger an assert() if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> or
+Returns readable base <a href='undocumented#Pixel'>pixel</a> address. Result is addressable as unsigned 32-bit words.
+Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> or
<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, and is built with SK_DEBUG defined.
-One word corresponds to one pixel.
+One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
### Return Value
@@ -1058,11 +1058,11 @@
const uint64_t* <a href='#SkPixmap_addr64'>addr64</a>() const
</pre>
-Returns readable base pixel address. Result is addressable as unsigned 64-bit words.
-Will trigger an assert() if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built
+Returns readable base <a href='undocumented#Pixel'>pixel</a> address. Result is addressable as unsigned 64-bit words.
+Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built
with SK_DEBUG defined.
-One word corresponds to one pixel.
+One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
### Return Value
@@ -1092,12 +1092,12 @@
const uint16_t* <a href='#SkPixmap_addrF16'>addrF16</a>() const
</pre>
-Returns readable base pixel address. Result is addressable as unsigned 16-bit words.
-Will trigger an assert() if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built
+Returns readable base <a href='undocumented#Pixel'>pixel</a> address. Result is addressable as unsigned 16-bit words.
+Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built
with SK_DEBUG defined.
-Each word represents one color component encoded as a half float.
-Four words correspond to one pixel.
+Each word represents one <a href='SkColor_Reference#Color'>color</a> component encoded as a half float.
+Four words correspond to one <a href='undocumented#Pixel'>pixel</a>.
### Return Value
@@ -1127,27 +1127,27 @@
const uint8_t* <a href='#SkPixmap_addr8'>addr8</a>(int x, int y) const
</pre>
-Returns readable pixel address at (<a href='#SkPixmap_addr8_2_x'>x</a>, <a href='#SkPixmap_addr8_2_y'>y</a>).
+Returns readable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_addr8_2_x'>x</a>, <a href='#SkPixmap_addr8_2_y'>y</a>).
Input is not validated: out of bounds values of <a href='#SkPixmap_addr8_2_x'>x</a> or <a href='#SkPixmap_addr8_2_y'>y</a> trigger an assert() if
built with SK_DEBUG defined.
-Will trigger an assert() if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a> or
+Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a> or
<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, and is built with SK_DEBUG defined.
### Parameters
<table> <tr> <td><a name='SkPixmap_addr8_2_x'><code><strong>x</strong></code></a></td>
- <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+ <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
</tr>
<tr> <td><a name='SkPixmap_addr8_2_y'><code><strong>y</strong></code></a></td>
- <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+ <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
</tr>
</table>
### Return Value
-readable unsigned 8-bit pointer to pixel at (<a href='#SkPixmap_addr8_2_x'>x</a>, <a href='#SkPixmap_addr8_2_y'>y</a>)
+readable unsigned 8-bit pointer to <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkPixmap_addr8_2_x'>x</a>, <a href='#SkPixmap_addr8_2_y'>y</a>)
### Example
@@ -1173,27 +1173,27 @@
const uint16_t* <a href='#SkPixmap_addr16'>addr16</a>(int x, int y) const
</pre>
-Returns readable pixel address at (<a href='#SkPixmap_addr16_2_x'>x</a>, <a href='#SkPixmap_addr16_2_y'>y</a>).
+Returns readable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_addr16_2_x'>x</a>, <a href='#SkPixmap_addr16_2_y'>y</a>).
Input is not validated: out of bounds values of <a href='#SkPixmap_addr16_2_x'>x</a> or <a href='#SkPixmap_addr16_2_y'>y</a> trigger an assert() if
built with SK_DEBUG defined.
-Will trigger an assert() if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or
+Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a> or
<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, and is built with SK_DEBUG defined.
### Parameters
<table> <tr> <td><a name='SkPixmap_addr16_2_x'><code><strong>x</strong></code></a></td>
- <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+ <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
</tr>
<tr> <td><a name='SkPixmap_addr16_2_y'><code><strong>y</strong></code></a></td>
- <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+ <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
</tr>
</table>
### Return Value
-readable unsigned 16-bit pointer to pixel at (<a href='#SkPixmap_addr16_2_x'>x</a>, <a href='#SkPixmap_addr16_2_y'>y</a>)
+readable unsigned 16-bit pointer to <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkPixmap_addr16_2_x'>x</a>, <a href='#SkPixmap_addr16_2_y'>y</a>)
### Example
@@ -1219,27 +1219,27 @@
const uint32_t* <a href='#SkPixmap_addr32'>addr32</a>(int x, int y) const
</pre>
-Returns readable pixel address at (<a href='#SkPixmap_addr32_2_x'>x</a>, <a href='#SkPixmap_addr32_2_y'>y</a>).
+Returns readable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_addr32_2_x'>x</a>, <a href='#SkPixmap_addr32_2_y'>y</a>).
Input is not validated: out of bounds values of <a href='#SkPixmap_addr32_2_x'>x</a> or <a href='#SkPixmap_addr32_2_y'>y</a> trigger an assert() if
built with SK_DEBUG defined.
-Will trigger an assert() if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> or
+Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> or
<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, and is built with SK_DEBUG defined.
### Parameters
<table> <tr> <td><a name='SkPixmap_addr32_2_x'><code><strong>x</strong></code></a></td>
- <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+ <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
</tr>
<tr> <td><a name='SkPixmap_addr32_2_y'><code><strong>y</strong></code></a></td>
- <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+ <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
</tr>
</table>
### Return Value
-readable unsigned 32-bit pointer to pixel at (<a href='#SkPixmap_addr32_2_x'>x</a>, <a href='#SkPixmap_addr32_2_y'>y</a>)
+readable unsigned 32-bit pointer to <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkPixmap_addr32_2_x'>x</a>, <a href='#SkPixmap_addr32_2_y'>y</a>)
### Example
@@ -1265,27 +1265,27 @@
const uint64_t* <a href='#SkPixmap_addr64'>addr64</a>(int x, int y) const
</pre>
-Returns readable pixel address at (<a href='#SkPixmap_addr64_2_x'>x</a>, <a href='#SkPixmap_addr64_2_y'>y</a>).
+Returns readable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_addr64_2_x'>x</a>, <a href='#SkPixmap_addr64_2_y'>y</a>).
Input is not validated: out of bounds values of <a href='#SkPixmap_addr64_2_x'>x</a> or <a href='#SkPixmap_addr64_2_y'>y</a> trigger an assert() if
built with SK_DEBUG defined.
-Will trigger an assert() if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built
+Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built
with SK_DEBUG defined.
### Parameters
<table> <tr> <td><a name='SkPixmap_addr64_2_x'><code><strong>x</strong></code></a></td>
- <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+ <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
</tr>
<tr> <td><a name='SkPixmap_addr64_2_y'><code><strong>y</strong></code></a></td>
- <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+ <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
</tr>
</table>
### Return Value
-readable unsigned 64-bit pointer to pixel at (<a href='#SkPixmap_addr64_2_x'>x</a>, <a href='#SkPixmap_addr64_2_y'>y</a>)
+readable unsigned 64-bit pointer to <a href='undocumented#Pixel'>pixel</a> at (<a href='#SkPixmap_addr64_2_x'>x</a>, <a href='#SkPixmap_addr64_2_y'>y</a>)
### Example
@@ -1311,30 +1311,30 @@
const uint16_t* <a href='#SkPixmap_addrF16'>addrF16</a>(int x, int y) const
</pre>
-Returns readable pixel address at (<a href='#SkPixmap_addrF16_2_x'>x</a>, <a href='#SkPixmap_addrF16_2_y'>y</a>).
+Returns readable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_addrF16_2_x'>x</a>, <a href='#SkPixmap_addrF16_2_y'>y</a>).
Input is not validated: out of bounds values of <a href='#SkPixmap_addrF16_2_x'>x</a> or <a href='#SkPixmap_addrF16_2_y'>y</a> trigger an assert() if
built with SK_DEBUG defined.
-Will trigger an assert() if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built
+Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built
with SK_DEBUG defined.
-Each unsigned 16-bit word represents one color component encoded as a half float.
-Four words correspond to one pixel.
+Each unsigned 16-bit word represents one <a href='SkColor_Reference#Color'>color</a> component encoded as a half float.
+Four words correspond to one <a href='undocumented#Pixel'>pixel</a>.
### Parameters
<table> <tr> <td><a name='SkPixmap_addrF16_2_x'><code><strong>x</strong></code></a></td>
- <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+ <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
</tr>
<tr> <td><a name='SkPixmap_addrF16_2_y'><code><strong>y</strong></code></a></td>
- <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+ <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
</tr>
</table>
### Return Value
-readable unsigned 16-bit pointer to pixel component at (<a href='#SkPixmap_addrF16_2_x'>x</a>, <a href='#SkPixmap_addrF16_2_y'>y</a>)
+readable unsigned 16-bit pointer to <a href='undocumented#Pixel'>pixel</a> component at (<a href='#SkPixmap_addrF16_2_x'>x</a>, <a href='#SkPixmap_addrF16_2_y'>y</a>)
### Example
@@ -1362,7 +1362,7 @@
void* <a href='#SkPixmap_writable_addr'>writable addr</a>() const
</pre>
-Returns writable base pixel address.
+Returns writable base <a href='undocumented#Pixel'>pixel</a> address.
### Return Value
@@ -1394,24 +1394,24 @@
void* <a href='#SkPixmap_writable_addr'>writable addr</a>(int x, int y) const
</pre>
-Returns writable pixel address at (<a href='#SkPixmap_writable_addr_2_x'>x</a>, <a href='#SkPixmap_writable_addr_2_y'>y</a>).
+Returns writable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_writable_addr_2_x'>x</a>, <a href='#SkPixmap_writable_addr_2_y'>y</a>).
Input is not validated: out of bounds values of <a href='#SkPixmap_writable_addr_2_x'>x</a> or <a href='#SkPixmap_writable_addr_2_y'>y</a> trigger an assert() if
-built with SK_DEBUG defined. Returns zero if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
+built with SK_DEBUG defined. Returns zero if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>.
### Parameters
<table> <tr> <td><a name='SkPixmap_writable_addr_2_x'><code><strong>x</strong></code></a></td>
- <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+ <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
</tr>
<tr> <td><a name='SkPixmap_writable_addr_2_y'><code><strong>y</strong></code></a></td>
- <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+ <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
</tr>
</table>
### Return Value
-writable generic pointer to pixel
+writable generic pointer to <a href='undocumented#Pixel'>pixel</a>
### Example
@@ -1439,19 +1439,19 @@
uint8_t* <a href='#SkPixmap_writable_addr8'>writable addr8</a>(int x, int y) const
</pre>
-Returns writable pixel address at (<a href='#SkPixmap_writable_addr8_x'>x</a>, <a href='#SkPixmap_writable_addr8_y'>y</a>). Result is addressable as unsigned
-8-bit bytes. Will trigger an assert() if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>
+Returns writable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_writable_addr8_x'>x</a>, <a href='#SkPixmap_writable_addr8_y'>y</a>). Result is addressable as unsigned
+8-bit bytes. Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>
or <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, and is built with SK_DEBUG defined.
-One byte corresponds to one pixel.
+One byte corresponds to one <a href='undocumented#Pixel'>pixel</a>.
### Parameters
<table> <tr> <td><a name='SkPixmap_writable_addr8_x'><code><strong>x</strong></code></a></td>
- <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+ <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
</tr>
<tr> <td><a name='SkPixmap_writable_addr8_y'><code><strong>y</strong></code></a></td>
- <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+ <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
</tr>
</table>
@@ -1478,25 +1478,25 @@
uint16_t* <a href='#SkPixmap_writable_addr16'>writable addr16</a>(int x, int y) const
</pre>
-Returns <a href='#SkPixmap_writable_addr'>writable addr</a> pixel address at (<a href='#SkPixmap_writable_addr16_x'>x</a>, <a href='#SkPixmap_writable_addr16_y'>y</a>). Result is addressable as unsigned
-16-bit words. Will trigger an assert() if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>
+Returns <a href='#SkPixmap_writable_addr'>writable_addr</a> <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_writable_addr16_x'>x</a>, <a href='#SkPixmap_writable_addr16_y'>y</a>). Result is addressable as unsigned
+16-bit words. Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>
or <a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, and is built with SK_DEBUG defined.
-One word corresponds to one pixel.
+One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
### Parameters
<table> <tr> <td><a name='SkPixmap_writable_addr16_x'><code><strong>x</strong></code></a></td>
- <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+ <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
</tr>
<tr> <td><a name='SkPixmap_writable_addr16_y'><code><strong>y</strong></code></a></td>
- <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+ <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
</tr>
</table>
### Return Value
-writable unsigned 16-bit pointer to pixel
+writable unsigned 16-bit pointer to <a href='undocumented#Pixel'>pixel</a>
### Example
@@ -1516,26 +1516,26 @@
uint32_t* <a href='#SkPixmap_writable_addr32'>writable addr32</a>(int x, int y) const
</pre>
-Returns writable pixel address at (<a href='#SkPixmap_writable_addr32_x'>x</a>, <a href='#SkPixmap_writable_addr32_y'>y</a>). Result is addressable as unsigned
-32-bit words. Will trigger an assert() if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not
+Returns writable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_writable_addr32_x'>x</a>, <a href='#SkPixmap_writable_addr32_y'>y</a>). Result is addressable as unsigned
+32-bit words. Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not
<a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a> or <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, and is built with SK_DEBUG
defined.
-One word corresponds to one pixel.
+One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
### Parameters
<table> <tr> <td><a name='SkPixmap_writable_addr32_x'><code><strong>x</strong></code></a></td>
- <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+ <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
</tr>
<tr> <td><a name='SkPixmap_writable_addr32_y'><code><strong>y</strong></code></a></td>
- <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+ <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
</tr>
</table>
### Return Value
-writable unsigned 32-bit pointer to pixel
+writable unsigned 32-bit pointer to <a href='undocumented#Pixel'>pixel</a>
### Example
@@ -1553,25 +1553,25 @@
uint64_t* <a href='#SkPixmap_writable_addr64'>writable addr64</a>(int x, int y) const
</pre>
-Returns writable pixel address at (<a href='#SkPixmap_writable_addr64_x'>x</a>, <a href='#SkPixmap_writable_addr64_y'>y</a>). Result is addressable as unsigned
-64-bit words. Will trigger an assert() if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not
+Returns writable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_writable_addr64_x'>x</a>, <a href='#SkPixmap_writable_addr64_y'>y</a>). Result is addressable as unsigned
+64-bit words. Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not
<a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built with SK_DEBUG defined.
-One word corresponds to one pixel.
+One word corresponds to one <a href='undocumented#Pixel'>pixel</a>.
### Parameters
<table> <tr> <td><a name='SkPixmap_writable_addr64_x'><code><strong>x</strong></code></a></td>
- <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+ <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
</tr>
<tr> <td><a name='SkPixmap_writable_addr64_y'><code><strong>y</strong></code></a></td>
- <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+ <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
</tr>
</table>
### Return Value
-writable unsigned 64-bit pointer to pixel
+writable unsigned 64-bit pointer to <a href='undocumented#Pixel'>pixel</a>
### Example
@@ -1589,26 +1589,26 @@
uint16_t* <a href='#SkPixmap_writable_addrF16'>writable addrF16</a>(int x, int y) const
</pre>
-Returns writable pixel address at (<a href='#SkPixmap_writable_addrF16_x'>x</a>, <a href='#SkPixmap_writable_addrF16_y'>y</a>). Result is addressable as unsigned
-16-bit words. Will trigger an assert() if <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> is not
+Returns writable <a href='undocumented#Pixel'>pixel</a> address at (<a href='#SkPixmap_writable_addrF16_x'>x</a>, <a href='#SkPixmap_writable_addrF16_y'>y</a>). Result is addressable as unsigned
+16-bit words. Will trigger an assert() if <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> is not
<a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> and is built with SK_DEBUG defined.
-Each word represents one color component encoded as a half float.
-Four words correspond to one pixel.
+Each word represents one <a href='SkColor_Reference#Color'>color</a> component encoded as a half float.
+Four words correspond to one <a href='undocumented#Pixel'>pixel</a>.
### Parameters
<table> <tr> <td><a name='SkPixmap_writable_addrF16_x'><code><strong>x</strong></code></a></td>
- <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width</a>()</td>
+ <td>column index, zero or greater, and less than <a href='#SkPixmap_width'>width()</a></td>
</tr>
<tr> <td><a name='SkPixmap_writable_addrF16_y'><code><strong>y</strong></code></a></td>
- <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height</a>()</td>
+ <td>row index, zero or greater, and less than <a href='#SkPixmap_height'>height()</a></td>
</tr>
</table>
### Return Value
-writable unsigned 16-bit pointer to first component of pixel
+writable unsigned 16-bit pointer to first component of <a href='undocumented#Pixel'>pixel</a>
### Example
@@ -1630,30 +1630,30 @@
bool <a href='#SkPixmap_readPixels'>readPixels</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& dstInfo, void* dstPixels, size_t dstRowBytes) const
</pre>
-Copies a <a href='SkRect_Reference#Rect'>Rect</a> of pixels to <a href='#SkPixmap_readPixels_dstPixels'>dstPixels</a>. Copy starts at (0, 0), and does not
-exceed <a href='#Pixmap'>Pixmap</a> (<a href='#SkPixmap_width'>width</a>(), <a href='#SkPixmap_height'>height</a>()).
+Copies a <a href='SkRect_Reference#SkRect'>SkRect</a> of pixels to <a href='#SkPixmap_readPixels_dstPixels'>dstPixels</a>. Copy starts at (0, 0), and does not
+exceed <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> (<a href='#SkPixmap_width'>width()</a>, <a href='#SkPixmap_height'>height()</a>).
-<a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a> specifies width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, and
-<a href='undocumented#Color_Space'>Color Space</a> of destination. <a href='#SkPixmap_readPixels_dstRowBytes'>dstRowBytes</a> specifics the gap from one destination
+<a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a> specifies width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and
+<a href='undocumented#SkColorSpace'>SkColorSpace</a> of destination. <a href='#SkPixmap_readPixels_dstRowBytes'>dstRowBytes</a> specifics the gap from one destination
row to the next. Returns true if pixels are copied. Returns false if
-<a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkPixmap_addr'>addr</a>() equals nullptr, or <a href='#SkPixmap_readPixels_dstRowBytes'>dstRowBytes</a> is less than <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='SkImageInfo_Reference#SkImageInfo'>minRowBytes</a>.
+<a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a> address equals nullptr, or <a href='#SkPixmap_readPixels_dstRowBytes'>dstRowBytes</a> is less than <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>().
-<a href='#Pixels'>Pixels</a> are copied only if pixel conversion is possible. If <a href='#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorType'>colorType</a> is
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkPixmap_colorType'>colorType</a> must match.
-If <a href='#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkPixmap_colorSpace'>colorSpace</a> must match.
-If <a href='#Pixmap'>Pixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkPixmap_alphaType'>alphaType</a> must
-match. If <a href='#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a> is nullptr, <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkPixmap_colorSpace'>colorSpace</a> must match. Returns
-false if pixel conversion is not possible.
+Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() is
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorType'>colorType</a>() must match.
+If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() must match.
+If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a>() is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_alphaType'>alphaType</a>() must
+match. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a>() is nullptr, <a href='#SkPixmap_readPixels_dstInfo'>dstInfo</a>.<a href='#SkImageInfo_colorSpace'>colorSpace</a>() must match. Returns
+false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
-Returns false if <a href='#Pixmap'>Pixmap</a> <a href='#SkPixmap_width'>width</a>() or <a href='#SkPixmap_height'>height</a>() is zero or negative.
+Returns false if <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_width'>width()</a> or <a href='#SkPixmap_height'>height()</a> is zero or negative.
### Parameters
<table> <tr> <td><a name='SkPixmap_readPixels_dstInfo'><code><strong>dstInfo</strong></code></a></td>
- <td>destination width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a></td>
+ <td>destination width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a></td>
</tr>
<tr> <td><a name='SkPixmap_readPixels_dstPixels'><code><strong>dstPixels</strong></code></a></td>
- <td>destination pixel storage</td>
+ <td>destination <a href='undocumented#Pixel_Storage'>pixel storage</a></td>
</tr>
<tr> <td><a name='SkPixmap_readPixels_dstRowBytes'><code><strong>dstRowBytes</strong></code></a></td>
<td>destination row length</td>
@@ -1792,24 +1792,24 @@
bool <a href='#SkPixmap_readPixels'>readPixels</a>(const <a href='#SkPixmap'>SkPixmap</a>& dst) const
</pre>
-Copies pixels inside <a href='#SkPixmap_bounds'>bounds</a>() to <a href='#SkPixmap_readPixels_4_dst'>dst</a>. <a href='#SkPixmap_readPixels_4_dst'>dst</a> specifies width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>,
-<a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, and <a href='undocumented#Color_Space'>Color Space</a> of destination. Returns true if pixels are copied.
-Returns false if <a href='#SkPixmap_readPixels_4_dst'>dst</a>.<a href='#SkPixmap_addr'>addr</a>() equals nullptr, or <a href='#SkPixmap_readPixels_4_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a> is less than
-<a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='SkImageInfo_Reference#SkImageInfo_minRowBytes'>SkImageInfo::minRowBytes</a>.
+Copies pixels inside <a href='#SkPixmap_bounds'>bounds()</a> to <a href='#SkPixmap_readPixels_4_dst'>dst</a>. <a href='#SkPixmap_readPixels_4_dst'>dst</a> specifies width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>,
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='undocumented#SkColorSpace'>SkColorSpace</a> of destination. Returns true if pixels are copied.
+Returns false if <a href='#SkPixmap_readPixels_4_dst'>dst</a> address equals nullptr, or <a href='#SkPixmap_readPixels_4_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() is less than
+<a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>.
-<a href='#Pixels'>Pixels</a> are copied only if pixel conversion is possible. If <a href='#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorType'>colorType</a> is
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> must match.
-If <a href='#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='undocumented#Color_Space'>Color Space</a> must match.
-If <a href='#Pixmap'>Pixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> must
-match. If <a href='#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a> is nullptr, <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='undocumented#Color_Space'>Color Space</a> must match. Returns
-false if pixel conversion is not possible.
+Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() is
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> must match.
+If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> must match.
+If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a>() is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> must
+match. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a>() is nullptr, <a href='#SkPixmap_readPixels_4_dst'>dst</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> must match. Returns
+false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
-Returns false if <a href='#Pixmap'>Pixmap</a> <a href='#SkPixmap_width'>width</a>() or <a href='#SkPixmap_height'>height</a>() is zero or negative.
+Returns false if <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_width'>width()</a> or <a href='#SkPixmap_height'>height()</a> is zero or negative.
### Parameters
<table> <tr> <td><a name='SkPixmap_readPixels_4_dst'><code><strong>dst</strong></code></a></td>
- <td><a href='SkImageInfo_Reference#Image_Info'>Image Info</a> and pixel address to write to</td>
+ <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> and <a href='undocumented#Pixel'>pixel</a> address to write to</td>
</tr>
</table>
@@ -1833,38 +1833,39 @@
bool <a href='#SkPixmap_scalePixels'>scalePixels</a>(const <a href='#SkPixmap'>SkPixmap</a>& dst, <a href='undocumented#SkFilterQuality'>SkFilterQuality</a> filterQuality) const
</pre>
-Copies <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> to <a href='#SkPixmap_scalePixels_dst'>dst</a>, scaling pixels to fit <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_width'>width</a>() and <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_height'>height</a>(), and
-converting pixels to match <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_colorType'>colorType</a> and <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_alphaType'>alphaType</a>. Returns true if
-pixels are copied. Returns false if <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_addr'>addr</a>() is nullptr, or <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a> is
-less than <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='SkImageInfo_Reference#SkImageInfo_minRowBytes'>SkImageInfo::minRowBytes</a>.
+Copies <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> to <a href='#SkPixmap_scalePixels_dst'>dst</a>, scaling pixels to fit <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_width'>width()</a> and <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_height'>height()</a>, and
+converting pixels to match <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_colorType'>colorType</a>() and <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_alphaType'>alphaType</a>(). Returns true if
+pixels are copied. Returns false if <a href='#SkPixmap_scalePixels_dst'>dst</a> address is nullptr, or <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_rowBytes'>rowBytes</a>() is
+less than <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>::<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>.
-<a href='#Pixels'>Pixels</a> are copied only if pixel conversion is possible. If <a href='#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorType'>colorType</a> is
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> must match.
-If <a href='#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='undocumented#Color_Space'>Color Space</a> must match.
-If <a href='#Pixmap'>Pixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a> is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> must
-match. If <a href='#Pixmap'>Pixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a> is nullptr, <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='undocumented#Color_Space'>Color Space</a> must match. Returns
-false if pixel conversion is not possible.
+Pixels are copied only if <a href='undocumented#Pixel'>pixel</a> conversion is possible. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() is
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, or <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>; <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> must match.
+If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> must match.
+If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_alphaType'>alphaType</a>() is <a href='SkImageInfo_Reference#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>, <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> must
+match. If <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> <a href='#SkPixmap_colorSpace'>colorSpace</a>() is nullptr, <a href='#SkPixmap_scalePixels_dst'>dst</a> <a href='undocumented#SkColorSpace'>SkColorSpace</a> must match. Returns
+false if <a href='undocumented#Pixel'>pixel</a> conversion is not possible.
-Returns false if <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> <a href='#SkPixmap_width'>width</a>() or <a href='#SkPixmap_height'>height</a>() is zero or negative.
+Returns false if <a href='SkBitmap_Reference#SkBitmap'>SkBitmap</a> <a href='#SkPixmap_width'>width()</a> or <a href='#SkPixmap_height'>height()</a> is zero or negative.
-Scales the image, with <a href='#SkPixmap_scalePixels_filterQuality'>filterQuality</a>, to match <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_width'>width</a>() and <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_height'>height</a>().
+Scales the <a href='SkImage_Reference#Image'>image</a>, with <a href='#SkPixmap_scalePixels_filterQuality'>filterQuality</a>, to match <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_width'>width()</a> and <a href='#SkPixmap_scalePixels_dst'>dst</a>.<a href='#SkPixmap_height'>height()</a>.
<a href='#SkPixmap_scalePixels_filterQuality'>filterQuality</a> <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a> is fastest, typically implemented with
-<a href='undocumented#Nearest_Neighbor'>Filter Quality Nearest Neighbor</a>. <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> is typically implemented with
-<a href='undocumented#Bilerp'>Filter Quality Bilerp</a>. <a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a> is typically implemented with
-<a href='undocumented#Bilerp'>Filter Quality Bilerp</a>, and <a href='undocumented#MipMap'>Filter Quality MipMap</a> when size is reduced.
-<a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a> is slowest, typically implemented with <a href='undocumented#BiCubic'>Filter Quality BiCubic</a>.
+<a href='undocumented#Nearest_Neighbor'>nearest neighbor filter</a>. <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a> is typically implemented with
+<a href='undocumented#Bilerp'>bilerp filter</a>. <a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a> is typically implemented with
+<a href='undocumented#Bilerp'>bilerp filter</a>, and <a href='undocumented#MipMap'>mip-map filter</a> when <a href='undocumented#Size'>size</a> is reduced.
+<a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a> is slowest, typically implemented with <a href='undocumented#BiCubic'>bicubic filter</a>.
### Parameters
<table> <tr> <td><a name='SkPixmap_scalePixels_dst'><code><strong>dst</strong></code></a></td>
- <td><a href='SkImageInfo_Reference#Image_Info'>Image Info</a> and pixel address to write to</td>
+ <td><a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> and <a href='undocumented#Pixel'>pixel</a> address to write to</td>
</tr>
<tr> <td><a name='SkPixmap_scalePixels_filterQuality'><code><strong>filterQuality</strong></code></a></td>
- <td>one of: <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a>,
-<a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a>, <a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a></td>
+ <td>one of: <a href='undocumented#kNone_SkFilterQuality'>kNone_SkFilterQuality</a>, <a href='undocumented#kLow_SkFilterQuality'>kLow_SkFilterQuality</a>,</td>
</tr>
</table>
+<a href='undocumented#kMedium_SkFilterQuality'>kMedium_SkFilterQuality</a>, <a href='undocumented#kHigh_SkFilterQuality'>kHigh_SkFilterQuality</a>
+
### Return Value
true if pixels are scaled to fit <a href='#SkPixmap_scalePixels_dst'>dst</a>
@@ -1885,17 +1886,17 @@
bool <a href='#SkPixmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> color, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& subset) const
</pre>
-Writes <a href='#SkPixmap_erase_color'>color</a> to pixels bounded by <a href='#SkPixmap_erase_subset'>subset</a>; returns true on success.
-Returns false if <a href='#SkPixmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or if <a href='#SkPixmap_erase_subset'>subset</a> does
-not intersect <a href='#SkPixmap_bounds'>bounds</a>().
+Writes <a href='#SkPixmap_erase()_color'>color</a> to pixels bounded by <a href='#SkPixmap_erase()_subset'>subset</a>; returns true on success.
+Returns false if <a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or if <a href='#SkPixmap_erase()_subset'>subset</a> does
+not intersect <a href='#SkPixmap_bounds'>bounds()</a>.
### Parameters
<table> <tr> <td><a name='SkPixmap_erase_color'><code><strong>color</strong></code></a></td>
- <td><a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor_Reference#Color'>Color</a> to write</td>
+ <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='#SkPixmap_erase()_color'>color</a> to write</td>
</tr>
<tr> <td><a name='SkPixmap_erase_subset'><code><strong>subset</strong></code></a></td>
- <td>bounding integer <a href='SkRect_Reference#Rect'>Rect</a> of written pixels</td>
+ <td>bounding integer <a href='SkRect_Reference#SkRect'>SkRect</a> of written pixels</td>
</tr>
</table>
@@ -1919,14 +1920,14 @@
bool <a href='#SkPixmap_erase'>erase</a>(<a href='SkColor_Reference#SkColor'>SkColor</a> color) const
</pre>
-Writes <a href='#SkPixmap_erase_2_color'>color</a> to pixels inside <a href='#SkPixmap_bounds'>bounds</a>(); returns true on success.
-Returns false if <a href='#SkPixmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or if <a href='#SkPixmap_bounds'>bounds</a>()
+Writes <a href='#SkPixmap_erase_2_color'>color</a> to pixels inside <a href='#SkPixmap_bounds'>bounds()</a>; returns true on success.
+Returns false if <a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, or if <a href='#SkPixmap_bounds'>bounds()</a>
is empty.
### Parameters
<table> <tr> <td><a name='SkPixmap_erase_2_color'><code><strong>color</strong></code></a></td>
- <td><a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor_Reference#Color'>Color</a> to write</td>
+ <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='#SkPixmap_erase_2_color'>color</a> to write</td>
</tr>
</table>
@@ -1951,17 +1952,17 @@
</pre>
Writes <a href='#SkPixmap_erase_3_color'>color</a> to pixels bounded by <a href='#SkPixmap_erase_3_subset'>subset</a>; returns true on success.
-if <a href='#SkPixmap_erase_3_subset'>subset</a> is nullptr, writes colors pixels inside <a href='#SkPixmap_bounds'>bounds</a>(). Returns false if
-<a href='#SkPixmap_colorType'>colorType</a> is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, if <a href='#SkPixmap_erase_3_subset'>subset</a> is not nullptr and does
-not intersect <a href='#SkPixmap_bounds'>bounds</a>(), or if <a href='#SkPixmap_erase_3_subset'>subset</a> is nullptr and <a href='#SkPixmap_bounds'>bounds</a>() is empty.
+if <a href='#SkPixmap_erase_3_subset'>subset</a> is nullptr, writes colors pixels inside <a href='#SkPixmap_bounds'>bounds()</a>. Returns false if
+<a href='#SkPixmap_colorType'>colorType</a>() is <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, if <a href='#SkPixmap_erase_3_subset'>subset</a> is not nullptr and does
+not intersect <a href='#SkPixmap_bounds'>bounds()</a>, or if <a href='#SkPixmap_erase_3_subset'>subset</a> is nullptr and <a href='#SkPixmap_bounds'>bounds()</a> is empty.
### Parameters
<table> <tr> <td><a name='SkPixmap_erase_3_color'><code><strong>color</strong></code></a></td>
- <td><a href='undocumented#Unpremultiply'>Unpremultiplied</a> <a href='SkColor_Reference#Color'>Color</a> to write</td>
+ <td><a href='undocumented#Unpremultiply'>unpremultiplied</a> <a href='#SkPixmap_erase_3_color'>color</a> to write</td>
</tr>
<tr> <td><a name='SkPixmap_erase_3_subset'><code><strong>subset</strong></code></a></td>
- <td>bounding integer <a href='SkRect_Reference#Rect'>Rect</a> of pixels to write; may be nullptr</td>
+ <td>bounding integer <a href='SkRect_Reference#SkRect'>SkRect</a> of pixels to write; may be nullptr</td>
</tr>
</table>
diff --git a/site/user/api/SkPoint_Reference.md b/site/user/api/SkPoint_Reference.md
index 11f5d06..d0a461d 100644
--- a/site/user/api/SkPoint_Reference.md
+++ b/site/user/api/SkPoint_Reference.md
@@ -83,21 +83,21 @@
static constexpr <a href='#SkPoint'>SkPoint</a> <a href='#SkPoint_Make'>Make</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
-Sets <a href='#SkPoint_fX'>fX</a> to x, <a href='#SkPoint_fY'>fY</a> to y. Used both to set <a href='#Point'>Point</a> and <a href='#Vector'>Vector</a>.
+Sets <a href='#SkPoint_fX'>fX</a> to <a href='#SkPoint_Make_x'>x</a>, <a href='#SkPoint_fY'>fY</a> to <a href='#SkPoint_Make_y'>y</a>. Used both to set <a href='SkPoint_Reference#SkPoint'>SkPoint</a> and <a href='SkPoint_Reference#Vector'>vector</a>.
### Parameters
<table> <tr> <td><a name='SkPoint_Make_x'><code><strong>x</strong></code></a></td>
- <td><a href='undocumented#SkScalar'>SkScalar</a> x-axis value of constructed <a href='#Point'>Point</a> or <a href='#Vector'>Vector</a></td>
+ <td><a href='undocumented#SkScalar'>SkScalar</a> x-axis value of constructed <a href='SkPoint_Reference#SkPoint'>SkPoint</a> or <a href='SkPoint_Reference#Vector'>vector</a></td>
</tr>
<tr> <td><a name='SkPoint_Make_y'><code><strong>y</strong></code></a></td>
- <td><a href='undocumented#SkScalar'>SkScalar</a> y-axis value of constructed <a href='#Point'>Point</a> or <a href='#Vector'>Vector</a></td>
+ <td><a href='undocumented#SkScalar'>SkScalar</a> y-axis value of constructed <a href='SkPoint_Reference#SkPoint'>SkPoint</a> or <a href='SkPoint_Reference#Vector'>vector</a></td>
</tr>
</table>
### Return Value
-<a href='#Point'>Point</a> (x, y)
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> (<a href='#SkPoint_Make_x'>x</a>, <a href='#SkPoint_Make_y'>y</a>)
### Example
@@ -125,7 +125,7 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_x'>x</a>() const
</pre>
-Returns x-axis value of <a href='#Point'>Point</a> or <a href='#Vector'>Vector</a>.
+Returns x-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> or <a href='SkPoint_Reference#Vector'>vector</a>.
### Return Value
@@ -155,7 +155,7 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_y'>y</a>() const
</pre>
-Returns y-axis value of <a href='#Point'>Point</a> or <a href='#Vector'>Vector</a>.
+Returns y-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> or <a href='SkPoint_Reference#Vector'>vector</a>.
### Return Value
@@ -218,7 +218,7 @@
void <a href='#SkPoint_set'>set</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
-Sets <a href='#SkPoint_fX'>fX</a> to x and <a href='#SkPoint_fY'>fY</a> to y.
+Sets <a href='#SkPoint_fX'>fX</a> to <a href='#SkPoint_set()_x'>x</a> and <a href='#SkPoint_fY'>fY</a> to <a href='#SkPoint_set()_y'>y</a>.
### Parameters
@@ -254,11 +254,11 @@
void <a href='#SkPoint_iset'>iset</a>(int32_t x, int32_t y)
</pre>
-Sets <a href='#SkPoint_fX'>fX</a> to x and <a href='#SkPoint_fY'>fY</a> to y, promoting integers to <a href='undocumented#SkScalar'>SkScalar</a> values.
+Sets <a href='#SkPoint_fX'>fX</a> to <a href='#SkPoint_iset()_x'>x</a> and <a href='#SkPoint_fY'>fY</a> to <a href='#SkPoint_iset()_y'>y</a>, promoting integers to <a href='undocumented#SkScalar'>SkScalar</a> values.
Assigning a large integer value directly to <a href='#SkPoint_fX'>fX</a> or <a href='#SkPoint_fY'>fY</a> may cause a compiler
error, triggered by narrowing conversion of int to <a href='undocumented#SkScalar'>SkScalar</a>. This safely
-casts x and y to avoid the error.
+casts <a href='#SkPoint_iset()_x'>x</a> and <a href='#SkPoint_iset()_y'>y</a> to avoid the error.
### Parameters
@@ -286,16 +286,16 @@
void <a href='#SkPoint_iset'>iset</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& p)
</pre>
-Sets <a href='#SkPoint_fX'>fX</a> to <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkPoint_fX'>fX</a> and <a href='#SkPoint_fY'>fY</a> to <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkPoint_fY'>fY</a>, promoting integers to <a href='undocumented#SkScalar'>SkScalar</a> values.
+Sets <a href='#SkPoint_fX'>fX</a> to <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkIPoint_fX'>fX</a> and <a href='#SkPoint_fY'>fY</a> to <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkIPoint_fY'>fY</a>, promoting integers to <a href='undocumented#SkScalar'>SkScalar</a> values.
-Assigning an <a href='SkIPoint_Reference#IPoint'>IPoint</a> containing a large integer value directly to <a href='#SkPoint_fX'>fX</a> or <a href='#SkPoint_fY'>fY</a> may
+Assigning an <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> containing a large integer value directly to <a href='#SkPoint_fX'>fX</a> or <a href='#SkPoint_fY'>fY</a> may
cause a compiler error, triggered by narrowing conversion of int to <a href='undocumented#SkScalar'>SkScalar</a>.
-This safely casts <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkPoint_fX'>fX</a> and <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkPoint_fY'>fY</a> to avoid the error.
+This safely casts <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkIPoint_fX'>fX</a> and <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkIPoint_fY'>fY</a> to avoid the error.
### Parameters
<table> <tr> <td><a name='SkPoint_iset_2_p'><code><strong>p</strong></code></a></td>
- <td><a href='SkIPoint_Reference#IPoint'>IPoint</a> members promoted to <a href='undocumented#SkScalar'>SkScalar</a></td>
+ <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> members promoted to <a href='undocumented#SkScalar'>SkScalar</a></td>
</tr>
</table>
@@ -362,18 +362,18 @@
static void <a href='#SkPoint_Offset'>Offset</a>(<a href='#SkPoint'>SkPoint</a> points[], int count, const <a href='#SkVector'>SkVector</a>& offset)
</pre>
-Adds offset to each <a href='#Point'>Point</a> in <a href='#SkPoint_Offset_points'>points</a> array with <a href='#SkPoint_Offset_count'>count</a> entries.
+Adds <a href='#SkPoint_Offset_offset'>offset</a> to each <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='#SkPoint_Offset_points'>points</a> array with <a href='#SkPoint_Offset_count'>count</a> entries.
### Parameters
<table> <tr> <td><a name='SkPoint_Offset_points'><code><strong>points</strong></code></a></td>
- <td><a href='#Point'>Point</a> array</td>
+ <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a></td>
</tr>
<tr> <td><a name='SkPoint_Offset_count'><code><strong>count</strong></code></a></td>
<td>entries in array</td>
</tr>
<tr> <td><a name='SkPoint_Offset_offset'><code><strong>offset</strong></code></a></td>
- <td><a href='#Vector'>Vector</a> added to <a href='#SkPoint_Offset_points'>points</a></td>
+ <td><a href='SkPoint_Reference#Vector'>vector</a> added to <a href='#SkPoint_Offset_points'>points</a></td>
</tr>
</table>
@@ -393,12 +393,12 @@
static void <a href='#SkPoint_Offset'>Offset</a>(<a href='#SkPoint'>SkPoint</a> points[], int count, <a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Adds offset (<a href='#SkPoint_Offset_2_dx'>dx</a>, <a href='#SkPoint_Offset_2_dy'>dy</a>) to each <a href='#Point'>Point</a> in <a href='#SkPoint_Offset_2_points'>points</a> array of length <a href='#SkPoint_Offset_2_count'>count</a>.
+Adds offset (<a href='#SkPoint_Offset_2_dx'>dx</a>, <a href='#SkPoint_Offset_2_dy'>dy</a>) to each <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='#SkPoint_Offset_2_points'>points</a> array of length <a href='#SkPoint_Offset_2_count'>count</a>.
### Parameters
<table> <tr> <td><a name='SkPoint_Offset_2_points'><code><strong>points</strong></code></a></td>
- <td><a href='#Point'>Point</a> array</td>
+ <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a></td>
</tr>
<tr> <td><a name='SkPoint_Offset_2_count'><code><strong>count</strong></code></a></td>
<td>entries in array</td>
@@ -427,7 +427,7 @@
void <a href='#SkPoint_offset'>offset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Adds offset (<a href='#SkPoint_offset_dx'>dx</a>, <a href='#SkPoint_offset_dy'>dy</a>) to <a href='#Point'>Point</a>.
+Adds offset (<a href='#SkPoint_offset()_dx'>dx</a>, <a href='#SkPoint_offset()_dy'>dy</a>) to <a href='SkPoint_Reference#SkPoint'>SkPoint</a>.
### Parameters
@@ -455,11 +455,9 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_length'>length</a>() const
</pre>
-Returns the <a href='undocumented#Euclidean_Distance'>Euclidean Distance</a> from origin, computed as:
+Returns the <a href='undocumented#Euclidean_Distance'>Euclidean distance</a> from origin, computed as:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-sqrt(fX * fX + fY * fY)
-</pre>
+sqrt(<a href='#SkPoint_fX'>fX</a> * <a href='#SkPoint_fX'>fX</a> + <a href='#SkPoint_fY'>fY</a> * <a href='#SkPoint_fY'>fY</a>)
.
@@ -483,11 +481,9 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_distanceToOrigin'>distanceToOrigin</a>() const
</pre>
-Returns the <a href='undocumented#Euclidean_Distance'>Euclidean Distance</a> from origin, computed as:
+Returns the <a href='undocumented#Euclidean_Distance'>Euclidean distance</a> from origin, computed as:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-sqrt(fX * fX + fY * fY)
-</pre>
+sqrt(<a href='#SkPoint_fX'>fX</a> * <a href='#SkPoint_fX'>fX</a> + <a href='#SkPoint_fY'>fY</a> * <a href='#SkPoint_fY'>fY</a>)
.
@@ -511,8 +507,8 @@
bool <a href='#SkPoint_normalize'>normalize</a>()
</pre>
-Scales (<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_fY'>fY</a>) so that <a href='#SkPoint_length'>length</a>() returns one, while preserving ratio of <a href='#SkPoint_fX'>fX</a> to <a href='#SkPoint_fY'>fY</a>,
-if possible. If prior length is nearly zero, sets <a href='#Vector'>Vector</a> to (0, 0) and returns
+Scales (<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_fY'>fY</a>) so that <a href='#SkPoint_length'>length()</a> returns one, while preserving ratio of <a href='#SkPoint_fX'>fX</a> to <a href='#SkPoint_fY'>fY</a>,
+if possible. If prior length is nearly zero, sets <a href='SkPoint_Reference#Vector'>vector</a> to (0, 0) and returns
false; otherwise returns true.
### Return Value
@@ -535,9 +531,9 @@
bool <a href='#SkPoint_setNormalize'>setNormalize</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
-Sets <a href='#Vector'>Vector</a> to (x, y) scaled so <a href='#SkPoint_length'>length</a>() returns one, and so that
-(<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_fY'>fY</a>) is proportional to (x, y). If (x, y) length is nearly zero,
-sets <a href='#Vector'>Vector</a> to (0, 0) and returns false; otherwise returns true.
+Sets <a href='SkPoint_Reference#Vector'>vector</a> to (<a href='#SkPoint_setNormalize_x'>x</a>, <a href='#SkPoint_setNormalize_y'>y</a>) scaled so <a href='#SkPoint_length'>length()</a> returns one, and so that
+(<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_fY'>fY</a>) is proportional to (<a href='#SkPoint_setNormalize_x'>x</a>, <a href='#SkPoint_setNormalize_y'>y</a>). If (<a href='#SkPoint_setNormalize_x'>x</a>, <a href='#SkPoint_setNormalize_y'>y</a>) length is nearly zero,
+sets <a href='SkPoint_Reference#Vector'>vector</a> to (0, 0) and returns false; otherwise returns true.
### Parameters
@@ -551,7 +547,7 @@
### Return Value
-true if (x, y) length is not zero or nearly zero
+true if (<a href='#SkPoint_setNormalize_x'>x</a>, <a href='#SkPoint_setNormalize_y'>y</a>) length is not zero or nearly zero
### Example
@@ -569,8 +565,8 @@
bool <a href='#SkPoint_setLength'>setLength</a>(<a href='undocumented#SkScalar'>SkScalar</a> length)
</pre>
-Scales <a href='#Vector'>Vector</a> so that <a href='#SkPoint_distanceToOrigin'>distanceToOrigin</a> returns length, if possible. If former
-length is nearly zero, sets <a href='#Vector'>Vector</a> to (0, 0) and return false; otherwise returns
+Scales <a href='SkPoint_Reference#Vector'>vector</a> so that <a href='#SkPoint_distanceToOrigin'>distanceToOrigin</a>() returns <a href='#SkPoint_setLength_length'>length</a>, if possible. If former
+<a href='#SkPoint_setLength_length'>length</a> is nearly zero, sets <a href='SkPoint_Reference#Vector'>vector</a> to (0, 0) and return false; otherwise returns
true.
### Parameters
@@ -582,7 +578,7 @@
### Return Value
-true if former length is not zero or nearly zero
+true if former <a href='#SkPoint_setLength_length'>length</a> is not zero or nearly zero
### Example
@@ -600,8 +596,8 @@
bool <a href='#SkPoint_setLength'>setLength</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='undocumented#SkScalar'>SkScalar</a> length)
</pre>
-Sets <a href='#Vector'>Vector</a> to (x, y) scaled to length, if possible. If former
-length is nearly zero, sets <a href='#Vector'>Vector</a> to (0, 0) and return false; otherwise returns
+Sets <a href='SkPoint_Reference#Vector'>vector</a> to (<a href='#SkPoint_setLength_2_x'>x</a>, <a href='#SkPoint_setLength_2_y'>y</a>) scaled to <a href='#SkPoint_setLength_2_length'>length</a>, if possible. If former
+<a href='#SkPoint_setLength_2_length'>length</a> is nearly zero, sets <a href='SkPoint_Reference#Vector'>vector</a> to (0, 0) and return false; otherwise returns
true.
### Parameters
@@ -619,7 +615,7 @@
### Return Value
-true if (x, y) length is not zero or nearly zero
+true if (<a href='#SkPoint_setLength_2_x'>x</a>, <a href='#SkPoint_setLength_2_y'>y</a>) <a href='#SkPoint_setLength_2_length'>length</a> is not zero or nearly zero
### Example
@@ -637,15 +633,15 @@
void <a href='#SkPoint_scale'>scale</a>(<a href='undocumented#SkScalar'>SkScalar</a> scale, <a href='#SkPoint'>SkPoint</a>* dst) const
</pre>
-Sets <a href='#SkPoint_scale_dst'>dst</a> to <a href='#Point'>Point</a> times scale. <a href='#SkPoint_scale_dst'>dst</a> may be <a href='#Point'>Point</a> to modify <a href='#Point'>Point</a> in place.
+Sets <a href='#SkPoint_scale()_dst'>dst</a> to <a href='SkPoint_Reference#SkPoint'>SkPoint</a> times <a href='#SkPoint_scale()_scale'>scale</a>. <a href='#SkPoint_scale()_dst'>dst</a> may be <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to modify <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in place.
### Parameters
<table> <tr> <td><a name='SkPoint_scale_scale'><code><strong>scale</strong></code></a></td>
- <td>factor to multiply <a href='#Point'>Point</a> by</td>
+ <td>factor to multiply <a href='SkPoint_Reference#SkPoint'>SkPoint</a> by</td>
</tr>
<tr> <td><a name='SkPoint_scale_dst'><code><strong>dst</strong></code></a></td>
- <td>storage for scaled <a href='#Point'>Point</a></td>
+ <td>storage for scaled <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
</tr>
</table>
@@ -665,12 +661,12 @@
void <a href='#SkPoint_scale'>scale</a>(<a href='undocumented#SkScalar'>SkScalar</a> value)
</pre>
-Scales <a href='#Point'>Point</a> in place by scale.
+Scales <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in place by scale.
### Parameters
<table> <tr> <td><a name='SkPoint_scale_2_value'><code><strong>value</strong></code></a></td>
- <td>factor to multiply <a href='#Point'>Point</a> by</td>
+ <td>factor to multiply <a href='SkPoint_Reference#SkPoint'>SkPoint</a> by</td>
</tr>
</table>
@@ -719,11 +715,11 @@
<a href='#SkPoint'>SkPoint</a> operator-() const
</pre>
-Returns <a href='#Point'>Point</a> changing the signs of <a href='#SkPoint_fX'>fX</a> and <a href='#SkPoint_fY'>fY</a>.
+Returns <a href='SkPoint_Reference#SkPoint'>SkPoint</a> changing the signs of <a href='#SkPoint_fX'>fX</a> and <a href='#SkPoint_fY'>fY</a>.
### Return Value
-<a href='#Point'>Point</a> as (-<a href='#SkPoint_fX'>fX</a>, -<a href='#SkPoint_fY'>fY</a>)
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> as (-<a href='#SkPoint_fX'>fX</a>, -<a href='#SkPoint_fY'>fY</a>)
### Example
@@ -802,18 +798,18 @@
<a href='#SkPoint'>SkPoint</a> operator*(SkScalar scale) const
</pre>
-Returns <a href='#Point'>Point</a> multiplied by scale.
+Returns <a href='SkPoint_Reference#SkPoint'>SkPoint</a> multiplied by <a href='#SkPoint_operator*(SkScalar scale)_const_scale'>scale</a>.
### Parameters
<table> <tr> <td><a name='SkPoint_multiply_operator_scale'><code><strong>scale</strong></code></a></td>
- <td><a href='undocumented#Scalar'>Scalar</a> to multiply by</td>
+ <td><a href='undocumented#Scalar'>scalar</a> to multiply by</td>
</tr>
</table>
### Return Value
-<a href='#Point'>Point</a> as (<a href='#SkPoint_fX'>fX</a> * scale, <a href='#SkPoint_fY'>fY</a> * scale)
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> as (<a href='#SkPoint_fX'>fX</a> * <a href='#SkPoint_operator*(SkScalar scale)_const_scale'>scale</a>, <a href='#SkPoint_fY'>fY</a> * <a href='#SkPoint_operator*(SkScalar scale)_const_scale'>scale</a>)
### Example
@@ -893,7 +889,7 @@
bool <a href='#SkPoint_equals'>equals</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y) const
</pre>
-Returns true if <a href='#Point'>Point</a> is equivalent to <a href='#Point'>Point</a> constructed from (x, y).
+Returns true if <a href='SkPoint_Reference#SkPoint'>SkPoint</a> is equivalent to <a href='SkPoint_Reference#SkPoint'>SkPoint</a> constructed from (<a href='#SkPoint_equals()_x'>x</a>, <a href='#SkPoint_equals()_y'>y</a>).
### Parameters
@@ -907,7 +903,7 @@
### Return Value
-true if <a href='#Point'>Point</a> equals (x, y)
+true if <a href='SkPoint_Reference#SkPoint'>SkPoint</a> equals (<a href='#SkPoint_equals()_x'>x</a>, <a href='#SkPoint_equals()_y'>y</a>)
### Example
@@ -936,21 +932,21 @@
bool <a href='#SkPoint_equal_operator'>operator==(const SkPoint& a, const SkPoint& b)</a>
</pre>
-Returns true if <a href='#SkPoint_equal_operator_a'>a</a> is equivalent to <a href='#SkPoint_equal_operator_b'>b</a>.
+Returns true if <a href='#SkPoint_operator==(const SkPoint& a, const SkPoint& b)_a'>a</a> is equivalent to <a href='#SkPoint_operator==(const SkPoint& a, const SkPoint& b)_b'>b</a>.
### Parameters
<table> <tr> <td><a name='SkPoint_equal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='#Point'>Point</a> to compare</td>
+ <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to compare</td>
</tr>
<tr> <td><a name='SkPoint_equal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='#Point'>Point</a> to compare</td>
+ <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='#SkPoint_equal_operator_a'>a</a>.<a href='#SkPoint_fX'>fX</a> == <a href='#SkPoint_equal_operator_b'>b</a>.<a href='#SkPoint_fX'>fX</a> and <a href='#SkPoint_equal_operator_a'>a</a>.<a href='#SkPoint_fY'>fY</a> == <a href='#SkPoint_equal_operator_b'>b</a>.<a href='#SkPoint_fY'>fY</a>
+true if <a href='#SkPoint_operator==(const SkPoint& a, const SkPoint& b)_a'>a</a>.<a href='#SkPoint_fX'>fX</a> == <a href='#SkPoint_operator==(const SkPoint& a, const SkPoint& b)_b'>b</a>.<a href='#SkPoint_fX'>fX</a> and <a href='#SkPoint_operator==(const SkPoint& a, const SkPoint& b)_a'>a</a>.<a href='#SkPoint_fY'>fY</a> == <a href='#SkPoint_operator==(const SkPoint& a, const SkPoint& b)_b'>b</a>.<a href='#SkPoint_fY'>fY</a>
### Example
@@ -979,21 +975,21 @@
bool <a href='#SkPoint_notequal_operator'>operator!=(const SkPoint& a, const SkPoint& b)</a>
</pre>
-Returns true if <a href='#SkPoint_notequal_operator_a'>a</a> is not equivalent to <a href='#SkPoint_notequal_operator_b'>b</a>.
+Returns true if <a href='#SkPoint_operator!=(const SkPoint& a, const SkPoint& b)_a'>a</a> is not equivalent to <a href='#SkPoint_operator!=(const SkPoint& a, const SkPoint& b)_b'>b</a>.
### Parameters
<table> <tr> <td><a name='SkPoint_notequal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='#Point'>Point</a> to compare</td>
+ <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to compare</td>
</tr>
<tr> <td><a name='SkPoint_notequal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='#Point'>Point</a> to compare</td>
+ <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='#SkPoint_notequal_operator_a'>a</a>.<a href='#SkPoint_fX'>fX</a> != <a href='#SkPoint_notequal_operator_b'>b</a>.<a href='#SkPoint_fX'>fX</a> or <a href='#SkPoint_notequal_operator_a'>a</a>.<a href='#SkPoint_fY'>fY</a> != <a href='#SkPoint_notequal_operator_b'>b</a>.<a href='#SkPoint_fY'>fY</a>
+true if <a href='#SkPoint_operator!=(const SkPoint& a, const SkPoint& b)_a'>a</a>.<a href='#SkPoint_fX'>fX</a> != <a href='#SkPoint_operator!=(const SkPoint& a, const SkPoint& b)_b'>b</a>.<a href='#SkPoint_fX'>fX</a> or <a href='#SkPoint_operator!=(const SkPoint& a, const SkPoint& b)_a'>a</a>.<a href='#SkPoint_fY'>fY</a> != <a href='#SkPoint_operator!=(const SkPoint& a, const SkPoint& b)_b'>b</a>.<a href='#SkPoint_fY'>fY</a>
### Example
@@ -1093,11 +1089,9 @@
static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Length'>Length</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
-Returns the <a href='undocumented#Euclidean_Distance'>Euclidean Distance</a> from origin, computed as:
+Returns the <a href='undocumented#Euclidean_Distance'>Euclidean distance</a> from origin, computed as:
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-sqrt(x * x + y * y)
-</pre>
+sqrt(<a href='#SkPoint_Length_x'>x</a> * <a href='#SkPoint_Length_x'>x</a> + <a href='#SkPoint_Length_y'>y</a> * <a href='#SkPoint_Length_y'>y</a>)
.
@@ -1131,13 +1125,13 @@
static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Normalize'>Normalize</a>(<a href='#SkVector'>SkVector</a>* vec)
</pre>
-Scales (<a href='#SkPoint_Normalize_vec'>vec</a>-><a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_Normalize_vec'>vec</a>-><a href='#SkPoint_fY'>fY</a>) so that <a href='#SkPoint_length'>length</a>() returns one, while preserving ratio of <a href='#SkPoint_Normalize_vec'>vec</a>-><a href='#SkPoint_fX'>fX</a> to <a href='#SkPoint_Normalize_vec'>vec</a>-><a href='#SkPoint_fY'>fY</a>,
-if possible. If original length is nearly zero, sets <a href='#SkPoint_Normalize_vec'>vec</a> to (0, 0) and returns zero;
-otherwise, returns length of <a href='#SkPoint_Normalize_vec'>vec</a> before <a href='#SkPoint_Normalize_vec'>vec</a> is scaled.
+Scales (<a href='#SkPoint_Normalize_vec'>vec</a>-><a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_Normalize_vec'>vec</a>-><a href='#SkPoint_fY'>fY</a>) so that <a href='#SkPoint_length'>length()</a> returns one, while preserving ratio of <a href='#SkPoint_Normalize_vec'>vec</a>-><a href='#SkPoint_fX'>fX</a>
+to <a href='#SkPoint_Normalize_vec'>vec</a>-><a href='#SkPoint_fY'>fY</a>, if possible. If original length is nearly zero, sets <a href='#SkPoint_Normalize_vec'>vec</a> to (0, 0) and returns
+zero; otherwise, returns length of <a href='#SkPoint_Normalize_vec'>vec</a> before <a href='#SkPoint_Normalize_vec'>vec</a> is scaled.
-Returned prior length may be <a href='undocumented#SK_ScalarInfinity'>SK ScalarInfinity</a> if it can not be represented by <a href='undocumented#SkScalar'>SkScalar</a>.
+Returned prior length may be <a href='undocumented#SK_ScalarInfinity'>SK_ScalarInfinity</a> if it can not be represented by <a href='undocumented#SkScalar'>SkScalar</a>.
-Note that <a href='#SkPoint_normalize'>normalize</a>() is faster if prior length is not required.
+Note that <a href='#SkPoint_normalize'>normalize()</a> is faster if prior length is not required.
### Parameters
@@ -1166,15 +1160,15 @@
static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Distance'>Distance</a>(const <a href='#SkPoint'>SkPoint</a>& a, const <a href='#SkPoint'>SkPoint</a>& b)
</pre>
-Returns the <a href='undocumented#Euclidean_Distance'>Euclidean Distance</a> between <a href='#SkPoint_Distance_a'>a</a> and <a href='#SkPoint_Distance_b'>b</a>.
+Returns the <a href='undocumented#Euclidean_Distance'>Euclidean distance</a> between <a href='#SkPoint_Distance_a'>a</a> and <a href='#SkPoint_Distance_b'>b</a>.
### Parameters
<table> <tr> <td><a name='SkPoint_Distance_a'><code><strong>a</strong></code></a></td>
- <td>line end point</td>
+ <td><a href='undocumented#Line'>line</a> end <a href='SkPoint_Reference#Point'>point</a></td>
</tr>
<tr> <td><a name='SkPoint_Distance_b'><code><strong>b</strong></code></a></td>
- <td>line end point</td>
+ <td><a href='undocumented#Line'>line</a> end <a href='SkPoint_Reference#Point'>point</a></td>
</tr>
</table>
@@ -1198,7 +1192,7 @@
static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_DotProduct'>DotProduct</a>(const <a href='#SkVector'>SkVector</a>& a, const <a href='#SkVector'>SkVector</a>& b)
</pre>
-Returns the dot product of <a href='#Vector'>Vector</a> <a href='#SkPoint_DotProduct_a'>a</a> and <a href='#Vector'>Vector</a> <a href='#SkPoint_DotProduct_b'>b</a>.
+Returns the dot product of <a href='SkPoint_Reference#Vector'>vector</a> <a href='#SkPoint_DotProduct_a'>a</a> and <a href='SkPoint_Reference#Vector'>vector</a> <a href='#SkPoint_DotProduct_b'>b</a>.
### Parameters
@@ -1230,10 +1224,10 @@
static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_CrossProduct'>CrossProduct</a>(const <a href='#SkVector'>SkVector</a>& a, const <a href='#SkVector'>SkVector</a>& b)
</pre>
-Returns the cross product of <a href='#Vector'>Vector</a> <a href='#SkPoint_CrossProduct_a'>a</a> and <a href='#Vector'>Vector</a> <a href='#SkPoint_CrossProduct_b'>b</a>.
+Returns the cross product of <a href='SkPoint_Reference#Vector'>vector</a> <a href='#SkPoint_CrossProduct_a'>a</a> and <a href='SkPoint_Reference#Vector'>vector</a> <a href='#SkPoint_CrossProduct_b'>b</a>.
-<a href='#SkPoint_CrossProduct_a'>a</a> and <a href='#SkPoint_CrossProduct_b'>b</a> form three-dimensional vectors with z-axis value equal to zero. The
-cross product is <a href='#SkPoint_CrossProduct_a'>a</a> three-dimensional vector with x-axis and y-axis values equal
+<a href='#SkPoint_CrossProduct_a'>a</a> and <a href='#SkPoint_CrossProduct_b'>b</a> form three-dimensional <a href='SkPoint_Reference#Vector'>vectors</a> with z-axis value equal to zero. The
+cross product is <a href='#SkPoint_CrossProduct_a'>a</a> three-dimensional <a href='SkPoint_Reference#Vector'>vector</a> with x-axis and y-axis values equal
to zero. The cross product z-axis component is returned.
### Parameters
@@ -1248,7 +1242,7 @@
### Return Value
-area spanned by <a href='#Vector'>Vectors</a> signed by angle direction
+area spanned by <a href='SkPoint_Reference#Vector'>vectors</a> signed by angle direction
### Example
@@ -1266,10 +1260,10 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_cross'>cross</a>(const <a href='#SkVector'>SkVector</a>& vec) const
</pre>
-Returns the cross product of <a href='#Vector'>Vector</a> and <a href='#SkPoint_cross_vec'>vec</a>.
+Returns the cross product of <a href='SkPoint_Reference#Vector'>vector</a> and <a href='#SkPoint_cross()_vec'>vec</a>.
-<a href='#Vector'>Vector</a> and <a href='#SkPoint_cross_vec'>vec</a> form three-dimensional vectors with z-axis value equal to zero.
-The cross product is a three-dimensional vector with x-axis and y-axis values
+<a href='SkPoint_Reference#Vector'>Vector</a> and <a href='#SkPoint_cross()_vec'>vec</a> form three-dimensional <a href='SkPoint_Reference#Vector'>vectors</a> with z-axis value equal to zero.
+The cross product is a three-dimensional <a href='SkPoint_Reference#Vector'>vector</a> with x-axis and y-axis values
equal to zero. The cross product z-axis component is returned.
### Parameters
@@ -1281,7 +1275,7 @@
### Return Value
-area spanned by <a href='#Vector'>Vectors</a> signed by angle direction
+area spanned by <a href='SkPoint_Reference#Vector'>vectors</a> signed by angle direction
### Example
@@ -1299,7 +1293,7 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_dot'>dot</a>(const <a href='#SkVector'>SkVector</a>& vec) const
</pre>
-Returns the dot product of <a href='#Vector'>Vector</a> and <a href='#Vector'>Vector</a> <a href='#SkPoint_dot_vec'>vec</a>.
+Returns the dot product of <a href='SkPoint_Reference#Vector'>vector</a> and <a href='SkPoint_Reference#Vector'>vector</a> <a href='#SkPoint_dot()_vec'>vec</a>.
### Parameters
diff --git a/site/user/api/SkRRect_Reference.md b/site/user/api/SkRRect_Reference.md
index 2977611..196d56f 100644
--- a/site/user/api/SkRRect_Reference.md
+++ b/site/user/api/SkRRect_Reference.md
@@ -99,11 +99,11 @@
</pre>
Initializes bounds at (0, 0), the origin, with zero width and height.
-Initializes corner radii to (0, 0), and sets type of <a href='#SkRRect_kEmpty_Type'>kEmpty Type</a>.
+Initializes corner radii to (0, 0), and sets type of <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
### Return Value
-empty <a href='#RRect'>Round Rect</a>
+empty <a href='SkRRect_Reference#SkRRect'>SkRRect</a>
### Example
@@ -121,7 +121,7 @@
<a href='#SkRRect'>SkRRect</a>(const <a href='#SkRRect'>SkRRect</a>& rrect)
</pre>
-Initializes to copy of <a href='#SkRRect_copy_const_SkRRect_rrect'>rrect</a> bounds and corner radii.
+Initializes to copy of <a href='#SkRRect_SkRRect(const SkRRect& rrect)_rrect'>rrect</a> bounds and corner radii.
### Parameters
@@ -132,7 +132,7 @@
### Return Value
-copy of <a href='#SkRRect_copy_const_SkRRect_rrect'>rrect</a>
+copy of <a href='#SkRRect_SkRRect(const SkRRect& rrect)_rrect'>rrect</a>
### Example
@@ -150,7 +150,7 @@
<a href='#SkRRect'>SkRRect</a>& <a href='#SkRRect_copy_operator'>operator=(const SkRRect& rrect)</a>
</pre>
-Copies <a href='#SkRRect_copy_operator_rrect'>rrect</a> bounds and corner radii.
+Copies <a href='#SkRRect_operator=(const SkRRect& rrect)_rrect'>rrect</a> bounds and corner radii.
### Parameters
@@ -161,7 +161,7 @@
### Return Value
-copy of <a href='#SkRRect_copy_operator_rrect'>rrect</a>
+copy of <a href='#SkRRect_operator=(const SkRRect& rrect)_rrect'>rrect</a>
### Example
@@ -326,13 +326,6 @@
bool <a href='#SkRRect_isEmpty'>isEmpty</a>() const
</pre>
-Returns true if <a href='#SkRRect_rect'>rect</a>().fLeft is equal to <a href='#SkRRect_rect'>rect</a>().fRight, or if <a href='#SkRRect_rect'>rect</a>().fTop is equal
-to <a href='#SkRRect_rect'>rect</a>().fBottom.
-
-### Return Value
-
-true if <a href='#SkRRect_width'>width</a>() or <a href='#SkRRect_height'>height</a>() are zero
-
### Example
<div><fiddle-embed name="099d79ecfbdfb0a19c10deb7201859c3"></fiddle-embed></div>
@@ -349,13 +342,6 @@
bool <a href='#SkRRect_isRect'>isRect</a>() const
</pre>
-Returns true if not empty, and if either x-axis or y-axis radius at each corner
-is zero.
-
-### Return Value
-
-true if not empty, and one radius at each corner is zero
-
### Example
<div><fiddle-embed name="bc931c9a6eb8ffe7ea8d3fb47e07a475"></fiddle-embed></div>
@@ -372,14 +358,6 @@
bool <a href='#SkRRect_isOval'>isOval</a>() const
</pre>
-Returns true if not empty, if all x-axis radii are equal, if all y-axis radii
-are equal, x-axis radii are at least half the width, and y-axis radii are at
-least half the height.
-
-### Return Value
-
-true if has identical geometry to <a href='undocumented#Oval'>Oval</a>
-
### Example
<div><fiddle-embed name="4dfdb28d8343958425f2c1323fe8170d"><div>The first radii are scaled down proportionately until both x-axis and y-axis fit
@@ -400,14 +378,6 @@
bool <a href='#SkRRect_isSimple'>isSimple</a>() const
</pre>
-Returns true if not empty, if all x-axis radii are equal but not zero,
-if all y-axis radii are equal but not zero; and x-axis radius is less than half
-<a href='#SkRRect_width'>width</a>(), or y-axis radius is less than half <a href='#SkRRect_height'>height</a>().
-
-### Return Value
-
-true if not empty, <a href='SkRect_Reference#Rect'>Rect</a> or <a href='undocumented#Oval'>Oval</a>; and axes radii are equal
-
### Example
<div><fiddle-embed name="f6959ea422a7c6e98ddfad216a52c707"></fiddle-embed></div>
@@ -424,14 +394,6 @@
bool <a href='#SkRRect_isNinePatch'>isNinePatch</a>() const
</pre>
-Returns true if <a href='#SkRRect_isEmpty'>isEmpty</a>, <a href='#SkRRect_isRect'>isRect</a>, <a href='#SkRRect_isOval'>isOval</a>, and <a href='#SkRRect_isSimple'>isSimple</a> return false; and if
-left x-axis radii are equal, right x-axis radii are equal, top y-axis radii are
-equal, and bottom y-axis radii are equal.
-
-### Return Value
-
-true if not empty, <a href='SkRect_Reference#Rect'>Rect</a>, <a href='undocumented#Oval'>Oval</a> or simple; and radii are axis-aligned
-
### Example
<div><fiddle-embed name="429f6dfd4cf6287df3c3c77fa7681c99"></fiddle-embed></div>
@@ -448,16 +410,6 @@
bool <a href='#SkRRect_isComplex'>isComplex</a>() const
</pre>
-Returns true if <a href='#SkRRect_isEmpty'>isEmpty</a>, <a href='#SkRRect_isRect'>isRect</a>, <a href='#SkRRect_isOval'>isOval</a>, <a href='#SkRRect_isSimple'>isSimple</a>, and <a href='#SkRRect_isNinePatch'>isNinePatch</a> return false.
-If true: width and height are greater than zero, at least one corner radii are
-both greater than zero; left x-axis radii are not equal, or right x-axis radii
-are not equal, or top y-axis radii are not equal, or bottom y-axis radii are not
-equal.
-
-### Return Value
-
-true if not empty, <a href='SkRect_Reference#Rect'>Rect</a>, <a href='undocumented#Oval'>Oval</a>, simple, or nine-patch
-
### Example
<div><fiddle-embed name="b62c183dc435d1fc091111fb2f3c3f8e"></fiddle-embed></div>
@@ -479,7 +431,7 @@
### Return Value
-bounds().fRight minus bounds().fLeft
+<a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a> minus <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a>
### Example
@@ -512,7 +464,7 @@
### Return Value
-bounds().fBottom minus bounds().fTop
+<a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a> minus <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a>
### Example
@@ -540,9 +492,9 @@
<a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkRRect_getSimpleRadii'>getSimpleRadii</a>() const
</pre>
-Returns top-left corner radii. If <a href='#SkRRect_type'>type</a>() returns <a href='#SkRRect_kEmpty_Type'>kEmpty Type</a>, <a href='#SkRRect_kRect_Type'>kRect Type</a>,
-<a href='#SkRRect_kOval_Type'>kOval Type</a>, or <a href='#SkRRect_kSimple_Type'>kSimple Type</a>, returns a value representative of all corner radii.
-If <a href='#SkRRect_type'>type</a>() returns <a href='#SkRRect_kNinePatch_Type'>kNinePatch Type</a> or <a href='#SkRRect_kComplex_Type'>kComplex Type</a>, at least one of the
+Returns top-left corner radii. If <a href='#SkRRect_type'>type()</a> returns <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>, <a href='#SkRRect_kRect_Type'>kRect_Type</a>,
+<a href='#SkRRect_kOval_Type'>kOval_Type</a>, or <a href='#SkRRect_kSimple_Type'>kSimple_Type</a>, returns a value representative of all corner radii.
+If <a href='#SkRRect_type'>type()</a> returns <a href='#SkRRect_kNinePatch_Type'>kNinePatch_Type</a> or <a href='#SkRRect_kComplex_Type'>kComplex_Type</a>, at least one of the
remaining three corners has a different value.
### Return Value
@@ -566,7 +518,7 @@
</pre>
Sets bounds to zero width and height at (0, 0), the origin. Sets
-corner radii to zero and sets type to <a href='#SkRRect_kEmpty_Type'>kEmpty Type</a>.
+corner radii to zero and sets type to <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
### Example
@@ -585,9 +537,9 @@
void <a href='#SkRRect_setRect'>setRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect)
</pre>
-Sets bounds to sorted rect, and sets corner radii to zero.
-If set bounds has width and height, and sets type to <a href='#SkRRect_kRect_Type'>kRect Type</a>;
-otherwise, sets type to <a href='#SkRRect_kEmpty_Type'>kEmpty Type</a>.
+Sets bounds to sorted <a href='#SkRRect_setRect_rect'>rect</a>, and sets corner radii to zero.
+If set bounds has width and height, and sets type to <a href='#SkRRect_kRect_Type'>kRect_Type</a>;
+otherwise, sets type to <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
### Parameters
@@ -613,11 +565,11 @@
</pre>
Initializes bounds at (0, 0), the origin, with zero width and height.
-Initializes corner radii to (0, 0), and sets type of <a href='#SkRRect_kEmpty_Type'>kEmpty Type</a>.
+Initializes corner radii to (0, 0), and sets type of <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
### Return Value
-empty <a href='#RRect'>Round Rect</a>
+empty <a href='SkRRect_Reference#SkRRect'>SkRRect</a>
### Example
@@ -664,20 +616,20 @@
static <a href='#SkRRect'>SkRRect</a> <a href='#SkRRect_MakeOval'>MakeOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval)
</pre>
-Sets bounds to <a href='#SkRRect_MakeOval_oval'>oval</a>, x-axis radii to half <a href='#SkRRect_MakeOval_oval'>oval</a>.<a href='#SkRRect_width'>width</a>(), and all y-axis radii
-to half <a href='#SkRRect_MakeOval_oval'>oval</a>.<a href='#SkRRect_height'>height</a>(). If <a href='#SkRRect_MakeOval_oval'>oval</a> bounds is empty, sets to <a href='#SkRRect_kEmpty_Type'>kEmpty Type</a>.
-Otherwise, sets to <a href='#SkRRect_kOval_Type'>kOval Type</a>.
+Sets bounds to <a href='#SkRRect_MakeOval_oval'>oval</a>, x-axis radii to half <a href='#SkRRect_MakeOval_oval'>oval</a>.<a href='#SkRect_width'>width()</a>, and all y-axis radii
+to half <a href='#SkRRect_MakeOval_oval'>oval</a>.<a href='#SkRect_height'>height()</a>. If <a href='#SkRRect_MakeOval_oval'>oval</a> bounds is empty, sets to <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
+Otherwise, sets to <a href='#SkRRect_kOval_Type'>kOval_Type</a>.
### Parameters
<table> <tr> <td><a name='SkRRect_MakeOval_oval'><code><strong>oval</strong></code></a></td>
- <td>bounds of <a href='undocumented#Oval'>Oval</a></td>
+ <td>bounds of <a href='#SkRRect_MakeOval_oval'>oval</a></td>
</tr>
</table>
### Return Value
-<a href='undocumented#Oval'>Oval</a>
+<a href='#SkRRect_MakeOval_oval'>oval</a>
### Example
@@ -696,11 +648,11 @@
</pre>
Sets to rounded rectangle with the same radii for all four corners.
-If rect is empty, sets to <a href='#SkRRect_kEmpty_Type'>kEmpty Type</a>.
-Otherwise, if <a href='#SkRRect_MakeRectXY_xRad'>xRad</a> and <a href='#SkRRect_MakeRectXY_yRad'>yRad</a> are zero, sets to <a href='#SkRRect_kRect_Type'>kRect Type</a>.
-Otherwise, if <a href='#SkRRect_MakeRectXY_xRad'>xRad</a> is at least half rect.<a href='#SkRRect_width'>width</a>() and <a href='#SkRRect_MakeRectXY_yRad'>yRad</a> is at least half
-rect.<a href='#SkRRect_height'>height</a>(), sets to <a href='#SkRRect_kOval_Type'>kOval Type</a>.
-Otherwise, sets to <a href='#SkRRect_kSimple_Type'>kSimple Type</a>.
+If <a href='#SkRRect_MakeRectXY_rect'>rect</a> is empty, sets to <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
+Otherwise, if <a href='#SkRRect_MakeRectXY_xRad'>xRad</a> and <a href='#SkRRect_MakeRectXY_yRad'>yRad</a> are zero, sets to <a href='#SkRRect_kRect_Type'>kRect_Type</a>.
+Otherwise, if <a href='#SkRRect_MakeRectXY_xRad'>xRad</a> is at least half <a href='#SkRRect_MakeRectXY_rect'>rect</a>.<a href='#SkRect_width'>width()</a> and <a href='#SkRRect_MakeRectXY_yRad'>yRad</a> is at least half
+<a href='#SkRRect_MakeRectXY_rect'>rect</a>.<a href='#SkRect_height'>height()</a>, sets to <a href='#SkRRect_kOval_Type'>kOval_Type</a>.
+Otherwise, sets to <a href='#SkRRect_kSimple_Type'>kSimple_Type</a>.
### Parameters
@@ -735,14 +687,14 @@
void <a href='#SkRRect_setOval'>setOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval)
</pre>
-Sets bounds to <a href='#SkRRect_setOval_oval'>oval</a>, x-axis radii to half <a href='#SkRRect_setOval_oval'>oval</a>.<a href='#SkRRect_width'>width</a>(), and all y-axis radii
-to half <a href='#SkRRect_setOval_oval'>oval</a>.<a href='#SkRRect_height'>height</a>(). If <a href='#SkRRect_setOval_oval'>oval</a> bounds is empty, sets to <a href='#SkRRect_kEmpty_Type'>kEmpty Type</a>.
-Otherwise, sets to <a href='#SkRRect_kOval_Type'>kOval Type</a>.
+Sets bounds to <a href='#SkRRect_setOval_oval'>oval</a>, x-axis radii to half <a href='#SkRRect_setOval_oval'>oval</a>.<a href='#SkRect_width'>width()</a>, and all y-axis radii
+to half <a href='#SkRRect_setOval_oval'>oval</a>.<a href='#SkRect_height'>height()</a>. If <a href='#SkRRect_setOval_oval'>oval</a> bounds is empty, sets to <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
+Otherwise, sets to <a href='#SkRRect_kOval_Type'>kOval_Type</a>.
### Parameters
<table> <tr> <td><a name='SkRRect_setOval_oval'><code><strong>oval</strong></code></a></td>
- <td>bounds of <a href='undocumented#Oval'>Oval</a></td>
+ <td>bounds of <a href='#SkRRect_setOval_oval'>oval</a></td>
</tr>
</table>
@@ -763,11 +715,11 @@
</pre>
Sets to rounded rectangle with the same radii for all four corners.
-If rect is empty, sets to <a href='#SkRRect_kEmpty_Type'>kEmpty Type</a>.
-Otherwise, if <a href='#SkRRect_setRectXY_xRad'>xRad</a> or <a href='#SkRRect_setRectXY_yRad'>yRad</a> is zero, sets to <a href='#SkRRect_kRect_Type'>kRect Type</a>.
-Otherwise, if <a href='#SkRRect_setRectXY_xRad'>xRad</a> is at least half rect.<a href='#SkRRect_width'>width</a>() and <a href='#SkRRect_setRectXY_yRad'>yRad</a> is at least half
-rect.<a href='#SkRRect_height'>height</a>(), sets to <a href='#SkRRect_kOval_Type'>kOval Type</a>.
-Otherwise, sets to <a href='#SkRRect_kSimple_Type'>kSimple Type</a>.
+If <a href='#SkRRect_setRectXY_rect'>rect</a> is empty, sets to <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
+Otherwise, if <a href='#SkRRect_setRectXY_xRad'>xRad</a> or <a href='#SkRRect_setRectXY_yRad'>yRad</a> is zero, sets to <a href='#SkRRect_kRect_Type'>kRect_Type</a>.
+Otherwise, if <a href='#SkRRect_setRectXY_xRad'>xRad</a> is at least half <a href='#SkRRect_setRectXY_rect'>rect</a>.<a href='#SkRect_width'>width()</a> and <a href='#SkRRect_setRectXY_yRad'>yRad</a> is at least half
+<a href='#SkRRect_setRectXY_rect'>rect</a>.<a href='#SkRect_height'>height()</a>, sets to <a href='#SkRRect_kOval_Type'>kOval_Type</a>.
+Otherwise, sets to <a href='#SkRRect_kSimple_Type'>kSimple_Type</a>.
### Parameters
@@ -799,19 +751,19 @@
<a href='undocumented#SkScalar'>SkScalar</a> bottomRad)
</pre>
-Sets bounds to rect. Sets radii to (<a href='#SkRRect_setNinePatch_leftRad'>leftRad</a>, <a href='#SkRRect_setNinePatch_topRad'>topRad</a>), (<a href='#SkRRect_setNinePatch_rightRad'>rightRad</a>, <a href='#SkRRect_setNinePatch_topRad'>topRad</a>),
+Sets bounds to <a href='#SkRRect_setNinePatch_rect'>rect</a>. Sets radii to (<a href='#SkRRect_setNinePatch_leftRad'>leftRad</a>, <a href='#SkRRect_setNinePatch_topRad'>topRad</a>), (<a href='#SkRRect_setNinePatch_rightRad'>rightRad</a>, <a href='#SkRRect_setNinePatch_topRad'>topRad</a>),
(<a href='#SkRRect_setNinePatch_rightRad'>rightRad</a>, <a href='#SkRRect_setNinePatch_bottomRad'>bottomRad</a>), (<a href='#SkRRect_setNinePatch_leftRad'>leftRad</a>, <a href='#SkRRect_setNinePatch_bottomRad'>bottomRad</a>).
-If rect is empty, sets to <a href='#SkRRect_kEmpty_Type'>kEmpty Type</a>.
-Otherwise, if <a href='#SkRRect_setNinePatch_leftRad'>leftRad</a> and <a href='#SkRRect_setNinePatch_rightRad'>rightRad</a> are zero, sets to <a href='#SkRRect_kRect_Type'>kRect Type</a>.
-Otherwise, if <a href='#SkRRect_setNinePatch_topRad'>topRad</a> and <a href='#SkRRect_setNinePatch_bottomRad'>bottomRad</a> are zero, sets to <a href='#SkRRect_kRect_Type'>kRect Type</a>.
-Otherwise, if <a href='#SkRRect_setNinePatch_leftRad'>leftRad</a> and <a href='#SkRRect_setNinePatch_rightRad'>rightRad</a> are equal and at least half rect.<a href='#SkRRect_width'>width</a>(), and
-<a href='#SkRRect_setNinePatch_topRad'>topRad</a> and <a href='#SkRRect_setNinePatch_bottomRad'>bottomRad</a> are equal at least half rect.<a href='#SkRRect_height'>height</a>(), sets to <a href='#SkRRect_kOval_Type'>kOval Type</a>.
+If <a href='#SkRRect_setNinePatch_rect'>rect</a> is empty, sets to <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
+Otherwise, if <a href='#SkRRect_setNinePatch_leftRad'>leftRad</a> and <a href='#SkRRect_setNinePatch_rightRad'>rightRad</a> are zero, sets to <a href='#SkRRect_kRect_Type'>kRect_Type</a>.
+Otherwise, if <a href='#SkRRect_setNinePatch_topRad'>topRad</a> and <a href='#SkRRect_setNinePatch_bottomRad'>bottomRad</a> are zero, sets to <a href='#SkRRect_kRect_Type'>kRect_Type</a>.
+Otherwise, if <a href='#SkRRect_setNinePatch_leftRad'>leftRad</a> and <a href='#SkRRect_setNinePatch_rightRad'>rightRad</a> are equal and at least half <a href='#SkRRect_setNinePatch_rect'>rect</a>.<a href='#SkRect_width'>width()</a>, and
+<a href='#SkRRect_setNinePatch_topRad'>topRad</a> and <a href='#SkRRect_setNinePatch_bottomRad'>bottomRad</a> are equal at least half <a href='#SkRRect_setNinePatch_rect'>rect</a>.<a href='#SkRect_height'>height()</a>, sets to <a href='#SkRRect_kOval_Type'>kOval_Type</a>.
Otherwise, if <a href='#SkRRect_setNinePatch_leftRad'>leftRad</a> and <a href='#SkRRect_setNinePatch_rightRad'>rightRad</a> are equal, and <a href='#SkRRect_setNinePatch_topRad'>topRad</a> and <a href='#SkRRect_setNinePatch_bottomRad'>bottomRad</a> are equal,
-sets to <a href='#SkRRect_kSimple_Type'>kSimple Type</a>. Otherwise, sets to <a href='#SkRRect_kNinePatch_Type'>kNinePatch Type</a>.
+sets to <a href='#SkRRect_kSimple_Type'>kSimple_Type</a>. Otherwise, sets to <a href='#SkRRect_kNinePatch_Type'>kNinePatch_Type</a>.
-Nine patch refers to the nine parts defined by the radii: one center rectangle,
-four edge patches, and four corner patches.
+Nine <a href='undocumented#Patch'>patch</a> refers to the nine parts defined by the radii: one center rectangle,
+four edge <a href='undocumented#Patch'>patches</a>, and four corner <a href='undocumented#Patch'>patches</a>.
### Parameters
@@ -848,14 +800,14 @@
void <a href='#SkRRect_setRectRadii'>setRectRadii</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, const <a href='SkPoint_Reference#SkVector'>SkVector</a> radii[4])
</pre>
-Sets bounds to rect. Sets radii array for individual control of all for corners.
+Sets bounds to <a href='#SkRRect_setRectRadii_rect'>rect</a>. Sets <a href='#SkRRect_setRectRadii_radii'>radii</a> array for individual control of all for corners.
-If rect is empty, sets to <a href='#SkRRect_kEmpty_Type'>kEmpty Type</a>.
-Otherwise, if one of each corner radii are zero, sets to <a href='#SkRRect_kRect_Type'>kRect Type</a>.
-Otherwise, if all x-axis radii are equal and at least half rect.<a href='#SkRRect_width'>width</a>(), and
-all y-axis radii are equal at least half rect.<a href='#SkRRect_height'>height</a>(), sets to <a href='#SkRRect_kOval_Type'>kOval Type</a>.
-Otherwise, if all x-axis radii are equal, and all y-axis radii are equal,
-sets to <a href='#SkRRect_kSimple_Type'>kSimple Type</a>. Otherwise, sets to <a href='#SkRRect_kNinePatch_Type'>kNinePatch Type</a>.
+If <a href='#SkRRect_setRectRadii_rect'>rect</a> is empty, sets to <a href='#SkRRect_kEmpty_Type'>kEmpty_Type</a>.
+Otherwise, if one of each corner <a href='#SkRRect_setRectRadii_radii'>radii</a> are zero, sets to <a href='#SkRRect_kRect_Type'>kRect_Type</a>.
+Otherwise, if all x-axis <a href='#SkRRect_setRectRadii_radii'>radii</a> are equal and at least half <a href='#SkRRect_setRectRadii_rect'>rect</a>.<a href='#SkRect_width'>width()</a>, and
+all y-axis <a href='#SkRRect_setRectRadii_radii'>radii</a> are equal at least half <a href='#SkRRect_setRectRadii_rect'>rect</a>.<a href='#SkRect_height'>height()</a>, sets to <a href='#SkRRect_kOval_Type'>kOval_Type</a>.
+Otherwise, if all x-axis <a href='#SkRRect_setRectRadii_radii'>radii</a> are equal, and all y-axis <a href='#SkRRect_setRectRadii_radii'>radii</a> are equal,
+sets to <a href='#SkRRect_kSimple_Type'>kSimple_Type</a>. Otherwise, sets to <a href='#SkRRect_kNinePatch_Type'>kNinePatch_Type</a>.
### Parameters
@@ -863,7 +815,7 @@
<td>bounds of rounded rectangle</td>
</tr>
<tr> <td><a name='SkRRect_setRectRadii_radii'><code><strong>radii</strong></code></a></td>
- <td>corner x-axis and y-axis radii</td>
+ <td>corner x-axis and y-axis <a href='#SkRRect_setRectRadii_radii'>radii</a></td>
</tr>
</table>
@@ -940,7 +892,7 @@
Returns bounds. Bounds may have zero width or zero height. Bounds right is
greater than or equal to left; bounds bottom is greater than or equal to top.
-Result is identical to <a href='#SkRRect_getBounds'>getBounds</a>.
+Result is identical to <a href='#SkRRect_getBounds'>getBounds</a>().
### Return Value
@@ -974,26 +926,27 @@
<a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkRRect_radii'>radii</a>(<a href='#SkRRect_Corner'>Corner</a> corner) const
</pre>
-Returns <a href='undocumented#Scalar'>Scalar</a> pair for radius of curve on x-axis and y-axis for one <a href='#SkRRect_radii_corner'>corner</a>.
+Returns <a href='undocumented#Scalar'>scalar</a> pair for radius of <a href='undocumented#Curve'>curve</a> on x-axis and y-axis for one <a href='#SkRRect_radii()_corner'>corner</a>.
Both radii may be zero. If not zero, both are positive and finite.
### Parameters
<table> <tr> <td><a name='SkRRect_radii_corner'><code><strong>corner</strong></code></a></td>
- <td>one of: <a href='#SkRRect_kUpperLeft_Corner'>kUpperLeft Corner</a>, <a href='#SkRRect_kUpperRight_Corner'>kUpperRight Corner</a>,
-<a href='#SkRRect_kLowerRight_Corner'>kLowerRight Corner</a>, <a href='#SkRRect_kLowerLeft_Corner'>kLowerLeft Corner</a></td>
+ <td>one of: <a href='#SkRRect_kUpperLeft_Corner'>kUpperLeft_Corner</a>, <a href='#SkRRect_kUpperRight_Corner'>kUpperRight_Corner</a>,</td>
</tr>
</table>
+<a href='#SkRRect_kLowerRight_Corner'>kLowerRight_Corner</a>, <a href='#SkRRect_kLowerLeft_Corner'>kLowerLeft_Corner</a>
+
### Return Value
-x-axis and y-axis radii for one <a href='#SkRRect_radii_corner'>corner</a>
+x-axis and y-axis radii for one <a href='#SkRRect_radii()_corner'>corner</a>
### Example
<div><fiddle-embed name="8d5c88478528584913867ada423e0d59"><div>Finite values are scaled proportionately to fit; other values are set to zero.
Scaled values cannot be larger than 25, half the bounding <a href='#RRect'>Round Rect</a> width.
-Small scaled values are halved to scale in proportion to the y-axis <a href='#SkRRect_radii_corner'>corner</a>
+Small scaled values are halved to scale in proportion to the y-axis corner
radius, which is twice the bounds height.
</div>
@@ -1023,7 +976,7 @@
Returns bounds. Bounds may have zero width or zero height. Bounds right is
greater than or equal to left; bounds bottom is greater than or equal to top.
-Result is identical to <a href='#SkRRect_rect'>rect</a>().
+Result is identical to <a href='#SkRRect_rect'>rect()</a>.
### Return Value
@@ -1045,18 +998,18 @@
bool <a href='#SkRRect_equal_operator'>operator==(const SkRRect& a, const SkRRect& b)</a>
</pre>
-Returns true if bounds and radii in <a href='#SkRRect_equal_operator_a'>a</a> are equal to bounds and radii in <a href='#SkRRect_equal_operator_b'>b</a>.
+Returns true if bounds and radii in <a href='#SkRRect_operator==(const SkRRect& a, const SkRRect& b)_a'>a</a> are equal to bounds and radii in <a href='#SkRRect_operator==(const SkRRect& a, const SkRRect& b)_b'>b</a>.
-<a href='#SkRRect_equal_operator_a'>a</a> and <a href='#SkRRect_equal_operator_b'>b</a> are not equal if either contain NaN. <a href='#SkRRect_equal_operator_a'>a</a> and <a href='#SkRRect_equal_operator_b'>b</a> are equal if members
-contain zeroes width different signs.
+<a href='#SkRRect_operator==(const SkRRect& a, const SkRRect& b)_a'>a</a> and <a href='#SkRRect_operator==(const SkRRect& a, const SkRRect& b)_b'>b</a> are not equal if either contain NaN. <a href='#SkRRect_operator==(const SkRRect& a, const SkRRect& b)_a'>a</a> and <a href='#SkRRect_operator==(const SkRRect& a, const SkRRect& b)_b'>b</a> are equal if members
+contain zeroes with different signs.
### Parameters
<table> <tr> <td><a name='SkRRect_equal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> bounds and radii to compare</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> bounds and radii to compare</td>
</tr>
<tr> <td><a name='SkRRect_equal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> bounds and radii to compare</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> bounds and radii to compare</td>
</tr>
</table>
@@ -1080,18 +1033,18 @@
bool <a href='#SkRRect_notequal_operator'>operator!=(const SkRRect& a, const SkRRect& b)</a>
</pre>
-Returns true if bounds and radii in <a href='#SkRRect_notequal_operator_a'>a</a> are not equal to bounds and radii in <a href='#SkRRect_notequal_operator_b'>b</a>.
+Returns true if bounds and radii in <a href='#SkRRect_operator!=(const SkRRect& a, const SkRRect& b)_a'>a</a> are not equal to bounds and radii in <a href='#SkRRect_operator!=(const SkRRect& a, const SkRRect& b)_b'>b</a>.
-<a href='#SkRRect_notequal_operator_a'>a</a> and <a href='#SkRRect_notequal_operator_b'>b</a> are not equal if either contain NaN. <a href='#SkRRect_notequal_operator_a'>a</a> and <a href='#SkRRect_notequal_operator_b'>b</a> are equal if members
-contain zeroes width different signs.
+<a href='#SkRRect_operator!=(const SkRRect& a, const SkRRect& b)_a'>a</a> and <a href='#SkRRect_operator!=(const SkRRect& a, const SkRRect& b)_b'>b</a> are not equal if either contain NaN. <a href='#SkRRect_operator!=(const SkRRect& a, const SkRRect& b)_a'>a</a> and <a href='#SkRRect_operator!=(const SkRRect& a, const SkRRect& b)_b'>b</a> are equal if members
+contain zeroes with different signs.
### Parameters
<table> <tr> <td><a name='SkRRect_notequal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> bounds and radii to compare</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> bounds and radii to compare</td>
</tr>
<tr> <td><a name='SkRRect_notequal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='SkRect_Reference#Rect'>Rect</a> bounds and radii to compare</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> bounds and radii to compare</td>
</tr>
</table>
@@ -1115,25 +1068,25 @@
void <a href='#SkRRect_inset'>inset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='#SkRRect'>SkRRect</a>* dst) const
</pre>
-Copies <a href='#RRect'>Round Rect</a> to <a href='#SkRRect_inset_dst'>dst</a>, then insets <a href='#SkRRect_inset_dst'>dst</a> bounds by <a href='#SkRRect_inset_dx'>dx</a> and <a href='#SkRRect_inset_dy'>dy</a>, and adjusts <a href='#SkRRect_inset_dst'>dst</a>
-radii by <a href='#SkRRect_inset_dx'>dx</a> and <a href='#SkRRect_inset_dy'>dy</a>. <a href='#SkRRect_inset_dx'>dx</a> and <a href='#SkRRect_inset_dy'>dy</a> may be positive, negative, or zero. <a href='#SkRRect_inset_dst'>dst</a> may be
-<a href='#RRect'>Round Rect</a>.
+Copies <a href='SkRRect_Reference#SkRRect'>SkRRect</a> to <a href='#SkRRect_inset()_dst'>dst</a>, then insets <a href='#SkRRect_inset()_dst'>dst</a> bounds by <a href='#SkRRect_inset()_dx'>dx</a> and <a href='#SkRRect_inset()_dy'>dy</a>, and adjusts <a href='#SkRRect_inset()_dst'>dst</a>
+radii by <a href='#SkRRect_inset()_dx'>dx</a> and <a href='#SkRRect_inset()_dy'>dy</a>. <a href='#SkRRect_inset()_dx'>dx</a> and <a href='#SkRRect_inset()_dy'>dy</a> may be positive, negative, or zero. <a href='#SkRRect_inset()_dst'>dst</a> may be
+<a href='SkRRect_Reference#SkRRect'>SkRRect</a>.
If either corner radius is zero, the corner has no curvature and is unchanged.
Otherwise, if adjusted radius becomes negative, pins radius to zero.
-If <a href='#SkRRect_inset_dx'>dx</a> exceeds half <a href='#SkRRect_inset_dst'>dst</a> bounds width, <a href='#SkRRect_inset_dst'>dst</a> bounds left and right are set to
-bounds x-axis center. If <a href='#SkRRect_inset_dy'>dy</a> exceeds half <a href='#SkRRect_inset_dst'>dst</a> bounds height, <a href='#SkRRect_inset_dst'>dst</a> bounds top and
+If <a href='#SkRRect_inset()_dx'>dx</a> exceeds half <a href='#SkRRect_inset()_dst'>dst</a> bounds width, <a href='#SkRRect_inset()_dst'>dst</a> bounds left and right are set to
+bounds x-axis center. If <a href='#SkRRect_inset()_dy'>dy</a> exceeds half <a href='#SkRRect_inset()_dst'>dst</a> bounds height, <a href='#SkRRect_inset()_dst'>dst</a> bounds top and
bottom are set to bounds y-axis center.
-If <a href='#SkRRect_inset_dx'>dx</a> or <a href='#SkRRect_inset_dy'>dy</a> cause the bounds to become infinite, <a href='#SkRRect_inset_dst'>dst</a> bounds is zeroed.
+If <a href='#SkRRect_inset()_dx'>dx</a> or <a href='#SkRRect_inset()_dy'>dy</a> cause the bounds to become infinite, <a href='#SkRRect_inset()_dst'>dst</a> bounds is zeroed.
### Parameters
<table> <tr> <td><a name='SkRRect_inset_dx'><code><strong>dx</strong></code></a></td>
- <td>added to <a href='#SkRRect_rect'>rect</a>().fLeft, and subtracted from <a href='#SkRRect_rect'>rect</a>().fRight</td>
+ <td>added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a>, and subtracted from <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRRect_inset_dy'><code><strong>dy</strong></code></a></td>
- <td>added to <a href='#SkRRect_rect'>rect</a>().fTop, and subtracted from <a href='#SkRRect_rect'>rect</a>().fBottom</td>
+ <td>added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a>, and subtracted from <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
<tr> <td><a name='SkRRect_inset_dst'><code><strong>dst</strong></code></a></td>
<td>insets bounds and radii</td>
@@ -1170,10 +1123,10 @@
### Parameters
<table> <tr> <td><a name='SkRRect_inset_2_dx'><code><strong>dx</strong></code></a></td>
- <td>added to <a href='#SkRRect_rect'>rect</a>().fLeft, and subtracted from <a href='#SkRRect_rect'>rect</a>().fRight</td>
+ <td>added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a>, and subtracted from <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRRect_inset_2_dy'><code><strong>dy</strong></code></a></td>
- <td>added to <a href='#SkRRect_rect'>rect</a>().fTop, and subtracted from <a href='#SkRRect_rect'>rect</a>().fBottom</td>
+ <td>added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a>, and subtracted from <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
</table>
@@ -1193,24 +1146,24 @@
void <a href='#SkRRect_outset'>outset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='#SkRRect'>SkRRect</a>* dst) const
</pre>
-Outsets <a href='#SkRRect_outset_dst'>dst</a> bounds by <a href='#SkRRect_outset_dx'>dx</a> and <a href='#SkRRect_outset_dy'>dy</a>, and adjusts radii by <a href='#SkRRect_outset_dx'>dx</a> and <a href='#SkRRect_outset_dy'>dy</a>. <a href='#SkRRect_outset_dx'>dx</a> and <a href='#SkRRect_outset_dy'>dy</a> may be
+Outsets <a href='#SkRRect_outset()_dst'>dst</a> bounds by <a href='#SkRRect_outset()_dx'>dx</a> and <a href='#SkRRect_outset()_dy'>dy</a>, and adjusts radii by <a href='#SkRRect_outset()_dx'>dx</a> and <a href='#SkRRect_outset()_dy'>dy</a>. <a href='#SkRRect_outset()_dx'>dx</a> and <a href='#SkRRect_outset()_dy'>dy</a> may be
positive, negative, or zero.
If either corner radius is zero, the corner has no curvature and is unchanged.
Otherwise, if adjusted radius becomes negative, pins radius to zero.
-If <a href='#SkRRect_outset_dx'>dx</a> exceeds half <a href='#SkRRect_outset_dst'>dst</a> bounds width, <a href='#SkRRect_outset_dst'>dst</a> bounds left and right are set to
-bounds x-axis center. If <a href='#SkRRect_outset_dy'>dy</a> exceeds half <a href='#SkRRect_outset_dst'>dst</a> bounds height, <a href='#SkRRect_outset_dst'>dst</a> bounds top and
+If <a href='#SkRRect_outset()_dx'>dx</a> exceeds half <a href='#SkRRect_outset()_dst'>dst</a> bounds width, <a href='#SkRRect_outset()_dst'>dst</a> bounds left and right are set to
+bounds x-axis center. If <a href='#SkRRect_outset()_dy'>dy</a> exceeds half <a href='#SkRRect_outset()_dst'>dst</a> bounds height, <a href='#SkRRect_outset()_dst'>dst</a> bounds top and
bottom are set to bounds y-axis center.
-If <a href='#SkRRect_outset_dx'>dx</a> or <a href='#SkRRect_outset_dy'>dy</a> cause the bounds to become infinite, <a href='#SkRRect_outset_dst'>dst</a> bounds is zeroed.
+If <a href='#SkRRect_outset()_dx'>dx</a> or <a href='#SkRRect_outset()_dy'>dy</a> cause the bounds to become infinite, <a href='#SkRRect_outset()_dst'>dst</a> bounds is zeroed.
### Parameters
<table> <tr> <td><a name='SkRRect_outset_dx'><code><strong>dx</strong></code></a></td>
- <td>subtracted from <a href='#SkRRect_rect'>rect</a>().fLeft, and added to <a href='#SkRRect_rect'>rect</a>().fRight</td>
+ <td>subtracted from <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a>, and added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRRect_outset_dy'><code><strong>dy</strong></code></a></td>
- <td>subtracted from <a href='#SkRRect_rect'>rect</a>().fTop, and added to <a href='#SkRRect_rect'>rect</a>().fBottom</td>
+ <td>subtracted from <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a>, and added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
<tr> <td><a name='SkRRect_outset_dst'><code><strong>dst</strong></code></a></td>
<td>outset bounds and radii</td>
@@ -1247,10 +1200,10 @@
### Parameters
<table> <tr> <td><a name='SkRRect_outset_2_dx'><code><strong>dx</strong></code></a></td>
- <td>subtracted from <a href='#SkRRect_rect'>rect</a>().fLeft, and added to <a href='#SkRRect_rect'>rect</a>().fRight</td>
+ <td>subtracted from <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a>, and added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRRect_outset_2_dy'><code><strong>dy</strong></code></a></td>
- <td>subtracted from <a href='#SkRRect_rect'>rect</a>().fTop, and added to <a href='#SkRRect_rect'>rect</a>().fBottom</td>
+ <td>subtracted from <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a>, and added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
</table>
@@ -1270,15 +1223,15 @@
void <a href='#SkRRect_offset'>offset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Translates <a href='#RRect'>Round Rect</a> by (<a href='#SkRRect_offset_dx'>dx</a>, <a href='#SkRRect_offset_dy'>dy</a>).
+Translates <a href='SkRRect_Reference#SkRRect'>SkRRect</a> by (<a href='#SkRRect_offset()_dx'>dx</a>, <a href='#SkRRect_offset()_dy'>dy</a>).
### Parameters
<table> <tr> <td><a name='SkRRect_offset_dx'><code><strong>dx</strong></code></a></td>
- <td>offset added to <a href='#SkRRect_rect'>rect</a>().fLeft and <a href='#SkRRect_rect'>rect</a>().fRight</td>
+ <td>offset added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRRect_offset_dy'><code><strong>dy</strong></code></a></td>
- <td>offset added to <a href='#SkRRect_rect'>rect</a>().fTop and <a href='#SkRRect_rect'>rect</a>().fBottom</td>
+ <td>offset added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a> and <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
</table>
@@ -1298,21 +1251,21 @@
<a href='#SkRRect'>SkRRect</a> <a href='#SkRRect_makeOffset'>makeOffset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) const
</pre>
-Returns <a href='#RRect'>Round Rect</a> translated by (<a href='#SkRRect_makeOffset_dx'>dx</a>, <a href='#SkRRect_makeOffset_dy'>dy</a>).
+Returns <a href='SkRRect_Reference#SkRRect'>SkRRect</a> translated by (<a href='#SkRRect_makeOffset_dx'>dx</a>, <a href='#SkRRect_makeOffset_dy'>dy</a>).
### Parameters
<table> <tr> <td><a name='SkRRect_makeOffset_dx'><code><strong>dx</strong></code></a></td>
- <td>offset added to <a href='#SkRRect_rect'>rect</a>().fLeft and <a href='#SkRRect_rect'>rect</a>().fRight</td>
+ <td>offset added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fRight'>fRight</a></td>
</tr>
<tr> <td><a name='SkRRect_makeOffset_dy'><code><strong>dy</strong></code></a></td>
- <td>offset added to <a href='#SkRRect_rect'>rect</a>().fTop and <a href='#SkRRect_rect'>rect</a>().fBottom</td>
+ <td>offset added to <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fTop'>fTop</a> and <a href='#SkRRect_rect'>rect()</a>.<a href='#SkRect_fBottom'>fBottom</a></td>
</tr>
</table>
### Return Value
-<a href='#RRect'>Round Rect</a> bounds offset by (<a href='#SkRRect_makeOffset_dx'>dx</a>, <a href='#SkRRect_makeOffset_dy'>dy</a>), with unchanged corner radii
+<a href='SkRRect_Reference#SkRRect'>SkRRect</a> bounds offset by (<a href='#SkRRect_makeOffset_dx'>dx</a>, <a href='#SkRRect_makeOffset_dy'>dy</a>), with unchanged corner radii
### Example
@@ -1330,8 +1283,8 @@
bool <a href='#SkRRect_contains'>contains</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect) const
</pre>
-Returns true if rect is inside the bounds and corner radii, and if
-<a href='#RRect'>Round Rect</a> and rect are not empty.
+Returns true if <a href='#SkRRect_contains()_rect'>rect</a> is inside the bounds and corner radii, and if
+<a href='SkRRect_Reference#SkRRect'>SkRRect</a> and <a href='#SkRRect_contains()_rect'>rect</a> are not empty.
### Parameters
@@ -1342,7 +1295,7 @@
### Return Value
-true if <a href='#RRect'>Round Rect</a> contains rect
+true if <a href='SkRRect_Reference#SkRRect'>SkRRect</a> contains <a href='#SkRRect_contains()_rect'>rect</a>
### Example
@@ -1360,14 +1313,14 @@
bool <a href='#SkRRect_isValid'>isValid</a>() const
</pre>
-Returns true if bounds and radii values are finite and describe a <a href='#RRect'>Round Rect</a>
-<a href='#SkRRect_Type'>Type</a> that matches <a href='#SkRRect_getType'>getType</a>. All <a href='#RRect'>Round Rect</a> methods construct valid types,
-even if the input values are not valid. Invalid <a href='#RRect'>Round Rect</a> data can only
+Returns true if bounds and radii values are finite and describe a <a href='SkRRect_Reference#SkRRect'>SkRRect</a>
+<a href='SkRRect_Reference#SkRRect'>SkRRect</a>::<a href='#SkRRect_Type'>Type</a> that matches <a href='#SkRRect_getType'>getType</a>(). All <a href='SkRRect_Reference#SkRRect'>SkRRect</a> methods construct valid types,
+even if the input values are not valid. Invalid <a href='SkRRect_Reference#SkRRect'>SkRRect</a> <a href='undocumented#Data'>data</a> can only
be generated by corrupting memory.
### Return Value
-true if bounds and radii match <a href='#SkRRect_type'>type</a>()
+true if bounds and radii match <a href='#SkRRect_type'>type()</a>
### Example
@@ -1400,13 +1353,13 @@
size_t <a href='#SkRRect_writeToMemory'>writeToMemory</a>(void* buffer) const
</pre>
-Writes <a href='#RRect'>Round Rect</a> to <a href='#SkRRect_writeToMemory_buffer'>buffer</a>. Writes <a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a> bytes, and returns
+Writes <a href='SkRRect_Reference#SkRRect'>SkRRect</a> to <a href='#SkRRect_writeToMemory_buffer'>buffer</a>. Writes <a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a> bytes, and returns
<a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a>, the number of bytes written.
### Parameters
<table> <tr> <td><a name='SkRRect_writeToMemory_buffer'><code><strong>buffer</strong></code></a></td>
- <td>storage for <a href='#RRect'>Round Rect</a></td>
+ <td>storage for <a href='SkRRect_Reference#SkRRect'>SkRRect</a></td>
</tr>
</table>
@@ -1430,7 +1383,7 @@
size_t <a href='#SkRRect_readFromMemory'>readFromMemory</a>(const void* buffer, size_t length)
</pre>
-Reads <a href='#RRect'>Round Rect</a> from <a href='#SkRRect_readFromMemory_buffer'>buffer</a>, reading <a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a> bytes.
+Reads <a href='SkRRect_Reference#SkRRect'>SkRRect</a> from <a href='#SkRRect_readFromMemory_buffer'>buffer</a>, reading <a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a> bytes.
Returns <a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a>, bytes read if <a href='#SkRRect_readFromMemory_length'>length</a> is at least <a href='#SkRRect_kSizeInMemory'>kSizeInMemory</a>.
Otherwise, returns zero.
@@ -1440,7 +1393,7 @@
<td>memory to read from</td>
</tr>
<tr> <td><a name='SkRRect_readFromMemory_length'><code><strong>length</strong></code></a></td>
- <td>size of <a href='#SkRRect_readFromMemory_buffer'>buffer</a></td>
+ <td><a href='undocumented#Size'>size</a> of <a href='#SkRRect_readFromMemory_buffer'>buffer</a></td>
</tr>
</table>
@@ -1464,11 +1417,11 @@
bool <a href='#SkRRect_transform'>transform</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& matrix, <a href='#SkRRect'>SkRRect</a>* dst) const
</pre>
-Transforms by <a href='#RRect'>Round Rect</a> by <a href='#SkRRect_transform_matrix'>matrix</a>, storing result in <a href='#SkRRect_transform_dst'>dst</a>.
-Returns true if <a href='#RRect'>Round Rect</a> transformed can be represented by another <a href='#RRect'>Round Rect</a>.
-Returns false if <a href='#SkRRect_transform_matrix'>matrix</a> contains transformations other than scale and translate.
+Transforms by <a href='SkRRect_Reference#SkRRect'>SkRRect</a> by <a href='#SkRRect_transform()_matrix'>matrix</a>, storing result in <a href='#SkRRect_transform()_dst'>dst</a>.
+Returns true if <a href='SkRRect_Reference#SkRRect'>SkRRect</a> transformed can be represented by another <a href='SkRRect_Reference#SkRRect'>SkRRect</a>.
+Returns false if <a href='#SkRRect_transform()_matrix'>matrix</a> contains transformations other than scale and translate.
-Asserts in debug builds if <a href='#RRect'>Round Rect</a> equals <a href='#SkRRect_transform_dst'>dst</a>.
+Asserts in debug builds if <a href='SkRRect_Reference#SkRRect'>SkRRect</a> equals <a href='#SkRRect_transform()_dst'>dst</a>.
### Parameters
@@ -1476,7 +1429,7 @@
<td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> specifying the transform</td>
</tr>
<tr> <td><a name='SkRRect_transform_dst'><code><strong>dst</strong></code></a></td>
- <td><a href='#SkRRect'>SkRRect</a> to store the result</td>
+ <td><a href='SkRRect_Reference#SkRRect'>SkRRect</a> to store the result</td>
</tr>
</table>
@@ -1500,9 +1453,9 @@
void <a href='#SkRRect_dump'>dump</a>(bool asHex) const
</pre>
-Writes text representation of <a href='#RRect'>Round Rect</a> to standard output.
-Set <a href='#SkRRect_dump_asHex'>asHex</a> true to generate exact binary representations
-of floating point numbers.
+Writes <a href='undocumented#Text'>text</a> representation of <a href='SkRRect_Reference#SkRRect'>SkRRect</a> to standard output.
+Set <a href='#SkRRect_dump()_asHex'>asHex</a> true to generate exact binary representations
+of floating <a href='SkPoint_Reference#Point'>point</a> numbers.
### Parameters
@@ -1551,10 +1504,10 @@
void <a href='#SkRRect_dump'>dump</a>() const
</pre>
-Writes text representation of <a href='#RRect'>Round Rect</a> to standard output. The representation
-may be directly compiled as C++ code. Floating point values are written
+Writes <a href='undocumented#Text'>text</a> representation of <a href='SkRRect_Reference#SkRRect'>SkRRect</a> to standard output. The representation
+may be directly compiled as C++ code. Floating <a href='SkPoint_Reference#Point'>point</a> values are written
with limited precision; it may not be possible to reconstruct original
-<a href='#RRect'>Round Rect</a> from output.
+<a href='SkRRect_Reference#SkRRect'>SkRRect</a> from output.
### Example
@@ -1587,10 +1540,10 @@
void <a href='#SkRRect_dumpHex'>dumpHex</a>() const
</pre>
-Writes text representation of <a href='#RRect'>Round Rect</a> to standard output. The representation
-may be directly compiled as C++ code. Floating point values are written
+Writes <a href='undocumented#Text'>text</a> representation of <a href='SkRRect_Reference#SkRRect'>SkRRect</a> to standard output. The representation
+may be directly compiled as C++ code. Floating <a href='SkPoint_Reference#Point'>point</a> values are written
in hexadecimal to preserve their exact bit pattern. The output reconstructs the
-original <a href='#RRect'>Round Rect</a>.
+original <a href='SkRRect_Reference#SkRRect'>SkRRect</a>.
### Example
diff --git a/site/user/api/SkRect_Reference.md b/site/user/api/SkRect_Reference.md
index 4129b38..8fe1fda 100644
--- a/site/user/api/SkRect_Reference.md
+++ b/site/user/api/SkRect_Reference.md
@@ -142,7 +142,7 @@
static constexpr <a href='#SkRect'>SkRect</a> <a href='#SkRect_MakeEmpty'>MakeEmpty</a>()
</pre>
-Returns constructed <a href='#Rect'>Rect</a> set to (0, 0, 0, 0).
+Returns constructed <a href='SkRect_Reference#SkRect'>SkRect</a> set to (0, 0, 0, 0).
Many other rectangles are empty; if left is equal to or greater than right,
or if top is equal to or greater than bottom. Setting all members to zero
is a convenience, but does not designate a special empty rectangle.
@@ -178,19 +178,19 @@
static constexpr <a href='#SkRect'>SkRect</a> <a href='#SkRect_MakeWH'>MakeWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> w, <a href='undocumented#SkScalar'>SkScalar</a> h)
</pre>
-Returns constructed <a href='#Rect'>Rect</a> set to <a href='undocumented#SkScalar'>SkScalar</a> values (0, 0, <a href='#SkRect_MakeWH_w'>w</a>, <a href='#SkRect_MakeWH_h'>h</a>). Does not
+Returns constructed <a href='SkRect_Reference#SkRect'>SkRect</a> set to <a href='undocumented#SkScalar'>SkScalar</a> values (0, 0, <a href='#SkRect_MakeWH_w'>w</a>, <a href='#SkRect_MakeWH_h'>h</a>). Does not
validate input; <a href='#SkRect_MakeWH_w'>w</a> or <a href='#SkRect_MakeWH_h'>h</a> may be negative.
-Passing integer values may generate a compiler warning since <a href='#Rect'>Rect</a> cannot
+Passing integer values may generate a compiler warning since <a href='SkRect_Reference#SkRect'>SkRect</a> cannot
represent 32-bit integers exactly. Use <a href='SkIRect_Reference#SkIRect'>SkIRect</a> for an exact integer rectangle.
### Parameters
<table> <tr> <td><a name='SkRect_MakeWH_w'><code><strong>w</strong></code></a></td>
- <td><a href='undocumented#SkScalar'>SkScalar</a> width of constructed <a href='#Rect'>Rect</a></td>
+ <td><a href='undocumented#SkScalar'>SkScalar</a> width of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
<tr> <td><a name='SkRect_MakeWH_h'><code><strong>h</strong></code></a></td>
- <td><a href='undocumented#SkScalar'>SkScalar</a> height of constructed <a href='#Rect'>Rect</a></td>
+ <td><a href='undocumented#SkScalar'>SkScalar</a> height of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
</table>
@@ -222,7 +222,7 @@
static <a href='#SkRect'>SkRect</a> <a href='#SkRect_MakeIWH'>MakeIWH</a>(int w, int h)
</pre>
-Returns constructed <a href='#Rect'>Rect</a> set to integer values (0, 0, <a href='#SkRect_MakeIWH_w'>w</a>, <a href='#SkRect_MakeIWH_h'>h</a>). Does not validate
+Returns constructed <a href='SkRect_Reference#SkRect'>SkRect</a> set to integer values (0, 0, <a href='#SkRect_MakeIWH_w'>w</a>, <a href='#SkRect_MakeIWH_h'>h</a>). Does not validate
input; <a href='#SkRect_MakeIWH_w'>w</a> or <a href='#SkRect_MakeIWH_h'>h</a> may be negative.
Use to avoid a compiler warning that input may lose precision when stored.
@@ -231,10 +231,10 @@
### Parameters
<table> <tr> <td><a name='SkRect_MakeIWH_w'><code><strong>w</strong></code></a></td>
- <td>integer width of constructed <a href='#Rect'>Rect</a></td>
+ <td>integer width of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
<tr> <td><a name='SkRect_MakeIWH_h'><code><strong>h</strong></code></a></td>
- <td>integer height of constructed <a href='#Rect'>Rect</a></td>
+ <td>integer height of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
</table>
@@ -267,19 +267,19 @@
static constexpr <a href='#SkRect'>SkRect</a> <a href='#SkRect_MakeSize'>MakeSize</a>(const <a href='undocumented#SkSize'>SkSize</a>& size)
</pre>
-Returns constructed <a href='#Rect'>Rect</a> set to (0, 0, <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkRect_width'>width</a>(), <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkRect_height'>height</a>()). Does not
-validate input; <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkRect_width'>width</a>() or <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkRect_height'>height</a>() may be negative.
+Returns constructed <a href='SkRect_Reference#SkRect'>SkRect</a> set to (0, 0, <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkSize_width'>width()</a>, <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkSize_height'>height()</a>). Does not
+validate input; <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkSize_width'>width()</a> or <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkSize_height'>height()</a> may be negative.
### Parameters
<table> <tr> <td><a name='SkRect_MakeSize_size'><code><strong>size</strong></code></a></td>
- <td><a href='undocumented#SkScalar'>SkScalar</a> values for <a href='#Rect'>Rect</a> width and height</td>
+ <td><a href='undocumented#SkScalar'>SkScalar</a> values for <a href='SkRect_Reference#SkRect'>SkRect</a> width and height</td>
</tr>
</table>
### Return Value
-bounds (0, 0, <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkRect_width'>width</a>(), <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkRect_height'>height</a>())
+bounds (0, 0, <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkSize_width'>width()</a>, <a href='#SkRect_MakeSize_size'>size</a>.<a href='#SkSize_height'>height()</a>)
### Example
@@ -306,7 +306,7 @@
static constexpr <a href='#SkRect'>SkRect</a> <a href='#SkRect_MakeLTRB'>MakeLTRB</a>(<a href='undocumented#SkScalar'>SkScalar</a> l, <a href='undocumented#SkScalar'>SkScalar</a> t, <a href='undocumented#SkScalar'>SkScalar</a> r, <a href='undocumented#SkScalar'>SkScalar</a> b)
</pre>
-Returns constructed <a href='#Rect'>Rect</a> set to (<a href='#SkRect_MakeLTRB_l'>l</a>, <a href='#SkRect_MakeLTRB_t'>t</a>, <a href='#SkRect_MakeLTRB_r'>r</a>, <a href='#SkRect_MakeLTRB_b'>b</a>). Does not sort input; <a href='#Rect'>Rect</a> may
+Returns constructed <a href='SkRect_Reference#SkRect'>SkRect</a> set to (<a href='#SkRect_MakeLTRB_l'>l</a>, <a href='#SkRect_MakeLTRB_t'>t</a>, <a href='#SkRect_MakeLTRB_r'>r</a>, <a href='#SkRect_MakeLTRB_b'>b</a>). Does not sort input; <a href='SkRect_Reference#SkRect'>SkRect</a> may
result in <a href='#SkRect_fLeft'>fLeft</a> greater than <a href='#SkRect_fRight'>fRight</a>, or <a href='#SkRect_fTop'>fTop</a> greater than <a href='#SkRect_fBottom'>fBottom</a>.
### Parameters
@@ -402,19 +402,19 @@
static <a href='#SkRect'>SkRect</a> <a href='#SkRect_Make'>Make</a>(const <a href='undocumented#SkISize'>SkISize</a>& size)
</pre>
-Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to (0, 0, <a href='#SkRect_Make_size'>size</a>.<a href='#SkRect_width'>width</a>(), <a href='#SkRect_Make_size'>size</a>.<a href='#SkRect_height'>height</a>()).
-Does not validate input; <a href='#SkRect_Make_size'>size</a>.<a href='#SkRect_width'>width</a>() or <a href='#SkRect_Make_size'>size</a>.<a href='#SkRect_height'>height</a>() may be negative.
+Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to (0, 0, <a href='#SkRect_Make_size'>size</a>.<a href='#SkISize_width'>width()</a>, <a href='#SkRect_Make_size'>size</a>.<a href='#SkISize_height'>height()</a>).
+Does not validate input; <a href='#SkRect_Make_size'>size</a>.<a href='#SkISize_width'>width()</a> or <a href='#SkRect_Make_size'>size</a>.<a href='#SkISize_height'>height()</a> may be negative.
### Parameters
<table> <tr> <td><a name='SkRect_Make_size'><code><strong>size</strong></code></a></td>
- <td>integer values for <a href='#SkRect'>SkRect</a> width and height</td>
+ <td>integer values for <a href='SkRect_Reference#SkRect'>SkRect</a> width and height</td>
</tr>
</table>
### Return Value
-bounds (0, 0, <a href='#SkRect_Make_size'>size</a>.<a href='#SkRect_width'>width</a>(), <a href='#SkRect_Make_size'>size</a>.<a href='#SkRect_height'>height</a>())
+bounds (0, 0, <a href='#SkRect_Make_size'>size</a>.<a href='#SkISize_width'>width()</a>, <a href='#SkRect_Make_size'>size</a>.<a href='#SkISize_height'>height()</a>)
### Example
@@ -440,7 +440,7 @@
static <a href='#SkRect'>SkRect</a> <a href='#SkRect_Make'>Make</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& irect)
</pre>
-Returns constructed <a href='SkIRect_Reference#IRect'>IRect</a> set to <a href='#SkRect_Make_2_irect'>irect</a>, promoting integers to <a href='undocumented#Scalar'>Scalar</a>.
+Returns constructed <a href='SkIRect_Reference#SkIRect'>SkIRect</a> set to <a href='#SkRect_Make_2_irect'>irect</a>, promoting integers to <a href='undocumented#Scalar'>scalar</a>.
Does not validate input; <a href='#SkRect_fLeft'>fLeft</a> may be greater than <a href='#SkRect_fRight'>fRight</a>, <a href='#SkRect_fTop'>fTop</a> may be greater
than <a href='#SkRect_fBottom'>fBottom</a>.
@@ -474,12 +474,12 @@
</pre>
Returns true if <a href='#SkRect_fLeft'>fLeft</a> is equal to or greater than <a href='#SkRect_fRight'>fRight</a>, or if <a href='#SkRect_fTop'>fTop</a> is equal
-to or greater than <a href='#SkRect_fBottom'>fBottom</a>. Call <a href='#SkRect_sort'>sort</a>() to reverse rectangles with negative
-<a href='#SkRect_width'>width</a>() or <a href='#SkRect_height'>height</a>().
+to or greater than <a href='#SkRect_fBottom'>fBottom</a>. Call <a href='#SkRect_sort'>sort()</a> to reverse rectangles with negative
+<a href='#SkRect_width'>width()</a> or <a href='#SkRect_height'>height()</a>.
### Return Value
-true if <a href='#SkRect_width'>width</a>() or <a href='#SkRect_height'>height</a>() are not positive and valid
+true if <a href='#SkRect_width'>width()</a> or <a href='#SkRect_height'>height()</a> are zero or negative
### Example
@@ -509,12 +509,12 @@
</pre>
Returns true if <a href='#SkRect_fLeft'>fLeft</a> is equal to or less than <a href='#SkRect_fRight'>fRight</a>, or if <a href='#SkRect_fTop'>fTop</a> is equal
-to or less than <a href='#SkRect_fBottom'>fBottom</a>. Call <a href='#SkRect_sort'>sort</a>() to reverse rectangles with negative
-<a href='#SkRect_width'>width</a>() or <a href='#SkRect_height'>height</a>().
+to or less than <a href='#SkRect_fBottom'>fBottom</a>. Call <a href='#SkRect_sort'>sort()</a> to reverse rectangles with negative
+<a href='#SkRect_width'>width()</a> or <a href='#SkRect_height'>height()</a>.
### Return Value
-true if <a href='#SkRect_width'>width</a>() or <a href='#SkRect_height'>height</a>() are zero or positive
+true if <a href='#SkRect_width'>width()</a> or <a href='#SkRect_height'>height()</a> are zero or positive
### Example
@@ -543,8 +543,8 @@
bool <a href='#SkRect_isFinite'>isFinite</a>() const
</pre>
-Returns true if all values in the rectangle are finite: <a href='undocumented#SK_ScalarMin'>SK ScalarMin</a> or larger,
-and <a href='undocumented#SK_ScalarMax'>SK ScalarMax</a> or smaller.
+Returns true if all values in the rectangle are finite: <a href='undocumented#SK_ScalarMin'>SK_ScalarMin</a> or larger,
+and <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a> or smaller.
### Return Value
@@ -576,8 +576,8 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_x'>x</a>() const
</pre>
-Returns left edge of <a href='#Rect'>Rect</a>, if sorted. Call <a href='#SkRect_isSorted'>isSorted</a> to see if <a href='#Rect'>Rect</a> is valid.
-Call <a href='#SkRect_sort'>sort</a>() to reverse <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a> if needed.
+Returns left edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, if sorted. Call <a href='#SkRect_isSorted'>isSorted</a>() to see if <a href='SkRect_Reference#SkRect'>SkRect</a> is valid.
+Call <a href='#SkRect_sort'>sort()</a> to reverse <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a> if needed.
### Return Value
@@ -608,8 +608,8 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_y'>y</a>() const
</pre>
-Returns top edge of <a href='#Rect'>Rect</a>, if sorted. Call <a href='#SkRect_isEmpty'>isEmpty</a> to see if <a href='#Rect'>Rect</a> may be invalid,
-and <a href='#SkRect_sort'>sort</a>() to reverse <a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a> if needed.
+Returns top edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, if sorted. Call <a href='#SkRect_isEmpty'>isEmpty</a>() to see if <a href='SkRect_Reference#SkRect'>SkRect</a> may be invalid,
+and <a href='#SkRect_sort'>sort()</a> to reverse <a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a> if needed.
### Return Value
@@ -640,8 +640,8 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_left'>left</a>() const
</pre>
-Returns left edge of <a href='#Rect'>Rect</a>, if sorted. Call <a href='#SkRect_isSorted'>isSorted</a> to see if <a href='#Rect'>Rect</a> is valid.
-Call <a href='#SkRect_sort'>sort</a>() to reverse <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a> if needed.
+Returns left edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, if sorted. Call <a href='#SkRect_isSorted'>isSorted</a>() to see if <a href='SkRect_Reference#SkRect'>SkRect</a> is valid.
+Call <a href='#SkRect_sort'>sort()</a> to reverse <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a> if needed.
### Return Value
@@ -672,8 +672,8 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_top'>top</a>() const
</pre>
-Returns top edge of <a href='#Rect'>Rect</a>, if sorted. Call <a href='#SkRect_isEmpty'>isEmpty</a> to see if <a href='#Rect'>Rect</a> may be invalid,
-and <a href='#SkRect_sort'>sort</a>() to reverse <a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a> if needed.
+Returns top edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, if sorted. Call <a href='#SkRect_isEmpty'>isEmpty</a>() to see if <a href='SkRect_Reference#SkRect'>SkRect</a> may be invalid,
+and <a href='#SkRect_sort'>sort()</a> to reverse <a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a> if needed.
### Return Value
@@ -704,8 +704,8 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_right'>right</a>() const
</pre>
-Returns right edge of <a href='#Rect'>Rect</a>, if sorted. Call <a href='#SkRect_isSorted'>isSorted</a> to see if <a href='#Rect'>Rect</a> is valid.
-Call <a href='#SkRect_sort'>sort</a>() to reverse <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a> if needed.
+Returns right edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, if sorted. Call <a href='#SkRect_isSorted'>isSorted</a>() to see if <a href='SkRect_Reference#SkRect'>SkRect</a> is valid.
+Call <a href='#SkRect_sort'>sort()</a> to reverse <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a> if needed.
### Return Value
@@ -736,8 +736,8 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_bottom'>bottom</a>() const
</pre>
-Returns bottom edge of <a href='#Rect'>Rect</a>, if sorted. Call <a href='#SkRect_isEmpty'>isEmpty</a> to see if <a href='#Rect'>Rect</a> may be invalid,
-and <a href='#SkRect_sort'>sort</a>() to reverse <a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a> if needed.
+Returns bottom edge of <a href='SkRect_Reference#SkRect'>SkRect</a>, if sorted. Call <a href='#SkRect_isEmpty'>isEmpty</a>() to see if <a href='SkRect_Reference#SkRect'>SkRect</a> may be invalid,
+and <a href='#SkRect_sort'>sort()</a> to reverse <a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a> if needed.
### Return Value
@@ -768,7 +768,7 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_width'>width</a>() const
</pre>
-Returns span on the x-axis. This does not check if <a href='#Rect'>Rect</a> is sorted, or if
+Returns span on the x-axis. This does not check if <a href='SkRect_Reference#SkRect'>SkRect</a> is sorted, or if
result fits in 32-bit float; result may be negative or infinity.
### Return Value
@@ -801,7 +801,7 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_height'>height</a>() const
</pre>
-Returns span on the y-axis. This does not check if <a href='#Rect'>Rect</a> is sorted, or if
+Returns span on the y-axis. This does not check if <a href='SkRect_Reference#SkRect'>SkRect</a> is sorted, or if
result fits in 32-bit float; result may be negative or infinity.
### Return Value
@@ -834,12 +834,12 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_centerX'>centerX</a>() const
</pre>
-Returns average of left edge and right edge. Result does not change if <a href='#Rect'>Rect</a>
-is sorted. Result may overflow to infinity if <a href='#Rect'>Rect</a> is far from the origin.
+Returns average of left edge and right edge. Result does not change if <a href='SkRect_Reference#SkRect'>SkRect</a>
+is sorted. Result may overflow to infinity if <a href='SkRect_Reference#SkRect'>SkRect</a> is far from the origin.
### Return Value
-midpoint in x
+midpoint on x-axis
### Example
@@ -868,12 +868,12 @@
<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkRect_centerY'>centerY</a>() const
</pre>
-Returns average of top edge and bottom edge. Result does not change if <a href='#Rect'>Rect</a>
+Returns average of top edge and bottom edge. Result does not change if <a href='SkRect_Reference#SkRect'>SkRect</a>
is sorted.
### Return Value
-midpoint in y
+midpoint on y-axis
### Example
@@ -901,19 +901,19 @@
bool <a href='#SkRect_equal_operator'>operator==(const SkRect& a, const SkRect& b)</a>
</pre>
-Returns true if all members in <a href='#SkRect_equal_operator_a'>a</a>: <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fRight'>fRight</a>, and <a href='#SkRect_fBottom'>fBottom</a>; are
-equal to the corresponding members in <a href='#SkRect_equal_operator_b'>b</a>.
+Returns true if all members in <a href='#SkRect_operator==(const SkRect& a, const SkRect& b)_a'>a</a>: <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fRight'>fRight</a>, and <a href='#SkRect_fBottom'>fBottom</a>; are
+equal to the corresponding members in <a href='#SkRect_operator==(const SkRect& a, const SkRect& b)_b'>b</a>.
-<a href='#SkRect_equal_operator_a'>a</a> and <a href='#SkRect_equal_operator_b'>b</a> are not equal if either contain NaN. <a href='#SkRect_equal_operator_a'>a</a> and <a href='#SkRect_equal_operator_b'>b</a> are equal if members
-contain zeroes width different signs.
+<a href='#SkRect_operator==(const SkRect& a, const SkRect& b)_a'>a</a> and <a href='#SkRect_operator==(const SkRect& a, const SkRect& b)_b'>b</a> are not equal if either contain NaN. <a href='#SkRect_operator==(const SkRect& a, const SkRect& b)_a'>a</a> and <a href='#SkRect_operator==(const SkRect& a, const SkRect& b)_b'>b</a> are equal if members
+contain zeroes with different signs.
### Parameters
<table> <tr> <td><a name='SkRect_equal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='#Rect'>Rect</a> to compare</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to compare</td>
</tr>
<tr> <td><a name='SkRect_equal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='#Rect'>Rect</a> to compare</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to compare</td>
</tr>
</table>
@@ -948,19 +948,19 @@
bool <a href='#SkRect_notequal_operator'>operator!=(const SkRect& a, const SkRect& b)</a>
</pre>
-Returns true if any in <a href='#SkRect_notequal_operator_a'>a</a>: <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fRight'>fRight</a>, and <a href='#SkRect_fBottom'>fBottom</a>; does not
-equal the corresponding members in <a href='#SkRect_notequal_operator_b'>b</a>.
+Returns true if any in <a href='#SkRect_operator!=(const SkRect& a, const SkRect& b)_a'>a</a>: <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fRight'>fRight</a>, and <a href='#SkRect_fBottom'>fBottom</a>; does not
+equal the corresponding members in <a href='#SkRect_operator!=(const SkRect& a, const SkRect& b)_b'>b</a>.
-<a href='#SkRect_notequal_operator_a'>a</a> and <a href='#SkRect_notequal_operator_b'>b</a> are not equal if either contain NaN. <a href='#SkRect_notequal_operator_a'>a</a> and <a href='#SkRect_notequal_operator_b'>b</a> are equal if members
-contain zeroes width different signs.
+<a href='#SkRect_operator!=(const SkRect& a, const SkRect& b)_a'>a</a> and <a href='#SkRect_operator!=(const SkRect& a, const SkRect& b)_b'>b</a> are not equal if either contain NaN. <a href='#SkRect_operator!=(const SkRect& a, const SkRect& b)_a'>a</a> and <a href='#SkRect_operator!=(const SkRect& a, const SkRect& b)_b'>b</a> are equal if members
+contain zeroes with different signs.
### Parameters
<table> <tr> <td><a name='SkRect_notequal_operator_a'><code><strong>a</strong></code></a></td>
- <td><a href='#Rect'>Rect</a> to compare</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to compare</td>
</tr>
<tr> <td><a name='SkRect_notequal_operator_b'><code><strong>b</strong></code></a></td>
- <td><a href='#Rect'>Rect</a> to compare</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to compare</td>
</tr>
</table>
@@ -1031,8 +1031,8 @@
void <a href='#SkRect_setBounds'>setBounds</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count)
</pre>
-Sets to bounds of <a href='SkPoint_Reference#Point'>Point</a> array with <a href='#SkRect_setBounds_count'>count</a> entries. If <a href='#SkRect_setBounds_count'>count</a> is zero or smaller,
-or if <a href='SkPoint_Reference#Point'>Point</a> array contains an infinity or NaN, sets to (0, 0, 0, 0).
+Sets to bounds of <a href='SkPath_Reference#Point_Array'>SkPoint array</a> with <a href='#SkRect_setBounds_count'>count</a> entries. If <a href='#SkRect_setBounds_count'>count</a> is zero or smaller,
+or if <a href='SkPath_Reference#Point_Array'>SkPoint array</a> contains an infinity or NaN, sets to (0, 0, 0, 0).
Result is either empty or sorted: <a href='#SkRect_fLeft'>fLeft</a> is less than or equal to <a href='#SkRect_fRight'>fRight</a>, and
<a href='#SkRect_fTop'>fTop</a> is less than or equal to <a href='#SkRect_fBottom'>fBottom</a>.
@@ -1040,7 +1040,7 @@
### Parameters
<table> <tr> <td><a name='SkRect_setBounds_pts'><code><strong>pts</strong></code></a></td>
- <td><a href='SkPoint_Reference#Point'>Point</a> array</td>
+ <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a></td>
</tr>
<tr> <td><a name='SkRect_setBounds_count'><code><strong>count</strong></code></a></td>
<td>entries in array</td>
@@ -1075,9 +1075,9 @@
bool <a href='#SkRect_setBoundsCheck'>setBoundsCheck</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count)
</pre>
-Sets to bounds of <a href='SkPoint_Reference#Point'>Point</a> array with <a href='#SkRect_setBoundsCheck_count'>count</a> entries. Returns false if <a href='#SkRect_setBoundsCheck_count'>count</a> is
-zero or smaller, or if <a href='SkPoint_Reference#Point'>Point</a> array contains an infinity or NaN; in these cases
-sets <a href='#Rect'>Rect</a> to (0, 0, 0, 0).
+Sets to bounds of <a href='SkPath_Reference#Point_Array'>SkPoint array</a> with <a href='#SkRect_setBoundsCheck_count'>count</a> entries. Returns false if <a href='#SkRect_setBoundsCheck_count'>count</a> is
+zero or smaller, or if <a href='SkPath_Reference#Point_Array'>SkPoint array</a> contains an infinity or NaN; in these cases
+sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (0, 0, 0, 0).
Result is either empty or sorted: <a href='#SkRect_fLeft'>fLeft</a> is less than or equal to <a href='#SkRect_fRight'>fRight</a>, and
<a href='#SkRect_fTop'>fTop</a> is less than or equal to <a href='#SkRect_fBottom'>fBottom</a>.
@@ -1085,7 +1085,7 @@
### Parameters
<table> <tr> <td><a name='SkRect_setBoundsCheck_pts'><code><strong>pts</strong></code></a></td>
- <td><a href='SkPoint_Reference#Point'>Point</a> array</td>
+ <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a></td>
</tr>
<tr> <td><a name='SkRect_setBoundsCheck_count'><code><strong>count</strong></code></a></td>
<td>entries in array</td>
@@ -1094,7 +1094,7 @@
### Return Value
-true if all <a href='SkPoint_Reference#Point'>Point</a> values are finite
+true if all <a href='SkPoint_Reference#SkPoint'>SkPoint</a> values are finite
### Example
@@ -1126,13 +1126,13 @@
void <a href='#SkRect_setBoundsNoCheck'>setBoundsNoCheck</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count)
</pre>
-Sets to bounds of <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkRect_setBoundsNoCheck_pts'>pts</a> array with <a href='#SkRect_setBoundsNoCheck_count'>count</a> entries. If any <a href='SkPoint_Reference#Point'>Point</a> in <a href='#SkRect_setBoundsNoCheck_pts'>pts</a>
-contains infinity or NaN, all <a href='#Rect'>Rect</a> dimensions are set to NaN.
+Sets to bounds of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkRect_setBoundsNoCheck_pts'>pts</a> array with <a href='#SkRect_setBoundsNoCheck_count'>count</a> entries. If any <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='#SkRect_setBoundsNoCheck_pts'>pts</a>
+contains infinity or NaN, all <a href='SkRect_Reference#SkRect'>SkRect</a> dimensions are set to NaN.
### Parameters
<table> <tr> <td><a name='SkRect_setBoundsNoCheck_pts'><code><strong>pts</strong></code></a></td>
- <td><a href='SkPoint_Reference#Point'>Point</a> array</td>
+ <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a></td>
</tr>
<tr> <td><a name='SkRect_setBoundsNoCheck_count'><code><strong>count</strong></code></a></td>
<td>entries in array</td>
@@ -1155,7 +1155,7 @@
void <a href='#SkRect_setEmpty'>setEmpty</a>()
</pre>
-Sets <a href='#Rect'>Rect</a> to (0, 0, 0, 0).
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (0, 0, 0, 0).
Many other rectangles are empty; if left is equal to or greater than right,
or if top is equal to or greater than bottom. Setting all members to zero
@@ -1186,13 +1186,13 @@
void <a href='#SkRect_set'>set</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& src)
</pre>
-Sets <a href='#Rect'>Rect</a> to <a href='#SkRect_set_src'>src</a>, promoting <a href='#SkRect_set_src'>src</a> members from integer to <a href='undocumented#Scalar'>Scalar</a>.
-Very large values in <a href='#SkRect_set_src'>src</a> may lose precision.
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to <a href='#SkRect_set()_src'>src</a>, promoting <a href='#SkRect_set()_src'>src</a> members from integer to <a href='undocumented#Scalar'>scalar</a>.
+Very large values in <a href='#SkRect_set()_src'>src</a> may lose precision.
### Parameters
<table> <tr> <td><a name='SkRect_set_src'><code><strong>src</strong></code></a></td>
- <td>integer <a href='#Rect'>Rect</a></td>
+ <td>integer <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
</table>
@@ -1221,9 +1221,9 @@
void <a href='#SkRect_set'>set</a>(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom)
</pre>
-Sets <a href='#Rect'>Rect</a> to (left, top, right, bottom).
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (<a href='#SkRect_set_2_left'>left</a>, <a href='#SkRect_set_2_top'>top</a>, <a href='#SkRect_set_2_right'>right</a>, <a href='#SkRect_set_2_bottom'>bottom</a>).
+<a href='#SkRect_set_2_left'>left</a> and <a href='#SkRect_set_2_right'>right</a> are not sorted; <a href='#SkRect_set_2_left'>left</a> is not necessarily less than <a href='#SkRect_set_2_right'>right</a>.
+<a href='#SkRect_set_2_top'>top</a> and <a href='#SkRect_set_2_bottom'>bottom</a> are not sorted; <a href='#SkRect_set_2_top'>top</a> is not necessarily less than <a href='#SkRect_set_2_bottom'>bottom</a>.
### Parameters
@@ -1266,9 +1266,9 @@
void <a href='#SkRect_setLTRB'>setLTRB</a>(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom)
</pre>
-Sets <a href='#Rect'>Rect</a> to (left, top, right, bottom).
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (<a href='#SkRect_setLTRB_left'>left</a>, <a href='#SkRect_setLTRB_top'>top</a>, <a href='#SkRect_setLTRB_right'>right</a>, <a href='#SkRect_setLTRB_bottom'>bottom</a>).
+<a href='#SkRect_setLTRB_left'>left</a> and <a href='#SkRect_setLTRB_right'>right</a> are not sorted; <a href='#SkRect_setLTRB_left'>left</a> is not necessarily less than <a href='#SkRect_setLTRB_right'>right</a>.
+<a href='#SkRect_setLTRB_top'>top</a> and <a href='#SkRect_setLTRB_bottom'>bottom</a> are not sorted; <a href='#SkRect_setLTRB_top'>top</a> is not necessarily less than <a href='#SkRect_setLTRB_bottom'>bottom</a>.
### Parameters
@@ -1311,8 +1311,8 @@
void <a href='#SkRect_set'>set</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count)
</pre>
-Sets to bounds of <a href='SkPoint_Reference#Point'>Point</a> array with <a href='#SkRect_set_3_count'>count</a> entries. If <a href='#SkRect_set_3_count'>count</a> is zero or smaller,
-or if <a href='SkPoint_Reference#Point'>Point</a> array contains an infinity or NaN, sets <a href='#Rect'>Rect</a> to (0, 0, 0, 0).
+Sets to bounds of <a href='SkPath_Reference#Point_Array'>SkPoint array</a> with <a href='#SkRect_set_3_count'>count</a> entries. If <a href='#SkRect_set_3_count'>count</a> is zero or smaller,
+or if <a href='SkPath_Reference#Point_Array'>SkPoint array</a> contains an infinity or NaN, sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (0, 0, 0, 0).
Result is either empty or sorted: <a href='#SkRect_fLeft'>fLeft</a> is less than or equal to <a href='#SkRect_fRight'>fRight</a>, and
<a href='#SkRect_fTop'>fTop</a> is less than or equal to <a href='#SkRect_fBottom'>fBottom</a>.
@@ -1320,7 +1320,7 @@
### Parameters
<table> <tr> <td><a name='SkRect_set_3_pts'><code><strong>pts</strong></code></a></td>
- <td><a href='SkPoint_Reference#Point'>Point</a> array</td>
+ <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a></td>
</tr>
<tr> <td><a name='SkRect_set_3_count'><code><strong>count</strong></code></a></td>
<td>entries in array</td>
@@ -1355,7 +1355,7 @@
void <a href='#SkRect_set'>set</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p0, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1)
</pre>
-Sets bounds to the smallest <a href='#Rect'>Rect</a> enclosing <a href='SkPoint_Reference#Point'>Points</a> <a href='#SkRect_set_4_p0'>p0</a> and <a href='#SkRect_set_4_p1'>p1</a>. The result is
+Sets bounds to the smallest <a href='SkRect_Reference#SkRect'>SkRect</a> enclosing <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkRect_set_4_p0'>p0</a> and <a href='#SkRect_set_4_p1'>p1</a>. The result is
sorted and may be empty. Does not check to see if values are finite.
### Parameters
@@ -1370,7 +1370,7 @@
### Example
-<div><fiddle-embed name="ee72450381f768f3869153cdbeccdc3e"><div><a href='#SkRect_set_4_p0'>p0</a> and <a href='#SkRect_set_4_p1'>p1</a> may be swapped and have the same effect unless one contains NaN.
+<div><fiddle-embed name="ee72450381f768f3869153cdbeccdc3e"><div>p0 and p1 may be swapped and have the same effect unless one contains NaN.
</div></fiddle-embed></div>
### See Also
@@ -1429,8 +1429,8 @@
void <a href='#SkRect_setWH'>setWH</a>(<a href='undocumented#SkScalar'>SkScalar</a> width, <a href='undocumented#SkScalar'>SkScalar</a> height)
</pre>
-Sets <a href='#Rect'>Rect</a> to (0, 0, width, height). Does not validate input;
-width or height may be negative.
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (0, 0, <a href='#SkRect_setWH_width'>width</a>, <a href='#SkRect_setWH_height'>height</a>). Does not validate input;
+<a href='#SkRect_setWH_width'>width</a> or <a href='#SkRect_setWH_height'>height</a> may be negative.
### Parameters
@@ -1469,10 +1469,10 @@
void <a href='#SkRect_iset'>iset</a>(int left, int top, int right, int bottom)
</pre>
-Sets <a href='#Rect'>Rect</a> to (left, top, right, bottom).
-All parameters are promoted from integer to <a href='undocumented#Scalar'>Scalar</a>.
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (<a href='#SkRect_iset()_left'>left</a>, <a href='#SkRect_iset()_top'>top</a>, <a href='#SkRect_iset()_right'>right</a>, <a href='#SkRect_iset()_bottom'>bottom</a>).
+All parameters are promoted from integer to <a href='undocumented#Scalar'>scalar</a>.
+<a href='#SkRect_iset()_left'>left</a> and <a href='#SkRect_iset()_right'>right</a> are not sorted; <a href='#SkRect_iset()_left'>left</a> is not necessarily less than <a href='#SkRect_iset()_right'>right</a>.
+<a href='#SkRect_iset()_top'>top</a> and <a href='#SkRect_iset()_bottom'>bottom</a> are not sorted; <a href='#SkRect_iset()_top'>top</a> is not necessarily less than <a href='#SkRect_iset()_bottom'>bottom</a>.
### Parameters
@@ -1515,8 +1515,8 @@
void <a href='#SkRect_isetWH'>isetWH</a>(int width, int height)
</pre>
-Sets <a href='#Rect'>Rect</a> to (0, 0, width, height).
-width and height may be zero or negative. width and height are promoted from
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to (0, 0, <a href='#SkRect_isetWH_width'>width</a>, <a href='#SkRect_isetWH_height'>height</a>).
+<a href='#SkRect_isetWH_width'>width</a> and <a href='#SkRect_isetWH_height'>height</a> may be zero or negative. <a href='#SkRect_isetWH_width'>width</a> and <a href='#SkRect_isetWH_height'>height</a> are promoted from
integer to <a href='undocumented#SkScalar'>SkScalar</a>, large values may lose precision.
### Parameters
@@ -1556,12 +1556,12 @@
<a href='#SkRect'>SkRect</a> <a href='#SkRect_makeOffset'>makeOffset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) const
</pre>
-Returns <a href='#Rect'>Rect</a> offset by (<a href='#SkRect_makeOffset_dx'>dx</a>, <a href='#SkRect_makeOffset_dy'>dy</a>).
+Returns <a href='SkRect_Reference#SkRect'>SkRect</a> offset by (<a href='#SkRect_makeOffset_dx'>dx</a>, <a href='#SkRect_makeOffset_dy'>dy</a>).
-If <a href='#SkRect_makeOffset_dx'>dx</a> is negative, <a href='#Rect'>Rect</a> returned is moved to the left.
-If <a href='#SkRect_makeOffset_dx'>dx</a> is positive, <a href='#Rect'>Rect</a> returned is moved to the right.
-If <a href='#SkRect_makeOffset_dy'>dy</a> is negative, <a href='#Rect'>Rect</a> returned is moved upward.
-If <a href='#SkRect_makeOffset_dy'>dy</a> is positive, <a href='#Rect'>Rect</a> returned is moved downward.
+If <a href='#SkRect_makeOffset_dx'>dx</a> is negative, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is moved to the left.
+If <a href='#SkRect_makeOffset_dx'>dx</a> is positive, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is moved to the right.
+If <a href='#SkRect_makeOffset_dy'>dy</a> is negative, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is moved upward.
+If <a href='#SkRect_makeOffset_dy'>dy</a> is positive, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is moved downward.
### Parameters
@@ -1575,7 +1575,7 @@
### Return Value
-<a href='#Rect'>Rect</a> offset on axes, with original width and height
+<a href='SkRect_Reference#SkRect'>SkRect</a> offset on axes, with original width and height
### Example
@@ -1602,12 +1602,12 @@
<a href='#SkRect'>SkRect</a> <a href='#SkRect_makeInset'>makeInset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) const
</pre>
-Returns <a href='#Rect'>Rect</a>, inset by (<a href='#SkRect_makeInset_dx'>dx</a>, <a href='#SkRect_makeInset_dy'>dy</a>).
+Returns <a href='SkRect_Reference#SkRect'>SkRect</a>, inset by (<a href='#SkRect_makeInset_dx'>dx</a>, <a href='#SkRect_makeInset_dy'>dy</a>).
-If <a href='#SkRect_makeInset_dx'>dx</a> is negative, <a href='#Rect'>Rect</a> returned is wider.
-If <a href='#SkRect_makeInset_dx'>dx</a> is positive, <a href='#Rect'>Rect</a> returned is narrower.
-If <a href='#SkRect_makeInset_dy'>dy</a> is negative, <a href='#Rect'>Rect</a> returned is taller.
-If <a href='#SkRect_makeInset_dy'>dy</a> is positive, <a href='#Rect'>Rect</a> returned is shorter.
+If <a href='#SkRect_makeInset_dx'>dx</a> is negative, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is wider.
+If <a href='#SkRect_makeInset_dx'>dx</a> is positive, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is narrower.
+If <a href='#SkRect_makeInset_dy'>dy</a> is negative, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is taller.
+If <a href='#SkRect_makeInset_dy'>dy</a> is positive, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is shorter.
### Parameters
@@ -1621,7 +1621,7 @@
### Return Value
-<a href='#Rect'>Rect</a> inset symmetrically left and right, top and bottom
+<a href='SkRect_Reference#SkRect'>SkRect</a> inset symmetrically left and right, top and bottom
### Example
@@ -1648,12 +1648,12 @@
<a href='#SkRect'>SkRect</a> <a href='#SkRect_makeOutset'>makeOutset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) const
</pre>
-Returns <a href='#Rect'>Rect</a>, outset by (<a href='#SkRect_makeOutset_dx'>dx</a>, <a href='#SkRect_makeOutset_dy'>dy</a>).
+Returns <a href='SkRect_Reference#SkRect'>SkRect</a>, outset by (<a href='#SkRect_makeOutset_dx'>dx</a>, <a href='#SkRect_makeOutset_dy'>dy</a>).
-If <a href='#SkRect_makeOutset_dx'>dx</a> is negative, <a href='#Rect'>Rect</a> returned is narrower.
-If <a href='#SkRect_makeOutset_dx'>dx</a> is positive, <a href='#Rect'>Rect</a> returned is wider.
-If <a href='#SkRect_makeOutset_dy'>dy</a> is negative, <a href='#Rect'>Rect</a> returned is shorter.
-If <a href='#SkRect_makeOutset_dy'>dy</a> is positive, <a href='#Rect'>Rect</a> returned is taller.
+If <a href='#SkRect_makeOutset_dx'>dx</a> is negative, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is narrower.
+If <a href='#SkRect_makeOutset_dx'>dx</a> is positive, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is wider.
+If <a href='#SkRect_makeOutset_dy'>dy</a> is negative, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is shorter.
+If <a href='#SkRect_makeOutset_dy'>dy</a> is positive, <a href='SkRect_Reference#SkRect'>SkRect</a> returned is taller.
### Parameters
@@ -1667,7 +1667,7 @@
### Return Value
-<a href='#Rect'>Rect</a> outset symmetrically left and right, top and bottom
+<a href='SkRect_Reference#SkRect'>SkRect</a> outset symmetrically left and right, top and bottom
### Example
@@ -1694,12 +1694,12 @@
void <a href='#SkRect_offset'>offset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Offsets <a href='#Rect'>Rect</a> by adding <a href='#SkRect_offset_dx'>dx</a> to <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fRight'>fRight</a>; and by adding <a href='#SkRect_offset_dy'>dy</a> to <a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fBottom'>fBottom</a>.
+Offsets <a href='SkRect_Reference#SkRect'>SkRect</a> by adding <a href='#SkRect_offset()_dx'>dx</a> to <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fRight'>fRight</a>; and by adding <a href='#SkRect_offset()_dy'>dy</a> to <a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fBottom'>fBottom</a>.
-If <a href='#SkRect_offset_dx'>dx</a> is negative, moves <a href='#Rect'>Rect</a> to the left.
-If <a href='#SkRect_offset_dx'>dx</a> is positive, moves <a href='#Rect'>Rect</a> to the right.
-If <a href='#SkRect_offset_dy'>dy</a> is negative, moves <a href='#Rect'>Rect</a> upward.
-If <a href='#SkRect_offset_dy'>dy</a> is positive, moves <a href='#Rect'>Rect</a> downward.
+If <a href='#SkRect_offset()_dx'>dx</a> is negative, moves <a href='SkRect_Reference#SkRect'>SkRect</a> to the left.
+If <a href='#SkRect_offset()_dx'>dx</a> is positive, moves <a href='SkRect_Reference#SkRect'>SkRect</a> to the right.
+If <a href='#SkRect_offset()_dy'>dy</a> is negative, moves <a href='SkRect_Reference#SkRect'>SkRect</a> upward.
+If <a href='#SkRect_offset()_dy'>dy</a> is positive, moves <a href='SkRect_Reference#SkRect'>SkRect</a> downward.
### Parameters
@@ -1735,18 +1735,18 @@
void <a href='#SkRect_offset'>offset</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& delta)
</pre>
-Offsets <a href='#Rect'>Rect</a> by adding <a href='#SkRect_offset_2_delta'>delta</a>.fX to <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fRight'>fRight</a>; and by adding <a href='#SkRect_offset_2_delta'>delta</a>.fY to
+Offsets <a href='SkRect_Reference#SkRect'>SkRect</a> by adding <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fX'>fX</a> to <a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkRect_fRight'>fRight</a>; and by adding <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fY'>fY</a> to
<a href='#SkRect_fTop'>fTop</a>, <a href='#SkRect_fBottom'>fBottom</a>.
-If <a href='#SkRect_offset_2_delta'>delta</a>.fX is negative, moves <a href='#Rect'>Rect</a> to the left.
-If <a href='#SkRect_offset_2_delta'>delta</a>.fX is positive, moves <a href='#Rect'>Rect</a> to the right.
-If <a href='#SkRect_offset_2_delta'>delta</a>.fY is negative, moves <a href='#Rect'>Rect</a> upward.
-If <a href='#SkRect_offset_2_delta'>delta</a>.fY is positive, moves <a href='#Rect'>Rect</a> downward.
+If <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fX'>fX</a> is negative, moves <a href='SkRect_Reference#SkRect'>SkRect</a> to the left.
+If <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fX'>fX</a> is positive, moves <a href='SkRect_Reference#SkRect'>SkRect</a> to the right.
+If <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fY'>fY</a> is negative, moves <a href='SkRect_Reference#SkRect'>SkRect</a> upward.
+If <a href='#SkRect_offset_2_delta'>delta</a>.<a href='#SkPoint_fY'>fY</a> is positive, moves <a href='SkRect_Reference#SkRect'>SkRect</a> downward.
### Parameters
<table> <tr> <td><a name='SkRect_offset_2_delta'><code><strong>delta</strong></code></a></td>
- <td>added to <a href='#Rect'>Rect</a></td>
+ <td>added to <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
</table>
@@ -1774,16 +1774,16 @@
void <a href='#SkRect_offsetTo'>offsetTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> newX, <a href='undocumented#SkScalar'>SkScalar</a> newY)
</pre>
-Offsets <a href='#Rect'>Rect</a> so that <a href='#SkRect_fLeft'>fLeft</a> equals <a href='#SkRect_offsetTo_newX'>newX</a>, and <a href='#SkRect_fTop'>fTop</a> equals <a href='#SkRect_offsetTo_newY'>newY</a>. width and height
+Offsets <a href='SkRect_Reference#SkRect'>SkRect</a> so that <a href='#SkRect_fLeft'>fLeft</a> equals <a href='#SkRect_offsetTo_newX'>newX</a>, and <a href='#SkRect_fTop'>fTop</a> equals <a href='#SkRect_offsetTo_newY'>newY</a>. width and height
are unchanged.
### Parameters
<table> <tr> <td><a name='SkRect_offsetTo_newX'><code><strong>newX</strong></code></a></td>
- <td>stored in <a href='#SkRect_fLeft'>fLeft</a>, preserving <a href='#SkRect_width'>width</a>()</td>
+ <td>stored in <a href='#SkRect_fLeft'>fLeft</a>, preserving <a href='#SkRect_width'>width()</a></td>
</tr>
<tr> <td><a name='SkRect_offsetTo_newY'><code><strong>newY</strong></code></a></td>
- <td>stored in <a href='#SkRect_fTop'>fTop</a>, preserving <a href='#SkRect_height'>height</a>()</td>
+ <td>stored in <a href='#SkRect_fTop'>fTop</a>, preserving <a href='#SkRect_height'>height()</a></td>
</tr>
</table>
@@ -1811,12 +1811,12 @@
void <a href='#SkRect_inset'>inset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Insets <a href='#Rect'>Rect</a> by (<a href='#SkRect_inset_dx'>dx</a>, <a href='#SkRect_inset_dy'>dy</a>).
+Insets <a href='SkRect_Reference#SkRect'>SkRect</a> by (<a href='#SkRect_inset()_dx'>dx</a>, <a href='#SkRect_inset()_dy'>dy</a>).
-If <a href='#SkRect_inset_dx'>dx</a> is positive, makes <a href='#Rect'>Rect</a> narrower.
-If <a href='#SkRect_inset_dx'>dx</a> is negative, makes <a href='#Rect'>Rect</a> wider.
-If <a href='#SkRect_inset_dy'>dy</a> is positive, makes <a href='#Rect'>Rect</a> shorter.
-If <a href='#SkRect_inset_dy'>dy</a> is negative, makes <a href='#Rect'>Rect</a> taller.
+If <a href='#SkRect_inset()_dx'>dx</a> is positive, makes <a href='SkRect_Reference#SkRect'>SkRect</a> narrower.
+If <a href='#SkRect_inset()_dx'>dx</a> is negative, makes <a href='SkRect_Reference#SkRect'>SkRect</a> wider.
+If <a href='#SkRect_inset()_dy'>dy</a> is positive, makes <a href='SkRect_Reference#SkRect'>SkRect</a> shorter.
+If <a href='#SkRect_inset()_dy'>dy</a> is negative, makes <a href='SkRect_Reference#SkRect'>SkRect</a> taller.
### Parameters
@@ -1852,12 +1852,12 @@
void <a href='#SkRect_outset'>outset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
-Outsets <a href='#Rect'>Rect</a> by (<a href='#SkRect_outset_dx'>dx</a>, <a href='#SkRect_outset_dy'>dy</a>).
+Outsets <a href='SkRect_Reference#SkRect'>SkRect</a> by (<a href='#SkRect_outset()_dx'>dx</a>, <a href='#SkRect_outset()_dy'>dy</a>).
-If <a href='#SkRect_outset_dx'>dx</a> is positive, makes <a href='#Rect'>Rect</a> wider.
-If <a href='#SkRect_outset_dx'>dx</a> is negative, makes <a href='#Rect'>Rect</a> narrower.
-If <a href='#SkRect_outset_dy'>dy</a> is positive, makes <a href='#Rect'>Rect</a> taller.
-If <a href='#SkRect_outset_dy'>dy</a> is negative, makes <a href='#Rect'>Rect</a> shorter.
+If <a href='#SkRect_outset()_dx'>dx</a> is positive, makes <a href='SkRect_Reference#SkRect'>SkRect</a> wider.
+If <a href='#SkRect_outset()_dx'>dx</a> is negative, makes <a href='SkRect_Reference#SkRect'>SkRect</a> narrower.
+If <a href='#SkRect_outset()_dy'>dy</a> is positive, makes <a href='SkRect_Reference#SkRect'>SkRect</a> taller.
+If <a href='#SkRect_outset()_dy'>dy</a> is negative, makes <a href='SkRect_Reference#SkRect'>SkRect</a> shorter.
### Parameters
@@ -1904,22 +1904,22 @@
bool <a href='#SkRect_contains'>contains</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y) const
</pre>
-Returns true if: <a href='#SkRect_fLeft'>fLeft</a> <= x < <a href='#SkRect_fRight'>fRight</a> && <a href='#SkRect_fTop'>fTop</a> <= y < <a href='#SkRect_fBottom'>fBottom</a>.
-Returns false if <a href='#SkRect'>SkRect</a> is empty.
+Returns true if: <a href='#SkRect_fLeft'>fLeft</a> <= <a href='#SkRect_contains()_x'>x</a> < <a href='#SkRect_fRight'>fRight</a> && <a href='#SkRect_fTop'>fTop</a> <= <a href='#SkRect_contains()_y'>y</a> < <a href='#SkRect_fBottom'>fBottom</a>.
+Returns false if <a href='SkRect_Reference#SkRect'>SkRect</a> is empty.
### Parameters
<table> <tr> <td><a name='SkRect_contains_x'><code><strong>x</strong></code></a></td>
- <td>test <a href='SkPoint_Reference#Point'>Point</a> x-coordinate</td>
+ <td>test <a href='SkPoint_Reference#SkPoint'>SkPoint</a> x-coordinate</td>
</tr>
<tr> <td><a name='SkRect_contains_y'><code><strong>y</strong></code></a></td>
- <td>test <a href='SkPoint_Reference#Point'>Point</a> y-coordinate</td>
+ <td>test <a href='SkPoint_Reference#SkPoint'>SkPoint</a> y-coordinate</td>
</tr>
</table>
### Return Value
-true if (x, y) is inside <a href='#Rect'>Rect</a>
+true if (<a href='#SkRect_contains()_x'>x</a>, <a href='#SkRect_contains()_y'>y</a>) is inside <a href='SkRect_Reference#SkRect'>SkRect</a>
### Example
@@ -1947,21 +1947,21 @@
bool <a href='#SkRect_contains'>contains</a>(const <a href='#SkRect'>SkRect</a>& r) const
</pre>
-Returns true if <a href='#Rect'>Rect</a> contains <a href='#SkRect_contains_2_r'>r</a>.
-Returns false if <a href='#Rect'>Rect</a> is empty or <a href='#SkRect_contains_2_r'>r</a> is empty.
+Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> contains <a href='#SkRect_contains_2_r'>r</a>.
+Returns false if <a href='SkRect_Reference#SkRect'>SkRect</a> is empty or <a href='#SkRect_contains_2_r'>r</a> is empty.
-<a href='#Rect'>Rect</a> contains <a href='#SkRect_contains_2_r'>r</a> when <a href='#Rect'>Rect</a> area completely includes <a href='#SkRect_contains_2_r'>r</a> area.
+<a href='SkRect_Reference#SkRect'>SkRect</a> contains <a href='#SkRect_contains_2_r'>r</a> when <a href='SkRect_Reference#SkRect'>SkRect</a> area completely includes <a href='#SkRect_contains_2_r'>r</a> area.
### Parameters
<table> <tr> <td><a name='SkRect_contains_2_r'><code><strong>r</strong></code></a></td>
- <td><a href='#Rect'>Rect</a> contained</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> contained</td>
</tr>
</table>
### Return Value
-true if all sides of <a href='#Rect'>Rect</a> are outside <a href='#SkRect_contains_2_r'>r</a>
+true if all sides of <a href='SkRect_Reference#SkRect'>SkRect</a> are outside <a href='#SkRect_contains_2_r'>r</a>
### Example
@@ -1989,21 +1989,21 @@
bool <a href='#SkRect_contains'>contains</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r) const
</pre>
-Returns true if <a href='#Rect'>Rect</a> contains <a href='#SkRect_contains_3_r'>r</a>.
-Returns false if <a href='#Rect'>Rect</a> is empty or <a href='#SkRect_contains_3_r'>r</a> is empty.
+Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> contains <a href='#SkRect_contains_3_r'>r</a>.
+Returns false if <a href='SkRect_Reference#SkRect'>SkRect</a> is empty or <a href='#SkRect_contains_3_r'>r</a> is empty.
-<a href='#Rect'>Rect</a> contains <a href='#SkRect_contains_3_r'>r</a> when <a href='#Rect'>Rect</a> area completely includes <a href='#SkRect_contains_3_r'>r</a> area.
+<a href='SkRect_Reference#SkRect'>SkRect</a> contains <a href='#SkRect_contains_3_r'>r</a> when <a href='SkRect_Reference#SkRect'>SkRect</a> area completely includes <a href='#SkRect_contains_3_r'>r</a> area.
### Parameters
<table> <tr> <td><a name='SkRect_contains_3_r'><code><strong>r</strong></code></a></td>
- <td><a href='SkIRect_Reference#IRect'>IRect</a> contained</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> contained</td>
</tr>
</table>
### Return Value
-true if all sides of <a href='#Rect'>Rect</a> are outside <a href='#SkRect_contains_3_r'>r</a>
+true if all sides of <a href='SkRect_Reference#SkRect'>SkRect</a> are outside <a href='#SkRect_contains_3_r'>r</a>
### Example
@@ -2031,10 +2031,10 @@
bool <a href='#SkRect_intersect'>intersect</a>(const <a href='#SkRect'>SkRect</a>& r)
</pre>
-Returns true if <a href='#Rect'>Rect</a> intersects <a href='#SkRect_intersect_r'>r</a>, and sets <a href='#Rect'>Rect</a> to intersection.
-Returns false if <a href='#Rect'>Rect</a> does not intersect <a href='#SkRect_intersect_r'>r</a>, and leaves <a href='#Rect'>Rect</a> unchanged.
+Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> intersects <a href='#SkRect_intersect()_r'>r</a>, and sets <a href='SkRect_Reference#SkRect'>SkRect</a> to intersection.
+Returns false if <a href='SkRect_Reference#SkRect'>SkRect</a> does not intersect <a href='#SkRect_intersect()_r'>r</a>, and leaves <a href='SkRect_Reference#SkRect'>SkRect</a> unchanged.
-Returns false if either <a href='#SkRect_intersect_r'>r</a> or <a href='#Rect'>Rect</a> is empty, leaving <a href='#Rect'>Rect</a> unchanged.
+Returns false if either <a href='#SkRect_intersect()_r'>r</a> or <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, leaving <a href='SkRect_Reference#SkRect'>SkRect</a> unchanged.
### Parameters
@@ -2045,7 +2045,7 @@
### Return Value
-true if <a href='#SkRect_intersect_r'>r</a> and <a href='#Rect'>Rect</a> have area in common
+true if <a href='#SkRect_intersect()_r'>r</a> and <a href='SkRect_Reference#SkRect'>SkRect</a> have area in common
### Example
@@ -2074,33 +2074,33 @@
bool <a href='#SkRect_intersect'>intersect</a>(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom)
</pre>
-Constructs <a href='#Rect'>Rect</a> to intersect from (left, top, right, bottom). Does not sort
+Constructs <a href='SkRect_Reference#SkRect'>SkRect</a> to intersect from (<a href='#SkRect_intersect_2_left'>left</a>, <a href='#SkRect_intersect_2_top'>top</a>, <a href='#SkRect_intersect_2_right'>right</a>, <a href='#SkRect_intersect_2_bottom'>bottom</a>). Does not sort
construction.
-Returns true if <a href='#Rect'>Rect</a> intersects construction, and sets <a href='#Rect'>Rect</a> to intersection.
-Returns false if <a href='#Rect'>Rect</a> does not intersect construction, and leaves <a href='#Rect'>Rect</a> unchanged.
+Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> intersects construction, and sets <a href='SkRect_Reference#SkRect'>SkRect</a> to intersection.
+Returns false if <a href='SkRect_Reference#SkRect'>SkRect</a> does not intersect construction, and leaves <a href='SkRect_Reference#SkRect'>SkRect</a> unchanged.
-Returns false if either construction or <a href='#Rect'>Rect</a> is empty, leaving <a href='#Rect'>Rect</a> unchanged.
+Returns false if either construction or <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, leaving <a href='SkRect_Reference#SkRect'>SkRect</a> unchanged.
### Parameters
<table> <tr> <td><a name='SkRect_intersect_2_left'><code><strong>left</strong></code></a></td>
- <td>x-axis minimum of constructed <a href='#Rect'>Rect</a></td>
+ <td>x-axis minimum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
<tr> <td><a name='SkRect_intersect_2_top'><code><strong>top</strong></code></a></td>
- <td>y-axis minimum of constructed <a href='#Rect'>Rect</a></td>
+ <td>y-axis minimum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
<tr> <td><a name='SkRect_intersect_2_right'><code><strong>right</strong></code></a></td>
- <td>x-axis maximum of constructed <a href='#Rect'>Rect</a></td>
+ <td>x-axis maximum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
<tr> <td><a name='SkRect_intersect_2_bottom'><code><strong>bottom</strong></code></a></td>
- <td>y-axis maximum of constructed <a href='#Rect'>Rect</a></td>
+ <td>y-axis maximum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
</table>
### Return Value
-true if construction and <a href='#Rect'>Rect</a> have area in common
+true if construction and <a href='SkRect_Reference#SkRect'>SkRect</a> have area in common
### Example
@@ -2129,18 +2129,18 @@
bool <a href='#SkRect_intersect'>intersect</a>(const <a href='#SkRect'>SkRect</a>& a, const <a href='#SkRect'>SkRect</a>& b)
</pre>
-Returns true if <a href='#SkRect_intersect_3_a'>a</a> intersects <a href='#SkRect_intersect_3_b'>b</a>, and sets <a href='#Rect'>Rect</a> to intersection.
-Returns false if <a href='#SkRect_intersect_3_a'>a</a> does not intersect <a href='#SkRect_intersect_3_b'>b</a>, and leaves <a href='#Rect'>Rect</a> unchanged.
+Returns true if <a href='#SkRect_intersect_3_a'>a</a> intersects <a href='#SkRect_intersect_3_b'>b</a>, and sets <a href='SkRect_Reference#SkRect'>SkRect</a> to intersection.
+Returns false if <a href='#SkRect_intersect_3_a'>a</a> does not intersect <a href='#SkRect_intersect_3_b'>b</a>, and leaves <a href='SkRect_Reference#SkRect'>SkRect</a> unchanged.
-Returns false if either <a href='#SkRect_intersect_3_a'>a</a> or <a href='#SkRect_intersect_3_b'>b</a> is empty, leaving <a href='#Rect'>Rect</a> unchanged.
+Returns false if either <a href='#SkRect_intersect_3_a'>a</a> or <a href='#SkRect_intersect_3_b'>b</a> is empty, leaving <a href='SkRect_Reference#SkRect'>SkRect</a> unchanged.
### Parameters
<table> <tr> <td><a name='SkRect_intersect_3_a'><code><strong>a</strong></code></a></td>
- <td><a href='#Rect'>Rect</a> to intersect</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to intersect</td>
</tr>
<tr> <td><a name='SkRect_intersect_3_b'><code><strong>b</strong></code></a></td>
- <td><a href='#Rect'>Rect</a> to intersect</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to intersect</td>
</tr>
</table>
@@ -2172,31 +2172,31 @@
bool <a href='#SkRect_intersects'>intersects</a>(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom) const
</pre>
-Constructs <a href='#Rect'>Rect</a> to intersect from (left, top, right, bottom). Does not sort
+Constructs <a href='SkRect_Reference#SkRect'>SkRect</a> to intersect from (<a href='#SkRect_intersects()_left'>left</a>, <a href='#SkRect_intersects()_top'>top</a>, <a href='#SkRect_intersects()_right'>right</a>, <a href='#SkRect_intersects()_bottom'>bottom</a>). Does not sort
construction.
-Returns true if <a href='#Rect'>Rect</a> intersects construction.
-Returns false if either construction or <a href='#Rect'>Rect</a> is empty, or do not intersect.
+Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> intersects construction.
+Returns false if either construction or <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, or do not intersect.
### Parameters
<table> <tr> <td><a name='SkRect_intersects_left'><code><strong>left</strong></code></a></td>
- <td>x-axis minimum of constructed <a href='#Rect'>Rect</a></td>
+ <td>x-axis minimum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
<tr> <td><a name='SkRect_intersects_top'><code><strong>top</strong></code></a></td>
- <td>y-axis minimum of constructed <a href='#Rect'>Rect</a></td>
+ <td>y-axis minimum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
<tr> <td><a name='SkRect_intersects_right'><code><strong>right</strong></code></a></td>
- <td>x-axis maximum of constructed <a href='#Rect'>Rect</a></td>
+ <td>x-axis maximum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
<tr> <td><a name='SkRect_intersects_bottom'><code><strong>bottom</strong></code></a></td>
- <td>y-axis maximum of constructed <a href='#Rect'>Rect</a></td>
+ <td>y-axis maximum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
</table>
### Return Value
-true if construction and <a href='#Rect'>Rect</a> have area in common
+true if construction and <a href='SkRect_Reference#SkRect'>SkRect</a> have area in common
### Example
@@ -2222,19 +2222,19 @@
bool <a href='#SkRect_intersects'>intersects</a>(const <a href='#SkRect'>SkRect</a>& r) const
</pre>
-Returns true if <a href='#Rect'>Rect</a> intersects <a href='#SkRect_intersects_2_r'>r</a>.
-Returns false if either <a href='#SkRect_intersects_2_r'>r</a> or <a href='#Rect'>Rect</a> is empty, or do not intersect.
+Returns true if <a href='SkRect_Reference#SkRect'>SkRect</a> intersects <a href='#SkRect_intersects_2_r'>r</a>.
+Returns false if either <a href='#SkRect_intersects_2_r'>r</a> or <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, or do not intersect.
### Parameters
<table> <tr> <td><a name='SkRect_intersects_2_r'><code><strong>r</strong></code></a></td>
- <td><a href='#Rect'>Rect</a> to intersect</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to intersect</td>
</tr>
</table>
### Return Value
-true if <a href='#SkRect_intersects_2_r'>r</a> and <a href='#Rect'>Rect</a> have area in common
+true if <a href='#SkRect_intersects_2_r'>r</a> and <a href='SkRect_Reference#SkRect'>SkRect</a> have area in common
### Example
@@ -2266,10 +2266,10 @@
### Parameters
<table> <tr> <td><a name='SkRect_Intersects_a'><code><strong>a</strong></code></a></td>
- <td><a href='#Rect'>Rect</a> to intersect</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to intersect</td>
</tr>
<tr> <td><a name='SkRect_Intersects_b'><code><strong>b</strong></code></a></td>
- <td><a href='#Rect'>Rect</a> to intersect</td>
+ <td><a href='SkRect_Reference#SkRect'>SkRect</a> to intersect</td>
</tr>
</table>
@@ -2303,27 +2303,27 @@
void <a href='#SkRect_join'>join</a>(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom)
</pre>
-Constructs <a href='#Rect'>Rect</a> to intersect from (left, top, right, bottom). Does not sort
+Constructs <a href='SkRect_Reference#SkRect'>SkRect</a> to intersect from (<a href='#SkRect_join()_left'>left</a>, <a href='#SkRect_join()_top'>top</a>, <a href='#SkRect_join()_right'>right</a>, <a href='#SkRect_join()_bottom'>bottom</a>). Does not sort
construction.
-Sets <a href='#Rect'>Rect</a> to the union of itself and the construction.
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to the union of itself and the construction.
-Has no effect if construction is empty. Otherwise, if <a href='#Rect'>Rect</a> is empty, sets
-<a href='#Rect'>Rect</a> to construction.
+Has no effect if construction is empty. Otherwise, if <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, sets
+<a href='SkRect_Reference#SkRect'>SkRect</a> to construction.
### Parameters
<table> <tr> <td><a name='SkRect_join_left'><code><strong>left</strong></code></a></td>
- <td>x-axis minimum of constructed <a href='#Rect'>Rect</a></td>
+ <td>x-axis minimum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
<tr> <td><a name='SkRect_join_top'><code><strong>top</strong></code></a></td>
- <td>y-axis minimum of constructed <a href='#Rect'>Rect</a></td>
+ <td>y-axis minimum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
<tr> <td><a name='SkRect_join_right'><code><strong>right</strong></code></a></td>
- <td>x-axis maximum of constructed <a href='#Rect'>Rect</a></td>
+ <td>x-axis maximum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
<tr> <td><a name='SkRect_join_bottom'><code><strong>bottom</strong></code></a></td>
- <td>y-axis maximum of constructed <a href='#Rect'>Rect</a></td>
+ <td>y-axis maximum of constructed <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
</table>
@@ -2351,15 +2351,15 @@
void <a href='#SkRect_join'>join</a>(const <a href='#SkRect'>SkRect</a>& r)
</pre>
-Sets <a href='#Rect'>Rect</a> to the union of itself and <a href='#SkRect_join_2_r'>r</a>.
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to the union of itself and <a href='#SkRect_join_2_r'>r</a>.
-Has no effect if <a href='#SkRect_join_2_r'>r</a> is empty. Otherwise, if <a href='#Rect'>Rect</a> is empty, sets
-<a href='#Rect'>Rect</a> to <a href='#SkRect_join_2_r'>r</a>.
+Has no effect if <a href='#SkRect_join_2_r'>r</a> is empty. Otherwise, if <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, sets
+<a href='SkRect_Reference#SkRect'>SkRect</a> to <a href='#SkRect_join_2_r'>r</a>.
### Parameters
<table> <tr> <td><a name='SkRect_join_2_r'><code><strong>r</strong></code></a></td>
- <td>expansion <a href='#Rect'>Rect</a></td>
+ <td>expansion <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
</table>
@@ -2387,17 +2387,17 @@
void <a href='#SkRect_joinNonEmptyArg'>joinNonEmptyArg</a>(const <a href='#SkRect'>SkRect</a>& r)
</pre>
-Sets <a href='#Rect'>Rect</a> to the union of itself and <a href='#SkRect_joinNonEmptyArg_r'>r</a>.
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to the union of itself and <a href='#SkRect_joinNonEmptyArg_r'>r</a>.
Asserts if <a href='#SkRect_joinNonEmptyArg_r'>r</a> is empty and SK_DEBUG is defined.
-If <a href='#Rect'>Rect</a> is empty, sets <a href='#Rect'>Rect</a> to <a href='#SkRect_joinNonEmptyArg_r'>r</a>.
+If <a href='SkRect_Reference#SkRect'>SkRect</a> is empty, sets <a href='SkRect_Reference#SkRect'>SkRect</a> to <a href='#SkRect_joinNonEmptyArg_r'>r</a>.
May produce incorrect results if <a href='#SkRect_joinNonEmptyArg_r'>r</a> is empty.
### Parameters
<table> <tr> <td><a name='SkRect_joinNonEmptyArg_r'><code><strong>r</strong></code></a></td>
- <td>expansion <a href='#Rect'>Rect</a></td>
+ <td>expansion <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
</table>
@@ -2427,14 +2427,14 @@
void <a href='#SkRect_joinPossiblyEmptyRect'>joinPossiblyEmptyRect</a>(const <a href='#SkRect'>SkRect</a>& r)
</pre>
-Sets <a href='#Rect'>Rect</a> to the union of itself and the construction.
+Sets <a href='SkRect_Reference#SkRect'>SkRect</a> to the union of itself and the construction.
-May produce incorrect results if <a href='#Rect'>Rect</a> or <a href='#SkRect_joinPossiblyEmptyRect_r'>r</a> is empty.
+May produce incorrect results if <a href='SkRect_Reference#SkRect'>SkRect</a> or <a href='#SkRect_joinPossiblyEmptyRect_r'>r</a> is empty.
### Parameters
<table> <tr> <td><a name='SkRect_joinPossiblyEmptyRect_r'><code><strong>r</strong></code></a></td>
- <td>expansion <a href='#Rect'>Rect</a></td>
+ <td>expansion <a href='SkRect_Reference#SkRect'>SkRect</a></td>
</tr>
</table>
@@ -2674,7 +2674,7 @@
Swaps <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a> if <a href='#SkRect_fLeft'>fLeft</a> is greater than <a href='#SkRect_fRight'>fRight</a>; and swaps
<a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a> if <a href='#SkRect_fTop'>fTop</a> is greater than <a href='#SkRect_fBottom'>fBottom</a>. Result may be empty;
-and <a href='#SkRect_width'>width</a>() and <a href='#SkRect_height'>height</a>() will be zero or positive.
+and <a href='#SkRect_width'>width()</a> and <a href='#SkRect_height'>height()</a> will be zero or positive.
### Example
@@ -2701,13 +2701,13 @@
<a href='#SkRect'>SkRect</a> <a href='#SkRect_makeSorted'>makeSorted</a>() const
</pre>
-Returns <a href='#Rect'>Rect</a> with <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a> swapped if <a href='#SkRect_fLeft'>fLeft</a> is greater than <a href='#SkRect_fRight'>fRight</a>; and
+Returns <a href='SkRect_Reference#SkRect'>SkRect</a> with <a href='#SkRect_fLeft'>fLeft</a> and <a href='#SkRect_fRight'>fRight</a> swapped if <a href='#SkRect_fLeft'>fLeft</a> is greater than <a href='#SkRect_fRight'>fRight</a>; and
with <a href='#SkRect_fTop'>fTop</a> and <a href='#SkRect_fBottom'>fBottom</a> swapped if <a href='#SkRect_fTop'>fTop</a> is greater than <a href='#SkRect_fBottom'>fBottom</a>. Result may be empty;
-and <a href='#SkRect_width'>width</a>() and <a href='#SkRect_height'>height</a>() will be zero or positive.
+and <a href='#SkRect_width'>width()</a> and <a href='#SkRect_height'>height()</a> will be zero or positive.
### Return Value
-sorted <a href='#Rect'>Rect</a>
+sorted <a href='SkRect_Reference#SkRect'>SkRect</a>
### Example
@@ -2734,7 +2734,7 @@
const <a href='undocumented#SkScalar'>SkScalar</a>* <a href='#SkRect_asScalars'>asScalars</a>() const
</pre>
-Returns pointer to first <a href='undocumented#Scalar'>Scalar</a> in <a href='#Rect'>Rect</a>, to treat it as an array with four
+Returns pointer to first <a href='undocumented#Scalar'>scalar</a> in <a href='SkRect_Reference#SkRect'>SkRect</a>, to treat it as an array with four
entries.
### Return Value
@@ -2765,8 +2765,8 @@
void <a href='#SkRect_dump'>dump</a>(bool asHex) const
</pre>
-Writes text representation of <a href='#Rect'>Rect</a> to standard output. <a href='#Set'>Set</a> <a href='#SkRect_dump_asHex'>asHex</a> to true to
-generate exact binary representations of floating point numbers.
+Writes <a href='undocumented#Text'>text</a> representation of <a href='SkRect_Reference#SkRect'>SkRect</a> to standard output. Set <a href='#SkRect_dump()_asHex'>asHex</a> to true to
+generate exact binary representations of floating <a href='SkPoint_Reference#Point'>point</a> numbers.
### Parameters
@@ -2803,9 +2803,9 @@
void <a href='#SkRect_dump'>dump</a>() const
</pre>
-Writes text representation of <a href='#Rect'>Rect</a> to standard output. The representation may be
-directly compiled as C++ code. Floating point values are written
-with limited precision; it may not be possible to reconstruct original <a href='#Rect'>Rect</a>
+Writes <a href='undocumented#Text'>text</a> representation of <a href='SkRect_Reference#SkRect'>SkRect</a> to standard output. The representation may be
+directly compiled as C++ code. Floating <a href='SkPoint_Reference#Point'>point</a> values are written
+with limited precision; it may not be possible to reconstruct original <a href='SkRect_Reference#SkRect'>SkRect</a>
from output.
### Example
diff --git a/site/user/api/SkRegion_Reference.md b/site/user/api/SkRegion_Reference.md
index 821e9cb..3e76d20 100644
--- a/site/user/api/SkRegion_Reference.md
+++ b/site/user/api/SkRegion_Reference.md
@@ -137,12 +137,13 @@
<a href='#SkRegion_Iterator_Iterator'>Iterator</a>()
</pre>
-Initializes <a href='#SkRegion_Iterator_Iterator'>Iterator</a> with an empty <a href='#Region'>Region</a>. <a href='#SkRegion_Iterator_done'>done</a>() on <a href='#SkRegion_Iterator_Iterator'>Iterator</a> returns true.
-Call <a href='#SkRegion_Iterator_reset'>reset</a>() to initialized <a href='#SkRegion_Iterator_Iterator'>Iterator</a> at a later time.
+Initializes <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a> with an empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a>. <a href='#SkRegion_Iterator_done'>done()</a> on <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a>
+returns true.
+Call <a href='#SkRegion_Iterator_reset'>reset()</a> to initialized <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a> at a later time.
### Return Value
-empty <a href='#Region'>Region</a> ierator
+empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a> iterator
### Example
@@ -168,18 +169,18 @@
<a href='#SkRegion_Iterator_Iterator'>Iterator</a>(const <a href='#SkRegion'>SkRegion</a>& region)
</pre>
-Sets <a href='#SkRegion_Iterator_Iterator'>Iterator</a> to return elements of <a href='SkIRect_Reference#IRect'>IRect</a> array in <a href='#SkRegion_Iterator_copy_const_SkRegion_region'>region</a>.
+Sets <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a> to return elements of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> array in <a href='#SkRegion_Iterator_Iterator(const SkRegion& region)_region'>region</a>.
### Parameters
<table> <tr> <td><a name='SkRegion_Iterator_copy_const_SkRegion_region'><code><strong>region</strong></code></a></td>
- <td><a href='#Region'>Region</a> to iterate</td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to iterate</td>
</tr>
</table>
### Return Value
-<a href='#Region'>Region</a> iterator
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> iterator
### Example
@@ -205,12 +206,12 @@
bool <a href='#SkRegion_Iterator_rewind'>rewind</a>()
</pre>
-<a href='SkPoint_Reference#Point'>Points</a> <a href='#SkRegion_Iterator_Iterator'>Iterator</a> to start of <a href='#Region'>Region</a>.
-Returns true if <a href='#Region'>Region</a> was set; otherwise, returns false.
+<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a> to start of <a href='SkRegion_Reference#SkRegion'>SkRegion</a>.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> was set; otherwise, returns false.
### Return Value
-true if <a href='#Region'>Region</a> was set
+true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> was set
### Example
@@ -243,12 +244,12 @@
void <a href='#SkRegion_Iterator_reset'>reset</a>(const <a href='#SkRegion'>SkRegion</a>& region)
</pre>
-Resets iterator, using the new <a href='#Region'>Region</a>.
+Resets iterator, using the new <a href='SkRegion_Reference#SkRegion'>SkRegion</a>.
### Parameters
<table> <tr> <td><a name='SkRegion_Iterator_reset_region'><code><strong>region</strong></code></a></td>
- <td><a href='#Region'>Region</a> to iterate</td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to iterate</td>
</tr>
</table>
@@ -278,11 +279,11 @@
bool <a href='#SkRegion_Iterator_done'>done</a>() const
</pre>
-Returns true if <a href='#SkRegion_Iterator_Iterator'>Iterator</a> is pointing to final <a href='SkIRect_Reference#IRect'>IRect</a> in <a href='#Region'>Region</a>.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a> is pointing to final <a href='SkIRect_Reference#SkIRect'>SkIRect</a> in <a href='SkRegion_Reference#SkRegion'>SkRegion</a>.
### Return Value
-true if data parsing is complete
+true if <a href='undocumented#Data'>data</a> parsing is complete
### Example
@@ -309,7 +310,7 @@
void <a href='#SkRegion_Iterator_next'>next</a>()
</pre>
-Advances <a href='#SkRegion_Iterator_Iterator'>Iterator</a> to next <a href='SkIRect_Reference#IRect'>IRect</a> in <a href='#Region'>Region</a> if it is not done.
+Advances <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Iterator'>Iterator</a> to next <a href='SkIRect_Reference#SkIRect'>SkIRect</a> in <a href='SkRegion_Reference#SkRegion'>SkRegion</a> if it is not done.
### Example
@@ -336,12 +337,12 @@
const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkRegion_Iterator_rect'>rect</a>() const
</pre>
-Returns <a href='SkIRect_Reference#IRect'>IRect</a> element in <a href='#Region'>Region</a>. Does not return predictable results if <a href='#Region'>Region</a>
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> element in <a href='SkRegion_Reference#SkRegion'>SkRegion</a>. Does not return predictable results if <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
is empty.
### Return Value
-part of <a href='#Region'>Region</a> as <a href='SkIRect_Reference#IRect'>IRect</a>
+part of <a href='SkRegion_Reference#SkRegion'>SkRegion</a> as <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
### Example
@@ -369,11 +370,11 @@
const <a href='#SkRegion'>SkRegion</a>* <a href='#SkRegion_Iterator_rgn'>rgn</a>() const
</pre>
-Returns <a href='#Region'>Region</a> if set; otherwise, returns nullptr.
+Returns <a href='SkRegion_Reference#SkRegion'>SkRegion</a> if set; otherwise, returns nullptr.
### Return Value
-iterated <a href='#Region'>Region</a>
+iterated <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
### Example
@@ -408,12 +409,12 @@
<a href='#SkRegion_Cliperator'>Cliperator</a>(const <a href='#SkRegion'>SkRegion</a>& region, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& clip)
</pre>
-Sets <a href='#SkRegion_Cliperator'>Cliperator</a> to return elements of <a href='SkIRect_Reference#IRect'>IRect</a> array in <a href='#Region'>Region</a> within <a href='#SkRegion_Cliperator_const_SkRegion_const_SkIRect_clip'>clip</a>.
+Sets <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Cliperator'>Cliperator</a> to return elements of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> array in <a href='SkRegion_Reference#SkRegion'>SkRegion</a> within <a href='#SkRegion_Cliperator_Cliperator(const SkRegion& region, const SkIRect& clip)_clip'>clip</a>.
### Parameters
<table> <tr> <td><a name='SkRegion_Cliperator_const_SkRegion_const_SkIRect_region'><code><strong>region</strong></code></a></td>
- <td><a href='#Region'>Region</a> to iterate</td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to iterate</td>
</tr>
<tr> <td><a name='SkRegion_Cliperator_const_SkRegion_const_SkIRect_clip'><code><strong>clip</strong></code></a></td>
<td>bounds of iteration</td>
@@ -422,7 +423,7 @@
### Return Value
-<a href='#Region'>Region</a> iterator
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> iterator
### Example
@@ -448,11 +449,11 @@
bool <a href='#SkRegion_Cliperator_done'>done</a>()
</pre>
-Returns true if <a href='#SkRegion_Cliperator'>Cliperator</a> is pointing to final <a href='SkIRect_Reference#IRect'>IRect</a> in <a href='#Region'>Region</a>.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Cliperator'>Cliperator</a> is pointing to final <a href='SkIRect_Reference#SkIRect'>SkIRect</a> in <a href='SkRegion_Reference#SkRegion'>SkRegion</a>.
### Return Value
-true if data parsing is complete
+true if <a href='undocumented#Data'>data</a> parsing is complete
### Example
@@ -479,7 +480,7 @@
void <a href='#SkRegion_Cliperator_next'>next</a>()
</pre>
-Advances iterator to next <a href='SkIRect_Reference#IRect'>IRect</a> in <a href='#Region'>Region</a> contained by clip.
+Advances iterator to next <a href='SkIRect_Reference#SkIRect'>SkIRect</a> in <a href='SkRegion_Reference#SkRegion'>SkRegion</a> contained by clip.
### Example
@@ -506,13 +507,13 @@
const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkRegion_Cliperator_rect'>rect</a>() const
</pre>
-Returns <a href='SkIRect_Reference#IRect'>IRect</a> element in <a href='#Region'>Region</a>, intersected with clip passed to <a href='#SkRegion_Cliperator'>Cliperator</a>
-constructor. Does not return predictable results if <a href='#Region'>Region</a>
+Returns <a href='SkIRect_Reference#SkIRect'>SkIRect</a> element in <a href='SkRegion_Reference#SkRegion'>SkRegion</a>, intersected with clip passed to
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Cliperator'>Cliperator</a> constructor. Does not return predictable results if <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
is empty.
### Return Value
-part of <a href='#Region'>Region</a> inside clip as <a href='SkIRect_Reference#IRect'>IRect</a>
+part of <a href='SkRegion_Reference#SkRegion'>SkRegion</a> inside clip as <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
### Example
@@ -554,15 +555,15 @@
<a href='#SkRegion_Spanerator'>Spanerator</a>(const <a href='#SkRegion'>SkRegion</a>& region, int y, int left, int right)
</pre>
-Sets <a href='#SkRegion_Spanerator'>Spanerator</a> to return line segments in <a href='#Region'>Region</a> on scan line.
+Sets <a href='SkRegion_Reference#SkRegion'>SkRegion</a>::<a href='#SkRegion_Spanerator'>Spanerator</a> to return <a href='undocumented#Line'>line</a> segments in <a href='SkRegion_Reference#SkRegion'>SkRegion</a> on scan <a href='undocumented#Line'>line</a>.
### Parameters
<table> <tr> <td><a name='SkRegion_Spanerator_const_SkRegion_int_int_int_region'><code><strong>region</strong></code></a></td>
- <td><a href='#Region'>Region</a> to iterate</td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to iterate</td>
</tr>
<tr> <td><a name='SkRegion_Spanerator_const_SkRegion_int_int_int_y'><code><strong>y</strong></code></a></td>
- <td>horizontal line to intersect</td>
+ <td>horizontal <a href='undocumented#Line'>line</a> to intersect</td>
</tr>
<tr> <td><a name='SkRegion_Spanerator_const_SkRegion_int_int_int_left'><code><strong>left</strong></code></a></td>
<td>bounds of iteration</td>
@@ -574,7 +575,7 @@
### Return Value
-<a href='#Region'>Region</a> iterator
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> iterator
### Example
@@ -592,7 +593,7 @@
bool <a href='#SkRegion_Spanerator_next'>next</a>(int* left, int* right)
</pre>
-Advances iterator to next span intersecting <a href='#Region'>Region</a> within line segment provided
+Advances iterator to next span intersecting <a href='SkRegion_Reference#SkRegion'>SkRegion</a> within <a href='undocumented#Line'>line</a> segment provided
in constructor. Returns true if interval was found.
### Parameters
@@ -634,12 +635,12 @@
<a href='#SkRegion'>SkRegion</a>()
</pre>
-Constructs an empty <a href='#Region'>Region</a>. <a href='#Region'>Region</a> is set to empty bounds
+Constructs an empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a>. <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is set to empty bounds
at (0, 0) with zero width and height.
### Return Value
-empty <a href='#Region'>Region</a>
+empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
### Example
@@ -665,25 +666,25 @@
<a href='#SkRegion'>SkRegion</a>(const <a href='#SkRegion'>SkRegion</a>& region)
</pre>
-Constructs a copy of an existing <a href='#SkRegion_copy_const_SkRegion_region'>region</a>.
-Copy constructor makes two regions identical by value. Internally, <a href='#SkRegion_copy_const_SkRegion_region'>region</a> and
-the returned result share pointer values. The underlying <a href='SkRect_Reference#Rect'>Rect</a> array is
+Constructs a copy of an existing <a href='#SkRegion_SkRegion(const SkRegion& region)_region'>region</a>.
+Copy constructor makes two <a href='SkRegion_Reference#Region'>regions</a> identical by value. Internally, <a href='#SkRegion_SkRegion(const SkRegion& region)_region'>region</a> and
+the returned result share pointer values. The underlying <a href='SkRect_Reference#SkRect'>SkRect</a> array is
copied when modified.
-Creating a <a href='#Region'>Region</a> copy is very efficient and never allocates memory.
-<a href='#Region'>Regions</a> are always copied by value from the interface; the underlying shared
+Creating a <a href='SkRegion_Reference#SkRegion'>SkRegion</a> copy is very efficient and never allocates memory.
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> are always copied by value from the interface; the underlying shared
pointers are not exposed.
### Parameters
<table> <tr> <td><a name='SkRegion_copy_const_SkRegion_region'><code><strong>region</strong></code></a></td>
- <td><a href='#Region'>Region</a> to copy by value</td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to copy by value</td>
</tr>
</table>
### Return Value
-copy of <a href='#Region'>Region</a>
+copy of <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
### Example
@@ -713,18 +714,18 @@
explicit <a href='#SkRegion'>SkRegion</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& rect)
</pre>
-Constructs a rectangular <a href='#Region'>Region</a> matching the bounds of <a href='#SkRegion_copy_const_SkIRect_rect'>rect</a>.
+Constructs a rectangular <a href='SkRegion_Reference#SkRegion'>SkRegion</a> matching the bounds of <a href='#SkRegion_SkRegion(const SkIRect& rect)_rect'>rect</a>.
### Parameters
<table> <tr> <td><a name='SkRegion_copy_const_SkIRect_rect'><code><strong>rect</strong></code></a></td>
- <td>bounds of constructed <a href='#Region'>Region</a></td>
+ <td>bounds of constructed <a href='SkRegion_Reference#SkRegion'>SkRegion</a></td>
</tr>
</table>
### Return Value
-rectangular <a href='#Region'>Region</a>
+rectangular <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
### Example
@@ -742,11 +743,11 @@
<a href='#SkRegion_destructor'>~SkRegion</a>()
</pre>
-Releases ownership of any shared data and deletes data if <a href='#Region'>Region</a> is sole owner.
+Releases ownership of any shared <a href='undocumented#Data'>data</a> and deletes <a href='undocumented#Data'>data</a> if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is sole owner.
### Example
-<div><fiddle-embed name="985ff654a6b67288d322c748132a088e"><div>delete calls <a href='#Region'>Region</a> <a href='undocumented#Destructor'>Destructor</a>, but copy of original in region2 is unaffected.
+<div><fiddle-embed name="985ff654a6b67288d322c748132a088e"><div>delete calls <a href='#Region'>Region</a> destructor, but copy of original in region2 is unaffected.
</div>
#### Example Output
@@ -769,25 +770,25 @@
<a href='#SkRegion'>SkRegion</a>& <a href='#SkRegion_copy_operator'>operator=(const SkRegion& region)</a>
</pre>
-Constructs a copy of an existing <a href='#SkRegion_copy_operator_region'>region</a>.
-Makes two regions identical by value. Internally, <a href='#SkRegion_copy_operator_region'>region</a> and
-the returned result share pointer values. The underlying <a href='SkRect_Reference#Rect'>Rect</a> array is
+Constructs a copy of an existing <a href='#SkRegion_operator=(const SkRegion& region)_region'>region</a>.
+Makes two <a href='SkRegion_Reference#Region'>regions</a> identical by value. Internally, <a href='#SkRegion_operator=(const SkRegion& region)_region'>region</a> and
+the returned result share pointer values. The underlying <a href='SkRect_Reference#SkRect'>SkRect</a> array is
copied when modified.
-Creating a <a href='#Region'>Region</a> copy is very efficient and never allocates memory.
-<a href='#Region'>Regions</a> are always copied by value from the interface; the underlying shared
+Creating a <a href='SkRegion_Reference#SkRegion'>SkRegion</a> copy is very efficient and never allocates memory.
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> are always copied by value from the interface; the underlying shared
pointers are not exposed.
### Parameters
<table> <tr> <td><a name='SkRegion_copy_operator_region'><code><strong>region</strong></code></a></td>
- <td><a href='#Region'>Region</a> to copy by value</td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to copy by value</td>
</tr>
</table>
### Return Value
-<a href='#Region'>Region</a> to copy by value
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> to copy by value
### Example
@@ -814,19 +815,19 @@
bool operator==(const SkRegion& other) const
</pre>
-Compares <a href='#Region'>Region</a> and <a href='#SkRegion_equal1_operator_other'>other</a>; returns true if they enclose exactly
+Compares <a href='SkRegion_Reference#SkRegion'>SkRegion</a> and <a href='#SkRegion_operator==(const SkRegion& other)_const_other'>other</a>; returns true if they enclose exactly
the same area.
### Parameters
<table> <tr> <td><a name='SkRegion_equal1_operator_other'><code><strong>other</strong></code></a></td>
- <td><a href='#Region'>Region</a> to compare</td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='#Region'>Region</a> pair are equivalent
+true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> pair are equivalent
### Example
@@ -854,18 +855,18 @@
bool operator!=(const SkRegion& other) const
</pre>
-Compares <a href='#Region'>Region</a> and <a href='#SkRegion_notequal1_operator_other'>other</a>; returns true if they do not enclose the same area.
+Compares <a href='SkRegion_Reference#SkRegion'>SkRegion</a> and <a href='#SkRegion_operator!=(const SkRegion& other)_const_other'>other</a>; returns true if they do not enclose the same area.
### Parameters
<table> <tr> <td><a name='SkRegion_notequal1_operator_other'><code><strong>other</strong></code></a></td>
- <td><a href='#Region'>Region</a> to compare</td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to compare</td>
</tr>
</table>
### Return Value
-true if <a href='#Region'>Region</a> pair are not equivalent
+true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> pair are not equivalent
### Example
@@ -893,25 +894,25 @@
bool <a href='#SkRegion_set'>set</a>(const <a href='#SkRegion'>SkRegion</a>& src)
</pre>
-Sets <a href='#Region'>Region</a> to <a href='#SkRegion_set_src'>src</a>, and returns true if <a href='#SkRegion_set_src'>src</a> bounds is not empty.
-This makes <a href='#Region'>Region</a> and <a href='#SkRegion_set_src'>src</a> identical by value. Internally,
-<a href='#Region'>Region</a> and <a href='#SkRegion_set_src'>src</a> share pointer values. The underlying <a href='SkRect_Reference#Rect'>Rect</a> array is
+Sets <a href='SkRegion_Reference#SkRegion'>SkRegion</a> to <a href='#SkRegion_set()_src'>src</a>, and returns true if <a href='#SkRegion_set()_src'>src</a> bounds is not empty.
+This makes <a href='SkRegion_Reference#SkRegion'>SkRegion</a> and <a href='#SkRegion_set()_src'>src</a> identical by value. Internally,
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> and <a href='#SkRegion_set()_src'>src</a> share pointer values. The underlying <a href='SkRect_Reference#SkRect'>SkRect</a> array is
copied when modified.
-Creating a <a href='#Region'>Region</a> copy is very efficient and never allocates memory.
-<a href='#Region'>Regions</a> are always copied by value from the interface; the underlying shared
+Creating a <a href='SkRegion_Reference#SkRegion'>SkRegion</a> copy is very efficient and never allocates memory.
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> are always copied by value from the interface; the underlying shared
pointers are not exposed.
### Parameters
<table> <tr> <td><a name='SkRegion_set_src'><code><strong>src</strong></code></a></td>
- <td><a href='#Region'>Region</a> to copy</td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to copy</td>
</tr>
</table>
### Return Value
-copy of <a href='#SkRegion_set_src'>src</a>
+copy of <a href='#SkRegion_set()_src'>src</a>
### Example
@@ -938,12 +939,12 @@
void <a href='#SkRegion_swap'>swap</a>(<a href='#SkRegion'>SkRegion</a>& other)
</pre>
-Exchanges <a href='SkIRect_Reference#IRect'>IRect</a> array of <a href='#Region'>Region</a> and <a href='#SkRegion_swap_other'>other</a>. <a href='#SkRegion_swap'>swap</a>() internally exchanges pointers,
+Exchanges <a href='SkIRect_Reference#SkIRect'>SkIRect</a> array of <a href='SkRegion_Reference#SkRegion'>SkRegion</a> and <a href='#SkRegion_swap()_other'>other</a>. <a href='#SkRegion_swap'>swap()</a> internally exchanges pointers,
so it is lightweight and does not allocate memory.
-<a href='#SkRegion_swap'>swap</a>() usage has largely been replaced by <a href='#SkRegion_copy_operator'>operator=(const SkRegion& region)</a>.
-<a href='SkPath_Reference#Path'>Paths</a> do not copy their content on assignment until they are written to,
-making assignment as efficient as <a href='#SkRegion_swap'>swap</a>().
+<a href='#SkRegion_swap'>swap()</a> usage has largely been replaced by <a href='#SkRegion_copy_operator'>operator=(const SkRegion& region)</a>.
+<a href='SkPath_Reference#SkPath'>SkPath</a> do not copy their content on assignment until they are written to,
+making assignment as efficient as <a href='#SkRegion_swap'>swap()</a>.
### Parameters
@@ -977,10 +978,10 @@
bool <a href='#SkRegion_isEmpty'>isEmpty</a>() const
</pre>
-Returns true if <a href='#Region'>Region</a> is empty.
-Empty <a href='#Region'>Region</a> has bounds width or height less than or equal to zero.
-<a href='#SkRegion_empty_constructor'>SkRegion()</a> constructs empty <a href='#Region'>Region</a>; <a href='#SkRegion_setEmpty'>setEmpty</a>
-and <a href='#SkRegion_setRect'>setRect</a> with dimensionless data make <a href='#Region'>Region</a> empty.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty.
+Empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a> has bounds width or height less than or equal to zero.
+<a href='#SkRegion_empty_constructor'>SkRegion()</a> constructs empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a>; <a href='#SkRegion_setEmpty'>setEmpty</a>()
+and <a href='#SkRegion_setRect'>setRect</a>() with dimensionless <a href='undocumented#Data'>data</a> make <a href='SkRegion_Reference#SkRegion'>SkRegion</a> empty.
### Return Value
@@ -1012,11 +1013,11 @@
bool <a href='#SkRegion_isRect'>isRect</a>() const
</pre>
-Returns true if <a href='#Region'>Region</a> is one <a href='SkIRect_Reference#IRect'>IRect</a> with positive dimensions.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is one <a href='SkIRect_Reference#SkIRect'>SkIRect</a> with positive dimensions.
### Return Value
-true if <a href='#Region'>Region</a> contains one <a href='SkIRect_Reference#IRect'>IRect</a>
+true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> contains one <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
### Example
@@ -1044,11 +1045,11 @@
bool <a href='#SkRegion_isComplex'>isComplex</a>() const
</pre>
-Returns true if <a href='#Region'>Region</a> is described by more than one rectangle.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is described by more than one rectangle.
### Return Value
-true if <a href='#Region'>Region</a> contains more than one <a href='SkIRect_Reference#IRect'>IRect</a>
+true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> contains more than one <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
### Example
@@ -1076,12 +1077,12 @@
const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkRegion_getBounds'>getBounds</a>() const
</pre>
-Returns minimum and maximum axes values of <a href='SkIRect_Reference#IRect'>IRect</a> array.
-Returns (0, 0, 0, 0) if <a href='#Region'>Region</a> is empty.
+Returns minimum and maximum axes values of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> array.
+Returns (0, 0, 0, 0) if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty.
### Return Value
-combined bounds of all <a href='SkIRect_Reference#IRect'>IRect</a> elements
+combined bounds of all <a href='SkIRect_Reference#SkIRect'>SkIRect</a> elements
### Example
@@ -1108,11 +1109,11 @@
</pre>
Returns a value that increases with the number of
-elements in <a href='#Region'>Region</a>. Returns zero if <a href='#Region'>Region</a> is empty.
-Returns one if <a href='#Region'>Region</a> equals <a href='SkIRect_Reference#IRect'>IRect</a>; otherwise, returns
-value greater than one indicating that <a href='#Region'>Region</a> is complex.
+elements in <a href='SkRegion_Reference#SkRegion'>SkRegion</a>. Returns zero if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty.
+Returns one if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> equals <a href='SkIRect_Reference#SkIRect'>SkIRect</a>; otherwise, returns
+value greater than one indicating that <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is complex.
-Call to compare <a href='#Region'>Regions</a> for relative complexity.
+Call to compare <a href='SkRegion_Reference#SkRegion'>SkRegion</a> for relative complexity.
### Return Value
@@ -1144,14 +1145,14 @@
bool <a href='#SkRegion_getBoundaryPath'>getBoundaryPath</a>(<a href='SkPath_Reference#SkPath'>SkPath</a>* path) const
</pre>
-Appends outline of <a href='#Region'>Region</a> to <a href='#SkRegion_getBoundaryPath_path'>path</a>.
-Returns true if <a href='#Region'>Region</a> is not empty; otherwise, returns false, and leaves <a href='#SkRegion_getBoundaryPath_path'>path</a>
+Appends outline of <a href='SkRegion_Reference#SkRegion'>SkRegion</a> to <a href='#SkRegion_getBoundaryPath_path'>path</a>.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is not empty; otherwise, returns false, and leaves <a href='#SkRegion_getBoundaryPath_path'>path</a>
unmodified.
### Parameters
<table> <tr> <td><a name='SkRegion_getBoundaryPath_path'><code><strong>path</strong></code></a></td>
- <td><a href='SkPath_Reference#Path'>Path</a> to append to</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> to append to</td>
</tr>
</table>
@@ -1175,7 +1176,7 @@
bool <a href='#SkRegion_setEmpty'>setEmpty</a>()
</pre>
-Constructs an empty <a href='#Region'>Region</a>. <a href='#Region'>Region</a> is set to empty bounds
+Constructs an empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a>. <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is set to empty bounds
at (0, 0) with zero width and height. Always returns false.
### Return Value
@@ -1208,13 +1209,13 @@
bool <a href='#SkRegion_setRect'>setRect</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& rect)
</pre>
-Constructs a rectangular <a href='#Region'>Region</a> matching the bounds of <a href='#SkRegion_setRect_rect'>rect</a>.
+Constructs a rectangular <a href='SkRegion_Reference#SkRegion'>SkRegion</a> matching the bounds of <a href='#SkRegion_setRect_rect'>rect</a>.
If <a href='#SkRegion_setRect_rect'>rect</a> is empty, constructs empty and returns false.
### Parameters
<table> <tr> <td><a name='SkRegion_setRect_rect'><code><strong>rect</strong></code></a></td>
- <td>bounds of constructed <a href='#Region'>Region</a></td>
+ <td>bounds of constructed <a href='SkRegion_Reference#SkRegion'>SkRegion</a></td>
</tr>
</table>
@@ -1248,9 +1249,9 @@
bool <a href='#SkRegion_setRect'>setRect</a>(int32_t left, int32_t top, int32_t right, int32_t bottom)
</pre>
-Constructs <a href='#Region'>Region</a> with bounds (<a href='#SkRegion_setRect_2_left'>left</a>, <a href='#SkRegion_setRect_2_top'>top</a>, <a href='#SkRegion_setRect_2_right'>right</a>, <a href='#SkRegion_setRect_2_bottom'>bottom</a>).
+Constructs <a href='SkRegion_Reference#SkRegion'>SkRegion</a> with bounds (<a href='#SkRegion_setRect_2_left'>left</a>, <a href='#SkRegion_setRect_2_top'>top</a>, <a href='#SkRegion_setRect_2_right'>right</a>, <a href='#SkRegion_setRect_2_bottom'>bottom</a>).
Returns true if <a href='#SkRegion_setRect_2_left'>left</a> is less than <a href='#SkRegion_setRect_2_right'>right</a> and <a href='#SkRegion_setRect_2_top'>top</a> is less than <a href='#SkRegion_setRect_2_bottom'>bottom</a>; otherwise,
-constructs empty <a href='#Region'>Region</a> and returns false.
+constructs empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a> and returns false.
### Parameters
@@ -1270,7 +1271,7 @@
### Return Value
-rectangular <a href='#Region'>Region</a>
+rectangular <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
### Example
@@ -1297,24 +1298,24 @@
bool <a href='#SkRegion_setRects'>setRects</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a> rects[], int count)
</pre>
-Constructs <a href='#Region'>Region</a> as the union of <a href='SkIRect_Reference#IRect'>IRect</a> in <a href='#SkRegion_setRects_rects'>rects</a> array. If <a href='#SkRegion_setRects_count'>count</a> is
-zero, constructs empty <a href='#Region'>Region</a>. Returns false if constructed <a href='#Region'>Region</a> is empty.
+Constructs <a href='SkRegion_Reference#SkRegion'>SkRegion</a> as the union of <a href='SkIRect_Reference#SkIRect'>SkIRect</a> in <a href='#SkRegion_setRects_rects'>rects</a> array. If <a href='#SkRegion_setRects_count'>count</a> is
+zero, constructs empty <a href='SkRegion_Reference#SkRegion'>SkRegion</a>. Returns false if constructed <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty.
-May be faster than repeated calls to <a href='#SkRegion_op'>op</a>().
+May be faster than repeated calls to <a href='#SkRegion_op'>op()</a>.
### Parameters
<table> <tr> <td><a name='SkRegion_setRects_rects'><code><strong>rects</strong></code></a></td>
- <td>array of <a href='SkIRect_Reference#IRect'>IRects</a></td>
+ <td>array of <a href='SkIRect_Reference#SkIRect'>SkIRect</a></td>
</tr>
<tr> <td><a name='SkRegion_setRects_count'><code><strong>count</strong></code></a></td>
- <td>array size</td>
+ <td>array <a href='undocumented#Size'>size</a></td>
</tr>
</table>
### Return Value
-true if constructed <a href='#Region'>Region</a> is not empty
+true if constructed <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is not empty
### Example
@@ -1333,24 +1334,24 @@
</pre>
Constructs a copy of an existing <a href='#SkRegion_setRegion_region'>region</a>.
-Makes two regions identical by value. Internally, <a href='#SkRegion_setRegion_region'>region</a> and
-the returned result share pointer values. The underlying <a href='SkRect_Reference#Rect'>Rect</a> array is
+Makes two <a href='SkRegion_Reference#Region'>regions</a> identical by value. Internally, <a href='#SkRegion_setRegion_region'>region</a> and
+the returned result share pointer values. The underlying <a href='SkRect_Reference#SkRect'>SkRect</a> array is
copied when modified.
-Creating a <a href='#Region'>Region</a> copy is very efficient and never allocates memory.
-<a href='#Region'>Regions</a> are always copied by value from the interface; the underlying shared
+Creating a <a href='SkRegion_Reference#SkRegion'>SkRegion</a> copy is very efficient and never allocates memory.
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> are always copied by value from the interface; the underlying shared
pointers are not exposed.
### Parameters
<table> <tr> <td><a name='SkRegion_setRegion_region'><code><strong>region</strong></code></a></td>
- <td><a href='#Region'>Region</a> to copy by value</td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to copy by value</td>
</tr>
</table>
### Return Value
-<a href='#Region'>Region</a> to copy by value
+<a href='SkRegion_Reference#SkRegion'>SkRegion</a> to copy by value
### Example
@@ -1380,25 +1381,25 @@
bool <a href='#SkRegion_setPath'>setPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& path, const <a href='#SkRegion'>SkRegion</a>& clip)
</pre>
-Constructs <a href='#Region'>Region</a> to match outline of <a href='#SkRegion_setPath_path'>path</a> within <a href='#SkRegion_setPath_clip'>clip</a>.
-Returns false if constructed <a href='#Region'>Region</a> is empty.
+Constructs <a href='SkRegion_Reference#SkRegion'>SkRegion</a> to match outline of <a href='#SkRegion_setPath_path'>path</a> within <a href='#SkRegion_setPath_clip'>clip</a>.
+Returns false if constructed <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty.
-Constructed <a href='#Region'>Region</a> draws the same pixels as <a href='#SkRegion_setPath_path'>path</a> through <a href='#SkRegion_setPath_clip'>clip</a> when
-<a href='SkPaint_Reference#Anti_Alias'>Anti Aliasing</a> is disabled.
+Constructed <a href='SkRegion_Reference#SkRegion'>SkRegion</a> draws the same pixels as <a href='#SkRegion_setPath_path'>path</a> through <a href='#SkRegion_setPath_clip'>clip</a> when
+<a href='SkPaint_Reference#Anti_Alias'>anti-aliasing</a> is disabled.
### Parameters
<table> <tr> <td><a name='SkRegion_setPath_path'><code><strong>path</strong></code></a></td>
- <td><a href='SkPath_Reference#Path'>Path</a> providing outline</td>
+ <td><a href='SkPath_Reference#SkPath'>SkPath</a> providing outline</td>
</tr>
<tr> <td><a name='SkRegion_setPath_clip'><code><strong>clip</strong></code></a></td>
- <td><a href='#Region'>Region</a> containing <a href='#SkRegion_setPath_path'>path</a></td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> containing <a href='#SkRegion_setPath_path'>path</a></td>
</tr>
</table>
### Return Value
-true if constructed <a href='#Region'>Region</a> is not empty
+true if constructed <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is not empty
### Example
@@ -1416,19 +1417,19 @@
bool <a href='#SkRegion_intersects'>intersects</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& rect) const
</pre>
-Returns true if <a href='#Region'>Region</a> intersects <a href='#SkRegion_intersects_rect'>rect</a>.
-Returns false if either <a href='#SkRegion_intersects_rect'>rect</a> or <a href='#Region'>Region</a> is empty, or do not intersect.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> intersects <a href='#SkRegion_intersects()_rect'>rect</a>.
+Returns false if either <a href='#SkRegion_intersects()_rect'>rect</a> or <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty, or do not intersect.
### Parameters
<table> <tr> <td><a name='SkRegion_intersects_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkIRect_Reference#IRect'>IRect</a> to intersect</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
</tr>
</table>
### Return Value
-true if <a href='#SkRegion_intersects_rect'>rect</a> and <a href='#Region'>Region</a> have area in common
+true if <a href='#SkRegion_intersects()_rect'>rect</a> and <a href='SkRegion_Reference#SkRegion'>SkRegion</a> have area in common
### Example
@@ -1446,19 +1447,19 @@
bool <a href='#SkRegion_intersects'>intersects</a>(const <a href='#SkRegion'>SkRegion</a>& other) const
</pre>
-Returns true if <a href='#Region'>Region</a> intersects <a href='#SkRegion_intersects_2_other'>other</a>.
-Returns false if either <a href='#SkRegion_intersects_2_other'>other</a> or <a href='#Region'>Region</a> is empty, or do not intersect.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> intersects <a href='#SkRegion_intersects_2_other'>other</a>.
+Returns false if either <a href='#SkRegion_intersects_2_other'>other</a> or <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty, or do not intersect.
### Parameters
<table> <tr> <td><a name='SkRegion_intersects_2_other'><code><strong>other</strong></code></a></td>
- <td><a href='#Region'>Region</a> to intersect</td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to intersect</td>
</tr>
</table>
### Return Value
-true if <a href='#SkRegion_intersects_2_other'>other</a> and <a href='#Region'>Region</a> have area in common
+true if <a href='#SkRegion_intersects_2_other'>other</a> and <a href='SkRegion_Reference#SkRegion'>SkRegion</a> have area in common
### Example
@@ -1476,22 +1477,22 @@
bool <a href='#SkRegion_contains'>contains</a>(int32_t x, int32_t y) const
</pre>
-Returns true if <a href='SkIPoint_Reference#IPoint'>IPoint</a> (<a href='#SkRegion_contains_x'>x</a>, <a href='#SkRegion_contains_y'>y</a>) is inside <a href='#Region'>Region</a>.
-Returns false if <a href='#Region'>Region</a> is empty.
+Returns true if <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> (<a href='#SkRegion_contains()_x'>x</a>, <a href='#SkRegion_contains()_y'>y</a>) is inside <a href='SkRegion_Reference#SkRegion'>SkRegion</a>.
+Returns false if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty.
### Parameters
<table> <tr> <td><a name='SkRegion_contains_x'><code><strong>x</strong></code></a></td>
- <td>test <a href='SkIPoint_Reference#IPoint'>IPoint</a> <a href='#SkRegion_contains_x'>x</a>-coordinate</td>
+ <td>test <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> x-coordinate</td>
</tr>
<tr> <td><a name='SkRegion_contains_y'><code><strong>y</strong></code></a></td>
- <td>test <a href='SkIPoint_Reference#IPoint'>IPoint</a> <a href='#SkRegion_contains_y'>y</a>-coordinate</td>
+ <td>test <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> y-coordinate</td>
</tr>
</table>
### Return Value
-true if (<a href='#SkRegion_contains_x'>x</a>, <a href='#SkRegion_contains_y'>y</a>) is inside <a href='#Region'>Region</a>
+true if (<a href='#SkRegion_contains()_x'>x</a>, <a href='#SkRegion_contains()_y'>y</a>) is inside <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
### Example
@@ -1509,19 +1510,19 @@
bool <a href='#SkRegion_contains'>contains</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& other) const
</pre>
-Returns true if <a href='#SkRegion_contains_2_other'>other</a> is completely inside <a href='#Region'>Region</a>.
-Returns false if <a href='#Region'>Region</a> or <a href='#SkRegion_contains_2_other'>other</a> is empty.
+Returns true if <a href='#SkRegion_contains_2_other'>other</a> is completely inside <a href='SkRegion_Reference#SkRegion'>SkRegion</a>.
+Returns false if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> or <a href='#SkRegion_contains_2_other'>other</a> is empty.
### Parameters
<table> <tr> <td><a name='SkRegion_contains_2_other'><code><strong>other</strong></code></a></td>
- <td><a href='SkIRect_Reference#IRect'>IRect</a> to contain</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to contain</td>
</tr>
</table>
### Return Value
-true if <a href='#SkRegion_contains_2_other'>other</a> is inside <a href='#Region'>Region</a>
+true if <a href='#SkRegion_contains_2_other'>other</a> is inside <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
### Example
@@ -1539,19 +1540,19 @@
bool <a href='#SkRegion_contains'>contains</a>(const <a href='#SkRegion'>SkRegion</a>& other) const
</pre>
-Returns true if <a href='#SkRegion_contains_3_other'>other</a> is completely inside <a href='#Region'>Region</a>.
-Returns false if <a href='#Region'>Region</a> or <a href='#SkRegion_contains_3_other'>other</a> is empty.
+Returns true if <a href='#SkRegion_contains_3_other'>other</a> is completely inside <a href='SkRegion_Reference#SkRegion'>SkRegion</a>.
+Returns false if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> or <a href='#SkRegion_contains_3_other'>other</a> is empty.
### Parameters
<table> <tr> <td><a name='SkRegion_contains_3_other'><code><strong>other</strong></code></a></td>
- <td><a href='#Region'>Region</a> to contain</td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to contain</td>
</tr>
</table>
### Return Value
-true if <a href='#SkRegion_contains_3_other'>other</a> is inside <a href='#Region'>Region</a>
+true if <a href='#SkRegion_contains_3_other'>other</a> is inside <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
### Example
@@ -1569,19 +1570,19 @@
bool <a href='#SkRegion_quickContains'>quickContains</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& r) const
</pre>
-Returns true if <a href='#Region'>Region</a> is a single rectangle and contains <a href='#SkRegion_quickContains_r'>r</a>.
-May return false even though <a href='#Region'>Region</a> contains <a href='#SkRegion_quickContains_r'>r</a>.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is a single rectangle and contains <a href='#SkRegion_quickContains_r'>r</a>.
+May return false even though <a href='SkRegion_Reference#SkRegion'>SkRegion</a> contains <a href='#SkRegion_quickContains_r'>r</a>.
### Parameters
<table> <tr> <td><a name='SkRegion_quickContains_r'><code><strong>r</strong></code></a></td>
- <td><a href='SkIRect_Reference#IRect'>IRect</a> to contain</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to contain</td>
</tr>
</table>
### Return Value
-true quickly if <a href='#SkRegion_quickContains_r'>r</a> points are equal or inside
+true quickly if <a href='#SkRegion_quickContains_r'>r</a> <a href='SkPoint_Reference#Point'>points</a> are equal or inside
### Example
@@ -1609,10 +1610,10 @@
bool <a href='#SkRegion_quickContains'>quickContains</a>(int32_t left, int32_t top, int32_t right, int32_t bottom) const
</pre>
-Returns true if <a href='#Region'>Region</a> is a single rectangle and contains <a href='SkIRect_Reference#IRect'>IRect</a>
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is a single rectangle and contains <a href='SkIRect_Reference#SkIRect'>SkIRect</a>
(<a href='#SkRegion_quickContains_2_left'>left</a>, <a href='#SkRegion_quickContains_2_top'>top</a>, <a href='#SkRegion_quickContains_2_right'>right</a>, <a href='#SkRegion_quickContains_2_bottom'>bottom</a>).
-Returns false if <a href='#Region'>Region</a> is empty or <a href='SkIRect_Reference#IRect'>IRect</a> (<a href='#SkRegion_quickContains_2_left'>left</a>, <a href='#SkRegion_quickContains_2_top'>top</a>, <a href='#SkRegion_quickContains_2_right'>right</a>, <a href='#SkRegion_quickContains_2_bottom'>bottom</a>) is empty.
-May return false even though <a href='#Region'>Region</a> contains (<a href='#SkRegion_quickContains_2_left'>left</a>, <a href='#SkRegion_quickContains_2_top'>top</a>, <a href='#SkRegion_quickContains_2_right'>right</a>, <a href='#SkRegion_quickContains_2_bottom'>bottom</a>).
+Returns false if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty or <a href='SkIRect_Reference#SkIRect'>SkIRect</a> (<a href='#SkRegion_quickContains_2_left'>left</a>, <a href='#SkRegion_quickContains_2_top'>top</a>, <a href='#SkRegion_quickContains_2_right'>right</a>, <a href='#SkRegion_quickContains_2_bottom'>bottom</a>) is empty.
+May return false even though <a href='SkRegion_Reference#SkRegion'>SkRegion</a> contains (<a href='#SkRegion_quickContains_2_left'>left</a>, <a href='#SkRegion_quickContains_2_top'>top</a>, <a href='#SkRegion_quickContains_2_right'>right</a>, <a href='#SkRegion_quickContains_2_bottom'>bottom</a>).
### Parameters
@@ -1632,7 +1633,7 @@
### Return Value
-true quickly if <a href='SkIRect_Reference#IRect'>IRect</a> are equal or inside
+true quickly if <a href='SkIRect_Reference#SkIRect'>SkIRect</a> are equal or inside
### Example
@@ -1660,14 +1661,14 @@
bool <a href='#SkRegion_quickReject'>quickReject</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& rect) const
</pre>
-Returns true if <a href='#Region'>Region</a> does not intersect <a href='#SkRegion_quickReject_rect'>rect</a>.
-Returns true if <a href='#SkRegion_quickReject_rect'>rect</a> is empty or <a href='#Region'>Region</a> is empty.
-May return false even though <a href='#Region'>Region</a> does not intersect <a href='#SkRegion_quickReject_rect'>rect</a>.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> does not intersect <a href='#SkRegion_quickReject_rect'>rect</a>.
+Returns true if <a href='#SkRegion_quickReject_rect'>rect</a> is empty or <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty.
+May return false even though <a href='SkRegion_Reference#SkRegion'>SkRegion</a> does not intersect <a href='#SkRegion_quickReject_rect'>rect</a>.
### Parameters
<table> <tr> <td><a name='SkRegion_quickReject_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkIRect_Reference#IRect'>IRect</a> to intersect</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> to intersect</td>
</tr>
</table>
@@ -1701,14 +1702,14 @@
bool <a href='#SkRegion_quickReject'>quickReject</a>(const <a href='#SkRegion'>SkRegion</a>& rgn) const
</pre>
-Returns true if <a href='#Region'>Region</a> does not intersect <a href='#SkRegion_quickReject_2_rgn'>rgn</a>.
-Returns true if <a href='#SkRegion_quickReject_2_rgn'>rgn</a> is empty or <a href='#Region'>Region</a> is empty.
-May return false even though <a href='#Region'>Region</a> does not intersect <a href='#SkRegion_quickReject_2_rgn'>rgn</a>.
+Returns true if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> does not intersect <a href='#SkRegion_quickReject_2_rgn'>rgn</a>.
+Returns true if <a href='#SkRegion_quickReject_2_rgn'>rgn</a> is empty or <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty.
+May return false even though <a href='SkRegion_Reference#SkRegion'>SkRegion</a> does not intersect <a href='#SkRegion_quickReject_2_rgn'>rgn</a>.
### Parameters
<table> <tr> <td><a name='SkRegion_quickReject_2_rgn'><code><strong>rgn</strong></code></a></td>
- <td><a href='#Region'>Region</a> to intersect</td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> to intersect</td>
</tr>
</table>
@@ -1742,7 +1743,7 @@
void <a href='#SkRegion_translate'>translate</a>(int dx, int dy)
</pre>
-Offsets <a href='#Region'>Region</a> by <a href='SkIPoint_Reference#IVector'>IVector</a> (<a href='#SkRegion_translate_dx'>dx</a>, <a href='#SkRegion_translate_dy'>dy</a>). Has no effect if <a href='#Region'>Region</a> is empty.
+Offsets <a href='SkRegion_Reference#SkRegion'>SkRegion</a> by <a href='SkIPoint_Reference#IVector'>ivector</a> (<a href='#SkRegion_translate()_dx'>dx</a>, <a href='#SkRegion_translate()_dy'>dy</a>). Has no effect if <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty.
### Parameters
@@ -1770,9 +1771,9 @@
void <a href='#SkRegion_translate'>translate</a>(int dx, int dy, <a href='#SkRegion'>SkRegion</a>* dst) const
</pre>
-Offsets <a href='#Region'>Region</a> by <a href='SkIPoint_Reference#IVector'>IVector</a> (<a href='#SkRegion_translate_2_dx'>dx</a>, <a href='#SkRegion_translate_2_dy'>dy</a>), writing result to <a href='#SkRegion_translate_2_dst'>dst</a>. <a href='#Region'>Region</a> may be passed
-as <a href='#SkRegion_translate_2_dst'>dst</a> parameter, translating <a href='#Region'>Region</a> in place. Has no effect if <a href='#SkRegion_translate_2_dst'>dst</a> is nullptr.
-If <a href='#Region'>Region</a> is empty, sets <a href='#SkRegion_translate_2_dst'>dst</a> to empty.
+Offsets <a href='SkRegion_Reference#SkRegion'>SkRegion</a> by <a href='SkIPoint_Reference#IVector'>ivector</a> (<a href='#SkRegion_translate_2_dx'>dx</a>, <a href='#SkRegion_translate_2_dy'>dy</a>), writing result to <a href='#SkRegion_translate_2_dst'>dst</a>. <a href='SkRegion_Reference#SkRegion'>SkRegion</a> may be passed
+as <a href='#SkRegion_translate_2_dst'>dst</a> parameter, translating <a href='SkRegion_Reference#SkRegion'>SkRegion</a> in place. Has no effect if <a href='#SkRegion_translate_2_dst'>dst</a> is nullptr.
+If <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is empty, sets <a href='#SkRegion_translate_2_dst'>dst</a> to empty.
### Parameters
@@ -1899,20 +1900,22 @@
bool <a href='#SkRegion_op'>op</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& rect, <a href='undocumented#Op'>Op</a> op)
</pre>
-Replaces <a href='#Region'>Region</a> with the result of <a href='#Region'>Region</a> op <a href='#SkRegion_op_rect'>rect</a>.
-Returns true if replaced <a href='#Region'>Region</a> is not empty.
+Replaces <a href='SkRegion_Reference#SkRegion'>SkRegion</a> with the result of <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='#SkRegion_op()_op'>op</a> <a href='#SkRegion_op()_rect'>rect</a>.
+Returns true if replaced <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is not empty.
### Parameters
<table> <tr> <td><a name='SkRegion_op_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkIRect_Reference#IRect'>IRect</a> operand</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> operand</td>
</tr>
<tr> <td><a name='SkRegion_op_op'><code><strong>op</strong></code></a></td>
- <td>operator, one of: <a href='#SkRegion_kDifference_Op'>kDifference Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference Op</a>,
-<a href='#SkRegion_kReplace_Op'>kReplace Op</a> </td>
+ <td>operator, one of:</td>
</tr>
</table>
+<a href='#SkRegion_kDifference_Op'>kDifference_Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect_Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion_Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR_Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference_Op</a>,
+<a href='#SkRegion_kReplace_Op'>kReplace_Op</a>
+
### Return Value
false if result is empty
@@ -1933,8 +1936,8 @@
bool <a href='#SkRegion_op'>op</a>(int left, int top, int right, int bottom, <a href='undocumented#Op'>Op</a> op)
</pre>
-Replaces <a href='#Region'>Region</a> with the result of <a href='#Region'>Region</a> op <a href='SkIRect_Reference#IRect'>IRect</a> (<a href='#SkRegion_op_2_left'>left</a>, <a href='#SkRegion_op_2_top'>top</a>, <a href='#SkRegion_op_2_right'>right</a>, <a href='#SkRegion_op_2_bottom'>bottom</a>).
-Returns true if replaced <a href='#Region'>Region</a> is not empty.
+Replaces <a href='SkRegion_Reference#SkRegion'>SkRegion</a> with the result of <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='#SkRegion_op_2_op'>op</a> <a href='SkIRect_Reference#SkIRect'>SkIRect</a> (<a href='#SkRegion_op_2_left'>left</a>, <a href='#SkRegion_op_2_top'>top</a>, <a href='#SkRegion_op_2_right'>right</a>, <a href='#SkRegion_op_2_bottom'>bottom</a>).
+Returns true if replaced <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is not empty.
### Parameters
@@ -1951,11 +1954,13 @@
<td>edge of bounds on y-axis</td>
</tr>
<tr> <td><a name='SkRegion_op_2_op'><code><strong>op</strong></code></a></td>
- <td>operator, one of: <a href='#SkRegion_kDifference_Op'>kDifference Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference Op</a>,
-<a href='#SkRegion_kReplace_Op'>kReplace Op</a> </td>
+ <td>operator, one of:</td>
</tr>
</table>
+<a href='#SkRegion_kDifference_Op'>kDifference_Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect_Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion_Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR_Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference_Op</a>,
+<a href='#SkRegion_kReplace_Op'>kReplace_Op</a>
+
### Return Value
false if result is empty
@@ -1976,20 +1981,22 @@
bool <a href='#SkRegion_op'>op</a>(const <a href='#SkRegion'>SkRegion</a>& rgn, <a href='undocumented#Op'>Op</a> op)
</pre>
-Replaces <a href='#Region'>Region</a> with the result of <a href='#Region'>Region</a> op <a href='#SkRegion_op_3_rgn'>rgn</a>.
-Returns true if replaced <a href='#Region'>Region</a> is not empty.
+Replaces <a href='SkRegion_Reference#SkRegion'>SkRegion</a> with the result of <a href='SkRegion_Reference#SkRegion'>SkRegion</a> <a href='#SkRegion_op_3_op'>op</a> <a href='#SkRegion_op_3_rgn'>rgn</a>.
+Returns true if replaced <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is not empty.
### Parameters
<table> <tr> <td><a name='SkRegion_op_3_rgn'><code><strong>rgn</strong></code></a></td>
- <td><a href='#Region'>Region</a> operand</td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> operand</td>
</tr>
<tr> <td><a name='SkRegion_op_3_op'><code><strong>op</strong></code></a></td>
- <td>operator, one of: <a href='#SkRegion_kDifference_Op'>kDifference Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference Op</a>,
-<a href='#SkRegion_kReplace_Op'>kReplace Op</a> </td>
+ <td>operator, one of:</td>
</tr>
</table>
+<a href='#SkRegion_kDifference_Op'>kDifference_Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect_Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion_Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR_Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference_Op</a>,
+<a href='#SkRegion_kReplace_Op'>kReplace_Op</a>
+
### Return Value
false if result is empty
@@ -2010,23 +2017,25 @@
bool <a href='#SkRegion_op'>op</a>(const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& rect, const <a href='#SkRegion'>SkRegion</a>& rgn, <a href='undocumented#Op'>Op</a> op)
</pre>
-Replaces <a href='#Region'>Region</a> with the result of <a href='#SkRegion_op_4_rect'>rect</a> op <a href='#SkRegion_op_4_rgn'>rgn</a>.
-Returns true if replaced <a href='#Region'>Region</a> is not empty.
+Replaces <a href='SkRegion_Reference#SkRegion'>SkRegion</a> with the result of <a href='#SkRegion_op_4_rect'>rect</a> <a href='#SkRegion_op_4_op'>op</a> <a href='#SkRegion_op_4_rgn'>rgn</a>.
+Returns true if replaced <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is not empty.
### Parameters
<table> <tr> <td><a name='SkRegion_op_4_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkIRect_Reference#IRect'>IRect</a> operand</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> operand</td>
</tr>
<tr> <td><a name='SkRegion_op_4_rgn'><code><strong>rgn</strong></code></a></td>
- <td><a href='#Region'>Region</a> operand</td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> operand</td>
</tr>
<tr> <td><a name='SkRegion_op_4_op'><code><strong>op</strong></code></a></td>
- <td>operator, one of: <a href='#SkRegion_kDifference_Op'>kDifference Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference Op</a>,
-<a href='#SkRegion_kReplace_Op'>kReplace Op</a> </td>
+ <td>operator, one of:</td>
</tr>
</table>
+<a href='#SkRegion_kDifference_Op'>kDifference_Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect_Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion_Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR_Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference_Op</a>,
+<a href='#SkRegion_kReplace_Op'>kReplace_Op</a>
+
### Return Value
false if result is empty
@@ -2047,23 +2056,25 @@
bool <a href='#SkRegion_op'>op</a>(const <a href='#SkRegion'>SkRegion</a>& rgn, const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& rect, <a href='undocumented#Op'>Op</a> op)
</pre>
-Replaces <a href='#Region'>Region</a> with the result of <a href='#SkRegion_op_5_rgn'>rgn</a> op <a href='#SkRegion_op_5_rect'>rect</a>.
-Returns true if replaced <a href='#Region'>Region</a> is not empty.
+Replaces <a href='SkRegion_Reference#SkRegion'>SkRegion</a> with the result of <a href='#SkRegion_op_5_rgn'>rgn</a> <a href='#SkRegion_op_5_op'>op</a> <a href='#SkRegion_op_5_rect'>rect</a>.
+Returns true if replaced <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is not empty.
### Parameters
<table> <tr> <td><a name='SkRegion_op_5_rgn'><code><strong>rgn</strong></code></a></td>
- <td><a href='#Region'>Region</a> operand</td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> operand</td>
</tr>
<tr> <td><a name='SkRegion_op_5_rect'><code><strong>rect</strong></code></a></td>
- <td><a href='SkIRect_Reference#IRect'>IRect</a> operand</td>
+ <td><a href='SkIRect_Reference#SkIRect'>SkIRect</a> operand</td>
</tr>
<tr> <td><a name='SkRegion_op_5_op'><code><strong>op</strong></code></a></td>
- <td>operator, one of: <a href='#SkRegion_kDifference_Op'>kDifference Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference Op</a>,
-<a href='#SkRegion_kReplace_Op'>kReplace Op</a> </td>
+ <td>operator, one of:</td>
</tr>
</table>
+<a href='#SkRegion_kDifference_Op'>kDifference_Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect_Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion_Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR_Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference_Op</a>,
+<a href='#SkRegion_kReplace_Op'>kReplace_Op</a>
+
### Return Value
false if result is empty
@@ -2084,23 +2095,25 @@
bool <a href='#SkRegion_op'>op</a>(const <a href='#SkRegion'>SkRegion</a>& rgna, const <a href='#SkRegion'>SkRegion</a>& rgnb, <a href='undocumented#Op'>Op</a> op)
</pre>
-Replaces <a href='#Region'>Region</a> with the result of <a href='#SkRegion_op_6_rgna'>rgna</a> op <a href='#SkRegion_op_6_rgnb'>rgnb</a>.
-Returns true if replaced <a href='#Region'>Region</a> is not empty.
+Replaces <a href='SkRegion_Reference#SkRegion'>SkRegion</a> with the result of <a href='#SkRegion_op_6_rgna'>rgna</a> <a href='#SkRegion_op_6_op'>op</a> <a href='#SkRegion_op_6_rgnb'>rgnb</a>.
+Returns true if replaced <a href='SkRegion_Reference#SkRegion'>SkRegion</a> is not empty.
### Parameters
<table> <tr> <td><a name='SkRegion_op_6_rgna'><code><strong>rgna</strong></code></a></td>
- <td><a href='#Region'>Region</a> operand</td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> operand</td>
</tr>
<tr> <td><a name='SkRegion_op_6_rgnb'><code><strong>rgnb</strong></code></a></td>
- <td><a href='#Region'>Region</a> operand</td>
+ <td><a href='SkRegion_Reference#SkRegion'>SkRegion</a> operand</td>
</tr>
<tr> <td><a name='SkRegion_op_6_op'><code><strong>op</strong></code></a></td>
- <td>operator, one of: <a href='#SkRegion_kDifference_Op'>kDifference Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference Op</a>,
-<a href='#SkRegion_kReplace_Op'>kReplace Op</a> </td>
+ <td>operator, one of:</td>
</tr>
</table>
+<a href='#SkRegion_kDifference_Op'>kDifference_Op</a>, <a href='#SkRegion_kIntersect_Op'>kIntersect_Op</a>, <a href='#SkRegion_kUnion_Op'>kUnion_Op</a>, <a href='#SkRegion_kXOR_Op'>kXOR_Op</a>, <a href='#SkRegion_kReverseDifference_Op'>kReverseDifference_Op</a>,
+<a href='#SkRegion_kReplace_Op'>kReplace_Op</a>
+
### Return Value
false if result is empty
@@ -2135,19 +2148,19 @@
size_t <a href='#SkRegion_writeToMemory'>writeToMemory</a>(void* buffer) const
</pre>
-Writes <a href='#Region'>Region</a> to <a href='#SkRegion_writeToMemory_buffer'>buffer</a>, and returns number of bytes written.
+Writes <a href='SkRegion_Reference#SkRegion'>SkRegion</a> to <a href='#SkRegion_writeToMemory_buffer'>buffer</a>, and returns number of bytes written.
If <a href='#SkRegion_writeToMemory_buffer'>buffer</a> is nullptr, returns number number of bytes that would be written.
### Parameters
<table> <tr> <td><a name='SkRegion_writeToMemory_buffer'><code><strong>buffer</strong></code></a></td>
- <td>storage for binary data</td>
+ <td>storage for binary <a href='undocumented#Data'>data</a></td>
</tr>
</table>
### Return Value
-size of <a href='#Region'>Region</a>
+<a href='undocumented#Size'>size</a> of <a href='SkRegion_Reference#SkRegion'>SkRegion</a>
### Example
@@ -2165,16 +2178,16 @@
size_t <a href='#SkRegion_readFromMemory'>readFromMemory</a>(const void* buffer, size_t length)
</pre>
-Constructs <a href='#Region'>Region</a> from <a href='#SkRegion_readFromMemory_buffer'>buffer</a> of size <a href='#SkRegion_readFromMemory_length'>length</a>. Returns bytes read.
+Constructs <a href='SkRegion_Reference#SkRegion'>SkRegion</a> from <a href='#SkRegion_readFromMemory_buffer'>buffer</a> of <a href='undocumented#Size'>size</a> <a href='#SkRegion_readFromMemory_length'>length</a>. Returns bytes read.
Returned value will be multiple of four or zero if <a href='#SkRegion_readFromMemory_length'>length</a> was too small.
### Parameters
<table> <tr> <td><a name='SkRegion_readFromMemory_buffer'><code><strong>buffer</strong></code></a></td>
- <td>storage for binary data</td>
+ <td>storage for binary <a href='undocumented#Data'>data</a></td>
</tr>
<tr> <td><a name='SkRegion_readFromMemory_length'><code><strong>length</strong></code></a></td>
- <td>size of <a href='#SkRegion_readFromMemory_buffer'>buffer</a></td>
+ <td><a href='undocumented#Size'>size</a> of <a href='#SkRegion_readFromMemory_buffer'>buffer</a></td>
</tr>
</table>
diff --git a/site/user/api/SkSurface_Reference.md b/site/user/api/SkSurface_Reference.md
index 5d2d5d7..6c896a3 100644
--- a/site/user/api/SkSurface_Reference.md
+++ b/site/user/api/SkSurface_Reference.md
@@ -118,40 +118,46 @@
const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps = nullptr)
</pre>
-Allocates raster <a href='#Surface'>Surface</a>. <a href='SkCanvas_Reference#Canvas'>Canvas</a> returned by <a href='#Surface'>Surface</a> draws directly into <a href='#SkSurface_MakeRasterDirect_pixels'>pixels</a>.
+Allocates raster <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> returned by <a href='SkSurface_Reference#SkSurface'>SkSurface</a> draws directly into <a href='#SkSurface_MakeRasterDirect_pixels'>pixels</a>.
-<a href='#Surface'>Surface</a> is returned if all parameters are valid.
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> is returned if all parameters are valid.
Valid parameters include:
info dimensions are greater than zero;
-info contains <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> supported by <a href='undocumented#Raster_Surface'>Raster Surface</a>;
+info contains <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> supported by <a href='undocumented#Raster_Surface'>raster surface</a>;
<a href='#SkSurface_MakeRasterDirect_pixels'>pixels</a> is not nullptr;
-<a href='#SkSurface_MakeRasterDirect_rowBytes'>rowBytes</a> is large enough to contain info width <a href='#SkSurface_MakeRasterDirect_pixels'>pixels</a> of <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>.
+<a href='#SkSurface_MakeRasterDirect_rowBytes'>rowBytes</a> is large enough to contain info width <a href='#SkSurface_MakeRasterDirect_pixels'>pixels</a> of <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-<a href='undocumented#Pixel'>Pixel</a> buffer size should be info height times computed <a href='#SkSurface_MakeRasterDirect_rowBytes'>rowBytes</a>.
-<a href='#Pixels'>Pixels</a> are not initialized.
-To access <a href='#SkSurface_MakeRasterDirect_pixels'>pixels</a> after drawing, call <a href='#SkSurface_flush'>flush</a>() or <a href='#SkSurface_peekPixels'>peekPixels</a>.
+<a href='undocumented#Pixel'>Pixel</a> buffer <a href='undocumented#Size'>size</a> should be info height times computed <a href='#SkSurface_MakeRasterDirect_rowBytes'>rowBytes</a>.
+Pixels are not initialized.
+To access <a href='#SkSurface_MakeRasterDirect_pixels'>pixels</a> after drawing, call <a href='#SkSurface_flush'>flush()</a> or <a href='#SkSurface_peekPixels'>peekPixels</a>().
### Parameters
<table> <tr> <td><a name='SkSurface_MakeRasterDirect_imageInfo'><code><strong>imageInfo</strong></code></a></td>
- <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a>,
-of <a href='undocumented#Raster_Surface'>Raster Surface</a>; width and height must be greater than zero</td>
- </tr>
- <tr> <td><a name='SkSurface_MakeRasterDirect_pixels'><code><strong>pixels</strong></code></a></td>
- <td>pointer to destination <a href='#SkSurface_MakeRasterDirect_pixels'>pixels</a> buffer</td>
- </tr>
- <tr> <td><a name='SkSurface_MakeRasterDirect_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td>interval from one <a href='#Surface'>Surface</a> row to the next</td>
- </tr>
- <tr> <td><a name='SkSurface_MakeRasterDirect_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
- <td>LCD striping orientation and setting for device independent fonts;
-may be nullptr</td>
+ <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>,</td>
</tr>
</table>
+of <a href='undocumented#Raster_Surface'>raster surface</a>; width and height must be greater than zero
+
+### Parameters
+
+<table> <tr> <td><a name='SkSurface_MakeRasterDirect_pixels'><code><strong>pixels</strong></code></a></td>
+ <td>pointer to destination <a href='#SkSurface_MakeRasterDirect_pixels'>pixels</a> buffer</td>
+ </tr>
+ <tr> <td><a name='SkSurface_MakeRasterDirect_rowBytes'><code><strong>rowBytes</strong></code></a></td>
+ <td>interval from one <a href='SkSurface_Reference#SkSurface'>SkSurface</a> row to the next</td>
+ </tr>
+ <tr> <td><a name='SkSurface_MakeRasterDirect_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent fonts;</td>
+ </tr>
+</table>
+
+may be nullptr
+
### Return Value
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -182,47 +188,53 @@
const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps = nullptr)
</pre>
-Allocates raster <a href='#Surface'>Surface</a>. <a href='SkCanvas_Reference#Canvas'>Canvas</a> returned by <a href='#Surface'>Surface</a> draws directly into <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a>.
-<a href='#SkSurface_MakeRasterDirectReleaseProc_releaseProc'>releaseProc</a> is called with <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a> and <a href='#SkSurface_MakeRasterDirectReleaseProc_context'>context</a> when <a href='#Surface'>Surface</a> is deleted.
+Allocates raster <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> returned by <a href='SkSurface_Reference#SkSurface'>SkSurface</a> draws directly into <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a>.
+<a href='#SkSurface_MakeRasterDirectReleaseProc_releaseProc'>releaseProc</a> is called with <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a> and <a href='#SkSurface_MakeRasterDirectReleaseProc_context'>context</a> when <a href='SkSurface_Reference#SkSurface'>SkSurface</a> is deleted.
-<a href='#Surface'>Surface</a> is returned if all parameters are valid.
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> is returned if all parameters are valid.
Valid parameters include:
info dimensions are greater than zero;
-info contains <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> supported by <a href='undocumented#Raster_Surface'>Raster Surface</a>;
+info contains <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> supported by <a href='undocumented#Raster_Surface'>raster surface</a>;
<a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a> is not nullptr;
-<a href='#SkSurface_MakeRasterDirectReleaseProc_rowBytes'>rowBytes</a> is large enough to contain info width <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a> of <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>.
+<a href='#SkSurface_MakeRasterDirectReleaseProc_rowBytes'>rowBytes</a> is large enough to contain info width <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a> of <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>.
-<a href='undocumented#Pixel'>Pixel</a> buffer size should be info height times computed <a href='#SkSurface_MakeRasterDirectReleaseProc_rowBytes'>rowBytes</a>.
-<a href='#Pixels'>Pixels</a> are not initialized.
-To access <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a> after drawing, call <a href='#SkSurface_flush'>flush</a>() or <a href='#SkSurface_peekPixels'>peekPixels</a>.
+<a href='undocumented#Pixel'>Pixel</a> buffer <a href='undocumented#Size'>size</a> should be info height times computed <a href='#SkSurface_MakeRasterDirectReleaseProc_rowBytes'>rowBytes</a>.
+Pixels are not initialized.
+To access <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a> after drawing, call <a href='#SkSurface_flush'>flush()</a> or <a href='#SkSurface_peekPixels'>peekPixels</a>().
### Parameters
<table> <tr> <td><a name='SkSurface_MakeRasterDirectReleaseProc_imageInfo'><code><strong>imageInfo</strong></code></a></td>
- <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a>,
-of <a href='undocumented#Raster_Surface'>Raster Surface</a>; width and height must be greater than zero</td>
+ <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>,</td>
</tr>
- <tr> <td><a name='SkSurface_MakeRasterDirectReleaseProc_pixels'><code><strong>pixels</strong></code></a></td>
+</table>
+
+of <a href='undocumented#Raster_Surface'>raster surface</a>; width and height must be greater than zero
+
+### Parameters
+
+<table> <tr> <td><a name='SkSurface_MakeRasterDirectReleaseProc_pixels'><code><strong>pixels</strong></code></a></td>
<td>pointer to destination <a href='#SkSurface_MakeRasterDirectReleaseProc_pixels'>pixels</a> buffer</td>
</tr>
<tr> <td><a name='SkSurface_MakeRasterDirectReleaseProc_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td>interval from one <a href='#Surface'>Surface</a> row to the next</td>
+ <td>interval from one <a href='SkSurface_Reference#SkSurface'>SkSurface</a> row to the next</td>
</tr>
<tr> <td><a name='SkSurface_MakeRasterDirectReleaseProc_releaseProc'><code><strong>releaseProc</strong></code></a></td>
- <td>called when <a href='#Surface'>Surface</a> is deleted; may be nullptr</td>
+ <td>called when <a href='SkSurface_Reference#SkSurface'>SkSurface</a> is deleted; may be nullptr</td>
</tr>
<tr> <td><a name='SkSurface_MakeRasterDirectReleaseProc_context'><code><strong>context</strong></code></a></td>
<td>passed to <a href='#SkSurface_MakeRasterDirectReleaseProc_releaseProc'>releaseProc</a>; may be nullptr</td>
</tr>
<tr> <td><a name='SkSurface_MakeRasterDirectReleaseProc_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
- <td>LCD striping orientation and setting for device independent fonts;
-may be nullptr</td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent fonts;</td>
</tr>
</table>
+may be nullptr
+
### Return Value
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -252,38 +264,44 @@
const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps)
</pre>
-Allocates raster <a href='#Surface'>Surface</a>. <a href='SkCanvas_Reference#Canvas'>Canvas</a> returned by <a href='#Surface'>Surface</a> draws directly into pixels.
-Allocates and zeroes pixel memory. <a href='undocumented#Pixel'>Pixel</a> memory size is <a href='#SkSurface_MakeRaster_imageInfo'>imageInfo</a>.<a href='#SkSurface_height'>height</a>() times
-<a href='#SkSurface_MakeRaster_rowBytes'>rowBytes</a>, or times <a href='#SkSurface_MakeRaster_imageInfo'>imageInfo</a>.minRowBytes() if <a href='#SkSurface_MakeRaster_rowBytes'>rowBytes</a> is zero.
-<a href='undocumented#Pixel'>Pixel</a> memory is deleted when <a href='#Surface'>Surface</a> is deleted.
+Allocates raster <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> returned by <a href='SkSurface_Reference#SkSurface'>SkSurface</a> draws directly into pixels.
+Allocates and zeroes <a href='undocumented#Pixel'>pixel</a> memory. <a href='undocumented#Pixel'>Pixel</a> memory <a href='undocumented#Size'>size</a> is <a href='#SkSurface_MakeRaster_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_height'>height()</a> times
+<a href='#SkSurface_MakeRaster_rowBytes'>rowBytes</a>, or times <a href='#SkSurface_MakeRaster_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>() if <a href='#SkSurface_MakeRaster_rowBytes'>rowBytes</a> is zero.
+<a href='undocumented#Pixel'>Pixel</a> memory is deleted when <a href='SkSurface_Reference#SkSurface'>SkSurface</a> is deleted.
-<a href='#Surface'>Surface</a> is returned if all parameters are valid.
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> is returned if all parameters are valid.
Valid parameters include:
info dimensions are greater than zero;
-info contains <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> supported by <a href='undocumented#Raster_Surface'>Raster Surface</a>;
-<a href='#SkSurface_MakeRaster_rowBytes'>rowBytes</a> is large enough to contain info width pixels of <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, or is zero.
+info contains <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> supported by <a href='undocumented#Raster_Surface'>raster surface</a>;
+<a href='#SkSurface_MakeRaster_rowBytes'>rowBytes</a> is large enough to contain info width pixels of <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, or is zero.
-If <a href='#SkSurface_MakeRaster_rowBytes'>rowBytes</a> is not zero, subsequent images returned by <a href='#SkSurface_makeImageSnapshot'>makeImageSnapshot</a>
+If <a href='#SkSurface_MakeRaster_rowBytes'>rowBytes</a> is not zero, subsequent images returned by <a href='#SkSurface_makeImageSnapshot'>makeImageSnapshot</a>()
have the same <a href='#SkSurface_MakeRaster_rowBytes'>rowBytes</a>.
### Parameters
<table> <tr> <td><a name='SkSurface_MakeRaster_imageInfo'><code><strong>imageInfo</strong></code></a></td>
- <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a>,
-of <a href='undocumented#Raster_Surface'>Raster Surface</a>; width and height must be greater than zero</td>
- </tr>
- <tr> <td><a name='SkSurface_MakeRaster_rowBytes'><code><strong>rowBytes</strong></code></a></td>
- <td>interval from one <a href='#Surface'>Surface</a> row to the next; may be zero</td>
- </tr>
- <tr> <td><a name='SkSurface_MakeRaster_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
- <td>LCD striping orientation and setting for device independent fonts;
-may be nullptr</td>
+ <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>,</td>
</tr>
</table>
+of <a href='undocumented#Raster_Surface'>raster surface</a>; width and height must be greater than zero
+
+### Parameters
+
+<table> <tr> <td><a name='SkSurface_MakeRaster_rowBytes'><code><strong>rowBytes</strong></code></a></td>
+ <td>interval from one <a href='SkSurface_Reference#SkSurface'>SkSurface</a> row to the next; may be zero</td>
+ </tr>
+ <tr> <td><a name='SkSurface_MakeRaster_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent fonts;</td>
+ </tr>
+</table>
+
+may be nullptr
+
### Return Value
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -312,31 +330,37 @@
const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props = nullptr)
</pre>
-Allocates raster <a href='#Surface'>Surface</a>. <a href='SkCanvas_Reference#Canvas'>Canvas</a> returned by <a href='#Surface'>Surface</a> draws directly into pixels.
-Allocates and zeroes pixel memory. <a href='undocumented#Pixel'>Pixel</a> memory size is <a href='#SkSurface_MakeRaster_2_imageInfo'>imageInfo</a>.<a href='#SkSurface_height'>height</a>() times
-<a href='#SkSurface_MakeRaster_2_imageInfo'>imageInfo</a>.minRowBytes().
-<a href='undocumented#Pixel'>Pixel</a> memory is deleted when <a href='#Surface'>Surface</a> is deleted.
+Allocates raster <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> returned by <a href='SkSurface_Reference#SkSurface'>SkSurface</a> draws directly into pixels.
+Allocates and zeroes <a href='undocumented#Pixel'>pixel</a> memory. <a href='undocumented#Pixel'>Pixel</a> memory <a href='undocumented#Size'>size</a> is <a href='#SkSurface_MakeRaster_2_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_height'>height()</a> times
+<a href='#SkSurface_MakeRaster_2_imageInfo'>imageInfo</a>.<a href='#SkImageInfo_minRowBytes'>minRowBytes</a>().
+<a href='undocumented#Pixel'>Pixel</a> memory is deleted when <a href='SkSurface_Reference#SkSurface'>SkSurface</a> is deleted.
-<a href='#Surface'>Surface</a> is returned if all parameters are valid.
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> is returned if all parameters are valid.
Valid parameters include:
info dimensions are greater than zero;
-info contains <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> and <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a> supported by <a href='undocumented#Raster_Surface'>Raster Surface</a>.
+info contains <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> and <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a> supported by <a href='undocumented#Raster_Surface'>raster surface</a>.
### Parameters
<table> <tr> <td><a name='SkSurface_MakeRaster_2_imageInfo'><code><strong>imageInfo</strong></code></a></td>
- <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a>,
-of <a href='undocumented#Raster_Surface'>Raster Surface</a>; width and height must be greater than zero</td>
- </tr>
- <tr> <td><a name='SkSurface_MakeRaster_2_props'><code><strong>props</strong></code></a></td>
- <td>LCD striping orientation and setting for device independent fonts;
-may be nullptr</td>
+ <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>,</td>
</tr>
</table>
+of <a href='undocumented#Raster_Surface'>raster surface</a>; width and height must be greater than zero
+
+### Parameters
+
+<table> <tr> <td><a name='SkSurface_MakeRaster_2_props'><code><strong>props</strong></code></a></td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent fonts;</td>
+ </tr>
+</table>
+
+may be nullptr
+
### Return Value
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -355,35 +379,36 @@
const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps = nullptr)
</pre>
-Allocates raster <a href='#Surface'>Surface</a>. <a href='SkCanvas_Reference#Canvas'>Canvas</a> returned by <a href='#Surface'>Surface</a> draws directly into pixels.
-Allocates and zeroes pixel memory. <a href='undocumented#Pixel'>Pixel</a> memory size is height times width times
-four. <a href='undocumented#Pixel'>Pixel</a> memory is deleted when <a href='#Surface'>Surface</a> is deleted.
+Allocates raster <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> returned by <a href='SkSurface_Reference#SkSurface'>SkSurface</a> draws directly into pixels.
+Allocates and zeroes <a href='undocumented#Pixel'>pixel</a> memory. <a href='undocumented#Pixel'>Pixel</a> memory <a href='undocumented#Size'>size</a> is <a href='#SkSurface_MakeRasterN32Premul_height'>height</a> times <a href='#SkSurface_MakeRasterN32Premul_width'>width</a> times
+four. <a href='undocumented#Pixel'>Pixel</a> memory is deleted when <a href='SkSurface_Reference#SkSurface'>SkSurface</a> is deleted.
-Internally, sets <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to width, height, <a href='SkImageInfo_Reference#kN32_SkColorType'>Native_Color_Type</a>, and
+Internally, sets <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='#SkSurface_MakeRasterN32Premul_width'>width</a>, <a href='#SkSurface_MakeRasterN32Premul_height'>height</a>, native <a href='SkImageInfo_Reference#Color_Type'>color type</a>, and
<a href='SkImageInfo_Reference#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>.
-<a href='#Surface'>Surface</a> is returned if width and height are greater than zero.
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> is returned if <a href='#SkSurface_MakeRasterN32Premul_width'>width</a> and <a href='#SkSurface_MakeRasterN32Premul_height'>height</a> are greater than zero.
-Use to create <a href='#Surface'>Surface</a> that matches <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>, the native pixel arrangement on
-the platform. <a href='#Surface'>Surface</a> drawn to output device skips converting its pixel format.
+Use to create <a href='SkSurface_Reference#SkSurface'>SkSurface</a> that matches <a href='SkColor_Reference#SkPMColor'>SkPMColor</a>, the native <a href='undocumented#Pixel'>pixel</a> arrangement on
+the platform. <a href='SkSurface_Reference#SkSurface'>SkSurface</a> drawn to output <a href='undocumented#Device'>device</a> skips converting its <a href='undocumented#Pixel'>pixel</a> format.
### Parameters
<table> <tr> <td><a name='SkSurface_MakeRasterN32Premul_width'><code><strong>width</strong></code></a></td>
- <td>pixel column count; must be greater than zero</td>
+ <td><a href='undocumented#Pixel'>pixel</a> column count; must be greater than zero</td>
</tr>
<tr> <td><a name='SkSurface_MakeRasterN32Premul_height'><code><strong>height</strong></code></a></td>
- <td>pixel row count; must be greater than zero</td>
+ <td><a href='undocumented#Pixel'>pixel</a> row count; must be greater than zero</td>
</tr>
<tr> <td><a name='SkSurface_MakeRasterN32Premul_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
- <td>LCD striping orientation and setting for device independent
-fonts; may be nullptr</td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent</td>
</tr>
</table>
+fonts; may be nullptr
+
### Return Value
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -416,12 +441,12 @@
const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps)
</pre>
-Wraps a GPU-backed texture into <a href='#Surface'>Surface</a>. Caller must ensure the texture is
-valid for the lifetime of returned <a href='#Surface'>Surface</a>. If <a href='#SkSurface_MakeFromBackendTexture_sampleCnt'>sampleCnt</a> greater than zero,
-creates an intermediate MSAA <a href='#Surface'>Surface</a> which is used for drawing <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>backendTexture</a>.
+Wraps a GPU-backed <a href='undocumented#Texture'>texture</a> into <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. Caller must ensure the <a href='undocumented#Texture'>texture</a> is
+valid for the lifetime of returned <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. If <a href='#SkSurface_MakeFromBackendTexture_sampleCnt'>sampleCnt</a> greater than zero,
+creates an intermediate MSAA <a href='SkSurface_Reference#SkSurface'>SkSurface</a> which is used for drawing <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>backendTexture</a>.
-<a href='#Surface'>Surface</a> is returned if all parameters are valid. <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>backendTexture</a> is valid if
-its pixel configuration agrees with <a href='#SkSurface_MakeFromBackendTexture_colorSpace'>colorSpace</a> and <a href='#SkSurface_MakeFromBackendTexture_context'>context</a>; for instance, if
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> is returned if all parameters are valid. <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>backendTexture</a> is valid if
+its <a href='undocumented#Pixel'>pixel</a> configuration agrees with <a href='#SkSurface_MakeFromBackendTexture_colorSpace'>colorSpace</a> and <a href='#SkSurface_MakeFromBackendTexture_context'>context</a>; for instance, if
<a href='#SkSurface_MakeFromBackendTexture_backendTexture'>backendTexture</a> has an sRGB configuration, then <a href='#SkSurface_MakeFromBackendTexture_context'>context</a> must support sRGB,
and <a href='#SkSurface_MakeFromBackendTexture_colorSpace'>colorSpace</a> must be present. Further, <a href='#SkSurface_MakeFromBackendTexture_backendTexture'>backendTexture</a> width and height must
not exceed <a href='#SkSurface_MakeFromBackendTexture_context'>context</a> capabilities, and the <a href='#SkSurface_MakeFromBackendTexture_context'>context</a> must be able to support
@@ -432,35 +457,43 @@
### Parameters
<table> <tr> <td><a name='SkSurface_MakeFromBackendTexture_context'><code><strong>context</strong></code></a></td>
- <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendTexture_backendTexture'><code><strong>backendTexture</strong></code></a></td>
- <td>texture residing on GPU</td>
+ <td><a href='undocumented#Texture'>texture</a> residing on GPU</td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendTexture_origin'><code><strong>origin</strong></code></a></td>
- <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</a></td>
+ <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendTexture_sampleCnt'><code><strong>sampleCnt</strong></code></a></td>
- <td>samples per pixel, or 0 to disable full scene anti-aliasing</td>
+ <td>samples per <a href='undocumented#Pixel'>pixel</a>, or 0 to disable full scene <a href='SkPaint_Reference#Anti_Alias'>anti-aliasing</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendTexture_colorType'><code><strong>colorType</strong></code></a></td>
- <td>one of: <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
-<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
-<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> </td>
- </tr>
- <tr> <td><a name='SkSurface_MakeFromBackendTexture_colorSpace'><code><strong>colorSpace</strong></code></a></td>
- <td>range of colors; may be nullptr</td>
- </tr>
- <tr> <td><a name='SkSurface_MakeFromBackendTexture_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
- <td>LCD striping orientation and setting for device independent
-fonts; may be nullptr</td>
+ <td>one of:</td>
</tr>
</table>
+<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
+<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkSurface_MakeFromBackendTexture_colorSpace'><code><strong>colorSpace</strong></code></a></td>
+ <td>range of colors; may be nullptr</td>
+ </tr>
+ <tr> <td><a name='SkSurface_MakeFromBackendTexture_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent</td>
+ </tr>
+</table>
+
+fonts; may be nullptr
+
### Return Value
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -482,11 +515,11 @@
const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps)
</pre>
-Wraps a GPU-backed buffer into <a href='#Surface'>Surface</a>. Caller must ensure <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>backendRenderTarget</a>
-is valid for the lifetime of returned <a href='#Surface'>Surface</a>.
+Wraps a GPU-backed buffer into <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. Caller must ensure <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>backendRenderTarget</a>
+is valid for the lifetime of returned <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.
-<a href='#Surface'>Surface</a> is returned if all parameters are valid. <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>backendRenderTarget</a> is valid if
-its pixel configuration agrees with <a href='#SkSurface_MakeFromBackendRenderTarget_colorSpace'>colorSpace</a> and <a href='#SkSurface_MakeFromBackendRenderTarget_context'>context</a>; for instance, if
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> is returned if all parameters are valid. <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>backendRenderTarget</a> is valid if
+its <a href='undocumented#Pixel'>pixel</a> configuration agrees with <a href='#SkSurface_MakeFromBackendRenderTarget_colorSpace'>colorSpace</a> and <a href='#SkSurface_MakeFromBackendRenderTarget_context'>context</a>; for instance, if
<a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>backendRenderTarget</a> has an sRGB configuration, then <a href='#SkSurface_MakeFromBackendRenderTarget_context'>context</a> must support sRGB,
and <a href='#SkSurface_MakeFromBackendRenderTarget_colorSpace'>colorSpace</a> must be present. Further, <a href='#SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'>backendRenderTarget</a> width and height must
not exceed <a href='#SkSurface_MakeFromBackendRenderTarget_context'>context</a> capabilities, and the <a href='#SkSurface_MakeFromBackendRenderTarget_context'>context</a> must be able to support
@@ -497,32 +530,41 @@
### Parameters
<table> <tr> <td><a name='SkSurface_MakeFromBackendRenderTarget_context'><code><strong>context</strong></code></a></td>
- <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendRenderTarget_backendRenderTarget'><code><strong>backendRenderTarget</strong></code></a></td>
<td>GPU intermediate memory buffer</td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendRenderTarget_origin'><code><strong>origin</strong></code></a></td>
- <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</a></td>
+ <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendRenderTarget_colorType'><code><strong>colorType</strong></code></a></td>
- <td>one of: <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
-<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
-<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> </td>
- </tr>
- <tr> <td><a name='SkSurface_MakeFromBackendRenderTarget_colorSpace'><code><strong>colorSpace</strong></code></a></td>
- <td>range of colors</td>
- </tr>
- <tr> <td><a name='SkSurface_MakeFromBackendRenderTarget_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
- <td>LCD striping orientation and setting for device independent
-fonts; may be nullptr</td>
+ <td>one of:</td>
</tr>
</table>
+<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
+<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkSurface_MakeFromBackendRenderTarget_colorSpace'><code><strong>colorSpace</strong></code></a></td>
+ <td>range of colors</td>
+ </tr>
+ <tr> <td><a name='SkSurface_MakeFromBackendRenderTarget_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent</td>
+ </tr>
+</table>
+
+fonts; may be nullptr
+
### Return Value
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -561,53 +603,61 @@
const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* surfaceProps)
</pre>
-Wraps a GPU-backed texture into <a href='#Surface'>Surface</a>. Caller must ensure <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>backendTexture</a> is
-valid for the lifetime of returned <a href='#Surface'>Surface</a>. If <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_sampleCnt'>sampleCnt</a> greater than zero,
-creates an intermediate MSAA <a href='#Surface'>Surface</a> which is used for drawing <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>backendTexture</a>.
+Wraps a GPU-backed <a href='undocumented#Texture'>texture</a> into <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. Caller must ensure <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>backendTexture</a> is
+valid for the lifetime of returned <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. If <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_sampleCnt'>sampleCnt</a> greater than zero,
+creates an intermediate MSAA <a href='SkSurface_Reference#SkSurface'>SkSurface</a> which is used for drawing <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>backendTexture</a>.
-<a href='#Surface'>Surface</a> is returned if all parameters are valid. <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>backendTexture</a> is valid if
-its pixel configuration agrees with <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_colorSpace'>colorSpace</a> and <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_context'>context</a>; for instance, if
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> is returned if all parameters are valid. <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>backendTexture</a> is valid if
+its <a href='undocumented#Pixel'>pixel</a> configuration agrees with <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_colorSpace'>colorSpace</a> and <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_context'>context</a>; for instance, if
<a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>backendTexture</a> has an sRGB configuration, then <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_context'>context</a> must support sRGB,
and <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_colorSpace'>colorSpace</a> must be present. Further, <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'>backendTexture</a> width and height must
not exceed <a href='#SkSurface_MakeFromBackendTextureAsRenderTarget_context'>context</a> capabilities.
-Returned <a href='#Surface'>Surface</a> is available only for drawing into, and cannot generate an
-<a href='SkImage_Reference#Image'>Image</a>.
+Returned <a href='SkSurface_Reference#SkSurface'>SkSurface</a> is available only for drawing into, and cannot generate an
+<a href='SkImage_Reference#SkImage'>SkImage</a>.
If SK_SUPPORT_GPU is defined as zero, has no effect and returns nullptr.
### Parameters
<table> <tr> <td><a name='SkSurface_MakeFromBackendTextureAsRenderTarget_context'><code><strong>context</strong></code></a></td>
- <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendTextureAsRenderTarget_backendTexture'><code><strong>backendTexture</strong></code></a></td>
- <td>texture residing on GPU</td>
+ <td><a href='undocumented#Texture'>texture</a> residing on GPU</td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendTextureAsRenderTarget_origin'><code><strong>origin</strong></code></a></td>
- <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</a></td>
+ <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendTextureAsRenderTarget_sampleCnt'><code><strong>sampleCnt</strong></code></a></td>
- <td>samples per pixel, or 0 to disable full scene anti-aliasing</td>
+ <td>samples per <a href='undocumented#Pixel'>pixel</a>, or 0 to disable full scene <a href='SkPaint_Reference#Anti_Alias'>anti-aliasing</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeFromBackendTextureAsRenderTarget_colorType'><code><strong>colorType</strong></code></a></td>
- <td>one of: <a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
-<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>,
-<a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
-<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> </td>
- </tr>
- <tr> <td><a name='SkSurface_MakeFromBackendTextureAsRenderTarget_colorSpace'><code><strong>colorSpace</strong></code></a></td>
- <td>range of colors; may be nullptr</td>
- </tr>
- <tr> <td><a name='SkSurface_MakeFromBackendTextureAsRenderTarget_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
- <td>LCD striping orientation and setting for device independent
-fonts; may be nullptr</td>
+ <td>one of:</td>
</tr>
</table>
+<a href='SkImageInfo_Reference#kUnknown_SkColorType'>kUnknown_SkColorType</a>, <a href='SkImageInfo_Reference#kAlpha_8_SkColorType'>kAlpha_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_565_SkColorType'>kRGB_565_SkColorType</a>,
+<a href='SkImageInfo_Reference#kARGB_4444_SkColorType'>kARGB_4444_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_8888_SkColorType'>kRGBA_8888_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a>, <a href='SkImageInfo_Reference#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>,
+<a href='SkImageInfo_Reference#kRGBA_1010102_SkColorType'>kRGBA_1010102_SkColorType</a>, <a href='SkImageInfo_Reference#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
+<a href='SkImageInfo_Reference#kGray_8_SkColorType'>kGray_8_SkColorType</a>, <a href='SkImageInfo_Reference#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>
+
+### Parameters
+
+<table> <tr> <td><a name='SkSurface_MakeFromBackendTextureAsRenderTarget_colorSpace'><code><strong>colorSpace</strong></code></a></td>
+ <td>range of colors; may be nullptr</td>
+ </tr>
+ <tr> <td><a name='SkSurface_MakeFromBackendTextureAsRenderTarget_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent</td>
+ </tr>
+</table>
+
+fonts; may be nullptr
+
### Return Value
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -629,53 +679,63 @@
bool shouldCreateWithMips = false)
</pre>
-Returns <a href='#Surface'>Surface</a> on GPU indicated by <a href='#SkSurface_MakeRenderTarget_context'>context</a>. Allocates memory for
-pixels, based on the width, height, and <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> in ImageInfo. <a href='#SkSurface_MakeRenderTarget_budgeted'>budgeted</a>
+Returns <a href='SkSurface_Reference#SkSurface'>SkSurface</a> on GPU indicated by <a href='#SkSurface_MakeRenderTarget_context'>context</a>. Allocates memory for
+pixels, based on the width, height, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. <a href='#SkSurface_MakeRenderTarget_budgeted'>budgeted</a>
selects whether allocation for pixels is tracked by <a href='#SkSurface_MakeRenderTarget_context'>context</a>. <a href='#SkSurface_MakeRenderTarget_imageInfo'>imageInfo</a>
-describes the pixel format in <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, and transparency in
-<a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, and color matching in <a href='undocumented#Color_Space'>Color Space</a>.
+describes the <a href='undocumented#Pixel'>pixel</a> format in <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, and transparency in
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='SkColor_Reference#Color'>color</a> matching in <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
-<a href='#SkSurface_MakeRenderTarget_sampleCount'>sampleCount</a> requests the number of samples per pixel.
-Pass zero to disable <a href='undocumented#Multi_Sample_Anti_Aliasing'>Multi Sample Anti Aliasing</a>. The request is rounded
+<a href='#SkSurface_MakeRenderTarget_sampleCount'>sampleCount</a> requests the number of samples per <a href='undocumented#Pixel'>pixel</a>.
+Pass zero to disable <a href='undocumented#Multi_Sample_Anti_Aliasing'>multi-sample anti-aliasing</a>. The request is rounded
up to the next supported count, or rounded down if it is larger than the
maximum supported count.
<a href='#SkSurface_MakeRenderTarget_surfaceOrigin'>surfaceOrigin</a> pins either the top-left or the bottom-left corner to the origin.
-<a href='#SkSurface_MakeRenderTarget_shouldCreateWithMips'>shouldCreateWithMips</a> hints that <a href='SkImage_Reference#Image'>Image</a> returned by <a href='#SkSurface_makeImageSnapshot'>makeImageSnapshot</a> is <a href='undocumented#Mip_Map'>Mip Map</a>.
+<a href='#SkSurface_MakeRenderTarget_shouldCreateWithMips'>shouldCreateWithMips</a> hints that <a href='SkImage_Reference#SkImage'>SkImage</a> returned by <a href='#SkSurface_makeImageSnapshot'>makeImageSnapshot</a>() is <a href='undocumented#Mip_Map'>mip map</a>.
If SK_SUPPORT_GPU is defined as zero, has no effect and returns nullptr.
### Parameters
<table> <tr> <td><a name='SkSurface_MakeRenderTarget_context'><code><strong>context</strong></code></a></td>
- <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeRenderTarget_budgeted'><code><strong>budgeted</strong></code></a></td>
- <td>one of: <a href='undocumented#SkBudgeted_kNo'>SkBudgeted::kNo</a>, <a href='undocumented#SkBudgeted_kYes'>SkBudgeted::kYes</a></td>
+ <td>one of: <a href='undocumented#SkBudgeted'>SkBudgeted</a>::<a href='#SkBudgeted_kNo'>kNo</a>, <a href='undocumented#SkBudgeted'>SkBudgeted</a>::<a href='#SkBudgeted_kYes'>kYes</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeRenderTarget_imageInfo'><code><strong>imageInfo</strong></code></a></td>
- <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a>;
-width, or height, or both, may be zero</td>
+ <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>;</td>
</tr>
- <tr> <td><a name='SkSurface_MakeRenderTarget_sampleCount'><code><strong>sampleCount</strong></code></a></td>
- <td>samples per pixel, or 0 to disable full scene anti-aliasing</td>
+</table>
+
+width, or height, or both, may be zero
+
+### Parameters
+
+<table> <tr> <td><a name='SkSurface_MakeRenderTarget_sampleCount'><code><strong>sampleCount</strong></code></a></td>
+ <td>samples per <a href='undocumented#Pixel'>pixel</a>, or 0 to disable full scene <a href='SkPaint_Reference#Anti_Alias'>anti-aliasing</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeRenderTarget_surfaceOrigin'><code><strong>surfaceOrigin</strong></code></a></td>
- <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft GrSurfaceOrigin</a></td>
+ <td>one of: <a href='undocumented#kBottomLeft_GrSurfaceOrigin'>kBottomLeft_GrSurfaceOrigin</a>, <a href='undocumented#kTopLeft_GrSurfaceOrigin'>kTopLeft_GrSurfaceOrigin</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeRenderTarget_surfaceProps'><code><strong>surfaceProps</strong></code></a></td>
- <td>LCD striping orientation and setting for device independent
-fonts; may be nullptr</td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent</td>
</tr>
- <tr> <td><a name='SkSurface_MakeRenderTarget_shouldCreateWithMips'><code><strong>shouldCreateWithMips</strong></code></a></td>
- <td>hint that <a href='#Surface'>Surface</a> will host <a href='undocumented#Mip_Map'>Mip Map</a> images</td>
+</table>
+
+fonts; may be nullptr
+
+### Parameters
+
+<table> <tr> <td><a name='SkSurface_MakeRenderTarget_shouldCreateWithMips'><code><strong>shouldCreateWithMips</strong></code></a></td>
+ <td>hint that <a href='SkSurface_Reference#SkSurface'>SkSurface</a> will host <a href='undocumented#Mip_Map'>mip map</a> images</td>
</tr>
</table>
### Return Value
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -695,43 +755,49 @@
const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>* props)
</pre>
-Returns <a href='#Surface'>Surface</a> on GPU indicated by <a href='#SkSurface_MakeRenderTarget_2_context'>context</a>. Allocates memory for
-pixels, based on the width, height, and <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> in ImageInfo. <a href='#SkSurface_MakeRenderTarget_2_budgeted'>budgeted</a>
+Returns <a href='SkSurface_Reference#SkSurface'>SkSurface</a> on GPU indicated by <a href='#SkSurface_MakeRenderTarget_2_context'>context</a>. Allocates memory for
+pixels, based on the width, height, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. <a href='#SkSurface_MakeRenderTarget_2_budgeted'>budgeted</a>
selects whether allocation for pixels is tracked by <a href='#SkSurface_MakeRenderTarget_2_context'>context</a>. <a href='#SkSurface_MakeRenderTarget_2_imageInfo'>imageInfo</a>
-describes the pixel format in <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, and transparency in
-<a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, and color matching in <a href='undocumented#Color_Space'>Color Space</a>.
+describes the <a href='undocumented#Pixel'>pixel</a> format in <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, and transparency in
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='SkColor_Reference#Color'>color</a> matching in <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
-<a href='#SkSurface_MakeRenderTarget_2_sampleCount'>sampleCount</a> requests the number of samples per pixel.
-Pass zero to disable <a href='undocumented#Multi_Sample_Anti_Aliasing'>Multi Sample Anti Aliasing</a>. The request is rounded
+<a href='#SkSurface_MakeRenderTarget_2_sampleCount'>sampleCount</a> requests the number of samples per <a href='undocumented#Pixel'>pixel</a>.
+Pass zero to disable <a href='undocumented#Multi_Sample_Anti_Aliasing'>multi-sample anti-aliasing</a>. The request is rounded
up to the next supported count, or rounded down if it is larger than the
maximum supported count.
-<a href='#Surface'>Surface</a> bottom-left corner is pinned to the origin.
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> bottom-left corner is pinned to the origin.
### Parameters
<table> <tr> <td><a name='SkSurface_MakeRenderTarget_2_context'><code><strong>context</strong></code></a></td>
- <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeRenderTarget_2_budgeted'><code><strong>budgeted</strong></code></a></td>
- <td>one of: <a href='undocumented#SkBudgeted_kNo'>SkBudgeted::kNo</a>, <a href='undocumented#SkBudgeted_kYes'>SkBudgeted::kYes</a></td>
+ <td>one of: <a href='undocumented#SkBudgeted'>SkBudgeted</a>::<a href='#SkBudgeted_kNo'>kNo</a>, <a href='undocumented#SkBudgeted'>SkBudgeted</a>::<a href='#SkBudgeted_kYes'>kYes</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeRenderTarget_2_imageInfo'><code><strong>imageInfo</strong></code></a></td>
- <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a>,
-of <a href='undocumented#Raster_Surface'>Raster Surface</a>; width, or height, or both, may be zero</td>
- </tr>
- <tr> <td><a name='SkSurface_MakeRenderTarget_2_sampleCount'><code><strong>sampleCount</strong></code></a></td>
- <td>samples per pixel, or 0 to disable <a href='undocumented#Multi_Sample_Anti_Aliasing'>Multi Sample Anti Aliasing</a></td>
- </tr>
- <tr> <td><a name='SkSurface_MakeRenderTarget_2_props'><code><strong>props</strong></code></a></td>
- <td>LCD striping orientation and setting for device independent
-fonts; may be nullptr</td>
+ <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>,</td>
</tr>
</table>
+of <a href='undocumented#Raster_Surface'>raster surface</a>; width, or height, or both, may be zero
+
+### Parameters
+
+<table> <tr> <td><a name='SkSurface_MakeRenderTarget_2_sampleCount'><code><strong>sampleCount</strong></code></a></td>
+ <td>samples per <a href='undocumented#Pixel'>pixel</a>, or 0 to disable <a href='undocumented#Multi_Sample_Anti_Aliasing'>multi-sample anti-aliasing</a></td>
+ </tr>
+ <tr> <td><a name='SkSurface_MakeRenderTarget_2_props'><code><strong>props</strong></code></a></td>
+ <td>LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent</td>
+ </tr>
+</table>
+
+fonts; may be nullptr
+
### Return Value
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -754,31 +820,32 @@
const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo)
</pre>
-Returns <a href='#Surface'>Surface</a> on GPU indicated by <a href='#SkSurface_MakeRenderTarget_3_context'>context</a>. Allocates memory for
-pixels, based on the width, height, and <a href='SkImageInfo_Reference#Color_Type'>Color Type</a> in ImageInfo. <a href='#SkSurface_MakeRenderTarget_3_budgeted'>budgeted</a>
+Returns <a href='SkSurface_Reference#SkSurface'>SkSurface</a> on GPU indicated by <a href='#SkSurface_MakeRenderTarget_3_context'>context</a>. Allocates memory for
+pixels, based on the width, height, and <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a> in <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>. <a href='#SkSurface_MakeRenderTarget_3_budgeted'>budgeted</a>
selects whether allocation for pixels is tracked by <a href='#SkSurface_MakeRenderTarget_3_context'>context</a>. <a href='#SkSurface_MakeRenderTarget_3_imageInfo'>imageInfo</a>
-describes the pixel format in <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, and transparency in
-<a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, and color matching in <a href='undocumented#Color_Space'>Color Space</a>.
+describes the <a href='undocumented#Pixel'>pixel</a> format in <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, and transparency in
+<a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, and <a href='SkColor_Reference#Color'>color</a> matching in <a href='undocumented#SkColorSpace'>SkColorSpace</a>.
-<a href='#Surface'>Surface</a> bottom-left corner is pinned to the origin.
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> bottom-left corner is pinned to the origin.
### Parameters
<table> <tr> <td><a name='SkSurface_MakeRenderTarget_3_context'><code><strong>context</strong></code></a></td>
- <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeRenderTarget_3_budgeted'><code><strong>budgeted</strong></code></a></td>
- <td>one of: <a href='undocumented#SkBudgeted_kNo'>SkBudgeted::kNo</a>, <a href='undocumented#SkBudgeted_kYes'>SkBudgeted::kYes</a></td>
+ <td>one of: <a href='undocumented#SkBudgeted'>SkBudgeted</a>::<a href='#SkBudgeted_kNo'>kNo</a>, <a href='undocumented#SkBudgeted'>SkBudgeted</a>::<a href='#SkBudgeted_kYes'>kYes</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeRenderTarget_3_imageInfo'><code><strong>imageInfo</strong></code></a></td>
- <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a>,
-of <a href='undocumented#Raster_Surface'>Raster Surface</a>; width, or height, or both, may be zero</td>
+ <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>,</td>
</tr>
</table>
+of <a href='undocumented#Raster_Surface'>raster surface</a>; width, or height, or both, may be zero
+
### Return Value
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### Example
@@ -798,25 +865,25 @@
<a href='undocumented#SkBudgeted'>SkBudgeted</a> budgeted)
</pre>
-Returns <a href='#SkSurface'>SkSurface</a> on GPU indicated by <a href='#SkSurface_MakeRenderTarget_4_context'>context</a> that is compatible with the provided
+Returns <a href='SkSurface_Reference#SkSurface'>SkSurface</a> on GPU indicated by <a href='#SkSurface_MakeRenderTarget_4_context'>context</a> that is compatible with the provided
<a href='#SkSurface_MakeRenderTarget_4_characterization'>characterization</a>. <a href='#SkSurface_MakeRenderTarget_4_budgeted'>budgeted</a> selects whether allocation for pixels is tracked by <a href='#SkSurface_MakeRenderTarget_4_context'>context</a>.
### Parameters
<table> <tr> <td><a name='SkSurface_MakeRenderTarget_4_context'><code><strong>context</strong></code></a></td>
- <td><a href='undocumented#GPU_Context'>GPU Context</a></td>
+ <td><a href='undocumented#GPU_Context'>GPU context</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeRenderTarget_4_characterization'><code><strong>characterization</strong></code></a></td>
- <td>description of the desired <a href='#SkSurface'>SkSurface</a></td>
+ <td>description of the desired <a href='SkSurface_Reference#SkSurface'>SkSurface</a></td>
</tr>
<tr> <td><a name='SkSurface_MakeRenderTarget_4_budgeted'><code><strong>budgeted</strong></code></a></td>
- <td>one of: <a href='undocumented#SkBudgeted_kNo'>SkBudgeted::kNo</a>, <a href='undocumented#SkBudgeted_kYes'>SkBudgeted::kYes</a></td>
+ <td>one of: <a href='undocumented#SkBudgeted'>SkBudgeted</a>::<a href='#SkBudgeted_kNo'>kNo</a>, <a href='undocumented#SkBudgeted'>SkBudgeted</a>::<a href='#SkBudgeted_kYes'>kYes</a></td>
</tr>
</table>
### Return Value
-<a href='#Surface'>Surface</a> if all parameters are valid; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if all parameters are valid; otherwise, nullptr
### See Also
@@ -830,8 +897,8 @@
static <a href='undocumented#sk_sp'>sk sp</a><<a href='#SkSurface'>SkSurface</a>> <a href='#SkSurface_MakeNull'>MakeNull</a>(int width, int height)
</pre>
-Returns <a href='#Surface'>Surface</a> without backing pixels. Drawing to <a href='SkCanvas_Reference#Canvas'>Canvas</a> returned from <a href='#Surface'>Surface</a>
-has no effect. Calling <a href='#SkSurface_makeImageSnapshot'>makeImageSnapshot</a>() on returned <a href='#Surface'>Surface</a> returns nullptr.
+Returns <a href='SkSurface_Reference#SkSurface'>SkSurface</a> without backing pixels. Drawing to <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> returned from <a href='SkSurface_Reference#SkSurface'>SkSurface</a>
+has no effect. Calling <a href='#SkSurface_makeImageSnapshot'>makeImageSnapshot</a>() on returned <a href='SkSurface_Reference#SkSurface'>SkSurface</a> returns nullptr.
### Parameters
@@ -845,7 +912,7 @@
### Return Value
-<a href='#Surface'>Surface</a> if width and height are positive; otherwise, nullptr
+<a href='SkSurface_Reference#SkSurface'>SkSurface</a> if <a href='#SkSurface_MakeNull_width'>width</a> and <a href='#SkSurface_MakeNull_height'>height</a> are positive; otherwise, nullptr
### Example
@@ -874,11 +941,11 @@
int <a href='#SkSurface_width'>width</a>() const
</pre>
-Returns pixel count in each row; may be zero or greater.
+Returns <a href='undocumented#Pixel'>pixel</a> count in each row; may be zero or greater.
### Return Value
-number of pixel columns
+number of <a href='undocumented#Pixel'>pixel</a> columns
### Example
@@ -904,11 +971,11 @@
int <a href='#SkSurface_height'>height</a>() const
</pre>
-Returns pixel row count; may be zero or greater.
+Returns <a href='undocumented#Pixel'>pixel</a> row count; may be zero or greater.
### Return Value
-number of pixel rows
+number of <a href='undocumented#Pixel'>pixel</a> rows
### Example
@@ -934,9 +1001,9 @@
uint32_t <a href='#SkSurface_generationID'>generationID</a>()
</pre>
-Returns unique value identifying the content of <a href='#Surface'>Surface</a>. Returned value changes
+Returns unique value identifying the content of <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. Returned value changes
each time the content changes. Content is changed by drawing, or by calling
-<a href='#SkSurface_notifyContentWillChange'>notifyContentWillChange</a>.
+<a href='#SkSurface_notifyContentWillChange'>notifyContentWillChange</a>().
### Return Value
@@ -1117,23 +1184,25 @@
<a href='undocumented#GrBackendTexture'>GrBackendTexture</a> <a href='#SkSurface_getBackendTexture'>getBackendTexture</a>(<a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> backendHandleAccess)
</pre>
-Retrieves the back-end texture. If <a href='#Surface'>Surface</a> has no back-end texture, an invalid
-object is returned. Call <a href='undocumented#GrBackendTexture_isValid'>GrBackendTexture::isValid</a> to determine if the result
+Retrieves the back-end <a href='undocumented#Texture'>texture</a>. If <a href='SkSurface_Reference#SkSurface'>SkSurface</a> has no back-end <a href='undocumented#Texture'>texture</a>, an invalid
+object is returned. Call <a href='undocumented#GrBackendTexture'>GrBackendTexture</a>::<a href='#GrBackendTexture_isValid'>isValid</a> to determine if the result
is valid.
-The returned <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> should be discarded if the <a href='#Surface'>Surface</a> is drawn to or deleted.
+The returned <a href='undocumented#GrBackendTexture'>GrBackendTexture</a> should be discarded if the <a href='SkSurface_Reference#SkSurface'>SkSurface</a> is drawn to or deleted.
### Parameters
<table> <tr> <td><a name='SkSurface_getBackendTexture_backendHandleAccess'><code><strong>backendHandleAccess</strong></code></a></td>
- <td>one of: <a href='#SkSurface_kFlushRead_BackendHandleAccess'>kFlushRead BackendHandleAccess</a>,
-<a href='#SkSurface_kFlushWrite_BackendHandleAccess'>kFlushWrite BackendHandleAccess</a>, <a href='#SkSurface_kDiscardWrite_BackendHandleAccess'>kDiscardWrite BackendHandleAccess</a></td>
+ <td>one of: <a href='#SkSurface_kFlushRead_BackendHandleAccess'>kFlushRead_BackendHandleAccess</a>,</td>
</tr>
</table>
+<a href='#SkSurface_kFlushWrite_BackendHandleAccess'>kFlushWrite_BackendHandleAccess</a>,
+<a href='#SkSurface_kDiscardWrite_BackendHandleAccess'>kDiscardWrite_BackendHandleAccess</a>
+
### Return Value
-GPU texture reference; invalid on failure
+<a href='undocumented#GPU_Texture'>GPU texture</a> reference; invalid on failure
### See Also
@@ -1147,24 +1216,26 @@
<a href='undocumented#GrBackendRenderTarget'>GrBackendRenderTarget</a> <a href='#SkSurface_getBackendRenderTarget'>getBackendRenderTarget</a>(<a href='#SkSurface_BackendHandleAccess'>BackendHandleAccess</a> backendHandleAccess)
</pre>
-Retrieves the back-end render target. If <a href='#Surface'>Surface</a> has no back-end render target, an invalid
-object is returned. Call <a href='undocumented#GrBackendRenderTarget_isValid'>GrBackendRenderTarget::isValid</a> to determine if the result
+Retrieves the back-end <a href='undocumented#Render_Target'>render target</a>. If <a href='SkSurface_Reference#SkSurface'>SkSurface</a> has no back-end <a href='undocumented#Render_Target'>render target</a>, an invalid
+object is returned. Call <a href='undocumented#GrBackendRenderTarget'>GrBackendRenderTarget</a>::<a href='#GrBackendRenderTarget_isValid'>isValid</a> to determine if the result
is valid.
-The returned <a href='undocumented#GrBackendRenderTarget'>GrBackendRenderTarget</a> should be discarded if the <a href='#Surface'>Surface</a> is drawn to
+The returned <a href='undocumented#GrBackendRenderTarget'>GrBackendRenderTarget</a> should be discarded if the <a href='SkSurface_Reference#SkSurface'>SkSurface</a> is drawn to
or deleted.
### Parameters
<table> <tr> <td><a name='SkSurface_getBackendRenderTarget_backendHandleAccess'><code><strong>backendHandleAccess</strong></code></a></td>
- <td>one of: <a href='#SkSurface_kFlushRead_BackendHandleAccess'>kFlushRead BackendHandleAccess</a>,
-<a href='#SkSurface_kFlushWrite_BackendHandleAccess'>kFlushWrite BackendHandleAccess</a>, <a href='#SkSurface_kDiscardWrite_BackendHandleAccess'>kDiscardWrite BackendHandleAccess</a></td>
+ <td>one of: <a href='#SkSurface_kFlushRead_BackendHandleAccess'>kFlushRead_BackendHandleAccess</a>,</td>
</tr>
</table>
+<a href='#SkSurface_kFlushWrite_BackendHandleAccess'>kFlushWrite_BackendHandleAccess</a>,
+<a href='#SkSurface_kDiscardWrite_BackendHandleAccess'>kDiscardWrite_BackendHandleAccess</a>
+
### Return Value
-GPU render target reference; invalid on failure
+GPU <a href='undocumented#Render_Target'>render target</a> reference; invalid on failure
### See Also
@@ -1178,13 +1249,13 @@
<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* <a href='#SkSurface_getCanvas'>getCanvas</a>()
</pre>
-Returns <a href='SkCanvas_Reference#Canvas'>Canvas</a> that draws into <a href='#Surface'>Surface</a>. Subsequent calls return the same <a href='SkCanvas_Reference#Canvas'>Canvas</a>.
-<a href='SkCanvas_Reference#Canvas'>Canvas</a> returned is managed and owned by <a href='#Surface'>Surface</a>, and is deleted when <a href='#Surface'>Surface</a>
+Returns <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> that draws into <a href='SkSurface_Reference#SkSurface'>SkSurface</a>. Subsequent calls return the same <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>.
+<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> returned is managed and owned by <a href='SkSurface_Reference#SkSurface'>SkSurface</a>, and is deleted when <a href='SkSurface_Reference#SkSurface'>SkSurface</a>
is deleted.
### Return Value
-drawing <a href='SkCanvas_Reference#Canvas'>Canvas</a> for <a href='#Surface'>Surface</a>
+drawing <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> for <a href='SkSurface_Reference#SkSurface'>SkSurface</a>
### Example
@@ -1202,24 +1273,25 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='#SkSurface'>SkSurface</a>> <a href='#SkSurface_makeSurface'>makeSurface</a>(const <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a>& imageInfo)
</pre>
-Returns a compatible <a href='#Surface'>Surface</a>, or nullptr. Returned <a href='#Surface'>Surface</a> contains
-the same raster, GPU, or null properties as the original. Returned <a href='#Surface'>Surface</a>
+Returns a compatible <a href='SkSurface_Reference#SkSurface'>SkSurface</a>, or nullptr. Returned <a href='SkSurface_Reference#SkSurface'>SkSurface</a> contains
+the same raster, GPU, or null properties as the original. Returned <a href='SkSurface_Reference#SkSurface'>SkSurface</a>
does not share the same pixels.
Returns nullptr if <a href='#SkSurface_makeSurface_imageInfo'>imageInfo</a> width or height are zero, or if <a href='#SkSurface_makeSurface_imageInfo'>imageInfo</a>
-is incompatible with <a href='#Surface'>Surface</a>.
+is incompatible with <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.
### Parameters
<table> <tr> <td><a name='SkSurface_makeSurface_imageInfo'><code><strong>imageInfo</strong></code></a></td>
- <td>width, height, <a href='SkImageInfo_Reference#Color_Type'>Color Type</a>, <a href='SkImageInfo_Reference#Alpha_Type'>Alpha Type</a>, <a href='undocumented#Color_Space'>Color Space</a>,
-of <a href='#Surface'>Surface</a>; width and height must be greater than zero</td>
+ <td>width, height, <a href='SkImageInfo_Reference#SkColorType'>SkColorType</a>, <a href='SkImageInfo_Reference#SkAlphaType'>SkAlphaType</a>, <a href='undocumented#SkColorSpace'>SkColorSpace</a>,</td>
</tr>
</table>
+of <a href='SkSurface_Reference#SkSurface'>SkSurface</a>; width and height must be greater than zero
+
### Return Value
-compatible <a href='#Surface'>Surface</a> or nullptr
+compatible <a href='SkSurface_Reference#SkSurface'>SkSurface</a> or nullptr
### Example
@@ -1237,13 +1309,13 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='SkImage_Reference#SkImage'>SkImage</a>> <a href='#SkSurface_makeImageSnapshot'>makeImageSnapshot</a>()
</pre>
-Returns <a href='SkImage_Reference#Image'>Image</a> capturing <a href='#Surface'>Surface</a> contents. Subsequent drawing to <a href='#Surface'>Surface</a> contents
-are not captured. <a href='SkImage_Reference#Image'>Image</a> allocation is accounted for if <a href='#Surface'>Surface</a> was created with
-<a href='undocumented#SkBudgeted_kYes'>SkBudgeted::kYes</a>.
+Returns <a href='SkImage_Reference#SkImage'>SkImage</a> capturing <a href='SkSurface_Reference#SkSurface'>SkSurface</a> contents. Subsequent drawing to <a href='SkSurface_Reference#SkSurface'>SkSurface</a> contents
+are not captured. <a href='SkImage_Reference#SkImage'>SkImage</a> allocation is accounted for if <a href='SkSurface_Reference#SkSurface'>SkSurface</a> was created with
+<a href='undocumented#SkBudgeted'>SkBudgeted</a>::<a href='#SkBudgeted_kYes'>kYes</a>.
### Return Value
-<a href='SkImage_Reference#Image'>Image</a> initialized with <a href='#Surface'>Surface</a> contents
+<a href='SkImage_Reference#SkImage'>SkImage</a> initialized with <a href='SkSurface_Reference#SkSurface'>SkSurface</a> contents
### Example
@@ -1263,28 +1335,29 @@
void <a href='#SkSurface_draw'>draw</a>(<a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>* canvas, <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, const <a href='SkPaint_Reference#SkPaint'>SkPaint</a>* paint)
</pre>
-Draws <a href='#Surface'>Surface</a> contents to <a href='#SkSurface_draw_canvas'>canvas</a>, with its top-left corner at (<a href='#SkSurface_draw_x'>x</a>, <a href='#SkSurface_draw_y'>y</a>).
+Draws <a href='SkSurface_Reference#SkSurface'>SkSurface</a> contents to <a href='#SkSurface_draw()_canvas'>canvas</a>, with its top-left corner at (<a href='#SkSurface_draw()_x'>x</a>, <a href='#SkSurface_draw()_y'>y</a>).
-If <a href='SkPaint_Reference#Paint'>Paint</a> <a href='#SkSurface_draw_paint'>paint</a> is not nullptr, apply <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='SkColor_Reference#Alpha'>Color Alpha</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-<a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, and <a href='undocumented#Draw_Looper'>Draw Looper</a>.
+If <a href='SkPaint_Reference#SkPaint'>SkPaint</a> <a href='#SkSurface_draw()_paint'>paint</a> is not nullptr, apply <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='SkColor_Reference#Alpha'>alpha</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,
+<a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, and <a href='undocumented#SkDrawLooper'>SkDrawLooper</a>.
### Parameters
<table> <tr> <td><a name='SkSurface_draw_canvas'><code><strong>canvas</strong></code></a></td>
- <td><a href='SkCanvas_Reference#Canvas'>Canvas</a> drawn into</td>
+ <td><a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a> drawn into</td>
</tr>
<tr> <td><a name='SkSurface_draw_x'><code><strong>x</strong></code></a></td>
- <td>horizontal offset in <a href='SkCanvas_Reference#Canvas'>Canvas</a></td>
+ <td>horizontal offset in <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a></td>
</tr>
<tr> <td><a name='SkSurface_draw_y'><code><strong>y</strong></code></a></td>
- <td>vertical offset in <a href='SkCanvas_Reference#Canvas'>Canvas</a></td>
+ <td>vertical offset in <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a></td>
</tr>
<tr> <td><a name='SkSurface_draw_paint'><code><strong>paint</strong></code></a></td>
- <td><a href='SkPaint_Reference#Paint'>Paint</a> containing <a href='SkBlendMode_Reference#Blend_Mode'>Blend Mode</a>, <a href='undocumented#Color_Filter'>Color Filter</a>, <a href='undocumented#Image_Filter'>Image Filter</a>,
-and so on; or nullptr</td>
+ <td><a href='SkPaint_Reference#SkPaint'>SkPaint</a> containing <a href='SkBlendMode_Reference#SkBlendMode'>SkBlendMode</a>, <a href='undocumented#SkColorFilter'>SkColorFilter</a>, <a href='undocumented#SkImageFilter'>SkImageFilter</a>,</td>
</tr>
</table>
+and so on; or nullptr
+
### Example
<div><fiddle-embed name="0de693f4d8dd898a60be8cfba23952be"></fiddle-embed></div>
@@ -1301,22 +1374,22 @@
bool <a href='#SkSurface_peekPixels'>peekPixels</a>(<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>* pixmap)
</pre>
-Copies <a href='#Surface'>Surface</a> pixel address, row bytes, and <a href='SkImageInfo_Reference#Image_Info'>Image Info</a> to <a href='SkPixmap_Reference#Pixmap'>Pixmap</a>, if address
-is available, and returns true. If pixel address is not available, return
-false and leave <a href='SkPixmap_Reference#Pixmap'>Pixmap</a> unchanged.
+Copies <a href='SkSurface_Reference#SkSurface'>SkSurface</a> <a href='undocumented#Pixel'>pixel</a> address, row bytes, and <a href='SkImageInfo_Reference#SkImageInfo'>SkImageInfo</a> to <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>, if address
+is available, and returns true. If <a href='undocumented#Pixel'>pixel</a> address is not available, return
+false and leave <a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a> unchanged.
-<a href='#SkSurface_peekPixels_pixmap'>pixmap</a> contents become invalid on any future change to <a href='#Surface'>Surface</a>.
+<a href='#SkSurface_peekPixels_pixmap'>pixmap</a> contents become invalid on any future change to <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.
### Parameters
<table> <tr> <td><a name='SkSurface_peekPixels_pixmap'><code><strong>pixmap</strong></code></a></td>
- <td>storage for pixel state if pixels are readable; otherwise, ignored</td>
+ <td>storage for <a href='undocumented#Pixel'>pixel</a> state if pixels are readable; otherwise, ignored</td>
</tr>
</table>
### Return Value
-true if <a href='#Surface'>Surface</a> has direct access to pixels
+true if <a href='SkSurface_Reference#SkSurface'>SkSurface</a> has direct access to pixels
### Example
@@ -1602,11 +1675,11 @@
const <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a>& <a href='#SkSurface_props'>props</a>() const
</pre>
-Returns <a href='undocumented#Surface_Properties'>Surface Properties</a> for surface.
+Returns <a href='undocumented#SkSurfaceProps'>SkSurfaceProps</a> for <a href='SkSurface_Reference#Surface'>surface</a>.
### Return Value
-LCD striping orientation and setting for device independent fonts
+LCD striping orientation and setting for <a href='undocumented#Device'>device</a> independent fonts
### Example
@@ -1644,7 +1717,7 @@
void <a href='#SkSurface_flush'>flush</a>()
</pre>
-Issues pending <a href='#Surface'>Surface</a> commands to the GPU-backed API and resolves any <a href='#Surface'>Surface</a> MSAA.
+Issues pending <a href='SkSurface_Reference#SkSurface'>SkSurface</a> commands to the GPU-backed API and resolves any <a href='SkSurface_Reference#SkSurface'>SkSurface</a> MSAA.
Skia flushes as needed, so it is not necessary to call this if Skia manages
drawing and object lifetime. Call when interleaving Skia calls with native
@@ -1663,7 +1736,7 @@
<a href='undocumented#GrBackendSemaphore'>GrBackendSemaphore</a> signalSemaphores[])
</pre>
-Issues pending <a href='#Surface'>Surface</a> commands to the GPU-backed API and resolves any <a href='#Surface'>Surface</a> MSAA.
+Issues pending <a href='SkSurface_Reference#SkSurface'>SkSurface</a> commands to the GPU-backed API and resolves any <a href='SkSurface_Reference#SkSurface'>SkSurface</a> MSAA.
After issuing all commands, <a href='#SkSurface_flushAndSignalSemaphores_signalSemaphores'>signalSemaphores</a> of count <a href='#SkSurface_flushAndSignalSemaphores_numSemaphores'>numSemaphores</a> semaphores
are signaled by the GPU.
@@ -1674,22 +1747,22 @@
The caller must delete the semaphores created and returned in <a href='#SkSurface_flushAndSignalSemaphores_signalSemaphores'>signalSemaphores</a>.
<a href='undocumented#GrBackendSemaphore'>GrBackendSemaphore</a> can be deleted as soon as this function returns.
-If the back-end API is OpenGL only uninitialized <a href='undocumented#Backend_Semaphore'>Backend Semaphores</a> are supported.
+If the back-end API is OpenGL only uninitialized <a href='undocumented#Backend_Semaphore'>backend semaphores</a> are supported.
If the back-end API is Vulkan semaphores may be initialized or uninitialized.
If uninitialized, created semaphores are valid only with the VkDevice
with which they were created.
-If <a href='undocumented#GrSemaphoresSubmitted_kNo'>GrSemaphoresSubmitted::kNo</a> is returned, the GPU back-end did not create or
+If <a href='undocumented#GrSemaphoresSubmitted'>GrSemaphoresSubmitted</a>::<a href='#GrSemaphoresSubmitted_kNo'>kNo</a> is returned, the GPU back-end did not create or
add any semaphores to signal on the GPU; the caller should not instruct the GPU
to wait on any of the semaphores.
-Pending surface commands are flushed regardless of the return result.
+Pending <a href='SkSurface_Reference#Surface'>surface</a> commands are flushed regardless of the return result.
### Parameters
<table> <tr> <td><a name='SkSurface_flushAndSignalSemaphores_numSemaphores'><code><strong>numSemaphores</strong></code></a></td>
- <td>size of <a href='#SkSurface_flushAndSignalSemaphores_signalSemaphores'>signalSemaphores</a> array</td>
+ <td><a href='undocumented#Size'>size</a> of <a href='#SkSurface_flushAndSignalSemaphores_signalSemaphores'>signalSemaphores</a> array</td>
</tr>
<tr> <td><a name='SkSurface_flushAndSignalSemaphores_signalSemaphores'><code><strong>signalSemaphores</strong></code></a></td>
<td>array of semaphore containers</td>
@@ -1698,7 +1771,7 @@
### Return Value
-one of: <a href='undocumented#GrSemaphoresSubmitted_kYes'>GrSemaphoresSubmitted::kYes</a>, <a href='undocumented#GrSemaphoresSubmitted_kNo'>GrSemaphoresSubmitted::kNo</a>
+one of: <a href='undocumented#GrSemaphoresSubmitted'>GrSemaphoresSubmitted</a>::<a href='#GrSemaphoresSubmitted_kYes'>kYes</a>, <a href='undocumented#GrSemaphoresSubmitted'>GrSemaphoresSubmitted</a>::<a href='#GrSemaphoresSubmitted_kNo'>kNo</a>
### See Also
@@ -1713,7 +1786,7 @@
</pre>
Inserts a list of GPU semaphores that the current GPU-backed API must wait on before
-executing any more commands on the GPU for this surface. Skia will take ownership of the
+executing any more commands on the GPU for this <a href='SkSurface_Reference#Surface'>surface</a>. Skia will take ownership of the
underlying semaphores and delete them once they have been signaled and waited on.
If this call returns false, then the GPU back-end will not wait on any passed in semaphores,
and the client will still own the semaphores.
@@ -1721,7 +1794,7 @@
### Parameters
<table> <tr> <td><a name='SkSurface_wait_numSemaphores'><code><strong>numSemaphores</strong></code></a></td>
- <td>size of <a href='#SkSurface_wait_waitSemaphores'>waitSemaphores</a> array</td>
+ <td><a href='undocumented#Size'>size</a> of <a href='#SkSurface_wait()_waitSemaphores'>waitSemaphores</a> array</td>
</tr>
<tr> <td><a name='SkSurface_wait_waitSemaphores'><code><strong>waitSemaphores</strong></code></a></td>
<td>array of semaphore containers</td>
@@ -1744,12 +1817,12 @@
bool <a href='#SkSurface_characterize'>characterize</a>(<a href='undocumented#SkSurfaceCharacterization'>SkSurfaceCharacterization</a>* characterization) const
</pre>
-Initializes <a href='undocumented#Surface_Characterization'>Surface Characterization</a> that can be used to perform GPU back-end
+Initializes <a href='undocumented#SkSurfaceCharacterization'>SkSurfaceCharacterization</a> that can be used to perform GPU back-end
processing in a separate thread. Typically this is used to divide drawing
-into multiple tiles. DeferredDisplayListRecorder records the drawing commands
+into multiple tiles. <a href='undocumented#SkDeferredDisplayListRecorder'>SkDeferredDisplayListRecorder</a> records the drawing commands
for each tile.
-Return true if <a href='#Surface'>Surface</a> supports <a href='#SkSurface_characterize_characterization'>characterization</a>. <a href='undocumented#Raster_Surface'>Raster Surface</a> returns false.
+Return true if <a href='SkSurface_Reference#SkSurface'>SkSurface</a> supports <a href='#SkSurface_characterize()_characterization'>characterization</a>. <a href='undocumented#Raster_Surface'>raster surface</a> returns false.
### Parameters
@@ -1778,11 +1851,11 @@
bool <a href='#SkSurface_draw'>draw</a>(<a href='undocumented#SkDeferredDisplayList'>SkDeferredDisplayList</a>* deferredDisplayList)
</pre>
-Draws deferred display list created using <a href='undocumented#SkDeferredDisplayListRecorder'>SkDeferredDisplayListRecorder</a>.
-Has no effect and returns false if <a href='undocumented#Surface_Characterization'>Surface Characterization</a> stored in
-<a href='#SkSurface_draw_2_deferredDisplayList'>deferredDisplayList</a> is not compatible with <a href='#Surface'>Surface</a>.
+Draws deferred display list created using <a href='undocumented#SkDeferredDisplayListRecorder'>SkDeferredDisplayListRecorder</a>.
+Has no effect and returns false if <a href='undocumented#SkSurfaceCharacterization'>SkSurfaceCharacterization</a> stored in
+<a href='#SkSurface_draw_2_deferredDisplayList'>deferredDisplayList</a> is not compatible with <a href='SkSurface_Reference#SkSurface'>SkSurface</a>.
-<a href='undocumented#Raster_Surface'>Raster Surface</a> returns false.
+<a href='undocumented#Raster_Surface'>raster surface</a> returns false.
### Parameters
diff --git a/site/user/api/SkTextBlobBuilder_Reference.md b/site/user/api/SkTextBlobBuilder_Reference.md
index a290e89..4800c6f 100644
--- a/site/user/api/SkTextBlobBuilder_Reference.md
+++ b/site/user/api/SkTextBlobBuilder_Reference.md
@@ -107,11 +107,11 @@
<a href='#SkTextBlobBuilder'>SkTextBlobBuilder</a>()
</pre>
-Constructs empty <a href='#Text_Blob_Builder'>Text Blob Builder</a>. By default, <a href='#Text_Blob_Builder'>Text Blob Builder</a> has no runs.
+Constructs empty <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a>. By default, <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a> has no runs.
### Return Value
-empty <a href='#Text_Blob_Builder'>Text Blob Builder</a>
+empty <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a>
### Example
@@ -137,7 +137,7 @@
<a href='#SkTextBlobBuilder_destructor'>~SkTextBlobBuilder</a>()
</pre>
-Deletes data allocated internally by <a href='#Text_Blob_Builder'>Text Blob Builder</a>.
+Deletes <a href='undocumented#Data'>data</a> allocated internally by <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a>.
### See Also
@@ -151,16 +151,16 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>> <a href='#SkTextBlobBuilder_make'>make</a>()
</pre>
-Returns <a href='SkTextBlob_Reference#Text_Blob'>Text Blob</a> built from runs of <a href='undocumented#Glyph'>Glyphs</a> added by builder. Returned
-<a href='SkTextBlob_Reference#Text_Blob'>Text Blob</a> is immutable; it may be copied, but its contents may not be altered.
-Returns nullptr if no runs of <a href='undocumented#Glyph'>Glyphs</a> were added by builder.
+Returns <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> built from runs of <a href='undocumented#Glyph'>glyphs</a> added by builder. Returned
+<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> is immutable; it may be copied, but its contents may not be altered.
+Returns nullptr if no runs of <a href='undocumented#Glyph'>glyphs</a> were added by builder.
-Resets <a href='#Text_Blob_Builder'>Text Blob Builder</a> to its initial empty state, allowing it to be
+Resets <a href='SkTextBlobBuilder_Reference#SkTextBlobBuilder'>SkTextBlobBuilder</a> to its initial empty state, allowing it to be
reused to build a new set of runs.
### Return Value
-<a href='SkTextBlob_Reference#Text_Blob'>Text Blob</a> or nullptr
+<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> or nullptr
### Example
diff --git a/site/user/api/SkTextBlob_Reference.md b/site/user/api/SkTextBlob_Reference.md
index 04b160a..7baa09c 100644
--- a/site/user/api/SkTextBlob_Reference.md
+++ b/site/user/api/SkTextBlob_Reference.md
@@ -34,9 +34,9 @@
const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkTextBlob_bounds'>bounds</a>() const
</pre>
-Returns conservative bounding box. Uses <a href='SkPaint_Reference#Paint'>Paint</a> associated with each glyph to
-determine glyph bounds, and unions all bounds. Returned bounds may be
-larger than the bounds of all <a href='undocumented#Glyph'>Glyphs</a> in runs.
+Returns conservative bounding box. Uses <a href='SkPaint_Reference#SkPaint'>SkPaint</a> associated with each <a href='undocumented#Glyph'>glyph</a> to
+determine <a href='undocumented#Glyph'>glyph</a> bounds, and unions all bounds. Returned bounds may be
+larger than the bounds of all <a href='undocumented#Glyph'>glyphs</a> in runs.
### Return Value
@@ -58,11 +58,11 @@
uint32_t <a href='#SkTextBlob_uniqueID'>uniqueID</a>() const
</pre>
-Returns a non-zero value unique among all text blobs.
+Returns a non-zero value unique among all <a href='undocumented#Text'>text</a> blobs.
### Return Value
-identifier for <a href='#Text_Blob'>Text Blob</a>
+identifier for <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>
### Example
@@ -169,32 +169,32 @@
size_t <a href='#SkTextBlob_serialize'>serialize</a>(const <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>& procs, void* memory, size_t memory_size) const
</pre>
-Writes data to allow later reconstruction of <a href='#Text_Blob'>Text Blob</a>. <a href='#SkTextBlob_serialize_memory'>memory</a> points to storage
-to receive the encoded data, and memory_size describes the <a href='#SkTextBlob_serialize_size'>size</a> of storage.
-Returns bytes used if provided storage is large enough to hold all data;
+Writes <a href='undocumented#Data'>data</a> to allow later reconstruction of <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>. <a href='#SkTextBlob_serialize()_memory'>memory</a> <a href='SkPoint_Reference#Point'>points</a> to storage
+to receive the encoded <a href='undocumented#Data'>data</a>, and <a href='#SkTextBlob_serialize()_memory_size'>memory_size</a> describes the <a href='undocumented#Size'>size</a> of storage.
+Returns bytes used if provided storage is large enough to hold all <a href='undocumented#Data'>data</a>;
otherwise, returns zero.
-<a href='#SkTextBlob_serialize_procs'>procs</a>.fTypefaceProc permits supplying a custom function to encode <a href='undocumented#Typeface'>Typeface</a>.
-If <a href='#SkTextBlob_serialize_procs'>procs</a>.fTypefaceProc is nullptr, default encoding is used. <a href='#SkTextBlob_serialize_procs'>procs</a>.fTypefaceCtx
-may be used to provide user context to <a href='#SkTextBlob_serialize_procs'>procs</a>.fTypefaceProc; <a href='#SkTextBlob_serialize_procs'>procs</a>.fTypefaceProc
-is called with a pointer to <a href='undocumented#Typeface'>Typeface</a> and user context.
+<a href='#SkTextBlob_serialize()_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a> permits supplying a custom function to encode <a href='undocumented#SkTypeface'>SkTypeface</a>.
+If <a href='#SkTextBlob_serialize()_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a> is nullptr, default encoding is used. <a href='#SkTextBlob_serialize()_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceCtx'>fTypefaceCtx</a>
+may be used to provide user context to <a href='#SkTextBlob_serialize()_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a>; <a href='#SkTextBlob_serialize()_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a>
+is called with a pointer to <a href='undocumented#SkTypeface'>SkTypeface</a> and user context.
### Parameters
<table> <tr> <td><a name='SkTextBlob_serialize_procs'><code><strong>procs</strong></code></a></td>
- <td>custom serial data encoders; may be nullptr</td>
+ <td>custom serial <a href='undocumented#Data'>data</a> encoders; may be nullptr</td>
</tr>
<tr> <td><a name='SkTextBlob_serialize_memory'><code><strong>memory</strong></code></a></td>
- <td>storage for data</td>
+ <td>storage for <a href='undocumented#Data'>data</a></td>
</tr>
- <tr> <td><a name='SkTextBlob_serialize_size'><code><strong>size</strong></code></a></td>
- <td><a href='#SkTextBlob_serialize_size'>size</a> of storage</td>
+ <tr> <td><a name='SkTextBlob_serialize_memory_size'><code><strong>memory_size</strong></code></a></td>
+ <td><a href='undocumented#Size'>size</a> of storage</td>
</tr>
</table>
### Return Value
-bytes written, or zero if required storage is larger than memory_size
+bytes written, or zero if required storage is larger than <a href='#SkTextBlob_serialize()_memory_size'>memory_size</a>
### Example
@@ -212,24 +212,24 @@
<a href='undocumented#sk_sp'>sk sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkTextBlob_serialize'>serialize</a>(const <a href='undocumented#SkSerialProcs'>SkSerialProcs</a>& procs) const
</pre>
-Returns storage containing <a href='undocumented#Data'>Data</a> describing <a href='#Text_Blob'>Text Blob</a>, using optional custom
+Returns storage containing <a href='undocumented#SkData'>SkData</a> describing <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>, using optional custom
encoders.
-<a href='#SkTextBlob_serialize_2_procs'>procs</a>.fTypefaceProc permits supplying a custom function to encode <a href='undocumented#Typeface'>Typeface</a>.
-If <a href='#SkTextBlob_serialize_2_procs'>procs</a>.fTypefaceProc is nullptr, default encoding is used. <a href='#SkTextBlob_serialize_2_procs'>procs</a>.fTypefaceCtx
-may be used to provide user context to <a href='#SkTextBlob_serialize_2_procs'>procs</a>.fTypefaceProc; <a href='#SkTextBlob_serialize_2_procs'>procs</a>.fTypefaceProc
-is called with a pointer to <a href='undocumented#Typeface'>Typeface</a> and user context.
+<a href='#SkTextBlob_serialize_2_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a> permits supplying a custom function to encode <a href='undocumented#SkTypeface'>SkTypeface</a>.
+If <a href='#SkTextBlob_serialize_2_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a> is nullptr, default encoding is used. <a href='#SkTextBlob_serialize_2_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceCtx'>fTypefaceCtx</a>
+may be used to provide user context to <a href='#SkTextBlob_serialize_2_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a>; <a href='#SkTextBlob_serialize_2_procs'>procs</a>.<a href='#SkSerialProcs_fTypefaceProc'>fTypefaceProc</a>
+is called with a pointer to <a href='undocumented#SkTypeface'>SkTypeface</a> and user context.
### Parameters
<table> <tr> <td><a name='SkTextBlob_serialize_2_procs'><code><strong>procs</strong></code></a></td>
- <td>custom serial data encoders; may be nullptr</td>
+ <td>custom serial <a href='undocumented#Data'>data</a> encoders; may be nullptr</td>
</tr>
</table>
### Return Value
-storage containing serialized <a href='#Text_Blob'>Text Blob</a>
+storage containing serialized <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>
### Example
@@ -247,14 +247,14 @@
static <a href='undocumented#sk_sp'>sk sp</a><<a href='#SkTextBlob'>SkTextBlob</a>> <a href='#SkTextBlob_Deserialize'>Deserialize</a>(const void* data, size_t size, const <a href='undocumented#SkDeserialProcs'>SkDeserialProcs</a>& procs)
</pre>
-Recreates <a href='#Text_Blob'>Text Blob</a> that was serialized into <a href='#SkTextBlob_Deserialize_data'>data</a>. Returns constructed <a href='#Text_Blob'>Text Blob</a>
+Recreates <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> that was serialized into <a href='#SkTextBlob_Deserialize_data'>data</a>. Returns constructed <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>
if successful; otherwise, returns nullptr. Fails if <a href='#SkTextBlob_Deserialize_size'>size</a> is smaller than
-required <a href='#SkTextBlob_Deserialize_data'>data</a> length, or if <a href='#SkTextBlob_Deserialize_data'>data</a> does not permit constructing valid <a href='#Text_Blob'>Text Blob</a>.
+required <a href='#SkTextBlob_Deserialize_data'>data</a> length, or if <a href='#SkTextBlob_Deserialize_data'>data</a> does not permit constructing valid <a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a>.
-<a href='#SkTextBlob_Deserialize_procs'>procs</a>.fTypefaceProc permits supplying a custom function to decode <a href='undocumented#Typeface'>Typeface</a>.
-If <a href='#SkTextBlob_Deserialize_procs'>procs</a>.fTypefaceProc is nullptr, default decoding is used. <a href='#SkTextBlob_Deserialize_procs'>procs</a>.fTypefaceCtx
-may be used to provide user context to <a href='#SkTextBlob_Deserialize_procs'>procs</a>.fTypefaceProc; <a href='#SkTextBlob_Deserialize_procs'>procs</a>.fTypefaceProc
-is called with a pointer to <a href='undocumented#Typeface'>Typeface</a> <a href='#SkTextBlob_Deserialize_data'>data</a>, <a href='#SkTextBlob_Deserialize_data'>data</a> byte length, and user context.
+<a href='#SkTextBlob_Deserialize_procs'>procs</a>.<a href='#SkDeserialProcs_fTypefaceProc'>fTypefaceProc</a> permits supplying a custom function to decode <a href='undocumented#SkTypeface'>SkTypeface</a>.
+If <a href='#SkTextBlob_Deserialize_procs'>procs</a>.<a href='#SkDeserialProcs_fTypefaceProc'>fTypefaceProc</a> is nullptr, default decoding is used. <a href='#SkTextBlob_Deserialize_procs'>procs</a>.<a href='#SkDeserialProcs_fTypefaceCtx'>fTypefaceCtx</a>
+may be used to provide user context to <a href='#SkTextBlob_Deserialize_procs'>procs</a>.<a href='#SkDeserialProcs_fTypefaceProc'>fTypefaceProc</a>; <a href='#SkTextBlob_Deserialize_procs'>procs</a>.<a href='#SkDeserialProcs_fTypefaceProc'>fTypefaceProc</a>
+is called with a pointer to <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='#SkTextBlob_Deserialize_data'>data</a>, <a href='#SkTextBlob_Deserialize_data'>data</a> byte length, and user context.
### Parameters
@@ -271,7 +271,7 @@
### Return Value
-<a href='#Text_Blob'>Text Blob</a> constructed from <a href='#SkTextBlob_Deserialize_data'>data</a> in memory
+<a href='SkTextBlob_Reference#SkTextBlob'>SkTextBlob</a> constructed from <a href='#SkTextBlob_Deserialize_data'>data</a> in memory
### Example
diff --git a/site/user/api/undocumented.md b/site/user/api/undocumented.md
index a72f93f..82afd7d 100644
--- a/site/user/api/undocumented.md
+++ b/site/user/api/undocumented.md
@@ -103,7 +103,36 @@
<a name='SkDeserialProcs'></a>
----
+---<table style='border-collapse: collapse; width: 62.5em'>
+
+ <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Type</th>
+<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Member</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; '>SkDeserialPictureProc</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkDeserialProcs_fPictureProc'><code>fPictureProc</code></a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>void*</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkDeserialProcs_fPictureCtx'><code>fPictureCtx</code></a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>SkDeserialTypefaceProc</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkDeserialProcs_fTypefaceProc'><code>fTypefaceProc</code></a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>void*</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkDeserialProcs_fTypefaceCtx'><code>fTypefaceCtx</code></a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+ </tr>
+</table>
<a name='SkBaseDevice'></a>
@@ -247,6 +276,22 @@
---
+<a name='SkISize_width'></a>
+
+---
+
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+int32_t <a href='#SkISize_width'>width</a>() const
+</pre>
+
+<a name='SkISize_height'></a>
+
+---
+
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+int32_t <a href='#SkISize_height'>height</a>() const
+</pre>
+
<a name='SkImageFilter'></a>
---
@@ -368,7 +413,36 @@
<a name='SkRSXform'></a>
----
+---<table style='border-collapse: collapse; width: 62.5em'>
+
+ <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Type</th>
+<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Member</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; '>SkScalar</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRSXform_fSCos'><code>fSCos</code></a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>SkScalar</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRSXform_fSSin'><code>fSSin</code></a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>SkScalar</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRSXform_fTx'><code>fTx</code></a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>SkScalar</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkRSXform_fTy'><code>fTy</code></a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+ </tr>
+</table>
<a name='SkRasterHandleAllocator'></a>
@@ -395,10 +469,6 @@
---
-<a name='sk_sp'></a>
-
----
-
<a name='GrBackendRenderTarget'></a>
---
@@ -419,13 +489,44 @@
<a name='Arc'></a>
+<a name='Sweep_Flag'></a>
+
<a name='SkScalar'></a>
---
<a name='SkSerialProcs'></a>
----
+---<table style='border-collapse: collapse; width: 62.5em'>
+
+ <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Type</th>
+<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Member</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; '>SkSerialPictureProc</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkSerialProcs_fPictureProc'><code>fPictureProc</code></a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>void*</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkSerialProcs_fPictureCtx'><code>fPictureCtx</code></a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>SkSerialTypefaceProc</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkSerialProcs_fTypefaceProc'><code>fTypefaceProc</code></a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>void*</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkSerialProcs_fTypefaceCtx'><code>fTypefaceCtx</code></a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+</td>
+ </tr>
+</table>
<a name='SkShader'></a>
@@ -483,6 +584,26 @@
---
+<a name='SkSize_width'></a>
+
+---
+
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+int32_t <a href='#SkSize_width'>width</a>() const
+</pre>
+
+<a name='SkSize_height'></a>
+
+---
+
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+int32_t <a href='#SkSize_height'>height</a>() const
+</pre>
+
+<a name='sk_sp'></a>
+
+---
+
<a name='SkStreamAsset'></a>
---
diff --git a/site/user/api/usingBookmaker.md b/site/user/api/usingBookmaker.md
index 0ee0814..a0a2db6 100644
--- a/site/user/api/usingBookmaker.md
+++ b/site/user/api/usingBookmaker.md
@@ -159,7 +159,7 @@
If a method or function has an unnamed parameter, bookmaker generates an error:
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
-C:/puregit/include/core/<a href='SkPixmap_Reference#SkPixmap'>SkPixmap</a>.h(208): error: #Method missing param name
+C:/puregit/include/core/SkPixmap.h(208): error: #Method missing param name
bool erase(const SkColor4f&, const SkIRect* subset = nullptr) const
^
</pre>
diff --git a/tools/bookmaker/bookmaker.cpp b/tools/bookmaker/bookmaker.cpp
index 7f0b9f9..beb7dd6 100644
--- a/tools/bookmaker/bookmaker.cpp
+++ b/tools/bookmaker/bookmaker.cpp
@@ -12,6 +12,8 @@
#include <Windows.h>
#endif
+const string kSpellingFileName("spelling.txt");
+
DEFINE_string2(status, a, "", "File containing status of documentation. (Use in place of -b -i)");
DEFINE_string2(bmh, b, "", "Path to a *.bmh file or a directory.");
DEFINE_bool2(catalog, c, false, "Write example catalog.htm. (Requires -b -f -r)");
@@ -32,6 +34,8 @@
DEFINE_bool2(validate, V, false, "Validate that all anchor references have definitions. (Requires -r)");
DEFINE_bool2(skip, z, false, "Skip degenerate missed in legacy preprocessor.");
+// -b docs -i include/core/SkRect.h -f fiddleout.json -r site/user/api
+// -b docs/SkIRect_Reference.bmh -H
/* todos:
if #Subtopic contains #SeeAlso or #Example generate horizontal rule at end
@@ -217,6 +221,9 @@
if (nullptr == fRoot) {
fRoot = this->findBmhObject(markType, name);
fRoot->fFileName = fFileName;
+ fRoot->fName = name;
+ fRoot->fNames.fName = name;
+ fRoot->fNames.fParent = &fGlobalNames;
definition = fRoot;
} else {
if (nullptr == fParent) {
@@ -241,6 +248,10 @@
(fRoot->fBranches)[name] = childRoot;
childRoot->setRootParent(fRoot);
childRoot->fFileName = fFileName;
+ SkASSERT(MarkType::kSubtopic != fRoot->fMarkType
+ && MarkType::kTopic != fRoot->fMarkType);
+ childRoot->fNames.fName = name;
+ childRoot->fNames.fParent = &fRoot->fNames;
fRoot = childRoot;
definition = fRoot;
} else {
@@ -353,6 +364,7 @@
definition->fName += typeNameBuilder[0];
definition->fFiddle = parent->fFiddle + '_';
}
+ rootDefinition->fNames.fName = rootDefinition->fName;
definition->fFiddle += Definition::NormalizedName(typeNameBuilder[0]);
this->setAsParent(definition);
}
@@ -897,7 +909,7 @@
}
this->skipToAlpha();
const char* wordStart = fChar;
- this->skipToNonName();
+ this->skipToWhiteSpace();
if (fChar - wordStart > 0) {
fExternals.emplace_front(MarkType::kExternal, wordStart, fChar, fLineCount, fParent,
fMC);
@@ -1225,6 +1237,237 @@
return result;
}
+string BmhParser::loweredTopic(string name, Definition* def) {
+ string lowered;
+ SkASSERT('_' != name[0]);
+ char last = '_';
+ for (char c : name) {
+ SkASSERT(' ' != c);
+ if (isupper(last)) {
+ lowered += islower(c) ? tolower(last) : last;
+ last = '\0';
+ }
+ if ('_' == c) {
+ last = c;
+ c = ' ';
+ } else if ('_' == last && isupper(c)) {
+ last = c;
+ continue;
+ }
+ lowered += c;
+ if (' ' == c) {
+ this->setUpPartialSubstitute(lowered);
+ }
+ }
+ if (isupper(last)) {
+ lowered += tolower(last);
+ }
+ return lowered;
+}
+
+void BmhParser::setUpGlobalSubstitutes() {
+ for (auto& entry : fExternals) {
+ string externalName = entry.fName;
+ SkASSERT(fGlobalNames.fRefMap.end() == fGlobalNames.fRefMap.find(externalName));
+ fGlobalNames.fRefMap[externalName] = nullptr;
+ }
+ for (auto bMap : { &fClassMap, &fConstMap, &fDefineMap, &fEnumMap, &fMethodMap,
+ &fTypedefMap } ) {
+ for (auto& entry : *bMap) {
+ Definition* parent = (Definition*) &entry.second;
+ string name = parent->fName;
+ SkASSERT(fGlobalNames.fLinkMap.end() == fGlobalNames.fLinkMap.find(name));
+ string ref = ParserCommon::HtmlFileName(parent->fFileName) + '#' + parent->fFiddle;
+ fGlobalNames.fLinkMap[name] = ref;
+ SkASSERT(fGlobalNames.fRefMap.end() == fGlobalNames.fRefMap.find(name));
+ fGlobalNames.fRefMap[name] = const_cast<Definition*>(parent);
+ NameMap* names = MarkType::kClass == parent->fMarkType
+ || MarkType::kStruct == parent->fMarkType
+ || MarkType::kEnumClass == parent->fMarkType ? &parent->asRoot()->fNames :
+ &fGlobalNames;
+ this->setUpSubstitutes(parent, names);
+ if (names != &fGlobalNames) {
+ names->copyToParent(&fGlobalNames);
+ }
+ }
+ }
+ for (auto& topic : fTopicMap) {
+ bool hasSubstitute = false;
+ for (auto& child : topic.second->fChildren) {
+ bool isAlias = MarkType::kAlias == child->fMarkType;
+ bool isSubstitute = MarkType::kSubstitute == child->fMarkType;
+ if (!isAlias && !isSubstitute) {
+ continue;
+ }
+ hasSubstitute |= isSubstitute;
+ string name(child->fContentStart, child->length());
+ if (isAlias) {
+ name = ParserCommon::ConvertRef(name, false);
+ for (auto aliasChild : child->fChildren) {
+ if (MarkType::kSubstitute == aliasChild->fMarkType) {
+ string sub(aliasChild->fContentStart, aliasChild->length());
+ this->setUpSubstitute(sub, topic.second);
+ }
+ }
+ }
+ this->setUpSubstitute(name, topic.second);
+ }
+ if (hasSubstitute) {
+ continue;
+ }
+ string lowered = this->loweredTopic(topic.first, topic.second);
+ SkDEBUGCODE(auto globalIter = fGlobalNames.fLinkMap.find(lowered));
+ SkASSERT(fGlobalNames.fLinkMap.end() == globalIter);
+ fGlobalNames.fLinkMap[lowered] =
+ ParserCommon::HtmlFileName(topic.second->fFileName) + '#' + topic.first;
+ SkASSERT(fGlobalNames.fRefMap.end() == fGlobalNames.fRefMap.find(lowered));
+ fGlobalNames.fRefMap[lowered] = topic.second;
+ }
+ size_t slash = fRawFilePathDir.rfind('/');
+ size_t bslash = fRawFilePathDir.rfind('\\');
+ string spellFile;
+ if (string::npos == slash && string::npos == bslash) {
+ spellFile = fRawFilePathDir;
+ } else {
+ if (string::npos != bslash && bslash > slash) {
+ slash = bslash;
+ }
+ spellFile = fRawFilePathDir.substr(0, slash);
+ }
+ spellFile += '/';
+ spellFile += kSpellingFileName;
+ FILE* file = fopen(spellFile.c_str(), "r");
+ if (!file) {
+ SkDebugf("missing %s\n", spellFile.c_str());
+ return;
+ }
+ fseek(file, 0L, SEEK_END);
+ int sz = (int) ftell(file);
+ rewind(file);
+ char* buffer = new char[sz];
+ memset(buffer, ' ', sz);
+ int read = (int)fread(buffer, 1, sz, file);
+ SkAssertResult(read > 0);
+ sz = read; // FIXME: ? why are sz and read different?
+ fclose(file);
+ int i = 0;
+ int start = i;
+ string word;
+ do {
+ if (' ' < buffer[i]) {
+ ++i;
+ continue;
+ }
+ word = string(&buffer[start], i - start);
+ if (fGlobalNames.fRefMap.end() == fGlobalNames.fRefMap.find(word)) {
+ fGlobalNames.fRefMap[word] = nullptr;
+ } else {
+ SkDebugf("%s ", word.c_str()); // debugging: word missing from spelling list
+ }
+ do {
+ ++i;
+ } while (i < sz && ' ' >= buffer[i]);
+ start = i;
+ } while (i < sz);
+ delete[] buffer;
+}
+
+void BmhParser::setUpSubstitutes(const Definition* parent, NameMap* names) {
+ for (const auto& child : parent->fChildren) {
+ MarkType markType = child->fMarkType;
+ if (MarkType::kAlias == markType) {
+ continue;
+ }
+ if (MarkType::kSubstitute == markType) {
+ continue;
+ }
+ string name(child->fName);
+ if (&fGlobalNames != names) {
+ size_t lastDC = name.rfind("::");
+ if (string::npos != lastDC) {
+ name = name.substr(lastDC + 2);
+ }
+ if ("" == name) {
+ continue;
+ }
+ }
+ size_t lastUnder = name.rfind('_');
+ if (string::npos != lastUnder && ++lastUnder < name.length()) {
+ bool numbers = true;
+ for (size_t index = lastUnder; index < name.length(); ++index) {
+ numbers &= (bool) isdigit(name[index]);
+ }
+ if (numbers) {
+ continue;
+ }
+ }
+ string ref;
+ if (&fGlobalNames == names) {
+ ref = ParserCommon::HtmlFileName(child->fFileName);
+ }
+ ref += '#' + child->fFiddle;
+ if (MarkType::kClass == markType || MarkType::kStruct == markType
+ || MarkType::kMethod == markType || MarkType::kEnum == markType
+ || MarkType::kEnumClass == markType || MarkType::kConst == markType
+ || MarkType::kMember == markType || MarkType::kDefine == markType
+ || MarkType::kTypedef == markType) {
+ SkASSERT(names->fLinkMap.end() == names->fLinkMap.find(name));
+ names->fLinkMap[name] = ref;
+ SkASSERT(names->fRefMap.end() == names->fRefMap.find(name));
+ names->fRefMap[name] = child;
+ }
+ if (MarkType::kClass == markType || MarkType::kStruct == markType
+ || MarkType::kEnumClass == markType) {
+ RootDefinition* rootDef = child->asRoot();
+ NameMap* nameMap = &rootDef->fNames;
+ this->setUpSubstitutes(child, nameMap);
+ nameMap->copyToParent(names);
+ }
+ if (MarkType::kEnum == markType) {
+ this->setUpSubstitutes(child, names);
+ }
+ if (MarkType::kSubtopic == markType) {
+ if (&fGlobalNames != names && string::npos != child->fName.find('_')) {
+ string lowered = this->loweredTopic(child->fName, child);
+ SkDEBUGCODE(auto refIter = names->fRefMap.find(lowered));
+ SkDEBUGCODE(auto iter = names->fLinkMap.find(lowered));
+ SkASSERT(names->fLinkMap.end() == iter);
+ names->fLinkMap[lowered] = '#' + child->fName;
+ SkASSERT(names->fRefMap.end() == refIter);
+ names->fRefMap[lowered] = child;
+ }
+ this->setUpSubstitutes(child, names);
+ }
+ }
+}
+
+void BmhParser::setUpPartialSubstitute(string name) {
+ auto iter = fGlobalNames.fRefMap.find(name);
+ if (fGlobalNames.fRefMap.end() != iter) {
+ SkASSERT(nullptr == iter->second);
+ return;
+ }
+ fGlobalNames.fRefMap[name] = nullptr;
+}
+
+void BmhParser::setUpSubstitute(string name, Definition* def) {
+ SkASSERT(fGlobalNames.fRefMap.end() == fGlobalNames.fRefMap.find(name));
+ fGlobalNames.fRefMap[name] = def;
+ SkASSERT(fGlobalNames.fLinkMap.end() == fGlobalNames.fLinkMap.find(name));
+ string str = ParserCommon::HtmlFileName(def->fFileName) + '#' + def->fName;
+ fGlobalNames.fLinkMap[name] = str;
+ size_t stop = name.length();
+ do {
+ size_t space = name.rfind(' ', stop);
+ if (string::npos == space) {
+ break;
+ }
+ string partial = name.substr(0, space + 1);
+ stop = space - 1;
+ this->setUpPartialSubstitute(partial);
+ } while (true);
+}
+
void BmhParser::setWrapper(Definition* def) const {
const char drawWrapper[] = "void draw(SkCanvas* canvas) {";
const char drawNoCanvas[] = "void draw(SkCanvas* ) {";
@@ -1489,9 +1732,8 @@
return MarkType::kNone;
}
- // write #In to show containing #Topic
- // write #Line with one liner from Member_Functions, Constructors, Operators if method,
- // from Constants if enum, otherwise from #Subtopic containing match
+ // replace #Method description, #Param, #Return with #Populate
+ // if description, params, return are free of phrase refs
bool HackParser::hackFiles() {
string filename(fFileName);
size_t len = filename.length() - 1;
@@ -1511,7 +1753,10 @@
return false;
}
auto mapEntry = fBmhParser.fClassMap.find(className);
- SkASSERT(fBmhParser.fClassMap.end() != mapEntry);
+ if (fBmhParser.fClassMap.end() == mapEntry) {
+ remove(filename.c_str());
+ return true;
+ }
const Definition* classMarkup = &mapEntry->second;
const Definition* root = classMarkup->fParent;
SkASSERT(root);
@@ -1520,16 +1765,12 @@
SkASSERT(!root->fParent);
fStart = root->fStart;
fChar = fStart;
- fClasses = nullptr;
- fConstants = nullptr;
- fConstructors = nullptr;
- fMemberFunctions = nullptr;
- fMembers = nullptr;
- fOperators = nullptr;
- fRelatedFunctions = nullptr;
- fStructs = nullptr;
- this->topicIter(root);
- fprintf(fOut, "%.*s", (int) (fEnd - fChar), fChar);
+ fEnd = root->fTerminator;
+ this->replaceWithPop(root);
+ FPRINTF("%.*s", (int) (fEnd - fChar), fChar);
+ if ('\n' != fEnd[-1]) {
+ FPRINTF("\n");
+ }
fclose(fOut);
if (ParserCommon::WrittenFileDiffers(filename, root->fFileName)) {
SkDebugf("wrote %s\n", filename.c_str());
@@ -1539,186 +1780,59 @@
return true;
}
-string HackParser::searchTable(const Definition* tableHolder, const Definition* match) {
- if (!tableHolder) {
- return "";
- }
- string bestMatch;
- string result;
- for (auto table : tableHolder->fChildren) {
- if (MarkType::kTable == table->fMarkType) {
- for (auto row : table->fChildren) {
- if (MarkType::kRow == row->fMarkType) {
- const Definition* col0 = row->fChildren[0];
- size_t len = col0->fContentEnd - col0->fContentStart;
- string method = string(col0->fContentStart, len);
- if (len - 2 == method.find("()") && islower(method[0])
- && Definition::MethodType::kOperator != match->fMethodType) {
- method = method.substr(0, len - 2);
- }
- if (string::npos == match->fName.find(method)) {
- continue;
- }
- if (bestMatch.length() < method.length()) {
- bestMatch = method;
- const Definition * col1 = row->fChildren[1];
- if (col1->fContentEnd <= col1->fContentStart) {
- SkASSERT(string::npos != col1->fFileName.find("SkImageInfo"));
- result = "incomplete";
- } else {
- result = string(col1->fContentStart, col1->fContentEnd -
- col1->fContentStart);
- }
- }
- }
- }
- }
- }
- return result;
-}
-
// returns true if topic has method
-void HackParser::topicIter(const Definition* topic) {
- if (string::npos != topic->fName.find(SubtopicKeys::kClasses)) {
- SkASSERT(!fClasses);
- fClasses = topic;
- }
- if (string::npos != topic->fName.find(SubtopicKeys::kStructs)) {
- SkASSERT(!fStructs);
- fStructs = topic;
- }
- if (string::npos != topic->fName.find(SubtopicKeys::kConstants)) {
- SkASSERT(!fConstants);
- fConstants = topic;
- }
- if (string::npos != topic->fName.find(SubtopicKeys::kConstructors)) {
- SkASSERT(!fConstructors);
- fConstructors = topic;
- }
- if (string::npos != topic->fName.find(SubtopicKeys::kMemberFunctions)) {
- SkASSERT(!fMemberFunctions);
- fMemberFunctions = topic;
- }
- if (string::npos != topic->fName.find(SubtopicKeys::kMembers)) {
- SkASSERT(!fMembers);
- fMembers = topic;
- }
- if (string::npos != topic->fName.find(SubtopicKeys::kOperators)) {
- SkASSERT(!fOperators);
- fOperators = topic;
- }
- if (string::npos != topic->fName.find(SubtopicKeys::kRelatedFunctions)) {
- SkASSERT(!fRelatedFunctions);
- fRelatedFunctions = topic;
- }
- for (auto child : topic->fChildren) {
- string oneLiner;
- bool hasIn = false;
- bool hasLine = false;
- for (auto part : child->fChildren) {
- hasIn |= MarkType::kIn == part->fMarkType;
- hasLine |= MarkType::kLine == part->fMarkType;
+void HackParser::replaceWithPop(const Definition* root) {
+ for (auto child : root->fChildren) {
+ if (MarkType::kClass == child->fMarkType || MarkType::kStruct == child->fMarkType
+ || MarkType::kSubtopic == child->fMarkType) {
+ this->replaceWithPop(child);
}
- switch (child->fMarkType) {
- case MarkType::kMethod: {
- hasIn |= MarkType::kTopic != topic->fMarkType &&
- MarkType::kSubtopic != topic->fMarkType; // don't write #In if parent is class
- hasLine |= child->fClone;
- if (!hasLine) {
- // find member_functions, add entry 2nd column text to #Line
- for (auto tableHolder : { fMemberFunctions, fConstructors, fOperators }) {
- if (!tableHolder) {
- continue;
- }
- if (Definition::MethodType::kConstructor == child->fMethodType
- && fConstructors != tableHolder) {
- continue;
- }
- if (Definition::MethodType::kOperator == child->fMethodType
- && fOperators != tableHolder) {
- continue;
- }
- string temp = this->searchTable(tableHolder, child);
- if ("" != temp) {
- SkASSERT("" == oneLiner || temp == oneLiner);
- oneLiner = temp;
- }
- }
- if ("" == oneLiner) {
- #ifdef SK_DEBUG
- const Definition* rootParent = topic;
- while (rootParent->fParent && MarkType::kClass != rootParent->fMarkType
- && MarkType::kStruct != rootParent->fMarkType) {
- rootParent = rootParent->fParent;
- }
- #endif
- SkASSERT(rootParent);
- SkASSERT(MarkType::kClass == rootParent->fMarkType
- || MarkType::kStruct == rootParent->fMarkType);
- hasLine = true;
- }
- }
-
- if (hasIn && hasLine) {
- continue;
- }
- const char* start = fChar;
- const char* end = child->fContentStart;
- fprintf(fOut, "%.*s", (int) (end - start), start);
- fChar = end;
- // write to method markup header end
- if (!hasIn) {
- fprintf(fOut, "\n#In %s", topic->fName.c_str());
- }
- if (!hasLine) {
- fprintf(fOut, "\n#Line # %s ##", oneLiner.c_str());
- }
- } break;
- case MarkType::kTopic:
- case MarkType::kSubtopic:
- this->addOneLiner(fRelatedFunctions, child, hasLine, true);
- this->topicIter(child);
- break;
- case MarkType::kStruct:
- this->addOneLiner(fStructs, child, hasLine, false);
- this->topicIter(child);
- break;
- case MarkType::kClass:
- this->addOneLiner(fClasses, child, hasLine, false);
- this->topicIter(child);
- break;
- case MarkType::kEnum:
- case MarkType::kEnumClass:
- this->addOneLiner(fConstants, child, hasLine, true);
- break;
- case MarkType::kMember:
- this->addOneLiner(fMembers, child, hasLine, false);
- break;
- default:
- ;
+ if (MarkType::kMethod != child->fMarkType) {
+ continue;
}
- }
-}
-
-void HackParser::addOneLiner(const Definition* defTable, const Definition* child, bool hasLine,
- bool lfAfter) {
- if (hasLine) {
- return;
- }
- string oneLiner = this->searchTable(defTable, child);
- if ("" == oneLiner) {
- return;
- }
- const char* start = fChar;
- const char* end = child->fContentStart;
- fprintf(fOut, "%.*s", (int) (end - start), start);
- fChar = end;
- if (!lfAfter) {
- fprintf(fOut, "\n");
- }
- fprintf(fOut, "#Line # %s ##", oneLiner.c_str());
- if (lfAfter) {
- fprintf(fOut, "\n");
+ auto& grans = child->fChildren;
+ if (grans.end() != std::find_if(grans.begin(), grans.end(),
+ [](const Definition* def) {
+ return MarkType::kPopulate == def->fMarkType
+ || MarkType::kPhraseRef == def->fMarkType
+ || MarkType::kFormula == def->fMarkType
+ || MarkType::kAnchor == def->fMarkType
+ || MarkType::kList == def->fMarkType
+ || MarkType::kTable == def->fMarkType
+ || MarkType::kDeprecated == def->fMarkType
+ || MarkType::kExperimental == def->fMarkType
+ || MarkType::kPrivate == def->fMarkType;
+ } )) {
+ continue;
+ }
+ // write #Populate in place of description, #Param(s), #Return (if present)
+ const char* keep = child->fContentStart;
+ const char* next = nullptr;
+ for (auto gran : grans) {
+ if (MarkType::kIn == gran->fMarkType || MarkType::kLine == gran->fMarkType) {
+ keep = gran->fTerminator;
+ continue;
+ }
+ if (MarkType::kExample == gran->fMarkType
+ || MarkType::kNoExample == gran->fMarkType) {
+ next = gran->fStart;
+ break;
+ }
+ if (MarkType::kParam == gran->fMarkType
+ || MarkType::kReturn == gran->fMarkType
+ || MarkType::kToDo == gran->fMarkType
+ || MarkType::kComment == gran->fMarkType) {
+ continue;
+ }
+ SkDebugf(""); // convenient place to set a breakpoint
+ }
+ SkASSERT(next);
+ FPRINTF("%.*s", (int) (keep - fChar), fChar);
+ if ('\n' != keep[-1]) {
+ FPRINTF("\n");
+ }
+ FPRINTF("#Populate\n\n");
+ fChar = next;
}
}
@@ -2674,13 +2788,20 @@
}
}
if (FLAGS_hack) {
- if (FLAGS_bmh.isEmpty()) {
- SkDebugf("-k or --hack requires -b\n");
+ if (FLAGS_bmh.isEmpty() && FLAGS_status.isEmpty()) {
+ SkDebugf("-H or --hack requires -a or -b\n");
SkCommandLineFlags::PrintUsage();
return 1;
}
HackParser hacker(bmhParser);
- if (!hacker.parseFile(FLAGS_bmh[0], ".bmh", ParserCommon::OneFile::kNo)) {
+ hacker.fDebugOut = FLAGS_stdout;
+ if (!FLAGS_status.isEmpty() && !hacker.parseStatus(FLAGS_status[0], ".bmh",
+ StatusFilter::kInProgress)) {
+ SkDebugf("hack failed\n");
+ return -1;
+ }
+ if (!FLAGS_bmh.isEmpty() && !hacker.parseFile(FLAGS_bmh[0], ".bmh",
+ ParserCommon::OneFile::kNo)) {
SkDebugf("hack failed\n");
return -1;
}
@@ -2827,3 +2948,18 @@
}
return 0;
}
+
+void NameMap::copyToParent(NameMap* parent) const {
+ size_t colons = fName.rfind("::");
+ string topName = string::npos == colons ? fName : fName.substr(colons + 2);
+ for (auto& entry : fRefMap) {
+ string scoped = topName + "::" + entry.first;
+ SkASSERT(parent->fRefMap.end() == parent->fRefMap.find(scoped));
+ parent->fRefMap[scoped] = entry.second;
+ auto scopedLinkIter = fLinkMap.find(entry.first);
+ if (fLinkMap.end() != scopedLinkIter) {
+ SkASSERT(parent->fLinkMap.end() == parent->fLinkMap.find(scoped));
+ parent->fLinkMap[scoped] = scopedLinkIter->second;
+ }
+ }
+}
diff --git a/tools/bookmaker/bookmaker.h b/tools/bookmaker/bookmaker.h
index 950bad7..5a72315 100644
--- a/tools/bookmaker/bookmaker.h
+++ b/tools/bookmaker/bookmaker.h
@@ -21,6 +21,13 @@
#include <unordered_map>
#include <vector>
+#define FPRINTF(...) \
+ if (fDebugOut) { \
+ SkDebugf(__VA_ARGS__); \
+ } \
+ fprintf(fOut, __VA_ARGS__)
+
+
// std::to_string isn't implemented on android
#include <sstream>
@@ -290,6 +297,19 @@
return nullptr;
}
+ bool back(const char* pattern) {
+ size_t len = strlen(pattern);
+ const char* start = fChar - len;
+ if (start <= fStart) {
+ return false;
+ }
+ if (strncmp(start, pattern, len)) {
+ return false;
+ }
+ fChar = start;
+ return true;
+ }
+
char backup(const char* pattern) const {
size_t len = strlen(pattern);
const char* start = fChar - len;
@@ -302,6 +322,12 @@
return start[-1];
}
+ void backupWord() {
+ while (fChar > fStart && isalpha(fChar[-1])) {
+ --fChar;
+ }
+ }
+
bool contains(const char* match, const char* lineEnd, const char** loc) const {
const char* result = this->strnstr(match, lineEnd);
if (loc) {
@@ -310,6 +336,25 @@
return result;
}
+ bool containsWord(const char* match, const char* lineEnd, const char** loc) {
+ size_t len = strlen(match);
+ do {
+ const char* result = this->strnstr(match, lineEnd);
+ if (!result) {
+ return false;
+ }
+ if ((result > fStart && isalnum(result[-1])) || (result + len < fEnd
+ && isalnum(result[len]))) {
+ fChar = result + len;
+ continue;
+ }
+ if (loc) {
+ *loc = result;
+ }
+ return true;
+ } while (true);
+ }
+
// either /n/n or /n# will stop parsing a typedef
const char* doubleLF() const {
const char* ptr = fChar - 1;
@@ -484,14 +529,22 @@
// differs from skipToNonAlphaNum in that a.b isn't considered a full name,
// since a.b can't be found as a named definition
void skipFullName() {
- while (fChar < fEnd && (isalnum(fChar[0])
- || '_' == fChar[0] /* || '-' == fChar[0] */
- || (':' == fChar[0] && fChar +1 < fEnd && ':' == fChar[1]))) {
- if (':' == fChar[0] && fChar +1 < fEnd && ':' == fChar[1]) {
+ do {
+ char last = '\0';
+ while (fChar < fEnd && (isalnum(fChar[0])
+ || '_' == fChar[0] /* || '-' == fChar[0] */
+ || (':' == fChar[0] && fChar + 1 < fEnd && ':' == fChar[1]))) {
+ if (':' == fChar[0] && fChar + 1 < fEnd && ':' == fChar[1]) {
+ fChar++;
+ }
+ last = fChar[0];
fChar++;
}
- fChar++;
- }
+ if (fChar + 1 >= fEnd || '/' != fChar[0] || !isalpha(last) || !isalpha(fChar[1])) {
+ break; // stop unless pattern is xxx/xxx as in I/O
+ }
+ fChar++; // skip slash
+ } while (true);
}
int skipToLineBalance(char open, char close) {
@@ -1091,6 +1144,16 @@
static const char* kGeneratedSubtopics[];
};
+struct NameMap {
+ void copyToParent(NameMap* parent) const;
+
+ string fName;
+ NameMap* fParent = nullptr;
+ unordered_map<string, string> fLinkMap; // from SkRect to #Rect
+ // ref map includes "xxx", "xxx ", "xxx yyy", "xxx zzz", etc.
+ unordered_map<string, Definition*> fRefMap; // e.g., from #Substitute entry to #Topic entry
+};
+
class RootDefinition : public Definition {
public:
enum class AllowParens {
@@ -1112,10 +1175,16 @@
RootDefinition(MarkType markType, const char* start, int line, Definition* parent, char mc)
: Definition(markType, start, line, parent, mc) {
+ if (MarkType::kSubtopic != markType && MarkType::kTopic != markType) {
+ if (parent) {
+ fNames.fName = parent->fName;
+ fNames.fParent = &parent->asRoot()->fNames;
+ }
+ }
}
RootDefinition(MarkType markType, const char* start, const char* end, int line,
- Definition* parent, char mc) : Definition(markType, start, end, line, parent, mc) {
+ Definition* parent, char mc) : Definition(markType, start, end, line, parent, mc) {
}
~RootDefinition() override {
@@ -1141,6 +1210,7 @@
unordered_map<string, RootDefinition*> fBranches;
unordered_map<string, Definition> fLeaves;
unordered_map<string, SubtopicContents> fPopulators;
+ NameMap fNames;
private:
RootDefinition* fRootParent = nullptr;
};
@@ -1219,9 +1289,10 @@
}
void checkLineLength(size_t len, const char* str);
+ static string ConvertRef(const string str, bool first);
static void CopyToFile(string oldFile, string newFile);
-
static char* FindDateTime(char* buffer, int size);
+ static string HtmlFileName(string bmhFileName);
void indentIn(IndentKind kind) {
fIndent += 4;
@@ -1239,10 +1310,7 @@
SkASSERT(column >= fColumn);
SkASSERT(!fReturnOnWrite);
SkASSERT(column < 80);
- if (fDebugOut) {
- SkDebugf("%*s", column - fColumn, "");
- }
- fprintf(fOut, "%*s", column - fColumn, "");
+ FPRINTF("%*s", column - fColumn, "");
fColumn = column;
fSpaces += column - fColumn;
}
@@ -1384,6 +1452,7 @@
vector<IndentState> fIndentStack;
Definition* fParent;
FILE* fOut;
+ string fRawFilePathDir;
int fLinefeeds; // number of linefeeds last written, zeroed on non-space
int fMaxLF; // number of linefeeds allowed
int fPendingLF; // number of linefeeds to write (can be suppressed)
@@ -1455,6 +1524,7 @@
kLiteral, // output untouched
kClone, // resolved, output, with references to clones as well
kSimple, // resolve simple words (used to resolve method declarations)
+ kInclude, // like simple, plus reverse resolve SkXXX to XXX
};
enum class ExampleOptions {
@@ -1482,7 +1552,7 @@
enum class TrimExtract {
kNo,
- kYes
+ kYes,
};
BmhParser(bool skip) : ParserCommon()
@@ -1524,6 +1594,7 @@
MarkType getMarkType(MarkLookup lookup) const;
bool hasEndToken() const;
static bool IsExemplary(const Definition* );
+ string loweredTopic(string name, Definition* def);
string memberName();
string methodName();
const Definition* parentSpace() const;
@@ -1558,6 +1629,10 @@
fCheckMethods = false;
}
+ void setUpGlobalSubstitutes();
+ void setUpPartialSubstitute(string name);
+ void setUpSubstitute(string name, Definition* def);
+ void setUpSubstitutes(const Definition* parent, NameMap* );
void setWrapper(Definition* def) const;
bool skipNoName();
bool skipToDefinitionEnd(MarkType markType);
@@ -1602,6 +1677,7 @@
unordered_map<string, Definition*> fTopicMap;
unordered_map<string, Definition*> fAliasMap;
unordered_map<string, Definition*> fPhraseMap;
+ NameMap fGlobalNames;
RootDefinition* fRoot;
Definition* fWorkingColumn;
Definition* fRow;
@@ -2363,9 +2439,6 @@
this->reset();
}
- void addOneLiner(const Definition* defTable, const Definition* child, bool hasLine,
- bool lfAfter);
-
bool parseFromFile(const char* path) override {
if (!INHERITED::parseSetup(path)) {
return false;
@@ -2377,20 +2450,10 @@
INHERITED::resetCommon();
}
- string searchTable(const Definition* tableHolder, const Definition* match);
-
- void topicIter(const Definition* );
+ void replaceWithPop(const Definition* );
private:
const BmhParser& fBmhParser;
- const Definition* fClasses;
- const Definition* fConstants;
- const Definition* fConstructors;
- const Definition* fMemberFunctions;
- const Definition* fMembers;
- const Definition* fOperators;
- const Definition* fRelatedFunctions;
- const Definition* fStructs;
bool hackFiles();
typedef ParserCommon INHERITED;
@@ -2410,6 +2473,7 @@
, fIncludeParser(inc) {
this->reset();
this->addPopulators();
+ fBmhParser.setUpGlobalSubstitutes();
}
bool buildReferences(const char* docDir, const char* mdOutDirOrFile);
@@ -2430,19 +2494,21 @@
void addCodeBlock(const Definition* def, string& str) const;
void addPopulators();
+ string addIncludeReferences(const char* refStart, const char* refEnd);
string addReferences(const char* start, const char* end, BmhParser::Resolvable );
string anchorDef(string def, string name);
string anchorLocalRef(string ref, string name);
string anchorRef(string def, string name);
-
bool buildRefFromFile(const char* fileName, const char* outDir);
bool checkParamReturnBody(const Definition* def);
Definition* checkParentsForMatch(Definition* test, string ref) const;
void childrenOut(Definition* def, const char* contentStart);
Definition* csParent();
+ bool findLink(string ref, string* link);
Definition* findParamType();
string getMemberTypeName(const Definition* def, string* memberType);
static bool HasDetails(const Definition* def);
+ bool hasWordSpace(string ) const;
void htmlOut(string );
Definition* isDefined(const TextParser& , string ref, BmhParser::Resolvable );
Definition* isDefinedByParent(RootDefinition* root, string ref);
@@ -2454,6 +2520,7 @@
void parameterHeaderOut(TextParser& paramParser, const Definition** prior, Definition* def);
void parameterTrailerOut();
bool parseFromFile(const char* path) override { return true; }
+ bool phraseContinues(string phrase, string* priorWord, string* priorLink) const;
void populateOne(Definition* def,
unordered_map<string, RootDefinition::SubtopicContents>& populator);
void populateTables(const Definition* def, RootDefinition* );
@@ -2522,7 +2589,7 @@
vector<const Definition*> fClassStack;
unordered_map<string, vector<AnchorDef> > fAllAnchorDefs;
unordered_map<string, vector<string> > fAllAnchorRefs;
-
+ NameMap* fNames;
BmhParser& fBmhParser;
IncludeParser& fIncludeParser;
const Definition* fEnumClass;
@@ -2604,6 +2671,7 @@
}
}
if (BmhParser::Resolvable::kSimple != resolvable
+ && BmhParser::Resolvable::kInclude != resolvable
&& (this->startsWith(name.c_str()) || this->startsWith("operator"))) {
const char* ptr = this->anyOf("\n (");
if (ptr && '(' == *ptr && strncmp(ptr, "(...", 4)) {
diff --git a/tools/bookmaker/definition.cpp b/tools/bookmaker/definition.cpp
index 52620f8..fb96ed1 100644
--- a/tools/bookmaker/definition.cpp
+++ b/tools/bookmaker/definition.cpp
@@ -912,7 +912,7 @@
if (!parser.skipExact("@param ")) {
continue;
}
- if (parser.skipExact(ref.c_str())) {
+ if (parser.skipExact(ref.c_str()) && ' ' == parser.peek()) {
return &iter;
}
}
diff --git a/tools/bookmaker/includeParser.cpp b/tools/bookmaker/includeParser.cpp
index 0b4576c..2fdd7ae 100644
--- a/tools/bookmaker/includeParser.cpp
+++ b/tools/bookmaker/includeParser.cpp
@@ -1852,8 +1852,12 @@
}
Definition* IncludeParser::findMethod(const Definition& bmhDef) {
- auto doubleColon = bmhDef.fName.find("::");
- SkASSERT(string::npos != doubleColon); // more work to do to support global refs
+ auto doubleColon = bmhDef.fName.rfind("::");
+ if (string::npos == doubleColon) {
+ const auto& iGlobalMethod = fIFunctionMap.find(bmhDef.fName);
+ SkASSERT(fIFunctionMap.end() != iGlobalMethod);
+ return iGlobalMethod->second;
+ }
string className = bmhDef.fName.substr(0, doubleColon);
const auto& iClass = fIClassMap.find(className);
SkASSERT(fIClassMap.end() != iClass);
@@ -1861,9 +1865,66 @@
auto& iTokens = iClass->second.fTokens;
const auto& iMethod = std::find_if(iTokens.begin(), iTokens.end(),
[methodName](Definition& token) {
- return MarkType::kMethod == token.fMarkType && methodName == token.fName; } );
- SkASSERT(iTokens.end() != iMethod);
- return &*iMethod;
+ return MarkType::kMethod == token.fMarkType
+ && (methodName == token.fName
+ || methodName == token.fName + "()"); } );
+ if (iTokens.end() != iMethod) {
+ return &*iMethod;
+ }
+ size_t subClassPos = className.rfind("::");
+ if (string::npos != subClassPos) {
+ className = className.substr(subClassPos + 2);
+ }
+ // match may be constructor; compare strings to see if this is so
+ SkASSERT(string::npos != methodName.find('('));
+ auto stripper = [](string s) -> string {
+ bool last = false;
+ string result;
+ for (char c : s) {
+ if (' ' >= c) {
+ if (!last) {
+ last = true;
+ result += ' ';
+ }
+ continue;
+ }
+ result += c;
+ last = false;
+ }
+ return result;
+ };
+ string strippedMethodName = stripper(methodName);
+ if (strippedMethodName == methodName) {
+ strippedMethodName = "";
+ }
+ const auto& cMethod = std::find_if(iTokens.begin(), iTokens.end(),
+ [className, methodName, stripper, strippedMethodName](Definition& token) {
+ if (MarkType::kMethod != token.fMarkType) {
+ return false;
+ }
+ TextParser parser(&token);
+ const char* match = parser.strnstr(className.c_str(), parser.fEnd);
+ if (!match) {
+ return false;
+ }
+ parser.skipTo(match);
+ parser.skipExact(className.c_str());
+ if ('(' != parser.peek()) {
+ return false;
+ }
+ parser.skipToBalancedEndBracket('(', ')');
+ string iMethodName(match, parser.fChar - match);
+ if (methodName == iMethodName) {
+ return true;
+ }
+ if ("" == strippedMethodName) {
+ return false;
+ }
+ string strippedIName = stripper(iMethodName);
+ return strippedIName == strippedMethodName;
+ } );
+ SkAssertResult(iTokens.end() != cMethod);
+ return &*cMethod;
}
Definition* IncludeParser::parentBracket(Definition* parent) const {
@@ -2570,7 +2631,6 @@
markupDef->fTokens.emplace_back(MarkType::kMethod, start, end, tokenIter->fLineCount,
markupDef, '\0');
Definition* markupChild = &markupDef->fTokens.back();
- // TODO: I wonder if there is a way to prevent looking up by operator[] (creating empty) ?
{
auto mapIter = fIClassMap.find(markupDef->fName);
SkASSERT(fIClassMap.end() != mapIter);
diff --git a/tools/bookmaker/includeWriter.cpp b/tools/bookmaker/includeWriter.cpp
index 768ccf6..ef854a7 100644
--- a/tools/bookmaker/includeWriter.cpp
+++ b/tools/bookmaker/includeWriter.cpp
@@ -895,7 +895,7 @@
int commentIndex = child.fParentIndex;
auto iter = child.fParent->fTokens.begin();
std::advance(iter, commentIndex);
- SkDEBUGCODE(bool sawMethod = false);
+ SkDEBUGCODE(bool sawMethod = MarkType::kMethod == iter->fMarkType);
while (--commentIndex >= 0) {
std::advance(iter, -1);
if (Bracket::kSlashStar == iter->fBracket) {
@@ -2157,21 +2157,6 @@
return allPassed;
}
-// change Xxx_Xxx to xxx xxx
-static string ConvertRef(const string str, bool first) {
- string substitute;
- for (char c : str) {
- if ('_' == c) {
- c = ' '; // change Xxx_Xxx to xxx xxx
- } else if (isupper(c) && !first) {
- c = tolower(c);
- }
- substitute += c;
- first = false;
- }
- return substitute;
-}
-
string IncludeWriter::resolveMethod(const char* start, const char* end, bool first) {
string methodname(start, end - start);
if (string::npos != methodname.find("()")) {
@@ -2322,6 +2307,7 @@
// prefer the one mostly closely matching in text
if ((MarkType::kClass == child->fMarkType ||
MarkType::kStruct == child->fMarkType ||
+ MarkType::kTypedef == child->fMarkType ||
(MarkType::kEnum == child->fMarkType && !child->fAnonymous) ||
MarkType::kEnumClass == child->fMarkType) && (match == child->fName ||
skmatch == child->fName)) {
@@ -2372,7 +2358,7 @@
if (parent->fParent != fRootTopic) {
substitute = parent->fName;
substitute += ' ';
- substitute += ConvertRef(rootDef->fName, false);
+ substitute += ParserCommon::ConvertRef(rootDef->fName, false);
} else {
size_t underpos = undername.find('_');
if (string::npos != underpos) {
@@ -2390,7 +2376,7 @@
return this->reportError<string>("remove underline");
}
}
- substitute += ConvertRef(undername, first);
+ substitute += ParserCommon::ConvertRef(undername, first);
}
}
}
@@ -2454,7 +2440,7 @@
string temp = this->resolveRef(&data[start], &data[end], Word::kFirst == word, &refType);
if (!temp.length()) {
if (Word::kFirst != word && '_' != last) {
- temp = ConvertRef(resolved, false);
+ temp = ParserCommon::ConvertRef(resolved, false);
}
}
if (temp.length()) {
diff --git a/tools/bookmaker/mdOut.cpp b/tools/bookmaker/mdOut.cpp
index 7cca263..ced107d 100644
--- a/tools/bookmaker/mdOut.cpp
+++ b/tools/bookmaker/mdOut.cpp
@@ -10,12 +10,6 @@
#include "SkOSFile.h"
#include "SkOSPath.h"
-#define FPRINTF(...) \
- if (fDebugOut) { \
- SkDebugf(__VA_ARGS__); \
- } \
- fprintf(fOut, __VA_ARGS__)
-
const char* SubtopicKeys::kGeneratedSubtopics[] = {
kConstants, kDefines, kTypedefs, kMembers, kClasses, kStructs, kConstructors,
kOperators, kMemberFunctions, kRelatedFunctions
@@ -55,17 +49,9 @@
const char* kTopicsTableHeader = " <tr>" kTH_Left "Topic</th>" "\n"
kTH_Left "Description</th>" "</tr>";
-static string html_file_name(string bmhFileName) {
- SkASSERT("docs" == bmhFileName.substr(0, 4));
- SkASSERT('\\' == bmhFileName[4] || '/' == bmhFileName[4]);
- SkASSERT(".bmh" == bmhFileName.substr(bmhFileName.length() - 4));
- string result = bmhFileName.substr(5, bmhFileName.length() - 4 - 5);
- return result;
-}
-
string MdOut::anchorDef(string str, string name) {
if (fValidate) {
- string htmlName = html_file_name(fFileName);
+ string htmlName = ParserCommon::HtmlFileName(fFileName);
vector<AnchorDef>& allDefs = fAllAnchorDefs[htmlName];
if (!std::any_of(allDefs.begin(), allDefs.end(),
[str](AnchorDef compare) { return compare.fDef == str; } )) {
@@ -91,7 +77,7 @@
size_t hashIndex = ref.find('#');
if (string::npos != hashIndex && "https://" != ref.substr(0, 8)) {
if (0 == hashIndex) {
- htmlName = html_file_name(fFileName);
+ htmlName = ParserCommon::HtmlFileName(fFileName);
} else {
htmlName = ref.substr(0, hashIndex);
}
@@ -303,9 +289,228 @@
int fBraceCount;
};
+bool MdOut::hasWordSpace(string wordSpace) const {
+ for (NameMap* names = fNames; names; names = names->fParent) {
+ if (names->fRefMap.end() != names->fRefMap.find(wordSpace)) {
+ return true;
+ }
+ }
+ return false;
+}
+
+bool MdOut::phraseContinues(string phrase, string* priorWord, string* priorLink) const {
+ for (NameMap* names = fNames; names; names = names->fParent) {
+ if (names->fRefMap.end() != names->fRefMap.find(phrase + ' ')) {
+ *priorWord = phrase;
+ return true;
+ }
+ if (names->fRefMap.end() != names->fRefMap.find(phrase)) {
+ *priorWord = phrase;
+ *priorLink = names->fLinkMap.end() == names->fLinkMap.find(phrase) ? "" :
+ names->fLinkMap[phrase];
+ return true;
+ }
+ }
+ return false;
+}
+
+// adds spaces to see if found word is part of registered phrase
+// adds parens to see if found word is all-lowercase function (parens must be in source as well)
+string MdOut::addIncludeReferences(const char* refStart, const char* refEnd) {
+ TextParser matrixParser(fMethod->fFileName, refStart, refEnd, fMethod->fLineCount);
+ const char* bracket = matrixParser.anyOf("|=\n");
+ bool inMatrix = bracket && ('|' == bracket[0] || '=' == bracket[0]);
+ auto& globals = fBmhParser.fGlobalNames;
+ string result;
+ const char* start = refStart;
+ string priorWord;
+ string priorLink;
+ string priorSeparator;
+ do {
+ const char* separatorStart = start;
+ bool whiteSpace = start < refEnd && ' ' >= start[0];
+ while (start < refEnd && !isalpha(start[0])) {
+ whiteSpace &= ' ' >= start[0];
+ ++start;
+ }
+ bool priorSpace = false;
+ string separator(separatorStart, start - separatorStart);
+ if ("" != priorWord && whiteSpace) {
+ string wordSpace = priorWord + ' ';
+ if (this->hasWordSpace(wordSpace)) {
+ priorWord = wordSpace;
+ priorSpace = true;
+ }
+ }
+ if ("()" == separator.substr(0, 2)) {
+ string funcRef = priorWord + "()";
+ if (this->findLink(funcRef, &priorLink)) {
+ priorWord = funcRef;
+ separator = separator.substr(2);
+ }
+ }
+ result += priorSeparator;
+ priorSeparator = separator;
+ const char* end = start;
+ do {
+ while (end < refEnd && (isalnum(end[0]) || '-' == end[0] || '_' == end[0])) {
+ ++end;
+ }
+ if (end + 1 >= refEnd || '/' != end[0] || start == end || !isalpha(end[-1])
+ || !isalpha(end[1])) {
+ break; // stop unless pattern is xxx/xxx as in I/O
+ }
+ ++end; // skip slash
+ } while (true);
+ while (start != end && '-' == end[-1]) {
+ --end;
+ }
+ if (start != end && end + 2 < refEnd && "()" == string(end, 2)) {
+ string check = string(start, end - start);
+ if (std::all_of(check.begin(), check.end(), [](char c) { return islower(c); })) {
+ end += 2;
+ }
+ }
+ if (start == end) {
+ break;
+ }
+ string word(start, end - start);
+ if (priorSpace) {
+ string phrase = priorWord + word;
+ if (this->phraseContinues(phrase, &priorWord, &priorLink)) {
+ start = end;
+ continue;
+ }
+ priorWord = priorWord.substr(0, priorWord.length() - 1);
+ }
+ string link;
+ bool found;
+ // TODO: operators have complicated parsing possibilities; handle the easiest for now
+ if ("operator" == priorWord && '(' == separator.back()) {
+ TextParser parser(fMethod->fFileName, separatorStart, refEnd, fMethod->fLineCount);
+ parser.skipToEndBracket('(');
+ const char* parenStart = parser.fChar;
+ parser.skipToBalancedEndBracket('(', ')');
+ word = priorWord + separator + string(parenStart + 1, parser.fChar - parenStart - 1);
+ end = parser.fChar;
+ priorWord = "";
+ priorLink = "";
+ priorSeparator = "";
+ }
+ {
+ auto paramIter = fNames->fRefMap.find(word);
+ if ((found = fNames->fRefMap.end() != paramIter) && paramIter->second) {
+ SkAssertResult(fNames->fLinkMap.end() != fNames->fLinkMap.find(word));
+ link = fNames->fLinkMap[word];
+ }
+ }
+ if (!found && ("." == separator || "->" == separator || "()." == separator
+ || "()->" == separator)) {
+ if (('f' == word[0] && isupper(word[1])) || "()" == word.substr(word.length() - 2)
+ || (end + 2 <= refEnd && "()" == string(end, 2))) {
+ if (fNames->fRefMap.end() != fNames->fRefMap.find(priorWord)) {
+ // find prior word's type in fMethod
+ TextParser parser(fMethod);
+ SkAssertResult(parser.containsWord(priorWord.c_str(), parser.fEnd,
+ &parser.fChar));
+ // look up class or struct; trival lookup only class/struct [& * const]
+ while (parser.back(" ") || parser.back("&") || parser.back("*")
+ || parser.back("const"))
+ ;
+ const char* structEnd = parser.fChar;
+ parser.backupWord();
+ if (structEnd != parser.fChar) {
+ string structName(parser.fChar, structEnd - parser.fChar);
+ if ("SkVector" == structName) {
+ // TODO: populate global refmap with typedefs as well as structs
+ structName = "SkPoint";
+ }
+ structName += "::" + word;
+ // look for word as member of class or struct
+ auto defIter = globals.fRefMap.find(structName);
+ if (globals.fRefMap.end() == defIter) {
+ structName += "()";
+ defIter = globals.fRefMap.find(structName);
+ }
+ if (globals.fRefMap.end() != defIter) {
+ found = true;
+ SkASSERT(globals.fLinkMap.end() != globals.fLinkMap.find(structName));
+ link = globals.fLinkMap[structName];
+ } else {
+ SkDebugf("probably missing struct or class member in bmh: ");
+ SkDebugf("%s\n", structName.c_str());
+ }
+ }
+ }
+ if (!found) {
+ auto& parentRefMap = fNames->fParent->fRefMap;
+ auto priorIter = parentRefMap.find(priorWord);
+ if (parentRefMap.end() == priorIter) {
+ priorIter = parentRefMap.find(priorWord + "()");
+ }
+ if (parentRefMap.end() != priorIter) {
+ Definition* priorDef = priorIter->second;
+ TextParser parser(priorDef->fFileName, priorDef->fStart,
+ priorDef->fContentStart, priorDef->fLineCount);
+ parser.skipExact("#Method ");
+ parser.skipSpace();
+ parser.skipExact("const "); // optional
+ parser.skipSpace();
+ const char* start = parser.fChar;
+ parser.skipToNonAlphaNum();
+ string structName(start, parser.fChar - start);
+ structName += "::" + word;
+ auto defIter = globals.fRefMap.find(structName);
+ if (globals.fRefMap.end() != defIter) {
+ found = true;
+ SkASSERT(globals.fLinkMap.end() != globals.fLinkMap.find(structName));
+ link = globals.fLinkMap[structName];
+ }
+ }
+ }
+ } else {
+ SkDebugf("probably missing () after function:");
+ const char* debugStart = end - 20 < refStart ? refStart : end - 20;
+ const char* debugEnd = end + 10 > refEnd ? refEnd : end + 10;
+ SkDebugf("%.*s\n", debugEnd - debugStart, debugStart);
+ SkDebugf("");
+ }
+ }
+ if (!found && "::" == separator) {
+ string fullRef = priorWord + "::" + word;
+ found = this->findLink(fullRef, &link);
+ }
+ if (!found) {
+ found = this->findLink(word, &link);
+ }
+ if (!found) {
+ found = globals.fRefMap.end() != globals.fRefMap.find(word + ' ');
+ }
+ if (!found) {
+ found = globals.fRefMap.end() != globals.fRefMap.find(word + "()");
+ }
+ if (!found) {
+ if (!inMatrix) {
+ SkDebugf("word %s not found\n", word.c_str());
+ fBmhParser.fGlobalNames.fRefMap[word] = nullptr;
+ }
+ }
+ result += "" == priorLink ? priorWord : this->anchorRef(priorLink, priorWord);
+ priorWord = word;
+ priorLink = link;
+ start = end;
+ } while (true);
+ result += "" == priorLink ? priorWord : this->anchorRef(priorLink, priorWord);
+ result += priorSeparator;
+ return result;
+}
+
// FIXME: preserve inter-line spaces and don't add new ones
string MdOut::addReferences(const char* refStart, const char* refEnd,
BmhParser::Resolvable resolvable) {
+ if (BmhParser::Resolvable::kInclude == resolvable) { // test include resolving
+ return this->addIncludeReferences(refStart, refEnd);
+ }
string result;
MethodParser t(fRoot ? fRoot->fName : string(), fFileName, refStart, refEnd, fLineCount);
bool lineStart = true;
@@ -448,6 +653,7 @@
}
SkASSERT(def->fFiddle.length());
if (BmhParser::Resolvable::kSimple != resolvable
+ && BmhParser::Resolvable::kInclude != resolvable
&& !t.eof() && '(' == t.peek() && t.strnchr(')', t.fEnd)) {
TextParserSave tSave(&t);
if (!t.skipToBalancedEndBracket('(', ')')) {
@@ -511,6 +717,12 @@
}
result += linkRef(leadingSpaces, def, ref, resolvable);
if (!t.eof() && '(' == t.peek()) {
+ if (BmhParser::Resolvable::kInclude == resolvable
+ && std::any_of(ref.begin(), ref.end(), [](char c){ return !islower(c); } )) {
+ t.next(); // skip open paren
+ SkAssertResult(')' == t.next()); // skip close paren
+ continue;
+ }
result += t.next(); // skip open paren
}
continue;
@@ -577,6 +789,7 @@
}
}
if (BmhParser::Resolvable::kSimple != resolvable
+ && BmhParser::Resolvable::kInclude != resolvable
&& BmhParser::Resolvable::kOut != resolvable
&& !formula_or_code(resolvable)) {
t.reportError("missed camelCase");
@@ -970,6 +1183,33 @@
return csParent;
}
+bool MdOut::findLink(string word, string* linkPtr) {
+ NameMap* names = fNames;
+ while ((names = names->fParent)) {
+ auto localIter = names->fRefMap.find(word);
+ if (names->fRefMap.end() != localIter) {
+ if (localIter->second) {
+ SkAssertResult(names->fLinkMap.end() != names->fLinkMap.find(word));
+ *linkPtr = names->fLinkMap[word];
+ }
+ return true;
+ }
+ if (!names->fParent && isupper(word[0])) {
+ SkASSERT(names == &fBmhParser.fGlobalNames);
+ string lower = (char) tolower(word[0]) + word.substr(1);
+ auto globalIter = names->fRefMap.find(lower);
+ if (names->fRefMap.end() != globalIter) {
+ if (globalIter->second) {
+ SkAssertResult(names->fLinkMap.end() != names->fLinkMap.find(lower));
+ *linkPtr = names->fLinkMap[lower];
+ }
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
Definition* MdOut::findParamType() {
SkASSERT(fMethod);
TextParser parser(fMethod->fFileName, fMethod->fStart, fMethod->fContentStart,
@@ -1244,6 +1484,15 @@
// def should not include SkXXX_
string MdOut::linkRef(string leadingSpaces, Definition* def,
string ref, BmhParser::Resolvable resolvable) {
+ bool trimRef = BmhParser::Resolvable::kInclude == resolvable && "Sk" == ref.substr(0, 2);
+ if (trimRef) {
+#ifdef SK_DEBUG
+ for (auto c : ref) {
+ SkASSERT(isalpha(c) || isdigit(c));
+ }
+#endif
+ ref = ref.substr(2);
+ }
string buildup;
string refName;
const string* str = &def->fFiddle;
@@ -1253,7 +1502,17 @@
const Definition* parent = def->csParent();
SkASSERT(parent);
classPart = parent->fName;
- refName = classPart + '_' + def->fParent->fName + '_' + ref;
+ auto bmhMap = fBmhParser.fClassMap.find(classPart);
+ auto defName = def->fParent->fName;
+ SkASSERT(fBmhParser.fClassMap.end() != bmhMap);
+ string fullName = classPart + "::" + defName;
+ auto bmhDef = bmhMap->second.fLeaves.find(fullName);
+ if (bmhMap->second.fLeaves.end() == bmhDef) {
+ bmhDef = bmhMap->second.fLeaves.find(fullName + "()");
+ }
+ SkASSERT(bmhMap->second.fLeaves.end() != bmhDef);
+ refName = bmhDef->second.fFiddle;
+ refName += '_' + ref;
}
SkASSERT(classPart.length() > 0);
bool globalEnumMember = false;
@@ -1285,6 +1544,15 @@
}
if (!fromInclude) {
refName = def->fFiddle;
+ if (trimRef) {
+ SkASSERT("Sk" == refName.substr(0, 2));
+#ifdef SK_DEBUG
+ for (auto c : refName) {
+ SkASSERT(isalpha(c) || isdigit(c));
+ }
+#endif
+ refName = refName.substr(2);
+ }
}
}
bool classMatch = fRoot->fFileName == def->fFileName || fromInclude;
@@ -1893,9 +2161,41 @@
SkASSERT(MarkType::kMethod == parent->fMarkType);
// retrieve parameters, return, description from include
Definition* iMethod = fIncludeParser.findMethod(*parent);
- SkDebugf("");
bool wroteParam = false;
fMethod = iMethod;
+ NameMap paramMap;
+ Definition* pParent = def->csParent();
+ string parentName;
+ NameMap* parentMap;
+ if (pParent) {
+ parentName = pParent->fName + "::";
+ parentMap = &pParent->asRoot()->fNames;
+ } else {
+ parentMap = &fBmhParser.fGlobalNames;
+ }
+ paramMap.fName = parentName + iMethod->fName;
+ paramMap.fParent = parentMap;
+ fNames = ¶mMap;
+ for (auto& param : iMethod->fTokens) {
+ if (MarkType::kComment != param.fMarkType) {
+ continue;
+ }
+ TextParser paramParser(¶m);
+ if (!paramParser.skipExact("@param ")) { // write parameters, if any
+ continue;
+ }
+ paramParser.skipSpace();
+ const char* start = paramParser.fChar;
+ paramParser.skipToSpace();
+ string paramName(start, paramParser.fChar - start);
+ #ifdef SK_DEBUG
+ for (char c : paramName) {
+ SkASSERT(isalnum(c) || '_' == c);
+ }
+ #endif
+ paramMap.fRefMap[paramName] = ¶m;
+ paramMap.fLinkMap[paramName] = '#' + def->fFiddle + '_' + paramName;
+ }
for (auto& entry : iMethod->fTokens) {
if (MarkType::kComment != entry.fMarkType) {
continue;
@@ -1903,7 +2203,8 @@
TextParser parser(&entry);
if (parser.skipExact("@param ")) { // write parameters, if any
this->parameterHeaderOut(parser, prior, def);
- this->resolveOut(parser.fChar, parser.fEnd, BmhParser::Resolvable::kYes);
+ this->resolveOut(parser.fChar, parser.fEnd,
+ BmhParser::Resolvable::kInclude);
this->parameterTrailerOut();
wroteParam = true;
continue;
@@ -1917,18 +2218,29 @@
}
if (parser.skipExact("@return ")) { // write return, if any
this->returnHeaderOut(prior, def);
- this->resolveOut(parser.fChar, parser.fEnd, BmhParser::Resolvable::kYes);
+ this->resolveOut(parser.fChar, parser.fEnd,
+ BmhParser::Resolvable::kInclude);
this->lf(2);
continue;
}
if (1 == entry.length() && '/' == entry.fContentStart[0]) {
continue;
}
+ if ("/!< " == string(entry.fContentStart, entry.length()).substr(0, 4)) {
+ continue;
+ }
+ const char* backwards = entry.fContentStart;
+ while (' ' == *--backwards)
+ ;
+ if ('\n' == backwards[0] && '\n' == backwards[-1]) {
+ this->lf(2);
+ }
this->resolveOut(entry.fContentStart, entry.fContentEnd,
- BmhParser::Resolvable::kYes); // write description
+ BmhParser::Resolvable::kInclude); // write description
this->lf(1);
}
fMethod = nullptr;
+ fNames = fNames->fParent;
}
} break;
case MarkType::kPrivate:
diff --git a/tools/bookmaker/parserCommon.cpp b/tools/bookmaker/parserCommon.cpp
index 5500a1b..c3bab1a 100644
--- a/tools/bookmaker/parserCommon.cpp
+++ b/tools/bookmaker/parserCommon.cpp
@@ -9,11 +9,6 @@
#include "SkOSFile.h"
#include "SkOSPath.h"
-static void debug_out(int len, const char* data) {
- // convenient place to intercept arbitrary output
- SkDebugf("%.*s", len, data);
-}
-
void ParserCommon::checkLineLength(size_t len, const char* str) {
if (!fWritingIncludes) {
return;
@@ -36,6 +31,21 @@
}
}
+// change Xxx_Xxx to xxx xxx
+string ParserCommon::ConvertRef(const string str, bool first) {
+ string substitute;
+ for (char c : str) {
+ if ('_' == c) {
+ c = ' ';
+ } else if (isupper(c) && !first) {
+ c = tolower(c);
+ }
+ substitute += c;
+ first = false;
+ }
+ return substitute;
+}
+
void ParserCommon::CopyToFile(string oldFile, string newFile) {
int bufferSize;
char* buffer = ParserCommon::ReadToBuffer(newFile, &bufferSize);
@@ -49,7 +59,16 @@
remove(newFile.c_str());
}
+string ParserCommon::HtmlFileName(string bmhFileName) {
+ SkASSERT("docs" == bmhFileName.substr(0, 4));
+ SkASSERT('\\' == bmhFileName[4] || '/' == bmhFileName[4]);
+ SkASSERT(".bmh" == bmhFileName.substr(bmhFileName.length() - 4));
+ string result = bmhFileName.substr(5, bmhFileName.length() - 4 - 5);
+ return result;
+}
+
bool ParserCommon::parseFile(const char* fileOrPath, const char* suffix, OneFile oneFile) {
+ fRawFilePathDir = string(fileOrPath);
if (!sk_isdir(fileOrPath)) {
if (!this->parseFromFile(fileOrPath)) {
SkDebugf("failed to parse %s\n", fileOrPath);
@@ -80,6 +99,7 @@
}
bool ParserCommon::parseStatus(const char* statusFile, const char* suffix, StatusFilter filter) {
+ fRawFilePathDir = string(statusFile);
StatusIter iter(statusFile, suffix, filter);
if (iter.empty()) {
return false;
@@ -198,10 +218,7 @@
int len = lineEnd ? (int) (lineEnd - data) : size;
this->writePending();
this->indentToColumn(indent);
- if (fDebugOut) {
- debug_out(len, data);
- }
- fprintf(fOut, "%.*s", len, data);
+ FPRINTF("%.*s", len, data);
checkLineLength(len, data);
size -= len;
data += len;
@@ -241,10 +258,7 @@
fPendingSpace = 0;
}
this->writePending();
- if (fDebugOut) {
- debug_out(size, data);
- }
- fprintf(fOut, "%.*s", size, data);
+ FPRINTF("%.*s", size, data);
checkLineLength(size, data);
fWroteSomething = true;
int added = 0;
@@ -311,10 +325,7 @@
fPendingSpace = 0;
}
this->writePending();
- if (fDebugOut) {
- debug_out((int) strlen(str), str);
- }
- fprintf(fOut, "%s", str);
+ FPRINTF("%s", str);
checkLineLength(strlen(str), str);
fColumn += len;
fSpaces = 0;