Chromium Code Reviews| Index: src/gpu/GrPathRenderingDrawContext.cpp |
| diff --git a/src/gpu/GrPathRenderingDrawContext.cpp b/src/gpu/GrPathRenderingDrawContext.cpp |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..8067dcb4dbdbf2c65b1e5b7410bb45d7cf70a14f |
| --- /dev/null |
| +++ b/src/gpu/GrPathRenderingDrawContext.cpp |
| @@ -0,0 +1,76 @@ |
| +/* |
| + * 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" |
| + |
|
robertphillips
2016/02/16 17:05:11
Do we need OWNED_RESOURCE ?
|
| +#define ASSERT_OWNED_RESOURCE(R) SkASSERT(!(R) || \ |
| + (R)->getContext() == this->drawingManager()->getContext()) |
| +#define ASSERT_SINGLE_OWNER \ |
| + SkDEBUGCODE(GrSingleOwner::AutoEnforce debug_SingleOwner(this->singleOwner());) |
| +#define RETURN_IF_ABANDONED if (this->drawingManager()->abandoned()) { return; } |
|
robertphillips
2016/02/16 17:05:11
rm _FALSE & _NULL flavors ?
|
| +#define RETURN_FALSE_IF_ABANDONED if (this->drawingManager()->abandoned()) { return false; } |
| +#define RETURN_NULL_IF_ABANDONED if (this->drawingManager()->abandoned()) { return nullptr; } |
| + |
| +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();) |
|
robertphillips
2016/02/16 17:05:11
GrPathRenderingDrawContext:: ?
|
| + GR_AUDIT_TRAIL_AUTO_FRAME(this->auditTrail(), "GrDrawContext::drawText"); |
| + |
| + if (!fTextContext) { |
| + fTextContext = GrStencilAndCoverTextContext::Create(); |
| + } |
| + |
| + fTextContext->drawText(this->drawingManager()->getContext(), this, clip, grPaint, skPaint, |
| + viewMatrix, this->surfaceProps(), |
| + text, byteLength, x, y, clipBounds); |
| +} |
|
robertphillips
2016/02/16 17:05:11
\n
|
| +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();) |
|
robertphillips
2016/02/16 17:05:11
GrPathRenderingDrawContext:: ?
|
| + GR_AUDIT_TRAIL_AUTO_FRAME(this->auditTrail(), "GrDrawContext::drawPosText"); |
| + |
| + if (!fTextContext) { |
| + fTextContext = GrStencilAndCoverTextContext::Create(); |
| + } |
| + |
| + fTextContext->drawPosText(this->drawingManager()->getContext(), this, clip, grPaint, skPaint, |
| + viewMatrix, this->surfaceProps(), |
| + text, byteLength, pos, scalarsPerPosition, offset, clipBounds); |
| +} |
|
robertphillips
2016/02/16 17:05:11
\n
|
| +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();) |
|
robertphillips
2016/02/16 17:05:11
GrPathRenderingDrawContext:: ?
|
| + GR_AUDIT_TRAIL_AUTO_FRAME(this->auditTrail(), "GrDrawContext::drawTextBlob"); |
| + |
| + if (!fTextContext) { |
| + fTextContext = GrStencilAndCoverTextContext::Create(); |
| + } |
| + |
| + fTextContext->drawTextBlob(this->drawingManager()->getContext(), this, clip, skPaint, |
| + viewMatrix, this->surfaceProps(), blob, x, |
| + y, filter, clipBounds); |
| +} |
| + |