Test factory uses the inorder draw buffer

BUG=skia:

Review URL: https://codereview.chromium.org/696353002
diff --git a/expectations/gm/ignored-tests.txt b/expectations/gm/ignored-tests.txt
index e524d33..c28566e 100644
--- a/expectations/gm/ignored-tests.txt
+++ b/expectations/gm/ignored-tests.txt
@@ -63,3 +63,6 @@
 multipicturedraw_rrectclip_tiled
 multipicturedraw_sierpinski_simple
 multipicturedraw_sierpinski_tiled
+
+#joshualitt
+texture_domain_effect
diff --git a/gm/beziereffects.cpp b/gm/beziereffects.cpp
index ec7e83e..0e811d9 100644
--- a/gm/beziereffects.cpp
+++ b/gm/beziereffects.cpp
@@ -154,7 +154,16 @@
                     boundsPaint.setStyle(SkPaint::kStroke_Style);
                     canvas->drawRect(bounds, boundsPaint);
 
-                    Vertex verts[4];
+                    GrTestTarget tt;
+                    context->getTestTarget(&tt);
+                    SkASSERT(tt.target());
+
+                    GrDrawState* drawState = tt.target()->drawState();
+                    drawState->setVertexAttribs<kAttribs>(2, sizeof(Vertex));
+
+                    GrDrawTarget::AutoReleaseGeometry geo(tt.target(), 4, 0);
+                    Vertex* verts = reinterpret_cast<Vertex*>(geo.vertices());
+
                     verts[0].fPosition.setRectFan(bounds.fLeft, bounds.fTop,
                                                   bounds.fRight, bounds.fBottom,
                                                   sizeof(Vertex));
@@ -164,17 +173,10 @@
                         verts[v].fKLM[2] = eval_line(verts[v].fPosition, klmEqs + 6, 1.f);
                     }
 
-                    GrTestTarget tt;
-                    context->getTestTarget(&tt);
-                    SkASSERT(tt.target());
-                    GrDrawState* drawState = tt.target()->drawState();
-                    drawState->setVertexAttribs<kAttribs>(2, sizeof(Vertex));
-
                     drawState->setGeometryProcessor(gp);
                     drawState->setRenderTarget(rt);
                     drawState->setColor(0xff000000);
 
-                    tt.target()->setVertexSourceToArray(verts, 4);
                     tt.target()->setIndexSourceToBuffer(context->getQuadIndexBuffer());
                     tt.target()->drawIndexed(kTriangleFan_GrPrimitiveType, 0, 0, 4, 6);
                 }
@@ -309,7 +311,16 @@
                     boundsPaint.setStyle(SkPaint::kStroke_Style);
                     canvas->drawRect(bounds, boundsPaint);
 
-                    Vertex verts[4];
+                    GrTestTarget tt;
+                    context->getTestTarget(&tt);
+                    SkASSERT(tt.target());
+
+                    GrDrawState* drawState = tt.target()->drawState();
+                    drawState->setVertexAttribs<kAttribs>(2, sizeof(Vertex));
+
+                    GrDrawTarget::AutoReleaseGeometry geo(tt.target(), 4, 0);
+                    Vertex* verts = reinterpret_cast<Vertex*>(geo.vertices());
+
                     verts[0].fPosition.setRectFan(bounds.fLeft, bounds.fTop,
                                                   bounds.fRight, bounds.fBottom,
                                                   sizeof(Vertex));
@@ -319,17 +330,10 @@
                         verts[v].fKLM[2] = eval_line(verts[v].fPosition, klmEqs + 6, 1.f);
                     }
 
-                    GrTestTarget tt;
-                    context->getTestTarget(&tt);
-                    SkASSERT(tt.target());
-                    GrDrawState* drawState = tt.target()->drawState();
-                    drawState->setVertexAttribs<kAttribs>(2, sizeof(Vertex));
-
                     drawState->setGeometryProcessor(gp);
                     drawState->setRenderTarget(rt);
                     drawState->setColor(0xff000000);
 
-                    tt.target()->setVertexSourceToArray(verts, 4);
                     tt.target()->setIndexSourceToBuffer(context->getQuadIndexBuffer());
                     tt.target()->drawIndexed(kTriangleFan_GrPrimitiveType, 0, 0, 4, 6);
                 }
@@ -495,7 +499,16 @@
                     boundsPaint.setStyle(SkPaint::kStroke_Style);
                     canvas->drawRect(bounds, boundsPaint);
 
-                    Vertex verts[4];
+                    GrTestTarget tt;
+                    context->getTestTarget(&tt);
+                    SkASSERT(tt.target());
+
+                    GrDrawState* drawState = tt.target()->drawState();
+                    drawState->setVertexAttribs<kAttribs>(2, sizeof(Vertex));
+
+                    GrDrawTarget::AutoReleaseGeometry geo(tt.target(), 4, 0);
+                    Vertex* verts = reinterpret_cast<Vertex*>(geo.vertices());
+
                     verts[0].fPosition.setRectFan(bounds.fLeft, bounds.fTop,
                                                   bounds.fRight, bounds.fBottom,
                                                   sizeof(Vertex));
@@ -503,17 +516,10 @@
                     GrPathUtils::QuadUVMatrix DevToUV(pts);
                     DevToUV.apply<4, sizeof(Vertex), sizeof(SkPoint)>(verts);
 
-                    GrTestTarget tt;
-                    context->getTestTarget(&tt);
-                    SkASSERT(tt.target());
-                    GrDrawState* drawState = tt.target()->drawState();
-                    drawState->setVertexAttribs<kAttribs>(2, sizeof(Vertex));
-
                     drawState->setGeometryProcessor(gp);
                     drawState->setRenderTarget(rt);
                     drawState->setColor(0xff000000);
 
-                    tt.target()->setVertexSourceToArray(verts, 4);
                     tt.target()->setIndexSourceToBuffer(context->getQuadIndexBuffer());
                     tt.target()->drawIndexed(kTriangles_GrPrimitiveType, 0, 0, 4, 6);
                 }
diff --git a/gm/convexpolyeffect.cpp b/gm/convexpolyeffect.cpp
index e567208..b4206d2 100644
--- a/gm/convexpolyeffect.cpp
+++ b/gm/convexpolyeffect.cpp
@@ -137,14 +137,18 @@
                 drawState->setRenderTarget(rt);
                 drawState->setColor(0xff000000);
 
-                SkPoint verts[4];
+                // TODO hack
+                GrDrawTarget::AutoReleaseGeometry geo(tt.target(), 4, 0);
+                SkPoint* verts = reinterpret_cast<SkPoint*>(geo.vertices());
+
+                //SkPoint verts[4];
                 SkRect bounds = p.getBounds();
                 // Make sure any artifacts around the exterior of path are visible by using overly
                 // conservative bounding geometry.
                 bounds.outset(5.f, 5.f);
                 bounds.toQuad(verts);
 
-                tt.target()->setVertexSourceToArray(verts, 4);
+                //tt.target()->setVertexSourceToArray(verts, 4);
                 tt.target()->setIndexSourceToBuffer(context->getQuadIndexBuffer());
                 tt.target()->drawIndexed(kTriangleFan_GrPrimitiveType, 0, 0, 4, 6);
 
@@ -191,12 +195,16 @@
                 drawState->setRenderTarget(rt);
                 drawState->setColor(0xff000000);
 
-                SkPoint verts[4];
+                // TODO hack
+                GrDrawTarget::AutoReleaseGeometry geo(tt.target(), 4, 0);
+                SkPoint* verts = reinterpret_cast<SkPoint*>(geo.vertices());
+
+                //SkPoint verts[4];
                 SkRect bounds = rect;
                 bounds.outset(5.f, 5.f);
                 bounds.toQuad(verts);
 
-                tt.target()->setVertexSourceToArray(verts, 4);
+                //tt.target()->setVertexSourceToArray(verts, 4);
                 tt.target()->setIndexSourceToBuffer(context->getQuadIndexBuffer());
                 tt.target()->drawIndexed(kTriangleFan_GrPrimitiveType, 0, 0, 4, 6);
 
diff --git a/src/gpu/GrTest.cpp b/src/gpu/GrTest.cpp
index 10dc034..6013b16 100644
--- a/src/gpu/GrTest.cpp
+++ b/src/gpu/GrTest.cpp
@@ -8,7 +8,7 @@
 
 #include "GrTest.h"
 
-#include "GrGpu.h"
+#include "GrInOrderDrawBuffer.h"
 #include "GrResourceCache.h"
 
 void GrTestTarget::init(GrContext* ctx, GrDrawTarget* target) {
@@ -28,7 +28,7 @@
     // then disconnects. This would help prevent test writers from mixing using the returned
     // GrDrawTarget and regular drawing. We could also assert or fail in GrContext drawing methods
     // until ~GrTestTarget().
-    tar->init(this, fGpu);
+    tar->init(this, fDrawBuffer);
 }
 
 ///////////////////////////////////////////////////////////////////////////////