wok-current view xorg-randrproto/stuff/randrproto-2018.4.patch @ rev 25698

Fix ntfs-3g receipt
author Stanislas Leduc <shann@slitaz.org>
date Tue Apr 16 19:01:01 2024 +0000 (2 months ago)
parents
children
line source
1 diff -u randrproto-1.5.0/randr.h randrproto-1.6.0/randr.h
2 --- randrproto-1.5.0/randr.h 2015-05-17 06:24:33.000000000 +0200
3 +++ randrproto-1.6.0/randr.h 2018-05-22 20:55:30.331085000 +0200
4 @@ -40,11 +40,11 @@
6 #define RANDR_NAME "RANDR"
7 #define RANDR_MAJOR 1
8 -#define RANDR_MINOR 5
9 +#define RANDR_MINOR 6
11 -#define RRNumberErrors 4
12 +#define RRNumberErrors 5
13 #define RRNumberEvents 2
14 -#define RRNumberRequests 45
15 +#define RRNumberRequests 47
17 #define X_RRQueryVersion 0
18 /* we skip 1 to make old clients fail pretty immediately */
19 @@ -109,6 +109,10 @@
20 #define X_RRSetMonitor 43
21 #define X_RRDeleteMonitor 44
23 +/* v1.6 */
24 +#define X_RRCreateLease 45
25 +#define X_RRFreeLease 46
26 +
27 /* Event selection bits */
28 #define RRScreenChangeNotifyMask (1L << 0)
29 /* V1.2 additions */
30 @@ -119,6 +123,8 @@
31 #define RRProviderChangeNotifyMask (1L << 4)
32 #define RRProviderPropertyNotifyMask (1L << 5)
33 #define RRResourceChangeNotifyMask (1L << 6)
34 +/* V1.6 additions */
35 +#define RRLeaseNotifyMask (1L << 7)
37 /* Event codes */
38 #define RRScreenChangeNotify 0
39 @@ -131,6 +137,8 @@
40 #define RRNotify_ProviderChange 3
41 #define RRNotify_ProviderProperty 4
42 #define RRNotify_ResourceChange 5
43 +/* V1.6 additions */
44 +#define RRNotify_Lease 6
45 /* used in the rotation field; rotation and reflection in 0.1 proto. */
46 #define RR_Rotate_0 1
47 #define RR_Rotate_90 2
48 @@ -172,6 +180,7 @@
49 #define BadRRCrtc 1
50 #define BadRRMode 2
51 #define BadRRProvider 3
52 +#define BadRRLease 4
54 /* Conventional RandR output properties */
56 @@ -187,6 +196,7 @@
57 #define RR_PROPERTY_BORDER_DIMENSIONS "BorderDimensions"
58 #define RR_PROPERTY_GUID "GUID"
59 #define RR_PROPERTY_RANDR_TILE "TILE"
60 +#define RR_PROPERTY_NON_DESKTOP "non-desktop"
62 /* roles this device can carry out */
63 #define RR_Capability_None 0
64 diff -u randrproto-1.5.0/randrproto.h randrproto-1.6.0/randrproto.h
65 --- randrproto-1.5.0/randrproto.h 2015-05-17 06:24:33.000000000 +0200
66 +++ randrproto-1.6.0/randrproto.h 2018-05-22 20:55:23.194950000 +0200
67 @@ -50,7 +50,7 @@
68 #define RRCrtc CARD32
69 #define RRProvider CARD32
70 #define RRModeFlags CARD32
71 -#define Atom CARD32
72 +#define RRLease CARD32
74 #define Rotation CARD16
75 #define SizeID CARD16
76 @@ -837,6 +837,46 @@
77 #define sz_xRRGetProviderPropertyReply 32
79 /*
80 + * Additions for V1.6
81 + */
82 +
83 +typedef struct {
84 + CARD8 reqType;
85 + CARD8 randrReqType;
86 + CARD16 length B16;
87 + Window window B32;
88 + RRLease lid B32;
89 + CARD16 nCrtcs B16;
90 + CARD16 nOutputs B16;
91 +} xRRCreateLeaseReq;
92 +#define sz_xRRCreateLeaseReq 16
93 +
94 +typedef struct {
95 + BYTE type;
96 + CARD8 nfd;
97 + CARD16 sequenceNumber B16;
98 + CARD32 length B32;
99 + CARD32 pad2 B32;
100 + CARD32 pad3 B32;
101 + CARD32 pad4 B32;
102 + CARD32 pad5 B32;
103 + CARD32 pad6 B32;
104 + CARD32 pad7 B32;
105 +} xRRCreateLeaseReply;
106 +#define sz_xRRCreateLeaseReply 32
107 +
108 +typedef struct {
109 + CARD8 reqType;
110 + CARD8 randrReqType;
111 + CARD16 length B16;
112 + RRLease lid B32;
113 + BYTE terminate;
114 + CARD8 pad1;
115 + CARD16 pad2 B16;
116 +} xRRFreeLeaseReq;
117 +#define sz_xRRFreeLeaseReq 12
118 +
119 +/*
120 * event
121 */
122 typedef struct {
123 @@ -950,6 +990,22 @@
124 #define sz_xRRResourceChangeNotifyEvent 32
126 typedef struct {
127 + CARD8 type; /* always evBase + RRNotify */
128 + CARD8 subCode; /* RRNotify_Lease */
129 + CARD16 sequenceNumber B16;
130 + Time timestamp B32; /* time resource was changed */
131 + Window window B32; /* window requesting notification */
132 + RRLease lease B32;
133 + CARD8 created; /* created/deleted */
134 + CARD8 pad0;
135 + CARD16 pad1 B16;
136 + CARD32 pad2 B32;
137 + CARD32 pad3 B32;
138 + CARD32 pad4 B32;
139 +} xRRLeaseNotifyEvent;
140 +#define sz_xRRLeaseNotifyEvent 32
141 +
142 +typedef struct {
143 CARD8 reqType;
144 CARD8 randrReqType;
145 CARD16 length B16;
146 @@ -1091,6 +1147,5 @@
147 #undef Rotation
148 #undef SizeID
149 #undef SubpixelOrder
150 -#undef Atom
152 #endif /* _XRANDRP_H_ */
153 diff -u randrproto-1.5.0/randrproto.pc.in randrproto-1.6.0/randrproto.pc.in
154 --- randrproto-1.5.0/randrproto.pc.in 2015-05-17 06:24:33.000000000 +0200
155 +++ randrproto-1.6.0/randrproto.pc.in 2018-05-22 20:55:01.703541000 +0200
156 @@ -5,5 +5,5 @@
158 Name: RandrProto
159 Description: Randr extension headers
160 -Version: @PACKAGE_VERSION@
161 +Version: 1.6.0
162 Cflags: -I${includedir}
163 diff -u randrproto-1.5.0/randrproto.txt randrproto-1.6.0/randrproto.txt
164 --- randrproto-1.5.0/randrproto.txt 2015-05-17 06:24:33.000000000 +0200
165 +++ randrproto-1.6.0/randrproto.txt 2018-05-22 20:55:09.925702000 +0200
166 @@ -1,6 +1,6 @@
167 The X Resize, Rotate and Reflect Extension
168 - Version 1.5.0
169 - 2015-03-14
170 + Version 1.6.0
171 + 2017-04-01
173 Jim Gettys
174 Jim.Gettys@hp.com
175 @@ -9,9 +9,7 @@
176 Hewlett Packard Company
178 Keith Packard
179 - keith.packard@intel.com
180 - Open Source Technology Center
181 - Intel Corporation
182 + keithp@keithp.com
184 1. Introduction
186 @@ -162,7 +160,7 @@
187 • A 'Monitor' is a rectangular subset of the screen which represents
188 a coherent collection of pixels presented to the user.
190 - • Each Monitor is be associated with a list of outputs (which may be
191 + • Each Monitor is associated with a list of outputs (which may be
192 empty).
194 • When clients define monitors, the associated outputs are removed from
195 @@ -178,7 +176,7 @@
196 active outputs associated with them
198 This new object separates the physical configuration of the hardware
199 -from the logical subsets the screen that applications should
200 +from the logical subsets of the screen that applications should
201 consider as single viewable areas.
203 1.5.1. Relationship between Monitors and Xinerama
204 @@ -194,6 +192,25 @@
205 going forward the X server will not remove outputs dynamically,
206 just mark them as disconnected.
208 +1.6. Introduction to version 1.6 of the extension
209 +
210 +Version 1.6 adds resource leasing and non desktop output management.
211 +
212 + • A “Lease” is a collection of crtcs and outputs which are made
213 + available to a client for direct access via kernel KMS and DRM
214 + APIs. This is done by passing a suitable file descriptor back to
215 + the client which has access to those resources. While leased, those
216 + resources aren't used by the X server.
217 +
218 + • A “non-desktop” output is a device which should not normally be
219 + considered as part of the desktop environment. Head-mounted
220 + displays and the Apple "Touch Bar" are examples of such
221 + devices. A desktop environment should be able to discover which
222 + outputs are connected to such devices and, by default, not present
223 + normal desktop applications on them. This is done by having
224 + RRGetOutputInfo report such devices as Disconnected while reporting
225 + all other information about the device correctly.
226 +
227 1.99 Acknowledgments
229 Our thanks to the contributors to the design found on the xpert mailing
230 @@ -218,7 +235,7 @@
231 Screens may change dynamically, either under control of this extension, or
232 due to external events. Examples include: monitors being swapped, pressing a
233 button to switch from internal display to an external monitor on a laptop,
234 -or, eventually, the hotplug of a display card entirely on busses such as
235 +or, eventually, the hotplug of a display card entirely on buses such as
236 Cardbus or Express Card which permit hot-swap (which will require other work
237 in addition to this extension).
239 @@ -280,6 +297,8 @@
240 A value for a MODE argument does not name a defined MODE.
241 Provider
242 A value for a PROVIDER argument does not name a defined PROVIDER.
243 +Lease
244 + A value for a LEASE argument does not name a defined LEASE
246 ❧❧❧❧❧❧❧❧❧❧❧
248 @@ -427,6 +446,12 @@
250 ❧❧❧❧❧❧❧❧❧❧❧
252 +5.7. Protocol Types added in version 1.6 of the extension
253 +
254 +LEASE { XID }
255 +
256 + ❧❧❧❧❧❧❧❧❧❧❧
257 +
258 6. Extension Initialization
260 The name of this extension is "RANDR".
261 @@ -596,7 +621,7 @@
262 rate is unknown or on devices for which refresh is not relevant.
264 'sizes' is the list of possible frame buffer sizes (at the normal
265 - orientation. Each size indicates both the linear physical size of
266 + orientation). Each size indicates both the linear physical size of
267 the screen and the pixel size.
269 'refresh' is the list of refresh rates for each size. Each element
270 @@ -756,6 +781,12 @@
271 monitor in some way; for fixed-pixel devices, this would generally
272 indicate which modes match the resolution of the output device.
274 + Changes in version 1.6 of the protocol:
275 +
276 + When a “non-desktop” device is connected, the 'connection'
277 + field will report Disconnected but the remaining fields will
278 + report information about the connected device.
279 +
280 ┌───
281 RRListOutputProperties
282 output:OUTPUT
283 @@ -767,6 +798,12 @@
284 This request returns the atoms of properties currently defined on
285 the output.
287 + Changes in version 1.6 of the protocol:
288 +
289 + When a “non-desktop” device is connected, the property list
290 + will be correct for the device, even though RRGetOutputInfo
291 + reports the device as disconnected.
292 +
293 ┌───
294 RRQueryOutputProperty
295 output: OUTPUT
296 @@ -798,6 +835,12 @@
297 changed by clients. Immutable properties are interpreted by the X
298 server.
300 + Changes in version 1.6 of the protocol:
301 +
302 + When a “non-desktop” device is connected, the property information
303 + will be correct for the device, even though RRGetOutputInfo
304 + reports the device as disconnected.
305 +
306 ┌───
307 RRConfigureOutputProperty
308 output: OUTPUT
309 @@ -916,6 +959,12 @@
310 is True and the bytes-after is zero, the property is also deleted
311 from the output, and a RROutputPropertyNotify event is generated.
313 + Changes in version 1.6 of the protocol:
314 +
315 + When a “non-desktop” device is connected, the property value
316 + will be correct for the device, even though RRGetOutputInfo
317 + reports the device as disconnected.
318 +
319 ┌───
320 RRCreateMode
321 window: WINDOW
322 @@ -991,7 +1040,7 @@
324 Errors: Window
326 - RRGetCrtcModes returns information about the current and available
327 + RRGetCrtcInfo returns information about the current and available
328 configurations for the specified crtc connected to the screen
329 associated with 'window'.
331 @@ -1674,6 +1723,57 @@
332 window of the screen.
334 ❧❧❧❧❧❧❧❧❧❧❧
335 +
336 +7.6. Extension Requests added in version 1.6 of the extension.
337 +
338 +┌───
339 + RRCreateLease
340 + window : WINDOW
341 + lid: LEASE
342 + crtcs: LISTofCRTC
343 + outputs: LISTofOUTPUT
344 + ▶
345 + nfd: CARD8
346 + lease: FD
347 +└───
348 + Errors: IdChoice, Window, Access, Value, CRTC, Output
349 +
350 + Creates a new Lease called 'lid' for the specified crtcs and
351 + outputs from the screen defined by 'window'. Returns a KMS/DRM
352 + file descriptor which can control the leased objects directly
353 + through the kernel. While leased, all resources will appear to
354 + be 'useless' to clients other than the leasing client as
355 + follows:
356 +
357 + • Crtcs are reported as having no 'possible-outputs' and all
358 + other values reported as if the crtc were disabled.
359 +
360 + • Outputs are reported as having no crtcs they can be
361 + connected to, no clones they can share a crtc with, will
362 + report a connection status of Disconnected, and will show
363 + the current crtc as if it were disabled.
364 +
365 + The lease remains in effect until the file descriptor is
366 + closed, even if the client holding the lease disconnects from
367 + the X server.
368 +
369 + Returns an Access error if any of the named resources are
370 + already leased to another client.
371 +
372 +┌───
373 + RRFreeLease
374 + lid: LEASE
375 + terminate: BOOL
376 +└───
377 + Errors: Lease
378 +
379 + Frees the reference to the lease 'lid'. If 'terminate' is
380 + true, then the lease is terminated and all leased resources
381 + returned to the X server. If 'terminate' is false, then the
382 + lease remains in effect, but the X server no longer has a name
383 + for it.
384 +
385 + ❧❧❧❧❧❧❧❧❧❧❧
386 8. Extension Events
388 Clients MAY select for ConfigureNotify on the root window to be
389 @@ -1754,6 +1854,12 @@
390 precise change can be detected by examining the new state of the
391 system.
393 + Changes in version 1.6 of the protocol:
394 +
395 + When a “non-desktop” device is connected, this event will be
396 + delivered when the connection status of the output changes,
397 + however the 'connection' value will be set to 'Disconnected'.
398 +
399 ┌───
400 RROutputPropertyNotify:
401 window: WINDOW window requesting notification
402 @@ -1798,7 +1904,7 @@
403 This event is sent whenever the monitor's configuration changes
404 or if a new monitor configuration becomes available that was
405 not available in the past. In this case, the client MUST call
406 - RRGetCrtcModes to update its view of possible monitor
407 + RRGetCrtcInfo to update its view of possible monitor
408 configurations to have a correct view of possible monitor
409 organizations.
411 @@ -1855,6 +1961,21 @@
412 created or destroyed. Querying the list of available resources
413 with RRGetScreenResources and RRGetProviders will return the new set.
415 +8.3 Events added in version 1.6 of the RandR extension
416 +
417 +┌───
418 + RRLeaseNotify:
419 + timestamp : TIMESTAMP time screen was reconfigured
420 + window : WINDOW window requesting notification
421 + lease : LEASE lease
422 + created : BOOL created/destroyed indicator
423 +└───
424 +
425 + This event is generated whenever a lease has been created or
426 + destroyed and is sent to requesting clients. 'timestamp'
427 + indicates when the change happend. 'window' is the window
428 + selecting for this event.
429 +
430 ❧❧❧❧❧❧❧❧❧❧❧
432 9. Properties
433 @@ -1878,6 +1999,13 @@
434 gracefully to lower version functionality, though, if the driver
435 doesn't handle a mandatory property correctly.
437 +Changes in version 1.6 of the protocol:
438 +
439 +When a “non-desktop” device is connected, the property information
440 +will be correct for the device, even though RRGetOutputInfo
441 +reports the device as disconnected. The “non-desktop” property will be
442 +set to 1 for such devices and not present on other devices.
443 +
444 9.1 Known properties
446 "Backlight" aka RR_PROPERTY_BACKLIGHT
447 @@ -1978,6 +2106,29 @@
448 output. Should include main EDID data and all extension
449 blocks. Previously known as EdidData.
451 + “non-desktop” aka RR_PROPERTY_NON_DESKTOP
452 + Type: INTEGER
453 + Format: 32
454 + Num items: 1
455 + Flags Immutable
456 + Range/List: 0-1
457 +
458 + Indicates whether the device attached to this output should not
459 + be considered part of the normal desktop. When set to 0 or not
460 + present, the output should be presented as part of the
461 + desktop.
462 +
463 + When set to 1, the output should not be presented as part of
464 + the desktop. To not present an output as part of the desktop,
465 + the normal desktop environment should not be shown on this
466 + output, nor should desktop applications be positioned on it.
467 +
468 + When set to 1, RRGetOutputInfo will always report connection status
469 + Disconnected, but RROutputChangeNotify events will still be
470 + delivered when the connection status changes and all other
471 + information about the output and connected device will be
472 + reported correctly.
473 +
474 "SignalFormat" aka RR_PROPERTY_SIGNAL_FORMAT
475 Type: ATOM
476 Format: 32
477 @@ -2168,6 +2319,13 @@
478 Property Immutable Mandatory since
479 ──────── ───────── ───────────────
480 TILE yes not mandatory
481 +
482 +9.8 Properties introduced with version 1.6 of the RandR extension
483 +
484 +Property Immutable Mandatory since
485 +──────── ───────── ───────────────
486 +non-desktop yes not mandatory
487 +
488 ❧❧❧❧❧❧❧❧❧❧❧
490 10. Extension Versioning
491 @@ -2206,6 +2364,8 @@
493 1.5: Added Monitors
495 + 1.6: Added Leases and non-desktop output information.
496 +
497 Compatibility between 0.0 and 1.0 was *NOT* preserved, and 0.0 clients
498 will fail against 1.0 servers. The wire encoding op-codes were
499 changed for GetScreenInfo to ensure this failure in a relatively
500 @@ -2214,7 +2374,7 @@
501 compatibility from this point. Version 1.2 offers an extended model of the
502 system with multiple output support. Version 1.3 adds a cheap version of
503 GetScreenResources to avoid expensive DDC operations, CRTC transformations,
504 -panning, and the primary output concept. Versions 1.2 through 1.4 are
505 +panning, and the primary output concept. Versions 1.2 through 1.6 are
506 backward-compatible with 1.1.
508 ❧❧❧❧❧❧❧❧❧❧❧
509 @@ -2286,6 +2446,7 @@
510 0x0010 ProviderChangeNotifyMask Added in version 1.4
511 0x0020 ProviderPropertyNotifyMask Added in version 1.4
512 0x0040 ResourceChangeNotifyMask Added in version 1.4
513 + 0x0080 LeaseNotifyMask Added in version 1.6
515 └───
516 Event select mask for RRSelectInput
517 @@ -2363,14 +2524,14 @@
518 4 ATOM name
519 1 BOOL primary
520 1 BOOL automatic
521 - 2 CARD16 ncrtcs
522 + 2 CARD16 noutputs
523 2 INT16 x
524 2 INT16 y
525 2 CARD16 width in pixels
526 2 CARD16 height in pixels
527 4 CARD32 width in millimeters
528 4 CARD32 height in millimeters
529 - 4*n CRTC crtcs
530 + 4*n OUTPUT outputs
531 └───
533 A.2 Protocol Requests