From 99e3f7d6fcb7b3b4340286455733a7de9eb4ef81 Mon Sep 17 00:00:00 2001 From: Matt Sarett Date: Fri, 28 Oct 2016 12:51:08 -0400 Subject: Remove unneeded SkColorSpace constructor TBR=reed@google.com BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4140 Change-Id: Ib1c477b6b56a100ea449ffa20bdf18041c044a78 Reviewed-on: https://skia-review.googlesource.com/4140 Reviewed-by: Matt Sarett Reviewed-by: Brian Osman Commit-Queue: Matt Sarett --- src/core/SkColorSpace.cpp | 127 +++++++++++----------------------------------- 1 file changed, 29 insertions(+), 98 deletions(-) (limited to 'src/core') diff --git a/src/core/SkColorSpace.cpp b/src/core/SkColorSpace.cpp index b6d8afee44..c09387bbad 100644 --- a/src/core/SkColorSpace.cpp +++ b/src/core/SkColorSpace.cpp @@ -124,38 +124,8 @@ static bool xyz_almost_equal(const SkMatrix44& toXYZD50, const float* standard) color_space_almost_equal(toXYZD50.getFloat(3, 3), 1.0f); } -sk_sp SkColorSpace::MakeRGB(const float values[3], const SkMatrix44& toXYZD50) { - if (0.0f > values[0] || 0.0f > values[1] || 0.0f > values[2]) { - return nullptr; - } - - SkGammaNamed gammaNamed = kNonStandard_SkGammaNamed; - if (color_space_almost_equal(2.2f, values[0]) && - color_space_almost_equal(2.2f, values[1]) && - color_space_almost_equal(2.2f, values[2])) { - gammaNamed = k2Dot2Curve_SkGammaNamed; - } else if (color_space_almost_equal(1.0f, values[0]) && - color_space_almost_equal(1.0f, values[1]) && - color_space_almost_equal(1.0f, values[2])) { - gammaNamed = kLinear_SkGammaNamed; - } - - if (kNonStandard_SkGammaNamed == gammaNamed) { - sk_sp gammas = sk_sp(new SkGammas()); - gammas->fRedType = SkGammas::Type::kValue_Type; - gammas->fGreenType = SkGammas::Type::kValue_Type; - gammas->fBlueType = SkGammas::Type::kValue_Type; - gammas->fRedData.fValue = values[0]; - gammas->fGreenData.fValue = values[1]; - gammas->fBlueData.fValue = values[2]; - return sk_sp(new SkColorSpace_XYZ(kNonStandard_SkGammaNamed, - gammas, toXYZD50, nullptr)); - } - - return SkColorSpace_Base::MakeRGB(gammaNamed, toXYZD50); -} - -sk_sp SkColorSpace_Base::MakeRGB(SkGammaNamed gammaNamed, const SkMatrix44& toXYZD50) { +sk_sp SkColorSpace_Base::MakeRGB(SkGammaNamed gammaNamed, const SkMatrix44& toXYZD50) +{ switch (gammaNamed) { case kSRGB_SkGammaNamed: if (xyz_almost_equal(toXYZD50, gSRGB_toXYZD50)) { @@ -194,7 +164,7 @@ sk_sp SkColorSpace::MakeRGB(RenderTargetGamma gamma, const SkMatri } sk_sp SkColorSpace::MakeRGB(const SkColorSpaceTransferFn& coeffs, - const SkMatrix44& toXYZD50) { + const SkMatrix44& toXYZD50) { if (!is_valid_transfer_fn(coeffs)) { return nullptr; } @@ -307,13 +277,6 @@ struct ColorSpaceHeader { */ static constexpr uint8_t kICC_Flag = 1 << 1; - /** - * If kFloatGamma_Flag is set, we will write 15 floats after the header. - * The first three are the gamma values, and the next twelve are the - * matrix. - */ - static constexpr uint8_t kFloatGamma_Flag = 1 << 2; - /** * If kTransferFn_Flag is set, we will write 19 floats after the header. * The first seven represent the transfer fn, and the next twelve are the @@ -388,52 +351,35 @@ size_t SkColorSpace::writeToMemory(void* memory) const { } return sizeof(ColorSpaceHeader) + 12 * sizeof(float); } - default: + default: { const SkGammas* gammas = thisXYZ->gammas(); SkASSERT(gammas); - if (gammas->isValue(0) && gammas->isValue(1) && gammas->isValue(2)) { - if (memory) { - *((ColorSpaceHeader*) memory) = - ColorSpaceHeader::Pack(k0_Version, 0, thisXYZ->fGammaNamed, - ColorSpaceHeader::kFloatGamma_Flag); - memory = SkTAddOffset(memory, sizeof(ColorSpaceHeader)); - - *(((float*) memory) + 0) = gammas->fRedData.fValue; - *(((float*) memory) + 1) = gammas->fGreenData.fValue; - *(((float*) memory) + 2) = gammas->fBlueData.fValue; - memory = SkTAddOffset(memory, 3 * sizeof(float)); - - thisXYZ->fToXYZD50.as3x4RowMajorf((float*) memory); - } - - return sizeof(ColorSpaceHeader) + 15 * sizeof(float); - } else { - SkASSERT(gammas->isParametric(0)); - SkASSERT(gammas->isParametric(1)); - SkASSERT(gammas->isParametric(2)); - SkASSERT(gammas->data(0) == gammas->data(1)); - SkASSERT(gammas->data(0) == gammas->data(2)); - - if (memory) { - *((ColorSpaceHeader*) memory) = - ColorSpaceHeader::Pack(k0_Version, 0, thisXYZ->fGammaNamed, - ColorSpaceHeader::kTransferFn_Flag); - memory = SkTAddOffset(memory, sizeof(ColorSpaceHeader)); - - *(((float*) memory) + 0) = gammas->params(0).fA; - *(((float*) memory) + 1) = gammas->params(0).fB; - *(((float*) memory) + 2) = gammas->params(0).fC; - *(((float*) memory) + 3) = gammas->params(0).fD; - *(((float*) memory) + 4) = gammas->params(0).fE; - *(((float*) memory) + 5) = gammas->params(0).fF; - *(((float*) memory) + 6) = gammas->params(0).fG; - memory = SkTAddOffset(memory, 7 * sizeof(float)); - - thisXYZ->fToXYZD50.as3x4RowMajorf((float*) memory); - } - - return sizeof(ColorSpaceHeader) + 19 * sizeof(float); + SkASSERT(gammas->isParametric(0)); + SkASSERT(gammas->isParametric(1)); + SkASSERT(gammas->isParametric(2)); + SkASSERT(gammas->data(0) == gammas->data(1)); + SkASSERT(gammas->data(0) == gammas->data(2)); + + if (memory) { + *((ColorSpaceHeader*) memory) = + ColorSpaceHeader::Pack(k0_Version, 0, thisXYZ->fGammaNamed, + ColorSpaceHeader::kTransferFn_Flag); + memory = SkTAddOffset(memory, sizeof(ColorSpaceHeader)); + + *(((float*) memory) + 0) = gammas->params(0).fA; + *(((float*) memory) + 1) = gammas->params(0).fB; + *(((float*) memory) + 2) = gammas->params(0).fC; + *(((float*) memory) + 3) = gammas->params(0).fD; + *(((float*) memory) + 4) = gammas->params(0).fE; + *(((float*) memory) + 5) = gammas->params(0).fF; + *(((float*) memory) + 6) = gammas->params(0).fG; + memory = SkTAddOffset(memory, 7 * sizeof(float)); + + thisXYZ->fToXYZD50.as3x4RowMajorf((float*) memory); } + + return sizeof(ColorSpaceHeader) + 19 * sizeof(float); + } } } @@ -512,21 +458,6 @@ sk_sp SkColorSpace::Deserialize(const void* data, size_t length) { return MakeICC(data, profileSize); } - case ColorSpaceHeader::kFloatGamma_Flag: { - if (length < 15 * sizeof(float)) { - return nullptr; - } - - float gammas[3]; - gammas[0] = *(((const float*) data) + 0); - gammas[1] = *(((const float*) data) + 1); - gammas[2] = *(((const float*) data) + 2); - data = SkTAddOffset(data, 3 * sizeof(float)); - - SkMatrix44 toXYZ(SkMatrix44::kUninitialized_Constructor); - toXYZ.set3x4RowMajorf((const float*) data); - return SkColorSpace::MakeRGB(gammas, toXYZ); - } case ColorSpaceHeader::kTransferFn_Flag: { if (length < 19 * sizeof(float)) { return nullptr; -- cgit v1.2.3