Index: gm/offsetimagefilter.cpp |
diff --git a/gm/offsetimagefilter.cpp b/gm/offsetimagefilter.cpp |
index 9808bd8122356927c04e9d23fa9597101cd7ef11..258403ee79d2572902fb42946649f1cf0387b51f 100644 |
--- a/gm/offsetimagefilter.cpp |
+++ b/gm/offsetimagefilter.cpp |
@@ -14,74 +14,68 @@ |
#define HEIGHT 100 |
#define MARGIN 12 |
-namespace skiagm { |
- |
-class OffsetImageFilterGM : public GM { |
+class OffsetImageFilterGM : public skiagm::GM { |
public: |
- OffsetImageFilterGM() : fInitialized(false) { |
+ OffsetImageFilterGM() { |
this->setBGColor(0xFF000000); |
} |
protected: |
- virtual SkString onShortName() { |
+ SkString onShortName() override { |
return SkString("offsetimagefilter"); |
} |
void make_bitmap() { |
fBitmap.allocN32Pixels(80, 80); |
SkCanvas canvas(fBitmap); |
- canvas.clear(0x00000000); |
+ canvas.clear(0); |
SkPaint paint; |
paint.setAntiAlias(true); |
sk_tool_utils::set_portable_typeface(&paint); |
paint.setColor(0xD000D000); |
- paint.setTextSize(SkIntToScalar(96)); |
- const char* str = "e"; |
- canvas.drawText(str, strlen(str), SkIntToScalar(15), SkIntToScalar(65), paint); |
+ paint.setTextSize(96); |
+ canvas.drawText("e", 1, 15, 65, paint); |
} |
- virtual SkISize onISize() { |
+ SkISize onISize() override { |
return SkISize::Make(WIDTH, HEIGHT); |
} |
- void drawClippedBitmap(SkCanvas* canvas, const SkBitmap& bitmap, const SkPaint& paint, SkScalar scale, const SkIRect& cropRect) { |
+ void drawClippedBitmap(SkCanvas* canvas, const SkBitmap& bitmap, const SkPaint& paint, |
+ SkScalar scale, const SkIRect& cropRect) { |
+ SkRect clipRect = SkRect::MakeIWH(bitmap.width(), bitmap.height()); |
+ |
canvas->save(); |
- SkRect clipRect = SkRect::MakeWH( |
- SkIntToScalar(bitmap.width()), SkIntToScalar(bitmap.height())); |
canvas->clipRect(clipRect); |
canvas->scale(scale, scale); |
canvas->drawBitmap(bitmap, 0, 0, &paint); |
canvas->restore(); |
- SkPaint strokePaint; |
- strokePaint.setStyle(SkPaint::kStroke_Style); |
- strokePaint.setColor(SK_ColorRED); |
- // Draw a boundary rect around the intersection of the clip rect |
- // and crop rect. |
- SkMatrix scaleMatrix; |
- scaleMatrix.setScale(scale, scale); |
+ // Draw a boundary rect around the intersection of the clip rect and crop rect. |
SkRect cropRectFloat; |
- scaleMatrix.mapRect(&cropRectFloat, SkRect::Make(cropRect)); |
+ SkMatrix::MakeScale(scale, scale).mapRect(&cropRectFloat, SkRect::Make(cropRect)); |
if (clipRect.intersect(cropRectFloat)) { |
+ SkPaint strokePaint; |
+ strokePaint.setStyle(SkPaint::kStroke_Style); |
+ strokePaint.setColor(SK_ColorRED); |
canvas->drawRect(clipRect, strokePaint); |
} |
} |
- virtual void onDraw(SkCanvas* canvas) { |
- if (!fInitialized) { |
- make_bitmap(); |
- |
- fCheckerboard.allocN32Pixels(80, 80); |
- SkCanvas checkerboardCanvas(fCheckerboard); |
- sk_tool_utils::draw_checkerboard(&checkerboardCanvas, 0xFFA0A0A0, 0xFF404040, 8); |
+ void onOnceBeforeDraw() override { |
+ make_bitmap(); |
+ |
+ fCheckerboard.allocN32Pixels(80, 80); |
+ SkCanvas checkerboardCanvas(fCheckerboard); |
+ sk_tool_utils::draw_checkerboard(&checkerboardCanvas, 0xFFA0A0A0, 0xFF404040, 8); |
+ } |
- fInitialized = true; |
- } |
+ void onDraw(SkCanvas* canvas) override { |
canvas->clear(SK_ColorBLACK); |
SkPaint paint; |
for (int i = 0; i < 4; i++) { |
- SkBitmap* bitmap = (i & 0x01) ? &fCheckerboard : &fBitmap; |
+ const SkBitmap* bitmap = (i & 0x01) ? &fCheckerboard : &fBitmap; |
SkIRect cropRect = SkIRect::MakeXYWH(i * 12, |
i * 8, |
bitmap->width() - i * 8, |
@@ -90,29 +84,24 @@ protected: |
SkAutoTUnref<SkImageFilter> tileInput(SkBitmapSource::Create(*bitmap)); |
SkScalar dx = SkIntToScalar(i*5); |
SkScalar dy = SkIntToScalar(i*10); |
- SkAutoTUnref<SkImageFilter> filter( |
- SkOffsetImageFilter::Create(dx, dy, tileInput, &rect)); |
+ SkAutoTUnref<SkImageFilter> filter(SkOffsetImageFilter::Create(dx, dy, tileInput, |
+ &rect)); |
paint.setImageFilter(filter); |
- drawClippedBitmap(canvas, *bitmap, paint, SK_Scalar1, cropRect); |
+ drawClippedBitmap(canvas, *bitmap, paint, 1, cropRect); |
canvas->translate(SkIntToScalar(bitmap->width() + MARGIN), 0); |
} |
SkIRect cropRect = SkIRect::MakeXYWH(0, 0, 100, 100); |
SkImageFilter::CropRect rect(SkRect::Make(cropRect)); |
- SkAutoTUnref<SkImageFilter> filter( |
- SkOffsetImageFilter::Create(SkIntToScalar(-5), SkIntToScalar(-10), NULL, &rect)); |
+ SkAutoTUnref<SkImageFilter> filter(SkOffsetImageFilter::Create(-5, -10, NULL, &rect)); |
paint.setImageFilter(filter); |
- drawClippedBitmap(canvas, fBitmap, paint, SkIntToScalar(2), cropRect); |
+ drawClippedBitmap(canvas, fBitmap, paint, 2, cropRect); |
} |
private: |
- typedef GM INHERITED; |
+ typedef skiagm::GM INHERITED; |
SkBitmap fBitmap, fCheckerboard; |
- bool fInitialized; |
}; |
+DEF_GM( return new OffsetImageFilterGM; ) |
////////////////////////////////////////////////////////////////////////////// |
-static GM* MyFactory(void*) { return new OffsetImageFilterGM; } |
-static GMRegistry reg(MyFactory); |
- |
-} |