proto/randrproto: Branch 'master'

Adam Jackson ajax at kemper.freedesktop.org
Wed Dec 10 08:17:14 PST 2008


 randr.h        |    4 ++
 randrproto.h   |   31 ++++++++++++++++++++++
 randrproto.txt |   79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 3 files changed, 110 insertions(+), 4 deletions(-)

New commits:
commit d904495a4cbd66850dc03d32f223aaaf8425f077
Author: Adam Jackson <ajax at redhat.com>
Date:   Wed Dec 10 11:15:48 2008 -0500

    Add [GS]etOutputPrimary

diff --git a/randr.h b/randr.h
index 92f2fb6..eafcda5 100644
--- a/randr.h
+++ b/randr.h
@@ -44,7 +44,7 @@ typedef unsigned long	XRandrModeFlags;
 
 #define RRNumberErrors		3
 #define RRNumberEvents		2
-#define RRNumberRequests	30
+#define RRNumberRequests	32
 
 #define X_RRQueryVersion	0
 /* we skip 1 to make old clients fail pretty immediately */
@@ -84,6 +84,8 @@ typedef unsigned long	XRandrModeFlags;
 #define X_RRGetCrtcTransform	    27
 #define X_RRGetPanning		    28
 #define X_RRSetPanning		    29
+#define X_RRSetOutputPrimary	    30
+#define X_RRGetOutputPrimary	    31
 
 #define RRTransformUnit		    (1L << 0)
 #define RRTransformScaleUp	    (1L << 1)
diff --git a/randrproto.h b/randrproto.h
index b434b3a..3b98a9f 100644
--- a/randrproto.h
+++ b/randrproto.h
@@ -614,6 +614,37 @@ typedef struct {
 
 #define sz_xRRGetCrtcTransformReply	96
 
+typedef struct {
+    CARD8	reqType;
+    CARD8	randrReqType;
+    CARD16	length B16;
+    Window	window B32;
+    RROutput	output B32;
+} xRRSetOutputPrimaryReq;
+#define sz_xRRSetOutputPrimaryReq	12
+
+typedef struct {
+    CARD8	reqType;
+    CARD8	randrReqType;
+    CARD16	length B16;
+    Window	window B32;
+} xRRGetOutputPrimaryReq;
+#define sz_xRRGetOutputPrimaryReq	8
+
+typedef struct {
+    BYTE	type;
+    CARD8	pad;
+    CARD16	sequenceNumber B16;
+    CARD32	length B32;
+    RROutput	output B32;
+    CARD32	pad1 B32;
+    CARD32	pad2 B32;
+    CARD32	pad3 B32;
+    CARD32	pad4 B32;
+    CARD32	pad5 B32;
+} xRRGetOutputPrimaryReply;
+#define sz_xRRGetOutputPrimaryReply	32
+
 /*
  * event
  */
diff --git a/randrproto.txt b/randrproto.txt
index 65b122d..9b23120 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -1193,6 +1193,51 @@ dynamic changes in the display environment.
 	'new-time-stamp' contains the time at which this request was
 	executed.
 
+┌───
+    RRSetOutputPrimary
+	window: WINDOW
+	output: OUTPUT
+└───
+	Errors: Match, Output, Window
+
+	RRSetOutputPrimary marks 'output' as the primary output for the
+	screen with the same root window as 'window'. This output's CRTC
+	will be sorted to the front of the list in Xinerama and RANDR
+	geometry requests for the benefit of older applications. The
+	default primary output is None, and None is a legal value to pass
+	to RRSetOutputPrimary. This request is expected to be used by
+	desktop environments to mark the screen that should hold the primary
+	menu bar or panel.
+
+	If the named output is not connected to any CRTC, or if the Window
+	and Output are not attached to the same screen, BadMatch is generated.
+	In the latter case, errorValue will be the Window, not the Output.
+
+	As this changes the logical layout of the screen, ConfigureNotify
+	and RRScreenChangeNotify will be generated on the appropriate root
+	window when the primary output is changed by this call. This request
+	also generates RROutputChangeNotify events on the outputs that gained
+	and lost primary status.
+
+	If an output is disconnected asynchronously (eg. due to recabling),
+	the primary status does not change, but RROutputChangeNotify events
+	will be generated if the hardware is capable of detecting this;
+	clients are expected to reconfigure if appropriate.
+
+	If an output is deleted (eg. due to device hotplug), the server will
+	act as though None was passed to RRSetOutputPrimary, including
+	generating the appropriate events.
+
+┌───
+    RRGetOutputPrimary
+	window: WINDOW
+      â–¶
+	output: OUTPUT
+└───
+	Errors: Window
+
+	RRGetOutputPrimary returns the primary output for the system.
+
                               ❧❧❧❧❧❧❧❧❧❧❧
 
 8. Extension Events
@@ -1360,7 +1405,7 @@ list of what each version provided:
 	     modes
 
 	1.3: Added cheap version of RRGetScreenResources.  Added CRTC
-	     transformations.  Added panning.
+	     transformations.  Added panning.  Added primary outputs.
 
 Compatibility between 0.0 and 1.0 was *NOT* preserved, and 0.0 clients
 will fail against 1.0 servers. The wire encoding op-codes were
@@ -1369,8 +1414,9 @@ graceful way. Version 1.1 servers and clients are cross compatible with
 1.0. Version 1.1 is considered to be stable and we intend upward
 compatibility from this point. Version 1.2 offers an extended model of the
 system with multiple output support. Version 1.3 adds a cheap version of
-GetScreenResources to avoid expensive DDC operations, and CRTC
-transformations. 1.2 and 1.3 are backward-compatible with 1.1.
+GetScreenResources to avoid expensive DDC operations, CRTC transformations,
+panning, and the primary output concept. 1.2 and 1.3 are backward-compatible
+with 1.1.
 
                               ❧❧❧❧❧❧❧❧❧❧❧
 
@@ -2038,6 +2084,33 @@ A.2.2 Protocol Requests added with version 1.3
 	20				unused
 └───
 
+┌───
+    RRSetOutputPrimary
+	1	CARD8			major opcode
+	1	30			RandR opcode
+	2	3			length
+	4	WINDOW			window
+	4	OUTPUT			output
+└───
+    
+┌───
+    RRGetOutputPrimary
+	1	CARD8			major opcode
+	1	31			RandR opcode
+	2	2			length
+	4	WINDOW			window
+      â–¶
+	1	1			Reply
+	1				unused
+	2	CARD16			sequence number
+	4	CARD32			length
+	4	OUTPUT			output
+	4	CARD32			pad1
+	4	CARD32			pad2
+	4	CARD32			pad3
+	4	CARD32			pad4
+└───
+
 A.3 Protocol Events
 
 ┌───


More information about the xorg-commit mailing list