diff options
author | Cary Clark <caryclark@skia.org> | 2018-04-26 08:32:37 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-04-26 17:11:53 +0000 |
commit | d98f78cd019d96f902197711c5e7e43afec3c3de (patch) | |
tree | 376d0bae10124bc51f150a8834c1e54d989d6a7e /site/user | |
parent | ba37e5b1c9bd24a86584a3e80347a82175a2403a (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.md | 12 | ||||
-rw-r--r-- | site/user/api/SkMatrix_Reference.md | 44 | ||||
-rw-r--r-- | site/user/api/SkPaint_Reference.md | 34 | ||||
-rw-r--r-- | site/user/api/catalog.htm | 32 |
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<SkDrawLooper> 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, |