From: Brian Osman Date: Mon, 22 May 2017 15:03:01 +0000 (-0400) Subject: Switch to SkVertices version of drawVertices X-Git-Tag: accepted/tizen/5.0/unified/20181102.025319~36^2~88 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e2fc5632346a4544d86814bbab1dfb1d58d93a5e;p=platform%2Fupstream%2FlibSkiaSharp.git Switch to SkVertices version of drawVertices Bug: skia: Change-Id: I2966a5f6d1c0a953d5fe0d257550ae7f16e87e41 Reviewed-on: https://skia-review.googlesource.com/17455 Reviewed-by: Brian Salomon Commit-Queue: Brian Osman --- diff --git a/src/effects/SkBlurMaskFilter.cpp b/src/effects/SkBlurMaskFilter.cpp index 8b216bc..cf4ee61 100644 --- a/src/effects/SkBlurMaskFilter.cpp +++ b/src/effects/SkBlurMaskFilter.cpp @@ -14,6 +14,7 @@ #include "SkRRect.h" #include "SkStringUtils.h" #include "SkStrokeRec.h" +#include "SkVertices.h" #if SK_SUPPORT_GPU #include "GrCircleBlurFragmentProcessor.h" @@ -1401,38 +1402,32 @@ bool SkBlurMaskFilterImpl::directFilterRRectMaskGPU(GrContext* context, SkRect srcProxyRect = srcRRect.rect(); srcProxyRect.outset(3.0f*fSigma, 3.0f*fSigma); - SkPoint points[8]; - uint16_t indices[24]; - int numPoints, numIndices; - + sk_sp vertices = nullptr; SkRect temp = fOccluder; if (!temp.isEmpty() && (srcProxyRect.contains(temp) || temp.intersect(srcProxyRect))) { - srcProxyRect.toQuad(points); - temp.toQuad(&points[4]); - numPoints = 8; + SkVertices::Builder builder(SkVertices::kTriangles_VertexMode, 8, 24, 0); + srcProxyRect.toQuad(builder.positions()); + temp.toQuad(builder.positions() + 4); static const uint16_t ringI[24] = { 0, 1, 5, 5, 4, 0, 1, 2, 6, 6, 5, 1, 2, 3, 7, 7, 6, 2, 3, 0, 4, 4, 7, 3 }; - memcpy(indices, ringI, sizeof(ringI)); - numIndices = 24; + memcpy(builder.indices(), ringI, sizeof(ringI)); + vertices = builder.detach(); } else { // full rect case - srcProxyRect.toQuad(points); - numPoints = 4; + SkVertices::Builder builder(SkVertices::kTriangles_VertexMode, 4, 6, 0); + srcProxyRect.toQuad(builder.positions()); static const uint16_t fullI[6] = { 0, 1, 2, 0, 2, 3 }; - memcpy(indices, fullI, sizeof(fullI)); - numIndices = 6; + memcpy(builder.indices(), fullI, sizeof(fullI)); + vertices = builder.detach(); } paint.addCoverageFragmentProcessor(std::move(fp)); - renderTargetContext->drawVertices(clip, std::move(paint), viewMatrix, - kTriangles_GrPrimitiveType, numPoints, points, nullptr, - nullptr, indices, numIndices); - + renderTargetContext->drawVertices(clip, std::move(paint), viewMatrix, std::move(vertices)); } else { SkMatrix inverse; if (!viewMatrix.invert(&inverse)) {