diff options
134 files changed, 583 insertions, 588 deletions
diff --git a/gm/aarectmodes.cpp b/gm/aarectmodes.cpp index 10fa15a5ef..6e9f4bf600 100644 --- a/gm/aarectmodes.cpp +++ b/gm/aarectmodes.cpp @@ -58,7 +58,7 @@ static void test4(SkCanvas* canvas) { canvas->drawPath(path, paint); } -static const struct { +constexpr struct { SkXfermode::Mode fMode; const char* fLabel; } gModes[] = { @@ -140,7 +140,7 @@ namespace skiagm { test4(canvas); } const SkRect bounds = SkRect::MakeWH(W, H); - static const SkAlpha gAlphaValue[] = { 0xFF, 0x88, 0x88 }; + constexpr SkAlpha gAlphaValue[] = { 0xFF, 0x88, 0x88 }; canvas->translate(SkIntToScalar(4), SkIntToScalar(4)); diff --git a/gm/aaxfermodes.cpp b/gm/aaxfermodes.cpp index 2ea1844e27..78f7d3e324 100644 --- a/gm/aaxfermodes.cpp +++ b/gm/aaxfermodes.cpp @@ -23,11 +23,11 @@ enum { kSubtitleSpacing = 5 * kShapeSpacing / 8 }; -static const SkColor kBGColor = SkColorSetARGB(200, 210, 184, 135); +constexpr SkColor kBGColor = 0xc8d2b887; -static const SkColor kShapeColors[2] = { - SkColorSetARGB(130, 255, 0, 128), // input color unknown - SkColorSetARGB(255, 0, 255, 255) // input color opaque +constexpr SkColor kShapeColors[2] = { + 0x82ff0080, // input color unknown + 0xff00ffff, // input color opaque }; enum Shape { @@ -73,7 +73,7 @@ protected: fLabelPaint.setTextSize(5 * kShapeSize/8); fLabelPaint.setSubpixelText(true); - static const SkScalar radius = -1.4f * kShapeSize/2; + constexpr SkScalar radius = -1.4f * kShapeSize/2; SkPoint pts[4] = { {-radius, 0}, {0, -1.33f * radius}, diff --git a/gm/alphagradients.cpp b/gm/alphagradients.cpp index 65fa0c4082..fa9d3e2d67 100644 --- a/gm/alphagradients.cpp +++ b/gm/alphagradients.cpp @@ -38,7 +38,7 @@ protected: } void onDraw(SkCanvas* canvas) override { - static const struct { + constexpr struct { SkColor fColor0; SkColor fColor1; } gRec[] = { diff --git a/gm/anisotropic.cpp b/gm/anisotropic.cpp index 3e573c4d36..d8f9181286 100644 --- a/gm/anisotropic.cpp +++ b/gm/anisotropic.cpp @@ -27,9 +27,9 @@ protected: // Create an image consisting of lines radiating from its center void onOnceBeforeDraw() override { - static const int kNumLines = 100; - static const SkScalar kAngleStep = 360.0f / kNumLines; - static const int kInnerOffset = 10; + constexpr int kNumLines = 100; + constexpr SkScalar kAngleStep = 360.0f / kNumLines; + constexpr int kInnerOffset = 10; fBM.allocN32Pixels(kImageSize, kImageSize, true); @@ -97,9 +97,9 @@ protected: } private: - static const int kImageSize = 256; - static const int kSpacer = 10; - static const int kNumVertImages = 5; + static constexpr int kImageSize = 256; + static constexpr int kSpacer = 10; + static constexpr int kNumVertImages = 5; SkBitmap fBM; SkFilterQuality fFilterQuality; diff --git a/gm/arithmode.cpp b/gm/arithmode.cpp index cd074d4b12..70661a0fba 100644 --- a/gm/arithmode.cpp +++ b/gm/arithmode.cpp @@ -82,8 +82,8 @@ protected: SkBitmap src = make_src(); SkBitmap dst = make_dst(); - const SkScalar one = SK_Scalar1; - static const SkScalar K[] = { + constexpr SkScalar one = SK_Scalar1; + constexpr SkScalar K[] = { 0, 0, 0, 0, 0, 0, 0, one, 0, one, 0, 0, diff --git a/gm/beziereffects.cpp b/gm/beziereffects.cpp index 0c568d09f5..42be080ae3 100644 --- a/gm/beziereffects.cpp +++ b/gm/beziereffects.cpp @@ -74,8 +74,8 @@ private: SkScalar fSign; sk_sp<GrGeometryProcessor> fGeometryProcessor; - static const int kVertsPerCubic = 4; - static const int kIndicesPerCubic = 6; + static constexpr int kVertsPerCubic = 4; + static constexpr int kIndicesPerCubic = 6; typedef GrTestBatch INHERITED; }; @@ -115,7 +115,7 @@ protected: float fKLM[4]; // The last value is ignored. The effect expects a vec4f. }; - static const int kNumCubics = 15; + constexpr int kNumCubics = 15; SkRandom rand; // Mult by 3 for each edge effect type @@ -125,7 +125,7 @@ protected: SkScalar h = SkIntToScalar(drawContext->height()) / numRows; int row = 0; int col = 0; - static const GrColor color = 0xff000000; + constexpr GrColor color = 0xff000000; for (int i = 0; i < kNumCubics; ++i) { SkPoint baseControlPts[] = { @@ -247,7 +247,7 @@ protected: float fKLM[4]; // The last value is ignored. The effect expects a vec4f. }; - static const int kNumConics = 10; + constexpr int kNumConics = 10; SkRandom rand; // Mult by 3 for each edge effect type @@ -257,7 +257,7 @@ protected: SkScalar h = SkIntToScalar(drawContext->height()) / numRows; int row = 0; int col = 0; - static const GrColor color = 0xff000000; + constexpr GrColor color = 0xff000000; for (int i = 0; i < kNumConics; ++i) { SkPoint baseControlPts[] = { @@ -416,8 +416,8 @@ private: GrPathUtils::QuadUVMatrix fDevToUV; sk_sp<GrGeometryProcessor> fGeometryProcessor; - static const int kVertsPerCubic = 4; - static const int kIndicesPerCubic = 6; + static constexpr int kVertsPerCubic = 4; + static constexpr int kIndicesPerCubic = 6; typedef GrTestBatch INHERITED; }; @@ -458,7 +458,7 @@ protected: float fUV[4]; // The last two values are ignored. The effect expects a vec4f. }; - static const int kNumQuads = 5; + constexpr int kNumQuads = 5; SkRandom rand; int numCols = SkScalarCeilToInt(SkScalarSqrt(SkIntToScalar(kNumQuads*3))); @@ -467,7 +467,7 @@ protected: SkScalar h = SkIntToScalar(drawContext->height()) / numRows; int row = 0; int col = 0; - static const GrColor color = 0xff000000; + constexpr GrColor color = 0xff000000; for (int i = 0; i < kNumQuads; ++i) { SkPoint baseControlPts[] = { diff --git a/gm/beziers.cpp b/gm/beziers.cpp index 20abb0307c..cf65c0b22c 100755 --- a/gm/beziers.cpp +++ b/gm/beziers.cpp @@ -13,7 +13,7 @@ #define H 400 #define N 10 -static const SkScalar SH = SkIntToScalar(H); +constexpr SkScalar SH = SkIntToScalar(H); static void rnd_quad(SkPath* p, SkPaint* paint, SkRandom& rand) { p->moveTo(rand.nextRangeScalar(0, W), rand.nextRangeScalar(0, H)); diff --git a/gm/bigblurs.cpp b/gm/bigblurs.cpp index 5c09ab94ef..8cad70d942 100644 --- a/gm/bigblurs.cpp +++ b/gm/bigblurs.cpp @@ -32,8 +32,8 @@ protected: } void onDraw(SkCanvas* canvas) override { - static const int kBig = 65536; - static const SkScalar kSigma = SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(4)); + constexpr int kBig = 65536; + const SkScalar kSigma = SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(4)); const SkRect bigRect = SkRect::MakeWH(SkIntToScalar(kBig), SkIntToScalar(kBig)); SkRect insetRect = bigRect; @@ -46,8 +46,8 @@ protected: // The blur extends 3*kSigma out from the big rect. // Offset the close-up windows so we get the entire blur - static const SkScalar kLeftTopPad = 3*kSigma; // use on left & up of big rect - static const SkScalar kRightBotPad = kCloseUpSize-3*kSigma; // use on right and bot sides + const SkScalar kLeftTopPad = 3*kSigma; // use on left & up of big rect + const SkScalar kRightBotPad = kCloseUpSize-3*kSigma; // use on right and bot sides // UL hand corners of the rendered closeups const SkPoint origins[] = { @@ -103,9 +103,9 @@ protected: } private: - static const int kCloseUpSize = 64; - static const int kWidth = 5 * kCloseUpSize; - static const int kHeight = 2 * (kLastEnum_SkBlurStyle + 1) * kCloseUpSize; + static constexpr int kCloseUpSize = 64; + static constexpr int kWidth = 5 * kCloseUpSize; + static constexpr int kHeight = 2 * (kLastEnum_SkBlurStyle + 1) * kCloseUpSize; typedef GM INHERITED; }; diff --git a/gm/bigrrectaaeffect.cpp b/gm/bigrrectaaeffect.cpp index 7f79a34c6b..8387d5ed16 100644 --- a/gm/bigrrectaaeffect.cpp +++ b/gm/bigrrectaaeffect.cpp @@ -58,7 +58,7 @@ protected: int y = kPad; int x = kPad; - static const GrPrimitiveEdgeType kEdgeTypes[] = { + constexpr GrPrimitiveEdgeType kEdgeTypes[] = { kFillAA_GrProcessorEdgeType, kInverseFillAA_GrProcessorEdgeType, }; @@ -98,9 +98,9 @@ protected: private: // pad between test cases - static const int kPad = 7; + static constexpr int kPad = 7; // gap between rect for each case that is rendered and exterior of rrect - static const int kGap = 3; + static constexpr int kGap = 3; SkRRect fRRect; int fWidth; @@ -116,7 +116,7 @@ private: /////////////////////////////////////////////////////////////////////////////// // This value is motivated by bug chromium:477684. It has to be large to cause overflow in // the shader -static const int kSize = 700; +constexpr int kSize = 700; DEF_GM( return new BigRRectAAEffectGM (SkRRect::MakeRect(SkRect::MakeIWH(kSize, kSize)), "rect"); ) DEF_GM( return new BigRRectAAEffectGM (SkRRect::MakeOval(SkRect::MakeIWH(kSize, kSize)), "circle"); ) diff --git a/gm/bigtileimagefilter.cpp b/gm/bigtileimagefilter.cpp index b74f62ce61..429ef1e877 100644 --- a/gm/bigtileimagefilter.cpp +++ b/gm/bigtileimagefilter.cpp @@ -94,9 +94,9 @@ protected: } private: - static const int kWidth = 512; - static const int kHeight = 512; - static const int kBitmapSize = 64; + static constexpr int kWidth = 512; + static constexpr int kHeight = 512; + static constexpr int kBitmapSize = 64; sk_sp<SkImage> fRedImage; sk_sp<SkImage> fGreenImage; diff --git a/gm/bitmapcopy.cpp b/gm/bitmapcopy.cpp index b52337b4bf..59505877ef 100644 --- a/gm/bitmapcopy.cpp +++ b/gm/bitmapcopy.cpp @@ -18,7 +18,7 @@ static const char* gColorTypeNames[] = { "Index8", }; -static const SkColorType gColorTypes[] = { +constexpr SkColorType gColorTypes[] = { kRGB_565_SkColorType, kARGB_4444_SkColorType, kN32_SkColorType, diff --git a/gm/bitmappremul.cpp b/gm/bitmappremul.cpp index 172612ddb0..31a565018d 100644 --- a/gm/bitmappremul.cpp +++ b/gm/bitmappremul.cpp @@ -18,9 +18,9 @@ * This tests both the ARGB4444 and ARGB8888 bitmap configurations. */ -static const int SLIDE_SIZE = 256; -static const int PIXEL_SIZE_8888 = SLIDE_SIZE / 256; -static const int PIXEL_SIZE_4444 = SLIDE_SIZE / 16; +constexpr int SLIDE_SIZE = 256; +constexpr int PIXEL_SIZE_8888 = SLIDE_SIZE / 256; +constexpr int PIXEL_SIZE_4444 = SLIDE_SIZE / 16; static void init_bitmap(SkColorType ct, SkBitmap* bitmap) { bitmap->allocPixels(SkImageInfo::Make(SLIDE_SIZE, SLIDE_SIZE, ct, diff --git a/gm/bitmaprect.cpp b/gm/bitmaprect.cpp index 4db6e2fe95..2a813004df 100644 --- a/gm/bitmaprect.cpp +++ b/gm/bitmaprect.cpp @@ -153,9 +153,9 @@ private: ////////////////////////////////////////////////////////////////////////////// static void make_big_bitmap(SkBitmap* bitmap) { - static const int gXSize = 4096; - static const int gYSize = 4096; - static const int gBorderWidth = 10; + constexpr int gXSize = 4096; + constexpr int gYSize = 4096; + constexpr int gBorderWidth = 10; bitmap->allocN32Pixels(gXSize, gYSize); for (int y = 0; y < gYSize; ++y) { diff --git a/gm/bleed.cpp b/gm/bleed.cpp index da261efd32..8ffefc9788 100644 --- a/gm/bleed.cpp +++ b/gm/bleed.cpp @@ -107,10 +107,10 @@ bool make_ringed_bitmap(TestPixels* result, int width, int height, /** Create a black and white checked bitmap with 2 1-pixel rings around the outside edge. The inner ring is red and the outer ring is blue. */ static bool make_ringed_color_bitmap(TestPixels* result, int width, int height) { - static const SkPMColor kBlue = SkPreMultiplyColor(SK_ColorBLUE); - static const SkPMColor kRed = SkPreMultiplyColor(SK_ColorRED); - static const SkPMColor kBlack = SkPreMultiplyColor(SK_ColorBLACK); - static const SkPMColor kWhite = SkPreMultiplyColor(SK_ColorWHITE); + const SkPMColor kBlue = SkPreMultiplyColor(SK_ColorBLUE); + const SkPMColor kRed = SkPreMultiplyColor(SK_ColorRED); + const SkPMColor kBlack = SkPreMultiplyColor(SK_ColorBLACK); + const SkPMColor kWhite = SkPreMultiplyColor(SK_ColorWHITE); return make_ringed_bitmap<SkPMColor>(result, width, height, kN32_SkColorType, kPremul_SkAlphaType, kBlue, kRed, kBlack, kWhite); } @@ -119,10 +119,10 @@ static bool make_ringed_color_bitmap(TestPixels* result, int width, int height) checker board of 3/4 and 1/2. The inner checkers are large enough to fill the interior with the 2x2 checker grid. */ static bool make_ringed_alpha_bitmap(TestPixels* result, int width, int height) { - static const uint8_t kZero = 0x00; - static const uint8_t kHalf = 0x80; - static const uint8_t k3Q = 0xC0; - static const uint8_t kOne = 0xFF; + constexpr uint8_t kZero = 0x00; + constexpr uint8_t kHalf = 0x80; + constexpr uint8_t k3Q = 0xC0; + constexpr uint8_t kOne = 0xFF; return make_ringed_bitmap<uint8_t>(result, width, height, kAlpha_8_SkColorType, kPremul_SkAlphaType, kZero, kOne, k3Q, kHalf); } @@ -155,8 +155,8 @@ bool make_ringed_alpha_image(TestPixels* result, int width, int height) { } static sk_sp<SkShader> make_shader() { - static const SkPoint pts[] = { {0, 0}, {20, 20} }; - static const SkColor colors[] = { SK_ColorGREEN, SK_ColorYELLOW }; + constexpr SkPoint pts[] = { {0, 0}, {20, 20} }; + constexpr SkColor colors[] = { SK_ColorGREEN, SK_ColorYELLOW }; return SkGradientShader::MakeLinear(pts, colors, nullptr, 2, SkShader::kMirror_TileMode); } @@ -322,7 +322,7 @@ protected: // Draw with rotation and scale down in x, up in y. SkMatrix m; - static const SkScalar kBottom = SkIntToScalar(kRow4Y + kBlockSize + kBlockSpacing); + constexpr SkScalar kBottom = SkIntToScalar(kRow4Y + kBlockSize + kBlockSpacing); m.setTranslate(0, kBottom); m.preRotate(15.f, 0, kBottom + kBlockSpacing); m.preScale(0.71f, 1.22f); @@ -407,25 +407,25 @@ protected: #endif private: - static const int kBlockSize = 70; - static const int kBlockSpacing = 12; - - static const int kCol0X = kBlockSpacing; - static const int kCol1X = 2*kBlockSpacing + kBlockSize; - static const int kCol2X = 3*kBlockSpacing + 2*kBlockSize; - static const int kCol3X = 4*kBlockSpacing + 3*kBlockSize; - static const int kCol4X = 5*kBlockSpacing + 4*kBlockSize; - static const int kCol5X = 6*kBlockSpacing + 5*kBlockSize; - static const int kWidth = 7*kBlockSpacing + 6*kBlockSize; - - static const int kRow0Y = kBlockSpacing; - static const int kRow1Y = 2*kBlockSpacing + kBlockSize; - static const int kRow2Y = 3*kBlockSpacing + 2*kBlockSize; - static const int kRow3Y = 4*kBlockSpacing + 3*kBlockSize; - static const int kRow4Y = 5*kBlockSpacing + 4*kBlockSize; - - static const int kSmallSize = 6; - static const int kMaxTileSize = 32; + static constexpr int kBlockSize = 70; + static constexpr int kBlockSpacing = 12; + + static constexpr int kCol0X = kBlockSpacing; + static constexpr int kCol1X = 2*kBlockSpacing + kBlockSize; + static constexpr int kCol2X = 3*kBlockSpacing + 2*kBlockSize; + static constexpr int kCol3X = 4*kBlockSpacing + 3*kBlockSize; + static constexpr int kCol4X = 5*kBlockSpacing + 4*kBlockSize; + static constexpr int kCol5X = 6*kBlockSpacing + 5*kBlockSize; + static constexpr int kWidth = 7*kBlockSpacing + 6*kBlockSize; + + static constexpr int kRow0Y = kBlockSpacing; + static constexpr int kRow1Y = 2*kBlockSpacing + kBlockSize; + static constexpr int kRow2Y = 3*kBlockSpacing + 2*kBlockSize; + static constexpr int kRow3Y = 4*kBlockSpacing + 3*kBlockSize; + static constexpr int kRow4Y = 5*kBlockSpacing + 4*kBlockSize; + + static constexpr int kSmallSize = 6; + static constexpr int kMaxTileSize = 32; TestPixels fBigTestPixels; TestPixels fSmallTestPixels; diff --git a/gm/blurcircles.cpp b/gm/blurcircles.cpp index b15901b6a0..13cbeb864d 100644 --- a/gm/blurcircles.cpp +++ b/gm/blurcircles.cpp @@ -58,7 +58,7 @@ protected: } } private: - static const int kNumBlurs = 4; + static constexpr int kNumBlurs = 4; sk_sp<SkMaskFilter> fBlurFilters[kNumBlurs]; diff --git a/gm/blurcircles2.cpp b/gm/blurcircles2.cpp index ad0c37dc4b..93fcddb0f5 100644 --- a/gm/blurcircles2.cpp +++ b/gm/blurcircles2.cpp @@ -44,7 +44,7 @@ protected: } void onDraw(SkCanvas* canvas) override { - static constexpr SkScalar kMaxR = kMaxRadius + kMaxBlurRadius; + constexpr SkScalar kMaxR = kMaxRadius + kMaxBlurRadius; auto almostCircleMaker = [] (SkScalar radius, SkPath* dst) { dst->reset(); @@ -76,13 +76,13 @@ protected: } else { bool benchMode = this->getMode() == kBench_Mode; canvas->save(); - static constexpr SkScalar kPad = 5; - static constexpr SkScalar kRadiusSteps = 5; - static constexpr SkScalar kBlurRadiusSteps = 5; + constexpr SkScalar kPad = 5; + constexpr SkScalar kRadiusSteps = 5; + constexpr SkScalar kBlurRadiusSteps = 5; canvas->translate(kPad + kMinRadius + kMaxBlurRadius, kPad + kMinRadius + kMaxBlurRadius); - static constexpr SkScalar kDeltaRadius = (kMaxRadius - kMinRadius) / kRadiusSteps; - static constexpr SkScalar kDeltaBlurRadius = (kMaxBlurRadius - kMinBlurRadius) / + constexpr SkScalar kDeltaRadius = (kMaxRadius - kMinRadius) / kRadiusSteps; + constexpr SkScalar kDeltaBlurRadius = (kMaxBlurRadius - kMinBlurRadius) / kBlurRadiusSteps; SkScalar lineWidth = 0; if (!benchMode) { diff --git a/gm/blurquickreject.cpp b/gm/blurquickreject.cpp index c970458a88..452cdf7e91 100644 --- a/gm/blurquickreject.cpp +++ b/gm/blurquickreject.cpp @@ -31,8 +31,8 @@ protected: } void onDraw(SkCanvas* canvas) override { - static const SkScalar kBlurRadius = SkIntToScalar(20); - static const SkScalar kBoxSize = SkIntToScalar(100); + constexpr SkScalar kBlurRadius = SkIntToScalar(20); + constexpr SkScalar kBoxSize = SkIntToScalar(100); SkRect clipRect = SkRect::MakeXYWH(0, 0, kBoxSize, kBoxSize); SkRect blurRects[] = { @@ -73,8 +73,8 @@ protected: } private: - static const int kWidth = 300; - static const int kHeight = 300; + static constexpr int kWidth = 300; + static constexpr int kHeight = 300; typedef GM INHERITED; }; diff --git a/gm/blurrect.cpp b/gm/blurrect.cpp index 8aae04a6de..1e245712fe 100644 --- a/gm/blurrect.cpp +++ b/gm/blurrect.cpp @@ -125,7 +125,7 @@ protected: SkPaint paintWithRadial = paint; paintWithRadial.setShader(MakeRadial()); - static const Proc procs[] = { + constexpr Proc procs[] = { fill_rect, draw_donut, draw_donut_skewed }; diff --git a/gm/blurredclippedcircle.cpp b/gm/blurredclippedcircle.cpp index 495d16a3c2..bf49cd61e5 100644 --- a/gm/blurredclippedcircle.cpp +++ b/gm/blurredclippedcircle.cpp @@ -38,7 +38,7 @@ protected: whitePaint.setAntiAlias(true); // This scale exercises precision limits in the circle blur effect (crbug.com/560651) - static const float kScale = 2.0f; + constexpr float kScale = 2.0f; canvas->scale(kScale, kScale); canvas->save(); @@ -80,8 +80,8 @@ protected: } private: - static const int kWidth = 1164; - static const int kHeight = 802; + static constexpr int kWidth = 1164; + static constexpr int kHeight = 802; typedef GM INHERITED; }; diff --git a/gm/blurs.cpp b/gm/blurs.cpp index 8fa97b886b..16e6249d34 100644 --- a/gm/blurs.cpp +++ b/gm/blurs.cpp @@ -12,7 +12,7 @@ DEF_SIMPLE_GM_BG(blurs, canvas, 700, 500, sk_tool_utils::color_to_565(0xFFDDDDDD)) { SkBlurStyle NONE = SkBlurStyle(-999); - static const struct { + const struct { SkBlurStyle fStyle; int fCx, fCy; } gRecs[] = { diff --git a/gm/bmpfilterqualityrepeat.cpp b/gm/bmpfilterqualityrepeat.cpp index 6264d74df2..c55626f6b2 100644 --- a/gm/bmpfilterqualityrepeat.cpp +++ b/gm/bmpfilterqualityrepeat.cpp @@ -39,7 +39,7 @@ protected: void onDraw(SkCanvas* canvas) override { - static const struct { + constexpr struct { SkFilterQuality fQuality; const char* fName; } kQualities[] = { @@ -59,7 +59,7 @@ protected: lm.setTranslateX(423); lm.setTranslateY(330); - static const SkShader::TileMode kTM = SkShader::kRepeat_TileMode; + constexpr SkShader::TileMode kTM = SkShader::kRepeat_TileMode; bmpPaint.setShader(SkShader::MakeBitmapShader(fBmp, kTM, kTM, &lm)); SkRect rect = SkRect::MakeLTRB(20, 60, 220, 210); canvas->drawRect(rect, bmpPaint); diff --git a/gm/circulararcs.cpp b/gm/circulararcs.cpp index 5888f0588c..3d6a56d94a 100644 --- a/gm/circulararcs.cpp +++ b/gm/circulararcs.cpp @@ -10,13 +10,13 @@ #include "SkDashPathEffect.h" #include "gm.h" -static constexpr SkScalar kStarts[] = {0.f, 10.f, 30.f, 45.f, 90.f, 165.f, 180.f, 270.f}; -static constexpr SkScalar kSweeps[] = {1.f, 45.f, 90.f, 130.f, 180.f, 184.f, 300.f, 355.f}; -static constexpr SkScalar kDiameter = 40.f; -static constexpr SkRect kRect = {0.f, 0.f, kDiameter, kDiameter}; -static constexpr int kW = 1000; -static constexpr int kH = 1000; -static constexpr SkScalar kPad = 20.f; +constexpr SkScalar kStarts[] = {0.f, 10.f, 30.f, 45.f, 90.f, 165.f, 180.f, 270.f}; +constexpr SkScalar kSweeps[] = {1.f, 45.f, 90.f, 130.f, 180.f, 184.f, 300.f, 355.f}; +constexpr SkScalar kDiameter = 40.f; +constexpr SkRect kRect = {0.f, 0.f, kDiameter, kDiameter}; +constexpr int kW = 1000; +constexpr int kH = 1000; +constexpr SkScalar kPad = 20.f; void draw_arcs(SkCanvas* canvas, std::function<void(SkPaint*)> configureStyle) { // Draws grid of arcs with different start/sweep angles in red and their complement arcs in @@ -50,8 +50,8 @@ void draw_arcs(SkCanvas* canvas, std::function<void(SkPaint*)> configureStyle) { canvas->restore(); }; // Draw a grids for combo of enabling/disabling aa and using center. - static constexpr SkScalar kGridW = kW / 2.f; - static constexpr SkScalar kGridH = kH / 2.f; + constexpr SkScalar kGridW = kW / 2.f; + constexpr SkScalar kGridH = kH / 2.f; drawGrid(0.f , 0.f , false, false); drawGrid(kGridW, 0.f , true , false); drawGrid(0.f , kGridH, false, true ); @@ -128,13 +128,13 @@ DEF_ARC_GM(stroke_and_fill_round) { } DEF_SIMPLE_GM(circular_arcs_weird, canvas, 1000, 400) { - static constexpr SkScalar kS = 50; + constexpr SkScalar kS = 50; struct Arc { SkRect fOval; SkScalar fStart; SkScalar fSweep; }; - static const Arc noDrawArcs[] = { + const Arc noDrawArcs[] = { // no sweep {SkRect::MakeWH(kS, kS), 0, 0}, // empty rect in x @@ -144,7 +144,7 @@ DEF_SIMPLE_GM(circular_arcs_weird, canvas, 1000, 400) { // empty rect in x and y {SkRect::MakeWH( 0, 0), 0, 90}, }; - static const Arc arcs[] = { + const Arc arcs[] = { // large start {SkRect::MakeWH(kS, kS), 810.f, 90.f}, // large negative start @@ -175,7 +175,7 @@ DEF_SIMPLE_GM(circular_arcs_weird, canvas, 1000, 400) { // dash effect paints.push_back().setStyle(SkPaint::kStroke_Style); paints.back().setStrokeWidth(kS / 6.f); - static constexpr SkScalar kDashIntervals[] = {kS / 15, 2 * kS / 15}; + constexpr SkScalar kDashIntervals[] = {kS / 15, 2 * kS / 15}; paints.back().setPathEffect(SkDashPathEffect::Make(kDashIntervals, 2, 0.f)); canvas->translate(kPad, kPad); diff --git a/gm/clippedbitmapshaders.cpp b/gm/clippedbitmapshaders.cpp index 4b77aba9d0..b421800105 100644 --- a/gm/clippedbitmapshaders.cpp +++ b/gm/clippedbitmapshaders.cpp @@ -37,8 +37,8 @@ static SkBitmap create_bitmap() { return bmp; } -static const SkScalar RECT_SIZE = 64; -static const SkScalar SLIDE_SIZE = 300; +constexpr SkScalar RECT_SIZE = 64; +constexpr SkScalar SLIDE_SIZE = 300; class ClippedBitmapShadersGM : public GM { public: diff --git a/gm/colorcube.cpp b/gm/colorcube.cpp index 54e0688c6a..dc183bc3ae 100644 --- a/gm/colorcube.cpp +++ b/gm/colorcube.cpp @@ -14,11 +14,11 @@ namespace skiagm { static sk_sp<SkShader> MakeLinear() { - static const SkPoint pts[2] = { + constexpr SkPoint pts[2] = { { 0, 0 }, { SkIntToScalar(80), SkIntToScalar(80) } }; - static const SkColor colors[] = { SK_ColorYELLOW, SK_ColorBLUE }; + constexpr SkColor colors[] = { SK_ColorYELLOW, SK_ColorBLUE }; return SkGradientShader::MakeLinear(pts, colors, nullptr, 2, SkShader::kRepeat_TileMode, 0, &SkMatrix::I()); } diff --git a/gm/coloremoji.cpp b/gm/coloremoji.cpp index f4de3e5dce..371768c95b 100644 --- a/gm/coloremoji.cpp +++ b/gm/coloremoji.cpp @@ -20,9 +20,9 @@ * Spits out a dummy gradient to test blur with shader on paint */ static sk_sp<SkShader> MakeLinear() { - static const SkPoint kPts[] = { { 0, 0 }, { 32, 32 } }; - static const SkScalar kPos[] = { 0, SK_Scalar1/2, SK_Scalar1 }; - static const SkColor kColors[] = {0x80F00080, 0xF0F08000, 0x800080F0 }; + constexpr SkPoint kPts[] = { { 0, 0 }, { 32, 32 } }; + constexpr SkScalar kPos[] = { 0, SK_Scalar1/2, SK_Scalar1 }; + constexpr SkColor kColors[] = {0x80F00080, 0xF0F08000, 0x800080F0 }; return SkGradientShader::MakeLinear(kPts, kColors, kPos, SK_ARRAY_COUNT(kColors), SkShader::kClamp_TileMode); } @@ -77,7 +77,7 @@ protected: const char* text = emojiFont.text; // draw text at different point sizes - static constexpr SkScalar textSizes[] = { 10, 30, 50, }; + constexpr SkScalar textSizes[] = { 10, 30, 50, }; SkPaint::FontMetrics metrics; SkScalar y = 0; for (const SkScalar& textSize : textSizes) { @@ -137,7 +137,7 @@ protected: SkRect interiorClip = bounds; interiorClip.inset(boundsQuarterWidth, boundsQuarterHeight); - static const SkRect clipRects[] = { bounds, upperLeftClip, lowerRightClip, interiorClip }; + const SkRect clipRects[] = { bounds, upperLeftClip, lowerRightClip, interiorClip }; SkPaint clipHairline; clipHairline.setColor(SK_ColorWHITE); diff --git a/gm/complexclip.cpp b/gm/complexclip.cpp index 7708efe554..ec22204453 100644 --- a/gm/complexclip.cpp +++ b/gm/complexclip.cpp @@ -12,9 +12,9 @@ namespace skiagm { -static const SkColor gPathColor = SK_ColorBLACK; -static const SkColor gClipAColor = SK_ColorBLUE; -static const SkColor gClipBColor = SK_ColorRED; +constexpr SkColor gPathColor = SK_ColorBLACK; +constexpr SkColor gClipAColor = SK_ColorBLUE; +constexpr SkColor gClipBColor = SK_ColorRED; class ComplexClipGM : public GM { public: @@ -85,7 +85,7 @@ protected: sk_tool_utils::set_portable_typeface(&paint); paint.setTextSize(SkIntToScalar(20)); - static const struct { + constexpr struct { SkRegion::Op fOp; const char* fName; } gOps[] = { //extra spaces in names for measureText diff --git a/gm/complexclip2.cpp b/gm/complexclip2.cpp index 4314619cfd..2994e689eb 100644 --- a/gm/complexclip2.cpp +++ b/gm/complexclip2.cpp @@ -102,10 +102,10 @@ protected: } } - static const int kRows = 5; - static const int kCols = 5; - static const int kPadX = 20; - static const int kPadY = 20; + static constexpr int kRows = 5; + static constexpr int kCols = 5; + static constexpr int kPadX = 20; + static constexpr int kPadY = 20; static const char* ClipStr(Clip clip) { switch (clip) { diff --git a/gm/complexclip3.cpp b/gm/complexclip3.cpp index 67916caf76..1deb446145 100644 --- a/gm/complexclip3.cpp +++ b/gm/complexclip3.cpp @@ -10,7 +10,7 @@ namespace skiagm { -static const SkColor gPathColor = SK_ColorYELLOW; +constexpr SkColor gPathColor = SK_ColorYELLOW; class ComplexClip3GM : public GM { public: @@ -51,7 +51,7 @@ protected: sk_tool_utils::set_portable_typeface(&paint); paint.setTextSize(SkIntToScalar(20)); - static const struct { + constexpr struct { SkRegion::Op fOp; const char* fName; } gOps[] = { diff --git a/gm/composeshader.cpp b/gm/composeshader.cpp index c029c98559..b58f91f4c0 100644 --- a/gm/composeshader.cpp +++ b/gm/composeshader.cpp @@ -210,7 +210,7 @@ private: * work in a release build. You can change this parameter and then compile a release build * to have this GM draw larger bitmaps for easier visual inspection. */ - static const int squareLength = 20; + static constexpr int squareLength = 20; SkBitmap fColorBitmap; SkBitmap fAlpha8Bitmap; diff --git a/gm/constcolorprocessor.cpp b/gm/constcolorprocessor.cpp index d9b5f6c17e..166014d4c9 100644 --- a/gm/constcolorprocessor.cpp +++ b/gm/constcolorprocessor.cpp @@ -57,21 +57,21 @@ protected: return; } - static const GrColor kColors[] = { + constexpr GrColor kColors[] = { 0xFFFFFFFF, 0xFFFF00FF, 0x80000000, 0x00000000, }; - static const SkColor kPaintColors[] = { + constexpr SkColor kPaintColors[] = { 0xFFFFFFFF, 0xFFFF0000, 0x80FF0000, 0x00000000, }; - static const char* kModeStrs[] { + const char* kModeStrs[] { "kIgnore", "kModulateRGBA", "kModulateA", @@ -175,17 +175,14 @@ private: // Use this as a way of generating and input FP sk_sp<SkShader> fShader; - static const SkScalar kPad; - static const SkScalar kRectSize; - static const int kWidth = 820; - static const int kHeight = 500; + static constexpr SkScalar kPad = 10.f; + static constexpr SkScalar kRectSize = 20.f; + static constexpr int kWidth = 820; + static constexpr int kHeight = 500; typedef GM INHERITED; }; -const SkScalar ConstColorProcessor::kPad = 10.f; -const SkScalar ConstColorProcessor::kRectSize = 20.f; - DEF_GM(return new ConstColorProcessor;) } diff --git a/gm/convex_all_line_paths.cpp b/gm/convex_all_line_paths.cpp index a54c0e4a01..aba1ef27ce 100644 --- a/gm/convex_all_line_paths.cpp +++ b/gm/convex_all_line_paths.cpp @@ -278,7 +278,7 @@ protected: const SkColor colors[2] = { SK_ColorBLACK, SK_ColorWHITE }; const SkPath::Direction dirs[2] = { SkPath::kCW_Direction, SkPath::kCCW_Direction }; const float scales[] = { 1.0f, 0.75f, 0.5f, 0.25f, 0.1f, 0.01f, 0.001f }; - const SkPaint::Join joins[3] = { SkPaint::kRound_Join, + const SkPaint::Join joins[3] = { SkPaint::kRound_Join, SkPaint::kBevel_Join, SkPaint::kMiter_Join }; @@ -336,11 +336,11 @@ protected: } private: - static const int kStrokeWidth = 10; - static const int kNumPaths = 20; - static const int kMaxPathHeight = 100; - static const int kGMWidth = 512; - static const int kGMHeight = 512; + static constexpr int kStrokeWidth = 10; + static constexpr int kNumPaths = 20; + static constexpr int kMaxPathHeight = 100; + static constexpr int kGMWidth = 512; + static constexpr int kGMHeight = 512; bool fDoStrokeAndFill; diff --git a/gm/convexpolyclip.cpp b/gm/convexpolyclip.cpp index 0c8e291c31..9681faadf3 100644 --- a/gm/convexpolyclip.cpp +++ b/gm/convexpolyclip.cpp @@ -60,7 +60,7 @@ static SkBitmap make_bmp(int w, int h) { paint.setTextSize(wScalar / 2.2f); paint.setShader(0); paint.setColor(sk_tool_utils::color_to_565(SK_ColorLTGRAY)); - static const char kTxt[] = "Skia"; + constexpr char kTxt[] = "Skia"; SkPoint texPos = { wScalar / 17, hScalar / 2 + paint.getTextSize() / 2.5f }; canvas.drawText(kTxt, SK_ARRAY_COUNT(kTxt)-1, texPos.fX, texPos.fY, paint); paint.setColor(SK_ColorBLACK); @@ -103,7 +103,7 @@ protected: fClips.addToTail()->setPath(tri); SkPath hexagon; - static const SkScalar kRadius = 45.f; + constexpr SkScalar kRadius = 45.f; const SkPoint center = { kRadius, kRadius }; for (int i = 0; i < 6; ++i) { SkScalar angle = 2 * SK_ScalarPI * i / 6; @@ -139,14 +139,14 @@ protected: void onDraw(SkCanvas* canvas) override { SkScalar y = 0; - static const SkScalar kMargin = 10.f; + constexpr SkScalar kMargin = 10.f; SkPaint bgPaint; bgPaint.setAlpha(0x15); SkISize size = canvas->getDeviceSize(); canvas->drawBitmapRect(fBmp, SkRect::MakeIWH(size.fWidth, size.fHeight), &bgPaint); - static const char kTxt[] = "Clip Me!"; + constexpr char kTxt[] = "Clip Me!"; SkPaint txtPaint; txtPaint.setTextSize(23.f); txtPaint.setAntiAlias(true); diff --git a/gm/convexpolyeffect.cpp b/gm/convexpolyeffect.cpp index a5c2904566..44471e5f13 100644 --- a/gm/convexpolyeffect.cpp +++ b/gm/convexpolyeffect.cpp @@ -110,7 +110,7 @@ protected: fPaths.addToTail(tri); SkPath ngon; - static const SkScalar kRadius = 50.f; + constexpr SkScalar kRadius = 50.f; const SkPoint center = { kRadius, kRadius }; for (int i = 0; i < GrConvexPolyEffect::kMaxEdges; ++i) { SkScalar angle = 2 * SK_ScalarPI * i / GrConvexPolyEffect::kMaxEdges; @@ -160,7 +160,7 @@ protected: } SkScalar y = 0; - static const SkScalar kDX = 12.f; + constexpr SkScalar kDX = 12.f; for (PathList::Iter iter(fPaths, PathList::Iter::kHead_IterStart); iter.get(); iter.next()) { diff --git a/gm/cubicpaths.cpp b/gm/cubicpaths.cpp index 819dac25dc..abac5b2177 100644 --- a/gm/cubicpaths.cpp +++ b/gm/cubicpaths.cpp @@ -158,7 +158,7 @@ protected: SkPath::FillType fFill; const char* fName; }; - static const FillAndName gFills[] = { + constexpr FillAndName gFills[] = { {SkPath::kWinding_FillType, "Winding"}, {SkPath::kEvenOdd_FillType, "Even / Odd"}, {SkPath::kInverseWinding_FillType, "Inverse Winding"}, @@ -168,7 +168,7 @@ protected: SkPaint::Style fStyle; const char* fName; }; - static const StyleAndName gStyles[] = { + constexpr StyleAndName gStyles[] = { {SkPaint::kFill_Style, "Fill"}, {SkPaint::kStroke_Style, "Stroke"}, {SkPaint::kStrokeAndFill_Style, "Stroke And Fill"}, @@ -178,7 +178,7 @@ protected: SkPaint::Join fJoin; const char* fName; }; - static const CapAndName gCaps[] = { + constexpr CapAndName gCaps[] = { {SkPaint::kButt_Cap, SkPaint::kBevel_Join, "Butt"}, {SkPaint::kRound_Cap, SkPaint::kRound_Join, "Round"}, {SkPaint::kSquare_Cap, SkPaint::kBevel_Join, "Square"} @@ -302,7 +302,7 @@ protected: SkPath::FillType fFill; const char* fName; }; - static const FillAndName gFills[] = { + constexpr FillAndName gFills[] = { {SkPath::kWinding_FillType, "Winding"}, {SkPath::kEvenOdd_FillType, "Even / Odd"}, {SkPath::kInverseWinding_FillType, "Inverse Winding"}, @@ -312,7 +312,7 @@ protected: SkPaint::Style fStyle; const char* fName; }; - static const StyleAndName gStyles[] = { + constexpr StyleAndName gStyles[] = { {SkPaint::kFill_Style, "Fill"}, {SkPaint::kStroke_Style, "Stroke"}, {SkPaint::kStrokeAndFill_Style, "Stroke And Fill"}, @@ -322,7 +322,7 @@ protected: SkPaint::Join fJoin; const char* fName; }; - static const CapAndName gCaps[] = { + constexpr CapAndName gCaps[] = { {SkPaint::kButt_Cap, SkPaint::kBevel_Join, "Butt"}, {SkPaint::kRound_Cap, SkPaint::kRound_Join, "Round"}, {SkPaint::kSquare_Cap, SkPaint::kBevel_Join, "Square"} diff --git a/gm/dashcircle.cpp b/gm/dashcircle.cpp index f631c40476..fbe08b7bbe 100644 --- a/gm/dashcircle.cpp +++ b/gm/dashcircle.cpp @@ -95,7 +95,7 @@ protected: } bool onAnimate(const SkAnimTimer& timer) override { - static const SkScalar kDesiredDurationSecs = 100.0f; + constexpr SkScalar kDesiredDurationSecs = 100.0f; fRotation = timer.scaled(360.0f/kDesiredDurationSecs, 360.0f); return true; diff --git a/gm/dashing.cpp b/gm/dashing.cpp index 82e6eb35bf..e23c24ed3b 100644 --- a/gm/dashing.cpp +++ b/gm/dashing.cpp @@ -57,7 +57,7 @@ protected: SkISize onISize() { return SkISize::Make(640, 340); } virtual void onDraw(SkCanvas* canvas) { - static const struct { + constexpr struct { int fOnInterval; int fOffInterval; } gData[] = { @@ -145,7 +145,7 @@ protected: SkISize onISize() { return SkISize::Make(640, 480); } virtual void onDraw(SkCanvas* canvas) { - static const int gIntervals[] = { + constexpr int gIntervals[] = { 3, // 3 dashes: each count [0] followed by intervals [1..count] 2, 10, 10, 4, 20, 5, 5, 5, @@ -334,7 +334,7 @@ protected: SkISize onISize() { return SkISize::Make(640, 950); } virtual void onDraw(SkCanvas* canvas) { - static const struct { + constexpr struct { int fOnInterval; int fOffInterval; } gData[] = { @@ -420,11 +420,11 @@ protected: SkISize onISize() override { return SkISize::Make(400, 200); } void onDraw(SkCanvas* canvas) override { - static const int kOn = 4; - static const int kOff = 4; - static const int kIntervalLength = kOn + kOff; + constexpr int kOn = 4; + constexpr int kOff = 4; + constexpr int kIntervalLength = kOn + kOff; - static const SkColor gColors[kIntervalLength] = { + constexpr SkColor gColors[kIntervalLength] = { SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, diff --git a/gm/dcshader.cpp b/gm/dcshader.cpp index e97ab47a5e..25d114fd14 100644 --- a/gm/dcshader.cpp +++ b/gm/dcshader.cpp @@ -132,7 +132,7 @@ protected: struct Circle : public Prim { SkRect draw(SkCanvas* canvas, const SkPaint& paint) override { - static const SkScalar radius = 25; + constexpr SkScalar radius = 25; canvas->drawCircle(radius, radius, radius, paint); return SkRect::MakeXYWH(0, 0, 2 * radius, 2 * radius); } @@ -195,7 +195,7 @@ protected: paint.setTextSize(30.f); this->setFont(&paint); const char* text = this->text(); - static const SkVector offset = SkVector::Make(10, 10); + const SkVector offset = SkVector::Make(10, 10); canvas->drawText(text, strlen(text), offset.fX, offset.fY, paint); SkRect bounds; paint.measureText(text, strlen(text), &bounds); @@ -245,7 +245,7 @@ protected: canvas->translate(10, 20); canvas->save(); SkScalar tx = 0, maxTy = 0; - static const SkScalar kW = 900; + constexpr SkScalar kW = 900; for (int aa = 0; aa < 2; ++aa) { for (int i = 0; i < fPrims.count(); ++i) { diff --git a/gm/degeneratesegments.cpp b/gm/degeneratesegments.cpp index d5164908b6..c7254f2e93 100644 --- a/gm/degeneratesegments.cpp +++ b/gm/degeneratesegments.cpp @@ -208,7 +208,7 @@ protected: } virtual void onDraw(SkCanvas* canvas) { - static const AddSegmentFunc gSegmentFunctions[] = { + constexpr AddSegmentFunc gSegmentFunctions[] = { AddMove, AddMoveClose, AddDegenLine, @@ -231,7 +231,7 @@ protected: AddMoveCubic, AddMoveCubicClose }; - static const char* gSegmentNames[] = { + const char* gSegmentNames[] = { "Move", "MoveClose", "DegenLine", @@ -259,7 +259,7 @@ protected: SkPath::FillType fFill; const char* fName; }; - static const FillAndName gFills[] = { + constexpr FillAndName gFills[] = { {SkPath::kWinding_FillType, "Winding"}, {SkPath::kEvenOdd_FillType, "Even / Odd"}, {SkPath::kInverseWinding_FillType, "Inverse Winding"}, @@ -269,7 +269,7 @@ protected: SkPaint::Style fStyle; const char* fName; }; - static const StyleAndName gStyles[] = { + constexpr StyleAndName gStyles[] = { {SkPaint::kFill_Style, "Fill"}, {SkPaint::kStroke_Style, "Stroke 10"}, {SkPaint::kStrokeAndFill_Style, "Stroke 10 And Fill"} @@ -279,7 +279,7 @@ protected: SkPaint::Join fJoin; const char* fName; }; - static const CapAndName gCaps[] = { + constexpr CapAndName gCaps[] = { {SkPaint::kButt_Cap, SkPaint::kBevel_Join, "Butt"}, {SkPaint::kRound_Cap, SkPaint::kRound_Join, "Round"}, {SkPaint::kSquare_Cap, SkPaint::kBevel_Join, "Square"} diff --git a/gm/distantclip.cpp b/gm/distantclip.cpp index 9276dadc53..07594e788a 100644 --- a/gm/distantclip.cpp +++ b/gm/distantclip.cpp @@ -26,8 +26,8 @@ protected: SkISize onISize() { return SkISize::Make(100, 100); } virtual void onDraw(SkCanvas* canvas) { - static const SkScalar kOffset = 35000.0f; - static const SkScalar kExtents = 1000.0f; + constexpr SkScalar kOffset = 35000.0f; + constexpr SkScalar kExtents = 1000.0f; SkPictureRecorder recorder; // We record a picture of huge vertical extents in which we clear the canvas to red, create diff --git a/gm/drawatlascolor.cpp b/gm/drawatlascolor.cpp index 3331482538..b5dba99640 100644 --- a/gm/drawatlascolor.cpp +++ b/gm/drawatlascolor.cpp @@ -162,11 +162,11 @@ protected: } private: - static const int kNumXferModes = 29; - static const int kNumColors = 4; - static const int kAtlasSize = 30; - static const int kPad = 2; - static const int kTextPad = 8; + static constexpr int kNumXferModes = 29; + static constexpr int kNumColors = 4; + static constexpr int kAtlasSize = 30; + static constexpr int kPad = 2; + static constexpr int kTextPad = 8; sk_sp<SkImage> fAtlas; diff --git a/gm/drawbitmaprect.cpp b/gm/drawbitmaprect.cpp index ea9a09fe0a..3c873e290d 100644 --- a/gm/drawbitmaprect.cpp +++ b/gm/drawbitmaprect.cpp @@ -131,8 +131,8 @@ static void imagesubsetproc(SkCanvas* canvas, SkImage* image, const SkBitmap& bm typedef void DrawRectRectProc(SkCanvas*, SkImage*, const SkBitmap&, const SkIRect&, const SkRect&, const SkPaint*); -static const int gSize = 1024; -static const int gBmpSize = 2048; +constexpr int gSize = 1024; +constexpr int gBmpSize = 2048; class DrawBitmapRectGM : public skiagm::GM { public: @@ -163,10 +163,10 @@ protected: } SkRect dstRect = { 0, 0, SkIntToScalar(64), SkIntToScalar(64)}; - static const int kMaxSrcRectSize = 1 << (SkNextLog2(gBmpSize) + 2); + const int kMaxSrcRectSize = 1 << (SkNextLog2(gBmpSize) + 2); - static const int kPadX = 30; - static const int kPadY = 40; + const int kPadX = 30; + const int kPadY = 40; SkPaint paint; paint.setAlpha(0x20); canvas->drawImageRect(fImage, SkRect::MakeIWH(gSize, gSize), &paint); diff --git a/gm/drawlooper.cpp b/gm/drawlooper.cpp index 019566e30f..df8256ff11 100644 --- a/gm/drawlooper.cpp +++ b/gm/drawlooper.cpp @@ -56,7 +56,7 @@ private: void init() { if (fLooper) return; - static const struct { + constexpr struct { SkColor fColor; SkPaint::Style fStyle; SkScalar fWidth; diff --git a/gm/drawminibitmaprect.cpp b/gm/drawminibitmaprect.cpp index d539f26048..eccf04c352 100644 --- a/gm/drawminibitmaprect.cpp +++ b/gm/drawminibitmaprect.cpp @@ -29,12 +29,12 @@ static sk_sp<SkImage> makebm(SkCanvas* caller, int w, int h) { const SkScalar radius = 4 * SkMaxScalar(wScalar, hScalar); - static const SkColor colors[] = { SK_ColorRED, SK_ColorYELLOW, + constexpr SkColor colors[] = { SK_ColorRED, SK_ColorYELLOW, SK_ColorGREEN, SK_ColorMAGENTA, SK_ColorBLUE, SK_ColorCYAN, SK_ColorRED}; - static const SkScalar pos[] = {0, + constexpr SkScalar pos[] = {0, SK_Scalar1 / 6, 2 * SK_Scalar1 / 6, 3 * SK_Scalar1 / 6, @@ -60,8 +60,8 @@ static sk_sp<SkImage> makebm(SkCanvas* caller, int w, int h) { return surface->makeImageSnapshot(); } -static const int gSize = 1024; -static const int gSurfaceSize = 2048; +constexpr int gSize = 1024; +constexpr int gSurfaceSize = 2048; // This GM calls drawImageRect several times using the same texture. This is // intended to exercise batching of these calls. @@ -85,10 +85,10 @@ protected: } const SkRect dstRect = { 0, 0, SkIntToScalar(64), SkIntToScalar(64)}; - static const int kMaxSrcRectSize = 1 << (SkNextLog2(gSurfaceSize) + 2); + const int kMaxSrcRectSize = 1 << (SkNextLog2(gSurfaceSize) + 2); - static const int kPadX = 30; - static const int kPadY = 40; + constexpr int kPadX = 30; + constexpr int kPadY = 40; int rowCount = 0; canvas->translate(SkIntToScalar(kPadX), SkIntToScalar(kPadY)); diff --git a/gm/dstreadshuffle.cpp b/gm/dstreadshuffle.cpp index 4f0f071b0a..47c70563b5 100644 --- a/gm/dstreadshuffle.cpp +++ b/gm/dstreadshuffle.cpp @@ -44,8 +44,8 @@ protected: void drawShape(SkCanvas* canvas, SkPaint* paint, ShapeType type) { - static const SkRect kRect = SkRect::MakeXYWH(SkIntToScalar(-50), SkIntToScalar(-50), - SkIntToScalar(75), SkIntToScalar(105)); + const SkRect kRect = SkRect::MakeXYWH(SkIntToScalar(-50), SkIntToScalar(-50), + SkIntToScalar(75), SkIntToScalar(105)); switch (type) { case kCircle_ShapeType: canvas->drawCircle(0, 0, 50, *paint); @@ -183,8 +183,8 @@ private: SkAutoTUnref<SkShader> fBG; SkPath fConcavePath; SkPath fConvexPath; - static const int kWidth = 900; - static const int kHeight = 400; + static constexpr int kWidth = 900; + static constexpr int kHeight = 400; typedef GM INHERITED; }; diff --git a/gm/emptypath.cpp b/gm/emptypath.cpp index aadb94dfce..260f0a01ac 100644 --- a/gm/emptypath.cpp +++ b/gm/emptypath.cpp @@ -44,7 +44,7 @@ protected: SkPath::FillType fFill; const char* fName; }; - static const FillAndName gFills[] = { + constexpr FillAndName gFills[] = { {SkPath::kWinding_FillType, "Winding"}, {SkPath::kEvenOdd_FillType, "Even / Odd"}, {SkPath::kInverseWinding_FillType, "Inverse Winding"}, @@ -54,7 +54,7 @@ protected: SkPaint::Style fStyle; const char* fName; }; - static const StyleAndName gStyles[] = { + constexpr StyleAndName gStyles[] = { {SkPaint::kFill_Style, "Fill"}, {SkPaint::kStroke_Style, "Stroke"}, {SkPaint::kStrokeAndFill_Style, "Stroke And Fill"}, diff --git a/gm/filterfastbounds.cpp b/gm/filterfastbounds.cpp index 408a4e8709..812c6668ea 100644 --- a/gm/filterfastbounds.cpp +++ b/gm/filterfastbounds.cpp @@ -78,7 +78,7 @@ static void draw_bitmap(SkCanvas* canvas, const SkRect& r, const SkPaint& p) { canvas->drawBitmapRect(bm, r, &p); } -static const drawMth gDrawMthds[] = { +constexpr drawMth gDrawMthds[] = { draw_rect, draw_oval, draw_rrect, draw_drrect, draw_path, draw_points, draw_bitmap }; @@ -119,7 +119,7 @@ static void create_paints(SkTArray<SkPaint>* paints, sk_sp<SkImageFilter> source } { - static const SkDropShadowImageFilter::ShadowMode kBoth = + constexpr SkDropShadowImageFilter::ShadowMode kBoth = SkDropShadowImageFilter::kDrawShadowAndForeground_ShadowMode; sk_sp<SkImageFilter> dsif(SkDropShadowImageFilter::Make(10.0f, 10.0f, @@ -154,10 +154,10 @@ public: } protected: - static const int kTileWidth = 100; - static const int kTileHeight = 100; - static const int kNumVertTiles = 7; - static const int kNumXtraCols = 2; + static constexpr int kTileWidth = 100; + static constexpr int kTileHeight = 100; + static constexpr int kNumVertTiles = 7; + static constexpr int kNumXtraCols = 2; SkString onShortName() override{ return SkString("filterfastbounds"); } diff --git a/gm/fontmgr.cpp b/gm/fontmgr.cpp index a4dc2631ec..50b83836f2 100644 --- a/gm/fontmgr.cpp +++ b/gm/fontmgr.cpp @@ -188,7 +188,7 @@ protected: paint.setSubpixelText(true); paint.setTextSize(17); - static const char* gNames[] = { + const char* gNames[] = { "Helvetica Neue", "Arial" }; diff --git a/gm/gammacolorfilter.cpp b/gm/gammacolorfilter.cpp index ecb2daa214..f5e6542062 100644 --- a/gm/gammacolorfilter.cpp +++ b/gm/gammacolorfilter.cpp @@ -88,9 +88,9 @@ protected: } private: - static const int kCellWidth = 64; - static const int kCellHeight = 64; - static const int kNumGreySteps = 16; + static constexpr int kCellWidth = 64; + static constexpr int kCellHeight = 64; + static constexpr int kNumGreySteps = 16; typedef GM INHERITED; }; diff --git a/gm/glyph_pos.cpp b/gm/glyph_pos.cpp index ed61c7634b..7628fbe298 100644 --- a/gm/glyph_pos.cpp +++ b/gm/glyph_pos.cpp @@ -14,8 +14,8 @@ * glyph_pos_(h/n)_(s/f/b) * -> test hairline/non-hairline stroke/fill/stroke+fill. */ -static const SkScalar kTextHeight = 14.0f; -static const char kText[] = "Proportional Hamburgefons #% fi"; +constexpr SkScalar kTextHeight = 14.0f; +constexpr char kText[] = "Proportional Hamburgefons #% fi"; static void drawTestCase(SkCanvas* canvas, SkScalar textScale, diff --git a/gm/glyph_pos_align.cpp b/gm/glyph_pos_align.cpp index 0ac877d0d0..e0bf83e4f2 100644 --- a/gm/glyph_pos_align.cpp +++ b/gm/glyph_pos_align.cpp @@ -12,10 +12,10 @@ /** * This test exercises drawPosTextH and drawPosText with every text align. */ -static const int kWidth = 480; -static const int kHeight = 600; -static const SkScalar kTextHeight = 64.0f; -static const int kMaxStringLength = 12; +constexpr int kWidth = 480; +constexpr int kHeight = 600; +constexpr SkScalar kTextHeight = 64.0f; +constexpr int kMaxStringLength = 12; static void drawTestCase(SkCanvas*, const char*, SkScalar, const SkPaint&); @@ -80,7 +80,7 @@ void GM::DrawGpuOnlyMessage(SkCanvas* canvas) { paint.setTextSize(20); paint.setColor(SK_ColorRED); sk_tool_utils::set_portable_typeface(&paint); - static const char kTxt[] = "GPU Only"; + constexpr char kTxt[] = "GPU Only"; bmpCanvas.drawText(kTxt, strlen(kTxt), 20, 40, paint); SkMatrix localM; localM.setRotate(35.f); diff --git a/gm/gradientDirtyLaundry.cpp b/gm/gradientDirtyLaundry.cpp index 6b16be9f01..dc52d9e655 100644 --- a/gm/gradientDirtyLaundry.cpp +++ b/gm/gradientDirtyLaundry.cpp @@ -15,7 +15,7 @@ struct GradData { const SkScalar* fPos; }; -static const SkColor gColors[] = { +constexpr SkColor gColors[] = { SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, SK_ColorWHITE, SK_ColorBLACK, SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, SK_ColorWHITE, SK_ColorBLACK, SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, SK_ColorWHITE, SK_ColorBLACK, @@ -26,9 +26,9 @@ static const SkColor gColors[] = { SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, SK_ColorWHITE, SK_ColorBLACK, }; -//static const SkScalar gPos[] = { SK_Scalar1*999/2000, SK_Scalar1*1001/2000 }; +//constexpr SkScalar gPos[] = { SK_Scalar1*999/2000, SK_Scalar1*1001/2000 }; -static const GradData gGradData[] = { +constexpr GradData gGradData[] = { { 40, gColors, nullptr }, // { 2, gColors, gPos }, // { 2, gCol2, nullptr }, @@ -51,7 +51,7 @@ static sk_sp<SkShader> MakeSweep(const SkPoint pts[2], const GradData& data, SkS typedef sk_sp<SkShader> (*GradMaker)(const SkPoint pts[2], const GradData&, SkShader::TileMode); -static const GradMaker gGradMakers[] = { +constexpr GradMaker gGradMakers[] = { MakeLinear, MakeRadial, MakeSweep, }; diff --git a/gm/gradient_matrix.cpp b/gm/gradient_matrix.cpp index 816891847d..3992a49d44 100644 --- a/gm/gradient_matrix.cpp +++ b/gm/gradient_matrix.cpp @@ -19,19 +19,19 @@ #include "gm.h" -static const SkColor gColors[] = { +constexpr SkColor gColors[] = { SK_ColorRED, SK_ColorYELLOW }; // These annoying defines are necessary, because the only other alternative // is to use SkIntToScalar(...) everywhere. -static const SkScalar sZero = 0; -static const SkScalar sHalf = SK_ScalarHalf; -static const SkScalar sOne = SK_Scalar1; +constexpr SkScalar sZero = 0; +constexpr SkScalar sHalf = SK_ScalarHalf; +constexpr SkScalar sOne = SK_Scalar1; // These arrays define the gradient stop points // as x1, y1, x2, y2 per gradient to draw. -static const SkPoint linearPts[][2] = { +constexpr SkPoint linearPts[][2] = { {{sZero, sZero}, {sOne, sZero}}, {{sZero, sZero}, {sZero, sOne}}, {{sOne, sZero}, {sZero, sZero}}, @@ -43,7 +43,7 @@ static const SkPoint linearPts[][2] = { {{sZero, sOne}, {sOne, sZero}} }; -static const SkPoint radialPts[][2] = { +constexpr SkPoint radialPts[][2] = { {{sZero, sHalf}, {sOne, sHalf}}, {{sHalf, sZero}, {sHalf, sOne}}, {{sOne, sHalf}, {sZero, sHalf}}, @@ -56,10 +56,10 @@ static const SkPoint radialPts[][2] = { }; // These define the pixels allocated to each gradient image. -static const SkScalar TESTGRID_X = SkIntToScalar(200); -static const SkScalar TESTGRID_Y = SkIntToScalar(200); +constexpr SkScalar TESTGRID_X = SkIntToScalar(200); +constexpr SkScalar TESTGRID_Y = SkIntToScalar(200); -static const int IMAGES_X = 4; // number of images per row +constexpr int IMAGES_X = 4; // number of images per row static sk_sp<SkShader> make_linear_gradient(const SkPoint pts[2], const SkMatrix& localMatrix) { return SkGradientShader::MakeLinear(pts, gColors, nullptr, SK_ARRAY_COUNT(gColors), diff --git a/gm/gradients.cpp b/gm/gradients.cpp index 11c27baeca..4a68702559 100644 --- a/gm/gradients.cpp +++ b/gm/gradients.cpp @@ -17,21 +17,21 @@ struct GradData { const SkScalar* fPos; }; -static const SkColor gColors[] = { +constexpr SkColor gColors[] = { SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, SK_ColorWHITE, SK_ColorBLACK }; -static const SkScalar gPos0[] = { 0, SK_Scalar1 }; -static const SkScalar gPos1[] = { SK_Scalar1/4, SK_Scalar1*3/4 }; -static const SkScalar gPos2[] = { +constexpr SkScalar gPos0[] = { 0, SK_Scalar1 }; +constexpr SkScalar gPos1[] = { SK_Scalar1/4, SK_Scalar1*3/4 }; +constexpr SkScalar gPos2[] = { 0, SK_Scalar1/8, SK_Scalar1/2, SK_Scalar1*7/8, SK_Scalar1 }; -static const SkScalar gPosClamp[] = {0.0f, 0.0f, 1.0f, 1.0f}; -static const SkColor gColorClamp[] = { +constexpr SkScalar gPosClamp[] = {0.0f, 0.0f, 1.0f, 1.0f}; +constexpr SkColor gColorClamp[] = { SK_ColorRED, SK_ColorGREEN, SK_ColorGREEN, SK_ColorBLUE }; -static const GradData gGradData[] = { +constexpr GradData gGradData[] = { { 2, gColors, nullptr }, { 2, gColors, gPos0 }, { 2, gColors, gPos1 }, @@ -91,7 +91,7 @@ static sk_sp<SkShader> Make2Conical(const SkPoint pts[2], const GradData& data, typedef sk_sp<SkShader> (*GradMaker)(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm, const SkMatrix& localMatrix); -static const GradMaker gGradMakers[] = { +constexpr GradMaker gGradMakers[] = { MakeLinear, MakeRadial, MakeSweep, Make2Radial, Make2Conical }; diff --git a/gm/gradients_2pt_conical.cpp b/gm/gradients_2pt_conical.cpp index 28ed8bb965..ee1aee9e2d 100644 --- a/gm/gradients_2pt_conical.cpp +++ b/gm/gradients_2pt_conical.cpp @@ -16,21 +16,21 @@ struct GradData { const SkScalar* fPos; }; -static const SkColor gColors[] = { +constexpr SkColor gColors[] = { SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, SK_ColorWHITE, SK_ColorBLACK }; -static const SkScalar gPos0[] = { 0, SK_Scalar1 }; -static const SkScalar gPos1[] = { SK_Scalar1/4, SK_Scalar1*3/4 }; -static const SkScalar gPos2[] = { +constexpr SkScalar gPos0[] = { 0, SK_Scalar1 }; +constexpr SkScalar gPos1[] = { SK_Scalar1/4, SK_Scalar1*3/4 }; +constexpr SkScalar gPos2[] = { 0, SK_Scalar1/8, SK_Scalar1/2, SK_Scalar1*7/8, SK_Scalar1 }; -static const SkScalar gPosClamp[] = {0.0f, 0.0f, 1.0f, 1.0f}; -static const SkColor gColorClamp[] = { +constexpr SkScalar gPosClamp[] = {0.0f, 0.0f, 1.0f, 1.0f}; +constexpr SkColor gColorClamp[] = { SK_ColorRED, SK_ColorGREEN, SK_ColorGREEN, SK_ColorBLUE }; -static const GradData gGradData[] = { +constexpr GradData gGradData[] = { { 2, gColors, gPos0 }, { 2, gColors, gPos1 }, { 5, gColors, gPos2 }, @@ -250,17 +250,17 @@ static sk_sp<SkShader> Make2ConicalInsideSmallRad(const SkPoint pts[2], const Gr typedef sk_sp<SkShader> (*GradMaker)(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm, const SkMatrix& localMatrix); -static const GradMaker gGradMakersOutside[] = { +constexpr GradMaker gGradMakersOutside[] = { Make2ConicalOutside, Make2ConicalOutsideFlip, Make2ConicalZeroRadOutside, Make2ConicalZeroRadFlipOutside }; -static const GradMaker gGradMakersInside[] = { +constexpr GradMaker gGradMakersInside[] = { Make2ConicalInside, Make2ConicalInsideFlip, Make2ConicalInsideCenter, Make2ConicalZeroRad, Make2ConicalZeroRadFlip, Make2ConicalZeroRadCenter, }; -static const GradMaker gGradMakersEdgeCases[] = { +constexpr GradMaker gGradMakersEdgeCases[] = { Make2ConicalEdgeX, Make2ConicalEdgeY, Make2ConicalZeroRadEdgeX, Make2ConicalZeroRadEdgeY, Make2ConicalTouchX, Make2ConicalTouchY, @@ -268,7 +268,7 @@ static const GradMaker gGradMakersEdgeCases[] = { }; -static const struct { +constexpr struct { const GradMaker* fMaker; const int fCount; const char* fName; diff --git a/gm/gradients_no_texture.cpp b/gm/gradients_no_texture.cpp index b688aab4cb..5d0d4c9202 100644 --- a/gm/gradients_no_texture.cpp +++ b/gm/gradients_no_texture.cpp @@ -15,11 +15,11 @@ struct GradData { const SkScalar* fPos; }; -static const SkColor gColors[] = { +constexpr SkColor gColors[] = { SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, SK_ColorWHITE, }; -static const GradData gGradData[] = { +constexpr GradData gGradData[] = { { 1, gColors, nullptr }, { 2, gColors, nullptr }, { 3, gColors, nullptr }, @@ -71,7 +71,7 @@ static sk_sp<SkShader> Make2Conical(const SkPoint pts[2], const GradData& data, typedef sk_sp<SkShader> (*GradMaker)(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm); -static const GradMaker gGradMakers[] = { +constexpr GradMaker gGradMakers[] = { MakeLinear, MakeRadial, MakeSweep, Make2Radial, Make2Conical, }; @@ -92,16 +92,16 @@ protected: SkISize onISize() override { return SkISize::Make(640, 615); } void onDraw(SkCanvas* canvas) override { - static const SkPoint kPts[2] = { { 0, 0 }, + constexpr SkPoint kPts[2] = { { 0, 0 }, { SkIntToScalar(50), SkIntToScalar(50) } }; - static const SkShader::TileMode kTM = SkShader::kClamp_TileMode; + constexpr SkShader::TileMode kTM = SkShader::kClamp_TileMode; SkRect kRect = { 0, 0, SkIntToScalar(50), SkIntToScalar(50) }; SkPaint paint; paint.setAntiAlias(true); paint.setDither(fDither); canvas->translate(SkIntToScalar(20), SkIntToScalar(20)); - static const uint8_t kAlphas[] = { 0xff, 0x40 }; + constexpr uint8_t kAlphas[] = { 0xff, 0x40 }; for (size_t a = 0; a < SK_ARRAY_COUNT(kAlphas); ++a) { for (size_t i = 0; i < SK_ARRAY_COUNT(gGradData); ++i) { canvas->save(); diff --git a/gm/hairlines.cpp b/gm/hairlines.cpp index 89c5cd3d4f..6ec5bdeb77 100644 --- a/gm/hairlines.cpp +++ b/gm/hairlines.cpp @@ -138,9 +138,9 @@ protected: { // Arc example to test imperfect truncation bug (crbug.com/295626) - static const SkScalar kRad = SkIntToScalar(2000); - static const SkScalar kStartAngle = 262.59717f; - static const SkScalar kSweepAngle = SkScalarHalf(17.188717f); + constexpr SkScalar kRad = SkIntToScalar(2000); + constexpr SkScalar kStartAngle = 262.59717f; + constexpr SkScalar kSweepAngle = SkScalarHalf(17.188717f); SkPath* bug = &fPaths.push_back(); @@ -163,8 +163,8 @@ protected: } void onDraw(SkCanvas* canvas) override { - static const SkAlpha kAlphaValue[] = { 0xFF, 0x40 }; - static const SkScalar kWidths[] = { 0, 0.5f, 1.5f }; + constexpr SkAlpha kAlphaValue[] = { 0xFF, 0x40 }; + constexpr SkScalar kWidths[] = { 0, 0.5f, 1.5f }; enum { kMargin = 5, diff --git a/gm/hairmodes.cpp b/gm/hairmodes.cpp index 2651d04104..de937c439b 100644 --- a/gm/hairmodes.cpp +++ b/gm/hairmodes.cpp @@ -10,7 +10,7 @@ #include "SkColorPriv.h" #include "SkShader.h" -static const struct { +constexpr struct { SkXfermode::Mode fMode; const char* fLabel; } gModes[] = { @@ -88,7 +88,7 @@ namespace skiagm { void onDraw(SkCanvas* canvas) override { const SkRect bounds = SkRect::MakeWH(W, H); - static const SkAlpha gAlphaValue[] = { 0xFF, 0x88, 0x88 }; + constexpr SkAlpha gAlphaValue[] = { 0xFF, 0x88, 0x88 }; canvas->translate(SkIntToScalar(4), SkIntToScalar(4)); diff --git a/gm/image.cpp b/gm/image.cpp index 400d421a40..f1bb5a4d62 100644 --- a/gm/image.cpp +++ b/gm/image.cpp @@ -132,17 +132,17 @@ protected: canvas->scale(2, 2); - static const char* kLabel1 = "Original Img"; - static const char* kLabel2 = "Modified Img"; - static const char* kLabel3 = "Cur Surface"; - static const char* kLabel4 = "Full Crop"; - static const char* kLabel5 = "Over-crop"; - static const char* kLabel6 = "Upper-left"; - static const char* kLabel7 = "No Crop"; - - static const char* kLabel8 = "Pre-Alloc Img"; - static const char* kLabel9 = "New Alloc Img"; - static const char* kLabel10 = "GPU"; + const char* kLabel1 = "Original Img"; + const char* kLabel2 = "Modified Img"; + const char* kLabel3 = "Cur Surface"; + const char* kLabel4 = "Full Crop"; + const char* kLabel5 = "Over-crop"; + const char* kLabel6 = "Upper-left"; + const char* kLabel7 = "No Crop"; + + const char* kLabel8 = "Pre-Alloc Img"; + const char* kLabel9 = "New Alloc Img"; + const char* kLabel10 = "GPU"; SkPaint textPaint; textPaint.setAntiAlias(true); @@ -453,7 +453,7 @@ DEF_SIMPLE_GM(new_texture_image, canvas, 225, 60) { canvas->drawRect(SkRect::MakeXYWH(30.f,30.f,10.f,10.f), paint); }; - static const int kSize = 50; + static constexpr int kSize = 50; SkBitmap bmp; bmp.allocN32Pixels(kSize, kSize); SkCanvas bmpCanvas(bmp); @@ -491,7 +491,7 @@ DEF_SIMPLE_GM(new_texture_image, canvas, 225, 60) { } }; - static const SkScalar kPad = 5.f; + constexpr SkScalar kPad = 5.f; canvas->translate(kPad, kPad); for (auto factory : imageFactories) { auto image(factory()); diff --git a/gm/imageblur2.cpp b/gm/imageblur2.cpp index c6835d8407..7431ded03f 100644 --- a/gm/imageblur2.cpp +++ b/gm/imageblur2.cpp @@ -14,7 +14,7 @@ #define WIDTH 500 #define HEIGHT 500 -static const float kBlurSigmas[] = { +constexpr float kBlurSigmas[] = { 0.0, 0.3f, 0.5f, 2.0f, 32.0f, 80.0f }; const char* kTestStrings[] = { diff --git a/gm/imagefromyuvtextures.cpp b/gm/imagefromyuvtextures.cpp index e523d22988..13e0300bbc 100644 --- a/gm/imagefromyuvtextures.cpp +++ b/gm/imagefromyuvtextures.cpp @@ -38,7 +38,7 @@ protected: // We create an RGB bitmap and then extract YUV bmps where the U and V bitmaps are // subsampled by 2 in both dimensions. SkPaint paint; - static const SkColor kColors[] = + constexpr SkColor kColors[] = { SK_ColorBLUE, SK_ColorYELLOW, SK_ColorGREEN, SK_ColorWHITE }; paint.setShader(SkGradientShader::MakeRadial(SkPoint::Make(0,0), kBmpSize / 2.f, kColors, nullptr, SK_ARRAY_COUNT(kColors), @@ -131,7 +131,7 @@ protected: } - static const SkScalar kPad = 10.f; + constexpr SkScalar kPad = 10.f; SkISize sizes[] = { { fYUVBmps[0].width(), fYUVBmps[0].height()}, @@ -161,7 +161,7 @@ private: sk_sp<SkImage> fRGBImage; SkBitmap fYUVBmps[3]; - static const int kBmpSize = 32; + static constexpr int kBmpSize = 32; typedef GM INHERITED; }; diff --git a/gm/imagemagnifier.cpp b/gm/imagemagnifier.cpp index a012a9e396..88a6d10d96 100644 --- a/gm/imagemagnifier.cpp +++ b/gm/imagemagnifier.cpp @@ -72,7 +72,7 @@ DEF_SIMPLE_GM_BG(imagemagnifier_cropped, canvas, WIDTH_HEIGHT, WIDTH_HEIGHT, SK_ SkIntToScalar(WIDTH_HEIGHT-32)); srcRect.inset(64.0f, 64.0f); - static const SkScalar kInset = 64.0f; + constexpr SkScalar kInset = 64.0f; // Crop out a 16 pixel ring around the result const SkRect rect = SkRect::MakeXYWH(16, 16, WIDTH_HEIGHT-32, WIDTH_HEIGHT-32); diff --git a/gm/imagescalealigned.cpp b/gm/imagescalealigned.cpp index 474490fd24..9498d32071 100644 --- a/gm/imagescalealigned.cpp +++ b/gm/imagescalealigned.cpp @@ -138,8 +138,8 @@ private: return pt; } - static const unsigned kSegLen = 15; - static const unsigned kStretchFactor = 4; + static constexpr unsigned kSegLen = 15; + static constexpr unsigned kStretchFactor = 4; SkSTArray<2, ImageSet> fSets; typedef GM INHERITED; diff --git a/gm/imagesource2.cpp b/gm/imagesource2.cpp index ba6af46cfb..70a91daabc 100644 --- a/gm/imagesource2.cpp +++ b/gm/imagesource2.cpp @@ -31,7 +31,7 @@ protected: // Create an image with high frequency vertical stripes void onOnceBeforeDraw() override { - static const SkPMColor gColors[] = { + constexpr SkPMColor gColors[] = { SK_ColorRED, SK_ColorGRAY, SK_ColorGREEN, SK_ColorGRAY, SK_ColorBLUE, SK_ColorGRAY, @@ -73,7 +73,7 @@ protected: } private: - static const int kImageSize = 503; + static constexpr int kImageSize = 503; SkString fSuffix; SkFilterQuality fFilter; diff --git a/gm/imagetoyuvplanes.cpp b/gm/imagetoyuvplanes.cpp index 63d3fa92da..d08257295a 100644 --- a/gm/imagetoyuvplanes.cpp +++ b/gm/imagetoyuvplanes.cpp @@ -25,7 +25,7 @@ static sk_sp<SkImage> create_image(GrContext* context, int width, int height) { } // Create an RGB image from which we will extract planes SkPaint paint; - static const SkColor kColors[] = + constexpr SkColor kColors[] = { SK_ColorBLUE, SK_ColorYELLOW, SK_ColorGREEN, SK_ColorWHITE }; SkScalar r = (width + height) / 4.f; paint.setShader(SkGradientShader::MakeRadial(SkPoint::Make(0,0), r, kColors, @@ -37,8 +37,8 @@ static sk_sp<SkImage> create_image(GrContext* context, int width, int height) { } DEF_SIMPLE_GM(image_to_yuv_planes, canvas, 120, 525) { - static const SkScalar kPad = 5.f; - static const int kImageSize = 32; + constexpr SkScalar kPad = 5.f; + constexpr int kImageSize = 32; GrContext *context = canvas->getGrContext(); sk_sp<SkImage> rgbImage(create_image(context, kImageSize, kImageSize)); @@ -49,14 +49,14 @@ DEF_SIMPLE_GM(image_to_yuv_planes, canvas, 120, 525) { canvas->drawImage(rgbImage.get(), kPad, kPad); // Test cases where all three planes are the same size, where just u and v are the same size, // and where all differ. - static const SkISize kSizes[][3] = { + constexpr SkISize kSizes[][3] = { {{kImageSize, kImageSize}, {kImageSize , kImageSize }, {kImageSize, kImageSize }}, {{kImageSize, kImageSize}, {kImageSize/2, kImageSize/2}, {kImageSize/2, kImageSize/2}}, {{kImageSize, kImageSize}, {kImageSize/2, kImageSize/2}, {kImageSize/3, kImageSize/3}} }; // A mix of rowbytes triples to go with the above sizes. - static const size_t kRowBytes[][3] { + constexpr size_t kRowBytes[][3] { {0, 0, 0}, {kImageSize, kImageSize/2 + 1, kImageSize}, {kImageSize + 13, kImageSize, kImageSize/3 + 8} diff --git a/gm/inversepaths.cpp b/gm/inversepaths.cpp index 6eb054e22a..9a247e8192 100644 --- a/gm/inversepaths.cpp +++ b/gm/inversepaths.cpp @@ -47,7 +47,7 @@ struct Style { }; sk_sp<SkPathEffect> make_dash() { - static constexpr SkScalar kIntervals[] = { 4.f, 3.f }; + constexpr SkScalar kIntervals[] = { 4.f, 3.f }; return SkDashPathEffect::Make(kIntervals, SK_ARRAY_COUNT(kIntervals), 0); } diff --git a/gm/largeglyphblur.cpp b/gm/largeglyphblur.cpp index 6ffe953431..235c7cc5ad 100644 --- a/gm/largeglyphblur.cpp +++ b/gm/largeglyphblur.cpp @@ -23,7 +23,7 @@ DEF_SIMPLE_GM(largeglyphblur, canvas, 1920, 600) { paint.setAntiAlias(true); // setup up maskfilter - static const SkScalar kSigma = SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(40)); + const SkScalar kSigma = SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(40)); SkPaint blurPaint(paint); blurPaint.setMaskFilter(SkBlurMaskFilter::Make(kNormal_SkBlurStyle, kSigma)); diff --git a/gm/lcdblendmodes.cpp b/gm/lcdblendmodes.cpp index 42359e3aef..537c4cbda3 100644 --- a/gm/lcdblendmodes.cpp +++ b/gm/lcdblendmodes.cpp @@ -17,10 +17,10 @@ namespace skiagm { -static const int kColWidth = 180; -static const int kNumCols = 4; -static const int kWidth = kColWidth * kNumCols; -static const int kHeight = 750; +constexpr int kColWidth = 180; +constexpr int kNumCols = 4; +constexpr int kWidth = kColWidth * kNumCols; +constexpr int kHeight = 750; static sk_sp<SkShader> make_shader(const SkRect& bounds) { const SkPoint pts[] = { diff --git a/gm/lcdoverlap.cpp b/gm/lcdoverlap.cpp index aae27d8c1a..de159e19ac 100644 --- a/gm/lcdoverlap.cpp +++ b/gm/lcdoverlap.cpp @@ -17,8 +17,8 @@ namespace skiagm { -static const int kWidth = 750; -static const int kHeight = 750; +constexpr int kWidth = 750; +constexpr int kHeight = 750; class LcdOverlapGM : public skiagm::GM { public: diff --git a/gm/lighting.cpp b/gm/lighting.cpp index 7915c331d0..cd4132e1b5 100644 --- a/gm/lighting.cpp +++ b/gm/lighting.cpp @@ -158,14 +158,14 @@ protected: } bool onAnimate(const SkAnimTimer& timer) override { - static const SkScalar kDesiredDurationSecs = 15.0f; + constexpr SkScalar kDesiredDurationSecs = 15.0f; fAzimuth = kStartAzimuth + timer.scaled(360.0f/kDesiredDurationSecs, 360.0f); return true; } private: - static const int kStartAzimuth = 225; + static constexpr int kStartAzimuth = 225; SkBitmap fBitmap; SkScalar fAzimuth; diff --git a/gm/lightingshader.cpp b/gm/lightingshader.cpp index 137fd64a26..8576dd72d5 100644 --- a/gm/lightingshader.cpp +++ b/gm/lightingshader.cpp @@ -66,7 +66,7 @@ protected: kLast_NormalMap = kTetra_NormalMap }; - static const int kNormalMapCount = kLast_NormalMap+1; + static constexpr int kNormalMapCount = kLast_NormalMap+1; SkString onShortName() override { return SkString("lightingshader"); @@ -164,8 +164,8 @@ protected: } private: - static const int kTexSize = 128; - static const int kGMSize = 512; + static constexpr int kTexSize = 128; + static constexpr int kGMSize = 512; SkBitmap fDiffuse; SkBitmap fNormalMaps[kNormalMapCount]; diff --git a/gm/lightingshader2.cpp b/gm/lightingshader2.cpp index 886c647ff7..2efcebb02d 100644 --- a/gm/lightingshader2.cpp +++ b/gm/lightingshader2.cpp @@ -254,7 +254,7 @@ protected: } private: - static const int kTexSize = 96; + static constexpr int kTexSize = 96; sk_sp<SkShader> fOpaqueDiffuse; sk_sp<SkShader> fTranslucentDiffuse; diff --git a/gm/linepaths.cpp b/gm/linepaths.cpp index 51df788dd4..e7a0c9396c 100644 --- a/gm/linepaths.cpp +++ b/gm/linepaths.cpp @@ -33,7 +33,7 @@ static void draw(SkCanvas* canvas, bool doClose) { SkPath::FillType fFill; const char* fName; }; - static const FillAndName gFills[] = { + constexpr FillAndName gFills[] = { {SkPath::kWinding_FillType, "Winding"}, {SkPath::kEvenOdd_FillType, "Even / Odd"}, {SkPath::kInverseWinding_FillType, "Inverse Winding"}, @@ -43,7 +43,7 @@ static void draw(SkCanvas* canvas, bool doClose) { SkPaint::Style fStyle; const char* fName; }; - static const StyleAndName gStyles[] = { + constexpr StyleAndName gStyles[] = { {SkPaint::kFill_Style, "Fill"}, {SkPaint::kStroke_Style, "Stroke"}, {SkPaint::kStrokeAndFill_Style, "Stroke And Fill"}, @@ -53,7 +53,7 @@ static void draw(SkCanvas* canvas, bool doClose) { SkPaint::Join fJoin; const char* fName; }; - static const CapAndName gCaps[] = { + constexpr CapAndName gCaps[] = { {SkPaint::kButt_Cap, SkPaint::kBevel_Join, "Butt"}, {SkPaint::kRound_Cap, SkPaint::kRound_Join, "Round"}, {SkPaint::kSquare_Cap, SkPaint::kBevel_Join, "Square"} diff --git a/gm/megalooper.cpp b/gm/megalooper.cpp index 385c60efb1..6f071cb72c 100644 --- a/gm/megalooper.cpp +++ b/gm/megalooper.cpp @@ -68,11 +68,11 @@ protected: } private: - static const int kWidth = 800; - static const int kHeight = 800; - static const int kHalfOuterClipSize = 100; - static const int kHalfSquareSize = 50; - static const int kOffsetToOutsideClip = kHalfSquareSize + kHalfOuterClipSize + 1; + static constexpr int kWidth = 800; + static constexpr int kHeight = 800; + static constexpr int kHalfOuterClipSize = 100; + static constexpr int kHalfSquareSize = 50; + static constexpr int kOffsetToOutsideClip = kHalfSquareSize + kHalfOuterClipSize + 1; static const SkPoint gBlurOffsets[4]; static const SkColor gColors[4]; @@ -111,7 +111,7 @@ private: } static sk_sp<SkMaskFilter> MakeBlur() { - static const SkScalar kBlurSigma = SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(25)); + const SkScalar kBlurSigma = SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(25)); return SkBlurMaskFilter::Make(kNormal_SkBlurStyle, kBlurSigma, SkBlurMaskFilter::kHighQuality_BlurFlag); diff --git a/gm/mixedtextblobs.cpp b/gm/mixedtextblobs.cpp index 9a9bded1db..66e2379ee6 100644 --- a/gm/mixedtextblobs.cpp +++ b/gm/mixedtextblobs.cpp @@ -155,8 +155,8 @@ private: const char* fEmojiText; SkAutoTUnref<const SkTextBlob> fBlob; - static const int kWidth = 1250; - static const int kHeight = 700; + static constexpr int kWidth = 1250; + static constexpr int kHeight = 700; typedef GM INHERITED; }; diff --git a/gm/modecolorfilters.cpp b/gm/modecolorfilters.cpp index 4e5d45cf96..50bb27f9d8 100644 --- a/gm/modecolorfilters.cpp +++ b/gm/modecolorfilters.cpp @@ -16,7 +16,7 @@ namespace skiagm { // Using gradients because GPU doesn't currently have an implementation of SkColorShader (duh!) static sk_sp<SkShader> make_color_shader(SkColor color) { - static const SkPoint kPts[] = {{0, 0}, {1, 1}}; + constexpr SkPoint kPts[] = {{0, 0}, {1, 1}}; SkColor colors[] = {color, color}; return SkGradientShader::MakeLinear(kPts, colors, nullptr, 2, SkShader::kClamp_TileMode); @@ -68,10 +68,10 @@ protected: void onDraw(SkCanvas* canvas) override { // size of rect for each test case - static const int kRectWidth = 20; - static const int kRectHeight = 20; + constexpr int kRectWidth = 20; + constexpr int kRectHeight = 20; - static const int kCheckSize = 10; + constexpr int kCheckSize = 10; if (!fBmpShader) { fBmpShader = make_bg_shader(kCheckSize); @@ -118,7 +118,7 @@ protected: SkPaint paint; int idx = 0; - static const int kRectsPerRow = SkMax32(this->getISize().fWidth / kRectWidth, 1); + const int kRectsPerRow = SkMax32(this->getISize().fWidth / kRectWidth, 1); for (size_t cfm = 0; cfm < SK_ARRAY_COUNT(modes); ++cfm) { for (size_t cfc = 0; cfc < SK_ARRAY_COUNT(colors); ++cfc) { paint.setColorFilter(SkColorFilter::MakeModeFilter(colors[cfc], modes[cfm])); diff --git a/gm/multipicturedraw.cpp b/gm/multipicturedraw.cpp index 83b0d5b86a..d7d81f283f 100644 --- a/gm/multipicturedraw.cpp +++ b/gm/multipicturedraw.cpp @@ -12,18 +12,18 @@ #include "SkPictureRecorder.h" #include "SkSurface.h" -static const SkScalar kRoot3Over2 = 0.86602545f; // sin(60) -static const SkScalar kRoot3 = 1.73205081f; +constexpr SkScalar kRoot3Over2 = 0.86602545f; // sin(60) +constexpr SkScalar kRoot3 = 1.73205081f; -static const int kHexSide = 30; -static const int kNumHexX = 6; -static const int kNumHexY = 6; -static const int kPicWidth = kNumHexX * kHexSide; -static const int kPicHeight = SkScalarCeilToInt((kNumHexY - 0.5f) * 2 * kHexSide * kRoot3Over2); -static const SkScalar kInset = 20.0f; -static const int kNumPictures = 4; +constexpr int kHexSide = 30; +constexpr int kNumHexX = 6; +constexpr int kNumHexY = 6; +constexpr int kPicWidth = kNumHexX * kHexSide; +constexpr int kPicHeight = (int)((kNumHexY - 0.5f) * 2 * kHexSide * kRoot3Over2 + 0.5f); +constexpr SkScalar kInset = 20.0f; +constexpr int kNumPictures = 4; -static const int kTriSide = 40; +constexpr int kTriSide = 40; // Create a hexagon centered at (originX, originY) static SkPath make_hex_path(SkScalar originX, SkScalar originY) { @@ -106,7 +106,7 @@ static sk_sp<SkPicture> make_single_layer_hex_plane_picture() { SkPictureRecorder recorder; SkRTreeFactory bbhFactory; - static const SkScalar kBig = 10000.0f; + constexpr SkScalar kBig = 10000.0f; SkCanvas* canvas = recorder.beginRecording(kBig, kBig, &bbhFactory); canvas->saveLayer(nullptr, nullptr); @@ -218,7 +218,7 @@ static sk_sp<SkPicture> make_sierpinski_picture() { SkIntToScalar(kPicHeight), &bbhFactory); - static const int kNumLevels = 4; + constexpr int kNumLevels = 4; for (int i = 0; i < kNumLevels; ++i) { canvas->save(); canvas->translate(kPicWidth/2 - (i+1) * (kTriSide/2.0f), 0.0f); @@ -336,7 +336,7 @@ static void big_layer(SkCanvas* canvas, const SkPicture* pictures[kNumPictures]) canvas->drawPicture(pictures[3]); } -static const PFContentMtd gContentMthds[] = { +constexpr PFContentMtd gContentMthds[] = { no_clip, rect_clip, rrect_clip, @@ -391,15 +391,15 @@ static void tiled(SkCanvas* finalCanvas, SkMultiPictureDraw* mpd, PFContentMtd pfGen, const SkPicture* pictures[kNumPictures], SkTArray<ComposeStep> *composeSteps) { - static const int kNumTilesX = 2; - static const int kNumTilesY = 2; - static const int kTileWidth = kPicWidth / kNumTilesX; - static const int kTileHeight = kPicHeight / kNumTilesY; + const int kNumTilesX = 2; + const int kNumTilesY = 2; + const int kTileWidth = kPicWidth / kNumTilesX; + const int kTileHeight = kPicHeight / kNumTilesY; SkASSERT(kPicWidth == kNumTilesX * kTileWidth); SkASSERT(kPicHeight == kNumTilesY * kTileHeight); - static const SkColor colors[kNumTilesX][kNumTilesY] = { + const SkColor colors[kNumTilesX][kNumTilesY] = { { SK_ColorCYAN, SK_ColorMAGENTA }, { SK_ColorYELLOW, SK_ColorGREEN } }; @@ -426,7 +426,7 @@ static void tiled(SkCanvas* finalCanvas, SkMultiPictureDraw* mpd, } } -static const PFLayoutMtd gLayoutMthds[] = { simple, tiled }; +constexpr PFLayoutMtd gLayoutMthds[] = { simple, tiled }; namespace skiagm { /** @@ -450,7 +450,7 @@ namespace skiagm { kLast_Content = kBigLayer_Content }; - static const int kContentCnt = kLast_Content + 1; + const int kContentCnt = kLast_Content + 1; enum Layout { kSimple_Layout, @@ -459,7 +459,7 @@ namespace skiagm { kLast_Layout = kTiled_Layout }; - static const int kLayoutCnt = kLast_Layout + 1; + const int kLayoutCnt = kLast_Layout + 1; MultiPictureDraw(Content content, Layout layout) : fContent(content), fLayout(layout) { SkASSERT(SK_ARRAY_COUNT(gLayoutMthds) == kLayoutCnt); @@ -511,11 +511,11 @@ namespace skiagm { SkISize onISize() override { return SkISize::Make(kPicWidth, kPicHeight); } SkString onShortName() override { - static const char* gContentNames[] = { + const char* gContentNames[] = { "noclip", "rectclip", "rrectclip", "pathclip", "invpathclip", "sierpinski", "biglayer" }; - static const char* gLayoutNames[] = { "simple", "tiled" }; + const char* gLayoutNames[] = { "simple", "tiled" }; SkASSERT(SK_ARRAY_COUNT(gLayoutNames) == kLayoutCnt); SkASSERT(SK_ARRAY_COUNT(gContentNames) == kContentCnt); diff --git a/gm/nested.cpp b/gm/nested.cpp index d3b75b370b..0b3cf19fb0 100644 --- a/gm/nested.cpp +++ b/gm/nested.cpp @@ -123,8 +123,8 @@ protected: } private: - static const int kImageWidth = 269; - static const int kImageHeight = 134; + static constexpr int kImageWidth = 269; + static constexpr int kImageHeight = 134; bool fDoAA; bool fFlipped; diff --git a/gm/nonclosedpaths.cpp b/gm/nonclosedpaths.cpp index a3d91b50a3..dc806f30b6 100644 --- a/gm/nonclosedpaths.cpp +++ b/gm/nonclosedpaths.cpp @@ -71,22 +71,22 @@ protected: // Stroke widths are: // 0(may use hairline rendering), 10(common case for stroke-style) // 40 and 50(>= geometry width/height, make the contour filled in fact) - static const int kStrokeWidth[] = {0, 10, 40, 50}; + constexpr int kStrokeWidth[] = {0, 10, 40, 50}; int numWidths = SK_ARRAY_COUNT(kStrokeWidth); - static const SkPaint::Style kStyle[] = { + constexpr SkPaint::Style kStyle[] = { SkPaint::kStroke_Style, SkPaint::kStrokeAndFill_Style }; - static const SkPaint::Cap kCap[] = { + constexpr SkPaint::Cap kCap[] = { SkPaint::kButt_Cap, SkPaint::kRound_Cap, SkPaint::kSquare_Cap }; - static const SkPaint::Join kJoin[] = { + constexpr SkPaint::Join kJoin[] = { SkPaint::kMiter_Join, SkPaint::kRound_Join, SkPaint::kBevel_Join }; - static const ClosureType kType[] = { + constexpr ClosureType kType[] = { TotallyNonClosed, FakeCloseCorner, FakeCloseMiddle }; diff --git a/gm/occludedrrectblur.cpp b/gm/occludedrrectblur.cpp index e21a0141d6..059b47353f 100644 --- a/gm/occludedrrectblur.cpp +++ b/gm/occludedrrectblur.cpp @@ -65,7 +65,7 @@ static void draw_45(SkCanvas* canvas, SkRRect::Corner corner, SkRRect::Corner left = SkRRect::kUpperLeft_Corner, right = SkRRect::kUpperLeft_Corner; SkVector dir = { 0, 0 }; - static const SkScalar kSize = 64.0f / SK_ScalarSqrt2; + constexpr SkScalar kSize = 64.0f / SK_ScalarSqrt2; switch (corner) { case SkRRect::kUpperLeft_Corner: @@ -88,11 +88,11 @@ static void draw_45(SkCanvas* canvas, SkRRect::Corner corner, left = SkRRect::kLowerRight_Corner; right = SkRRect::kUpperLeft_Corner; dir.set(-SK_ScalarRoot2Over2, SK_ScalarRoot2Over2); - break; + break; default: SkFAIL("Invalid shape."); } - + SkRect r = SkRect::MakeWH(kSize, kSize); // UL, UR, LR, LL SkVector radii[4] = { { 0.0f, 0.0f }, { 0.0f, 0.0f }, { 0.0f, 0.0f }, { 0.0f, 0.0f } }; @@ -110,9 +110,9 @@ static void draw_45(SkCanvas* canvas, SkRRect::Corner corner, radii); draw_rrect(canvas, rr, occRR); -} +} -static void draw_45_simple(SkCanvas* canvas, const SkVector& v, +static void draw_45_simple(SkCanvas* canvas, const SkVector& v, SkScalar dist, const SkPoint& center) { SkIRect r = SkIRect::MakeWH(64, 64); SkRRect rr = SkRRect::MakeRectXY( @@ -121,14 +121,14 @@ static void draw_45_simple(SkCanvas* canvas, const SkVector& v, dist -= 10.0f; SkRRect occRR = SkRRect::MakeRectXY( - offset_center_to(r, center.fX + dist*v.fX, center.fY + dist*v.fY), + offset_center_to(r, center.fX + dist*v.fX, center.fY + dist*v.fY), 8, 8); draw_rrect(canvas, rr, occRR); } static void draw_90(SkCanvas* canvas, const SkVector& v, SkScalar dist, const SkPoint& center) { - static const int kWidth = 25; + constexpr int kWidth = 25; SkIRect r; if (fabs(v.fX) < fabs(v.fY)) { @@ -148,10 +148,10 @@ static void draw_90(SkCanvas* canvas, const SkVector& v, SkScalar dist, const Sk static void draw_90_simple(SkCanvas* canvas, const SkVector& v, SkScalar dist, const SkPoint& center) { - static const int kLength = 128; + constexpr int kLength = 128; // The width needs to be larger than 2*3*blurRadii+2*cornerRadius for the analytic // RRect blur to kick in - static const int kWidth = 47; + constexpr int kWidth = 47; SkIRect r; if (fabs(v.fX) < fabs(v.fY)) { @@ -175,8 +175,8 @@ static void draw_30_60(SkCanvas* canvas, SkRRect::Corner corner, const SkVector& SkScalar dist, const SkPoint& center) { SkRRect::Corner left = SkRRect::kUpperLeft_Corner, right = SkRRect::kUpperLeft_Corner; - static const int kLength = 64; - static const int kWidth = 30; + constexpr int kLength = 64; + constexpr int kWidth = 30; switch (corner) { case SkRRect::kUpperLeft_Corner: @@ -194,7 +194,7 @@ static void draw_30_60(SkCanvas* canvas, SkRRect::Corner corner, const SkVector& case SkRRect::kLowerLeft_Corner: left = SkRRect::kLowerRight_Corner; right = SkRRect::kUpperLeft_Corner; - break; + break; default: SkFAIL("Invalid shape."); } @@ -215,7 +215,7 @@ static void draw_30_60(SkCanvas* canvas, SkRRect::Corner corner, const SkVector& dist -= 10.0f; SkRRect occRR; occRR.setRectRadii(offset_center_to(r, center.fX + dist*v.fX, center.fY + dist*v.fY), radii); - draw_rrect(canvas, rr, occRR); + draw_rrect(canvas, rr, occRR); } namespace skiagm { @@ -272,7 +272,7 @@ protected: draw_90(canvas, SkVector::Make(1.0f, 0.0f), 64, center); draw_90(canvas, SkVector::Make(0.0f, 1.0f), 64, center); - static const SkScalar kRoot3Over2 = 0.8660254037844386f; + constexpr SkScalar kRoot3Over2 = 0.8660254037844386f; draw_30_60(canvas, SkRRect::kLowerLeft_Corner, SkVector::Make(0.5f, kRoot3Over2), 120, center); @@ -310,8 +310,8 @@ protected: } private: - static const int kWidth = 440; - static const int kHeight = 440; + static constexpr int kWidth = 440; + static constexpr int kHeight = 440; typedef GM INHERITED; }; diff --git a/gm/patchgrid.cpp b/gm/patchgrid.cpp index 962c1a9dff..a36e58f727 100644 --- a/gm/patchgrid.cpp +++ b/gm/patchgrid.cpp @@ -105,8 +105,8 @@ protected: {{50,325},{150,325},{250,325},{350,325},{450,325}} }; - static const int kRows = 3; - static const int kCols = 4; + constexpr int kRows = 3; + constexpr int kCols = 4; canvas->scale(3, 3); SkPatchGrid grid(kRows, kCols, SkPatchGrid::kColors_VertexType, nullptr); diff --git a/gm/pathcontourstart.cpp b/gm/pathcontourstart.cpp index 56f6492eb1..0e85e38796 100644 --- a/gm/pathcontourstart.cpp +++ b/gm/pathcontourstart.cpp @@ -90,8 +90,8 @@ protected: } private: - static const int kImageWidth = 1200; - static const int kImageHeight = 600; + static constexpr int kImageWidth = 1200; + static constexpr int kImageHeight = 600; SkPaint fDashPaint, fPointsPaint; SkRect fRect; diff --git a/gm/patheffects.cpp b/gm/patheffects.cpp index 9821b3a35d..9a1f62d7c8 100644 --- a/gm/patheffects.cpp +++ b/gm/patheffects.cpp @@ -48,7 +48,7 @@ static void dash_pe(SkPaint* paint) { compose_pe(paint); } -static const int gXY[] = { +constexpr int gXY[] = { 4, 0, 0, -4, 8, -4, 12, 0, 8, 4, 0, 4 }; @@ -73,7 +73,7 @@ static void one_d_pe(SkPaint* paint) { } typedef void (*PE_Proc)(SkPaint*); -static const PE_Proc gPE[] = { hair_pe, hair2_pe, stroke_pe, dash_pe, one_d_pe }; +constexpr PE_Proc gPE[] = { hair_pe, hair2_pe, stroke_pe, dash_pe, one_d_pe }; static void fill_pe(SkPaint* paint) { paint->setStyle(SkPaint::kFill_Style); @@ -98,7 +98,7 @@ static void tile_pe(SkPaint* paint) { paint->setPathEffect(MakeTileEffect()); } -static const PE_Proc gPE2[] = { fill_pe, discrete_pe, tile_pe }; +constexpr PE_Proc gPE2[] = { fill_pe, discrete_pe, tile_pe }; class PathEffectGM : public GM { public: diff --git a/gm/pathfill.cpp b/gm/pathfill.cpp index b4010ce606..3496cfd04d 100644 --- a/gm/pathfill.cpp +++ b/gm/pathfill.cpp @@ -23,7 +23,7 @@ static SkScalar make_frame(SkPath* path) { } static SkScalar make_triangle(SkPath* path) { - static const int gCoord[] = { + constexpr int gCoord[] = { 10, 20, 15, 5, 30, 30 }; path->moveTo(SkIntToScalar(gCoord[0]), SkIntToScalar(gCoord[1])); @@ -102,7 +102,7 @@ static SkScalar make_line(SkPath* path) { return SkIntToScalar(40); } -static const MakePathProc gProcs[] = { +constexpr MakePathProc gProcs[] = { make_frame, make_triangle, make_rect, diff --git a/gm/perspshaders.cpp b/gm/perspshaders.cpp index 2b09cc64e0..b231291c65 100644 --- a/gm/perspshaders.cpp +++ b/gm/perspshaders.cpp @@ -56,10 +56,10 @@ protected: { 0, 0 }, { 0, SkIntToScalar(kCellSize) } }; - static const SkColor colors[] = { + constexpr SkColor colors[] = { SK_ColorRED, SK_ColorGREEN, SK_ColorRED, SK_ColorGREEN, SK_ColorRED }; - static const SkScalar pos[] = { 0, 0.25f, 0.5f, 0.75f, SK_Scalar1 }; + constexpr SkScalar pos[] = { 0, 0.25f, 0.5f, 0.75f, SK_Scalar1 }; fLinearGrad1 = SkGradientShader::MakeLinear(pts1, colors, pos, SK_ARRAY_COUNT(colors), SkShader::kClamp_TileMode); @@ -151,9 +151,9 @@ protected: canvas->translate(0, SkIntToScalar(kCellSize)); } private: - static const int kCellSize = 50; - static const int kNumRows = 4; - static const int kNumCols = 6; + static constexpr int kCellSize = 50; + static constexpr int kNumRows = 4; + static constexpr int kNumCols = 6; bool fDoAA; SkPath fPath; diff --git a/gm/pictureimagegenerator.cpp b/gm/pictureimagegenerator.cpp index 60e979fc3c..95efbb2055 100644 --- a/gm/pictureimagegenerator.cpp +++ b/gm/pictureimagegenerator.cpp @@ -16,10 +16,10 @@ #include "SkPictureRecorder.h" static void draw_vector_logo(SkCanvas* canvas, const SkRect& viewBox) { - static const char kSkiaStr[] = "SKIA"; - static const SkScalar kGradientPad = .1f; - static const SkScalar kVerticalSpacing = 0.25f; - static const SkScalar kAccentScale = 1.20f; + constexpr char kSkiaStr[] = "SKIA"; + constexpr SkScalar kGradientPad = .1f; + constexpr SkScalar kVerticalSpacing = 0.25f; + constexpr SkScalar kAccentScale = 1.20f; SkPaint paint; paint.setAntiAlias(true); diff --git a/gm/pictureshadertile.cpp b/gm/pictureshadertile.cpp index 877431854c..10d5e5db37 100644 --- a/gm/pictureshadertile.cpp +++ b/gm/pictureshadertile.cpp @@ -12,11 +12,11 @@ #include "SkPictureRecorder.h" #include "SkShader.h" -static const SkScalar kPictureSize = SK_Scalar1; -static const SkScalar kFillSize = 100; -static const unsigned kRowSize = 6; +constexpr SkScalar kPictureSize = SK_Scalar1; +constexpr SkScalar kFillSize = 100; +constexpr unsigned kRowSize = 6; -static const struct { +constexpr struct { SkScalar x, y, w, h; SkScalar offsetX, offsetY; } tiles[] = { diff --git a/gm/pixelsnap.cpp b/gm/pixelsnap.cpp index 1711f5e36d..18fb7b2b75 100644 --- a/gm/pixelsnap.cpp +++ b/gm/pixelsnap.cpp @@ -17,15 +17,15 @@ public: protected: // kTrans should be even or checkboards wont agree in different test cases. - static const int kTrans = 14; - static const int kLabelPad = 4; + static constexpr int kTrans = 14; + static constexpr int kLabelPad = 4; // The inverse of this value should be a perfect SkScalar. - static const int kSubPixelSteps = 8; - static const int kLabelTextSize = 9; + static constexpr int kSubPixelSteps = 8; + static constexpr int kLabelTextSize = 9; static_assert(kSubPixelSteps < 99, "label_offset_too_small"); - static const int kLabelOffsetX = 2 * kLabelTextSize + kLabelPad; - static const int kLabelOffsetY = kLabelTextSize + kLabelPad; + static constexpr int kLabelOffsetX = 2 * kLabelTextSize + kLabelPad; + static constexpr int kLabelOffsetY = kLabelTextSize + kLabelPad; SkISize onISize() override { return SkISize::Make((kSubPixelSteps + 1) * kTrans + kLabelOffsetX + kLabelPad, diff --git a/gm/polygons.cpp b/gm/polygons.cpp index a5756bbcc7..00fe336a6f 100644 --- a/gm/polygons.cpp +++ b/gm/polygons.cpp @@ -98,10 +98,10 @@ protected: // Stroke widths are: // 0(may use hairline rendering), 10(common case for stroke-style) // 40(>= geometry width/height, make the contour filled in fact) - static const int kStrokeWidths[] = {0, 10, 40}; + constexpr int kStrokeWidths[] = {0, 10, 40}; SkASSERT(kNumStrokeWidths == SK_ARRAY_COUNT(kStrokeWidths)); - static const SkPaint::Join kJoins[] = { + constexpr SkPaint::Join kJoins[] = { SkPaint::kMiter_Join, SkPaint::kRound_Join, SkPaint::kBevel_Join }; SkASSERT(kNumJoins == SK_ARRAY_COUNT(kJoins)); @@ -131,7 +131,7 @@ protected: } // For stroke-and-fill style painter and fill style painter - static const SkPaint::Style kStyles[] = { + constexpr SkPaint::Style kStyles[] = { SkPaint::kStrokeAndFill_Style, SkPaint::kFill_Style }; SkASSERT(kNumExtraStyles == SK_ARRAY_COUNT(kStyles)); @@ -152,11 +152,11 @@ protected: } private: - static const int kNumPolygons = 8; - static const int kCellSize = 100; - static const int kNumExtraStyles = 2; - static const int kNumStrokeWidths = 3; - static const int kNumJoins = 3; + static constexpr int kNumPolygons = 8; + static constexpr int kCellSize = 100; + static constexpr int kNumExtraStyles = 2; + static constexpr int kNumStrokeWidths = 3; + static constexpr int kNumJoins = 3; SkTArray<SkPath> fPolygons; typedef GM INHERITED; diff --git a/gm/quadpaths.cpp b/gm/quadpaths.cpp index 359f62dd39..0578d2ea96 100644 --- a/gm/quadpaths.cpp +++ b/gm/quadpaths.cpp @@ -47,7 +47,7 @@ protected: SkPath::FillType fFill; const char* fName; }; - static const FillAndName gFills[] = { + constexpr FillAndName gFills[] = { {SkPath::kWinding_FillType, "Winding"}, {SkPath::kEvenOdd_FillType, "Even / Odd"}, {SkPath::kInverseWinding_FillType, "Inverse Winding"}, @@ -57,7 +57,7 @@ protected: SkPaint::Style fStyle; const char* fName; }; - static const StyleAndName gStyles[] = { + constexpr StyleAndName gStyles[] = { {SkPaint::kFill_Style, "Fill"}, {SkPaint::kStroke_Style, "Stroke"}, {SkPaint::kStrokeAndFill_Style, "Stroke And Fill"}, @@ -67,7 +67,7 @@ protected: SkPaint::Join fJoin; const char* fName; }; - static const CapAndName gCaps[] = { + constexpr CapAndName gCaps[] = { {SkPaint::kButt_Cap, SkPaint::kBevel_Join, "Butt"}, {SkPaint::kRound_Cap, SkPaint::kRound_Join, "Round"}, {SkPaint::kSquare_Cap, SkPaint::kBevel_Join, "Square"} @@ -190,7 +190,7 @@ protected: SkPath::FillType fFill; const char* fName; }; - static const FillAndName gFills[] = { + constexpr FillAndName gFills[] = { {SkPath::kWinding_FillType, "Winding"}, {SkPath::kEvenOdd_FillType, "Even / Odd"}, {SkPath::kInverseWinding_FillType, "Inverse Winding"}, @@ -200,7 +200,7 @@ protected: SkPaint::Style fStyle; const char* fName; }; - static const StyleAndName gStyles[] = { + constexpr StyleAndName gStyles[] = { {SkPaint::kFill_Style, "Fill"}, {SkPaint::kStroke_Style, "Stroke"}, {SkPaint::kStrokeAndFill_Style, "Stroke And Fill"}, @@ -210,7 +210,7 @@ protected: SkPaint::Join fJoin; const char* fName; }; - static const CapAndName gCaps[] = { + constexpr CapAndName gCaps[] = { {SkPaint::kButt_Cap, SkPaint::kBevel_Join, "Butt"}, {SkPaint::kRound_Cap, SkPaint::kRound_Join, "Round"}, {SkPaint::kSquare_Cap, SkPaint::kBevel_Join, "Square"} diff --git a/gm/recordopts.cpp b/gm/recordopts.cpp index 4a5248d0ea..b98d2cc14b 100644 --- a/gm/recordopts.cpp +++ b/gm/recordopts.cpp @@ -13,8 +13,8 @@ #include "SkColorFilterImageFilter.h" #include "SkPictureImageFilter.h" -static const int kTestRectSize = 50; -static const int kDetectorGreenValue = 50; +constexpr int kTestRectSize = 50; +constexpr int kDetectorGreenValue = 50; // Below are few functions to install "detector" color filters. The filter is there to assert that // the color value it sees is the expected. It will trigger only with kDetectorGreenValue, and diff --git a/gm/rectangletexture.cpp b/gm/rectangletexture.cpp index 3208c0d3ba..1359d34a69 100644 --- a/gm/rectangletexture.cpp +++ b/gm/rectangletexture.cpp @@ -127,9 +127,9 @@ protected: return; } - static const int kWidth = 50; - static const int kHeight = 50; - static const SkScalar kPad = 5.f; + constexpr int kWidth = 50; + constexpr int kHeight = 50; + constexpr SkScalar kPad = 5.f; SkPMColor pixels[kWidth * kHeight]; this->fillPixels(kWidth, kHeight, pixels); @@ -138,19 +138,19 @@ protected: if (!rectImg) { SkPaint paint; paint.setAntiAlias(true); - static const char* kMsg = "Could not create rectangle texture image."; + const char* kMsg = "Could not create rectangle texture image."; canvas->drawText(kMsg, strlen(kMsg), 10, 100, paint); return; } - static const SkFilterQuality kQualities[] = { + constexpr SkFilterQuality kQualities[] = { kNone_SkFilterQuality, kLow_SkFilterQuality, kMedium_SkFilterQuality, kHigh_SkFilterQuality, }; - static const SkScalar kScales[] = { 1.0f, 1.2f, 0.75f }; + constexpr SkScalar kScales[] = { 1.0f, 1.2f, 0.75f }; canvas->translate(kPad, kPad); for (auto s : kScales) { diff --git a/gm/rrect.cpp b/gm/rrect.cpp index 5106634728..660e72a647 100644 --- a/gm/rrect.cpp +++ b/gm/rrect.cpp @@ -136,7 +136,7 @@ protected: } void onDraw(SkCanvas* canvas) override { - static const InsetProc insetProcs[] = { + constexpr InsetProc insetProcs[] = { inset0, inset1, inset2, inset3 }; diff --git a/gm/rrectclipdrawpaint.cpp b/gm/rrectclipdrawpaint.cpp index 3f5ded2be5..172faccd9e 100644 --- a/gm/rrectclipdrawpaint.cpp +++ b/gm/rrectclipdrawpaint.cpp @@ -32,8 +32,8 @@ DEF_SIMPLE_GM(rrect_clip_draw_paint, canvas, 256, 256) { canvas->drawPaint(p); canvas->restore(); - static constexpr SkPoint kPts[] = {{0.f, 0.f}, {256.f, 256.f}}; - static constexpr SkColor kColors1[] = {SK_ColorCYAN, SK_ColorGREEN}; + constexpr SkPoint kPts[] = {{0.f, 0.f}, {256.f, 256.f}}; + constexpr SkColor kColors1[] = {SK_ColorCYAN, SK_ColorGREEN}; p.setShader(SkGradientShader::MakeLinear(kPts, kColors1, nullptr, 2, SkShader::kClamp_TileMode)); canvas->concat(zoomOut); @@ -42,7 +42,7 @@ DEF_SIMPLE_GM(rrect_clip_draw_paint, canvas, 256, 256) { canvas->drawPaint(p); canvas->restore(); - static constexpr SkColor kColors2[] = {SK_ColorMAGENTA, SK_ColorGRAY}; + constexpr SkColor kColors2[] = {SK_ColorMAGENTA, SK_ColorGRAY}; p.setShader(SkGradientShader::MakeRadial({128.f, 128.f}, 128.f, kColors2, nullptr, 2, SkShader::kClamp_TileMode)); canvas->concat(zoomOut); diff --git a/gm/rrects.cpp b/gm/rrects.cpp index 0f3ac56fec..63b6dbc427 100644 --- a/gm/rrects.cpp +++ b/gm/rrects.cpp @@ -73,11 +73,11 @@ protected: paint.setAntiAlias(true); } - static const SkRect kMaxTileBound = SkRect::MakeWH(SkIntToScalar(kTileX), - SkIntToScalar(kTileY)); + const SkRect kMaxTileBound = SkRect::MakeWH(SkIntToScalar(kTileX), + SkIntToScalar(kTileY)); #ifdef SK_DEBUG - static const SkRect kMaxImageBound = SkRect::MakeWH(SkIntToScalar(kImageWidth), - SkIntToScalar(kImageHeight)); + const SkRect kMaxImageBound = SkRect::MakeWH(SkIntToScalar(kImageWidth), + SkIntToScalar(kImageHeight)); #endif #if SK_SUPPORT_GPU @@ -168,17 +168,17 @@ protected: private: Type fType; - static const int kImageWidth = 640; - static const int kImageHeight = 480; + static constexpr int kImageWidth = 640; + static constexpr int kImageHeight = 480; - static const int kTileX = 80; - static const int kTileY = 40; + static constexpr int kTileX = 80; + static constexpr int kTileY = 40; - static const int kNumSimpleCases = 7; - static const int kNumComplexCases = 35; + static constexpr int kNumSimpleCases = 7; + static constexpr int kNumComplexCases = 35; static const SkVector gRadii[kNumComplexCases][4]; - static const int kNumRRects = kNumSimpleCases + kNumComplexCases; + static constexpr int kNumRRects = kNumSimpleCases + kNumComplexCases; SkRRect fRRects[kNumRRects]; typedef GM INHERITED; diff --git a/gm/samplerstress.cpp b/gm/samplerstress.cpp index ee87f091f9..64a42b9630 100644 --- a/gm/samplerstress.cpp +++ b/gm/samplerstress.cpp @@ -42,8 +42,8 @@ protected: return; } - static const int xSize = 16; - static const int ySize = 16; + constexpr int xSize = 16; + constexpr int ySize = 16; fTexture.allocN32Pixels(xSize, ySize); SkPMColor* addr = fTexture.getAddr32(0, 0); diff --git a/gm/shadertext.cpp b/gm/shadertext.cpp index f794481399..7d54e77a9a 100644 --- a/gm/shadertext.cpp +++ b/gm/shadertext.cpp @@ -37,11 +37,11 @@ struct GradData { const SkScalar* fPos; }; -static const SkColor gColors[] = { +constexpr SkColor gColors[] = { SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, SK_ColorWHITE, SK_ColorBLACK }; -static const GradData gGradData[] = { +constexpr GradData gGradData[] = { { 2, gColors, nullptr }, { 5, gColors, nullptr }, }; @@ -79,7 +79,7 @@ static sk_sp<SkShader> Make2Conical(const SkPoint pts[2], const GradData& data, typedef sk_sp<SkShader> (*GradMaker)(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm); -static const GradMaker gGradMakers[] = { +constexpr GradMaker gGradMakers[] = { MakeLinear, MakeRadial, MakeSweep, Make2Conical }; @@ -119,9 +119,9 @@ protected: SkShader::kMirror_TileMode }; - static const int gradCount = SK_ARRAY_COUNT(gGradData) * + constexpr int gradCount = SK_ARRAY_COUNT(gGradData) * SK_ARRAY_COUNT(gGradMakers); - static const int bmpCount = SK_ARRAY_COUNT(tileModes) * + constexpr int bmpCount = SK_ARRAY_COUNT(tileModes) * SK_ARRAY_COUNT(tileModes); sk_sp<SkShader> shaders[gradCount + bmpCount]; @@ -158,9 +158,9 @@ protected: false); path.close(); - static const int testsPerCol = 8; - static const int rowHeight = 60; - static const int colWidth = 300; + constexpr int testsPerCol = 8; + constexpr int rowHeight = 60; + constexpr int colWidth = 300; canvas->save(); for (int s = 0; s < static_cast<int>(SK_ARRAY_COUNT(shaders)); s++) { canvas->save(); diff --git a/gm/shadertext2.cpp b/gm/shadertext2.cpp index 2ec1952599..6fd784ac7d 100644 --- a/gm/shadertext2.cpp +++ b/gm/shadertext2.cpp @@ -15,11 +15,11 @@ static void makebm(SkBitmap* bm, int w, int h) { SkCanvas canvas(*bm); SkScalar s = SkIntToScalar(SkMin32(w, h)); - static const SkPoint kPts0[] = { { 0, 0 }, { s, s } }; - static const SkPoint kPts1[] = { { s, 0 }, { 0, s } }; - static const SkScalar kPos[] = { 0, SK_Scalar1/2, SK_Scalar1 }; - static const SkColor kColors0[] = {0x40FF00FF, 0xF0FFFF00, 0x4000FFFF }; - static const SkColor kColors1[] = {0xF0FF00FF, 0x80FFFF00, 0xF000FFFF }; + const SkPoint kPts0[] = { { 0, 0 }, { s, s } }; + const SkPoint kPts1[] = { { s, 0 }, { 0, s } }; + const SkScalar kPos[] = { 0, SK_Scalar1/2, SK_Scalar1 }; + const SkColor kColors0[] = {0x40FF00FF, 0xF0FFFF00, 0x4000FFFF }; + const SkColor kColors1[] = {0xF0FF00FF, 0x80FFFF00, 0xF000FFFF }; SkPaint paint; @@ -41,9 +41,9 @@ struct LabeledMatrix { DEF_SIMPLE_GM_BG(shadertext2, canvas, 1800, 900, sk_tool_utils::color_to_565(0xFFDDDDDD)) { - static const char kText[] = "SKIA"; - static const int kTextLen = SK_ARRAY_COUNT(kText) - 1; - static const int kPointSize = 55; + constexpr char kText[] = "SKIA"; + constexpr int kTextLen = SK_ARRAY_COUNT(kText) - 1; + constexpr int kPointSize = 55; SkTDArray<LabeledMatrix> matrices; matrices.append()->fMatrix.reset(); @@ -105,7 +105,7 @@ DEF_SIMPLE_GM_BG(shadertext2, canvas, 1800, 900, canvas->drawBitmap(bmp, 0, 0); canvas->translate(0, bmp.height() + labelPaint.getTextSize() + 15.f); - static const char kLabelLabel[] = "localM / canvasM"; + constexpr char kLabelLabel[] = "localM / canvasM"; canvas->drawText(kLabelLabel, strlen(kLabelLabel), 0, 0, labelPaint); canvas->translate(0, 15.f); @@ -172,8 +172,8 @@ DEF_SIMPLE_GM_BG(shadertext2, canvas, 1800, 900, if (0 == s) { canvas->drawLine(0.f, -kPadY, 0.f, columnH + kPadY, outlinePaint); canvas->translate(kPadX / 2, 0.f); - static const char kFillLabel[] = "Filled"; - static const char kStrokeLabel[] = "Stroked"; + constexpr char kFillLabel[] = "Filled"; + constexpr char kStrokeLabel[] = "Stroked"; SkScalar y = columnH + kPadY / 2; SkScalar fillX = -outlinePaint.measureText(kFillLabel, strlen(kFillLabel)) - kPadX; SkScalar strokeX = kPadX; diff --git a/gm/shadertext3.cpp b/gm/shadertext3.cpp index 9f3301ee04..b811ac97e4 100644 --- a/gm/shadertext3.cpp +++ b/gm/shadertext3.cpp @@ -17,11 +17,11 @@ static void makebm(SkBitmap* bm, int w, int h) { SkCanvas canvas(*bm); SkScalar s = SkIntToScalar(SkMin32(w, h)); - static const SkPoint kPts0[] = { { 0, 0 }, { s, s } }; - static const SkPoint kPts1[] = { { s/2, 0 }, { s/2, s } }; - static const SkScalar kPos[] = { 0, SK_Scalar1/2, SK_Scalar1 }; - static const SkColor kColors0[] = {0x80F00080, 0xF0F08000, 0x800080F0 }; - static const SkColor kColors1[] = {0xF08000F0, 0x8080F000, 0xF000F080 }; + const SkPoint kPts0[] = { { 0, 0 }, { s, s } }; + const SkPoint kPts1[] = { { s/2, 0 }, { s/2, s } }; + const SkScalar kPos[] = { 0, SK_Scalar1/2, SK_Scalar1 }; + const SkColor kColors0[] = {0x80F00080, 0xF0F08000, 0x800080F0 }; + const SkColor kColors1[] = {0xF08000F0, 0x8080F000, 0xF000F080 }; SkPaint paint; @@ -41,9 +41,9 @@ struct LabeledMatrix { const char* fLabel; }; -static const char kText[] = "B"; -static const int kTextLen = SK_ARRAY_COUNT(kText) - 1; -static const int kPointSize = 300; +constexpr char kText[] = "B"; +constexpr int kTextLen = SK_ARRAY_COUNT(kText) - 1; +constexpr int kPointSize = 300; class ShaderText3GM : public GM { public: @@ -83,7 +83,7 @@ protected: // draw glyphs scaled up canvas->scale(2.f, 2.f); - static const SkShader::TileMode kTileModes[] = { + constexpr SkShader::TileMode kTileModes[] = { SkShader::kRepeat_TileMode, SkShader::kMirror_TileMode, }; diff --git a/gm/shadowmaps.cpp b/gm/shadowmaps.cpp index d8682ce44f..acbf27532b 100644 --- a/gm/shadowmaps.cpp +++ b/gm/shadowmaps.cpp @@ -84,8 +84,8 @@ public: } protected: - static const int kWidth = 400; - static const int kHeight = 400; + constexpr int kWidth = 400; + constexpr int kHeight = 400; SkString onShortName() override { return SkString("shadowmaps"); diff --git a/gm/shadows.cpp b/gm/shadows.cpp index fcaeeb72d3..e642070db8 100644 --- a/gm/shadows.cpp +++ b/gm/shadows.cpp @@ -87,7 +87,7 @@ protected: SkBlurDrawLooper::kHighQuality_BlurFlag), }; - static const struct { + constexpr struct { SkColor fColor; SkScalar fStrokeWidth; } gRec[] = { diff --git a/gm/simpleaaclip.cpp b/gm/simpleaaclip.cpp index 3b10c47ea0..b5aa3ae2a3 100644 --- a/gm/simpleaaclip.cpp +++ b/gm/simpleaaclip.cpp @@ -141,7 +141,7 @@ protected: void onDraw(SkCanvas* canvas) override { - static const struct { + const struct { SkColor fColor; const char* fName; SkRegion::Op fOp; diff --git a/gm/smallpaths.cpp b/gm/smallpaths.cpp index 926b2a2273..ddbb60dcfd 100644 --- a/gm/smallpaths.cpp +++ b/gm/smallpaths.cpp @@ -11,7 +11,7 @@ typedef SkScalar (*MakePathProc)(SkPath*); static SkScalar make_triangle(SkPath* path) { - static const int gCoord[] = { + constexpr int gCoord[] = { 10, 20, 15, 5, 30, 30 }; path->moveTo(SkIntToScalar(gCoord[0]), SkIntToScalar(gCoord[1])); @@ -154,7 +154,7 @@ static SkScalar make_battery2(SkPath* path) { return SkIntToScalar(70); } -static const MakePathProc gProcs[] = { +constexpr MakePathProc gProcs[] = { make_triangle, make_rect, make_oval, @@ -167,7 +167,7 @@ static const MakePathProc gProcs[] = { make_battery2 }; -static const SkScalar gWidths[] = { +constexpr SkScalar gWidths[] = { 2.0f, 3.0f, 4.0f, @@ -180,7 +180,7 @@ static const SkScalar gWidths[] = { 0.0f, }; -static const SkScalar gMiters[] = { +constexpr SkScalar gMiters[] = { 2.0f, 3.0f, 3.0f, diff --git a/gm/stringart.cpp b/gm/stringart.cpp index 1da87578d0..e21e8f2b51 100644 --- a/gm/stringart.cpp +++ b/gm/stringart.cpp @@ -12,10 +12,10 @@ // Reproduces https://code.google.com/p/chromium/issues/detail?id=279014 -static const int kWidth = 440; -static const int kHeight = 440; -static const SkScalar kAngle = 0.305f; -static const int kMaxNumSteps = 140; +constexpr int kWidth = 440; +constexpr int kHeight = 440; +constexpr SkScalar kAngle = 0.305f; +constexpr int kMaxNumSteps = 140; // Renders a string art shape. // The particular shape rendered can be controlled by adjusting kAngle, from 0 to 1 @@ -61,7 +61,7 @@ protected: } bool onAnimate(const SkAnimTimer& timer) override { - static const SkScalar kDesiredDurationSecs = 3.0f; + constexpr SkScalar kDesiredDurationSecs = 3.0f; // Make the animation ping-pong back and forth but start in the fully drawn state SkScalar fraction = 1.0f - timer.scaled(2.0f/kDesiredDurationSecs, 2.0f); diff --git a/gm/stroke_rect_shader.cpp b/gm/stroke_rect_shader.cpp index 0eb09e9a6f..1826f629f6 100644 --- a/gm/stroke_rect_shader.cpp +++ b/gm/stroke_rect_shader.cpp @@ -14,9 +14,9 @@ namespace skiagm { // bevel, miter, miter-limited-to-bevel, round // and as a hairline. DEF_SIMPLE_GM(stroke_rect_shader, canvas, 690, 300) { - static constexpr SkRect kRect {0, 0, 100, 100}; - static constexpr SkPoint kPts[] {{kRect.fLeft, kRect.fTop}, {kRect.fRight, kRect.fBottom}}; - static constexpr SkColor kColors[] {SK_ColorRED, SK_ColorBLUE}; + constexpr SkRect kRect {0, 0, 100, 100}; + constexpr SkPoint kPts[] {{kRect.fLeft, kRect.fTop}, {kRect.fRight, kRect.fBottom}}; + constexpr SkColor kColors[] {SK_ColorRED, SK_ColorBLUE}; SkPaint paint; sk_sp<SkShader> shader = SkGradientShader::MakeLinear(kPts, kColors, nullptr, 2, SkShader::kClamp_TileMode); @@ -25,12 +25,12 @@ DEF_SIMPLE_GM(stroke_rect_shader, canvas, 690, 300) { // Do a large initial translate so that local coords disagree with device coords significantly // for the first rect drawn. canvas->translate(kRect.centerX(), kRect.centerY()); - static constexpr SkScalar kPad = 20; + constexpr SkScalar kPad = 20; for (auto aa : {false, true}) { paint.setAntiAlias(aa); canvas->save(); - static constexpr SkScalar kStrokeWidth = 10; + constexpr SkScalar kStrokeWidth = 10; paint.setStrokeWidth(kStrokeWidth); paint.setStrokeJoin(SkPaint::kBevel_Join); diff --git a/gm/strokedlines.cpp b/gm/strokedlines.cpp index f0eb6b45cf..7bcb3fb578 100644 --- a/gm/strokedlines.cpp +++ b/gm/strokedlines.cpp @@ -13,12 +13,12 @@ #include "SkPath.h" #include "SkPoint3.h" -static const int kNumColumns = 6; -static const int kNumRows = 8; -static const int kRadius = 40; // radius of the snowflake -static const int kPad = 5; // padding on both sides of the snowflake -static const int kNumSpokes = 6; -static const SkScalar kStrokeWidth = 5.0f; +constexpr int kNumColumns = 6; +constexpr int kNumRows = 8; +constexpr int kRadius = 40; // radius of the snowflake +constexpr int kPad = 5; // padding on both sides of the snowflake +constexpr int kNumSpokes = 6; +constexpr SkScalar kStrokeWidth = 5.0f; static void draw_fins(SkCanvas* canvas, const SkPoint& offset, float angle, const SkPaint& paint) { SkScalar cos, sin; diff --git a/gm/strokerect.cpp b/gm/strokerect.cpp index 7b14854d76..1d5d803ca6 100644 --- a/gm/strokerect.cpp +++ b/gm/strokerect.cpp @@ -63,13 +63,13 @@ protected: paint.setStyle(SkPaint::kStroke_Style); paint.setStrokeWidth(STROKE_WIDTH); - static const SkPaint::Join gJoins[] = { + constexpr SkPaint::Join gJoins[] = { SkPaint::kMiter_Join, SkPaint::kRound_Join, SkPaint::kBevel_Join }; - static const SkScalar W = 80; - static const SkScalar H = 80; - static const SkRect gRects[] = { + constexpr SkScalar W = 80; + constexpr SkScalar H = 80; + constexpr SkRect gRects[] = { { 0, 0, W, H }, { W, 0, 0, H }, { 0, H, W, 0 }, diff --git a/gm/strokerects.cpp b/gm/strokerects.cpp index afd41b2206..fc5743eb74 100644 --- a/gm/strokerects.cpp +++ b/gm/strokerects.cpp @@ -16,8 +16,8 @@ namespace skiagm { #define H 400 #define N 100 -static const SkScalar SW = SkIntToScalar(W); -static const SkScalar SH = SkIntToScalar(H); +constexpr SkScalar SW = SkIntToScalar(W); +constexpr SkScalar SH = SkIntToScalar(H); class StrokeRectsGM : public GM { public: diff --git a/gm/strokes.cpp b/gm/strokes.cpp index afbe5ee4da..218f845c6e 100644 --- a/gm/strokes.cpp +++ b/gm/strokes.cpp @@ -15,8 +15,8 @@ #define H 400 #define N 50 -static const SkScalar SW = SkIntToScalar(W); -static const SkScalar SH = SkIntToScalar(H); +constexpr SkScalar SW = SkIntToScalar(W); +constexpr SkScalar SH = SkIntToScalar(H); static void rnd_rect(SkRect* r, SkPaint* paint, SkRandom& rand) { SkScalar x = rand.nextUScalar1() * W; diff --git a/gm/tallstretchedbitmaps.cpp b/gm/tallstretchedbitmaps.cpp index f22f2d2663..b70ae3dc35 100644 --- a/gm/tallstretchedbitmaps.cpp +++ b/gm/tallstretchedbitmaps.cpp @@ -12,12 +12,12 @@ #include "SkRandom.h" int make_bm(SkBitmap* bm, int height) { - static const int kRadius = 22; - static const int kMargin = 8; - static const SkScalar kStartAngle = 0; - static const SkScalar kDAngle = 25; - static const SkScalar kSweep = 320; - static const SkScalar kThickness = 8; + constexpr int kRadius = 22; + constexpr int kMargin = 8; + constexpr SkScalar kStartAngle = 0; + constexpr SkScalar kDAngle = 25; + constexpr SkScalar kSweep = 320; + constexpr SkScalar kThickness = 8; int count = (height / (2 * kRadius + kMargin)); height = count * (2 * kRadius + kMargin); diff --git a/gm/texdata.cpp b/gm/texdata.cpp index 0c23749e02..5fb90839f9 100644 --- a/gm/texdata.cpp +++ b/gm/texdata.cpp @@ -17,7 +17,7 @@ #include "effects/GrPorterDuffXferProcessor.h" #include "effects/GrSimpleTextureEffect.h" -static const int S = 200; +constexpr int S = 200; DEF_SIMPLE_GM_BG(texdata, canvas, 2 * S, 2 * S, SK_ColorBLACK) { GrDrawContext* drawContext = canvas->internal_private_accessTopLayerDrawContext(); @@ -32,13 +32,13 @@ DEF_SIMPLE_GM_BG(texdata, canvas, 2 * S, 2 * S, SK_ColorBLACK) { } SkAutoTArray<SkPMColor> gTextureData((2 * S) * (2 * S)); - static const int stride = 2 * S; - static const SkPMColor gray = SkPackARGB32(0x40, 0x40, 0x40, 0x40); - static const SkPMColor white = SkPackARGB32(0xff, 0xff, 0xff, 0xff); - static const SkPMColor red = SkPackARGB32(0x80, 0x80, 0x00, 0x00); - static const SkPMColor blue = SkPackARGB32(0x80, 0x00, 0x00, 0x80); - static const SkPMColor green = SkPackARGB32(0x80, 0x00, 0x80, 0x00); - static const SkPMColor black = SkPackARGB32(0x00, 0x00, 0x00, 0x00); + constexpr int stride = 2 * S; + const SkPMColor gray = SkPackARGB32(0x40, 0x40, 0x40, 0x40); + const SkPMColor white = SkPackARGB32(0xff, 0xff, 0xff, 0xff); + const SkPMColor red = SkPackARGB32(0x80, 0x80, 0x00, 0x00); + const SkPMColor blue = SkPackARGB32(0x80, 0x00, 0x00, 0x80); + const SkPMColor green = SkPackARGB32(0x80, 0x00, 0x80, 0x00); + const SkPMColor black = SkPackARGB32(0x00, 0x00, 0x00, 0x00); for (int i = 0; i < 2; ++i) { int offset = 0; // fill upper-left diff --git a/gm/textblobblockreordering.cpp b/gm/textblobblockreordering.cpp index 31ba3c72de..ea90308b1f 100644 --- a/gm/textblobblockreordering.cpp +++ b/gm/textblobblockreordering.cpp @@ -79,8 +79,8 @@ protected: private: SkAutoTUnref<const SkTextBlob> fBlob; - static const int kWidth = 275; - static const int kHeight = 200; + static constexpr int kWidth = 275; + static constexpr int kHeight = 200; typedef GM INHERITED; }; diff --git a/gm/textblobcolortrans.cpp b/gm/textblobcolortrans.cpp index 0e4e0ff98b..1e7a66667a 100644 --- a/gm/textblobcolortrans.cpp +++ b/gm/textblobcolortrans.cpp @@ -89,8 +89,8 @@ protected: private: SkAutoTUnref<const SkTextBlob> fBlob; - static const int kWidth = 675; - static const int kHeight = 1600; + static constexpr int kWidth = 675; + static constexpr int kHeight = 1600; typedef GM INHERITED; }; diff --git a/gm/textblobgeometrychange.cpp b/gm/textblobgeometrychange.cpp index 5e3f0d15e6..9e33e95e74 100644 --- a/gm/textblobgeometrychange.cpp +++ b/gm/textblobgeometrychange.cpp @@ -65,8 +65,8 @@ protected: } private: - static const int kWidth = 200; - static const int kHeight = 200; + static constexpr int kWidth = 200; + static constexpr int kHeight = 200; typedef GM INHERITED; }; diff --git a/gm/textbloblooper.cpp b/gm/textbloblooper.cpp index 066546ee2b..752fd54a41 100644 --- a/gm/textbloblooper.cpp +++ b/gm/textbloblooper.cpp @@ -20,8 +20,8 @@ namespace skiagm { -static const int kWidth = 1250; -static const int kHeight = 700; +constexpr int kWidth = 1250; +constexpr int kHeight = 700; // Unlike the variant in sk_tool_utils, this version positions the glyphs on a diagonal static void add_to_text_blob(SkTextBlobBuilder* builder, const char* text, const SkPaint& origPaint, diff --git a/gm/textblobmixedsizes.cpp b/gm/textblobmixedsizes.cpp index 4e3f0eaeb5..6ce0eafe62 100644 --- a/gm/textblobmixedsizes.cpp +++ b/gm/textblobmixedsizes.cpp @@ -118,8 +118,8 @@ protected: SkRect bounds = fBlob->bounds(); - static const int kPadX = SkScalarFloorToInt(bounds.width() / 3); - static const int kPadY = SkScalarFloorToInt(bounds.height() / 3); + const int kPadX = SkScalarFloorToInt(bounds.width() / 3); + const int kPadY = SkScalarFloorToInt(bounds.height() / 3); int rowCount = 0; canvas->translate(SkIntToScalar(kPadX), SkIntToScalar(kPadY)); @@ -132,13 +132,13 @@ protected: } paint.setAntiAlias(false); - static const SkScalar kSigma = SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(8)); + const SkScalar kSigma = SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(8)); // setup blur paint SkPaint blurPaint(paint); blurPaint.setColor(sk_tool_utils::color_to_565(SK_ColorBLACK)); blurPaint.setMaskFilter(SkBlurMaskFilter::Make(kNormal_SkBlurStyle, kSigma)); - + for (int i = 0; i < 4; i++) { canvas->save(); switch (i % 2) { @@ -179,8 +179,8 @@ protected: private: SkAutoTUnref<const SkTextBlob> fBlob; - static const int kWidth = 2100; - static const int kHeight = 1900; + static constexpr int kWidth = 2100; + static constexpr int kHeight = 1900; bool fUseDFT; diff --git a/gm/textblobrandomfont.cpp b/gm/textblobrandomfont.cpp index 2e8249fc2c..583f4fc5b3 100644 --- a/gm/textblobrandomfont.cpp +++ b/gm/textblobrandomfont.cpp @@ -138,8 +138,8 @@ protected: private: SkAutoTUnref<const SkTextBlob> fBlob; - static const int kWidth = 2000; - static const int kHeight = 1600; + static constexpr int kWidth = 2000; + static constexpr int kHeight = 1600; typedef GM INHERITED; }; diff --git a/gm/textblobshader.cpp b/gm/textblobshader.cpp index 6a8fa49289..bb0e03c4f3 100644 --- a/gm/textblobshader.cpp +++ b/gm/textblobshader.cpp @@ -89,8 +89,8 @@ protected: p.setShader(fShader); SkISize sz = this->onISize(); - static const int kXCount = 4; - static const int kYCount = 3; + constexpr int kXCount = 4; + constexpr int kYCount = 3; for (int i = 0; i < kXCount; ++i) { for (int j = 0; j < kYCount; ++j) { canvas->drawTextBlob(fBlob, diff --git a/gm/textblobtransforms.cpp b/gm/textblobtransforms.cpp index eed18095f0..537ddb1616 100644 --- a/gm/textblobtransforms.cpp +++ b/gm/textblobtransforms.cpp @@ -160,8 +160,8 @@ protected: private: SkAutoTUnref<const SkTextBlob> fBlob; - static const int kWidth = 1000; - static const int kHeight = 1200; + static constexpr int kWidth = 1000; + static constexpr int kHeight = 1200; typedef GM INHERITED; }; diff --git a/gm/textblobuseaftergpufree.cpp b/gm/textblobuseaftergpufree.cpp index 61df533cf7..c104e9b121 100644 --- a/gm/textblobuseaftergpufree.cpp +++ b/gm/textblobuseaftergpufree.cpp @@ -62,8 +62,8 @@ protected: } private: - static const int kWidth = 200; - static const int kHeight = 200; + static constexpr int kWidth = 200; + static constexpr int kHeight = 200; typedef GM INHERITED; }; diff --git a/gm/texteffects.cpp b/gm/texteffects.cpp index f0d2752f74..c89b4e003b 100644 --- a/gm/texteffects.cpp +++ b/gm/texteffects.cpp @@ -146,7 +146,7 @@ static void r9(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) { typedef void (*raster_proc)(SkLayerRasterizer::Builder*, SkPaint&); -static const raster_proc gRastProcs[] = { +constexpr raster_proc gRastProcs[] = { r0, r1, r2, r3, r4, r5, r6, r7, r8, r9 }; diff --git a/gm/texturedomaineffect.cpp b/gm/texturedomaineffect.cpp index ba574b6b09..2dd340e425 100644 --- a/gm/texturedomaineffect.cpp +++ b/gm/texturedomaineffect.cpp @@ -138,19 +138,15 @@ protected: } private: - static const SkScalar kDrawPad; - static const SkScalar kTestPad; - static const int kTargetWidth = 100; - static const int kTargetHeight = 100; + static constexpr SkScalar kDrawPad = 10.f; + static constexpr SkScalar kTestPad = 10.f;; + static constexpr int kTargetWidth = 100; + static constexpr int kTargetHeight = 100; SkBitmap fBmp; typedef GM INHERITED; }; -// Windows builds did not like SkScalar initialization in class :( -const SkScalar TextureDomainEffect::kDrawPad = 10.f; -const SkScalar TextureDomainEffect::kTestPad = 10.f; - DEF_GM(return new TextureDomainEffect;) } diff --git a/gm/thinrects.cpp b/gm/thinrects.cpp index a25176c476..999028c7ec 100644 --- a/gm/thinrects.cpp +++ b/gm/thinrects.cpp @@ -65,7 +65,7 @@ protected: private: static void DrawVertRects(SkCanvas* canvas, const SkPaint& p) { - static const SkRect vertRects[] = { + constexpr SkRect vertRects[] = { { 1, 1, 5.0f, 21 }, // 4 pix wide { 8, 1, 10.0f, 21 }, // 2 pix wide { 13, 1, 14.0f, 21 }, // 1 pix wide @@ -81,7 +81,7 @@ private: } static void DrawHorizRects(SkCanvas* canvas, const SkPaint& p) { - static const SkRect horizRects[] = { + constexpr SkRect horizRects[] = { { 1, 1, 21, 5.0f }, // 4 pix high { 1, 8, 21, 10.0f }, // 2 pix high { 1, 13, 21, 14.0f }, // 1 pix high @@ -97,7 +97,7 @@ private: } static void DrawSquares(SkCanvas* canvas, const SkPaint& p) { - static const SkRect squares[] = { + constexpr SkRect squares[] = { { 1, 1, 5.0f, 5.0f }, // 4 pix { 8, 8, 10.0f, 10.0f }, // 2 pix { 13, 13, 14.0f, 14.0f }, // 1 pix diff --git a/gm/thinstrokedrects.cpp b/gm/thinstrokedrects.cpp index 73e1f529df..a4f2f1318b 100644 --- a/gm/thinstrokedrects.cpp +++ b/gm/thinstrokedrects.cpp @@ -32,10 +32,10 @@ protected: paint.setStyle(SkPaint::kStroke_Style); paint.setAntiAlias(true); - static const SkRect rect = { 0, 0, 10, 10 }; - static const SkRect rect2 = { 0, 0, 20, 20 }; + constexpr SkRect rect = { 0, 0, 10, 10 }; + constexpr SkRect rect2 = { 0, 0, 20, 20 }; - static const SkScalar gStrokeWidths[] = { + constexpr SkScalar gStrokeWidths[] = { 4, 2, 1, 0.5f, 0.25f, 0.125f, 0 }; diff --git a/gm/tilemodes.cpp b/gm/tilemodes.cpp index c944fe7b7a..b1f6d14984 100644 --- a/gm/tilemodes.cpp +++ b/gm/tilemodes.cpp @@ -39,7 +39,7 @@ static void setup(SkPaint* paint, const SkBitmap& bm, bool filter, paint->setFilterQuality(filter ? kLow_SkFilterQuality : kNone_SkFilterQuality); } -static const SkColorType gColorTypes[] = { +constexpr SkColorType gColorTypes[] = { kN32_SkColorType, kRGB_565_SkColorType, }; @@ -82,13 +82,14 @@ protected: SkRect r = { 0, 0, SkIntToScalar(size*2), SkIntToScalar(size*2) }; - static const char* gConfigNames[] = { "8888", "565", "4444" }; + const char* gConfigNames[] = { "8888", "565", "4444" }; - static const bool gFilters[] = { false, true }; - static const char* gFilterNames[] = { "point", "bilinear" }; + constexpr bool gFilters[] = { false, true }; + static const char* gFilterNames[] = { "point", "bilinear" }; - static const SkShader::TileMode gModes[] = { SkShader::kClamp_TileMode, SkShader::kRepeat_TileMode, SkShader::kMirror_TileMode }; - static const char* gModeNames[] = { "C", "R", "M" }; + constexpr SkShader::TileMode gModes[] = { + SkShader::kClamp_TileMode, SkShader::kRepeat_TileMode, SkShader::kMirror_TileMode }; + static const char* gModeNames[] = { "C", "R", "M" }; SkScalar y = SkIntToScalar(24); SkScalar x = SkIntToScalar(10); @@ -153,8 +154,8 @@ private: typedef skiagm::GM INHERITED; }; -static const int gWidth = 32; -static const int gHeight = 32; +constexpr int gWidth = 32; +constexpr int gHeight = 32; static sk_sp<SkShader> make_bm(SkShader::TileMode tx, SkShader::TileMode ty) { SkBitmap bm; @@ -205,10 +206,10 @@ protected: const SkScalar h = SkIntToScalar(gHeight); SkRect r = { -w, -h, w*2, h*2 }; - static const SkShader::TileMode gModes[] = { + constexpr SkShader::TileMode gModes[] = { SkShader::kClamp_TileMode, SkShader::kRepeat_TileMode, SkShader::kMirror_TileMode }; - static const char* gModeNames[] = { + const char* gModeNames[] = { "Clamp", "Repeat", "Mirror" }; diff --git a/gm/tilemodes_scaled.cpp b/gm/tilemodes_scaled.cpp index 897c829a24..580931f278 100644 --- a/gm/tilemodes_scaled.cpp +++ b/gm/tilemodes_scaled.cpp @@ -38,7 +38,7 @@ static void setup(SkPaint* paint, const SkBitmap& bm, SkFilterQuality filter_lev paint->setFilterQuality(filter_level); } -static const SkColorType gColorTypes[] = { +constexpr SkColorType gColorTypes[] = { kN32_SkColorType, kRGB_565_SkColorType, }; @@ -81,17 +81,18 @@ protected: SkRect r = { 0, 0, SkIntToScalar(size*2), SkIntToScalar(size*2) }; - static const char* gColorTypeNames[] = { "8888" , "565", "4444" }; + const char* gColorTypeNames[] = { "8888" , "565", "4444" }; - static const SkFilterQuality gFilterQualitys[] = + constexpr SkFilterQuality gFilterQualitys[] = { kNone_SkFilterQuality, kLow_SkFilterQuality, kMedium_SkFilterQuality, kHigh_SkFilterQuality }; - static const char* gFilterNames[] = { "None", "Low", "Medium", "High" }; + const char* gFilterNames[] = { "None", "Low", "Medium", "High" }; - static const SkShader::TileMode gModes[] = { SkShader::kClamp_TileMode, SkShader::kRepeat_TileMode, SkShader::kMirror_TileMode }; - static const char* gModeNames[] = { "C", "R", "M" }; + constexpr SkShader::TileMode gModes[] = { + SkShader::kClamp_TileMode, SkShader::kRepeat_TileMode, SkShader::kMirror_TileMode }; + const char* gModeNames[] = { "C", "R", "M" }; SkScalar y = SkIntToScalar(24); SkScalar x = SkIntToScalar(10)/scale; @@ -156,8 +157,8 @@ private: typedef skiagm::GM INHERITED; }; -static const int gWidth = 32; -static const int gHeight = 32; +constexpr int gWidth = 32; +constexpr int gHeight = 32; static sk_sp<SkShader> make_bm(SkShader::TileMode tx, SkShader::TileMode ty) { SkBitmap bm; @@ -209,10 +210,10 @@ protected: const SkScalar h = SkIntToScalar(gHeight); SkRect r = { -w, -h, w*2, h*2 }; - static const SkShader::TileMode gModes[] = { + constexpr SkShader::TileMode gModes[] = { SkShader::kClamp_TileMode, SkShader::kRepeat_TileMode, SkShader::kMirror_TileMode }; - static const char* gModeNames[] = { + const char* gModeNames[] = { "Clamp", "Repeat", "Mirror" }; diff --git a/gm/typeface.cpp b/gm/typeface.cpp index d22a276862..8303b37358 100644 --- a/gm/typeface.cpp +++ b/gm/typeface.cpp @@ -71,7 +71,7 @@ static void drawKernText(SkCanvas* canvas, const void* text, size_t len, canvas->drawPosText(glyphs, glyphCount * sizeof(uint16_t), pos, glyphPaint); } -static const struct { +constexpr struct { const char* fName; SkTypeface::Style fStyle; } gFaceStyles[] = { @@ -89,7 +89,7 @@ static const struct { { "monospace", SkTypeface::kBoldItalic }, }; -static const int gFaceStylesCount = SK_ARRAY_COUNT(gFaceStyles); +constexpr int gFaceStylesCount = SK_ARRAY_COUNT(gFaceStyles); class TypefaceStylesGM : public skiagm::GM { sk_sp<SkTypeface> fFaces[gFaceStylesCount]; diff --git a/gm/variedtext.cpp b/gm/variedtext.cpp index e33c40b743..b17bb7012a 100644 --- a/gm/variedtext.cpp +++ b/gm/variedtext.cpp @@ -72,8 +72,8 @@ protected: fColors[i] |= 0xFF000000; fColors[i] = sk_tool_utils::color_to_565(fColors[i]); - static const SkScalar kMinPtSize = 8.f; - static const SkScalar kMaxPtSize = 32.f; + constexpr SkScalar kMinPtSize = 8.f; + constexpr SkScalar kMaxPtSize = 32.f; fPtSizes[i] = random.nextRangeScalar(kMinPtSize, kMaxPtSize); @@ -134,9 +134,9 @@ protected: bool runAsBench() const override { return true; } private: - static const int kCnt = 30; - static const int kMinLength = 15; - static const int kMaxLength = 40; + static constexpr int kCnt = 30; + static constexpr int kMinLength = 15; + static constexpr int kMaxLength = 40; bool fEffectiveClip; bool fLCD; diff --git a/gm/vertices.cpp b/gm/vertices.cpp index 978d9e69c5..2d6e37d987 100644 --- a/gm/vertices.cpp +++ b/gm/vertices.cpp @@ -79,7 +79,7 @@ protected: void onDraw(SkCanvas* canvas) override { // start with the center of a 3x3 grid - static const uint16_t fan[] = { + constexpr uint16_t fan[] = { 4, 0, 1, 2, 5, 8, 7, 6, 3, 0 }; diff --git a/gm/verttext.cpp b/gm/verttext.cpp index 37cf37cbad..700fb25e41 100644 --- a/gm/verttext.cpp +++ b/gm/verttext.cpp @@ -13,17 +13,17 @@ namespace skiagm { #define TEXT_SIZE 48 -static const char gText[] = "Hello"; +constexpr char gText[] = "Hello"; //Before shaping -//static const char gText[] = "「テスト。」"; -//static const char gText[] = {0xE3,0x80,0x8C, 0xE3,0x83,0x86, 0xE3,0x82,0xB9, 0xE3,0x83,0x88, 0xE3,0x80,0x82, 0xE3,0x80,0x8D, 0x0}; +//constexpr char gText[] = "「テスト。」"; +//constexpr char gText[] = {0xE3,0x80,0x8C, 0xE3,0x83,0x86, 0xE3,0x82,0xB9, 0xE3,0x83,0x88, 0xE3,0x80,0x82, 0xE3,0x80,0x8D, 0x0}; //After shaping -//static const char gText[] = "﹁テスト︒﹂"; -//static const char gText[] = {0xEF,0xB9,0x81, 0xE3,0x83,0x86, 0xE3,0x82,0xB9, 0xE3,0x83,0x88, 0xEF,0xB8,0x92, 0xEF,0xB9,0x82, 0x0}; +//constexpr char gText[] = "﹁テスト︒﹂"; +//constexpr char gText[] = {0xEF,0xB9,0x81, 0xE3,0x83,0x86, 0xE3,0x82,0xB9, 0xE3,0x83,0x88, 0xEF,0xB8,0x92, 0xEF,0xB9,0x82, 0x0}; -static const size_t gLen = sizeof(gText) - sizeof(gText[0]); +constexpr size_t gLen = sizeof(gText) - sizeof(gText[0]); class VertTextGM : public GM { public: diff --git a/gm/xfermodeimagefilter.cpp b/gm/xfermodeimagefilter.cpp index ee6822a3f4..0ff0ea9dd1 100644 --- a/gm/xfermodeimagefilter.cpp +++ b/gm/xfermodeimagefilter.cpp @@ -148,7 +148,7 @@ protected: y += fBitmap.height() + MARGIN; } // Test cropping - static const size_t nbSamples = 3; + constexpr size_t nbSamples = 3; SkXfermode::Mode sampledModes[nbSamples] = {SkXfermode::kOverlay_Mode, SkXfermode::kSrcOver_Mode, SkXfermode::kPlus_Mode}; diff --git a/gm/xfermodes2.cpp b/gm/xfermodes2.cpp index b0d6ca3def..6f7d05475c 100644 --- a/gm/xfermodes2.cpp +++ b/gm/xfermodes2.cpp @@ -84,7 +84,7 @@ protected: private: void onOnceBeforeDraw() override { - static const uint32_t kCheckData[] = { + const uint32_t kCheckData[] = { SkPackARGB32(0xFF, 0x42, 0x41, 0x42), SkPackARGB32(0xFF, 0xD6, 0xD3, 0xD6), SkPackARGB32(0xFF, 0xD6, 0xD3, 0xD6), diff --git a/gm/xfermodes3.cpp b/gm/xfermodes3.cpp index 642175e5a1..300b78f2a2 100644 --- a/gm/xfermodes3.cpp +++ b/gm/xfermodes3.cpp @@ -48,13 +48,13 @@ protected: labelP.setAntiAlias(true); sk_tool_utils::set_portable_typeface(&labelP); - static const SkColor kSolidColors[] = { + constexpr SkColor kSolidColors[] = { SK_ColorTRANSPARENT, SK_ColorBLUE, 0x80808000 }; - static const SkColor kBmpAlphas[] = { + constexpr SkColor kBmpAlphas[] = { 0xff, 0x80, }; @@ -63,7 +63,7 @@ protected: int test = 0; int x = 0, y = 0; - static const struct { SkPaint::Style fStyle; SkScalar fWidth; } kStrokes[] = { + constexpr struct { SkPaint::Style fStyle; SkScalar fWidth; } kStrokes[] = { {SkPaint::kFill_Style, 0}, {SkPaint::kStroke_Style, SkIntToScalar(kSize) / 2}, }; @@ -173,7 +173,7 @@ private: } void onOnceBeforeDraw() override { - static const uint32_t kCheckData[] = { + const uint32_t kCheckData[] = { SkPackARGB32(0xFF, 0x42, 0x41, 0x42), SkPackARGB32(0xFF, 0xD6, 0xD3, 0xD6), SkPackARGB32(0xFF, 0xD6, 0xD3, 0xD6), diff --git a/gm/yuvtorgbeffect.cpp b/gm/yuvtorgbeffect.cpp index 0be30088c8..d064cf3cf4 100644 --- a/gm/yuvtorgbeffect.cpp +++ b/gm/yuvtorgbeffect.cpp @@ -94,9 +94,9 @@ protected: return; } - static const SkScalar kDrawPad = 10.f; - static const SkScalar kTestPad = 10.f; - static const SkScalar kColorSpaceOffset = 36.f; + constexpr SkScalar kDrawPad = 10.f; + constexpr SkScalar kTestPad = 10.f; + constexpr SkScalar kColorSpaceOffset = 36.f; SkISize sizes[3] = {{YSIZE, YSIZE}, {USIZE, USIZE}, {VSIZE, VSIZE}}; for (int space = kJPEG_SkYUVColorSpace; space <= kLastEnum_SkYUVColorSpace; @@ -211,9 +211,9 @@ protected: return; } - static const SkScalar kDrawPad = 10.f; - static const SkScalar kTestPad = 10.f; - static const SkScalar kColorSpaceOffset = 36.f; + constexpr SkScalar kDrawPad = 10.f; + constexpr SkScalar kTestPad = 10.f; + constexpr SkScalar kColorSpaceOffset = 36.f; SkISize sizes[3] = {{YSIZE, YSIZE}, {USIZE, USIZE}, {VSIZE, VSIZE}}; for (int space = kJPEG_SkYUVColorSpace; space <= kLastEnum_SkYUVColorSpace; ++space) { |