From bbb6dc80fdfe6ff08cc1abb1a401bd958ced9602 Mon Sep 17 00:00:00 2001 From: mtklein Date: Wed, 27 Jan 2016 13:08:33 -0800 Subject: kill SkValue This is clearly not what we're going to do. TBR=reed@google.com BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1643753002 Review URL: https://codereview.chromium.org/1643753002 --- src/effects/SkArithmeticMode.cpp | 15 +---- src/effects/SkPixelXorXfermode.cpp | 15 +---- src/effects/SkToFromValue.cpp | 121 ------------------------------------- src/effects/SkToFromValue.h | 21 ------- 4 files changed, 4 insertions(+), 168 deletions(-) delete mode 100644 src/effects/SkToFromValue.cpp delete mode 100644 src/effects/SkToFromValue.h (limited to 'src/effects') diff --git a/src/effects/SkArithmeticMode.cpp b/src/effects/SkArithmeticMode.cpp index 7d22076558..ff062c3966 100644 --- a/src/effects/SkArithmeticMode.cpp +++ b/src/effects/SkArithmeticMode.cpp @@ -11,8 +11,6 @@ #include "SkWriteBuffer.h" #include "SkString.h" #include "SkUnPreMultiply.h" -#include "SkValue.h" -#include "SkValueKeys.h" #if SK_SUPPORT_GPU #include "SkArithmeticMode_gpu.h" #endif @@ -26,7 +24,7 @@ public: if (SkScalarNearlyZero(k1) && SkScalarNearlyEqual(k2, SK_Scalar1) && SkScalarNearlyZero(k3) && SkScalarNearlyZero(k4)) { return SkXfermode::Create(SkXfermode::kSrc_Mode); - } else if (SkScalarNearlyZero(k1) && SkScalarNearlyZero(k2) && + } else if (SkScalarNearlyZero(k1) && SkScalarNearlyZero(k2) && SkScalarNearlyEqual(k3, SK_Scalar1) && SkScalarNearlyZero(k4)) { return SkXfermode::Create(SkXfermode::kDst_Mode); } @@ -64,17 +62,6 @@ private: buffer.writeBool(fEnforcePMColor); } - SkValue asValue() const override { - auto value = SkValue::Object(SkValue::ArithmeticXfermode); - using namespace SkValueKeys::ArithmeticXfermode; - value.set(kK0, SkValue::FromF32(fK[0])); - value.set(kK1, SkValue::FromF32(fK[1])); - value.set(kK2, SkValue::FromF32(fK[2])); - value.set(kK3, SkValue::FromF32(fK[3])); - value.set(kEnforcePMColor, SkValue::FromS32(fEnforcePMColor ? 1 : 0)); - return value; - } - SkScalar fK[4]; bool fEnforcePMColor; diff --git a/src/effects/SkPixelXorXfermode.cpp b/src/effects/SkPixelXorXfermode.cpp index 5ea82e6309..e2ecb0e365 100644 --- a/src/effects/SkPixelXorXfermode.cpp +++ b/src/effects/SkPixelXorXfermode.cpp @@ -10,8 +10,6 @@ #include "SkReadBuffer.h" #include "SkWriteBuffer.h" #include "SkString.h" -#include "SkValue.h" -#include "SkValueKeys.h" // we always return an opaque color, 'cause I don't know what to do with // the alpha-component and still return a valid premultiplied color. @@ -66,8 +64,8 @@ static void add_pixelxor_code(GrGLSLFragmentBuilder* fragBuilder, SkString xorFuncName; // The xor function checks if the three passed in floats (f1, f2, f3) would - // have a bit in the log2(fPowerOf2Divisor)-th position if they were - // represented by an int. It then performs an xor of the 3 bits (using + // have a bit in the log2(fPowerOf2Divisor)-th position if they were + // represented by an int. It then performs an xor of the 3 bits (using // the property that serial xors can be treated as a sum of 0s & 1s mod 2). fragBuilder->emitFunction(kFloat_GrSLType, "xor", @@ -298,7 +296,7 @@ private: void onSetData(const GrGLSLProgramDataManager& pdman, const GrXferProcessor& processor) override { const PixelXorXP& pixelXor = processor.cast(); - pdman.set3f(fOpColorUni, + pdman.set3f(fOpColorUni, SkColorGetR(pixelXor.opColor())/255.0f, SkColorGetG(pixelXor.opColor())/255.0f, SkColorGetB(pixelXor.opColor())/255.0f); @@ -388,10 +386,3 @@ bool SkPixelXorXfermode::asXPFactory(GrXPFactory** xpf) const { } #endif - -SkValue SkPixelXorXfermode::asValue() const { - auto value = SkValue::Object(SkValue::PixelXorXfermode); - value.set(SkValueKeys::PixelXorXfermode::kOpColor, - SkValue::FromU32(SkToU32(fOpColor))); - return value; -} diff --git a/src/effects/SkToFromValue.cpp b/src/effects/SkToFromValue.cpp deleted file mode 100644 index cbb265b33f..0000000000 --- a/src/effects/SkToFromValue.cpp +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright 2016 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "SkArithmeticMode.h" -#include "SkMatrix.h" -#include "SkPixelXorXfermode.h" -#include "SkToFromValue.h" -#include "SkValueKeys.h" -#include "SkXfermode.h" - -//////////////////////////////////////////////////////////////////////////////// - -#define REQUIRE(cond) do { if (!(cond)) { SkASSERT(false); return false; } } while (false) - -template -bool getT(const SkValue& obj, SkValue::Key key, T* ptr) { - auto v = obj.get(key); - return v ? SkFromValue(*v, ptr) : false; -} - -template<> bool SkFromValue(const SkValue& val, float* f) { - REQUIRE(val.type() == SkValue::F32); - *f = val.f32(); - return true; -} - -template<> bool SkFromValue(const SkValue& val, int32_t* x) { - REQUIRE(val.type() == SkValue::S32); - *x = val.s32(); - return true; -} - -template<> bool SkFromValue(const SkValue& val, uint32_t* x) { - REQUIRE(val.type() == SkValue::U32); - *x = val.u32(); - return true; -} - -//////////////////////////////////////////////////////////////////////////////// - -template<> SkValue SkToValue(const SkMatrix& mat) { - auto val = SkValue::Object(SkValue::Matrix); - for (int i = 0; i < 9; ++i) { - if (mat[i] != SkMatrix::I()[i]) { - val.set(i, SkValue::FromF32(mat[i])); - } - } - return val; -} - -template<> bool SkFromValue(const SkValue& val, SkMatrix* m) { - REQUIRE(val.type() == SkValue::Matrix); - *m = SkMatrix::I(); - for (int i = 0; i < 9; i++) { - getT(val, i, &(*m)[i]); - } - return true; -} - -//////////////////////////////////////////////////////////////////////////////// - -template<> SkValue SkToValue(const SkXfermode* x) { - return x ? x->asValue() : SkValue::Object(SkValue::DefaultXfermode); -} - -static bool from_value_DefaultXfermode(const SkValue& val, - SkAutoTUnref* dst) { - dst->reset(nullptr); - return true; -} - -static bool from_value_ArithmeticXfermode(const SkValue& val, - SkAutoTUnref* dst) { - using namespace SkValueKeys::ArithmeticXfermode; - float k[4]; - REQUIRE(getT(val, kK0, &k[0])); - REQUIRE(getT(val, kK1, &k[1])); - REQUIRE(getT(val, kK2, &k[2])); - REQUIRE(getT(val, kK3, &k[3])); - int32_t enforce = true; - getT(val, kEnforcePMColor, &enforce); - dst->reset(SkArithmeticMode::Create( - k[0], k[1], k[2], k[3], SkToBool(enforce))); - return true; -} - -static bool from_value_PixelXorXfermode(const SkValue& val, - SkAutoTUnref* dst) { - uint32_t opColor; - REQUIRE(getT(val, SkValueKeys::PixelXorXfermode::kOpColor, &opColor)); - dst->reset(SkPixelXorXfermode::Create(opColor)); - return true; -} - -static bool from_value_ProcCoeffXfermode(const SkValue& val, - SkAutoTUnref* dst) { - uint32_t mode; - REQUIRE(getT(val, SkValueKeys::ProcCoeffXfermode::kMode, &mode)); - dst->reset(SkXfermode::Create((SkXfermode::Mode)mode)); - return true; -} - -template<> bool SkFromValue< SkAutoTUnref >( - const SkValue& val, SkAutoTUnref* dst) { - switch (val.type()) { - case SkValue::DefaultXfermode: return from_value_DefaultXfermode(val, dst); - case SkValue::ArithmeticXfermode: return from_value_ArithmeticXfermode(val, dst); - case SkValue::PixelXorXfermode: return from_value_PixelXorXfermode(val, dst); - case SkValue::ProcCoeffXfermode: return from_value_ProcCoeffXfermode(val, dst); - default: REQUIRE(false); - } -} - -//////////////////////////////////////////////////////////////////////////////// - -#undef REQUIRE - diff --git a/src/effects/SkToFromValue.h b/src/effects/SkToFromValue.h deleted file mode 100644 index 1ead4bd3fb..0000000000 --- a/src/effects/SkToFromValue.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2016 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ -#ifndef SkToFromValue_DEFINED -#define SkToFromValue_DEFINED - -#include "SkValue.h" - -template -SkValue SkToValue(const T&); - -template -SkValue SkToValue(const T*); - -template -bool SkFromValue(const SkValue&, T*); - -#endif // SkToFromValue_DEFINED -- cgit v1.2.3