Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(127)

Side by Side Diff: include/core/SkColorSpace.h

Issue 2319073002: Add gammaIsLinear() API to SkColorSpace (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/core/SkColorSpace.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2016 Google Inc. 2 * Copyright 2016 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef SkColorSpace_DEFINED 8 #ifndef SkColorSpace_DEFINED
9 #define SkColorSpace_DEFINED 9 #define SkColorSpace_DEFINED
10 10
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 /** 68 /**
69 * Create an SkColorSpace from an ICC profile. 69 * Create an SkColorSpace from an ICC profile.
70 */ 70 */
71 static sk_sp<SkColorSpace> NewICC(const void*, size_t); 71 static sk_sp<SkColorSpace> NewICC(const void*, size_t);
72 72
73 /** 73 /**
74 * Create an SkColorSpace with the same gamut as this color space, but with linear gamma. 74 * Create an SkColorSpace with the same gamut as this color space, but with linear gamma.
75 */ 75 */
76 sk_sp<SkColorSpace> makeLinearGamma(); 76 sk_sp<SkColorSpace> makeLinearGamma();
77 77
78 /**
79 * DO NOT USE: Will be deleted.
80 */
78 GammaNamed gammaNamed() const { return fGammaNamed; } 81 GammaNamed gammaNamed() const { return fGammaNamed; }
79 82
80 /** 83 /**
81 * Returns the matrix used to transform src gamut to XYZ D50. 84 * Returns the matrix used to transform src gamut to XYZ D50.
82 */ 85 */
83 const SkMatrix44& xyz() const { return fToXYZD50; } 86 const SkMatrix44& xyz() const { return fToXYZD50; }
84 87
85 /** 88 /**
86 * Returns true if the color space gamma is near enough to be approximated as sRGB. 89 * Returns true if the color space gamma is near enough to be approximated as sRGB.
87 */ 90 */
88 bool gammaCloseToSRGB() const { 91 bool gammaCloseToSRGB() const {
89 return kSRGB_GammaNamed == fGammaNamed || k2Dot2Curve_GammaNamed == fGam maNamed; 92 return kSRGB_GammaNamed == fGammaNamed || k2Dot2Curve_GammaNamed == fGam maNamed;
90 } 93 }
91 94
92 /** 95 /**
93 * To be used only by UMA code. 96 * Returns true if the color space gamma is linear.
94 */ 97 */
95 bool gammasAreMatching() const; 98 bool gammaIsLinear() const {
96 bool gammasAreNamed() const; 99 return kLinear_GammaNamed == fGammaNamed;
97 bool gammasAreValues() const; 100 }
98 bool gammasAreTables() const;
99 bool gammasAreParams() const;
100 101
101 /** 102 /**
102 * Returns nullptr on failure. Fails when we fallback to serializing ICC d ata and 103 * Returns nullptr on failure. Fails when we fallback to serializing ICC d ata and
103 * the data is too large to serialize. 104 * the data is too large to serialize.
104 */ 105 */
105 sk_sp<SkData> serialize() const; 106 sk_sp<SkData> serialize() const;
106 107
107 /** 108 /**
108 * If |memory| is nullptr, returns the size required to serialize. 109 * If |memory| is nullptr, returns the size required to serialize.
109 * Otherwise, serializes into |memory| and returns the size. 110 * Otherwise, serializes into |memory| and returns the size.
110 */ 111 */
111 size_t writeToMemory(void* memory) const; 112 size_t writeToMemory(void* memory) const;
112 113
113 static sk_sp<SkColorSpace> Deserialize(const void* data, size_t length); 114 static sk_sp<SkColorSpace> Deserialize(const void* data, size_t length);
114 115
115 /** 116 /**
116 * If both are null, we return true. If one is null and the other is not, we return false. 117 * If both are null, we return true. If one is null and the other is not, we return false.
117 * If both are non-null, we do a deeper compare. 118 * If both are non-null, we do a deeper compare.
118 */ 119 */
119 static bool Equals(const SkColorSpace* src, const SkColorSpace* dst); 120 static bool Equals(const SkColorSpace* src, const SkColorSpace* dst);
120 121
121 protected: 122 protected:
122 SkColorSpace(GammaNamed gammaNamed, const SkMatrix44& toXYZD50); 123 SkColorSpace(GammaNamed gammaNamed, const SkMatrix44& toXYZD50);
123 124
124 const GammaNamed fGammaNamed; 125 const GammaNamed fGammaNamed;
125 const SkMatrix44 fToXYZD50; 126 const SkMatrix44 fToXYZD50;
126 }; 127 };
127 128
128 #endif 129 #endif
OLDNEW
« no previous file with comments | « no previous file | src/core/SkColorSpace.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698