| Index: src/gpu/GrPathRenderingDrawContext.cpp
|
| diff --git a/src/gpu/GrPathRenderingDrawContext.cpp b/src/gpu/GrPathRenderingDrawContext.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a29af843b7cd184db083493099a9e14caf5e98fe
|
| --- /dev/null
|
| +++ b/src/gpu/GrPathRenderingDrawContext.cpp
|
| @@ -0,0 +1,74 @@
|
| +/*
|
| + * Copyright 2016 Google Inc.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +#include "GrPathRenderingDrawContext.h"
|
| +
|
| +#include "GrDrawingManager.h"
|
| +
|
| +#include "text/GrStencilAndCoverTextContext.h"
|
| +
|
| +#define ASSERT_SINGLE_OWNER \
|
| + SkDEBUGCODE(GrSingleOwner::AutoEnforce debug_SingleOwner(this->singleOwner());)
|
| +#define RETURN_IF_ABANDONED if (this->drawingManager()->abandoned()) { return; }
|
| +
|
| +void GrPathRenderingDrawContext::drawText(const GrClip& clip, const GrPaint& grPaint,
|
| + const SkPaint& skPaint,
|
| + const SkMatrix& viewMatrix, const char text[],
|
| + size_t byteLength, SkScalar x, SkScalar y,
|
| + const SkIRect& clipBounds) {
|
| + ASSERT_SINGLE_OWNER
|
| + RETURN_IF_ABANDONED
|
| + SkDEBUGCODE(this->validate();)
|
| + GR_AUDIT_TRAIL_AUTO_FRAME(this->auditTrail(), "GrPathRenderingDrawContext::drawText");
|
| +
|
| + if (!fStencilAndCoverTextContext) {
|
| + fStencilAndCoverTextContext = GrStencilAndCoverTextContext::Create();
|
| + }
|
| +
|
| + fStencilAndCoverTextContext->drawText(this->drawingManager()->getContext(), this, clip, grPaint,
|
| + skPaint, viewMatrix, this->surfaceProps(),
|
| + text, byteLength, x, y, clipBounds);
|
| +}
|
| +
|
| +void GrPathRenderingDrawContext::drawPosText(const GrClip& clip, const GrPaint& grPaint,
|
| + const SkPaint& skPaint,
|
| + const SkMatrix& viewMatrix, const char text[],
|
| + size_t byteLength, const SkScalar pos[],
|
| + int scalarsPerPosition, const SkPoint& offset,
|
| + const SkIRect& clipBounds) {
|
| + ASSERT_SINGLE_OWNER
|
| + RETURN_IF_ABANDONED
|
| + SkDEBUGCODE(this->validate();)
|
| + GR_AUDIT_TRAIL_AUTO_FRAME(this->auditTrail(), "GrPathRenderingDrawContext::drawPosText");
|
| +
|
| + if (!fStencilAndCoverTextContext) {
|
| + fStencilAndCoverTextContext = GrStencilAndCoverTextContext::Create();
|
| + }
|
| +
|
| + fStencilAndCoverTextContext->drawPosText(this->drawingManager()->getContext(), this, clip,
|
| + grPaint, skPaint, viewMatrix, this->surfaceProps(),
|
| + text, byteLength, pos, scalarsPerPosition, offset,
|
| + clipBounds);
|
| +}
|
| +
|
| +void GrPathRenderingDrawContext::drawTextBlob(const GrClip& clip, const SkPaint& skPaint,
|
| + const SkMatrix& viewMatrix, const SkTextBlob* blob,
|
| + SkScalar x, SkScalar y,
|
| + SkDrawFilter* filter, const SkIRect& clipBounds) {
|
| + ASSERT_SINGLE_OWNER
|
| + RETURN_IF_ABANDONED
|
| + SkDEBUGCODE(this->validate();)
|
| + GR_AUDIT_TRAIL_AUTO_FRAME(this->auditTrail(), "GrPathRenderingDrawContext::drawTextBlob");
|
| +
|
| + if (!fStencilAndCoverTextContext) {
|
| + fStencilAndCoverTextContext = GrStencilAndCoverTextContext::Create();
|
| + }
|
| +
|
| + fStencilAndCoverTextContext->drawTextBlob(this->drawingManager()->getContext(), this, clip,
|
| + skPaint, viewMatrix, this->surfaceProps(), blob, x,
|
| + y, filter, clipBounds);
|
| +}
|
|
|