aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrRenderTargetContext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/GrRenderTargetContext.cpp')
-rw-r--r--src/gpu/GrRenderTargetContext.cpp26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/gpu/GrRenderTargetContext.cpp b/src/gpu/GrRenderTargetContext.cpp
index c0b25dedcf..8e90b04ee5 100644
--- a/src/gpu/GrRenderTargetContext.cpp
+++ b/src/gpu/GrRenderTargetContext.cpp
@@ -898,12 +898,34 @@ void GrRenderTargetContext::drawVertices(const GrClip& clip,
return;
}
- viewMatrix.mapRect(&bounds);
-
std::unique_ptr<GrDrawOp> op = GrDrawVerticesOp::Make(
paint.getColor(), primitiveType, viewMatrix, positions, vertexCount, indices,
indexCount, colors, texCoords, bounds, colorArrayType);
+ if (!op) {
+ return;
+ }
+ GrPipelineBuilder pipelineBuilder(std::move(paint), GrAAType::kNone);
+ this->getOpList()->addDrawOp(pipelineBuilder, this, clip, std::move(op));
+}
+void GrRenderTargetContext::drawVertices(const GrClip& clip,
+ GrPaint&& paint,
+ const SkMatrix& viewMatrix,
+ sk_sp<SkVertices> vertices,
+ uint32_t flags) {
+ ASSERT_SINGLE_OWNER
+ RETURN_IF_ABANDONED
+ SkDEBUGCODE(this->validate();)
+ GR_AUDIT_TRAIL_AUTO_FRAME(fAuditTrail, "GrRenderTargetContext::drawVertices");
+
+ AutoCheckFlush acf(this->drawingManager());
+
+ SkASSERT(vertices);
+ std::unique_ptr<GrDrawOp> op =
+ GrDrawVerticesOp::Make(paint.getColor(), std::move(vertices), viewMatrix, flags);
+ if (!op) {
+ return;
+ }
GrPipelineBuilder pipelineBuilder(std::move(paint), GrAAType::kNone);
this->getOpList()->addDrawOp(pipelineBuilder, this, clip, std::move(op));
}