Shim to enforce that canvas virtuals are overridden

Change-Id: Iad70d449bbc43195baefd70d20c41996a8435e6e
Reviewed-on: https://skia-review.googlesource.com/113320
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/src/pipe/SkPipeCanvas.cpp b/src/pipe/SkPipeCanvas.cpp
index 32a615e..7315f88 100644
--- a/src/pipe/SkPipeCanvas.cpp
+++ b/src/pipe/SkPipeCanvas.cpp
@@ -8,6 +8,7 @@
 #include "SkAutoMalloc.h"
 #include "SkCanvasPriv.h"
 #include "SkColorFilter.h"
+#include "SkDrawable.h"
 #include "SkDrawLooper.h"
 #include "SkDrawShadowInfo.h"
 #include "SkImageFilter.h"
@@ -702,6 +703,11 @@
     }
 }
 
+void SkPipeCanvas::onDrawDrawable(SkDrawable* drawable, const SkMatrix* matrix) {
+    // TODO: Is there a better solution than just exploding the drawable?
+    drawable->draw(this, matrix);
+}
+
 void SkPipeCanvas::onDrawRegion(const SkRegion& region, const SkPaint& paint) {
     size_t size = region.writeToMemory(nullptr);
     unsigned extra = 0;