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);
}
///////////////////////////////////////////////////////////////////////////////