aboutsummaryrefslogtreecommitdiffhomepage
path: root/site
diff options
context:
space:
mode:
authorGravatar Cary Clark <caryclark@skia.org>2018-03-20 15:53:27 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-03-20 20:20:20 +0000
commit06c20f356ddfcf95385c5d5ca9bf4428a7a16b81 (patch)
treec893c7616fc985d9c805e4fd42e63450085f9e59 /site
parent8a05601d0c544acef70b8b5e5f7ebe3f1b1747cf (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.md2
-rw-r--r--site/user/api/SkCanvas_Reference.md6
-rw-r--r--site/user/api/SkIRect_Reference.md2
-rw-r--r--site/user/api/SkImageInfo_Reference.md290
-rw-r--r--site/user/api/SkImage_Reference.md40
-rw-r--r--site/user/api/SkPaint_Reference.md26
-rw-r--r--site/user/api/SkPath_Reference.md4
-rw-r--r--site/user/api/SkSurface_Reference.md239
-rw-r--r--site/user/api/catalog.htm151
-rw-r--r--site/user/api/undocumented.md30
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&lt;SkColorSpace&gt; 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&lt;SkColorSpace&gt; 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>&lt;<a href="#SkImage">SkImage</a>&gt; <a href="#SkImage_MakeFromTexture_3">MakeFromTexture(GrContext* context, const GrBackendTexture& backendTexture, GrSurfaceOrigin origin, SkColorType colorType, SkAlphaType alphaType, sk sp&lt;SkColorSpace&gt; 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&lt;SkColorSpace&gt; 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&lt;SkColorSpace&gt; 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&lt;SkImage&gt; MakeFromYUVTexturesCopy(GrContext* context, SkYUVColorSpace yuvColorSpace,
- const GrBackendTexture yuvTextures[3],
- const SkISize yuvSizes[3],
- GrSurfaceOrigin surfaceOrigin,
- sk_sp&lt;SkColorSpace&gt; 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&lt;SkImage&gt; MakeFromNV12TexturesCopy(GrContext* context, SkYUVColorSpace yuvColorSpace,
- const GrBackendTexture nv12Textures[2],
- const SkISize nv12Sizes[2],
- GrSurfaceOrigin surfaceOrigin,
- sk_sp&lt;SkColorSpace&gt; 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&lt;SkSurface&gt; MakeFromBackendTexture(GrContext* context,
const GrBackendTexture& backendTexture,
GrSurfaceOrigin origin, int sampleCnt,
+ SkColorType colorType,
sk_sp&lt;SkColorSpace&gt; 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&lt;SkSurface&gt; MakeFromBackendTexture(GrContext* context,
- const GrBackendTexture& backendTexture,
- GrSurfaceOrigin origin, int sampleCnt,
- SkColorType colorType,
- sk_sp&lt;SkColorSpace&gt; 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&lt;SkSurface&gt; 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&lt;SkSurface&gt; MakeFromBackendTextureAsRenderTarget(GrContext* context,
const GrBackendTexture& backendTexture,
GrSurfaceOrigin origin, int sampleCnt,
- sk_sp&lt;SkColorSpace&gt; colorSpace,
+ SkColorType colorType, sk_sp&lt;SkColorSpace&gt; 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&lt;SkSurface&gt; MakeFromBackendTextureAsRenderTarget(GrContext* context,
- const GrBackendTexture& backendTexture,
- GrSurfaceOrigin origin, int sampleCnt,
- SkColorType colorType, sk_sp&lt;SkColorSpace&gt; 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 &lt;typename D, typename S&gt; 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&lt;SkShader&gt; 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