aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkColorSpace.cpp
diff options
context:
space:
mode:
authorGravatar Matt Sarett <msarett@google.com>2016-10-28 12:51:08 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-10-28 19:51:11 +0000
commit99e3f7d6fcb7b3b4340286455733a7de9eb4ef81 (patch)
treeafa0f4135c5e6dbc456ea3426c70524a4d50b92f /src/core/SkColorSpace.cpp
parent8c05b450d2df755ecde183017e61c19a7a65725b (diff)
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 <msarett@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
Diffstat (limited to 'src/core/SkColorSpace.cpp')
-rw-r--r--src/core/SkColorSpace.cpp127
1 files changed, 29 insertions, 98 deletions
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> 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<SkGammas> gammas = sk_sp<SkGammas>(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<SkColorSpace>(new SkColorSpace_XYZ(kNonStandard_SkGammaNamed,
- gammas, toXYZD50, nullptr));
- }
-
- return SkColorSpace_Base::MakeRGB(gammaNamed, toXYZD50);
-}
-
-sk_sp<SkColorSpace> SkColorSpace_Base::MakeRGB(SkGammaNamed gammaNamed, const SkMatrix44& toXYZD50) {
+sk_sp<SkColorSpace> 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> SkColorSpace::MakeRGB(RenderTargetGamma gamma, const SkMatri
}
sk_sp<SkColorSpace> SkColorSpace::MakeRGB(const SkColorSpaceTransferFn& coeffs,
- const SkMatrix44& toXYZD50) {
+ const SkMatrix44& toXYZD50) {
if (!is_valid_transfer_fn(coeffs)) {
return nullptr;
}
@@ -308,13 +278,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
* matrix.
@@ -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<void>(memory, sizeof(ColorSpaceHeader));
-
- *(((float*) memory) + 0) = gammas->fRedData.fValue;
- *(((float*) memory) + 1) = gammas->fGreenData.fValue;
- *(((float*) memory) + 2) = gammas->fBlueData.fValue;
- memory = SkTAddOffset<void>(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<void>(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<void>(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<void>(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<void>(memory, 7 * sizeof(float));
+
+ thisXYZ->fToXYZD50.as3x4RowMajorf((float*) memory);
}
+
+ return sizeof(ColorSpaceHeader) + 19 * sizeof(float);
+ }
}
}
@@ -512,21 +458,6 @@ sk_sp<SkColorSpace> 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<const void>(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;