| Index: src/gpu/GrInOrderDrawBuffer.cpp
|
| diff --git a/src/gpu/GrInOrderDrawBuffer.cpp b/src/gpu/GrInOrderDrawBuffer.cpp
|
| index 45dd16d9a62974996b49df4e0efba3b07d9802cd..c04c43fcc3801b644c9b2b4e19673a30acdf39f9 100644
|
| --- a/src/gpu/GrInOrderDrawBuffer.cpp
|
| +++ b/src/gpu/GrInOrderDrawBuffer.cpp
|
| @@ -88,8 +88,7 @@ static void set_vertex_attributes(GrDrawState* drawState, bool hasLocalCoords, G
|
| uint32_t flags = GrDefaultGeoProcFactory::kPosition_GPType |
|
| GrDefaultGeoProcFactory::kColor_GPType;
|
| flags |= hasLocalCoords ? GrDefaultGeoProcFactory::kLocalCoord_GPType : 0;
|
| - drawState->setGeometryProcessor(GrDefaultGeoProcFactory::CreateAndSetAttribs(drawState,
|
| - flags))->unref();
|
| + drawState->setGeometryProcessor(GrDefaultGeoProcFactory::Create(flags))->unref();
|
| if (0xFF == GrColorUnpackA(color)) {
|
| drawState->setHint(GrDrawState::kVertexColorsAreOpaque_Hint, true);
|
| }
|
| @@ -141,7 +140,8 @@ void GrInOrderDrawBuffer::onDrawRect(GrDrawState* ds,
|
| GrColor color = ds->getColor();
|
| set_vertex_attributes(ds, SkToBool(localRect), color);
|
|
|
| - AutoReleaseGeometry geo(this, 4, ds->getVertexStride(), 0);
|
| + size_t vstride = ds->getGeometryProcessor()->getVertexStride();
|
| + AutoReleaseGeometry geo(this, 4, vstride, 0);
|
| if (!geo.succeeded()) {
|
| SkDebugf("Failed to get space for vertices!\n");
|
| return;
|
| @@ -158,8 +158,6 @@ void GrInOrderDrawBuffer::onDrawRect(GrDrawState* ds,
|
| return;
|
| }
|
|
|
| - size_t vstride = ds->getVertexStride();
|
| -
|
| geo.positions()->setRectFan(rect.fLeft, rect.fTop, rect.fRight, rect.fBottom, vstride);
|
| matrix.mapPointsWithStride(geo.positions(), vstride, 4);
|
|
|
| @@ -235,7 +233,8 @@ int GrInOrderDrawBuffer::concatInstancedDraw(const GrDrawState& ds, const DrawIn
|
| instancesToConcat = SkTMin(instancesToConcat, info.instanceCount());
|
|
|
| // update the amount of reserved vertex data actually referenced in draws
|
| - size_t vertexBytes = instancesToConcat * info.verticesPerInstance() * ds.getVertexStride();
|
| + size_t vertexBytes = instancesToConcat * info.verticesPerInstance() *
|
| + ds.getGeometryProcessor()->getVertexStride();
|
| poolState.fUsedPoolVertexBytes = SkTMax(poolState.fUsedPoolVertexBytes, vertexBytes);
|
|
|
| draw->fInfo.adjustInstanceCount(instancesToConcat);
|
| @@ -283,7 +282,8 @@ void GrInOrderDrawBuffer::onDraw(const GrDrawState& ds,
|
| // Adjust the starting vertex and index when we are using reserved or array sources to
|
| // compensate for the fact that the data was inserted into a larger vb/ib owned by the pool.
|
| if (kBuffer_GeometrySrcType != this->getGeomSrc().fVertexSrc) {
|
| - size_t bytes = (info.vertexCount() + info.startVertex()) * ds.getVertexStride();
|
| + size_t bytes = (info.vertexCount() + info.startVertex()) *
|
| + ds.getGeometryProcessor()->getVertexStride();
|
| poolState.fUsedPoolVertexBytes = SkTMax(poolState.fUsedPoolVertexBytes, bytes);
|
| draw->fInfo.adjustStartVertex(poolState.fPoolStartVertex);
|
| }
|
|
|