| Index: src/gpu/GrSWMaskHelper.cpp
|
| diff --git a/src/gpu/GrSWMaskHelper.cpp b/src/gpu/GrSWMaskHelper.cpp
|
| index 0c42a2bb98af2c0603b4b33149ad824bd1c68612..5f3c8242512e5270175cef55b40be75daa55db14 100644
|
| --- a/src/gpu/GrSWMaskHelper.cpp
|
| +++ b/src/gpu/GrSWMaskHelper.cpp
|
| @@ -11,13 +11,12 @@
|
| #include "GrContext.h"
|
| #include "batches/GrDrawBatch.h"
|
| #include "GrDrawContext.h"
|
| -#include "GrGpu.h"
|
| +#include "GrShape.h"
|
| #include "GrPipelineBuilder.h"
|
| +#include "GrShape.h"
|
| #include "GrStyle.h"
|
|
|
| -#include "SkData.h"
|
| #include "SkDistanceFieldGen.h"
|
| -#include "SkStrokeRec.h"
|
|
|
| #include "batches/GrRectBatchFactory.h"
|
|
|
| @@ -55,13 +54,15 @@ void GrSWMaskHelper::drawRect(const SkRect& rect, SkRegion::Op op,
|
| /**
|
| * Draw a single path element of the clip stack into the accumulation bitmap
|
| */
|
| -void GrSWMaskHelper::drawPath(const SkPath& path, const GrStyle& style, SkRegion::Op op,
|
| - bool antiAlias, uint8_t alpha) {
|
| +void GrSWMaskHelper::drawShape(const GrShape& shape, SkRegion::Op op, bool antiAlias,
|
| + uint8_t alpha) {
|
| SkPaint paint;
|
| - paint.setPathEffect(sk_ref_sp(style.pathEffect()));
|
| - style.strokeRec().applyToPaint(&paint);
|
| + paint.setPathEffect(sk_ref_sp(shape.style().pathEffect()));
|
| + shape.style().strokeRec().applyToPaint(&paint);
|
| paint.setAntiAlias(antiAlias);
|
|
|
| + SkPath path;
|
| + shape.asPath(&path);
|
| if (SkRegion::kReplace_Op == op && 0xFF == alpha) {
|
| SkASSERT(0xFF == paint.getAlpha());
|
| fDraw.drawPathCoverage(path, paint);
|
| @@ -132,23 +133,21 @@ void GrSWMaskHelper::toSDF(unsigned char* sdf) {
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| /**
|
| - * Software rasterizes path to A8 mask (possibly using the context's matrix)
|
| - * and uploads the result to a scratch texture. Returns the resulting
|
| - * texture on success; nullptr on failure.
|
| + * Software rasterizes shape to A8 mask and uploads the result to a scratch texture. Returns the
|
| + * resulting texture on success; nullptr on failure.
|
| */
|
| -GrTexture* GrSWMaskHelper::DrawPathMaskToTexture(GrTextureProvider* texProvider,
|
| - const SkPath& path,
|
| - const GrStyle& style,
|
| - const SkIRect& resultBounds,
|
| - bool antiAlias,
|
| - const SkMatrix* matrix) {
|
| +GrTexture* GrSWMaskHelper::DrawShapeMaskToTexture(GrTextureProvider* texProvider,
|
| + const GrShape& shape,
|
| + const SkIRect& resultBounds,
|
| + bool antiAlias,
|
| + const SkMatrix* matrix) {
|
| GrSWMaskHelper helper(texProvider);
|
|
|
| if (!helper.init(resultBounds, matrix)) {
|
| return nullptr;
|
| }
|
|
|
| - helper.drawPath(path, style, SkRegion::kReplace_Op, antiAlias, 0xFF);
|
| + helper.drawShape(shape, SkRegion::kReplace_Op, antiAlias, 0xFF);
|
|
|
| GrTexture* texture(helper.createTexture());
|
| if (!texture) {
|
| @@ -160,14 +159,14 @@ GrTexture* GrSWMaskHelper::DrawPathMaskToTexture(GrTextureProvider* texProvider,
|
| return texture;
|
| }
|
|
|
| -void GrSWMaskHelper::DrawToTargetWithPathMask(GrTexture* texture,
|
| - GrDrawContext* drawContext,
|
| - const GrPaint* paint,
|
| - const GrUserStencilSettings* userStencilSettings,
|
| - const GrClip& clip,
|
| - GrColor color,
|
| - const SkMatrix& viewMatrix,
|
| - const SkIRect& rect) {
|
| +void GrSWMaskHelper::DrawToTargetWithShapeMask(GrTexture* texture,
|
| + GrDrawContext* drawContext,
|
| + const GrPaint* paint,
|
| + const GrUserStencilSettings* userStencilSettings,
|
| + const GrClip& clip,
|
| + GrColor color,
|
| + const SkMatrix& viewMatrix,
|
| + const SkIRect& rect) {
|
| SkMatrix invert;
|
| if (!viewMatrix.invert(&invert)) {
|
| return;
|
|
|