Create new target to hold gpu test code, enable direct testing of GrEffects in GM.
R=robertphillips@google.com, jvanverth@google.com, egdaniel@google.com
Author: bsalomon@google.com
Review URL: https://chromiumcodereview.appspot.com/23352003
git-svn-id: http://skia.googlecode.com/svn/trunk@10866 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrTest.h b/src/gpu/GrTest.h
new file mode 100644
index 0000000..5e61c29
--- /dev/null
+++ b/src/gpu/GrTest.h
@@ -0,0 +1,35 @@
+
+/*
+ * Copyright 2013 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef GrTest_DEFINED
+#define GrTest_DEFINED
+
+#include "GrContext.h"
+#include "GrDrawTarget.h"
+
+/** Allows a test to temporarily draw to a GrDrawTarget owned by a GrContext. Tests that use this
+ should be careful not to mix using the GrDrawTarget directly and drawing via SkCanvas or
+ GrContext. In the future this object may provide some guards to prevent this. */
+class GrTestTarget {
+public:
+ GrTestTarget() {};
+
+ void init(GrContext*, GrDrawTarget*);
+
+ GrDrawTarget* target() { return fDrawTarget.get(); }
+
+private:
+ SkTLazy<GrDrawTarget::AutoStateRestore> fASR;
+ SkTLazy<GrDrawTarget::AutoClipRestore> fACR;
+ SkTLazy<GrDrawTarget::AutoGeometryPush> fAGP;
+
+ SkAutoTUnref<GrDrawTarget> fDrawTarget;
+ SkAutoTUnref<GrContext> fContext;
+};
+
+#endif