De-virtualize SkCanvas matrix ops.

This moves the matrix management logic into non-virtual SkCanvas
methods, and turns the virtuals into protected notifiers.

R=reed@google.com, robertphillips@google.com, bsalomon@google.com
BUG=skia:2297

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/195793012

git-svn-id: http://skia.googlecode.com/svn/trunk@13799 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/utils/SkCanvasStack.h b/src/utils/SkCanvasStack.h
index ba2fed4..028e526 100644
--- a/src/utils/SkCanvasStack.h
+++ b/src/utils/SkCanvasStack.h
@@ -29,9 +29,9 @@
     virtual void addCanvas(SkCanvas*) SK_OVERRIDE { SkDEBUGFAIL("Invalid Op"); }
     virtual void removeCanvas(SkCanvas*) SK_OVERRIDE { SkDEBUGFAIL("Invalid Op"); }
 
-    virtual void setMatrix(const SkMatrix& matrix) SK_OVERRIDE;
-
 protected:
+    virtual void didSetMatrix(const SkMatrix&) SK_OVERRIDE;
+
     virtual void onClipRect(const SkRect&, SkRegion::Op, ClipEdgeStyle) SK_OVERRIDE;
     virtual void onClipRRect(const SkRRect&, SkRegion::Op, ClipEdgeStyle) SK_OVERRIDE;
     virtual void onClipPath(const SkPath&, SkRegion::Op, ClipEdgeStyle) SK_OVERRIDE;