aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm
diff options
context:
space:
mode:
authorGravatar herb <herb@google.com>2016-01-08 13:48:43 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2016-01-08 13:48:43 -0800
commitb10fe4941b08172378d3d1928959122f106ced37 (patch)
tree259dbbf6382f4c58e5ea9bff2993c834102172eb /gm
parentcdee009886babe6df7743a9b5b3e2cc0a5f21adf (diff)
Remove work from constructors to facilitate debugging.
Diffstat (limited to 'gm')
-rw-r--r--gm/blurroundrect.cpp31
-rw-r--r--gm/composeshader.cpp25
-rw-r--r--gm/rrects.cpp7
3 files changed, 28 insertions, 35 deletions
diff --git a/gm/blurroundrect.cpp b/gm/blurroundrect.cpp
index 4b3f3bcc9a..c3cdb66673 100644
--- a/gm/blurroundrect.cpp
+++ b/gm/blurroundrect.cpp
@@ -22,24 +22,9 @@
// This GM mimics a blurred RR seen in the wild.
class BlurRoundRectGM : public skiagm::GM {
public:
- BlurRoundRectGM(int width, int height, int radius)
- : fName("blurroundrect")
- {
- SkRect r = SkRect::MakeWH(SkIntToScalar(width), SkIntToScalar(height));
- fRRect.setRectXY(r, SkIntToScalar(radius), SkIntToScalar(radius));
- fName.appendf("-WH-%ix%i-corner-%i", width, height, radius);
- }
-
BlurRoundRectGM(int width, int height)
- : fName("blurroundrect") {
+ : fName("blurroundrect"), fWidth(width), fHeight(height) {
fName.appendf("-WH-%ix%i-unevenCorners", width, height);
- SkVector radii[4];
- radii[0].set(SkIntToScalar(30), SkIntToScalar(30));
- radii[1].set(SkIntToScalar(10), SkIntToScalar(10));
- radii[2].set(SkIntToScalar(30), SkIntToScalar(30));
- radii[3].set(SkIntToScalar(10), SkIntToScalar(10));
- SkRect r = SkRect::MakeWH(SkIntToScalar(width), SkIntToScalar(height));
- fRRect.setRectRadii(r, radii);
}
SkString onShortName() override {
@@ -47,8 +32,17 @@ public:
}
SkISize onISize() override {
- return SkISize::Make(SkScalarCeilToInt(fRRect.rect().width()),
- SkScalarCeilToInt(fRRect.rect().height()));
+ return SkISize::Make(fWidth, fHeight);
+ }
+
+ void onOnceBeforeDraw() override {
+ SkVector radii[4];
+ radii[0].set(SkIntToScalar(30), SkIntToScalar(30));
+ radii[1].set(SkIntToScalar(10), SkIntToScalar(10));
+ radii[2].set(SkIntToScalar(30), SkIntToScalar(30));
+ radii[3].set(SkIntToScalar(10), SkIntToScalar(10));
+ SkRect r = SkRect::MakeWH(SkIntToScalar(fWidth), SkIntToScalar(fHeight));
+ fRRect.setRectRadii(r, radii);
}
void onDraw(SkCanvas* canvas) override {
@@ -89,6 +83,7 @@ public:
private:
SkString fName;
SkRRect fRRect;
+ int fWidth, fHeight;
typedef skiagm::GM INHERITED;
};
diff --git a/gm/composeshader.cpp b/gm/composeshader.cpp
index b2be9ba28e..d482bc9420 100644
--- a/gm/composeshader.cpp
+++ b/gm/composeshader.cpp
@@ -162,13 +162,14 @@ static SkShader* make_linear_gradient_shader(int length) {
class ComposeShaderBitmapGM : public skiagm::GM {
public:
- ComposeShaderBitmapGM()
- : fColorBitmapShader(nullptr)
- , fAlpha8BitmapShader(nullptr)
- , fLinearGradientShader(nullptr)
- {
+ ComposeShaderBitmapGM() {}
+ ~ComposeShaderBitmapGM() {
+ SkSafeUnref(fColorBitmapShader);
+ SkSafeUnref(fAlpha8BitmapShader);
+ SkSafeUnref(fLinearGradientShader);
}
+protected:
void onOnceBeforeDraw() override {
draw_color_bm(&fColorBitmap, squareLength);
draw_alpha8_bm(&fAlpha8Bitmap, squareLength);
@@ -181,13 +182,6 @@ public:
fLinearGradientShader = make_linear_gradient_shader(squareLength);
}
- ~ComposeShaderBitmapGM() {
- SkSafeUnref(fColorBitmapShader);
- SkSafeUnref(fAlpha8BitmapShader);
- SkSafeUnref(fLinearGradientShader);
- }
-
-protected:
SkString onShortName() override {
return SkString("composeshader_bitmap");
}
@@ -230,6 +224,7 @@ protected:
canvas->translate(0, r.height() + 5);
}
}
+
private:
/** This determines the length and width of the bitmaps used in the SkComposeShaders. Values
* above 20 may cause an SkASSERT to fail in SkSmallAllocator. However, larger values will
@@ -240,9 +235,9 @@ private:
SkBitmap fColorBitmap;
SkBitmap fAlpha8Bitmap;
- SkShader* fColorBitmapShader;
- SkShader* fAlpha8BitmapShader;
- SkShader* fLinearGradientShader;
+ SkShader* fColorBitmapShader{nullptr};
+ SkShader* fAlpha8BitmapShader{nullptr};
+ SkShader* fLinearGradientShader{nullptr};
typedef GM INHERITED;
};
diff --git a/gm/rrects.cpp b/gm/rrects.cpp
index fbe7ad1836..938d4706dc 100644
--- a/gm/rrects.cpp
+++ b/gm/rrects.cpp
@@ -26,12 +26,15 @@ public:
kAA_Clip_Type,
kEffect_Type,
};
- RRectGM(Type type) : fType(type) {
+ RRectGM(Type type) : fType(type) { }
+
+protected:
+
+ void onOnceBeforeDraw() override {
this->setBGColor(sk_tool_utils::color_to_565(0xFFDDDDDD));
this->setUpRRects();
}
-protected:
SkString onShortName() override {
SkString name("rrect");
switch (fType) {