gm: add a flag to force perspective usage in all gms

BUG=
R=reed@google.com, epoger@google.com, borenet@google.com

Author: edisonn@google.com

Review URL: https://chromiumcodereview.appspot.com/23587029

git-svn-id: http://skia.googlecode.com/svn/trunk@11487 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gm/gm.h b/gm/gm.h
index 3a65160..bf1a411 100644
--- a/gm/gm.h
+++ b/gm/gm.h
@@ -74,7 +74,9 @@
         // Most GMs will return the identity matrix, but some PDFs tests
         // require setting the initial transform.
         SkMatrix getInitialTransform() const {
-            return this->onGetInitialTransform();
+            SkMatrix matrix = fStarterMatrix;
+            matrix.preConcat(this->onGetInitialTransform());
+            return matrix;
         }
 
         SkColor getBGColor() const { return fBGColor; }
@@ -106,6 +108,11 @@
         static GrContext* GetGr(/*very nearly const*/ SkCanvas*);
 #endif
 
+    const SkMatrix& getStarterMatrix() { return fStarterMatrix; }
+    void setStarterMatrix(const SkMatrix& matrix) {
+        fStarterMatrix = matrix;
+    }
+
     protected:
         static SkString gResourcePath;
 
@@ -123,6 +130,7 @@
         bool     fCanvasIsDeferred; // work-around problem in srcmode.cpp
         bool     fHaveCalledOnceBeforeDraw;
         bool     fIgnoreFailures; // whether to file any failures as failure-ignored
+        SkMatrix fStarterMatrix;
     };
 
     typedef SkTRegistry<GM*(*)(void*)> GMRegistry;