diff options
author | msarett <msarett@google.com> | 2016-06-28 07:16:40 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-06-28 07:16:40 -0700 |
commit | 085cad4abcca4e10dcc6ba95347c378d4c47fb90 (patch) | |
tree | 47d287214316056532560bf3a57bc0030e220368 /src/core/SkColorSpacePriv.h | |
parent | 0a8f40cbe693274d8f63ac423e51be3e75ce5d35 (diff) |
Move SkColorSpace ICC parsing/writing code to its own file
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2101823003
Review-Url: https://codereview.chromium.org/2101823003
Diffstat (limited to 'src/core/SkColorSpacePriv.h')
-rw-r--r-- | src/core/SkColorSpacePriv.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/core/SkColorSpacePriv.h b/src/core/SkColorSpacePriv.h new file mode 100644 index 0000000000..7c7b9d0c21 --- /dev/null +++ b/src/core/SkColorSpacePriv.h @@ -0,0 +1,25 @@ +/* + * Copyright 2016 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#define SkColorSpacePrintf(...) + +inline bool color_space_almost_equal(float a, float b) { + return SkTAbs(a - b) < 0.01f; +} + +inline void set_gamma_value(SkGammaCurve* gamma, float value) { + if (color_space_almost_equal(2.2f, value)) { + gamma->fNamed = SkColorSpace::k2Dot2Curve_GammaNamed; + } else if (color_space_almost_equal(1.0f, value)) { + gamma->fNamed = SkColorSpace::kLinear_GammaNamed; + } else if (color_space_almost_equal(0.0f, value)) { + SkColorSpacePrintf("Treating invalid zero gamma as linear."); + gamma->fNamed = SkColorSpace::kLinear_GammaNamed; + } else { + gamma->fValue = value; + } +} |