diff options
Diffstat (limited to 'src/gpu/GrAAHairLinePathRenderer.cpp')
-rw-r--r-- | src/gpu/GrAAHairLinePathRenderer.cpp | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/gpu/GrAAHairLinePathRenderer.cpp b/src/gpu/GrAAHairLinePathRenderer.cpp index 3ed4488f2b..527c18b36b 100644 --- a/src/gpu/GrAAHairLinePathRenderer.cpp +++ b/src/gpu/GrAAHairLinePathRenderer.cpp @@ -500,12 +500,14 @@ void add_line(const SkPoint p[2], } -bool GrAAHairLinePathRenderer::createGeom(const SkPath& path, - const GrVec* translate, - GrDrawTarget* target, - GrDrawState::StageMask stageMask, - int* lineCnt, - int* quadCnt) { +bool GrAAHairLinePathRenderer::createGeom( + const SkPath& path, + const GrVec* translate, + GrDrawTarget* target, + GrDrawState::StageMask stageMask, + int* lineCnt, + int* quadCnt, + GrDrawTarget::AutoReleaseGeometry* arg) { const GrDrawState& drawState = target->getDrawState(); int rtHeight = drawState.getRenderTarget()->height(); @@ -542,11 +544,12 @@ bool GrAAHairLinePathRenderer::createGeom(const SkPath& path, GrAssert(sizeof(Vertex) == GrDrawTarget::VertexSize(layout)); - Vertex* verts; - if (!target->reserveVertexSpace(layout, vertCnt, (void**)&verts)) { + if (!arg->set(target, layout, vertCnt, 0)) { return false; } + Vertex* verts = reinterpret_cast<Vertex*>(arg->vertices()); + const GrMatrix* toDevice = NULL; const GrMatrix* toSrc = NULL; GrMatrix ivm; @@ -597,13 +600,14 @@ bool GrAAHairLinePathRenderer::onDrawPath(const SkPath& path, int lineCnt; int quadCnt; - + GrDrawTarget::AutoReleaseGeometry arg; if (!this->createGeom(path, translate, target, stageMask, &lineCnt, - &quadCnt)) { + &quadCnt, + &arg)) { return false; } |