diff options
Diffstat (limited to 'src/shaders')
-rw-r--r-- | src/shaders/SkPictureShader.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/shaders/SkPictureShader.cpp b/src/shaders/SkPictureShader.cpp index 5549de240d..14ebae7a26 100644 --- a/src/shaders/SkPictureShader.cpp +++ b/src/shaders/SkPictureShader.cpp @@ -39,19 +39,19 @@ public: SkShader::TileMode tmx, SkShader::TileMode tmy, const SkSize& scale, - SkTransferFunctionBehavior blendBehavior) + bool hasDstColorSpace) : fColorSpace(std::move(colorSpace)) , fTile(tile) , fTmx(tmx) , fTmy(tmy) , fScale(scale) - , fBlendBehavior(blendBehavior) { + , fHasDstColorSpace(hasDstColorSpace ? 1 : 0) { static const size_t keySize = sizeof(fColorSpace) + sizeof(fTile) + sizeof(fTmx) + sizeof(fTmy) + sizeof(fScale) + - sizeof(fBlendBehavior); + sizeof(fHasDstColorSpace); // This better be packed. SkASSERT(sizeof(uint32_t) * (&fEndOfStruct - (uint32_t*)&fColorSpace) == keySize); this->init(&gBitmapSkaderKeyNamespaceLabel, MakeSharedID(shaderID), keySize); @@ -74,7 +74,7 @@ private: SkRect fTile; SkShader::TileMode fTmx, fTmy; SkSize fScale; - SkTransferFunctionBehavior fBlendBehavior; + uint32_t fHasDstColorSpace; SkDEBUGCODE(uint32_t fEndOfStruct;) }; @@ -228,8 +228,7 @@ sk_sp<SkShader> SkPictureShader::refBitmapShader(const SkMatrix& viewMatrix, // should perform color correct rendering and xform at draw time. SkASSERT(!fColorSpace || !dstColorSpace); sk_sp<SkColorSpace> keyCS = dstColorSpace ? sk_ref_sp(dstColorSpace) : fColorSpace; - SkTransferFunctionBehavior blendBehavior = dstColorSpace ? SkTransferFunctionBehavior::kRespect - : SkTransferFunctionBehavior::kIgnore; + bool hasDstColorSpace = SkToBool(dstColorSpace); sk_sp<SkShader> tileShader; BitmapShaderKey key(std::move(keyCS), @@ -238,7 +237,7 @@ sk_sp<SkShader> SkPictureShader::refBitmapShader(const SkMatrix& viewMatrix, fTmx, fTmy, tileScale, - blendBehavior); + hasDstColorSpace); if (!SkResourceCache::Find(key, BitmapShaderRec::Visitor, &tileShader)) { SkMatrix tileMatrix; |