aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrColorSpaceXform.cpp
diff options
context:
space:
mode:
authorGravatar brianosman <brianosman@google.com>2016-09-07 08:09:10 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-09-07 08:09:10 -0700
commit77320dbabcddf05c0a1489eaf1f496729dc8de0e (patch)
tree6dce3ee85d2206685279217db47e66dd47839e43 /src/gpu/GrColorSpaceXform.cpp
parentd2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77 (diff)
Add color gamut xform helpers to GrGLSLShaderBuilder
New helper functions inject the necessary shader function. Texture lookup functions can now insert the gamut xform at the appropriate place, too. As written, could be used to transform non-texture colors (e.g. vertex colors) as well. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2180803005 Review-Url: https://codereview.chromium.org/2180803005
Diffstat (limited to 'src/gpu/GrColorSpaceXform.cpp')
-rw-r--r--src/gpu/GrColorSpaceXform.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/gpu/GrColorSpaceXform.cpp b/src/gpu/GrColorSpaceXform.cpp
index a1e8938048..03aa271644 100644
--- a/src/gpu/GrColorSpaceXform.cpp
+++ b/src/gpu/GrColorSpaceXform.cpp
@@ -34,11 +34,13 @@ static inline bool matrix_is_almost_identity(const SkMatrix44& m,
sk_float_almost_equals(m.getFloat(3, 3), 1.0f, tol);
}
-GrColorSpaceXform::GrColorSpaceXform(const SkMatrix44& srcToDst) {
+GrColorSpaceXform::GrColorSpaceXform(const SkMatrix44& srcToDst, SkAlphaType srcAlphaType)
+ : fSrcAlphaType(srcAlphaType) {
srcToDst.asColMajorf(fSrcToDst);
}
-sk_sp<GrColorSpaceXform> GrColorSpaceXform::Make(SkColorSpace* src, SkColorSpace* dst) {
+sk_sp<GrColorSpaceXform> GrColorSpaceXform::Make(SkColorSpace* src, SkColorSpace* dst,
+ SkAlphaType srcAlphaType) {
if (!src || !dst) {
// Invalid
return nullptr;
@@ -59,5 +61,5 @@ sk_sp<GrColorSpaceXform> GrColorSpaceXform::Make(SkColorSpace* src, SkColorSpace
return nullptr;
}
- return sk_make_sp<GrColorSpaceXform>(srcToDst);
+ return sk_make_sp<GrColorSpaceXform>(srcToDst, srcAlphaType);
}