Changeset 272123 in webkit
- Timestamp:
- Jan 30, 2021 11:52:56 PM (18 months ago)
- Location:
- trunk
- Files:
-
- 10 added
- 2 deleted
- 19 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/TestExpectations (modified) (1 diff)
-
LayoutTests/fast/css/parsing-a98rgb-colors-expected.txt (deleted)
-
LayoutTests/fast/css/parsing-a98rgb-colors.html (deleted)
-
LayoutTests/fast/css/parsing-color-function-expected.txt (added)
-
LayoutTests/fast/css/parsing-color-function.html (added)
-
LayoutTests/imported/w3c/ChangeLog (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-color/predefined-011.html (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-color/predefined-012.html (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-color/rec2020-001-expected.html (added)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-color/rec2020-001.html (added)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-color/rec2020-002-expected.html (added)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-color/rec2020-002.html (added)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-color/rec2020-003-expected.html (added)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-color/rec2020-003.html (added)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-color/rec2020-004-expected.html (added)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-color/rec2020-004.html (added)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/css/CSSValueKeywords.in (modified) (1 diff)
-
Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp (modified) (2 diffs)
-
Source/WebCore/platform/graphics/Color.h (modified) (1 diff)
-
Source/WebCore/platform/graphics/ColorConversion.cpp (modified) (4 diffs)
-
Source/WebCore/platform/graphics/ColorConversion.h (modified) (7 diffs)
-
Source/WebCore/platform/graphics/ColorSerialization.cpp (modified) (2 diffs)
-
Source/WebCore/platform/graphics/ColorSerialization.h (modified) (2 diffs)
-
Source/WebCore/platform/graphics/ColorSpace.cpp (modified) (1 diff)
-
Source/WebCore/platform/graphics/ColorSpace.h (modified) (1 diff)
-
Source/WebCore/platform/graphics/ColorTransferFunctions.h (modified) (2 diffs)
-
Source/WebCore/platform/graphics/ColorTypes.h (modified) (3 diffs)
-
Source/WebCore/platform/graphics/cg/ColorSpaceCG.cpp (modified) (1 diff)
-
Source/WebCore/platform/graphics/cg/ColorSpaceCG.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r272117 r272123 1 2021-01-30 Sam Weinig <weinig@apple.com> 2 3 Add support for color(rec2020 ...) as part of CSS Color 4 4 https://bugs.webkit.org/show_bug.cgi?id=221114 5 6 Reviewed by Antti Koivisto. 7 8 * TestExpectations: 9 Remove now passing rec2020 tests. 10 11 * fast/css/parsing-a98rgb-colors-expected.txt: Removed. 12 * fast/css/parsing-a98rgb-colors.html: Removed. 13 * fast/css/parsing-color-function-expected.txt: Added. 14 * fast/css/parsing-color-function.html: Added. 15 Re-write parsing-a98rgb-colors.html to test all rgb types in the color() function as 16 they all have the same parsing requirements. Color(lab ) must still be parsed separately 17 as it has a different grammar. 18 1 19 2021-01-30 Wenson Hsieh <wenson_hsieh@apple.com> 2 20 -
trunk/LayoutTests/TestExpectations
r272049 r272123 4607 4607 webkit.org/b/220928 imported/w3c/web-platform-tests/css/css-color/predefined-009.html [ ImageOnlyFailure ] # Requires prophoto-rgb support 4608 4608 webkit.org/b/220928 imported/w3c/web-platform-tests/css/css-color/predefined-010.html [ ImageOnlyFailure ] # Requires prophoto-rgb support 4609 webkit.org/b/220928 imported/w3c/web-platform-tests/css/css-color/predefined-011.html [ ImageOnlyFailure ] # Requires rec2020 support4610 webkit.org/b/220928 imported/w3c/web-platform-tests/css/css-color/predefined-012.html [ ImageOnlyFailure ] # Requires rec2020 support4611 4609 webkit.org/b/220928 imported/w3c/web-platform-tests/css/css-color/predefined-014.html [ ImageOnlyFailure ] # Requires fallback (at parse time) support 4612 4610 webkit.org/b/220928 imported/w3c/web-platform-tests/css/css-color/predefined-015.html [ ImageOnlyFailure ] # Requires fallback (at parse time) support (unclear if this makes sense) -
trunk/LayoutTests/imported/w3c/ChangeLog
r272117 r272123 1 2021-01-30 Sam Weinig <weinig@apple.com> 2 3 Add support for color(rec2020 ...) as part of CSS Color 4 4 https://bugs.webkit.org/show_bug.cgi?id=221114 5 6 Reviewed by Antti Koivisto. 7 8 Add some new WPT tests for color(rec2020 ) that will be upstreamed shortly. 9 10 * web-platform-tests/css/css-color/rec2020-001-expected.html: Added. 11 * web-platform-tests/css/css-color/rec2020-001.html: Added. 12 * web-platform-tests/css/css-color/rec2020-002-expected.html: Added. 13 * web-platform-tests/css/css-color/rec2020-002.html: Added. 14 * web-platform-tests/css/css-color/rec2020-003-expected.html: Added. 15 * web-platform-tests/css/css-color/rec2020-003.html: Added. 16 * web-platform-tests/css/css-color/rec2020-004-expected.html: Added. 17 * web-platform-tests/css/css-color/rec2020-004.html: Added. 18 1 19 2021-01-30 Wenson Hsieh <wenson_hsieh@apple.com> 2 20 -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-color/predefined-011.html
r271798 r272123 9 9 .test { background-color: red; width: 12em; height: 6em; margin-top:0} 10 10 .ref { background-color: #009900; width: 12em; height: 6em; margin-bottom: 0} 11 .test {background-color: color(rec2020 0. 33033 0.55976 0.14863)}11 .test {background-color: color(rec2020 0.299218 0.533327 0.120785)} 12 12 </style> 13 13 <body> -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-color/predefined-012.html
r271798 r272123 9 9 .test { background-color: red; width: 12em; height: 6em; margin-top:0} 10 10 .ref { background-color: #009900; width: 12em; height: 6em; margin-bottom: 0} 11 .test {background-color: color(rec2020 33.033% 55.976% 14.863%)}11 .test {background-color: color(rec2020 29.9218% 53.3327% 12.0785%)} 12 12 </style> 13 13 <body> -
trunk/Source/WebCore/ChangeLog
r272122 r272123 1 2021-01-30 Sam Weinig <weinig@apple.com> 2 3 Add support for color(rec2020 ...) as part of CSS Color 4 4 https://bugs.webkit.org/show_bug.cgi?id=221114 5 6 Reviewed by Antti Koivisto. 7 8 * css/CSSValueKeywords.in: 9 Add comment to indicate rec2020 is support color function type. 10 11 * css/parser/CSSPropertyParserHelpers.cpp: 12 (WebCore::CSSPropertyParserHelpers::parseColorFunctionForRGBTypes): 13 (WebCore::CSSPropertyParserHelpers::parseColorFunctionParameters): 14 Parse color(rec2020 ) using the existing generic rgb type color function 15 parsing function. 16 17 * platform/graphics/Color.h: 18 Remove overly specific comment that listed all the color types that Color 19 could hold, replacing it with a more generic statement about the functionaly 20 of ExtendedColor. This avoids needing to update this not very useful comment 21 everytime we add a new supported color type. 22 23 * platform/graphics/ColorConversion.cpp: 24 (WebCore::toLinearRec2020): 25 (WebCore::toRec2020): 26 (WebCore::toXYZA): 27 * platform/graphics/ColorConversion.h: 28 (WebCore::toLinearRec2020): 29 (WebCore::toRec2020): 30 (WebCore::toLinearDisplayP3): 31 (WebCore::callWithColorType): 32 Add conversion support for Rec2020, utilizing the Rec2020TransferFunction 33 for gamma correction. Fix incorrect sorting of toLinearDisplayP3. 34 35 * platform/graphics/ColorSerialization.cpp: 36 (WebCore::serialization): 37 (WebCore::serializationForCSS): 38 (WebCore::serializationForHTML): 39 (WebCore::serializationForRenderTreeAsText): 40 * platform/graphics/ColorSerialization.h: 41 Add serialization support, matching other rgb color() function 42 types. 43 44 * platform/graphics/ColorSpace.cpp: 45 (WebCore::operator<<): 46 * platform/graphics/ColorSpace.h: 47 Add Rec2020 as a new ColorSpace. 48 49 * platform/graphics/ColorTransferFunctions.h: 50 (WebCore::Rec2020TransferFunction::toGammaEncoded): 51 (WebCore::Rec2020TransferFunction::toLinear): 52 Add transfer function for Rec2020. Both clamped and unclamped 53 are implemented, though for now, only the clamped variant is 54 being used. 55 56 * platform/graphics/ColorTypes.h: 57 Add Rec2020 and LinearRec2020 types. 58 59 * platform/graphics/cg/ColorSpaceCG.cpp: 60 (WebCore::rec2020ColorSpaceRef): 61 * platform/graphics/cg/ColorSpaceCG.h: 62 (WebCore::cachedCGColorSpace): 63 Add support for the rec2020 as a CoreGraphics color space, where 64 it is known as kCGColorSpaceITUR_2020. 65 1 66 2021-01-29 Darin Adler <darin@apple.com> 2 67 -
trunk/Source/WebCore/css/CSSValueKeywords.in
r272117 r272123 1407 1407 display-p3 1408 1408 // lab 1409 // rec2020 1409 1410 // sRGB 1410 1411 -
trunk/Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp
r272121 r272123 895 895 static Color parseColorFunctionForRGBTypes(CSSParserTokenRange& args) 896 896 { 897 ASSERT(args.peek().id() == CSSValueA98Rgb || args.peek().id() == CSSValueDisplayP3 || args.peek().id() == CSSValue SRGB);897 ASSERT(args.peek().id() == CSSValueA98Rgb || args.peek().id() == CSSValueDisplayP3 || args.peek().id() == CSSValueRec2020 || args.peek().id() == CSSValueSRGB); 898 898 consumeIdentRaw(args); 899 899 … … 958 958 case CSSValueLab: 959 959 color = parseColorFunctionForLabParameters(args); 960 break; 961 case CSSValueRec2020: 962 color = parseColorFunctionForRGBTypes<Rec2020<float>>(args); 960 963 break; 961 964 case CSSValueSRGB: -
trunk/Source/WebCore/platform/graphics/Color.h
r271695 r272123 56 56 // - Special "invalid color" state, treated as transparent black but distinguishable 57 57 // - 4x 8-bit (0-255) sRGBA, stored inline, no allocation 58 // - 4x float (0-1) sRGBA, stored in a reference counted sub-object 59 // - 4x float (0-1) Linear sRGBA, stored in a reference counted sub-object 60 // - 4x float (0-1) DisplayP3, stored in a reference counted sub-object 61 // - 4x float (0-1) Lab, stored in a reference counted sub-object 58 // - 4x float color components + color space, stored in a reference counted sub-object 62 59 // 63 60 // Additionally, the inline 8-bit sRGBA can have an optional "semantic" bit set on it, -
trunk/Source/WebCore/platform/graphics/ColorConversion.cpp
r272066 r272123 66 66 }; 67 67 68 // Rec2020 Matrices. 69 70 // https://drafts.csswg.org/css-color/#color-conversion-code 71 static constexpr ColorMatrix<3, 3> xyzToLinearRec2020Matrix { 72 1.7166511879712674f, -0.35567078377639233f, -0.25336628137365974f, 73 -0.6666843518324892f, 1.6164812366349395f, 0.01576854581391113f, 74 0.017639857445310783f, -0.042770613257808524f, 0.9421031212354738f 75 }; 76 77 // https://drafts.csswg.org/css-color/#color-conversion-code 78 static constexpr ColorMatrix<3, 3> linearRec2020ToXYZMatrix { 79 0.6369580483012914f, 0.14461690358620832f, 0.1688809751641721f, 80 0.2627002120112671f, 0.6779980715188708f, 0.05930171646986196f, 81 0.000000000000000f, 0.028072693049087428f, 1.060985057710791f 82 }; 83 68 84 // sRGB Matrices. 69 85 … … 150 166 } 151 167 168 // Rec2020 <-> LinearRec2020 conversions. 169 170 LinearRec2020<float> toLinearRec2020(const Rec2020<float>& color) 171 { 172 return toLinear<Rec2020TransferFunction<float, TransferFunctionMode::Clamped>>(color); 173 } 174 175 Rec2020<float> toRec2020(const LinearRec2020<float>& color) 176 { 177 return toGammaEncoded<Rec2020TransferFunction<float, TransferFunctionMode::Clamped>>(color); 178 } 179 152 180 // SRGBA <-> LinearSRGBA conversions. 153 181 … … 198 226 { 199 227 return makeFromComponentsClampingExceptAlpha<XYZA<float>>(linearSRGBToXYZMatrix.transformedColorComponents(asColorComponents(color))); 228 } 229 230 // - LinearRec2020 matrix conversions. 231 232 LinearRec2020<float> toLinearRec2020(const XYZA<float>& color) 233 { 234 return makeFromComponentsClampingExceptAlpha<LinearRec2020<float>>(xyzToLinearRec2020Matrix.transformedColorComponents(asColorComponents(color))); 235 } 236 237 XYZA<float> toXYZA(const LinearRec2020<float>& color) 238 { 239 return makeFromComponentsClampingExceptAlpha<XYZA<float>>(linearRec2020ToXYZMatrix.transformedColorComponents(asColorComponents(color))); 200 240 } 201 241 … … 469 509 } 470 510 511 // - Rec2020 combination functions. 512 513 XYZA<float> toXYZA(const Rec2020<float>& color) 514 { 515 return toXYZA(toLinearRec2020(color)); 516 } 517 518 Rec2020<float> toRec2020(const XYZA<float>& color) 519 { 520 return toRec2020(toLinearRec2020(color)); 521 } 522 471 523 // - SRGB combination functions. 472 524 -
trunk/Source/WebCore/platform/graphics/ColorConversion.h
r272066 r272123 92 92 WEBCORE_EXPORT ExtendedSRGBA<float> toExtendedSRGBA(const LinearExtendedSRGBA<float>&); 93 93 94 // LinearRec2020 95 WEBCORE_EXPORT XYZA<float> toXYZA(const LinearRec2020<float>&); 96 WEBCORE_EXPORT LinearRec2020<float> toLinearRec2020(const XYZA<float>&); 97 // Additions 98 WEBCORE_EXPORT Rec2020<float> toRec2020(const LinearRec2020<float>&); 99 94 100 // LinearSRGBA 95 101 WEBCORE_EXPORT XYZA<float> toXYZA(const LinearSRGBA<float>&); … … 97 103 // Additions 98 104 WEBCORE_EXPORT SRGBA<float> toSRGBA(const LinearSRGBA<float>&); 105 106 // Rec2020 107 WEBCORE_EXPORT XYZA<float> toXYZA(const Rec2020<float>&); 108 WEBCORE_EXPORT Rec2020<float> toRec2020(const XYZA<float>&); 109 // Additions 110 WEBCORE_EXPORT LinearRec2020<float> toLinearRec2020(const Rec2020<float>&); 99 111 100 112 // SRGBA … … 117 129 constexpr LinearDisplayP3<float> toLinearDisplayP3(const LinearDisplayP3<float>& color) { return color; } 118 130 constexpr LinearExtendedSRGBA<float> toLinearExtendedSRGBA(const LinearExtendedSRGBA<float>& color) { return color; } 131 constexpr LinearRec2020<float> toLinearRec2020(const LinearRec2020<float>& color) { return color; } 119 132 constexpr LinearSRGBA<float> toLinearSRGBA(const LinearSRGBA<float>& color) { return color; } 133 constexpr Rec2020<float> toRec2020(const Rec2020<float>& color) { return color; } 120 134 constexpr SRGBA<float> toSRGBA(const SRGBA<float>& color) { return color; } 121 135 constexpr XYZA<float> toXYZA(const XYZA<float>& color) { return color; } … … 162 176 } 163 177 178 template<typename T> LinearDisplayP3<float> toLinearDisplayP3(const T& color) 179 { 180 return toLinearDisplayP3(toXYZA(color)); 181 } 182 164 183 template<typename T> LinearExtendedSRGBA<float> toLinearExtendedSRGBA(const T& color) 165 184 { … … 167 186 } 168 187 169 template<typename T> Linear DisplayP3<float> toLinearDisplayP3(const T& color)170 { 171 return toLinear DisplayP3(toXYZA(color));188 template<typename T> LinearRec2020<float> toLinearRec2020(const T& color) 189 { 190 return toLinearRec2020(toXYZA(color)); 172 191 } 173 192 … … 175 194 { 176 195 return toLinearSRGBA(toXYZA(color)); 196 } 197 198 template<typename T> Rec2020<float> toRec2020(const T& color) 199 { 200 return toRec2020(toXYZA(color)); 177 201 } 178 202 … … 194 218 case ColorSpace::LinearRGB: 195 219 return std::invoke(std::forward<Functor>(functor), makeFromComponents<LinearSRGBA<T>>(components)); 220 case ColorSpace::Rec2020: 221 return std::invoke(std::forward<Functor>(functor), makeFromComponents<Rec2020<T>>(components)); 196 222 case ColorSpace::SRGB: 197 223 return std::invoke(std::forward<Functor>(functor), makeFromComponents<SRGBA<T>>(components)); -
trunk/Source/WebCore/platform/graphics/ColorSerialization.cpp
r272033 r272123 69 69 case ColorSpace::LinearRGB: 70 70 return "linear-srgb"_s; 71 case ColorSpace::Rec2020: 72 return "rec2020"_s; 71 73 case ColorSpace::SRGB: 72 74 return "srgb"_s; … … 154 156 155 157 String serializationForRenderTreeAsText(const LinearSRGBA<float>& color) 158 { 159 return serialization(color); 160 } 161 162 // MARK: Rec2020<float> overloads 163 164 String serializationForCSS(const Rec2020<float>& color) 165 { 166 return serialization(color); 167 } 168 169 String serializationForHTML(const Rec2020<float>& color) 170 { 171 return serialization(color); 172 } 173 174 String serializationForRenderTreeAsText(const Rec2020<float>& color) 156 175 { 157 176 return serialization(color); -
trunk/Source/WebCore/platform/graphics/ColorSerialization.h
r272033 r272123 36 36 template<typename> struct Lab; 37 37 template<typename> struct LinearSRGBA; 38 template<typename> struct Rec2020; 38 39 template<typename> struct SRGBA; 39 40 … … 64 65 WEBCORE_EXPORT String serializationForRenderTreeAsText(const LinearSRGBA<float>&); 65 66 67 WEBCORE_EXPORT String serializationForCSS(const Rec2020<float>&); 68 WEBCORE_EXPORT String serializationForHTML(const Rec2020<float>&); 69 WEBCORE_EXPORT String serializationForRenderTreeAsText(const Rec2020<float>&); 70 66 71 WEBCORE_EXPORT String serializationForCSS(const SRGBA<float>&); 67 72 WEBCORE_EXPORT String serializationForHTML(const SRGBA<float>&); -
trunk/Source/WebCore/platform/graphics/ColorSpace.cpp
r272033 r272123 46 46 ts << "LinearRGB"; 47 47 break; 48 case ColorSpace::Rec2020: 49 ts << "Rec2020"; 50 break; 48 51 case ColorSpace::SRGB: 49 52 ts << "sRGB"; -
trunk/Source/WebCore/platform/graphics/ColorSpace.h
r272033 r272123 37 37 Lab, 38 38 LinearRGB, 39 Rec2020, 39 40 SRGB, 40 41 }; -
trunk/Source/WebCore/platform/graphics/ColorTransferFunctions.h
r272066 r272123 44 44 45 45 template<typename T, TransferFunctionMode mode> 46 struct Rec2020TransferFunction { 47 static constexpr T alpha = 1.09929682680944; 48 static constexpr T beta = 0.018053968510807; 49 static constexpr T gamma = 0.45; 50 51 static T toGammaEncoded(T); 52 static T toLinear(T); 53 }; 54 55 template<typename T, TransferFunctionMode mode> 46 56 struct SRGBTransferFunction { 47 57 static T toGammaEncoded(T); 48 58 static T toLinear(T); 49 59 }; 60 61 // MARK: A98RGBTransferFunction. 50 62 51 63 template<typename T, TransferFunctionMode mode> T A98RGBTransferFunction<T, mode>::toGammaEncoded(T c) … … 66 78 return result; 67 79 } 80 81 // MARK: Rec2020TransferFunction. 82 83 template<typename T, TransferFunctionMode mode> T Rec2020TransferFunction<T, mode>::toGammaEncoded(T c) 84 { 85 if constexpr (mode == TransferFunctionMode::Clamped) { 86 if (c <= beta) 87 return 4.5f * c; 88 89 return clampTo<T>(alpha * std::pow(c, gamma) - (alpha - 1.0f), 0, 1); 90 } else { 91 if (std::abs(c) <= beta) 92 return 4.5f * c; 93 94 float sign = std::signbit(c) ? -1.0 : 1.0; 95 return sign * alpha * std::pow(c, gamma) - (alpha - 1.0); 96 } 97 } 98 99 template<typename T, TransferFunctionMode mode> T Rec2020TransferFunction<T, mode>::toLinear(T c) 100 { 101 if constexpr (mode == TransferFunctionMode::Clamped) { 102 if (c < beta * 4.5f) 103 return c / 4.5f; 104 return clampTo<T>(std::pow((c + alpha - 1.0) / alpha, 1.0 / gamma), 0, 1); 105 } else { 106 if (std::abs(c) < beta * 4.5f) 107 return c / 4.5f; 108 109 float sign = std::signbit(c) ? -1.0 : 1.0; 110 return std::pow((c + alpha - 1.0) / alpha, 1.0 / gamma) * sign; 111 } 112 } 113 114 // MARK: SRGBTransferFunction. 68 115 69 116 template<typename T, TransferFunctionMode mode> T SRGBTransferFunction<T, mode>::toGammaEncoded(T c) -
trunk/Source/WebCore/platform/graphics/ColorTypes.h
r272066 r272123 41 41 template<typename> struct LinearDisplayP3; 42 42 template<typename> struct LinearExtendedSRGBA; 43 template<typename> struct LinearRec2020; 43 44 template<typename> struct LinearSRGBA; 45 template<typename> struct Rec2020; 44 46 template<typename> struct SRGBA; 45 47 template<typename> struct XYZ; … … 257 259 template<typename T> LinearExtendedSRGBA(T, T, T, T) -> LinearExtendedSRGBA<T>; 258 260 261 template<typename T> struct LinearRec2020 : RGBAType<LinearRec2020, T, RGBModel<T>> { 262 using RGBAType<LinearRec2020, T, RGBModel<T>>::RGBAType; 263 using GammaEncodedCounterpart = Rec2020<T>; 264 }; 265 template<typename T> LinearRec2020(T, T, T, T) -> LinearRec2020<T>; 266 259 267 template<typename T> struct LinearSRGBA : RGBAType<LinearSRGBA, T, RGBModel<T>> { 260 268 using RGBAType<LinearSRGBA, T, RGBModel<T>>::RGBAType; … … 263 271 }; 264 272 template<typename T> LinearSRGBA(T, T, T, T) -> LinearSRGBA<T>; 273 274 template<typename T> struct Rec2020 : RGBAType<Rec2020, T, RGBModel<T>> { 275 using RGBAType<Rec2020, T, RGBModel<T>>::RGBAType; 276 using LinearCounterpart = LinearRec2020<T>; 277 static constexpr auto colorSpace { ColorSpace::Rec2020 }; 278 }; 279 template<typename T> Rec2020(T, T, T, T) -> Rec2020<T>; 265 280 266 281 template<typename T> struct SRGBA : RGBAType<SRGBA, T, RGBModel<T>> { -
trunk/Source/WebCore/platform/graphics/cg/ColorSpaceCG.cpp
r272033 r272123 101 101 } 102 102 103 CGColorSpaceRef rec2020ColorSpaceRef() 104 { 105 static CGColorSpaceRef rec2020ColorSpace; 106 static std::once_flag onceFlag; 107 std::call_once(onceFlag, [] { 108 #if PLATFORM(COCOA) 109 rec2020ColorSpace = CGColorSpaceCreateWithName(kCGColorSpaceITUR_2020); 110 #else 111 rec2020ColorSpace = sRGBColorSpaceRef(); 112 #endif 113 }); 114 return rec2020ColorSpace; 115 } 116 103 117 CGColorSpaceRef sRGBColorSpaceRef() 104 118 { -
trunk/Source/WebCore/platform/graphics/cg/ColorSpaceCG.h
r272033 r272123 51 51 case ColorSpace::LinearRGB: 52 52 return linearRGBColorSpaceRef(); 53 case ColorSpace::Rec2020: 54 return rec2020ColorSpaceRef(); 53 55 case ColorSpace::SRGB: 54 56 return sRGBColorSpaceRef();
Note: See TracChangeset
for help on using the changeset viewer.