aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/text
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/text')
-rw-r--r--src/gpu/text/GrAtlasTextContext.cpp8
-rw-r--r--src/gpu/text/GrStencilAndCoverTextContext.cpp2
-rw-r--r--src/gpu/text/GrTextUtils.cpp6
-rw-r--r--src/gpu/text/GrTextUtils.h15
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();
}