diff options
Diffstat (limited to 'src/gpu/text')
-rw-r--r-- | src/gpu/text/GrAtlasTextContext.cpp | 8 | ||||
-rw-r--r-- | src/gpu/text/GrStencilAndCoverTextContext.cpp | 2 | ||||
-rw-r--r-- | src/gpu/text/GrTextUtils.cpp | 6 | ||||
-rw-r--r-- | src/gpu/text/GrTextUtils.h | 15 |
4 files changed, 13 insertions, 18 deletions
diff --git a/src/gpu/text/GrAtlasTextContext.cpp b/src/gpu/text/GrAtlasTextContext.cpp index 4f8748b5dd..adf4980601 100644 --- a/src/gpu/text/GrAtlasTextContext.cpp +++ b/src/gpu/text/GrAtlasTextContext.cpp @@ -118,7 +118,7 @@ void GrAtlasTextContext::drawTextBlob(GrContext* context, GrRenderTargetContext* cacheBlob = cache->find(key); } - GrTextUtils::Paint paint(&skPaint, rtc->colorSpaceInfo()); + GrTextUtils::Paint paint(&skPaint, &rtc->colorSpaceInfo()); if (cacheBlob) { if (cacheBlob->mustRegenerate(paint, blurRec, viewMatrix, x, y)) { // We have to remake the blob because changes may invalidate our masks. @@ -295,7 +295,7 @@ void GrAtlasTextContext::drawText(GrContext* context, GrRenderTargetContext* rtc if (context->abandoned()) { return; } - GrTextUtils::Paint paint(&skPaint, rtc->colorSpaceInfo()); + GrTextUtils::Paint paint(&skPaint, &rtc->colorSpaceInfo()); if (this->canDraw(skPaint, viewMatrix, props, *context->caps()->shaderCaps())) { sk_sp<GrAtlasTextBlob> blob( MakeDrawTextBlob(context->getTextBlobCache(), context->getAtlasGlyphCache(), @@ -320,7 +320,7 @@ void GrAtlasTextContext::drawPosText(GrContext* context, GrRenderTargetContext* const char text[], size_t byteLength, const SkScalar pos[], int scalarsPerPosition, const SkPoint& offset, const SkIRect& regionClipBounds) { - GrTextUtils::Paint paint(&skPaint, rtc->colorSpaceInfo()); + GrTextUtils::Paint paint(&skPaint, &rtc->colorSpaceInfo()); if (context->abandoned()) { return; } else if (this->canDraw(skPaint, viewMatrix, props, *context->caps()->shaderCaps())) { @@ -370,7 +370,7 @@ GR_DRAW_OP_TEST_DEFINE(GrAtlasTextOp) { skPaint.setLCDRenderText(random->nextBool()); skPaint.setAntiAlias(skPaint.isLCDRenderText() ? true : random->nextBool()); skPaint.setSubpixelText(random->nextBool()); - GrTextUtils::Paint utilsPaint(&skPaint, rtc->colorSpaceInfo()); + GrTextUtils::Paint utilsPaint(&skPaint, &rtc->colorSpaceInfo()); const char* text = "The quick brown fox jumps over the lazy dog."; int textLen = (int)strlen(text); diff --git a/src/gpu/text/GrStencilAndCoverTextContext.cpp b/src/gpu/text/GrStencilAndCoverTextContext.cpp index 502f4adc56..6d09c11b24 100644 --- a/src/gpu/text/GrStencilAndCoverTextContext.cpp +++ b/src/gpu/text/GrStencilAndCoverTextContext.cpp @@ -133,7 +133,7 @@ void GrStencilAndCoverTextContext::uncachedDrawTextBlob(GrContext* context, SkScalar x, SkScalar y, SkDrawFilter* drawFilter, const SkIRect& clipBounds) { - GrTextUtils::Paint paint(&skPaint, rtc->colorSpaceInfo()); + GrTextUtils::Paint paint(&skPaint, &rtc->colorSpaceInfo()); GrTextUtils::RunPaint runPaint(&paint, drawFilter, props); SkTextBlobRunIterator it(blob); for (;!it.done(); it.next()) { diff --git a/src/gpu/text/GrTextUtils.cpp b/src/gpu/text/GrTextUtils.cpp index f920ec438f..5465d28621 100644 --- a/src/gpu/text/GrTextUtils.cpp +++ b/src/gpu/text/GrTextUtils.cpp @@ -54,9 +54,9 @@ bool GrTextUtils::Paint::toGrPaint(GrMaskFormat maskFormat, GrRenderTargetContex void GrTextUtils::Paint::initFilteredColor() { // This mirrors the logic in skpaint_to_grpaint_impl for handling paint colors - if (fDstColorSpace) { - GrColor4f filteredColor = SkColorToUnpremulGrColor4f(fPaint->getColor(), fDstColorSpace, - fColorXformFromSRGB); + if (fDstColorSpaceInfo->colorSpace()) { + GrColor4f filteredColor = + SkColorToUnpremulGrColor4f(fPaint->getColor(), *fDstColorSpaceInfo); if (fPaint->getColorFilter()) { filteredColor = GrColor4f::FromSkColor4f( fPaint->getColorFilter()->filterColor4f(filteredColor.toSkColor4f())); diff --git a/src/gpu/text/GrTextUtils.h b/src/gpu/text/GrTextUtils.h index 0a6b2ccbbf..bd0a1ad2ea 100644 --- a/src/gpu/text/GrTextUtils.h +++ b/src/gpu/text/GrTextUtils.h @@ -48,10 +48,8 @@ public: */ class Paint { public: - explicit Paint(const SkPaint* paint, const GrColorSpaceInfo& dstColorSpaceInfo) - : fPaint(paint) - , fDstColorSpace(dstColorSpaceInfo.colorSpace()) - , fColorXformFromSRGB(dstColorSpaceInfo.colorSpaceXformFromSRGB()) { + explicit Paint(const SkPaint* paint, const GrColorSpaceInfo* dstColorSpaceInfo) + : fPaint(paint), fDstColorSpaceInfo(dstColorSpaceInfo) { this->initFilteredColor(); } @@ -67,15 +65,13 @@ public: GrPaint*) const; // Just for RunPaint's constructor - SkColorSpace* dstColorSpace() const { return fDstColorSpace; } - GrColorSpaceXform* colorXformFromSRGB() const { return fColorXformFromSRGB; } + const GrColorSpaceInfo* dstColorSpaceInfo() const { return fDstColorSpaceInfo; } protected: void initFilteredColor(); Paint() = default; const SkPaint* fPaint; - SkColorSpace* fDstColorSpace; - GrColorSpaceXform* fColorXformFromSRGB; + const GrColorSpaceInfo* fDstColorSpaceInfo; // This is the paint's color run through its color filter, if present. This color should // be used except when rendering bitmap text, in which case the bitmap must be filtered in // the fragment shader. @@ -93,8 +89,7 @@ public: : fOriginalPaint(paint), fFilter(filter), fProps(props) { // Initially we represent the original paint. fPaint = &fOriginalPaint->skPaint(); - fDstColorSpace = fOriginalPaint->dstColorSpace(); - fColorXformFromSRGB = fOriginalPaint->colorXformFromSRGB(); + fDstColorSpaceInfo = fOriginalPaint->dstColorSpaceInfo(); fFilteredPremulColor = fOriginalPaint->filteredPremulColor(); } |