Switch SkMorphologyImageFilter over to new onFilterImage interface

This now relies on: https://codereview.chromium.org/1826233002/ (Add rowBytesAsPixels and shiftPerPixel to SkPixmap)

TBR=bsalomon@google.com

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1819393002

Review URL: https://codereview.chromium.org/1819393002
diff --git a/gm/morphology.cpp b/gm/morphology.cpp
index 3fb11d8..c3326f9 100644
--- a/gm/morphology.cpp
+++ b/gm/morphology.cpp
@@ -17,15 +17,14 @@
 public:
     MorphologyGM() {
         this->setBGColor(0xFF000000);
-        fOnce = false;
     }
 
 protected:
-    virtual SkString onShortName() {
+    SkString onShortName() override {
         return SkString("morphology");
     }
 
-    void make_bitmap() {
+    void onOnceBeforeDraw() override {
         fBitmap.allocN32Pixels(135, 135);
         SkCanvas canvas(fBitmap);
         canvas.clear(0x0);
@@ -40,7 +39,7 @@
         canvas.drawText(str2, strlen(str2), 10, 110, paint);
     }
 
-    virtual SkISize onISize() {
+    SkISize onISize() override {
         return SkISize::Make(WIDTH, HEIGHT);
     }
 
@@ -53,11 +52,7 @@
         canvas->restore();
     }
 
-    virtual void onDraw(SkCanvas* canvas) {
-        if (!fOnce) {
-            make_bitmap();
-            fOnce = true;
-        }
+    void onDraw(SkCanvas* canvas) override {
         struct {
             int fWidth, fHeight;
             int fRadiusX, fRadiusY;
@@ -87,20 +82,19 @@
                         nullptr,
                         cr))->unref();
                 }
-                drawClippedBitmap(canvas, paint, i * 140, j * 140);
+                this->drawClippedBitmap(canvas, paint, i * 140, j * 140);
             }
         }
     }
 
 private:
-    typedef GM INHERITED;
     SkBitmap fBitmap;
-    bool fOnce;
+
+    typedef GM INHERITED;
 };
 
 //////////////////////////////////////////////////////////////////////////////
 
-static GM* MyFactory(void*) { return new MorphologyGM; }
-static GMRegistry reg(MyFactory);
+DEF_GM(return new MorphologyGM;)
 
 }