aboutsummaryrefslogtreecommitdiffhomepage
path: root/site/user
diff options
context:
space:
mode:
authorGravatar Cary Clark <caryclark@skia.org>2018-04-26 08:32:37 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-04-26 17:11:53 +0000
commitd98f78cd019d96f902197711c5e7e43afec3c3de (patch)
tree376d0bae10124bc51f150a8834c1e54d989d6a7e /site/user
parentba37e5b1c9bd24a86584a3e80347a82175a2403a (diff)
alternative no anonymous enums
Anonymous enums play havoc with documentation; there's no name to refer to. It may be that all enums may either be named or replaced with constexpr without breaking anything. Try replacing all anonymous enums in include/core to see what happens. This names SkCanvas::SaveLayerFlagsSet but leaves SkCanvas::SaveLayerFlags as a uint32_t, to reduce risk as compared to review.skia.org/123584. There's also some chance that external linkage will break if some client refers to anonymous enum in a way that could require its address: see https://stackoverflow.com/questions/22867654/enum-vs-constexpr-for-actual-static-constants-inside-classes (This CL does not require definitions + declarations) Brought bookmaker docs in line with this change. This also tripped over missing code in bookmaker handling constexpr so added that as well. R=reed@google.com,bsalomon@google.com Docs-Preview: https://skia.org/?cl=123920 Docs-Preview: https://skia.org/?cl=123584 Bug: skia:6898 Change-Id: I14a342edcfd59e139ef9e4501f562417c4c60391 Reviewed-on: https://skia-review.googlesource.com/123920 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Cary Clark <caryclark@skia.org>
Diffstat (limited to 'site/user')
-rw-r--r--site/user/api/SkCanvas_Reference.md12
-rw-r--r--site/user/api/SkMatrix_Reference.md44
-rw-r--r--site/user/api/SkPaint_Reference.md34
-rw-r--r--site/user/api/catalog.htm32
4 files changed, 48 insertions, 74 deletions
diff --git a/site/user/api/SkCanvas_Reference.md b/site/user/api/SkCanvas_Reference.md
index a393168962..0ddcb7243b 100644
--- a/site/user/api/SkCanvas_Reference.md
+++ b/site/user/api/SkCanvas_Reference.md
@@ -59,8 +59,8 @@ This approach may be deprecated in the future.
| --- | --- |
| <a href="#SkCanvas_ColorBehavior">ColorBehavior</a> | Android framework only |
| <a href="#SkCanvas_PointMode">PointMode</a> | sets <a href="#SkCanvas_drawPoints">drawPoints</a> options |
+| <a href="#SkCanvas_SaveLayerFlagsSet">SaveLayerFlagsSet</a> | sets <a href="#SkCanvas_SaveLayerRec">SaveLayerRec</a> options |
| <a href="#SkCanvas_SrcRectConstraint">SrcRectConstraint</a> | sets <a href="#SkCanvas_drawImageRect">drawImageRect</a> options |
-| _anonymous | sets <a href="#SkCanvas_SaveLayerRec">SaveLayerRec</a> options |
## <a name="Class_or_Struct"></a> Class or Struct
@@ -1708,14 +1708,17 @@ depth of saved stack
---
-## <a name="SkCanvas__anonymous"></a> Enum SkCanvas::_anonymous
+## <a name="SkCanvas_SaveLayerFlagsSet"></a> Enum SkCanvas::SaveLayerFlagsSet
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- enum {
+ enum <a href="#SkCanvas_SaveLayerFlagsSet">SaveLayerFlagsSet</a> {
<a href="#SkCanvas_kPreserveLCDText_SaveLayerFlag">kPreserveLCDText SaveLayerFlag</a> = 1 << 1,
<a href="#SkCanvas_kInitWithPrevious_SaveLayerFlag">kInitWithPrevious SaveLayerFlag</a> = 1 << 2,
+ <a href="#SkCanvas_kMaskAgainstCoverage_EXPERIMENTAL_DONT_USE_SaveLayerFlag">kMaskAgainstCoverage EXPERIMENTAL DONT USE SaveLayerFlag</a> = 1 << 3,
<a href="#SkCanvas_kDontClipToLayer_Legacy_SaveLayerFlag">kDontClipToLayer Legacy SaveLayerFlag</a> = kDontClipToLayer_PrivateSaveLayerFlag,
};
+
+ typedef uint32_t <a href="#SkCanvas_SaveLayerFlags">SaveLayerFlags</a>;
</pre>
<a href="#SkCanvas_SaveLayerFlags">SaveLayerFlags</a> provides options that may be used in any combination in <a href="#SkCanvas_SaveLayerRec">SaveLayerRec</a>,
@@ -1734,6 +1737,9 @@ defining how <a href="#Layer">Layer</a> allocated by <a href="#SkCanvas_saveLaye
</td>
</tr>
<tr>
+ <td><a name="SkCanvas_kMaskAgainstCoverage_EXPERIMENTAL_DONT_USE_SaveLayerFlag"> <code><strong>SkCanvas::kMaskAgainstCoverage_EXPERIMENTAL_DONT_USE_SaveLayerFlag </strong></code> </a></td><td>8</td><td>Experimental -- don't use</td>
+ </tr>
+ <tr>
<td><a name="SkCanvas_kDontClipToLayer_Legacy_SaveLayerFlag"> <code><strong>SkCanvas::kDontClipToLayer_Legacy_SaveLayerFlag </strong></code> </a></td><td>0x80000000</td><td>soon</td>
</tr>
</table>
diff --git a/site/user/api/SkMatrix_Reference.md b/site/user/api/SkMatrix_Reference.md
index a42edc1a85..6acd4b64a8 100644
--- a/site/user/api/SkMatrix_Reference.md
+++ b/site/user/api/SkMatrix_Reference.md
@@ -121,6 +121,8 @@ improve performance. <a href="#Matrix">Matrix</a> is not thread safe unless <a h
| name | description |
| --- | --- |
+| <a href="#AffineIndex">AffineIndex</a> | affine member indices |
+| <a href="#MemberIndex">MemberIndex</a> | member indices |
| <a href="#Property">Property</a> | values and attributes |
| <a href="#Set">Set</a> | set one or more matrix values |
| <a href="#Transform">Transform</a> | map points with <a href="#Matrix">Matrix</a> |
@@ -792,20 +794,18 @@ Skews are not similar and do not preserve right angles.
---
-## <a name="SkMatrix__anonymous"></a> Enum SkMatrix::_anonymous
+## <a name="MemberIndex"></a> MemberIndex
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- enum {
- <a href="#SkMatrix_kMScaleX">kMScaleX</a>,
- <a href="#SkMatrix_kMSkewX">kMSkewX</a>,
- <a href="#SkMatrix_kMTransX">kMTransX</a>,
- <a href="#SkMatrix_kMSkewY">kMSkewY</a>,
- <a href="#SkMatrix_kMScaleY">kMScaleY</a>,
- <a href="#SkMatrix_kMTransY">kMTransY</a>,
- <a href="#SkMatrix_kMPersp0">kMPersp0</a>,
- <a href="#SkMatrix_kMPersp1">kMPersp1</a>,
- <a href="#SkMatrix_kMPersp2">kMPersp2</a>,
- };
+ static constexpr int <a href="#SkMatrix_kMScaleX">kMScaleX</a> = 0;
+ static constexpr int <a href="#SkMatrix_kMSkewX">kMSkewX</a> = 1;
+ static constexpr int <a href="#SkMatrix_kMTransX">kMTransX</a> = 2;
+ static constexpr int <a href="#SkMatrix_kMSkewY">kMSkewY</a> = 3;
+ static constexpr int <a href="#SkMatrix_kMScaleY">kMScaleY</a> = 4;
+ static constexpr int <a href="#SkMatrix_kMTransY">kMTransY</a> = 5;
+ static constexpr int <a href="#SkMatrix_kMPersp0">kMPersp0</a> = 6;
+ static constexpr int <a href="#SkMatrix_kMPersp1">kMPersp1</a> = 7;
+ static constexpr int <a href="#SkMatrix_kMPersp2">kMPersp2</a> = 8;
</pre>
<a href="#Matrix">Matrix</a> organizes its values in row order. These members correspond to
@@ -851,19 +851,15 @@ each value in <a href="#Matrix">Matrix</a>.
<a href="#SkMatrix_get">get</a> <a href="#SkMatrix_set">set</a>
-
-
-## <a name="SkMatrix__anonymous_2"></a> Enum SkMatrix::_anonymous_2
+## <a name="AffineIndex"></a> AffineIndex
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- enum {
- <a href="#SkMatrix_kAScaleX">kAScaleX</a>,
- <a href="#SkMatrix_kASkewY">kASkewY</a>,
- <a href="#SkMatrix_kASkewX">kASkewX</a>,
- <a href="#SkMatrix_kAScaleY">kAScaleY</a>,
- <a href="#SkMatrix_kATransX">kATransX</a>,
- <a href="#SkMatrix_kATransY">kATransY</a>,
- };
+ static constexpr int <a href="#SkMatrix_kAScaleX">kAScaleX</a> = 0;
+ static constexpr int <a href="#SkMatrix_kASkewY">kASkewY</a> = 1;
+ static constexpr int <a href="#SkMatrix_kASkewX">kASkewX</a> = 2;
+ static constexpr int <a href="#SkMatrix_kAScaleY">kAScaleY</a> = 3;
+ static constexpr int <a href="#SkMatrix_kATransX">kATransX</a> = 4;
+ static constexpr int <a href="#SkMatrix_kATransY">kATransY</a> = 5;
</pre>
Affine arrays are in column major order to match the matrix used by
@@ -896,8 +892,6 @@ PDF and XPS.
<a href="#SkMatrix_SetAffineIdentity">SetAffineIdentity</a> <a href="#SkMatrix_asAffine">asAffine</a> <a href="#SkMatrix_setAffine">setAffine</a>
-
-
## <a name="Operator"></a> Operator
| name | description |
diff --git a/site/user/api/SkPaint_Reference.md b/site/user/api/SkPaint_Reference.md
index 03fec2bf37..1be30418fa 100644
--- a/site/user/api/SkPaint_Reference.md
+++ b/site/user/api/SkPaint_Reference.md
@@ -105,8 +105,6 @@ Multiple colors are drawn either by using multiple paints or with objects like
| <a href="#SkPaint_Join">Join</a> | corner geometry on stroked shapes |
| <a href="#SkPaint_Style">Style</a> | stroke, fill, or both |
| <a href="#SkPaint_TextEncoding">TextEncoding</a> | character or glyph encoded size |
-| _anonymous | number of <a href="#SkPaint_Style">Style</a> defines |
-| _anonymous_2 | number of <a href="#Text_Align">Text Align</a> values |
## <a name="Class_or_Struct"></a> Class or Struct
@@ -2075,6 +2073,8 @@ while stroking.
<a href="#SkPaint_kStroke_Style">kStroke Style</a>,
<a href="#SkPaint_kStrokeAndFill_Style">kStrokeAndFill Style</a>,
};
+
+ static constexpr int <a href="#SkPaint_kStyleCount">kStyleCount</a> = <a href="#SkPaint_kStrokeAndFill_Style">kStrokeAndFill Style</a> + 1;
</pre>
Set <a href="#SkPaint_Style">Style</a> to fill, stroke, or both fill and stroke geometry.
@@ -2112,20 +2112,6 @@ Applies to <a href="SkRect_Reference#Rect">Rect</a>, <a href="undocumented#Regio
and the set <a href="SkPath_Reference#Fill_Type">Path Fill Type</a> is ignored.
</td>
</tr>
-
-
-
-## <a name="SkPaint__anonymous"></a> Enum SkPaint::_anonymous
-
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- enum {
- <a href="#SkPaint_kStyleCount">kStyleCount</a> = <a href="#SkPaint_kStrokeAndFill_Style">kStrokeAndFill Style</a> + 1,
- };
-</pre>
-
-### Constants
-
-<table>
<tr>
<td><a name="SkPaint_kStyleCount"> <code><strong>SkPaint::kStyleCount </strong></code> </a></td><td>3</td><td>The number of different <a href="#SkPaint_Style">Style</a> values defined.
May be used to verify that <a href="#SkPaint_Style">Style</a> is a legal value.
@@ -3582,6 +3568,8 @@ void setLooper(sk_sp&lt;SkDrawLooper&gt; drawLooper)
<a href="#SkPaint_kCenter_Align">kCenter Align</a>,
<a href="#SkPaint_kRight_Align">kRight Align</a>,
};
+
+ static constexpr int <a href="#SkPaint_kAlignCount">kAlignCount</a> = 3;
</pre>
<a href="#SkPaint_Align">Align</a> adjusts the text relative to the text position.
@@ -3618,20 +3606,6 @@ half its height if <a href="#SkPaint_Flags">Flags</a> has <a href="#SkPaint_kVer
and by its height if <a href="#SkPaint_Flags">Flags</a> has <a href="#SkPaint_kVerticalText_Flag">kVerticalText Flag</a> set.
</td>
</tr>
-
-
-
-## <a name="SkPaint__anonymous_2"></a> Enum SkPaint::_anonymous_2
-
-<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
- enum {
- <a href="#SkPaint_kAlignCount">kAlignCount</a> = 3,
- };
-</pre>
-
-### Constants
-
-<table>
<tr>
<td><a name="SkPaint_kAlignCount"> <code><strong>SkPaint::kAlignCount </strong></code> </a></td><td>3</td><td>The number of different <a href="#Text_Align">Text Align</a> values defined.
</td>
diff --git a/site/user/api/catalog.htm b/site/user/api/catalog.htm
index c768b74d2a..7f05b27c14 100644
--- a/site/user/api/catalog.htm
+++ b/site/user/api/catalog.htm
@@ -3435,6 +3435,14 @@
"file": "SkImageInfo_Reference",
"name": "Color_Type_RGB_888x"
},
+ "Matrix_MemberIndex": {
+ "code": "void draw(SkCanvas* canvas) {\n SkPaint black;\n black.setAntiAlias(true);\n black.setTextSize(48);\n SkPaint gray = black;\n gray.setColor(0xFF9f9f9f);\n SkScalar offset[] = { 1.5f, 1.5f, 20, 1.5f, 1.5f, 20, .03f, .01f, 2 };\n for (int i : { SkMatrix::kMScaleX, SkMatrix::kMSkewX, SkMatrix::kMTransX,\n SkMatrix::kMSkewY, SkMatrix::kMScaleY, SkMatrix::kMTransY,\n SkMatrix::kMPersp0, SkMatrix::kMPersp1, SkMatrix::kMPersp2 } ) {\n SkMatrix m;\n m.setIdentity();\n m.set(i, offset[i]);\n SkAutoCanvasRestore autoRestore(canvas, true);\n canvas->translate(22 + (i % 3) * 88, 44 + (i / 3) * 88);\n canvas->drawString(\"&\", 0, 0, gray);\n canvas->concat(m);\n canvas->drawString(\"&\", 0, 0, black);\n }\n}",
+ "width": 256,
+ "height": 256,
+ "hash": "3bbf75f4748420810aa2586e3c8548d9",
+ "file": "SkMatrix_Reference",
+ "name": "MemberIndex"
+},
"Paint_Anti_alias": {
"code": "void draw(SkCanvas* canvas) {\n SkBitmap bitmap;\n bitmap.allocN32Pixels(50, 50);\n SkCanvas offscreen(bitmap);\n SkPaint paint;\n paint.setStyle(SkPaint::kStroke_Style);\n paint.setStrokeWidth(10);\n for (bool antialias : { false, true }) {\n paint.setColor(antialias ? SK_ColorRED : SK_ColorBLUE);\n paint.setAntiAlias(antialias);\n bitmap.eraseColor(0);\n offscreen.drawLine(5, 5, 15, 30, paint);\n canvas->drawLine(5, 5, 15, 30, paint);\n canvas->save();\n canvas->scale(10, 10);\n canvas->drawBitmap(bitmap, antialias ? 12 : 0, 0);\n canvas->restore();\n canvas->translate(15, 0);\n }\n}\n",
"width": 512,
@@ -4147,6 +4155,14 @@
"file": "SkCanvas_Reference",
"name": "SkCanvas::PointMode"
},
+ "SkCanvas_SaveLayerFlagsSet": {
+ "code": "void draw(SkCanvas* canvas) {\n SkPaint redPaint, bluePaint, scalePaint;\n redPaint.setColor(SK_ColorRED);\n canvas->drawCircle(21, 21, 8, redPaint);\n bluePaint.setColor(SK_ColorBLUE);\n canvas->drawCircle(31, 21, 8, bluePaint);\n SkMatrix matrix;\n matrix.setScale(4, 4);\n scalePaint.setAlpha(0x40);\n scalePaint.setImageFilter(\n SkImageFilter::MakeMatrixFilter(matrix, kNone_SkFilterQuality, nullptr));\n SkCanvas::SaveLayerRec saveLayerRec(nullptr, &scalePaint,\n SkCanvas::kInitWithPrevious_SaveLayerFlag); \n canvas->saveLayer(saveLayerRec);\n canvas->restore();\n}\n",
+ "width": 256,
+ "height": 160,
+ "hash": "d314c688925d2c549d4762f5cc6e6a1a",
+ "file": "SkCanvas_Reference",
+ "name": "SkCanvas::SaveLayerFlagsSet"
+},
"SkCanvas_SaveLayerRec": {
"code": "void draw(SkCanvas* canvas) {\n SkPaint redPaint, bluePaint;\n redPaint.setAntiAlias(true);\n redPaint.setColor(SK_ColorRED);\n canvas->drawCircle(21, 21, 8, redPaint);\n bluePaint.setColor(SK_ColorBLUE);\n canvas->drawCircle(31, 21, 8, bluePaint);\n SkMatrix matrix;\n matrix.setScale(4, 4);\n auto scaler = SkImageFilter::MakeMatrixFilter(matrix, kNone_SkFilterQuality, nullptr);\n SkCanvas::SaveLayerRec saveLayerRec(nullptr, nullptr, scaler.get(), 0); \n canvas->saveLayer(saveLayerRec);\n canvas->drawCircle(125, 85, 8, redPaint);\n canvas->restore();\n}\n",
"width": 256,
@@ -4163,14 +4179,6 @@
"file": "SkCanvas_Reference",
"name": "SkCanvas::SrcRectConstraint"
},
- "SkCanvas__anonymous": {
- "code": "void draw(SkCanvas* canvas) {\n SkPaint redPaint, bluePaint, scalePaint;\n redPaint.setColor(SK_ColorRED);\n canvas->drawCircle(21, 21, 8, redPaint);\n bluePaint.setColor(SK_ColorBLUE);\n canvas->drawCircle(31, 21, 8, bluePaint);\n SkMatrix matrix;\n matrix.setScale(4, 4);\n scalePaint.setAlpha(0x40);\n scalePaint.setImageFilter(\n SkImageFilter::MakeMatrixFilter(matrix, kNone_SkFilterQuality, nullptr));\n SkCanvas::SaveLayerRec saveLayerRec(nullptr, &scalePaint,\n SkCanvas::kInitWithPrevious_SaveLayerFlag); \n canvas->saveLayer(saveLayerRec);\n canvas->restore();\n}\n",
- "width": 256,
- "height": 160,
- "hash": "d314c688925d2c549d4762f5cc6e6a1a",
- "file": "SkCanvas_Reference",
- "name": "SkCanvas::_anonymous"
-},
"SkCanvas_accessTopLayerPixels": {
"code": "void draw(SkCanvas* canvas) {\n if (canvas->accessTopLayerPixels(nullptr, nullptr)) {\n canvas->clear(SK_ColorRED);\n } else {\n canvas->clear(SK_ColorBLUE);\n }\n}\n",
"width": 256,
@@ -5699,14 +5707,6 @@
"file": "SkMatrix_Reference",
"name": "SkMatrix::ScaleToFit"
},
- "SkMatrix__anonymous": {
- "code": "void draw(SkCanvas* canvas) {\n SkPaint black;\n black.setAntiAlias(true);\n black.setTextSize(48);\n SkPaint gray = black;\n gray.setColor(0xFF9f9f9f);\n SkScalar offset[] = { 1.5f, 1.5f, 20, 1.5f, 1.5f, 20, .03f, .01f, 2 };\n for (int i : { SkMatrix::kMScaleX, SkMatrix::kMSkewX, SkMatrix::kMTransX,\n SkMatrix::kMSkewY, SkMatrix::kMScaleY, SkMatrix::kMTransY,\n SkMatrix::kMPersp0, SkMatrix::kMPersp1, SkMatrix::kMPersp2 } ) {\n SkMatrix m;\n m.setIdentity();\n m.set(i, offset[i]);\n SkAutoCanvasRestore autoRestore(canvas, true);\n canvas->translate(22 + (i % 3) * 88, 44 + (i / 3) * 88);\n canvas->drawString(\"&\", 0, 0, gray);\n canvas->concat(m);\n canvas->drawString(\"&\", 0, 0, black);\n }\n}",
- "width": 256,
- "height": 256,
- "hash": "3bbf75f4748420810aa2586e3c8548d9",
- "file": "SkMatrix_Reference",
- "name": "SkMatrix::_anonymous"
-},
"SkMatrix_fixedStepInX": {
"code": "void draw(SkCanvas* canvas) {\n SkMatrix matrix;\n const SkPoint center = { 128, 128 };\n matrix.setScale(20, 25, center.fX, center.fY);\n matrix.postRotate(75, center.fX, center.fY);\n {\n SkAutoCanvasRestore acr(canvas, true);\n canvas->concat(matrix);\n canvas->drawBitmap(source, 0, 0);\n }\n if (matrix.isFixedStepInX()) {\n SkPaint paint;\n paint.setAntiAlias(true);\n SkVector step = matrix.fixedStepInX(128);\n SkVector end = center + step;\n canvas->drawLine(center, end, paint);\n SkVector arrow = { step.fX + step.fY, step.fY - step.fX};\n arrow = arrow * .25f;\n canvas->drawLine(end, end - arrow, paint);\n canvas->drawLine(end, {end.fX + arrow.fY, end.fY - arrow.fX}, paint);\n }\n}",
"width": 256,