diff options
author | brianosman <brianosman@google.com> | 2016-09-07 08:09:10 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-09-07 08:09:10 -0700 |
commit | 77320dbabcddf05c0a1489eaf1f496729dc8de0e (patch) | |
tree | 6dce3ee85d2206685279217db47e66dd47839e43 /src/gpu/GrColorSpaceXform.cpp | |
parent | d2e39dbc6a68a6cc2a480d0c8082eb204f6b6e77 (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.cpp | 8 |
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); } |