clean up SkShader friends
Many SkShader subclasses are only friends to use makeColorSpace().
Our usual solution to this is to add a method on SkColorSpaceXformer
that calls makeColorSpace() for us, so that only SkColorSpaceXformer
needs to be a friend.
Just a refactor. No image diffs.
Change-Id: Icf952b739edf45f2fb8c0c35e353ef2866f4c5cc
Reviewed-on: https://skia-review.googlesource.com/16370
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
diff --git a/src/core/SkColorSpaceXformer.cpp b/src/core/SkColorSpaceXformer.cpp
index a51e2e6..f5f22a1 100644
--- a/src/core/SkColorSpaceXformer.cpp
+++ b/src/core/SkColorSpaceXformer.cpp
@@ -52,6 +52,10 @@
return imageFilter->makeColorSpace(this);
}
+sk_sp<SkShader> SkColorSpaceXformer::apply(const SkShader* shader) {
+ return shader->makeColorSpace(this);
+}
+
void SkColorSpaceXformer::apply(SkColor* xformed, const SkColor* srgb, int n) {
SkAssertResult(fFromSRGB->apply(SkColorSpaceXform::kBGRA_8888_ColorFormat, xformed,
SkColorSpaceXform::kBGRA_8888_ColorFormat, srgb,
@@ -73,7 +77,7 @@
}
if (auto shader = src.getShader()) {
- dst.setShader(shader->makeColorSpace(this));
+ dst.setShader(this->apply(shader));
}
if (auto cf = src.getColorFilter()) {