summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2012-01-20 17:38:16 +0000
committerDave Airlie <airlied@redhat.com>2012-05-06 17:44:12 +0100
commit670d2762a5c92da778fc3be4ad5a6b952e4f4027 (patch)
tree1c35d8b0846b44c5351d2382edc0378266eb15e1
parent40cce2d010c1eff087301d5bb0098d0e041ed71f (diff)
add provider protoprovider
-rw-r--r--randr.h12
-rw-r--r--randrproto.h60
2 files changed, 71 insertions, 1 deletions
diff --git a/randr.h b/randr.h
index 9cb9403..41d05b8 100644
--- a/randr.h
+++ b/randr.h
@@ -44,7 +44,7 @@ typedef unsigned long XRandrModeFlags;
#define RRNumberErrors 3
#define RRNumberEvents 2
-#define RRNumberRequests 37
+#define RRNumberRequests 40
#define X_RRQueryVersion 0
/* we skip 1 to make old clients fail pretty immediately */
@@ -114,6 +114,11 @@ typedef unsigned long XRandrModeFlags;
#define X_RRGetCrtcSpriteTransform 35
#define X_RRSetCrtcConfigs 36
+/* v1.5 */
+#define X_RRGetProviders 37
+#define X_RRGetProviderInfo 38
+#define X_RRSetProviderRole 39
+
/* Event selection bits */
#define RRScreenChangeNotifyMask (1L << 0)
/* V1.2 additions */
@@ -184,4 +189,9 @@ typedef unsigned long XRandrModeFlags;
#define RR_PROPERTY_BORDER "Border"
#define RR_PROPERTY_BORDER_DIMENSIONS "BorderDimensions"
+#define RR_Role_Undefined 0
+#define RR_Role_Master 1
+#define RR_Role_Slave_Offload 2
+#define RR_Role_Slave_Output 4
+
#endif /* _RANDR_H_ */
diff --git a/randrproto.h b/randrproto.h
index 00bae2d..7f54db0 100644
--- a/randrproto.h
+++ b/randrproto.h
@@ -48,6 +48,7 @@
#define RROutput CARD32
#define RRMode CARD32
#define RRCrtc CARD32
+#define RRProvider CARD32
#define RRModeFlags CARD32
#define PictFormat CARD32
@@ -766,6 +767,64 @@ typedef struct {
} xRRSetCrtcConfigsReply;
#define sz_xRRSetCrtcConfigsReply 32
+typedef struct {
+ CARD8 reqType;
+ CARD8 randrReqType;
+ CARD16 length B16;
+ Window window B32;
+} xRRGetProvidersReq;
+#define sz_xRRGetProvidersReq 8
+
+typedef struct {
+ BYTE type;
+ CARD8 pad;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD16 nProviders;
+ CARD16 pad1;
+ Time timestamp B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+ CARD32 pad5 B32;
+} xRRGetProvidersReply;
+#define sz_xRRGetProvidersReply 32
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 randrReqType;
+ CARD16 length B16;
+ RRProvider provider B32;
+ Time configTimestamp B32;
+} xRRGetProviderInfoReq;
+#define sz_xRRGetProviderInfoReq 12
+
+typedef struct {
+ BYTE type;
+ CARD8 status;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD32 current_role B32;
+ CARD32 allowed_roles B32;
+ CARD32 max_master B32;
+ CARD16 nCrtcs B16;
+ CARD16 nOutputs B16;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+} xRRGetProviderInfoReply;
+#define sz_xRRGetProvidersInfoReply 32
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 randrReqType;
+ CARD16 length B16;
+ RRProvider provider B32;
+ Time configTimestamp B32;
+ CARD32 new_role B32;
+ CARD32 exclusive_master B32; /* xinerama or GPU switch */
+} xRRSetProviderRoleReq;
+#define sz_xRRSetProviderRoleReq 20
+
/*
* event
*/
@@ -906,6 +965,7 @@ typedef struct {
#undef RROutput
#undef RRMode
#undef RRCrtc
+#undef RRProvider
#undef Drawable
#undef Window
#undef Font