| Index: tests/ColorSpaceXformTest.cpp
|
| diff --git a/tests/ColorSpaceXformTest.cpp b/tests/ColorSpaceXformTest.cpp
|
| index 0885d588527fc8954d290e16fc29b0781ba4798f..6cf0dbef21bb5815978f39b6e1f61bc3f73290ea 100644
|
| --- a/tests/ColorSpaceXformTest.cpp
|
| +++ b/tests/ColorSpaceXformTest.cpp
|
| @@ -30,7 +30,8 @@ static bool almost_equal(int x, int y) {
|
| return SkTAbs(x - y) <= 1;
|
| }
|
|
|
| -static void test_identity_xform(skiatest::Reporter* r, const sk_sp<SkGammas>& gammas) {
|
| +static void test_identity_xform(skiatest::Reporter* r, const sk_sp<SkGammas>& gammas,
|
| + bool repeat) {
|
| // Arbitrary set of 10 pixels
|
| constexpr int width = 10;
|
| constexpr uint32_t srcPixels[width] = {
|
| @@ -57,6 +58,12 @@ static void test_identity_xform(skiatest::Reporter* r, const sk_sp<SkGammas>& ga
|
| REPORTER_ASSERT(r, almost_equal(((srcPixels[i] >> 24) & 0xFF),
|
| SkGetPackedA32(dstPixels[i])));
|
| }
|
| +
|
| + if (repeat) {
|
| + // We should cache part of the transform after the run. So it is interesting
|
| + // to make sure it still runs correctly the second time.
|
| + test_identity_xform(r, gammas, false);
|
| + }
|
| }
|
|
|
| DEF_TEST(ColorSpaceXform_TableGamma, r) {
|
| @@ -81,7 +88,7 @@ DEF_TEST(ColorSpaceXform_TableGamma, r) {
|
| table[7] = 0.60f;
|
| table[8] = 0.75f;
|
| table[9] = 1.00f;
|
| - test_identity_xform(r, gammas);
|
| + test_identity_xform(r, gammas, true);
|
| }
|
|
|
| DEF_TEST(ColorSpaceXform_ParametricGamma, r) {
|
| @@ -107,7 +114,7 @@ DEF_TEST(ColorSpaceXform_ParametricGamma, r) {
|
| params->fB = 0.055f / 1.055f;
|
| params->fC = 0.0f;
|
| params->fG = 2.4f;
|
| - test_identity_xform(r, gammas);
|
| + test_identity_xform(r, gammas, true);
|
| }
|
|
|
| DEF_TEST(ColorSpaceXform_ExponentialGamma, r) {
|
| @@ -115,7 +122,7 @@ DEF_TEST(ColorSpaceXform_ExponentialGamma, r) {
|
| sk_sp<SkGammas> gammas = sk_sp<SkGammas>(new SkGammas());
|
| gammas->fRedType = gammas->fGreenType = gammas->fBlueType = SkGammas::Type::kValue_Type;
|
| gammas->fRedData.fValue = gammas->fGreenData.fValue = gammas->fBlueData.fValue = 1.4f;
|
| - test_identity_xform(r, gammas);
|
| + test_identity_xform(r, gammas, true);
|
| }
|
|
|
| DEF_TEST(ColorSpaceXform_NamedGamma, r) {
|
| @@ -124,7 +131,7 @@ DEF_TEST(ColorSpaceXform_NamedGamma, r) {
|
| gammas->fRedData.fNamed = kSRGB_SkGammaNamed;
|
| gammas->fGreenData.fNamed = k2Dot2Curve_SkGammaNamed;
|
| gammas->fBlueData.fNamed = kLinear_SkGammaNamed;
|
| - test_identity_xform(r, gammas);
|
| + test_identity_xform(r, gammas, true);
|
| }
|
|
|
| DEF_TEST(ColorSpaceXform_NonMatchingGamma, r) {
|
| @@ -165,7 +172,7 @@ DEF_TEST(ColorSpaceXform_NonMatchingGamma, r) {
|
| gammas->fBlueType = SkGammas::Type::kParam_Type;
|
| gammas->fBlueData.fParamOffset = sizeof(float) * tableSize;
|
|
|
| - test_identity_xform(r, gammas);
|
| + test_identity_xform(r, gammas, true);
|
| }
|
|
|
| DEF_TEST(ColorSpaceXform_applyCLUTMemoryAccess, r) {
|
|
|