| Index: src/gpu/GrDrawTarget.cpp
|
| diff --git a/src/gpu/GrDrawTarget.cpp b/src/gpu/GrDrawTarget.cpp
|
| index 4763ca73844dae7e0223ade938cb153ca6d88a41..ba06c66e8b063c542cb523d53174204ce9d8e9d2 100644
|
| --- a/src/gpu/GrDrawTarget.cpp
|
| +++ b/src/gpu/GrDrawTarget.cpp
|
| @@ -126,9 +126,7 @@ void GrDrawTarget::flush() {
|
| this->reset();
|
| }
|
|
|
| -void GrDrawTarget::drawBatch(GrPipelineBuilder* pipelineBuilder,
|
| - GrBatch* batch) {
|
| - SkASSERT(pipelineBuilder);
|
| +void GrDrawTarget::drawBatch(const GrPipelineBuilder& pipelineBuilder, GrBatch* batch) {
|
| // TODO some kind of checkdraw, but not at this level
|
|
|
| // Setup clip
|
| @@ -189,14 +187,13 @@ void GrDrawTarget::getPathStencilSettingsForFilltype(GrPathRendering::FillType f
|
| this->clipMaskManager()->adjustPathStencilParams(sb, outStencilSettings);
|
| }
|
|
|
| -void GrDrawTarget::stencilPath(GrPipelineBuilder* pipelineBuilder,
|
| +void GrDrawTarget::stencilPath(const GrPipelineBuilder& pipelineBuilder,
|
| const GrPathProcessor* pathProc,
|
| const GrPath* path,
|
| GrPathRendering::FillType fill) {
|
| // TODO: extract portions of checkDraw that are relevant to path stenciling.
|
| SkASSERT(path);
|
| SkASSERT(this->caps()->shaderCaps()->pathRenderingSupport());
|
| - SkASSERT(pipelineBuilder);
|
|
|
| // Setup clip
|
| GrScissorState scissorState;
|
| @@ -209,21 +206,20 @@ void GrDrawTarget::stencilPath(GrPipelineBuilder* pipelineBuilder,
|
|
|
| // set stencil settings for path
|
| GrStencilSettings stencilSettings;
|
| - GrRenderTarget* rt = pipelineBuilder->getRenderTarget();
|
| + GrRenderTarget* rt = pipelineBuilder.getRenderTarget();
|
| GrStencilAttachment* sb = rt->renderTargetPriv().attachStencilAttachment();
|
| this->getPathStencilSettingsForFilltype(fill, sb, &stencilSettings);
|
|
|
| - this->onStencilPath(*pipelineBuilder, pathProc, path, scissorState, stencilSettings);
|
| + this->onStencilPath(pipelineBuilder, pathProc, path, scissorState, stencilSettings);
|
| }
|
|
|
| -void GrDrawTarget::drawPath(GrPipelineBuilder* pipelineBuilder,
|
| +void GrDrawTarget::drawPath(const GrPipelineBuilder& pipelineBuilder,
|
| const GrPathProcessor* pathProc,
|
| const GrPath* path,
|
| GrPathRendering::FillType fill) {
|
| // TODO: extract portions of checkDraw that are relevant to path rendering.
|
| SkASSERT(path);
|
| SkASSERT(this->caps()->shaderCaps()->pathRenderingSupport());
|
| - SkASSERT(pipelineBuilder);
|
|
|
| SkRect devBounds = path->getBounds();
|
| pathProc->viewMatrix().mapRect(&devBounds);
|
| @@ -239,7 +235,7 @@ void GrDrawTarget::drawPath(GrPipelineBuilder* pipelineBuilder,
|
|
|
| // set stencil settings for path
|
| GrStencilSettings stencilSettings;
|
| - GrRenderTarget* rt = pipelineBuilder->getRenderTarget();
|
| + GrRenderTarget* rt = pipelineBuilder.getRenderTarget();
|
| GrStencilAttachment* sb = rt->renderTargetPriv().attachStencilAttachment();
|
| this->getPathStencilSettingsForFilltype(fill, sb, &stencilSettings);
|
|
|
| @@ -252,7 +248,7 @@ void GrDrawTarget::drawPath(GrPipelineBuilder* pipelineBuilder,
|
| this->onDrawPath(pathProc, path, stencilSettings, pipelineInfo);
|
| }
|
|
|
| -void GrDrawTarget::drawPaths(GrPipelineBuilder* pipelineBuilder,
|
| +void GrDrawTarget::drawPaths(const GrPipelineBuilder& pipelineBuilder,
|
| const GrPathProcessor* pathProc,
|
| const GrPathRange* pathRange,
|
| const void* indices,
|
| @@ -266,7 +262,6 @@ void GrDrawTarget::drawPaths(GrPipelineBuilder* pipelineBuilder,
|
| SkASSERT(indices);
|
| SkASSERT(0 == reinterpret_cast<long>(indices) % GrPathRange::PathIndexSizeInBytes(indexType));
|
| SkASSERT(transformValues);
|
| - SkASSERT(pipelineBuilder);
|
|
|
| // Setup clip
|
| GrScissorState scissorState;
|
| @@ -279,7 +274,7 @@ void GrDrawTarget::drawPaths(GrPipelineBuilder* pipelineBuilder,
|
|
|
| // set stencil settings for path
|
| GrStencilSettings stencilSettings;
|
| - GrRenderTarget* rt = pipelineBuilder->getRenderTarget();
|
| + GrRenderTarget* rt = pipelineBuilder.getRenderTarget();
|
| GrStencilAttachment* sb = rt->renderTargetPriv().attachStencilAttachment();
|
| this->getPathStencilSettingsForFilltype(fill, sb, &stencilSettings);
|
|
|
| @@ -296,18 +291,18 @@ void GrDrawTarget::drawPaths(GrPipelineBuilder* pipelineBuilder,
|
| transformType, count, stencilSettings, pipelineInfo);
|
| }
|
|
|
| -void GrDrawTarget::drawBWRect(GrPipelineBuilder* pipelineBuilder,
|
| - GrColor color,
|
| - const SkMatrix& viewMatrix,
|
| - const SkRect& rect,
|
| - const SkRect* localRect,
|
| - const SkMatrix* localMatrix) {
|
| +void GrDrawTarget::drawBWRect(const GrPipelineBuilder& pipelineBuilder,
|
| + GrColor color,
|
| + const SkMatrix& viewMatrix,
|
| + const SkRect& rect,
|
| + const SkRect* localRect,
|
| + const SkMatrix* localMatrix) {
|
| SkAutoTUnref<GrBatch> batch(GrRectBatch::Create(color, viewMatrix, rect, localRect,
|
| localMatrix));
|
| this->drawBatch(pipelineBuilder, batch);
|
| }
|
|
|
| -void GrDrawTarget::drawAARect(GrPipelineBuilder* pipelineBuilder,
|
| +void GrDrawTarget::drawAARect(const GrPipelineBuilder& pipelineBuilder,
|
| GrColor color,
|
| const SkMatrix& viewMatrix,
|
| const SkRect& rect,
|
| @@ -333,7 +328,7 @@ void GrDrawTarget::clear(const SkIRect* rect,
|
| GrPipelineBuilder pipelineBuilder;
|
| pipelineBuilder.setRenderTarget(renderTarget);
|
|
|
| - this->drawSimpleRect(&pipelineBuilder, color, SkMatrix::I(), *rect);
|
| + this->drawSimpleRect(pipelineBuilder, color, SkMatrix::I(), *rect);
|
| } else {
|
| this->onClear(rect, color, canIgnoreRect, renderTarget);
|
| }
|
| @@ -466,12 +461,12 @@ void GrDrawTarget::setupPipeline(const PipelineInfo& pipelineInfo,
|
| }
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| -GrDrawTarget::PipelineInfo::PipelineInfo(GrPipelineBuilder* pipelineBuilder,
|
| +GrDrawTarget::PipelineInfo::PipelineInfo(const GrPipelineBuilder& pipelineBuilder,
|
| GrScissorState* scissor,
|
| const GrPrimitiveProcessor* primProc,
|
| const SkRect* devBounds,
|
| GrDrawTarget* target)
|
| - : fPipelineBuilder(pipelineBuilder)
|
| + : fPipelineBuilder(&pipelineBuilder)
|
| , fScissor(scissor) {
|
| fColorPOI = fPipelineBuilder->colorProcInfo(primProc);
|
| fCoveragePOI = fPipelineBuilder->coverageProcInfo(primProc);
|
| @@ -481,12 +476,12 @@ GrDrawTarget::PipelineInfo::PipelineInfo(GrPipelineBuilder* pipelineBuilder,
|
| }
|
| }
|
|
|
| -GrDrawTarget::PipelineInfo::PipelineInfo(GrPipelineBuilder* pipelineBuilder,
|
| +GrDrawTarget::PipelineInfo::PipelineInfo(const GrPipelineBuilder& pipelineBuilder,
|
| GrScissorState* scissor,
|
| const GrBatch* batch,
|
| const SkRect* devBounds,
|
| GrDrawTarget* target)
|
| - : fPipelineBuilder(pipelineBuilder)
|
| + : fPipelineBuilder(&pipelineBuilder)
|
| , fScissor(scissor) {
|
| fColorPOI = fPipelineBuilder->colorProcInfo(batch);
|
| fCoveragePOI = fPipelineBuilder->coverageProcInfo(batch);
|
| @@ -504,13 +499,13 @@ GrClipTarget::GrClipTarget(GrContext* context)
|
| }
|
|
|
|
|
| -bool GrClipTarget::setupClip(GrPipelineBuilder* pipelineBuilder,
|
| +bool GrClipTarget::setupClip(const GrPipelineBuilder& pipelineBuilder,
|
| GrPipelineBuilder::AutoRestoreFragmentProcessors* arfp,
|
| GrPipelineBuilder::AutoRestoreStencil* ars,
|
| GrPipelineBuilder::AutoRestoreProcessorDataManager* arpdm,
|
| GrScissorState* scissorState,
|
| const SkRect* devBounds) {
|
| - return fClipMaskManager->setupClipping(*pipelineBuilder,
|
| + return fClipMaskManager->setupClipping(pipelineBuilder,
|
| arfp,
|
| ars,
|
| arpdm,
|
|
|