aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu
diff options
context:
space:
mode:
authorGravatar Brian Osman <brianosman@google.com>2017-10-20 11:27:49 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-10-20 15:49:56 +0000
commitfe3e858e751609c3a9cbf7ad710ed415ea7213fc (patch)
tree08b23415e4b4843329da00f3704825322b531ae6 /src/gpu
parentdbfecd06adeb03e9365f3539e113412c0b18785e (diff)
Add clamped/unclamped xform to GrColorSpaceXform
Use that in analytic gradient setup for future-proofing. Also fixed several out-of-date comments in gradient code. Bug: skia: Change-Id: I79726cad786c22f80e08cdc2b7a1e15ae27ecd5a Reviewed-on: https://skia-review.googlesource.com/62320 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Brian Osman <brianosman@google.com>
Diffstat (limited to 'src/gpu')
-rw-r--r--src/gpu/GrColorSpaceXform.cpp9
-rw-r--r--src/gpu/GrColorSpaceXform.h3
-rw-r--r--src/gpu/SkGr.cpp2
3 files changed, 10 insertions, 4 deletions
diff --git a/src/gpu/GrColorSpaceXform.cpp b/src/gpu/GrColorSpaceXform.cpp
index 0e98a87f6c..e43ccdc14d 100644
--- a/src/gpu/GrColorSpaceXform.cpp
+++ b/src/gpu/GrColorSpaceXform.cpp
@@ -121,11 +121,16 @@ bool GrColorSpaceXform::Equals(const GrColorSpaceXform* a, const GrColorSpaceXfo
return a->fSrcToDst == b->fSrcToDst;
}
-GrColor4f GrColorSpaceXform::apply(const GrColor4f& srcColor) {
+GrColor4f GrColorSpaceXform::unclampedXform(const GrColor4f& srcColor) {
GrColor4f result;
fSrcToDst.mapScalars(srcColor.fRGBA, result.fRGBA);
- // We always operate on unpremul colors, so clamp to [0,1].
+ return result;
+}
+
+GrColor4f GrColorSpaceXform::clampedXform(const GrColor4f& srcColor) {
+ GrColor4f result = this->unclampedXform(srcColor);
for (int i = 0; i < 4; ++i) {
+ // We always operate on unpremul colors, so clamp to [0,1].
result.fRGBA[i] = SkTPin(result.fRGBA[i], 0.0f, 1.0f);
}
return result;
diff --git a/src/gpu/GrColorSpaceXform.h b/src/gpu/GrColorSpaceXform.h
index b871563387..3f03e5652d 100644
--- a/src/gpu/GrColorSpaceXform.h
+++ b/src/gpu/GrColorSpaceXform.h
@@ -37,7 +37,8 @@ public:
static bool Equals(const GrColorSpaceXform* a, const GrColorSpaceXform* b);
- GrColor4f apply(const GrColor4f& srcColor);
+ GrColor4f unclampedXform(const GrColor4f& srcColor);
+ GrColor4f clampedXform(const GrColor4f& srcColor);
private:
SkMatrix44 fSrcToDst;
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp
index 0c065f9c74..2d09f00719 100644
--- a/src/gpu/SkGr.cpp
+++ b/src/gpu/SkGr.cpp
@@ -342,7 +342,7 @@ GrColor4f SkColorToUnpremulGrColor4f(SkColor c, SkColorSpace* dstColorSpace,
}
if (gamutXform) {
- color = gamutXform->apply(color);
+ color = gamutXform->clampedXform(color);
}
return color;