diff options
author | 2016-10-03 15:24:44 -0400 | |
---|---|---|
committer | 2016-10-03 20:23:07 +0000 | |
commit | 0d9dfe981e2a620bd867efbad195856937657a4b (patch) | |
tree | b9d5eb6ac65275bf31216fdcffc72ac0b36bc975 /src | |
parent | 70cdb396eb5ffbbed128b902532e9292b5ec0e9d (diff) |
Supply random dst color space to asFP in unit tests
TBR=bsalomon@google.com (Testing-only API change)
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2876
Change-Id: I0ca26da0307848cdfc8ffaac2d042601663ab00b
Reviewed-on: https://skia-review.googlesource.com/2876
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/effects/SkPerlinNoiseShader.cpp | 3 | ||||
-rw-r--r-- | src/effects/gradients/SkLinearGradient.cpp | 3 | ||||
-rw-r--r-- | src/effects/gradients/SkRadialGradient.cpp | 3 | ||||
-rw-r--r-- | src/effects/gradients/SkSweepGradient.cpp | 3 | ||||
-rw-r--r-- | src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp | 15 | ||||
-rw-r--r-- | src/gpu/GrTestUtils.cpp | 14 |
6 files changed, 32 insertions, 9 deletions
diff --git a/src/effects/SkPerlinNoiseShader.cpp b/src/effects/SkPerlinNoiseShader.cpp index cacec1e2b4..a174bcac77 100644 --- a/src/effects/SkPerlinNoiseShader.cpp +++ b/src/effects/SkPerlinNoiseShader.cpp @@ -593,8 +593,9 @@ sk_sp<GrFragmentProcessor> GrPerlinNoiseEffect::TestCreate(GrProcessorTestData* stitchTiles ? &tileSize : nullptr)); SkMatrix viewMatrix = GrTest::TestMatrix(d->fRandom); + auto colorSpace = GrTest::TestColorSpace(d->fRandom); return shader->asFragmentProcessor(SkShader::AsFPArgs(d->fContext, &viewMatrix, nullptr, - kNone_SkFilterQuality, nullptr, + kNone_SkFilterQuality, colorSpace.get(), SkSourceGammaTreatment::kRespect)); } diff --git a/src/effects/gradients/SkLinearGradient.cpp b/src/effects/gradients/SkLinearGradient.cpp index 3372499a63..be29540add 100644 --- a/src/effects/gradients/SkLinearGradient.cpp +++ b/src/effects/gradients/SkLinearGradient.cpp @@ -421,8 +421,9 @@ sk_sp<GrFragmentProcessor> GrLinearGradient::TestCreate(GrProcessorTestData* d) int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm); auto shader = SkGradientShader::MakeLinear(points, colors, stops, colorCount, tm); SkMatrix viewMatrix = GrTest::TestMatrix(d->fRandom); + auto dstColorSpace = GrTest::TestColorSpace(d->fRandom); sk_sp<GrFragmentProcessor> fp = shader->asFragmentProcessor(SkShader::AsFPArgs( - d->fContext, &viewMatrix, NULL, kNone_SkFilterQuality, nullptr, + d->fContext, &viewMatrix, NULL, kNone_SkFilterQuality, dstColorSpace.get(), SkSourceGammaTreatment::kRespect)); GrAlwaysAssert(fp); return fp; diff --git a/src/effects/gradients/SkRadialGradient.cpp b/src/effects/gradients/SkRadialGradient.cpp index 15d2da40f2..b0ef205f44 100644 --- a/src/effects/gradients/SkRadialGradient.cpp +++ b/src/effects/gradients/SkRadialGradient.cpp @@ -315,8 +315,9 @@ sk_sp<GrFragmentProcessor> GrRadialGradient::TestCreate(GrProcessorTestData* d) int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm); auto shader = SkGradientShader::MakeRadial(center, radius, colors, stops, colorCount, tm); SkMatrix viewMatrix = GrTest::TestMatrix(d->fRandom); + auto dstColorSpace = GrTest::TestColorSpace(d->fRandom); sk_sp<GrFragmentProcessor> fp = shader->asFragmentProcessor(SkShader::AsFPArgs( - d->fContext, &viewMatrix, NULL, kNone_SkFilterQuality, nullptr, + d->fContext, &viewMatrix, NULL, kNone_SkFilterQuality, dstColorSpace.get(), SkSourceGammaTreatment::kRespect)); GrAlwaysAssert(fp); return fp; diff --git a/src/effects/gradients/SkSweepGradient.cpp b/src/effects/gradients/SkSweepGradient.cpp index 9ca207a5d5..d99d979f68 100644 --- a/src/effects/gradients/SkSweepGradient.cpp +++ b/src/effects/gradients/SkSweepGradient.cpp @@ -198,8 +198,9 @@ sk_sp<GrFragmentProcessor> GrSweepGradient::TestCreate(GrProcessorTestData* d) { sk_sp<SkShader> shader(SkGradientShader::MakeSweep(center.fX, center.fY, colors, stops, colorCount)); SkMatrix viewMatrix = GrTest::TestMatrix(d->fRandom); + auto dstColorSpace = GrTest::TestColorSpace(d->fRandom); sk_sp<GrFragmentProcessor> fp = shader->asFragmentProcessor(SkShader::AsFPArgs( - d->fContext, &viewMatrix, NULL, kNone_SkFilterQuality, nullptr, + d->fContext, &viewMatrix, NULL, kNone_SkFilterQuality, dstColorSpace.get(), SkSourceGammaTreatment::kRespect)); GrAlwaysAssert(fp); return fp; diff --git a/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp b/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp index a9a7805d5b..a8df3b50c3 100644 --- a/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp +++ b/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp @@ -207,8 +207,9 @@ sk_sp<GrFragmentProcessor> Edge2PtConicalEffect::TestCreate(GrProcessorTestData* auto shader = SkGradientShader::MakeTwoPointConical(center1, radius1, center2, radius2, colors, stops, colorCount, tm); SkMatrix viewMatrix = GrTest::TestMatrix(d->fRandom); + auto dstColorSpace = GrTest::TestColorSpace(d->fRandom); sk_sp<GrFragmentProcessor> fp = shader->asFragmentProcessor(SkShader::AsFPArgs( - d->fContext, &viewMatrix, NULL, kNone_SkFilterQuality, nullptr, + d->fContext, &viewMatrix, NULL, kNone_SkFilterQuality, dstColorSpace.get(), SkSourceGammaTreatment::kRespect)); GrAlwaysAssert(fp); return fp; @@ -482,8 +483,9 @@ sk_sp<GrFragmentProcessor> FocalOutside2PtConicalEffect::TestCreate(GrProcessorT auto shader = SkGradientShader::MakeTwoPointConical(center1, radius1, center2, radius2, colors, stops, colorCount, tm); SkMatrix viewMatrix = GrTest::TestMatrix(d->fRandom); + auto dstColorSpace = GrTest::TestColorSpace(d->fRandom); sk_sp<GrFragmentProcessor> fp = shader->asFragmentProcessor(SkShader::AsFPArgs( - d->fContext, &viewMatrix, NULL, kNone_SkFilterQuality, nullptr, + d->fContext, &viewMatrix, NULL, kNone_SkFilterQuality, dstColorSpace.get(), SkSourceGammaTreatment::kRespect)); GrAlwaysAssert(fp); return fp; @@ -686,8 +688,9 @@ sk_sp<GrFragmentProcessor> FocalInside2PtConicalEffect::TestCreate(GrProcessorTe auto shader = SkGradientShader::MakeTwoPointConical(center1, radius1, center2, radius2, colors, stops, colorCount, tm); SkMatrix viewMatrix = GrTest::TestMatrix(d->fRandom); + auto dstColorSpace = GrTest::TestColorSpace(d->fRandom); sk_sp<GrFragmentProcessor> fp = shader->asFragmentProcessor(SkShader::AsFPArgs( - d->fContext, &viewMatrix, NULL, kNone_SkFilterQuality, nullptr, + d->fContext, &viewMatrix, NULL, kNone_SkFilterQuality, dstColorSpace.get(), SkSourceGammaTreatment::kRespect)); GrAlwaysAssert(fp); return fp; @@ -932,8 +935,9 @@ sk_sp<GrFragmentProcessor> CircleInside2PtConicalEffect::TestCreate(GrProcessorT auto shader = SkGradientShader::MakeTwoPointConical(center1, radius1, center2, radius2, colors, stops, colorCount, tm); SkMatrix viewMatrix = GrTest::TestMatrix(d->fRandom); + auto dstColorSpace = GrTest::TestColorSpace(d->fRandom); sk_sp<GrFragmentProcessor> fp = shader->asFragmentProcessor(SkShader::AsFPArgs( - d->fContext, &viewMatrix, NULL, kNone_SkFilterQuality, nullptr, + d->fContext, &viewMatrix, NULL, kNone_SkFilterQuality, dstColorSpace.get(), SkSourceGammaTreatment::kRespect)); GrAlwaysAssert(fp); return fp; @@ -1165,8 +1169,9 @@ sk_sp<GrFragmentProcessor> CircleOutside2PtConicalEffect::TestCreate(GrProcessor auto shader = SkGradientShader::MakeTwoPointConical(center1, radius1, center2, radius2, colors, stops, colorCount, tm); SkMatrix viewMatrix = GrTest::TestMatrix(d->fRandom); + auto dstColorSpace = GrTest::TestColorSpace(d->fRandom); sk_sp<GrFragmentProcessor> fp = shader->asFragmentProcessor(SkShader::AsFPArgs( - d->fContext, &viewMatrix, NULL, kNone_SkFilterQuality, nullptr, + d->fContext, &viewMatrix, NULL, kNone_SkFilterQuality, dstColorSpace.get(), SkSourceGammaTreatment::kRespect)); GrAlwaysAssert(fp); return fp; diff --git a/src/gpu/GrTestUtils.cpp b/src/gpu/GrTestUtils.cpp index 7f5cc50efe..2aae8df375 100644 --- a/src/gpu/GrTestUtils.cpp +++ b/src/gpu/GrTestUtils.cpp @@ -290,6 +290,20 @@ SkPathEffect::DashType TestDashPathEffect::asADash(DashInfo* info) const { return kDash_DashType; } +sk_sp<SkColorSpace> TestColorSpace(SkRandom* random) { + static sk_sp<SkColorSpace> gColorSpaces[3]; + static bool gOnce; + if (!gOnce) { + gOnce = true; + // No color space (legacy mode) + gColorSpaces[0] = nullptr; + // sRGB or Adobe + gColorSpaces[1] = SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named); + gColorSpaces[2] = SkColorSpace::NewNamed(SkColorSpace::kAdobeRGB_Named); + } + return gColorSpaces[random->nextULessThan(static_cast<uint32_t>(SK_ARRAY_COUNT(gColorSpaces)))]; +} + sk_sp<GrColorSpaceXform> TestColorXform(SkRandom* random) { static sk_sp<GrColorSpaceXform> gXforms[3]; static bool gOnce; |