aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/core/SkColorSpace.h11
-rw-r--r--src/core/SkColorSpace.cpp18
-rw-r--r--src/core/SkColorSpace_Base.h3
-rw-r--r--tests/ColorSpaceTest.cpp2
4 files changed, 17 insertions, 17 deletions
diff --git a/include/core/SkColorSpace.h b/include/core/SkColorSpace.h
index 9630fe4c25..f942780b7c 100644
--- a/include/core/SkColorSpace.h
+++ b/include/core/SkColorSpace.h
@@ -10,7 +10,6 @@
#include "SkMatrix44.h"
#include "SkRefCnt.h"
-#include "../private/SkTemplates.h"
class SkColorSpace : public SkRefCnt {
public:
@@ -27,7 +26,7 @@ public:
/**
* Create an SkColorSpace from the src gamma and a transform from src gamut to D50 XYZ.
*/
- static sk_sp<SkColorSpace> NewRGB(float gammas[3], const SkMatrix44& toXYZD50);
+ static sk_sp<SkColorSpace> NewRGB(const float gammas[3], const SkMatrix44& toXYZD50);
/**
* Create a common, named SkColorSpace.
@@ -61,15 +60,15 @@ public:
/**
* Returns the matrix used to transform src gamut to XYZ D50.
*/
- SkMatrix44 xyz() const { return fToXYZD50; }
+ const SkMatrix44& xyz() const { return fToXYZD50; }
protected:
SkColorSpace(GammaNamed gammaNamed, const SkMatrix44& toXYZD50, Named named);
- const GammaNamed fGammaNamed;
- const SkMatrix44 fToXYZD50;
- const Named fNamed;
+ const GammaNamed fGammaNamed;
+ const SkMatrix44 fToXYZD50;
+ const Named fNamed;
};
#endif
diff --git a/src/core/SkColorSpace.cpp b/src/core/SkColorSpace.cpp
index 8f67a7f958..0a543bb839 100644
--- a/src/core/SkColorSpace.cpp
+++ b/src/core/SkColorSpace.cpp
@@ -24,20 +24,20 @@ SkColorSpace::SkColorSpace(GammaNamed gammaNamed, const SkMatrix44& toXYZD50, Na
SkColorSpace_Base::SkColorSpace_Base(sk_sp<SkGammas> gammas, const SkMatrix44& toXYZD50,
Named named)
: INHERITED(kNonStandard_GammaNamed, toXYZD50, named)
- , fGammas(gammas)
+ , fGammas(std::move(gammas))
{}
SkColorSpace_Base::SkColorSpace_Base(sk_sp<SkGammas> gammas, GammaNamed gammaNamed,
const SkMatrix44& toXYZD50, Named named)
: INHERITED(gammaNamed, toXYZD50, named)
- , fGammas(gammas)
+ , fGammas(std::move(gammas))
{}
SkColorSpace_Base::SkColorSpace_Base(SkColorLookUpTable* colorLUT, sk_sp<SkGammas> gammas,
const SkMatrix44& toXYZD50)
: INHERITED(kNonStandard_GammaNamed, toXYZD50, kUnknown_Named)
, fColorLUT(colorLUT)
- , fGammas(gammas)
+ , fGammas(std::move(gammas))
{}
const float gSRGB_toXYZD50[] {
@@ -82,7 +82,7 @@ static SkGammas* g2Dot2CurveGammas;
static SkOnce gLinearGammasOnce;
static SkGammas* gLinearGammas;
-sk_sp<SkColorSpace> SkColorSpace::NewRGB(float gammaVals[3], const SkMatrix44& toXYZD50) {
+sk_sp<SkColorSpace> SkColorSpace::NewRGB(const float gammaVals[3], const SkMatrix44& toXYZD50) {
sk_sp<SkGammas> gammas = nullptr;
GammaNamed gammaNamed = kNonStandard_GammaNamed;
@@ -795,7 +795,8 @@ sk_sp<SkColorSpace> SkColorSpace::NewICC(const void* base, size_t len) {
gammaVals[2] = gammas->fBlue.fValue;
return SkColorSpace::NewRGB(gammaVals, mat);
} else {
- return sk_sp<SkColorSpace>(new SkColorSpace_Base(gammas, mat, kUnknown_Named));
+ return sk_sp<SkColorSpace>(new SkColorSpace_Base(std::move(gammas), mat,
+ kUnknown_Named));
}
}
@@ -813,8 +814,8 @@ sk_sp<SkColorSpace> SkColorSpace::NewICC(const void* base, size_t len) {
sk_sp<SkGammas> gammas(new SkGammas(std::move(curves[0]), std::move(curves[1]),
std::move(curves[2])));
if (colorLUT->fTable) {
- return sk_sp<SkColorSpace>(new SkColorSpace_Base(colorLUT.release(), gammas,
- toXYZ));
+ return sk_sp<SkColorSpace>(new SkColorSpace_Base(colorLUT.release(),
+ std::move(gammas), toXYZ));
} else if (gammas->isValues()) {
// When we have values, take advantage of the NewFromRGB initializer.
// This allows us to check for canonical sRGB and Adobe RGB.
@@ -824,11 +825,10 @@ sk_sp<SkColorSpace> SkColorSpace::NewICC(const void* base, size_t len) {
gammaVals[2] = gammas->fBlue.fValue;
return SkColorSpace::NewRGB(gammaVals, toXYZ);
} else {
- return sk_sp<SkColorSpace>(new SkColorSpace_Base(gammas, toXYZ,
+ return sk_sp<SkColorSpace>(new SkColorSpace_Base(std::move(gammas), toXYZ,
kUnknown_Named));
}
}
-
}
default:
break;
diff --git a/src/core/SkColorSpace_Base.h b/src/core/SkColorSpace_Base.h
index 63588c42ae..535ec3b527 100644
--- a/src/core/SkColorSpace_Base.h
+++ b/src/core/SkColorSpace_Base.h
@@ -9,6 +9,7 @@
#define SkColorSpace_Base_DEFINED
#include "SkColorSpace.h"
+#include "SkTemplates.h"
struct SkGammaCurve {
bool isValue() const {
@@ -113,7 +114,7 @@ struct SkColorLookUpTable {
class SkColorSpace_Base : public SkColorSpace {
public:
- SkGammas* gammas() const { return fGammas.get(); }
+ const sk_sp<SkGammas>& gammas() const { return fGammas; }
private:
diff --git a/tests/ColorSpaceTest.cpp b/tests/ColorSpaceTest.cpp
index 097ca0929a..da69ea7e0f 100644
--- a/tests/ColorSpaceTest.cpp
+++ b/tests/ColorSpaceTest.cpp
@@ -21,7 +21,7 @@ static void test_space(skiatest::Reporter* r, SkColorSpace* space,
const float red[], const float green[], const float blue[],
const float expectedGammas[]) {
- SkGammas* gammas = as_CSB(space)->gammas();
+ const sk_sp<SkGammas>& gammas = as_CSB(space)->gammas();
REPORTER_ASSERT(r, almost_equal(expectedGammas[0], gammas->fRed.fValue));
REPORTER_ASSERT(r, almost_equal(expectedGammas[1], gammas->fGreen.fValue));
REPORTER_ASSERT(r, almost_equal(expectedGammas[2], gammas->fBlue.fValue));