diff options
author | Cary Clark <caryclark@skia.org> | 2018-03-20 15:53:27 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-03-20 20:20:20 +0000 |
commit | 06c20f356ddfcf95385c5d5ca9bf4428a7a16b81 (patch) | |
tree | c893c7616fc985d9c805e4fd42e63450085f9e59 /site | |
parent | 8a05601d0c544acef70b8b5e5f7ebe3f1b1747cf (diff) |
more SkImageInfo docs
fix a couple of fiddles with changed output
rewrite some SkSurface image makers
move towards replacing SkImageInfo.h
R=caryclark@google.com
Docs-Preview: https://skia.org/?cl=115163
Bug: skia:6898
Change-Id: Id9895b051cd457336c30250a69cf95359d1d34d7
Reviewed-on: https://skia-review.googlesource.com/115163
Commit-Queue: Cary Clark <caryclark@skia.org>
Reviewed-by: Cary Clark <caryclark@skia.org>
Diffstat (limited to 'site')
-rw-r--r-- | site/user/api/SkBitmap_Reference.md | 2 | ||||
-rw-r--r-- | site/user/api/SkCanvas_Reference.md | 6 | ||||
-rw-r--r-- | site/user/api/SkIRect_Reference.md | 2 | ||||
-rw-r--r-- | site/user/api/SkImageInfo_Reference.md | 290 | ||||
-rw-r--r-- | site/user/api/SkImage_Reference.md | 40 | ||||
-rw-r--r-- | site/user/api/SkPaint_Reference.md | 26 | ||||
-rw-r--r-- | site/user/api/SkPath_Reference.md | 4 | ||||
-rw-r--r-- | site/user/api/SkSurface_Reference.md | 239 | ||||
-rw-r--r-- | site/user/api/catalog.htm | 151 | ||||
-rw-r--r-- | site/user/api/undocumented.md | 30 |
10 files changed, 316 insertions, 474 deletions
diff --git a/site/user/api/SkBitmap_Reference.md b/site/user/api/SkBitmap_Reference.md index 9038a34ba8..864ed54e70 100644 --- a/site/user/api/SkBitmap_Reference.md +++ b/site/user/api/SkBitmap_Reference.md @@ -3629,7 +3629,7 @@ SK_DEBUG is defined at compile time. ### See Also -<a href="SkImageInfo_Reference#SkImageInfo_validate">SkImageInfo::validate()</a> +<a href="SkImageInfo_Reference#SkImageInfo_validate">SkImageInfo::validate</a> --- diff --git a/site/user/api/SkCanvas_Reference.md b/site/user/api/SkCanvas_Reference.md index f318040a8a..2253b3756a 100644 --- a/site/user/api/SkCanvas_Reference.md +++ b/site/user/api/SkCanvas_Reference.md @@ -470,7 +470,7 @@ enum class <a href="#SkCanvas_ColorBehavior">ColorBehavior</a> { </td> </tr> -</table> + <a name="SkCanvas_const_SkBitmap"></a> ## SkCanvas @@ -2462,8 +2462,6 @@ maximum allowed clip in device coordinates</td> --- -</table> - <a name="SkCanvas_clipRRect"></a> ## clipRRect @@ -4600,7 +4598,7 @@ or to fill the grid entry with a color. </td> </tr> -</table> + <a name="SkCanvas_Lattice_fXDivs"> <code><strong>const int* fXDivs</strong></code> </a> diff --git a/site/user/api/SkIRect_Reference.md b/site/user/api/SkIRect_Reference.md index ecbd43eeea..049c2b6da1 100644 --- a/site/user/api/SkIRect_Reference.md +++ b/site/user/api/SkIRect_Reference.md @@ -775,7 +775,7 @@ midpoint in y #### Example Output ~~~~ -left: 1073741824 right: 1073741826 centerX: -1073741823 safe mid x: 1073741825 +left: 1073741824 right: 1073741826 centerX: 1073741825 safe mid x: 1073741825 ~~~~ </fiddle-embed></div> diff --git a/site/user/api/SkImageInfo_Reference.md b/site/user/api/SkImageInfo_Reference.md index 464fed988e..10e1272361 100644 --- a/site/user/api/SkImageInfo_Reference.md +++ b/site/user/api/SkImageInfo_Reference.md @@ -140,6 +140,27 @@ The four displayed values are the original component values, though not necessar in the same order. </div></fiddle-embed></div> +<a name="SkAlphaTypeIsOpaque"></a> +## SkAlphaTypeIsOpaque + +<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0"> +static inline bool SkAlphaTypeIsOpaque(SkAlphaType at) +</pre> + +### 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> + </tr> +</table> + +### Return Value + +true if <a href="#SkAlphaTypeIsOpaque_at">at</a> equals <a href="#kOpaque_SkAlphaType">kOpaque_SkAlphaType</a> + +--- + ## <a name="Color_Type"></a> Color Type <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>, @@ -164,11 +185,15 @@ enum <a href="#SkColorType">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>, + kLastEnum_SkColorType = <a href="#kRGBA_F16_SkColorType">kRGBA_F16_SkColorType</a>, + +#if SK_PMCOLOR_BYTE_ORDER(B,G,R,A) <a href="#kN32_SkColorType">kN32_SkColorType</a> = <a href="#kBGRA_8888_SkColorType">kBGRA_8888_SkColorType</a>, +#elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A) <a href="#kN32_SkColorType">kN32_SkColorType</a> = <a href="#kRGBA_8888_SkColorType">kRGBA_8888_SkColorType</a>, -}; -</pre> +#else +#error "</pre> Describes how pixel bits encode color. A pixel may be an alpha mask, a gray level, <a href="undocumented#RGB">Color RGB</a>, or <a href="undocumented#ARGB">Color ARGB</a>. @@ -578,34 +603,44 @@ kLastEnum_SkYUVColorSpace = <a href="#kRec709_SkYUVColorSpace">kRec709_SkYUVColo }; </pre> -Describes the color space a YUV pixel. +Describes color range of YUV pixels. The color mapping from YUV to RGB varies +depending on the source. YUV pixels may be generated by JPEG images, standard +video streams, or high definition video streams. Each has its own mapping from +YUV and RGB. + +JPEG YUV values encode the full range of 0 to 255 for all three components. +Video YUV values range from 16 to 235 for all three components. Details of +encoding and conversion to RGB are described in <a href="https://en.wikipedia.org/wiki/YCbCr">YCbCr color space</a> . ### Constants <table> <tr> - <td><a name="kJPEG_SkYUVColorSpace"> <code><strong>kJPEG_SkYUVColorSpace </strong></code> </a></td><td>0</td><td>Standard JPEG color space. + <td><a name="kJPEG_SkYUVColorSpace"> <code><strong>kJPEG_SkYUVColorSpace </strong></code> </a></td><td>0</td><td>Describes standard JPEG color space; +<a href="https://en.wikipedia.org/wiki/Rec._601">CCIR 601</table> + +</a> with full range of 0 to 255 for components. </td> </tr> <tr> - <td><a name="kRec601_SkYUVColorSpace"> <code><strong>kRec601_SkYUVColorSpace </strong></code> </a></td><td>1</td><td>SDTV standard Rec. 601 color space. Uses "studio swing" [16, 235] color -range. See http://en.wikipedia.org/wiki/Rec._601 for details. + <td><a name="kRec601_SkYUVColorSpace"> <code><strong>kRec601_SkYUVColorSpace </strong></code> </a></td><td>1</td><td>Describes standard used by SDTV; +<a href="https://en.wikipedia.org/wiki/Rec._601">CCIR 601</table> + +</a> with studio range of 16 to 235 range for components. </td> </tr> <tr> - <td><a name="kRec709_SkYUVColorSpace"> <code><strong>kRec709_SkYUVColorSpace </strong></code> </a></td><td>2</td><td>HDTV standard Rec. 709 color space. Uses "studio swing" [16, 235] color -range. See http://en.wikipedia.org/wiki/Rec._709 for details. + <td><a name="kRec709_SkYUVColorSpace"> <code><strong>kRec709_SkYUVColorSpace </strong></code> </a></td><td>2</td><td>Describes standard used by HDTV; +<a href="http://en.wikipedia.org/wiki/Rec._709">Rec. 709</table> + +</a> with studio range of 16 to 235 range for components. </td> </tr> </table> -### Example - -<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div> - ### See Also -incomplete +<a href="SkImage_Reference#SkImage_MakeFromYUVTexturesCopy">SkImage::MakeFromYUVTexturesCopy</a> <a href="SkImage_Reference#SkImage_MakeFromNV12TexturesCopy">SkImage::MakeFromNV12TexturesCopy</a> @@ -623,7 +658,7 @@ and green; and <a href="undocumented#Color_Space">Color Space</a>, the range and | name | description | | --- | --- | -| <a href="#SkImageInfo_ByteSizeOverflowed">ByteSizeOverflowed</a> | incomplete | +| <a href="#SkImageInfo_ByteSizeOverflowed">ByteSizeOverflowed</a> | checks result of <a href="#SkImageInfo_computeByteSize">computeByteSize</a> and <a href="#SkImageInfo_computeMinByteSize">computeMinByteSize</a> | | <a href="#SkImageInfo_Make">Make</a> | creates <a href="#Image_Info">Image Info</a> from dimensions, <a href="#Color_Type">Color Type</a>, <a href="#Alpha_Type">Alpha Type</a>, <a href="undocumented#Color_Space">Color Space</a> | | <a href="#SkImageInfo_MakeA8">MakeA8</a> | creates <a href="#Image_Info">Image Info</a> with <a href="#kAlpha_8_SkColorType">kAlpha_8_SkColorType</a>, <a href="#kPremul_SkAlphaType">kPremul_SkAlphaType</a> | | <a href="#SkImageInfo_MakeN32">MakeN32</a> | creates <a href="#Image_Info">Image Info</a> with <a href="#Color_Type_Native">Native Color Type</a> | @@ -635,11 +670,10 @@ and green; and <a href="undocumented#Color_Space">Color Space</a>, the range and | <a href="#SkImageInfo_bytesPerPixel">bytesPerPixel</a> | returns number of bytes in pixel based on <a href="#Color_Type">Color Type</a> | | <a href="#SkImageInfo_colorSpace">colorSpace</a> | returns <a href="undocumented#Color_Space">Color Space</a> | | <a href="#SkImageInfo_colorType">colorType</a> | returns <a href="#Color_Type">Color Type</a> | -| <a href="#SkImageInfo_computeByteSize">computeByteSize</a> | incomplete | -| <a href="#SkImageInfo_computeMinByteSize">computeMinByteSize</a> | incomplete | +| <a href="#SkImageInfo_computeByteSize">computeByteSize</a> | memory required by pixel buffer with given row bytes | +| <a href="#SkImageInfo_computeMinByteSize">computeMinByteSize</a> | least memory required by pixel buffer | | <a href="#SkImageInfo_computeOffset">computeOffset</a> | returns byte offset within pixel array | | <a href="#SkImageInfo_dimensions">dimensions</a> | returns <a href="#SkImageInfo_width">width</a> and <a href="#SkImageInfo_height">height</a> | -| <a href="#SkImageInfo_flatten">flatten</a> | incomplete | | <a href="#SkImageInfo_gammaCloseToSRGB">gammaCloseToSRGB</a> | Returns if <a href="undocumented#Color_Space">Color Space</a> gamma is approximately the same as sRGB | | <a href="#SkImageInfo_height">height</a> | returns pixel row count | | <a href="#SkImageInfo_isEmpty">isEmpty</a> | returns if dimensions contain pixels | @@ -651,11 +685,10 @@ and green; and <a href="undocumented#Color_Space">Color Space</a>, the range and | <a href="#SkImageInfo_minRowBytes">minRowBytes</a> | returns <a href="#SkImageInfo_width">width</a> times <a href="#SkImageInfo_bytesPerPixel">bytesPerPixel</a> in 32 bits | | <a href="#SkImageInfo_minRowBytes64">minRowBytes64</a> | returns <a href="#SkImageInfo_width">width</a> times <a href="#SkImageInfo_bytesPerPixel">bytesPerPixel</a> in 64 bits | | <a href="#SkImageInfo_refColorSpace">refColorSpace</a> | returns <a href="undocumented#Color_Space">Color Space</a> | -| <a href="#SkImageInfo_reset">reset</a> | incomplete | +| <a href="#SkImageInfo_reset">reset</a> | sets zero dimensions, <a href="#kUnknown_SkColorType">kUnknown_SkColorType</a>, <a href="#kUnknown_SkAlphaType">kUnknown_SkAlphaType</a> | | <a href="#SkImageInfo_shiftPerPixel">shiftPerPixel</a> | returns bit shift from pixels to bytes | -| <a href="#SkImageInfo_unflatten">unflatten</a> | incomplete | -| <a href="#SkImageInfo_validRowBytes">validRowBytes</a> | incomplete | -| <a href="#SkImageInfo_validate">validate</a> | incomplete | +| <a href="#SkImageInfo_validRowBytes">validRowBytes</a> | checks if row bytes is large enough to contain pixel row | +| <a href="#SkImageInfo_validate">validate</a> | asserts if <a href="#Image_Info">Image Info</a> is invalid (debug only) | | <a href="#SkImageInfo_width">width</a> | returns pixel column count | ## <a name="Related_Function"></a> Related Function @@ -684,7 +717,7 @@ and green; and <a href="undocumented#Color_Space">Color Space</a>, the range and | <a href="#SkImageInfo_makeColorSpace">makeColorSpace</a> | creates <a href="#Image_Info">Image Info</a> with changed <a href="undocumented#Color_Space">Color Space</a> | | <a href="#SkImageInfo_makeColorType">makeColorType</a> | creates <a href="#Image_Info">Image Info</a> with changed <a href="#Color_Type">Color Type</a> | | <a href="#SkImageInfo_makeWH">makeWH</a> | creates <a href="#Image_Info">Image Info</a> with changed dimensions | -| <a href="#SkImageInfo_reset">reset</a> | incomplete | +| <a href="#SkImageInfo_reset">reset</a> | sets zero dimensions, <a href="#kUnknown_SkColorType">kUnknown_SkColorType</a>, <a href="#kUnknown_SkAlphaType">kUnknown_SkAlphaType</a> | <a name="SkImageInfo_empty_constructor"></a> ## SkImageInfo @@ -693,7 +726,7 @@ and green; and <a href="undocumented#Color_Space">Color Space</a>, the range and SkImageInfo() </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>, +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>. ### Return Value @@ -884,7 +917,7 @@ created <a href="#Image_Info">Image Info</a> ### Example -<div><fiddle-embed name="077084c05471d6bbd54338d92ea799e3"></fiddle-embed></div> +<div><fiddle-embed name="525650a67e19fdd8ca9f72b7eda65174"></fiddle-embed></div> ### See Also @@ -920,7 +953,7 @@ created <a href="#Image_Info">Image Info</a> ### Example -<div><fiddle-embed name="897f42eb3b27d749ec792435fb389a07"></fiddle-embed></div> +<div><fiddle-embed name="b9026d7f39029756bd7cab9542c64f4e"></fiddle-embed></div> ### See Also @@ -1588,7 +1621,7 @@ color: kRGBA_F16_SkColorType shiftPerPixel: 3 ### See Also -incomplete +<a href="#SkImageInfo_bytesPerPixel">bytesPerPixel</a> <a href="#SkImageInfo_minRowBytes">minRowBytes</a> <a href="SkBitmap_Reference#SkBitmap_shiftPerPixel">SkBitmap::shiftPerPixel</a> <a href="SkPixmap_Reference#SkPixmap_shiftPerPixel">SkPixmap::shiftPerPixel</a> --- @@ -1701,11 +1734,11 @@ offset within pixel array ### Example -<div><fiddle-embed name="0a1ddddfe4f01c025e893ae826cb4ece"></fiddle-embed></div> +<div><fiddle-embed name="818e4e1191e39d2a642902cbf253b399"></fiddle-embed></div> ### See Also -incomplete +<a href="#SkImageInfo_height">height</a> <a href="#SkImageInfo_width">width</a> <a href="#SkImageInfo_minRowBytes">minRowBytes</a> <a href="#SkImageInfo_computeByteSize">computeByteSize</a> --- @@ -1713,8 +1746,8 @@ incomplete | name | description | | --- | --- | -| <a href="#SkImageInfo_notequal1_operator">operator!=(const SkImageInfo& other) const</a> | incomplete | -| <a href="#SkImageInfo_equal1_operator">operator==(const SkImageInfo& other) const</a> | incomplete | +| <a href="#SkImageInfo_notequal1_operator">operator!=(const SkImageInfo& other) const</a> | compares <a href="#Image_Info">Image Info</a> for inequality | +| <a href="#SkImageInfo_equal1_operator">operator==(const SkImageInfo& other) const</a> | compares <a href="#Image_Info">Image Info</a> for equality | <a name="SkImageInfo_equal1_operator"></a> ## operator== @@ -1723,24 +1756,38 @@ incomplete 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. + ### Parameters <table> <tr> <td><a name="SkImageInfo_equal1_operator_other"> <code><strong>other </strong></code> </a></td> <td> -incomplete</td> +<a href="#Image_Info">Image Info</a> to compare</td> </tr> </table> ### Return Value -incomplete +true if <a href="#Image_Info">Image Info</a> equals <a href="#SkImageInfo_equal1_operator_other">other</a> ### Example -<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div> +<div><fiddle-embed name="53c212c4f2449df0b0eedbc6227b6ab7"> + +#### Example Output + +~~~~ +info1 != info2 +info1 != info2 +info1 != info2 +info1 == info2 +~~~~ + +</fiddle-embed></div> ### See Also -incomplete +<a href="#SkImageInfo_notequal1_operator">operator!=(const SkImageInfo& other) const</a> <a href="undocumented#SkColorSpace_Equals">SkColorSpace::Equals</a> --- @@ -1751,72 +1798,38 @@ incomplete bool operator!=(const SkImageInfo& other) _const </pre> +Compares <a href="#Image_Info">Image Info</a> with <a href="#SkImageInfo_notequal1_operator_other">other</a>, and returns true if width, height, <a href="#Color_Type">Color Type</a>, +<a href="#Alpha_Type">Alpha Type</a>, and <a href="undocumented#Color_Space">Color Space</a> are equivalent. + ### Parameters <table> <tr> <td><a name="SkImageInfo_notequal1_operator_other"> <code><strong>other </strong></code> </a></td> <td> -incomplete</td> +<a href="#Image_Info">Image Info</a> to compare</td> </tr> </table> ### Return Value -incomplete - -### Example - -<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div> - -### See Also - -incomplete - ---- - -<a name="SkImageInfo_unflatten"></a> -## unflatten - -<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0"> -void unflatten(SkReadBuffer& buffer) -</pre> - -### Parameters - -<table> <tr> <td><a name="SkImageInfo_unflatten_buffer"> <code><strong>buffer </strong></code> </a></td> <td> -incomplete</td> - </tr> -</table> +true if <a href="#Image_Info">Image Info</a> is not equal to <a href="#SkImageInfo_notequal1_operator_other">other</a> ### Example -<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div> +<div><fiddle-embed name="8c039fde0a476ac1aa62bf9de5d61c77"> -### See Also - -incomplete - ---- - -<a name="SkImageInfo_flatten"></a> -## flatten - -<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0"> -void flatten(SkWriteBuffer& buffer) const -</pre> - -### Parameters - -<table> <tr> <td><a name="SkImageInfo_flatten_buffer"> <code><strong>buffer </strong></code> </a></td> <td> -incomplete</td> - </tr> -</table> +#### Example Output -### Example +~~~~ +info1 != info2 +info1 != info2 +info1 != info2 +info1 == info2 +~~~~ -<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div> +</fiddle-embed></div> ### See Also -incomplete +<a href="#SkImageInfo_equal1_operator">operator==(const SkImageInfo& other) const</a> <a href="undocumented#SkColorSpace_Equals">SkColorSpace::Equals</a> --- @@ -1827,33 +1840,30 @@ incomplete size_t computeByteSize(size_t rowBytes) const </pre> -Returns the size (in bytes) of the image buffer that this info needs, given the specified -<a href="#SkImageInfo_computeByteSize_rowBytes">rowBytes</a>. The <a href="#SkImageInfo_computeByteSize_rowBytes">rowBytes</a> must be >= this-><a href="#SkImageInfo_minRowBytes">minRowBytes</a>. -if (height == 0) { -return 0; -} else { -return (height - 1) * <a href="#SkImageInfo_computeByteSize_rowBytes">rowBytes</a> + width * bytes_per_pixel. +Returns storage required by pixel array, given <a href="#Image_Info">Image Info</a> dimensions, <a href="#Color_Type">Color Type</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>. -If the calculation overflows this returns <a href="undocumented#SK_MaxSizeT">SK MaxSizeT</a>. +Returns zero if height is zero. +Returns <a href="undocumented#SK_MaxSizeT">SK MaxSizeT</a> if answer exceeds the range of size_t. ### Parameters <table> <tr> <td><a name="SkImageInfo_computeByteSize_rowBytes"> <code><strong>rowBytes </strong></code> </a></td> <td> -incomplete</td> +size of pixel row or larger</td> </tr> </table> ### Return Value -incomplete +memory required by pixel buffer ### Example -<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div> +<div><fiddle-embed name="9def507d2295f7051effd0c83bb04436"></fiddle-embed></div> ### See Also -incomplete +<a href="#SkImageInfo_computeMinByteSize">computeMinByteSize</a> <a href="#SkImageInfo_validRowBytes">validRowBytes</a> --- @@ -1864,20 +1874,23 @@ incomplete size_t computeMinByteSize() const </pre> -Returns the minimum size (in bytes) of the image buffer that this info needs. -If the calculation overflows, or if the height is 0, this returns 0. +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 zero if height is zero. +Returns <a href="undocumented#SK_MaxSizeT">SK MaxSizeT</a> if answer exceeds the range of size_t. ### Return Value -incomplete +least memory required by pixel buffer ### Example -<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div> +<div><fiddle-embed name="fc18640fdde437cb35338aed7c68d399"></fiddle-embed></div> ### See Also -incomplete +<a href="#SkImageInfo_computeByteSize">computeByteSize</a> <a href="#SkImageInfo_validRowBytes">validRowBytes</a> --- @@ -1888,26 +1901,39 @@ incomplete static bool ByteSizeOverflowed(size_t byteSize) </pre> -Returns true if the result of <a href="#SkImageInfo_computeByteSize">computeByteSize</a> (or <a href="#SkImageInfo_computeMinByteSize">computeMinByteSize</a>) overflowed +Returns true if <a href="#SkImageInfo_ByteSizeOverflowed_byteSize">byteSize</a> equals <a href="undocumented#SK_MaxSizeT">SK MaxSizeT</a>. <a href="#SkImageInfo_computeByteSize">computeByteSize</a> and +<a href="#SkImageInfo_computeMinByteSize">computeMinByteSize</a> return <a href="undocumented#SK_MaxSizeT">SK MaxSizeT</a> if size_t can not hold buffer size. ### Parameters <table> <tr> <td><a name="SkImageInfo_ByteSizeOverflowed_byteSize"> <code><strong>byteSize </strong></code> </a></td> <td> -incomplete</td> +result of <a href="#SkImageInfo_computeByteSize">computeByteSize</a> or <a href="#SkImageInfo_computeMinByteSize">computeMinByteSize</a></td> </tr> </table> ### Return Value -incomplete +true if <a href="#SkImageInfo_computeByteSize">computeByteSize</a> or <a href="#SkImageInfo_computeMinByteSize">computeMinByteSize</a> result exceeds size_t ### Example -<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div> +<div><fiddle-embed name="6a63dfdd62ab77ff57783af8c33d7b78"> + +#### Example Output + +~~~~ +rowBytes:100000000 size:99999999900000008 overflowed:false +rowBytes:1000000000 size:999999999000000008 overflowed:false +rowBytes:10000000000 size:9999999990000000008 overflowed:false +rowBytes:100000000000 size:18446744073709551615 overflowed:true +rowBytes:1000000000000 size:18446744073709551615 overflowed:true +~~~~ + +</fiddle-embed></div> ### See Also -incomplete +<a href="#SkImageInfo_computeByteSize">computeByteSize</a> <a href="#SkImageInfo_computeMinByteSize">computeMinByteSize</a> <a href="#SkImageInfo_validRowBytes">validRowBytes</a> --- @@ -1918,24 +1944,36 @@ incomplete bool validRowBytes(size_t rowBytes) const </pre> +Returns true if <a href="#SkImageInfo_validRowBytes_rowBytes">rowBytes</a> is smaller than width times pixel size. + ### Parameters <table> <tr> <td><a name="SkImageInfo_validRowBytes_rowBytes"> <code><strong>rowBytes </strong></code> </a></td> <td> -incomplete</td> +size of pixel row or larger</td> </tr> </table> ### Return Value -incomplete +true if <a href="#SkImageInfo_validRowBytes_rowBytes">rowBytes</a> is large enough to contain pixel row ### Example -<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div> +<div><fiddle-embed name="c6b0f6a3f493cb08d9abcdefe12de245"> + +#### Example Output + +~~~~ +validRowBytes(60): false +validRowBytes(64): true +validRowBytes(68): true +~~~~ + +</fiddle-embed></div> ### See Also -incomplete +<a href="#SkImageInfo_ByteSizeOverflowed">ByteSizeOverflowed</a> <a href="#SkImageInfo_computeByteSize">computeByteSize</a> <a href="#SkImageInfo_computeMinByteSize">computeMinByteSize</a> --- @@ -1946,13 +1984,26 @@ incomplete void reset() </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>. + ### Example -<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div> +<div><fiddle-embed name="ab7e73786805c936de386b6c1ebe1f13"> + +#### Example Output + +~~~~ +info == copy +info != reset copy +SkImageInfo() == reset copy +~~~~ + +</fiddle-embed></div> ### See Also -incomplete +<a href="#SkImageInfo_empty_constructor">SkImageInfo()</a> --- @@ -1960,14 +2011,12 @@ incomplete | name | description | | --- | --- | -| <a href="#SkImageInfo_ByteSizeOverflowed">ByteSizeOverflowed</a> | incomplete | -| <a href="#SkImageInfo_computeByteSize">computeByteSize</a> | incomplete | -| <a href="#SkImageInfo_computeMinByteSize">computeMinByteSize</a> | incomplete | +| <a href="#SkImageInfo_ByteSizeOverflowed">ByteSizeOverflowed</a> | checks result of <a href="#SkImageInfo_computeByteSize">computeByteSize</a> and <a href="#SkImageInfo_computeMinByteSize">computeMinByteSize</a> | +| <a href="#SkImageInfo_computeByteSize">computeByteSize</a> | memory required by pixel buffer with given row bytes | +| <a href="#SkImageInfo_computeMinByteSize">computeMinByteSize</a> | least memory required by pixel buffer | | <a href="#SkImageInfo_computeOffset">computeOffset</a> | returns byte offset within pixel array | -| <a href="#SkImageInfo_flatten">flatten</a> | incomplete | -| <a href="#SkImageInfo_unflatten">unflatten</a> | incomplete | -| <a href="#SkImageInfo_validRowBytes">validRowBytes</a> | incomplete | -| <a href="#SkImageInfo_validate">validate</a> | incomplete | +| <a href="#SkImageInfo_validRowBytes">validRowBytes</a> | checks if row bytes is large enough to contain pixel row | +| <a href="#SkImageInfo_validate">validate</a> | asserts if <a href="#Image_Info">Image Info</a> is invalid (debug only) | <a name="SkImageInfo_validate"></a> ## validate @@ -1976,13 +2025,12 @@ incomplete void validate() const </pre> -### Example - -<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div> +Asserts if internal values are illegal or inconsistent. Only available if +SK_DEBUG is defined at compile time. ### See Also -incomplete +<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 c40598f150..e9faca9c7c 100644 --- a/site/user/api/SkImage_Reference.md +++ b/site/user/api/SkImage_Reference.md @@ -78,15 +78,11 @@ drawing. | <a href="#SkImage_MakeFromEncoded">MakeFromEncoded</a> | creates <a href="#Image">Image</a> from encoded data | | <a href="#SkImage_MakeFromGenerator">MakeFromGenerator</a> | creates <a href="#Image">Image</a> from a stream of data | | <a href="#SkImage_MakeFromNV12TexturesCopy">MakeFromNV12TexturesCopy</a> | creates <a href="#Image">Image</a> from <a href="SkImageInfo_Reference#YUV_ColorSpace">YUV ColorSpace</a> data in three planes | -| | <a href="#SkImage_MakeFromNV12TexturesCopy">MakeFromNV12TexturesCopy(GrContext* context, SkYUVColorSpace yuvColorSpace, const GrBackendTexture nv12Textures[2], GrSurfaceOrigin surfaceOrigin, sk sp<SkColorSpace> colorSpace = nullptr)</a> | -| | <a href="#SkImage_MakeFromNV12TexturesCopy_2">MakeFromNV12TexturesCopy(GrContext* context, SkYUVColorSpace yuvColorSpace, const GrBackendTexture nv12Textures[2], const SkISize nv12Sizes[2], GrSurfaceOrigin surfaceOrigin, sk sp<SkColorSpace> colorSpace = nullptr)</a> | | <a href="#SkImage_MakeFromPicture">MakeFromPicture</a> | creates <a href="#Image">Image</a> from <a href="undocumented#Picture">Picture</a> | | <a href="#SkImage_MakeFromRaster">MakeFromRaster</a> | creates <a href="#Image">Image</a> from <a href="SkPixmap_Reference#Pixmap">Pixmap</a>, with release | | <a href="#SkImage_MakeFromTexture_3">MakeFromTexture 3</a> | creates <a href="#Image">Image</a> from <a href="undocumented#GPU_Texture">GPU Texture</a> | | | static <a href="undocumented#sk_sp">sk sp</a><<a href="#SkImage">SkImage</a>> <a href="#SkImage_MakeFromTexture_3">MakeFromTexture(GrContext* context, const GrBackendTexture& backendTexture, GrSurfaceOrigin origin, SkColorType colorType, SkAlphaType alphaType, sk sp<SkColorSpace> colorSpace)</a> | | <a href="#SkImage_MakeFromYUVTexturesCopy">MakeFromYUVTexturesCopy</a> | creates <a href="#Image">Image</a> from <a href="SkImageInfo_Reference#YUV_ColorSpace">YUV ColorSpace</a> data in three planes | -| | <a href="#SkImage_MakeFromYUVTexturesCopy">MakeFromYUVTexturesCopy(GrContext* context, SkYUVColorSpace yuvColorSpace, const GrBackendTexture yuvTextures[3], GrSurfaceOrigin surfaceOrigin, sk sp<SkColorSpace> colorSpace = nullptr)</a> | -| | <a href="#SkImage_MakeFromYUVTexturesCopy_2">MakeFromYUVTexturesCopy(GrContext* context, SkYUVColorSpace yuvColorSpace, const GrBackendTexture yuvTextures[3], const SkISize yuvSizes[3], GrSurfaceOrigin surfaceOrigin, sk sp<SkColorSpace> colorSpace = nullptr)</a> | | <a href="#SkImage_MakeRasterCopy">MakeRasterCopy</a> | creates <a href="#Image">Image</a> from <a href="SkPixmap_Reference#Pixmap">Pixmap</a> and copied pixels | | <a href="#SkImage_MakeRasterData">MakeRasterData</a> | creates <a href="#Image">Image</a> from <a href="SkImageInfo_Reference#Image_Info">Image Info</a> and shared pixels | | <a href="#SkImage_asLegacyBitmap">asLegacyBitmap</a> | returns as <a href="undocumented#Raster_Bitmap">Raster Bitmap</a> | @@ -493,7 +489,7 @@ created <a href="#Image">Image</a>, or nullptr ### See Also -<a href="#SkImage_MakeFromAdoptedTexture">MakeFromAdoptedTexture</a> <a href="SkSurface_Reference#SkSurface_MakeFromBackendTexture">SkSurface::MakeFromBackendTexture</a><sup><a href="SkSurface_Reference#SkSurface_MakeFromBackendTexture_2">[2]</a></sup> +<a href="#SkImage_MakeFromAdoptedTexture">MakeFromAdoptedTexture</a> <a href="SkSurface_Reference#SkSurface_MakeFromBackendTexture">SkSurface::MakeFromBackendTexture</a> --- @@ -549,7 +545,7 @@ created <a href="#Image">Image</a>, or nullptr ### See Also -<a href="#SkImage_MakeFromAdoptedTexture">MakeFromAdoptedTexture</a> <a href="SkSurface_Reference#SkSurface_MakeFromBackendTexture">SkSurface::MakeFromBackendTexture</a><sup><a href="SkSurface_Reference#SkSurface_MakeFromBackendTexture_2">[2]</a></sup> +<a href="#SkImage_MakeFromAdoptedTexture">MakeFromAdoptedTexture</a> <a href="SkSurface_Reference#SkSurface_MakeFromBackendTexture">SkSurface::MakeFromBackendTexture</a> --- @@ -719,7 +715,7 @@ created <a href="#Image">Image</a>, or nullptr ### See Also -<a href="#SkImage_MakeFromTexture">MakeFromTexture</a> <a href="#SkImage_MakeFromYUVTexturesCopy">MakeFromYUVTexturesCopy</a><sup><a href="#SkImage_MakeFromYUVTexturesCopy_2">[2]</a></sup> +<a href="#SkImage_MakeFromTexture">MakeFromTexture</a> <a href="#SkImage_MakeFromYUVTexturesCopy">MakeFromYUVTexturesCopy</a> --- @@ -759,19 +755,7 @@ created <a href="#Image">Image</a>, or nullptr ### See Also -<a href="#SkImage_MakeFromNV12TexturesCopy">MakeFromNV12TexturesCopy</a><sup><a href="#SkImage_MakeFromNV12TexturesCopy_2">[2]</a></sup> - ---- - -<a name="SkImage_MakeFromYUVTexturesCopy_2"></a> - -<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0"> -static sk_sp<SkImage> MakeFromYUVTexturesCopy(GrContext* context, SkYUVColorSpace yuvColorSpace, - const GrBackendTexture yuvTextures[3], - const SkISize yuvSizes[3], - GrSurfaceOrigin surfaceOrigin, - sk_sp<SkColorSpace> colorSpace = nullptr) -</pre> +<a href="#SkImage_MakeFromNV12TexturesCopy">MakeFromNV12TexturesCopy</a> --- @@ -814,19 +798,7 @@ created <a href="#Image">Image</a>, or nullptr ### See Also -<a href="#SkImage_MakeFromYUVTexturesCopy">MakeFromYUVTexturesCopy</a><sup><a href="#SkImage_MakeFromYUVTexturesCopy_2">[2]</a></sup> - ---- - -<a name="SkImage_MakeFromNV12TexturesCopy_2"></a> - -<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0"> -static sk_sp<SkImage> MakeFromNV12TexturesCopy(GrContext* context, SkYUVColorSpace yuvColorSpace, - const GrBackendTexture nv12Textures[2], - const SkISize nv12Sizes[2], - GrSurfaceOrigin surfaceOrigin, - sk_sp<SkColorSpace> colorSpace = nullptr) -</pre> +<a href="#SkImage_MakeFromYUVTexturesCopy">MakeFromYUVTexturesCopy</a> --- @@ -2110,7 +2082,7 @@ enum <a href="#SkImage_LegacyBitmapMode">LegacyBitmapMode</a> { </td> </tr> -</table> + <a name="SkImage_asLegacyBitmap"></a> ## asLegacyBitmap diff --git a/site/user/api/SkPaint_Reference.md b/site/user/api/SkPaint_Reference.md index 23c582b0a2..88a100b978 100644 --- a/site/user/api/SkPaint_Reference.md +++ b/site/user/api/SkPaint_Reference.md @@ -531,6 +531,10 @@ paint1 != paint2 </fiddle-embed></div> +### See Also + +<a href="#SkPaint_notequal_operator">operator!=(const SkPaint& a, const SkPaint& b)</a> + --- <a name="SkPaint_notequal_operator"></a> @@ -570,6 +574,10 @@ paint1 == paint2 </fiddle-embed></div> +### See Also + +<a href="#SkPaint_equal_operator">operator==(const SkPaint& a, const SkPaint& b)</a> + --- <a name="SkPaint_getHash"></a> @@ -806,7 +814,7 @@ multiple settings at once. </tr> <a href="#Flags">Flags</a> default to all flags clear, disabling the associated feature. -</table> + ## <a name="SkPaint_ReserveFlags"></a> Enum SkPaint::ReserveFlags @@ -829,7 +837,7 @@ enum <a href="#SkPaint_ReserveFlags">ReserveFlags</a> { <td><a name="SkPaint_kStrikeThruText_ReserveFlag"> <code><strong>SkPaint::kStrikeThruText_ReserveFlag </strong></code> </a></td><td>0x0010</td><td>soon</td> </tr> -</table> + <a name="SkPaint_getFlags"></a> ## getFlags @@ -2109,7 +2117,7 @@ and the set <a href="SkPath_Reference#Fill_Type">Path Fill Type</a> is ignored. </td> </tr> -</table> + ## <a name="SkPaint__anonymous"></a> Enum SkPaint::_anonymous @@ -2128,7 +2136,7 @@ May be used to verify that <a href="#SkPaint_Style">Style</a> is a legal value. </td> </tr> -</table> + <a name="SkPaint_getStyle"></a> ## getStyle @@ -2448,8 +2456,6 @@ at the contour point. <a href="#Stroke_Cap">Stroke Cap</a> is <a href="#SkPaint_kButt_Cap">kButt Cap</a> by default. -</table> - ### Example <div><fiddle-embed name="2bffb6384cc20077e632e7d01da045ca"></fiddle-embed></div> @@ -3617,7 +3623,7 @@ and by its height if <a href="#SkPaint_Flags">Flags</a> has <a href="#SkPaint_kV </td> </tr> -</table> + ## <a name="SkPaint__anonymous_2"></a> Enum SkPaint::_anonymous_2 @@ -3635,7 +3641,7 @@ enum { </td> </tr> -</table> + ### Example @@ -3914,7 +3920,7 @@ A glyph index is a 16-bit word. </td> </tr> -</table> + ### Example @@ -4088,7 +4094,7 @@ Fonts with embedded bitmaps may not have valid underline or strikeout metrics. </td> </tr> -</table> + <a name="SkPaint_FontMetrics_fFlags"> <code><strong>uint32_t fFlags</strong></code> </a> diff --git a/site/user/api/SkPath_Reference.md b/site/user/api/SkPath_Reference.md index 240bea423c..527a245da5 100644 --- a/site/user/api/SkPath_Reference.md +++ b/site/user/api/SkPath_Reference.md @@ -4669,8 +4669,8 @@ number of bytes read, or zero on failure #### Example Output ~~~~ -length = 60; returned by readFromMemory = 0 -length = 68; returned by readFromMemory = 64 +length = 32; returned by readFromMemory = 0 +length = 40; returned by readFromMemory = 36 ~~~~ </fiddle-embed></div> diff --git a/site/user/api/SkSurface_Reference.md b/site/user/api/SkSurface_Reference.md index dda2c3c80e..1b01fe5f58 100644 --- a/site/user/api/SkSurface_Reference.md +++ b/site/user/api/SkSurface_Reference.md @@ -36,8 +36,8 @@ of the requested dimensions are zero, then nullptr will be returned. | name | description | | --- | --- | | <a href="#SkSurface_MakeFromBackendRenderTarget">MakeFromBackendRenderTarget</a> | creates <a href="#Surface">Surface</a> from GPU memory buffer | -| <a href="#SkSurface_MakeFromBackendTexture">MakeFromBackendTexture</a> | creates <a href="#Surface">Surface</a> from GPU-backed texture | -| <a href="#SkSurface_MakeFromBackendTextureAsRenderTarget">MakeFromBackendTextureAsRenderTarget</a> | creates <a href="#Surface">Surface</a> from GPU-backed texture | +| <a href="#SkSurface_MakeFromBackendTexture">MakeFromBackendTexture</a> | creates <a href="#Surface">Surface</a> from GPU texture | +| <a href="#SkSurface_MakeFromBackendTextureAsRenderTarget">MakeFromBackendTextureAsRenderTarget</a> | creates <a href="#Surface">Surface</a> from GPU back-end render target | | <a href="#SkSurface_MakeNull">MakeNull</a> | creates <a href="#Surface">Surface</a> without backing pixels | | <a href="#SkSurface_MakeRaster">MakeRaster</a> | creates <a href="#Surface">Surface</a> from <a href="SkImageInfo_Reference#SkImageInfo">SkImageInfo</a> | | <a href="#SkSurface_MakeRasterDirect">MakeRasterDirect</a> | creates <a href="#Surface">Surface</a> from <a href="SkImageInfo_Reference#SkImageInfo">SkImageInfo</a> and <a href="undocumented#Storage">Pixel Storage</a> | @@ -68,8 +68,8 @@ of the requested dimensions are zero, then nullptr will be returned. | name | description | | --- | --- | | <a href="#SkSurface_MakeFromBackendRenderTarget">MakeFromBackendRenderTarget</a> | creates <a href="#Surface">Surface</a> from GPU memory buffer | -| <a href="#SkSurface_MakeFromBackendTexture">MakeFromBackendTexture</a> | creates <a href="#Surface">Surface</a> from GPU-backed texture | -| <a href="#SkSurface_MakeFromBackendTextureAsRenderTarget">MakeFromBackendTextureAsRenderTarget</a> | creates <a href="#Surface">Surface</a> from GPU-backed texture | +| <a href="#SkSurface_MakeFromBackendTexture">MakeFromBackendTexture</a> | creates <a href="#Surface">Surface</a> from GPU texture | +| <a href="#SkSurface_MakeFromBackendTextureAsRenderTarget">MakeFromBackendTextureAsRenderTarget</a> | creates <a href="#Surface">Surface</a> from GPU back-end render target | | <a href="#SkSurface_MakeNull">MakeNull</a> | creates <a href="#Surface">Surface</a> without backing pixels | | <a href="#SkSurface_MakeRaster">MakeRaster</a> | creates <a href="#Surface">Surface</a> from <a href="SkImageInfo_Reference#SkImageInfo">SkImageInfo</a> | | <a href="#SkSurface_MakeRasterDirect">MakeRasterDirect</a> | creates <a href="#Surface">Surface</a> from <a href="SkImageInfo_Reference#SkImageInfo">SkImageInfo</a> and <a href="undocumented#Storage">Pixel Storage</a> | @@ -371,6 +371,7 @@ fonts; may be nullptr</td> static sk_sp<SkSurface> MakeFromBackendTexture(GrContext* context, const GrBackendTexture& backendTexture, GrSurfaceOrigin origin, int sampleCnt, + SkColorType colorType, sk_sp<SkColorSpace> colorSpace, const SkSurfaceProps* surfaceProps) </pre> @@ -398,87 +399,14 @@ texture residing on GPU</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> - </tr> <tr> <td><a name="SkSurface_MakeFromBackendTexture_colorSpace"> <code><strong>colorSpace </strong></code> </a></td> <td> -range of colors</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> - </tr> -</table> - -### Return Value - -<a href="#Surface">Surface</a> if all parameters are valid; otherwise, nullptr - -### Example - -<pre style="padding: 1em 1em 1em 1em; font-size: 13px width: 62.5em; background-color: #f0f0f0"> - - SkPaint paint; - paint.setTextSize(32); - GrContext* context = canvas->getGrContext(); - if (!context) { - canvas->drawString("GPU only!", 20, 40, paint); - return; - } - sk_sp<SkSurface> gpuSurface = SkSurface::MakeFromBackendTexture(context, - backEndTextureRenderTarget, kTopLeft_GrSurfaceOrigin, 0, nullptr, nullptr); - auto surfaceCanvas = gpuSurface->getCanvas(); - surfaceCanvas->clear(SK_ColorWHITE); - surfaceCanvas->drawString("GPU rocks!", 20, 40, paint); - sk_sp<SkImage> image(gpuSurface->makeImageSnapshot()); - canvas->drawImage(image, 0, 0); - -</pre> - -### See Also - -<a href="undocumented#GrBackendTexture">GrBackendTexture</a> <a href="#SkSurface_MakeFromBackendRenderTarget">MakeFromBackendRenderTarget</a><sup><a href="#SkSurface_MakeFromBackendRenderTarget_2">[2]</a></sup> <a href="#SkSurface_MakeRenderTarget">MakeRenderTarget</a><sup><a href="#SkSurface_MakeRenderTarget_2">[2]</a></sup><sup><a href="#SkSurface_MakeRenderTarget_3">[3]</a></sup> - ---- - -<a name="SkSurface_MakeFromBackendTexture_2"></a> - -<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0"> -static sk_sp<SkSurface> MakeFromBackendTexture(GrContext* context, - const GrBackendTexture& backendTexture, - GrSurfaceOrigin origin, int sampleCnt, - SkColorType colorType, - sk_sp<SkColorSpace> colorSpace, - const SkSurfaceProps* 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_2_sampleCnt">sampleCnt</a> greater than zero, -creates an intermediate MSAA <a href="#Surface">Surface</a> which is used for drawing <a href="#SkSurface_MakeFromBackendTexture_2_backendTexture">backendTexture</a>. - -<a href="#Surface">Surface</a> is returned if all parameters are valid. <a href="#SkSurface_MakeFromBackendTexture_2_backendTexture">backendTexture</a> is valid if -its pixel configuration agrees with <a href="#SkSurface_MakeFromBackendTexture_2_colorSpace">colorSpace</a> and <a href="#SkSurface_MakeFromBackendTexture_2_context">context</a>; for instance, if -<a href="#SkSurface_MakeFromBackendTexture_2_backendTexture">backendTexture</a> has an sRGB configuration, then <a href="#SkSurface_MakeFromBackendTexture_2_context">context</a> must support sRGB, -and <a href="#SkSurface_MakeFromBackendTexture_2_colorSpace">colorSpace</a> must be present. Further, <a href="#SkSurface_MakeFromBackendTexture_2_backendTexture">backendTexture</a> width and height must -not exceed <a href="#SkSurface_MakeFromBackendTexture_2_context">context</a> capabilities, and the <a href="#SkSurface_MakeFromBackendTexture_2_context">context</a> must be able to support -back-end textures. - -If SK_SUPPORT_GPU is defined as zero, has no effect and returns nullptr. - -### Parameters - -<table> <tr> <td><a name="SkSurface_MakeFromBackendTexture_2_context"> <code><strong>context </strong></code> </a></td> <td> -<a href="undocumented#GPU_Context">GPU Context</a></td> - </tr> <tr> <td><a name="SkSurface_MakeFromBackendTexture_2_backendTexture"> <code><strong>backendTexture </strong></code> </a></td> <td> -texture residing on GPU</td> - </tr> <tr> <td><a name="SkSurface_MakeFromBackendTexture_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> - </tr> <tr> <td><a name="SkSurface_MakeFromBackendTexture_2_sampleCnt"> <code><strong>sampleCnt </strong></code> </a></td> <td> -samples per pixel, or 0 to disable full scene anti-aliasing</td> - </tr> <tr> <td><a name="SkSurface_MakeFromBackendTexture_2_colorType"> <code><strong>colorType </strong></code> </a></td> <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_2_colorSpace"> <code><strong>colorSpace </strong></code> </a></td> <td> -range of colors</td> - </tr> <tr> <td><a name="SkSurface_MakeFromBackendTexture_2_surfaceProps"> <code><strong>surfaceProps </strong></code> </a></td> <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> </tr> @@ -490,25 +418,7 @@ fonts; may be nullptr</td> ### Example -<pre style="padding: 1em 1em 1em 1em; font-size: 13px width: 62.5em; background-color: #f0f0f0"> - - SkPaint paint; - paint.setTextSize(32); - GrContext* context = canvas->getGrContext(); - if (!context) { - canvas->drawString("GPU only!", 20, 40, paint); - return; - } - sk_sp<SkSurface> gpuSurface = SkSurface::MakeFromBackendTexture(context, - backEndTextureRenderTarget, kTopLeft_GrSurfaceOrigin, - kRGBA_8888_SkColorType, 0, nullptr, nullptr); - auto surfaceCanvas = gpuSurface->getCanvas(); - surfaceCanvas->clear(SK_ColorWHITE); - surfaceCanvas->drawString("GPU rocks!", 20, 40, paint); - sk_sp<SkImage> image(gpuSurface->makeImageSnapshot()); - canvas->drawImage(image, 0, 0); - -</pre> +<div><fiddle-embed name="d3aec071998f871809f515e58abb1b0e" gpu="true" cpu="true"></fiddle-embed></div> ### See Also @@ -573,7 +483,6 @@ fonts; may be nullptr</td> sk_sp<SkSurface> gpuSurface = SkSurface::MakeFromBackendRenderTarget(context, backEndRenderTarget, kTopLeft_GrSurfaceOrigin, nullptr, nullptr); auto surfaceCanvas = gpuSurface->getCanvas(); - surfaceCanvas->clear(SK_ColorWHITE); surfaceCanvas->drawString("GPU rocks!", 20, 40, paint); sk_sp<SkImage> image(gpuSurface->makeImageSnapshot()); canvas->drawImage(image, 0, 0); @@ -582,7 +491,7 @@ fonts; may be nullptr</td> ### See Also -<a href="#SkSurface_MakeFromBackendTexture">MakeFromBackendTexture</a><sup><a href="#SkSurface_MakeFromBackendTexture_2">[2]</a></sup> <a href="#SkSurface_MakeRenderTarget">MakeRenderTarget</a><sup><a href="#SkSurface_MakeRenderTarget_2">[2]</a></sup><sup><a href="#SkSurface_MakeRenderTarget_3">[3]</a></sup> +<a href="#SkSurface_MakeFromBackendTexture">MakeFromBackendTexture</a> <a href="#SkSurface_MakeRenderTarget">MakeRenderTarget</a><sup><a href="#SkSurface_MakeRenderTarget_2">[2]</a></sup><sup><a href="#SkSurface_MakeRenderTarget_3">[3]</a></sup> --- @@ -596,8 +505,8 @@ static sk_sp<SkSurface> MakeFromBackendRenderTarget(GrContext* context, const SkSurfaceProps* surfaceProps) </pre> -Wraps a GPU-backed buffer into <a href="#Surface">Surface</a>. Caller must ensure render target is -valid for the lifetime of returned <a href="#Surface">Surface</a>. +Wraps a GPU-backed buffer into <a href="#Surface">Surface</a>. Caller must ensure <a href="#SkSurface_MakeFromBackendRenderTarget_2_backendRenderTarget">backendRenderTarget</a> +is valid for the lifetime of returned <a href="#Surface">Surface</a>. <a href="#Surface">Surface</a> is returned if all parameters are valid. <a href="#SkSurface_MakeFromBackendRenderTarget_2_backendRenderTarget">backendRenderTarget</a> is valid if its pixel configuration agrees with <a href="#SkSurface_MakeFromBackendRenderTarget_2_colorSpace">colorSpace</a> and <a href="#SkSurface_MakeFromBackendRenderTarget_2_context">context</a>; for instance, if @@ -648,7 +557,6 @@ fonts; may be nullptr</td> backEndRenderTarget, kTopLeft_GrSurfaceOrigin, kRGBA_8888_SkColorType, nullptr, nullptr); auto surfaceCanvas = gpuSurface->getCanvas(); - surfaceCanvas->clear(SK_ColorWHITE); surfaceCanvas->drawString("GPU rocks!", 20, 40, paint); sk_sp<SkImage> image(gpuSurface->makeImageSnapshot()); canvas->drawImage(image, 0, 0); @@ -657,7 +565,7 @@ fonts; may be nullptr</td> ### See Also -<a href="#SkSurface_MakeFromBackendTexture">MakeFromBackendTexture</a><sup><a href="#SkSurface_MakeFromBackendTexture_2">[2]</a></sup> <a href="#SkSurface_MakeRenderTarget">MakeRenderTarget</a><sup><a href="#SkSurface_MakeRenderTarget_2">[2]</a></sup><sup><a href="#SkSurface_MakeRenderTarget_3">[3]</a></sup> +<a href="#SkSurface_MakeFromBackendTexture">MakeFromBackendTexture</a> <a href="#SkSurface_MakeRenderTarget">MakeRenderTarget</a><sup><a href="#SkSurface_MakeRenderTarget_2">[2]</a></sup><sup><a href="#SkSurface_MakeRenderTarget_3">[3]</a></sup> --- @@ -668,15 +576,22 @@ fonts; may be nullptr</td> static sk_sp<SkSurface> MakeFromBackendTextureAsRenderTarget(GrContext* context, const GrBackendTexture& backendTexture, GrSurfaceOrigin origin, int sampleCnt, - sk_sp<SkColorSpace> colorSpace, + SkColorType colorType, sk_sp<SkColorSpace> colorSpace, const SkSurfaceProps* surfaceProps) </pre> -Used to wrap a GPU-backed texture as a <a href="#SkSurface">SkSurface</a>. Skia will treat the texture as -a rendering target only, but unlike NewFromBackendRenderTarget, Skia will manage and own -the associated render target objects (but not the provided texture). Skia will not assume -ownership of the texture and the client must ensure the texture is valid for the lifetime -of the <a href="#SkSurface">SkSurface</a>. +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>. + +<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_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>. If SK_SUPPORT_GPU is defined as zero, has no effect and returns nullptr. @@ -690,81 +605,14 @@ texture residing on GPU</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> - </tr> <tr> <td><a name="SkSurface_MakeFromBackendTextureAsRenderTarget_colorSpace"> <code><strong>colorSpace </strong></code> </a></td> <td> -range of colors</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> - </tr> -</table> - -### Return Value - -<a href="#Surface">Surface</a> if all parameters are valid; otherwise, nullptr - -### Example - -<pre style="padding: 1em 1em 1em 1em; font-size: 13px width: 62.5em; background-color: #f0f0f0"> -SkPaint paint; - paint.setTextSize(32); - GrContext* context = canvas->getGrContext(); - if (!context) { - canvas->drawString("GPU only!", 20, 40, paint); - return; - } - sk_sp<SkSurface> gpuSurface = SkSurface::MakeFromBackendTextureAsRenderTarget( - context, backEndTextureRenderTarget, kTopLeft_GrSurfaceOrigin, 0, - nullptr, nullptr); - auto surfaceCanvas = gpuSurface->getCanvas(); - surfaceCanvas->clear(SK_ColorWHITE); - surfaceCanvas->drawString("GPU rocks!", 20, 40, paint); - sk_sp<SkImage> image(gpuSurface->makeImageSnapshot()); - canvas->drawImage(image, 0, 0); - -</pre> - -### See Also - -<a href="#SkSurface_MakeFromBackendRenderTarget">MakeFromBackendRenderTarget</a><sup><a href="#SkSurface_MakeFromBackendRenderTarget_2">[2]</a></sup> <a href="#SkSurface_MakeRenderTarget">MakeRenderTarget</a><sup><a href="#SkSurface_MakeRenderTarget_2">[2]</a></sup><sup><a href="#SkSurface_MakeRenderTarget_3">[3]</a></sup> - ---- - -<a name="SkSurface_MakeFromBackendTextureAsRenderTarget_2"></a> - -<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0"> -static sk_sp<SkSurface> MakeFromBackendTextureAsRenderTarget(GrContext* context, - const GrBackendTexture& backendTexture, - GrSurfaceOrigin origin, int sampleCnt, - SkColorType colorType, sk_sp<SkColorSpace> colorSpace, - const SkSurfaceProps* surfaceProps) -</pre> - -Used to wrap a GPU-backed texture as a <a href="#SkSurface">SkSurface</a>. Skia will treat the texture as -a rendering target only, but unlike NewFromBackendRenderTarget, Skia will manage and own -the associated render target objects (but not the provided texture). Skia will not assume -ownership of the texture and the client must ensure the texture is valid for the lifetime -of the <a href="#SkSurface">SkSurface</a>. - -If SK_SUPPORT_GPU is defined as zero, has no effect and returns nullptr. - -### Parameters - -<table> <tr> <td><a name="SkSurface_MakeFromBackendTextureAsRenderTarget_2_context"> <code><strong>context </strong></code> </a></td> <td> -<a href="undocumented#GPU_Context">GPU Context</a></td> - </tr> <tr> <td><a name="SkSurface_MakeFromBackendTextureAsRenderTarget_2_backendTexture"> <code><strong>backendTexture </strong></code> </a></td> <td> -texture residing on GPU</td> - </tr> <tr> <td><a name="SkSurface_MakeFromBackendTextureAsRenderTarget_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> - </tr> <tr> <td><a name="SkSurface_MakeFromBackendTextureAsRenderTarget_2_sampleCnt"> <code><strong>sampleCnt </strong></code> </a></td> <td> -samples per pixel, or 0 to disable full scene anti-aliasing</td> - </tr> <tr> <td><a name="SkSurface_MakeFromBackendTextureAsRenderTarget_2_colorType"> <code><strong>colorType </strong></code> </a></td> <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_2_colorSpace"> <code><strong>colorSpace </strong></code> </a></td> <td> -range of colors</td> - </tr> <tr> <td><a name="SkSurface_MakeFromBackendTextureAsRenderTarget_2_surfaceProps"> <code><strong>surfaceProps </strong></code> </a></td> <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> </tr> @@ -776,24 +624,7 @@ fonts; may be nullptr</td> ### Example -<pre style="padding: 1em 1em 1em 1em; font-size: 13px width: 62.5em; background-color: #f0f0f0"> -SkPaint paint; - paint.setTextSize(32); - GrContext* context = canvas->getGrContext(); - if (!context) { - canvas->drawString("GPU only!", 20, 40, paint); - return; - } - sk_sp<SkSurface> gpuSurface = SkSurface::MakeFromBackendTextureAsRenderTarget( - context, backEndTextureRenderTarget, kTopLeft_GrSurfaceOrigin, 0, - kRGBA_8888_SkColorType, nullptr, nullptr); - auto surfaceCanvas = gpuSurface->getCanvas(); - surfaceCanvas->clear(SK_ColorWHITE); - surfaceCanvas->drawString("GPU rocks!", 20, 40, paint); - sk_sp<SkImage> image(gpuSurface->makeImageSnapshot()); - canvas->drawImage(image, 0, 0); - -</pre> +<div><fiddle-embed name="5e87093b9cbe95124ae14cbe77091eb7" gpu="true"></fiddle-embed></div> ### See Also @@ -860,7 +691,7 @@ hint that <a href="#Surface">Surface</a> will host Mip_Map images</td> ### See Also -<a href="#SkSurface_MakeFromBackendRenderTarget">MakeFromBackendRenderTarget</a><sup><a href="#SkSurface_MakeFromBackendRenderTarget_2">[2]</a></sup> <a href="#SkSurface_MakeFromBackendTextureAsRenderTarget">MakeFromBackendTextureAsRenderTarget</a><sup><a href="#SkSurface_MakeFromBackendTextureAsRenderTarget_2">[2]</a></sup> +<a href="#SkSurface_MakeFromBackendRenderTarget">MakeFromBackendRenderTarget</a><sup><a href="#SkSurface_MakeFromBackendRenderTarget_2">[2]</a></sup> <a href="#SkSurface_MakeFromBackendTextureAsRenderTarget">MakeFromBackendTextureAsRenderTarget</a> --- @@ -916,7 +747,7 @@ or red green blue. ### See Also -<a href="#SkSurface_MakeFromBackendRenderTarget">MakeFromBackendRenderTarget</a><sup><a href="#SkSurface_MakeFromBackendRenderTarget_2">[2]</a></sup> <a href="#SkSurface_MakeFromBackendTextureAsRenderTarget">MakeFromBackendTextureAsRenderTarget</a><sup><a href="#SkSurface_MakeFromBackendTextureAsRenderTarget_2">[2]</a></sup> +<a href="#SkSurface_MakeFromBackendRenderTarget">MakeFromBackendRenderTarget</a><sup><a href="#SkSurface_MakeFromBackendRenderTarget_2">[2]</a></sup> <a href="#SkSurface_MakeFromBackendTextureAsRenderTarget">MakeFromBackendTextureAsRenderTarget</a> --- @@ -957,7 +788,7 @@ of <a href="undocumented#Raster_Surface">Raster Surface</a>; width, or height, o ### See Also -<a href="#SkSurface_MakeFromBackendRenderTarget">MakeFromBackendRenderTarget</a><sup><a href="#SkSurface_MakeFromBackendRenderTarget_2">[2]</a></sup> <a href="#SkSurface_MakeFromBackendTextureAsRenderTarget">MakeFromBackendTextureAsRenderTarget</a><sup><a href="#SkSurface_MakeFromBackendTextureAsRenderTarget_2">[2]</a></sup> +<a href="#SkSurface_MakeFromBackendRenderTarget">MakeFromBackendRenderTarget</a><sup><a href="#SkSurface_MakeFromBackendRenderTarget_2">[2]</a></sup> <a href="#SkSurface_MakeFromBackendTextureAsRenderTarget">MakeFromBackendTextureAsRenderTarget</a> --- diff --git a/site/user/api/catalog.htm b/site/user/api/catalog.htm index 6906dc95c9..0399831702 100644 --- a/site/user/api/catalog.htm +++ b/site/user/api/catalog.htm @@ -740,7 +740,7 @@ "hash": "687d833b042fb018f8948764e73a37b1", "file": "SkIRect_Reference", "name": "SkIRect::centerY", - "stdout": "left: 1073741824 right: 1073741826 centerX: -1073741823 safe mid x: 1073741825\\n" + "stdout": "left: 1073741824 right: 1073741826 centerX: 1073741825 safe mid x: 1073741825\\n" }, "SkIRect_contains": { "code": "void draw(SkCanvas* canvas) {\n SkIRect rect = { 30, 50, 40, 60 };\n SkIPoint pts[] = { { 30, 50}, { 40, 50}, { 30, 60} };\n for (auto pt : pts) {\n SkDebugf(\"rect: (%d, %d, %d, %d) %s (%d, %d)\\n\",\n rect.left(), rect.top(), rect.right(), rect.bottom(),\n rect.contains(pt.x(), pt.y()) ? \"contains\" : \"does not contain\", pt.x(), pt.y());\n }\n}", @@ -1015,6 +1015,13 @@ "name": "SkIRect::y()", "stdout": "unsorted.fTop: 25 unsorted.y(): 25\\nsorted.fTop: 5 sorted.y(): 5\\n" }, + "SkImageInfo_ByteSizeOverflowed": { + "code": "void draw(SkCanvas* canvas) {\n SkImageInfo info = SkImageInfo::MakeN32Premul(2, 1000000000);\n for (size_t rowBytes = 100000000; rowBytes < 10000000000000LL; rowBytes *= 10) {\n const size_t size = info.computeByteSize(rowBytes);\n SkDebugf(\"rowBytes:%llu size:%llu overflowed:%s\\n\", rowBytes, size,\n SkImageInfo::ByteSizeOverflowed(size) ? \"true\" : \"false\");\n }\n}", + "hash": "6a63dfdd62ab77ff57783af8c33d7b78", + "file": "SkImageInfo_Reference", + "name": "SkImageInfo::ByteSizeOverflowed", + "stdout": "rowBytes:100000000 size:99999999900000008 overflowed:false\\nrowBytes:1000000000 size:999999999000000008 overflowed:false\\nrowBytes:10000000000 size:9999999990000000008 overflowed:false\\nrowBytes:100000000000 size:18446744073709551615 overflowed:true\\nrowBytes:1000000000000 size:18446744073709551615 overflowed:true\\n" + }, "SkImageInfo_alphaType": { "code": "void draw(SkCanvas* canvas) {\n const char* alphas[] = {\"Unknown\", \"Opaque\", \"Premul\", \"Unpremul\"};\n SkImageInfo info = SkImageInfo::MakeA8(16, 32);\n SkDebugf(\"alpha type: k\" \"%s\" \"_SkAlphaType\\n\", alphas[info.alphaType()]);\n}", "hash": "5c1d2499a4056b6cff38c1cf924158a1", @@ -1050,6 +1057,13 @@ "name": "SkImageInfo::dimensions()", "stdout": "dimensionsAsBounds == bounds\\n" }, + "SkImageInfo_equal1_operator": { + "code": "void draw(SkCanvas* canvas) {\n SkImageInfo info1 = SkImageInfo::Make(10, 20, kGray_8_SkColorType, kPremul_SkAlphaType);\n SkImageInfo info2 = SkImageInfo::Make(20, 10, kAlpha_8_SkColorType, kUnpremul_SkAlphaType);\n SkDebugf(\"info1 %c= info2\\n\", info1 == info2 ? '=' : '!');\n info2 = info2.makeWH(10, 20);\n SkDebugf(\"info1 %c= info2\\n\", info1 == info2 ? '=' : '!');\n info2 = info2.makeColorType(kGray_8_SkColorType);\n SkDebugf(\"info1 %c= info2\\n\", info1 == info2 ? '=' : '!');\n info2 = info2.makeAlphaType(kPremul_SkAlphaType);\n SkDebugf(\"info1 %c= info2\\n\", info1 == info2 ? '=' : '!');\n}", + "hash": "53c212c4f2449df0b0eedbc6227b6ab7", + "file": "SkImageInfo_Reference", + "name": "SkImageInfo::operator==(const SkImageInfo& other)_const", + "stdout": "info1 != info2\\ninfo1 != info2\\ninfo1 != info2\\ninfo1 == info2\\n" + }, "SkImageInfo_isEmpty": { "code": "void draw(SkCanvas* canvas) {\n for (int width : { 0, 2 } ) {\n for (int height : { 0, 2 } ) {\n SkImageInfo imageInfo= SkImageInfo::MakeA8(width, height);\n SkDebugf(\"width: %d height: %d empty: %s\\n\", width, height,\n imageInfo.isEmpty() ? \"true\" : \"false\");\n }\n }\n}", "hash": "b8757200da5be0b43763cf79feb681a7", @@ -1078,6 +1092,13 @@ "name": "SkImageInfo::minRowBytes64", "stdout": "RGBA_F16 width 16777216 (0x01000000) OK\\nRGBA_F16 width 33554432 (0x02000000) OK\\nRGBA_F16 width 67108864 (0x04000000) OK\\nRGBA_F16 width 134217728 (0x08000000) OK\\nRGBA_F16 width 268435456 (0x10000000) too large\\nRGBA_F16 width 536870912 (0x20000000) too large\\nRGBA_F16 width 1073741824 (0x40000000) too large\\nRGBA_F16 width -2147483648 (0x80000000) too large\\n" }, + "SkImageInfo_notequal1_operator": { + "code": "void draw(SkCanvas* canvas) {\n SkImageInfo info1 = SkImageInfo::Make(10, 20, kGray_8_SkColorType, kPremul_SkAlphaType);\n SkImageInfo info2 = SkImageInfo::Make(20, 10, kAlpha_8_SkColorType, kUnpremul_SkAlphaType);\n SkDebugf(\"info1 %c= info2\\n\", info1 != info2 ? '!' : '=');\n info2 = info2.makeWH(10, 20);\n SkDebugf(\"info1 %c= info2\\n\", info1 != info2 ? '!' : '=');\n info2 = info2.makeColorType(kGray_8_SkColorType);\n SkDebugf(\"info1 %c= info2\\n\", info1 != info2 ? '!' : '=');\n info2 = info2.makeAlphaType(kPremul_SkAlphaType);\n SkDebugf(\"info1 %c= info2\\n\", info1 != info2 ? '!' : '=');\n}", + "hash": "8c039fde0a476ac1aa62bf9de5d61c77", + "file": "SkImageInfo_Reference", + "name": "SkImageInfo::operator!=(const SkImageInfo& other)_const", + "stdout": "info1 != info2\\ninfo1 != info2\\ninfo1 != info2\\ninfo1 == info2\\n" + }, "SkImageInfo_refColorSpace": { "code": "void draw(SkCanvas* canvas) {\n SkImageInfo info1 = SkImageInfo::MakeN32(16, 32, kPremul_SkAlphaType, \n SkColorSpace::MakeSRGBLinear());\n SkImageInfo info2 = SkImageInfo::MakeN32(16, 32, kPremul_SkAlphaType,\n info1.refColorSpace());\n SkColorSpace* colorSpace = info2.colorSpace();\n SkDebugf(\"gammaCloseToSRGB: %s gammaIsLinear: %s isSRGB: %s\\n\",\n colorSpace->gammaCloseToSRGB() ? \"true\" : \"false\",\n colorSpace->gammaIsLinear() ? \"true\" : \"false\",\n colorSpace->isSRGB() ? \"true\" : \"false\");\n}", "hash": "f36afcc295602f5c8c4c2c2025c25884", @@ -1085,6 +1106,13 @@ "name": "SkImageInfo::refColorSpace", "stdout": "gammaCloseToSRGB: false gammaIsLinear: true isSRGB: false\\n" }, + "SkImageInfo_reset": { + "code": "void draw(SkCanvas* canvas) {\n SkImageInfo info = SkImageInfo::MakeN32Premul(16, 8);\n SkImageInfo copy = info;\n SkDebugf(\"info %c= copy\\n\", info == copy ? '=' : '!');\n copy.reset();\n SkDebugf(\"info %c= reset copy\\n\", info == copy ? '=' : '!');\n SkDebugf(\"SkImageInfo() %c= reset copy\\n\", SkImageInfo() == copy ? '=' : '!');\n}", + "hash": "ab7e73786805c936de386b6c1ebe1f13", + "file": "SkImageInfo_Reference", + "name": "SkImageInfo::reset()", + "stdout": "info == copy\\ninfo != reset copy\\nSkImageInfo() == reset copy\\n" + }, "SkImageInfo_shiftPerPixel": { "code": "void draw(SkCanvas* canvas) {\n const char* colors[] = {\"Unknown\", \"Alpha_8\", \"RGB_565\", \"ARGB_4444\", \"RGBA_8888\", \"RGB_888x\",\n \"BGRA_8888\", \"RGBA_1010102\", \"RGB_101010x\", \"Gray_8\", \"RGBA_F16\"};\n for (SkColorType colorType : {\n kUnknown_SkColorType, kAlpha_8_SkColorType, kRGB_565_SkColorType,\n kARGB_4444_SkColorType, kRGBA_8888_SkColorType, kRGB_888x_SkColorType,\n kBGRA_8888_SkColorType, kRGBA_1010102_SkColorType, kRGB_101010x_SkColorType,\n kGray_8_SkColorType, kRGBA_F16_SkColorType\n } ) {\n SkImageInfo info = SkImageInfo::Make(1, 1, colorType, kOpaque_SkAlphaType);\n SkDebugf(\"color: k\" \"%s\" \"_SkColorType\" \"%*s\" \"shiftPerPixel: %d\\n\",\n colors[colorType], 14 - strlen(colors[colorType]), \" \",\n info.shiftPerPixel());\n }\n}", "hash": "e47b911f94fc629f756a829e523a2a89", @@ -1092,6 +1120,13 @@ "name": "SkImageInfo::shiftPerPixel", "stdout": "color: kUnknown_SkColorType shiftPerPixel: 0\\ncolor: kAlpha_8_SkColorType shiftPerPixel: 0\\ncolor: kRGB_565_SkColorType shiftPerPixel: 1\\ncolor: kARGB_4444_SkColorType shiftPerPixel: 1\\ncolor: kRGBA_8888_SkColorType shiftPerPixel: 2\\ncolor: kRGB_888x_SkColorType shiftPerPixel: 2\\ncolor: kBGRA_8888_SkColorType shiftPerPixel: 2\\ncolor: kRGBA_1010102_SkColorType shiftPerPixel: 2\\ncolor: kRGB_101010x_SkColorType shiftPerPixel: 2\\ncolor: kGray_8_SkColorType shiftPerPixel: 0\\ncolor: kRGBA_F16_SkColorType shiftPerPixel: 3\\n" }, + "SkImageInfo_validRowBytes": { + "code": "void draw(SkCanvas* canvas) {\n SkImageInfo info = SkImageInfo::MakeN32Premul(16, 8);\n for (size_t rowBytes = 60; rowBytes < 72; rowBytes += sizeof(SkPMColor)) {\n SkDebugf(\"validRowBytes(%llu): %s\\n\", rowBytes, info.validRowBytes(rowBytes) ?\n \"true\" : \"false\");\n }\n}", + "hash": "c6b0f6a3f493cb08d9abcdefe12de245", + "file": "SkImageInfo_Reference", + "name": "SkImageInfo::validRowBytes", + "stdout": "validRowBytes(60): false\\nvalidRowBytes(64): true\\nvalidRowBytes(68): true\\n" + }, "SkImage_MakeFromRaster": { "code": "static void releaseProc(const void* pixels, SkImage::ReleaseContext context) {\n int* countPtr = static_cast<int*>(context);\n *countPtr += 1;\n}\n\nvoid draw(SkCanvas* canvas) {\n SkColor color = 0;\n SkPixmap pixmap(SkImageInfo::MakeN32(1, 1, kPremul_SkAlphaType), &color, 4);\n int releaseCount = 0;\n sk_sp<SkImage> image(SkImage::MakeFromRaster(pixmap, releaseProc, &releaseCount));\n SkDebugf(\"before reset: %d\\n\", releaseCount);\n image.reset();\n SkDebugf(\"after reset: %d\\n\", releaseCount);\n}\n", "hash": "275356b65d18c8868f4434137350cddc", @@ -2308,7 +2343,7 @@ "hash": "9c6edd836c573a0fd232d2b8aa11a678", "file": "SkPath_Reference", "name": "SkPath::readFromMemory", - "stdout": "length = 60; returned by readFromMemory = 0\\nlength = 68; returned by readFromMemory = 64\\n" + "stdout": "length = 32; returned by readFromMemory = 0\\nlength = 40; returned by readFromMemory = 36\\n" }, "SkPath_reset": { "code": "void draw(SkCanvas* canvas) {\n SkPath path1, path2;\n path1.setFillType(SkPath::kInverseWinding_FillType);\n path1.addRect({10, 20, 30, 40});\n SkDebugf(\"path1 %c= path2\\n\", path1 == path2 ? '=' : '!');\n path1.reset();\n SkDebugf(\"path1 %c= path2\\n\", path1 == path2 ? '=' : '!');\n}", @@ -4883,14 +4918,6 @@ "file": "SkIPoint_Reference", "name": "SkIPoint::operator-=(const SkIVector& v)" }, - "SkImageInfo_ByteSizeOverflowed": { - "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}", - "width": 256, - "height": 256, - "hash": "882e8e0103048009a25cfc20400492f7", - "file": "SkImageInfo_Reference", - "name": "SkImageInfo::ByteSizeOverflowed" -}, "SkImageInfo_Make": { "code": "void draw(SkCanvas* canvas) {\n uint8_t storage[][5] = {{ 0xCA, 0xDA, 0xCA, 0xC9, 0xA3 },\n { 0xAC, 0xA8, 0x89, 0xA7, 0x87 },\n { 0x9B, 0xB5, 0xE5, 0x95, 0x46 },\n { 0x90, 0x81, 0xC5, 0x71, 0x33 },\n { 0x75, 0x55, 0x44, 0x40, 0x30 }};\n SkImageInfo imageInfo = SkImageInfo::Make(5, 5, kGray_8_SkColorType, kOpaque_SkAlphaType);\n SkPixmap pixmap(imageInfo, storage[0], sizeof(storage) / 5);\n SkBitmap bitmap;\n bitmap.installPixels(pixmap);\n canvas->scale(8, 8);\n canvas->drawBitmap(bitmap, 0, 0);\n}", "width": 256, @@ -4918,16 +4945,16 @@ "SkImageInfo_MakeN32Premul": { "code": "void draw(SkCanvas* canvas) {\n SkBitmap bitmap;\n bitmap.allocPixels(SkImageInfo::MakeN32Premul(18, 18));\n SkCanvas offscreen(bitmap);\n offscreen.clear(SK_ColorWHITE);\n SkPaint paint;\n paint.setAntiAlias(true);\n paint.setTextSize(15);\n offscreen.drawString(\"\\xF0\\x9F\\x98\\xB8\", 1, 15, paint);\n canvas->scale(6, 6);\n canvas->drawBitmap(bitmap, 0, 0);\n}", "width": 256, - "height": 256, - "hash": "077084c05471d6bbd54338d92ea799e3", + "height": 128, + "hash": "525650a67e19fdd8ca9f72b7eda65174", "file": "SkImageInfo_Reference", "name": "SkImageInfo::MakeN32Premul" }, "SkImageInfo_MakeN32Premul_2": { "code": "void draw(SkCanvas* canvas) {\n SkBitmap bitmap;\n bitmap.allocPixels(SkImageInfo::MakeN32Premul({18, 18}));\n SkCanvas offscreen(bitmap);\n offscreen.clear(SK_ColorWHITE);\n SkPaint paint;\n paint.setAntiAlias(true);\n paint.setTextSize(15);\n offscreen.drawString(\"\\xF0\\x9F\\x98\\xB9\", 1, 15, paint);\n canvas->scale(6, 6);\n canvas->drawBitmap(bitmap, 0, 0);\n}", "width": 256, - "height": 256, - "hash": "897f42eb3b27d749ec792435fb389a07", + "height": 128, + "hash": "b9026d7f39029756bd7cab9542c64f4e", "file": "SkImageInfo_Reference", "name": "SkImageInfo::MakeN32Premul_2" }, @@ -4964,26 +4991,26 @@ "name": "SkImageInfo::bounds()" }, "SkImageInfo_computeByteSize": { - "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}", + "code": "void draw(SkCanvas* canvas) {\n SkImageInfo info = SkImageInfo::MakeN32Premul(2, 2);\n const size_t size = info.computeByteSize(100000);\n SkAutoTMalloc<SkPMColor> storage(size);\n SkPMColor* pixels = storage.get();\n SkBitmap bitmap;\n bitmap.setInfo(info);\n bitmap.setPixels(pixels);\n bitmap.eraseColor(SK_ColorRED);\n canvas->scale(50, 50);\n canvas->rotate(8);\n canvas->drawBitmap(bitmap, 2, 0);\n}", "width": 256, - "height": 256, - "hash": "882e8e0103048009a25cfc20400492f7", + "height": 130, + "hash": "9def507d2295f7051effd0c83bb04436", "file": "SkImageInfo_Reference", "name": "SkImageInfo::computeByteSize" }, "SkImageInfo_computeMinByteSize": { - "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}", + "code": "void draw(SkCanvas* canvas) {\n SkImageInfo info = SkImageInfo::MakeN32Premul(2, 2);\n const size_t size = info.computeMinByteSize();\n SkAutoTMalloc<SkPMColor> storage(size);\n SkPMColor* pixels = storage.get();\n SkBitmap bitmap;\n bitmap.setInfo(info);\n bitmap.setPixels(pixels);\n bitmap.eraseColor(SK_ColorRED);\n canvas->scale(50, 50);\n canvas->rotate(8);\n canvas->drawBitmap(bitmap, 2, 0);\n}", "width": 256, - "height": 256, - "hash": "882e8e0103048009a25cfc20400492f7", + "height": 130, + "hash": "fc18640fdde437cb35338aed7c68d399", "file": "SkImageInfo_Reference", "name": "SkImageInfo::computeMinByteSize" }, "SkImageInfo_computeOffset": { "code": "void draw(SkCanvas* canvas) {\n uint8_t pixels[][12] = { { 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00},\n { 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00},\n { 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00},\n { 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF},\n { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},\n { 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00},\n { 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00},\n { 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00} };\n SkImageInfo imageInfo = SkImageInfo::MakeA8(8, 8);\n SkBitmap bitmap;\n bitmap.installPixels(imageInfo, (void*) pixels, sizeof(pixels[0]));\n SkPaint paint;\n paint.setColor(SK_ColorRED);\n canvas->drawBitmapRect(bitmap, SkRect::MakeWH(8, 8), SkRect::MakeWH(32, 32), &paint);\n size_t offset = imageInfo.computeOffset(2, 3, sizeof(pixels[0]));\n pixels[0][offset] = 0x7F;\n offset = imageInfo.computeOffset(5, 3, sizeof(pixels[0]));\n pixels[0][offset] = 0x7F;\n bitmap.installPixels(imageInfo, (void*) pixels, sizeof(pixels[0]));\n canvas->drawBitmapRect(bitmap, SkRect::MakeWH(8, 8), SkRect::MakeWH(128, 128), &paint);\n}", "width": 256, - "height": 256, - "hash": "0a1ddddfe4f01c025e893ae826cb4ece", + "height": 128, + "hash": "818e4e1191e39d2a642902cbf253b399", "file": "SkImageInfo_Reference", "name": "SkImageInfo::computeOffset" }, @@ -4995,22 +5022,6 @@ "file": "SkImageInfo_Reference", "name": "SkImageInfo::SkImageInfo()" }, - "SkImageInfo_equal1_operator": { - "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}", - "width": 256, - "height": 256, - "hash": "882e8e0103048009a25cfc20400492f7", - "file": "SkImageInfo_Reference", - "name": "SkImageInfo::operator==(const SkImageInfo& other)_const" -}, - "SkImageInfo_flatten": { - "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}", - "width": 256, - "height": 256, - "hash": "882e8e0103048009a25cfc20400492f7", - "file": "SkImageInfo_Reference", - "name": "SkImageInfo::flatten()" -}, "SkImageInfo_gammaCloseToSRGB": { "code": "void draw(SkCanvas* canvas) {\n const int width = 256;\n const int height = 64;\n auto drawLabel = [=](const char* what, bool closeToSRGB) -> void {\n SkString string;\n string.printf(\"%s gamma is %s\" \"close to sRGB\", what, closeToSRGB ? \"\" : \"not \");\n SkPaint paint;\n paint.setAntiAlias(true);\n paint.setTextAlign(SkPaint::kCenter_Align);\n canvas->drawString(string, width / 2, 56, paint);\n };\n SkColor gradColors[] = { 0xFFFF7F00, 0xFF00FF7F, 0xFF0000FF, 0xFF7F7FFF };\n SkPoint gradPoints[] = { { 0, 0 }, { width, 0 }, { width * 2, 0 }, { width * 3, 0 } };\n SkPaint gradPaint;\n gradPaint.setShader(SkGradientShader::MakeLinear(gradPoints, gradColors, nullptr,\n SK_ARRAY_COUNT(gradColors), SkShader::kClamp_TileMode));\n canvas->drawRect(SkRect::MakeWH(width, height), gradPaint);\n drawLabel(\"canvas\", canvas->imageInfo().gammaCloseToSRGB());\n SkBitmap bitmap;\n SkImageInfo offscreenInfo = SkImageInfo::MakeS32(width, height, kPremul_SkAlphaType);\n bitmap.allocPixels(offscreenInfo);\n SkCanvas sRGBOffscreen(bitmap);\n sRGBOffscreen.drawRect(SkRect::MakeWH(width, height), gradPaint);\n canvas->translate(0, 80);\n canvas->drawBitmap(bitmap, 0, 0);\n drawLabel(\"offscreen\", offscreenInfo.gammaCloseToSRGB());\n}", "width": 256, @@ -5059,46 +5070,6 @@ "file": "SkImageInfo_Reference", "name": "SkImageInfo::makeWH" }, - "SkImageInfo_notequal1_operator": { - "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}", - "width": 256, - "height": 256, - "hash": "882e8e0103048009a25cfc20400492f7", - "file": "SkImageInfo_Reference", - "name": "SkImageInfo::operator!=(const SkImageInfo& other)_const" -}, - "SkImageInfo_reset": { - "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}", - "width": 256, - "height": 256, - "hash": "882e8e0103048009a25cfc20400492f7", - "file": "SkImageInfo_Reference", - "name": "SkImageInfo::reset()" -}, - "SkImageInfo_unflatten": { - "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}", - "width": 256, - "height": 256, - "hash": "882e8e0103048009a25cfc20400492f7", - "file": "SkImageInfo_Reference", - "name": "SkImageInfo::unflatten()" -}, - "SkImageInfo_validRowBytes": { - "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}", - "width": 256, - "height": 256, - "hash": "882e8e0103048009a25cfc20400492f7", - "file": "SkImageInfo_Reference", - "name": "SkImageInfo::validRowBytes" -}, - "SkImageInfo_validate": { - "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}", - "width": 256, - "height": 256, - "hash": "882e8e0103048009a25cfc20400492f7", - "file": "SkImageInfo_Reference", - "name": "SkImageInfo::validate()" -}, "SkImageInfo_width": { "code": "void draw(SkCanvas* canvas) {\n canvas->translate(10, 10);\n canvas->drawBitmap(source, 0, 0);\n SkImageInfo imageInfo = source.info();\n canvas->translate(0, imageInfo.height());\n SkPaint paint;\n paint.setTextAlign(SkPaint::kCenter_Align);\n canvas->drawLine(0, 10, imageInfo.width(), 10, paint);\n canvas->drawString(\"width\", imageInfo.width() / 2, 25, paint);\n}", "width": 256, @@ -7043,6 +7014,22 @@ "file": "SkSurface_Reference", "name": "SkSurface::BackendHandleAccess" }, + "SkSurface_MakeFromBackendTexture": { + "code": "void draw(SkCanvas* canvas) {\n SkPaint paint;\n paint.setTextSize(32);\n GrContext* context = canvas->getGrContext();\n if (!context) {\n canvas->drawString(\"GPU only!\", 20, 40, paint);\n return;\n }\n sk_sp<SkSurface> gpuSurface = SkSurface::MakeFromBackendTexture(context,\n backEndTexture, kTopLeft_GrSurfaceOrigin, 0,\n kRGBA_8888_SkColorType, nullptr, nullptr);\n auto surfaceCanvas = gpuSurface->getCanvas();\n surfaceCanvas->drawString(\"GPU rocks!\", 20, 40, paint);\n sk_sp<SkImage> image(gpuSurface->makeImageSnapshot());\n canvas->drawImage(image, 0, 0);\n}", + "width": 256, + "height": 256, + "hash": "d3aec071998f871809f515e58abb1b0e", + "file": "SkSurface_Reference", + "name": "SkSurface::MakeFromBackendTexture" +}, + "SkSurface_MakeFromBackendTextureAsRenderTarget": { + "code": "void draw(SkCanvas* canvas) {\n SkPaint paint;\n paint.setTextSize(32);\n GrContext* context = canvas->getGrContext();\n if (!context) {\n canvas->drawString(\"GPU only!\", 20, 40, paint);\n return;\n }\n sk_sp<SkSurface> gpuSurface = SkSurface::MakeFromBackendTextureAsRenderTarget(\n context, backEndTexture, kTopLeft_GrSurfaceOrigin, 0,\n kRGBA_8888_SkColorType, nullptr, nullptr);\n auto surfaceCanvas = gpuSurface->getCanvas();\n surfaceCanvas->drawString(\"GPU rocks!\", 20, 40, paint);\n sk_sp<SkImage> image(gpuSurface->makeImageSnapshot());\n canvas->drawImage(image, 0, 0);\n}", + "width": 256, + "height": 256, + "hash": "5e87093b9cbe95124ae14cbe77091eb7", + "file": "SkSurface_Reference", + "name": "SkSurface::MakeFromBackendTextureAsRenderTarget" +}, "SkSurface_MakeRenderTarget": { "code": "void draw(SkCanvas* canvas) {\n SkPaint paint;\n paint.setTextSize(32);\n GrContext* context = canvas->getGrContext();\n if (!context) {\n canvas->drawString(\"GPU only!\", 20, 40, paint);\n return;\n }\n SkImageInfo info = SkImageInfo::MakeN32(256, 64, kOpaque_SkAlphaType);\n for (auto surfaceOrigin : { kTopLeft_GrSurfaceOrigin, kBottomLeft_GrSurfaceOrigin } ) {\n auto gpuSurface(SkSurface::MakeRenderTarget(context, SkBudgeted::kNo, info, 0,\n surfaceOrigin, nullptr));\n auto surfaceCanvas = gpuSurface->getCanvas();\n surfaceCanvas->clear(SK_ColorWHITE);\n surfaceCanvas->drawString(\"GPU rocks!\", 20, 40, paint);\n sk_sp<SkImage> image(gpuSurface->makeImageSnapshot());\n canvas->drawImage(image, 0, 0);\n canvas->translate(0, 128);\n }\n}", "width": 256, @@ -7178,14 +7165,6 @@ "hash": "882e8e0103048009a25cfc20400492f7", "file": "SkSurface_Reference", "name": "SkSurface::writePixels_2" -}, - "SkYUVColorSpace": { - "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}", - "width": 256, - "height": 256, - "hash": "882e8e0103048009a25cfc20400492f7", - "file": "SkImageInfo_Reference", - "name": "SkYUVColorSpace" } } var canvas diff --git a/site/user/api/undocumented.md b/site/user/api/undocumented.md index 86aae54dbe..c667925ea7 100644 --- a/site/user/api/undocumented.md +++ b/site/user/api/undocumented.md @@ -32,7 +32,7 @@ undocumented <td><a name="SkBlendMode_kPlus"> <code><strong>SkBlendMode::kPlus </strong></code> </a></td><td>12</td><td></td> </tr> -</table> + # <a name="Circle"></a> Circle @@ -50,7 +50,7 @@ undocumented <td><a name="SkClipOp_kIntersect"> <code><strong>SkClipOp::kIntersect </strong></code> </a></td><td>1</td><td></td> </tr> -</table> + # <a name="Color"></a> Color @@ -181,6 +181,15 @@ bool gammaCloseToSRGB() const --- +<a name="SkColorSpace_Equals"></a> +## Equals + +<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0"> +static bool Equals(const SkColorSpace* src, const SkColorSpace* dst) +</pre> + +--- + ## <a name="SkTransferFunctionBehavior"></a> Enum SkTransferFunctionBehavior ### Constants @@ -193,7 +202,7 @@ bool gammaCloseToSRGB() const <td><a name="SkTransferFunctionBehavior_kIgnore"> <code><strong>SkTransferFunctionBehavior::kIgnore </strong></code> </a></td><td>1</td><td></td> </tr> -</table> + # <a name="Core_Graphics"></a> Core Graphics @@ -329,7 +338,7 @@ void draw(SkCanvas*, const SkMatrix* = NULL) <td><a name="SkEncodedImageFormat_kHEIF"> <code><strong>SkEncodedImageFormat::kHEIF </strong></code> </a></td><td>12</td><td></td> </tr> -</table> + # <a name="Filter_Quality"></a> Filter Quality @@ -351,7 +360,7 @@ void draw(SkCanvas*, const SkMatrix* = NULL) <td><a name="kHigh_SkFilterQuality"> <code><strong>kHigh_SkFilterQuality </strong></code> </a></td><td>3</td><td></td> </tr> -</table> + ## <a name="Nearest_Neighbor"></a> Nearest Neighbor @@ -616,7 +625,6 @@ template <typename D, typename S> inline bool SkTFitsIn(S s) <tr> <td><a name="SkPaintDefaults_MiterLimit"> <code><strong>SkPaintDefaults_MiterLimit </strong></code> </a></td><td>4</td><td></td> </tr> -</table> # <a name="Patch"></a> Patch @@ -837,7 +845,7 @@ void dumpHex() const <td><a name="SkShader_kMirror_TileMode"> <code><strong>SkShader::kMirror_TileMode </strong></code> </a></td><td>2</td><td></td> </tr> -</table> + <a name="SkShader_MakeBitmapShader"></a> ## MakeBitmapShader @@ -887,7 +895,7 @@ static sk_sp<SkShader> MakeBitmapShader(const SkBitmap& src, TileMode tmx, </tr> # -Topic</table> +Topic # <a name="Text"></a> Text @@ -919,7 +927,7 @@ Topic</table> <td><a name="kTopLeft_GrSurfaceOrigin"> <code><strong>kTopLeft_GrSurfaceOrigin </strong></code> </a></td><td>1</td><td></td> </tr> -</table> + ## <a name="Budgeted"></a> Budgeted @@ -935,7 +943,7 @@ Topic</table> <td><a name="SkBudgeted_kYes"> <code><strong>SkBudgeted::kYes </strong></code> </a></td><td>1</td><td></td> </tr> -</table> + ## <a name="GrSemaphoresSubmitted"></a> Enum GrSemaphoresSubmitted @@ -949,7 +957,7 @@ Topic</table> <td><a name="GrSemaphoresSubmitted_kYes"> <code><strong>GrSemaphoresSubmitted::kYes </strong></code> </a></td><td>1</td><td></td> </tr> -</table> + # <a name="Unpremultiply"></a> Unpremultiply |