Accelerate AA filled rect drawing using drawIndexedInstances
https://codereview.appspot.com/6947078/
git-svn-id: http://skia.googlecode.com/svn/trunk@6889 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrInOrderDrawBuffer.cpp b/src/gpu/GrInOrderDrawBuffer.cpp
index 51546e7..d51dca4 100644
--- a/src/gpu/GrInOrderDrawBuffer.cpp
+++ b/src/gpu/GrInOrderDrawBuffer.cpp
@@ -300,16 +300,16 @@
draw->fVertexBuffer != vertexBuffer) {
draw = this->recordDraw();
- draw->fIndexBuffer = geomSrc.fIndexBuffer;
- geomSrc.fIndexBuffer->ref();
+ draw->fPrimitiveType = type;
+ draw->fStartVertex = poolState.fPoolStartVertex;
+ draw->fStartIndex = 0;
+ draw->fVertexCount = 0;
+ draw->fIndexCount = 0;
+ draw->fVertexLayout = geomSrc.fVertexLayout;
draw->fVertexBuffer = vertexBuffer;
vertexBuffer->ref();
- draw->fPrimitiveType = type;
- draw->fStartIndex = 0;
- draw->fIndexCount = 0;
- draw->fStartVertex = poolState.fPoolStartVertex;
- draw->fVertexCount = 0;
- draw->fVertexLayout = geomSrc.fVertexLayout;
+ draw->fIndexBuffer = geomSrc.fIndexBuffer;
+ geomSrc.fIndexBuffer->ref();
} else {
GrAssert(!(draw->fIndexCount % indicesPerInstance));
GrAssert(!(draw->fVertexCount % verticesPerInstance));
@@ -343,15 +343,16 @@
if (!instancesToConcat) {
int startVertex = draw->fStartVertex + draw->fVertexCount;
draw = this->recordDraw();
- draw->fIndexBuffer = geomSrc.fIndexBuffer;
- geomSrc.fIndexBuffer->ref();
+ draw->fPrimitiveType = type;
+ draw->fStartVertex = startVertex;
+ draw->fStartIndex = 0;
+ draw->fVertexCount = 0;
+ draw->fIndexCount = 0;
+ draw->fVertexLayout = geomSrc.fVertexLayout;
draw->fVertexBuffer = vertexBuffer;
vertexBuffer->ref();
- draw->fPrimitiveType = type;
- draw->fStartIndex = 0;
- draw->fStartVertex = startVertex;
- draw->fVertexCount = 0;
- draw->fVertexLayout = geomSrc.fVertexLayout;
+ draw->fIndexBuffer = geomSrc.fIndexBuffer;
+ geomSrc.fIndexBuffer->ref();
instancesToConcat = maxInstancesPerDraw;
}
draw->fVertexCount += instancesToConcat * verticesPerInstance;