aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkColorSpacePriv.h
diff options
context:
space:
mode:
authorGravatar msarett <msarett@google.com>2016-06-28 07:16:40 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-06-28 07:16:40 -0700
commit085cad4abcca4e10dcc6ba95347c378d4c47fb90 (patch)
tree47d287214316056532560bf3a57bc0030e220368 /src/core/SkColorSpacePriv.h
parent0a8f40cbe693274d8f63ac423e51be3e75ce5d35 (diff)
Move SkColorSpace ICC parsing/writing code to its own file
Diffstat (limited to 'src/core/SkColorSpacePriv.h')
-rw-r--r--src/core/SkColorSpacePriv.h25
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;
+ }
+}