diff options
author | Brian Osman <brianosman@google.com> | 2018-06-13 17:21:19 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-06-14 11:30:47 +0000 |
commit | f018b7d607a0859e2d6078578a9632144694072f (patch) | |
tree | 05967e1777d04753b1a5415eec53fbfcd170fc70 /src/core/SkColorSpaceXformSteps.h | |
parent | b57a861f183bfc6ae251297e3173faff0dc262f9 (diff) |
SkColorSpaceXformSteps improvements and tests
Added some helper functions and put the booleans in a nested struct
(this is motivated by upcoming changes). Added a unit test of steps
against skcms, with round-tripping in both combinations.
Change-Id: Iea3d60cd52edb5259b5576b1422ed6f856cde815
Reviewed-on: https://skia-review.googlesource.com/134660
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Diffstat (limited to 'src/core/SkColorSpaceXformSteps.h')
-rw-r--r-- | src/core/SkColorSpaceXformSteps.h | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/src/core/SkColorSpaceXformSteps.h b/src/core/SkColorSpaceXformSteps.h index 6c38411692..3b2a88cddc 100644 --- a/src/core/SkColorSpaceXformSteps.h +++ b/src/core/SkColorSpaceXformSteps.h @@ -12,6 +12,22 @@ #include "SkImageInfo.h" struct SkColorSpaceXformSteps { + struct Flags { + bool unpremul; + bool linearize; + bool gamut_transform; + bool encode; + bool premul; + + uint32_t mask() const { + return (unpremul ? 1 : 0) + | (linearize ? 2 : 0) + | (gamut_transform ? 4 : 0) + | (encode ? 8 : 0) + | (premul ? 16 : 0); + } + }; + SkColorSpaceXformSteps(SkColorSpace* src, SkAlphaType srcAT, SkColorSpace* dst); @@ -22,17 +38,13 @@ struct SkColorSpaceXformSteps { return SkColorSpaceXformSteps(src, kOpaque_SkAlphaType, dst); } - bool unpremul; - bool linearize; - bool gamut_transform; - bool encode; - bool premul; + void apply(float rgba[4]) const; + + Flags flags; SkColorSpaceTransferFn srcTF, // Apply for linearize. dstTFInv; // Apply for encode. - float src_to_dst_matrix[9]; // Apply this 3x3 row-major matrix for gamut_transform. + float src_to_dst_matrix[9]; // Apply this 3x3 column-major matrix for gamut_transform. }; - - #endif//SkColorSpaceXformSteps_DEFINED |