summaryrefslogtreecommitdiff
path: root/contrib/SDL-3.2.8/wayland-protocols/frog-color-management-v1.xml
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/SDL-3.2.8/wayland-protocols/frog-color-management-v1.xml')
-rw-r--r--contrib/SDL-3.2.8/wayland-protocols/frog-color-management-v1.xml356
1 files changed, 356 insertions, 0 deletions
diff --git a/contrib/SDL-3.2.8/wayland-protocols/frog-color-management-v1.xml b/contrib/SDL-3.2.8/wayland-protocols/frog-color-management-v1.xml
new file mode 100644
index 0000000..3d6c2f5
--- /dev/null
+++ b/contrib/SDL-3.2.8/wayland-protocols/frog-color-management-v1.xml
@@ -0,0 +1,356 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<protocol name="frog_color_management_v1">
3
4 <copyright>
5 Copyright © 2023 Joshua Ashton for Valve Software
6 Copyright © 2023 Xaver Hugl
7
8 Permission is hereby granted, free of charge, to any person obtaining a
9 copy of this software and associated documentation files (the "Software"),
10 to deal in the Software without restriction, including without limitation
11 the rights to use, copy, modify, merge, publish, distribute, sublicense,
12 and/or sell copies of the Software, and to permit persons to whom the
13 Software is furnished to do so, subject to the following conditions:
14
15 The above copyright notice and this permission notice (including the next
16 paragraph) shall be included in all copies or substantial portions of the
17 Software.
18
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
22 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 DEALINGS IN THE SOFTWARE.
26 </copyright>
27
28 <description summary="experimental color management protocol">
29 The aim of this color management extension is to get HDR games working quickly,
30 and have an easy way to test implementations in the wild before the upstream
31 protocol is ready to be merged.
32 For that purpose it's intentionally limited and cut down and does not serve
33 all uses cases.
34 </description>
35
36 <interface name="frog_color_management_factory_v1" version="1">
37 <description summary="color management factory">
38 The color management factory singleton creates color managed surface objects.
39 </description>
40
41 <request name="destroy" type="destructor"></request>
42
43 <request name="get_color_managed_surface">
44 <description summary="create color management interface for surface">
45 </description>
46
47 <arg name="surface" type="object" interface="wl_surface"
48 summary="target surface"/>
49 <arg name="callback" type="new_id" interface="frog_color_managed_surface"
50 summary="new color managed surface object"/>
51 </request>
52 </interface>
53
54 <interface name="frog_color_managed_surface" version="1">
55 <description summary="color managed surface">
56 Interface for changing surface color management and HDR state.
57
58 An implementation must: support every part of the version
59 of the frog_color_managed_surface interface it exposes.
60 Including all known enums associated with a given version.
61 </description>
62
63 <request name="destroy" type="destructor">
64 <description summary="destroy color managed surface">
65 Destroying the color managed surface resets all known color
66 state for the surface back to 'undefined' implementation-specific
67 values.
68 </description>
69 </request>
70
71 <enum name="transfer_function">
72 <description summary="known transfer functions">
73 Extended information on the transfer functions described
74 here can be found in the Khronos Data Format specification:
75
76 https://registry.khronos.org/DataFormat/specs/1.3/dataformat.1.3.html
77 </description>
78 <entry name="undefined" value="0" summary="specifies undefined, implementation-specific handling of the surface's transfer function."/>
79 <entry name="srgb" value="1" summary="specifies the sRGB non-linear EOTF. An implementation may: display this as Gamma 2.2 for the purposes of being consistent with content rendering across displays, rendering_intent and user expectations."/>
80 <entry name="gamma_22" value="2" summary="specifies gamma 2.2 power curve as the EOTF"/>
81 <entry name="st2084_pq" value="3" summary="specifies the SMPTE ST2084 Perceptual Quantizer (PQ) EOTF"/>
82 <entry name="scrgb_linear" value="4" summary="specifies the scRGB (extended sRGB) linear EOTF. Note: Primaries outside the gamut triangle specified can be expressed with negative values for this transfer function."/>
83 </enum>
84
85 <request name="set_known_transfer_function">
86 <description summary="sets a known transfer function for a surface"/>
87 <arg name="transfer_function" type="uint" enum="transfer_function" summary="transfer function for the surface"/>
88 </request>
89
90 <enum name="primaries">
91 <description summary="known primaries"/>
92 <entry name="undefined" value="0" summary="specifies undefined, implementation-specific handling"/>
93 <entry name="rec709" value="1" summary="specifies Rec.709/sRGB primaries with D65 white point"/>
94 <entry name="rec2020" value="2" summary="specifies Rec.2020/HDR10 primaries with D65 white point"/>
95 </enum>
96
97 <request name="set_known_container_color_volume">
98 <description summary="sets the container color volume (primaries) for a surface"/>
99 <arg name="primaries" type="uint" enum="primaries" summary="primaries for the surface"/>
100 </request>
101
102 <enum name="render_intent">
103 <description summary="known render intents">
104 Extended information on render intents described
105 here can be found in ICC.1:2022:
106
107 https://www.color.org/specification/ICC.1-2022-05.pdf
108 </description>
109 <entry name="perceptual" value="0" summary="perceptual"/>
110 </enum>
111
112 <request name="set_render_intent">
113 <description summary="sets the render intent for a surface">
114 NOTE: On a surface with "perceptual" (default) render intent, handling of the container's color volume
115 is implementation-specific, and may differ between different transfer functions it is paired with:
116 ie. sRGB + 709 rendering may have it's primaries widened to more of the available display's gamut
117 to be be more pleasing for the viewer.
118 Compared to scRGB Linear + 709 being treated faithfully as 709
119 (including utilizing negatives out of the 709 gamut triangle)
120 </description>
121 <arg name="render_intent" type="uint" enum="render_intent" summary="render intent for the surface"/>
122 </request>
123
124 <request name="set_hdr_metadata">
125 <description summary="set HDR metadata for a surface">
126 Forwards HDR metadata from the client to the compositor.
127
128 HDR Metadata Infoframe as per CTA 861.G spec.
129
130 Usage of this HDR metadata is implementation specific and
131 outside of the scope of this protocol.
132 </description>
133 <arg name="mastering_display_primary_red_x" type="uint">
134 <description summary="red primary x coordinate">
135 Mastering Red Color Primary X Coordinate of the Data.
136
137 Coded as unsigned 16-bit values in units of
138 0.00002, where 0x0000 represents zero and 0xC350
139 represents 1.0000.
140 </description>
141 </arg>
142 <arg name="mastering_display_primary_red_y" type="uint">
143 <description summary="red primary y coordinate">
144 Mastering Red Color Primary Y Coordinate of the Data.
145
146 Coded as unsigned 16-bit values in units of
147 0.00002, where 0x0000 represents zero and 0xC350
148 represents 1.0000.
149 </description>
150 </arg>
151 <arg name="mastering_display_primary_green_x" type="uint">
152 <description summary="green primary x coordinate">
153 Mastering Green Color Primary X Coordinate of the Data.
154
155 Coded as unsigned 16-bit values in units of
156 0.00002, where 0x0000 represents zero and 0xC350
157 represents 1.0000.
158 </description>
159 </arg>
160 <arg name="mastering_display_primary_green_y" type="uint">
161 <description summary="green primary y coordinate">
162 Mastering Green Color Primary Y Coordinate of the Data.
163
164 Coded as unsigned 16-bit values in units of
165 0.00002, where 0x0000 represents zero and 0xC350
166 represents 1.0000.
167 </description>
168 </arg>
169 <arg name="mastering_display_primary_blue_x" type="uint">
170 <description summary="blue primary x coordinate">
171 Mastering Blue Color Primary X Coordinate of the Data.
172
173 Coded as unsigned 16-bit values in units of
174 0.00002, where 0x0000 represents zero and 0xC350
175 represents 1.0000.
176 </description>
177 </arg>
178 <arg name="mastering_display_primary_blue_y" type="uint">
179 <description summary="blue primary y coordinate">
180 Mastering Blue Color Primary Y Coordinate of the Data.
181
182 Coded as unsigned 16-bit values in units of
183 0.00002, where 0x0000 represents zero and 0xC350
184 represents 1.0000.
185 </description>
186 </arg>
187 <arg name="mastering_white_point_x" type="uint">
188 <description summary="white point x coordinate">
189 Mastering White Point X Coordinate of the Data.
190
191 These are coded as unsigned 16-bit values in units of
192 0.00002, where 0x0000 represents zero and 0xC350
193 represents 1.0000.
194 </description>
195 </arg>
196 <arg name="mastering_white_point_y" type="uint">
197 <description summary="white point y coordinate">
198 Mastering White Point Y Coordinate of the Data.
199
200 These are coded as unsigned 16-bit values in units of
201 0.00002, where 0x0000 represents zero and 0xC350
202 represents 1.0000.
203 </description>
204 </arg>
205 <arg name="max_display_mastering_luminance" type="uint">
206 <description summary="max display mastering luminance">
207 Max Mastering Display Luminance.
208 This value is coded as an unsigned 16-bit value in units of 1 cd/m2,
209 where 0x0001 represents 1 cd/m2 and 0xFFFF represents 65535 cd/m2.
210 </description>
211 </arg>
212 <arg name="min_display_mastering_luminance" type="uint">
213 <description summary="min display mastering luminance">
214 Min Mastering Display Luminance.
215 This value is coded as an unsigned 16-bit value in units of
216 0.0001 cd/m2, where 0x0001 represents 0.0001 cd/m2 and 0xFFFF
217 represents 6.5535 cd/m2.
218 </description>
219 </arg>
220 <arg name="max_cll" type="uint">
221 <description summary="max content light level">
222 Max Content Light Level.
223 This value is coded as an unsigned 16-bit value in units of 1 cd/m2,
224 where 0x0001 represents 1 cd/m2 and 0xFFFF represents 65535 cd/m2.
225 </description>
226 </arg>
227 <arg name="max_fall" type="uint">
228 <description summary="max frame average light level">
229 Max Frame Average Light Level.
230 This value is coded as an unsigned 16-bit value in units of 1 cd/m2,
231 where 0x0001 represents 1 cd/m2 and 0xFFFF represents 65535 cd/m2.
232 </description>
233 </arg>
234 </request>
235
236 <event name="preferred_metadata">
237 <description summary="preferred metadata for a surface">
238 Current preferred metadata for a surface.
239 The application should use this information to tone-map its buffers
240 to this target before committing.
241
242 This metadata does not necessarily correspond to any physical output, but
243 rather what the compositor thinks would be best for a given surface.
244 </description>
245 <arg name="transfer_function" type="uint" enum="transfer_function">
246 <description summary="output's current transfer function">
247 Specifies a known transfer function that corresponds to the
248 output the surface is targeting.
249 </description>
250 </arg>
251 <arg name="output_display_primary_red_x" type="uint">
252 <description summary="red primary x coordinate">
253 Output Red Color Primary X Coordinate of the Data.
254
255 Coded as unsigned 16-bit values in units of
256 0.00002, where 0x0000 represents zero and 0xC350
257 represents 1.0000.
258 </description>
259 </arg>
260 <arg name="output_display_primary_red_y" type="uint">
261 <description summary="red primary y coordinate">
262 Output Red Color Primary Y Coordinate of the Data.
263
264 Coded as unsigned 16-bit values in units of
265 0.00002, where 0x0000 represents zero and 0xC350
266 represents 1.0000.
267 </description>
268 </arg>
269 <arg name="output_display_primary_green_x" type="uint">
270 <description summary="green primary x coordinate">
271 Output Green Color Primary X Coordinate of the Data.
272
273 Coded as unsigned 16-bit values in units of
274 0.00002, where 0x0000 represents zero and 0xC350
275 represents 1.0000.
276 </description>
277 </arg>
278 <arg name="output_display_primary_green_y" type="uint">
279 <description summary="green primary y coordinate">
280 Output Green Color Primary Y Coordinate of the Data.
281
282 Coded as unsigned 16-bit values in units of
283 0.00002, where 0x0000 represents zero and 0xC350
284 represents 1.0000.
285 </description>
286 </arg>
287 <arg name="output_display_primary_blue_x" type="uint">
288 <description summary="blue primary x coordinate">
289 Output Blue Color Primary X Coordinate of the Data.
290
291 Coded as unsigned 16-bit values in units of
292 0.00002, where 0x0000 represents zero and 0xC350
293 represents 1.0000.
294 </description>
295 </arg>
296 <arg name="output_display_primary_blue_y" type="uint">
297 <description summary="blue primary y coordinate">
298 Output Blue Color Primary Y Coordinate of the Data.
299
300 Coded as unsigned 16-bit values in units of
301 0.00002, where 0x0000 represents zero and 0xC350
302 represents 1.0000.
303 </description>
304 </arg>
305 <arg name="output_white_point_x" type="uint">
306 <description summary="white point x coordinate">
307 Output White Point X Coordinate of the Data.
308
309 These are coded as unsigned 16-bit values in units of
310 0.00002, where 0x0000 represents zero and 0xC350
311 represents 1.0000.
312 </description>
313 </arg>
314 <arg name="output_white_point_y" type="uint">
315 <description summary="white point y coordinate">
316 Output White Point Y Coordinate of the Data.
317
318 These are coded as unsigned 16-bit values in units of
319 0.00002, where 0x0000 represents zero and 0xC350
320 represents 1.0000.
321 </description>
322 </arg>
323 <arg name="max_luminance" type="uint">
324 <description summary="maximum luminance">
325 Max Output Luminance
326 The max luminance in nits that the output is capable of rendering in small areas.
327 Content should: not exceed this value to avoid clipping.
328
329 This value is coded as an unsigned 16-bit value in units of 1 cd/m2,
330 where 0x0001 represents 1 cd/m2 and 0xFFFF represents 65535 cd/m2.
331 </description>
332 </arg>
333 <arg name="min_luminance" type="uint">
334 <description summary="minimum luminance">
335 Min Output Luminance
336 The min luminance that the output is capable of rendering.
337 Content should: not exceed this value to avoid clipping.
338
339 This value is coded as an unsigned 16-bit value in units of
340 0.0001 cd/m2, where 0x0001 represents 0.0001 cd/m2 and 0xFFFF
341 represents 6.5535 cd/m2.
342 </description>
343 </arg>
344 <arg name="max_full_frame_luminance" type="uint">
345 <description summary="maximum full frame luminance">
346 Max Full Frame Luminance
347 The max luminance in nits that the output is capable of rendering for the
348 full frame sustained.
349
350 This value is coded as an unsigned 16-bit value in units of 1 cd/m2,
351 where 0x0001 represents 1 cd/m2 and 0xFFFF represents 65535 cd/m2.
352 </description>
353 </arg>
354 </event>
355 </interface>
356</protocol>