| Index: src/gpu/GrContext.cpp
|
| diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
|
| index a0fc678a4056c7d2d2c0b803680baa637c370bd7..b798ef047881fb28493a1c98a46a53882dbfee9c 100755
|
| --- a/src/gpu/GrContext.cpp
|
| +++ b/src/gpu/GrContext.cpp
|
| @@ -294,8 +294,8 @@ GrTexture* GrContext::createResizedTexture(const GrSurfaceDesc& desc,
|
| GrTexture* texture = fGpu->createTexture(rtDesc, true, NULL, 0);
|
|
|
| if (texture) {
|
| - GrDrawState drawState;
|
| - drawState.setRenderTarget(texture->asRenderTarget());
|
| + GrPipelineBuilder pipelineBuilder;
|
| + pipelineBuilder.setRenderTarget(texture->asRenderTarget());
|
|
|
| // if filtering is not desired then we want to ensure all
|
| // texels in the resampled image are copies of texels from
|
| @@ -303,7 +303,7 @@ GrTexture* GrContext::createResizedTexture(const GrSurfaceDesc& desc,
|
| GrTextureParams params(SkShader::kClamp_TileMode,
|
| filter ? GrTextureParams::kBilerp_FilterMode :
|
| GrTextureParams::kNone_FilterMode);
|
| - drawState.addColorTextureProcessor(clampedTexture, SkMatrix::I(), params);
|
| + pipelineBuilder.addColorTextureProcessor(clampedTexture, SkMatrix::I(), params);
|
|
|
| uint32_t flags = GrDefaultGeoProcFactory::kPosition_GPType |
|
| GrDefaultGeoProcFactory::kLocalCoord_GPType;
|
| @@ -317,7 +317,7 @@ GrTexture* GrContext::createResizedTexture(const GrSurfaceDesc& desc,
|
| SkPoint* verts = (SkPoint*) arg.vertices();
|
| verts[0].setIRectFan(0, 0, texture->width(), texture->height(), 2 * sizeof(SkPoint));
|
| verts[1].setIRectFan(0, 0, 1, 1, 2 * sizeof(SkPoint));
|
| - fDrawBuffer->drawNonIndexed(&drawState, gp, kTriangleFan_GrPrimitiveType, 0, 4);
|
| + fDrawBuffer->drawNonIndexed(&pipelineBuilder, gp, kTriangleFan_GrPrimitiveType, 0, 4);
|
| }
|
| } else {
|
| // TODO: Our CPU stretch doesn't filter. But we create separate
|
| @@ -571,14 +571,14 @@ void GrContext::drawPaint(const GrPaint& origPaint, const SkMatrix& viewMatrix)
|
| }
|
|
|
| AutoCheckFlush acf(this);
|
| - GrDrawState drawState;
|
| - GrDrawTarget* target = this->prepareToDraw(&drawState, paint, &acf);
|
| + GrPipelineBuilder pipelineBuilder;
|
| + GrDrawTarget* target = this->prepareToDraw(&pipelineBuilder, paint, &acf);
|
| if (NULL == target) {
|
| return;
|
| }
|
|
|
| GR_CREATE_TRACE_MARKER("GrContext::drawPaintWithPerspective", target);
|
| - target->drawRect(&drawState, paint->getColor(), SkMatrix::I(), r, NULL, &localMatrix);
|
| + target->drawRect(&pipelineBuilder, paint->getColor(), SkMatrix::I(), r, NULL, &localMatrix);
|
| }
|
| }
|
|
|
| @@ -618,21 +618,21 @@ static inline bool is_irect(const SkRect& r) {
|
| }
|
|
|
| static bool apply_aa_to_rect(GrDrawTarget* target,
|
| - GrDrawState* ds,
|
| + GrPipelineBuilder* pipelineBuilder,
|
| SkRect* devBoundRect,
|
| const SkRect& rect,
|
| SkScalar strokeWidth,
|
| const SkMatrix& combinedMatrix,
|
| GrColor color) {
|
| - if (!ds->canTweakAlphaForCoverage() && !ds->canUseFracCoveragePrimProc(color,
|
| - *target->caps())) {
|
| + if (!pipelineBuilder->canTweakAlphaForCoverage() &&
|
| + !pipelineBuilder->canUseFracCoveragePrimProc(color, *target->caps())) {
|
| #ifdef SK_DEBUG
|
| //SkDebugf("Turning off AA to correctly apply blend.\n");
|
| #endif
|
| return false;
|
| }
|
|
|
| - if (ds->getRenderTarget()->isMultisampled()) {
|
| + if (pipelineBuilder->getRenderTarget()->isMultisampled()) {
|
| return false;
|
| }
|
|
|
| @@ -680,8 +680,8 @@ void GrContext::drawRect(const GrPaint& paint,
|
| }
|
|
|
| AutoCheckFlush acf(this);
|
| - GrDrawState drawState;
|
| - GrDrawTarget* target = this->prepareToDraw(&drawState, &paint, &acf);
|
| + GrPipelineBuilder pipelineBuilder;
|
| + GrDrawTarget* target = this->prepareToDraw(&pipelineBuilder, &paint, &acf);
|
| if (NULL == target) {
|
| return;
|
| }
|
| @@ -693,7 +693,7 @@ void GrContext::drawRect(const GrPaint& paint,
|
| // cases where the RT is fully inside a stroke.
|
| if (width < 0) {
|
| SkRect rtRect;
|
| - drawState.getRenderTarget()->getBoundsRect(&rtRect);
|
| + pipelineBuilder.getRenderTarget()->getBoundsRect(&rtRect);
|
| SkRect clipSpaceRTRect = rtRect;
|
| bool checkClip = false;
|
| if (this->getClip()) {
|
| @@ -726,15 +726,15 @@ void GrContext::drawRect(const GrPaint& paint,
|
|
|
| GrColor color = paint.getColor();
|
| SkRect devBoundRect;
|
| - bool needAA = paint.isAntiAlias() && !drawState.getRenderTarget()->isMultisampled();
|
| - bool doAA = needAA && apply_aa_to_rect(target, &drawState, &devBoundRect, rect, width,
|
| + bool needAA = paint.isAntiAlias() && !pipelineBuilder.getRenderTarget()->isMultisampled();
|
| + bool doAA = needAA && apply_aa_to_rect(target, &pipelineBuilder, &devBoundRect, rect, width,
|
| viewMatrix, color);
|
|
|
| if (doAA) {
|
| if (width >= 0) {
|
| const SkStrokeRec& strokeRec = strokeInfo->getStrokeRec();
|
| fAARectRenderer->strokeAARect(target,
|
| - &drawState,
|
| + &pipelineBuilder,
|
| color,
|
| viewMatrix,
|
| rect,
|
| @@ -743,7 +743,7 @@ void GrContext::drawRect(const GrPaint& paint,
|
| } else {
|
| // filled AA rect
|
| fAARectRenderer->fillAARect(target,
|
| - &drawState,
|
| + &pipelineBuilder,
|
| color,
|
| viewMatrix,
|
| rect,
|
| @@ -793,10 +793,10 @@ void GrContext::drawRect(const GrPaint& paint,
|
| vertex[4].set(rect.fLeft, rect.fTop);
|
| }
|
|
|
| - target->drawNonIndexed(&drawState, gp, primType, 0, vertCount);
|
| + target->drawNonIndexed(&pipelineBuilder, gp, primType, 0, vertCount);
|
| } else {
|
| // filled BW rect
|
| - target->drawSimpleRect(&drawState, color, viewMatrix, rect);
|
| + target->drawSimpleRect(&pipelineBuilder, color, viewMatrix, rect);
|
| }
|
| }
|
|
|
| @@ -806,15 +806,16 @@ void GrContext::drawNonAARectToRect(const GrPaint& paint,
|
| const SkRect& localRect,
|
| const SkMatrix* localMatrix) {
|
| AutoCheckFlush acf(this);
|
| - GrDrawState drawState;
|
| - GrDrawTarget* target = this->prepareToDraw(&drawState, &paint, &acf);
|
| + GrPipelineBuilder pipelineBuilder;
|
| + GrDrawTarget* target = this->prepareToDraw(&pipelineBuilder, &paint, &acf);
|
| if (NULL == target) {
|
| return;
|
| }
|
|
|
| GR_CREATE_TRACE_MARKER("GrContext::drawRectToRect", target);
|
|
|
| - target->drawRect(&drawState, paint.getColor(), viewMatrix, rectToDraw, &localRect, localMatrix);
|
| + target->drawRect(&pipelineBuilder, paint.getColor(), viewMatrix, rectToDraw, &localRect,
|
| + localMatrix);
|
| }
|
|
|
| static const GrGeometryProcessor* set_vertex_attributes(const SkPoint* texCoords,
|
| @@ -851,10 +852,10 @@ void GrContext::drawVertices(const GrPaint& paint,
|
| const uint16_t indices[],
|
| int indexCount) {
|
| AutoCheckFlush acf(this);
|
| - GrDrawState drawState;
|
| + GrPipelineBuilder pipelineBuilder;
|
| GrDrawTarget::AutoReleaseGeometry geo; // must be inside AutoCheckFlush scope
|
|
|
| - GrDrawTarget* target = this->prepareToDraw(&drawState, &paint, &acf);
|
| + GrDrawTarget* target = this->prepareToDraw(&pipelineBuilder, &paint, &acf);
|
| if (NULL == target) {
|
| return;
|
| }
|
| @@ -894,9 +895,9 @@ void GrContext::drawVertices(const GrPaint& paint,
|
| for (int i = 0; i < indexCount; ++i) {
|
| curIndex[i] = indices[i];
|
| }
|
| - target->drawIndexed(&drawState, gp, primitiveType, 0, 0, vertexCount, indexCount);
|
| + target->drawIndexed(&pipelineBuilder, gp, primitiveType, 0, 0, vertexCount, indexCount);
|
| } else {
|
| - target->drawNonIndexed(&drawState, gp, primitiveType, 0, vertexCount);
|
| + target->drawNonIndexed(&pipelineBuilder, gp, primitiveType, 0, vertexCount);
|
| }
|
| }
|
|
|
| @@ -918,8 +919,8 @@ void GrContext::drawRRect(const GrPaint& paint,
|
| }
|
|
|
| AutoCheckFlush acf(this);
|
| - GrDrawState drawState;
|
| - GrDrawTarget* target = this->prepareToDraw(&drawState, &paint, &acf);
|
| + GrPipelineBuilder pipelineBuilder;
|
| + GrDrawTarget* target = this->prepareToDraw(&pipelineBuilder, &paint, &acf);
|
| if (NULL == target) {
|
| return;
|
| }
|
| @@ -929,12 +930,12 @@ void GrContext::drawRRect(const GrPaint& paint,
|
| const SkStrokeRec& strokeRec = strokeInfo.getStrokeRec();
|
|
|
| GrColor color = paint.getColor();
|
| - if (!fOvalRenderer->drawRRect(target, &drawState, color, viewMatrix, paint.isAntiAlias(), rrect,
|
| - strokeRec)) {
|
| + if (!fOvalRenderer->drawRRect(target, &pipelineBuilder, color, viewMatrix, paint.isAntiAlias(),
|
| + rrect, strokeRec)) {
|
| SkPath path;
|
| path.addRRect(rrect);
|
| - this->internalDrawPath(target, &drawState, viewMatrix, color, paint.isAntiAlias(), path,
|
| - strokeInfo);
|
| + this->internalDrawPath(target, &pipelineBuilder, viewMatrix, color, paint.isAntiAlias(),
|
| + path, strokeInfo);
|
| }
|
| }
|
|
|
| @@ -949,21 +950,22 @@ void GrContext::drawDRRect(const GrPaint& paint,
|
| }
|
|
|
| AutoCheckFlush acf(this);
|
| - GrDrawState drawState;
|
| - GrDrawTarget* target = this->prepareToDraw(&drawState, &paint, &acf);
|
| + GrPipelineBuilder pipelineBuilder;
|
| + GrDrawTarget* target = this->prepareToDraw(&pipelineBuilder, &paint, &acf);
|
|
|
| GR_CREATE_TRACE_MARKER("GrContext::drawDRRect", target);
|
|
|
| GrColor color = paint.getColor();
|
| - if (!fOvalRenderer->drawDRRect(target, &drawState, color, viewMatrix, paint.isAntiAlias(), outer, inner)) {
|
| + if (!fOvalRenderer->drawDRRect(target, &pipelineBuilder, color, viewMatrix, paint.isAntiAlias(),
|
| + outer, inner)) {
|
| SkPath path;
|
| path.addRRect(inner);
|
| path.addRRect(outer);
|
| path.setFillType(SkPath::kEvenOdd_FillType);
|
|
|
| GrStrokeInfo fillRec(SkStrokeRec::kFill_InitStyle);
|
| - this->internalDrawPath(target, &drawState, viewMatrix, color, paint.isAntiAlias(), path,
|
| - fillRec);
|
| + this->internalDrawPath(target, &pipelineBuilder, viewMatrix, color, paint.isAntiAlias(),
|
| + path, fillRec);
|
| }
|
| }
|
|
|
| @@ -985,8 +987,8 @@ void GrContext::drawOval(const GrPaint& paint,
|
| }
|
|
|
| AutoCheckFlush acf(this);
|
| - GrDrawState drawState;
|
| - GrDrawTarget* target = this->prepareToDraw(&drawState, &paint, &acf);
|
| + GrPipelineBuilder pipelineBuilder;
|
| + GrDrawTarget* target = this->prepareToDraw(&pipelineBuilder, &paint, &acf);
|
| if (NULL == target) {
|
| return;
|
| }
|
| @@ -996,18 +998,18 @@ void GrContext::drawOval(const GrPaint& paint,
|
| const SkStrokeRec& strokeRec = strokeInfo.getStrokeRec();
|
|
|
| GrColor color = paint.getColor();
|
| - if (!fOvalRenderer->drawOval(target, &drawState, color, viewMatrix, paint.isAntiAlias(), oval,
|
| - strokeRec)) {
|
| + if (!fOvalRenderer->drawOval(target, &pipelineBuilder, color, viewMatrix, paint.isAntiAlias(),
|
| + oval, strokeRec)) {
|
| SkPath path;
|
| path.addOval(oval);
|
| - this->internalDrawPath(target, &drawState, viewMatrix, color, paint.isAntiAlias(), path,
|
| - strokeInfo);
|
| + this->internalDrawPath(target, &pipelineBuilder, viewMatrix, color, paint.isAntiAlias(),
|
| + path, strokeInfo);
|
| }
|
| }
|
|
|
| // Can 'path' be drawn as a pair of filled nested rectangles?
|
| static bool is_nested_rects(GrDrawTarget* target,
|
| - GrDrawState* drawState,
|
| + GrPipelineBuilder* pipelineBuilder,
|
| GrColor color,
|
| const SkMatrix& viewMatrix,
|
| const SkPath& path,
|
| @@ -1025,8 +1027,8 @@ static bool is_nested_rects(GrDrawTarget* target,
|
| return false;
|
| }
|
|
|
| - if (!drawState->canTweakAlphaForCoverage() &&
|
| - !drawState->canUseFracCoveragePrimProc(color, *target->caps())) {
|
| + if (!pipelineBuilder->canTweakAlphaForCoverage() &&
|
| + !pipelineBuilder->canUseFracCoveragePrimProc(color, *target->caps())) {
|
| return false;
|
| }
|
|
|
| @@ -1080,14 +1082,14 @@ void GrContext::drawPath(const GrPaint& paint,
|
| SkPoint pts[2];
|
| if (path.isLine(pts)) {
|
| AutoCheckFlush acf(this);
|
| - GrDrawState drawState;
|
| - GrDrawTarget* target = this->prepareToDraw(&drawState, &paint, &acf);
|
| + GrPipelineBuilder pipelineBuilder;
|
| + GrDrawTarget* target = this->prepareToDraw(&pipelineBuilder, &paint, &acf);
|
| if (NULL == target) {
|
| return;
|
| }
|
|
|
| - if (GrDashingEffect::DrawDashLine(fGpu, target, &drawState, color, viewMatrix, pts,
|
| - paint, strokeInfo)) {
|
| + if (GrDashingEffect::DrawDashLine(fGpu, target, &pipelineBuilder, color, viewMatrix,
|
| + pts, paint, strokeInfo)) {
|
| return;
|
| }
|
| }
|
| @@ -1112,8 +1114,8 @@ void GrContext::drawPath(const GrPaint& paint,
|
| // the writePixels that uploads to the scratch will perform a flush so we're
|
| // OK.
|
| AutoCheckFlush acf(this);
|
| - GrDrawState drawState;
|
| - GrDrawTarget* target = this->prepareToDraw(&drawState, &paint, &acf);
|
| + GrPipelineBuilder pipelineBuilder;
|
| + GrDrawTarget* target = this->prepareToDraw(&pipelineBuilder, &paint, &acf);
|
| if (NULL == target) {
|
| return;
|
| }
|
| @@ -1122,14 +1124,15 @@ void GrContext::drawPath(const GrPaint& paint,
|
|
|
| const SkStrokeRec& strokeRec = strokeInfo.getStrokeRec();
|
|
|
| - bool useCoverageAA = paint.isAntiAlias() && !drawState.getRenderTarget()->isMultisampled();
|
| + bool useCoverageAA = paint.isAntiAlias() &&
|
| + !pipelineBuilder.getRenderTarget()->isMultisampled();
|
|
|
| if (useCoverageAA && strokeRec.getWidth() < 0 && !path.isConvex()) {
|
| // Concave AA paths are expensive - try to avoid them for special cases
|
| SkRect rects[2];
|
|
|
| - if (is_nested_rects(target, &drawState, color, viewMatrix, path, strokeRec, rects)) {
|
| - fAARectRenderer->fillAANestedRects(target, &drawState, color, viewMatrix,rects);
|
| + if (is_nested_rects(target, &pipelineBuilder, color, viewMatrix, path, strokeRec, rects)) {
|
| + fAARectRenderer->fillAANestedRects(target, &pipelineBuilder, color, viewMatrix,rects);
|
| return;
|
| }
|
| }
|
| @@ -1138,15 +1141,15 @@ void GrContext::drawPath(const GrPaint& paint,
|
| bool isOval = path.isOval(&ovalRect);
|
|
|
| if (!isOval || path.isInverseFillType() ||
|
| - !fOvalRenderer->drawOval(target, &drawState, color, viewMatrix, paint.isAntiAlias(),
|
| + !fOvalRenderer->drawOval(target, &pipelineBuilder, color, viewMatrix, paint.isAntiAlias(),
|
| ovalRect, strokeRec)) {
|
| - this->internalDrawPath(target, &drawState, viewMatrix, color, paint.isAntiAlias(), path,
|
| - strokeInfo);
|
| + this->internalDrawPath(target, &pipelineBuilder, viewMatrix, color, paint.isAntiAlias(),
|
| + path, strokeInfo);
|
| }
|
| }
|
|
|
| void GrContext::internalDrawPath(GrDrawTarget* target,
|
| - GrDrawState* drawState,
|
| + GrPipelineBuilder* pipelineBuilder,
|
| const SkMatrix& viewMatrix,
|
| GrColor color,
|
| bool useAA,
|
| @@ -1162,8 +1165,8 @@ void GrContext::internalDrawPath(GrDrawTarget* target,
|
| // aa. If we have some future driver-mojo path AA that can do the right
|
| // thing WRT to the blend then we'll need some query on the PR.
|
| bool useCoverageAA = useAA &&
|
| - !drawState->getRenderTarget()->isMultisampled() &&
|
| - drawState->canUseFracCoveragePrimProc(color, *target->caps());
|
| + !pipelineBuilder->getRenderTarget()->isMultisampled() &&
|
| + pipelineBuilder->canUseFracCoveragePrimProc(color, *target->caps());
|
|
|
|
|
| GrPathRendererChain::DrawType type =
|
| @@ -1175,8 +1178,8 @@ void GrContext::internalDrawPath(GrDrawTarget* target,
|
| SkTCopyOnFirstWrite<SkStrokeRec> stroke(strokeInfo.getStrokeRec());
|
|
|
| // Try a 1st time without stroking the path and without allowing the SW renderer
|
| - GrPathRenderer* pr = this->getPathRenderer(target, drawState, viewMatrix, *pathPtr, *stroke,
|
| - false, type);
|
| + GrPathRenderer* pr = this->getPathRenderer(target, pipelineBuilder, viewMatrix, *pathPtr,
|
| + *stroke, false, type);
|
|
|
| if (NULL == pr) {
|
| if (!GrPathRenderer::IsStrokeHairlineOrEquivalent(*stroke, viewMatrix, NULL)) {
|
| @@ -1191,7 +1194,8 @@ void GrContext::internalDrawPath(GrDrawTarget* target,
|
| }
|
|
|
| // This time, allow SW renderer
|
| - pr = this->getPathRenderer(target, drawState, viewMatrix, *pathPtr, *stroke, true, type);
|
| + pr = this->getPathRenderer(target, pipelineBuilder, viewMatrix, *pathPtr, *stroke, true,
|
| + type);
|
| }
|
|
|
| if (NULL == pr) {
|
| @@ -1201,7 +1205,7 @@ void GrContext::internalDrawPath(GrDrawTarget* target,
|
| return;
|
| }
|
|
|
| - pr->drawPath(target, drawState, color, viewMatrix, *pathPtr, *stroke, useCoverageAA);
|
| + pr->drawPath(target, pipelineBuilder, color, viewMatrix, *pathPtr, *stroke, useCoverageAA);
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| @@ -1339,10 +1343,10 @@ bool GrContext::writeSurfacePixels(GrSurface* surface,
|
| GrDrawTarget* drawTarget = this->prepareToDraw(NULL, NULL, NULL);
|
| GrDrawTarget::AutoGeometryPush agp(drawTarget);
|
|
|
| - GrDrawState drawState;
|
| - drawState.addColorProcessor(fp);
|
| - drawState.setRenderTarget(renderTarget);
|
| - drawTarget->drawSimpleRect(&drawState, GrColor_WHITE, matrix,
|
| + GrPipelineBuilder pipelineBuilder;
|
| + pipelineBuilder.addColorProcessor(fp);
|
| + pipelineBuilder.setRenderTarget(renderTarget);
|
| + drawTarget->drawSimpleRect(&pipelineBuilder, GrColor_WHITE, matrix,
|
| SkRect::MakeWH(SkIntToScalar(width), SkIntToScalar(height)));
|
| }
|
|
|
| @@ -1458,13 +1462,14 @@ bool GrContext::readRenderTargetPixels(GrRenderTarget* target,
|
| // can be invoked in this method
|
| {
|
| GrDrawTarget::AutoGeometryPush agp(fDrawBuffer);
|
| - GrDrawState drawState;
|
| + GrPipelineBuilder pipelineBuilder;
|
| SkASSERT(fp);
|
| - drawState.addColorProcessor(fp);
|
| + pipelineBuilder.addColorProcessor(fp);
|
|
|
| - drawState.setRenderTarget(tempTexture->asRenderTarget());
|
| + pipelineBuilder.setRenderTarget(tempTexture->asRenderTarget());
|
| SkRect rect = SkRect::MakeWH(SkIntToScalar(width), SkIntToScalar(height));
|
| - fDrawBuffer->drawSimpleRect(&drawState, GrColor_WHITE, SkMatrix::I(), rect);
|
| + fDrawBuffer->drawSimpleRect(&pipelineBuilder, GrColor_WHITE, SkMatrix::I(),
|
| + rect);
|
| // we want to read back from the scratch's origin
|
| left = 0;
|
| top = 0;
|
| @@ -1552,7 +1557,7 @@ void GrContext::flushSurfaceWrites(GrSurface* surface) {
|
| }
|
| }
|
|
|
| -GrDrawTarget* GrContext::prepareToDraw(GrDrawState* ds,
|
| +GrDrawTarget* GrContext::prepareToDraw(GrPipelineBuilder* pipelineBuilder,
|
| const GrPaint* paint,
|
| const AutoCheckFlush* acf) {
|
| if (NULL == fGpu) {
|
| @@ -1560,10 +1565,11 @@ GrDrawTarget* GrContext::prepareToDraw(GrDrawState* ds,
|
| }
|
|
|
| ASSERT_OWNED_RESOURCE(fRenderTarget.get());
|
| - if (ds) {
|
| + if (pipelineBuilder) {
|
| SkASSERT(paint && acf);
|
| - ds->setFromPaint(*paint, fRenderTarget.get());
|
| - ds->setState(GrDrawState::kClip_StateBit, fClip && !fClip->fClipStack->isWideOpen());
|
| + pipelineBuilder->setFromPaint(*paint, fRenderTarget.get());
|
| + pipelineBuilder->setState(GrPipelineBuilder::kClip_StateBit,
|
| + fClip && !fClip->fClipStack->isWideOpen());
|
| }
|
| fDrawBuffer->setClip(fClip);
|
| return fDrawBuffer;
|
| @@ -1576,7 +1582,7 @@ GrDrawTarget* GrContext::prepareToDraw(GrDrawState* ds,
|
| * can be individually allowed/disallowed via the "allowSW" boolean.
|
| */
|
| GrPathRenderer* GrContext::getPathRenderer(const GrDrawTarget* target,
|
| - const GrDrawState* drawState,
|
| + const GrPipelineBuilder* pipelineBuilder,
|
| const SkMatrix& viewMatrix,
|
| const SkPath& path,
|
| const SkStrokeRec& stroke,
|
| @@ -1589,7 +1595,7 @@ GrPathRenderer* GrContext::getPathRenderer(const GrDrawTarget* target,
|
| }
|
|
|
| GrPathRenderer* pr = fPathRendererChain->getPathRenderer(target,
|
| - drawState,
|
| + pipelineBuilder,
|
| viewMatrix,
|
| path,
|
| stroke,
|
|
|