x11proto-randr: Changes to 'upstream-experimental'
Makefile.am | 10 ++
configure.ac | 2
randr.h | 15 +++
randrproto.h | 82 ++++++++++++++++++++-
randrproto.txt | 218 ++++++++++++++++++++++++++++++++++++++++++++++++++-------
5 files changed, 296 insertions(+), 31 deletions(-)
New commits:
commit 10bff0be50cf5cf314960bb85c472f1c63d37755
Author: Keith Packard <keithp@keithp.com>
Date: Wed Nov 26 09:24:36 2008 -0800
Update to version 1.2.99.1
diff --git a/configure.ac b/configure.ac
index 7a3c61c..d4aeffb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@ dnl
dnl Process this file with autoconf to create configure.
AC_PREREQ([2.57])
-AC_INIT([RandrProto], [1.2.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AC_INIT([RandrProto], [1.2.99.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
XORG_RELEASE_VERSION
commit 8793429f3d9d7cdf16be118ce05a68af6531568e
Author: Keith Packard <keithp@keithp.com>
Date: Mon Nov 24 16:01:55 2008 -0800
Describe projective transform additions in Introduction
Signed-off-by: Keith Packard <keithp@keithp.com>
diff --git a/randrproto.txt b/randrproto.txt
index eac79c7..b77753a 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -113,10 +113,14 @@ resolution screen on the first.
1.3 Introduction to version 1.3 of the extension
Version 1.3 builds on the changes made with version 1.2 and adds some new
-capabilities without fundmentally changing the extension again. This version
-adds 'panning regions' and projective transforms, plus defines some standard
-output properties to help clients describe the systme more accurately.
-
+capabilities without fundmentally changing the extension again. The
+following features are added in this version:
+
+ • Projective Transforms. The implementation work for general rotation
+ support made it trivial to add full projective transformations. These
+ can be used to scale the screen up/down as well as perform projector
+ keystone correct or other effects.
+
1.1 Acknowledgements
Our thanks to the contributors to the design found on the xpert mailing
commit c998b4658d735e5b2d7aa6983d732d40cc802823
Author: Adam Jackson <ajax@redhat.com>
Date: Mon Nov 24 16:29:58 2008 -0500
GSRC added in 1.3, not 1.2
diff --git a/randrproto.txt b/randrproto.txt
index fa3b1e2..b3bd8b2 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -1718,7 +1718,7 @@ A.2.1 Protocol Requests added with version 1.2
p unused, p=pad(6n)
└───
-A.2.2 Protocol Requests added with version 1.2
+A.2.2 Protocol Requests added with version 1.3
┌───
RRGetScreenResourcesCurrent
commit 0d334c880396b9ef67ed899ad228cc693aad6a28
Author: Adam Jackson <ajax@redhat.com>
Date: Mon Nov 24 16:19:43 2008 -0500
Fix RRNumberRequests
diff --git a/randr.h b/randr.h
index c7794fc..74a780c 100644
--- a/randr.h
+++ b/randr.h
@@ -44,7 +44,7 @@ typedef unsigned long XRandrModeFlags;
#define RRNumberErrors 3
#define RRNumberEvents 2
-#define RRNumberRequests 25
+#define RRNumberRequests 26
#define X_RRQueryVersion 0
/* we skip 1 to make old clients fail pretty immediately */
commit 2c0635eed5ae418ca278d99e044f583d54273097
Author: Adam Jackson <ajax@redhat.com>
Date: Mon Nov 24 15:54:09 2008 -0500
Add GetScreenResourcesCurrent
diff --git a/randr.h b/randr.h
index 17e6ef9..c7794fc 100644
--- a/randr.h
+++ b/randr.h
@@ -2,6 +2,7 @@
* Copyright © 2000 Compaq Computer Corporation
* Copyright © 2002 Hewlett Packard Company
* Copyright © 2006 Intel Corporation
+ * Copyright © 2008 Red Hat, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -77,6 +78,9 @@ typedef unsigned long XRandrModeFlags;
#define X_RRGetCrtcGamma 23
#define X_RRSetCrtcGamma 24
+/* V1.3 additions */
+#define X_RRGetScreenResourcesCurrent 25
+
/* Event selection bits */
#define RRScreenChangeNotifyMask (1L << 0)
/* V1.2 additions */
diff --git a/randrproto.h b/randrproto.h
index 3fb2e45..6d3303a 100644
--- a/randrproto.h
+++ b/randrproto.h
@@ -2,6 +2,7 @@
* Copyright © 2000 Compaq Computer Corporation
* Copyright © 2002 Hewlett-Packard Company
* Copyright © 2006 Intel Corporation
+ * Copyright © 2008 Red Hat, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -562,6 +563,34 @@ typedef struct {
#define sz_xRRSetCrtcGammaReq 12
/*
+ * Additions for V1.3
+ */
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 randrReqType;
+ CARD16 length B16;
+ Window window B32;
+} xRRGetScreenResourcesCurrentReq;
+#define sz_xRRGetScreenResourcesCurrentReq 8
+
+typedef struct {
+ BYTE type;
+ CARD8 pad;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ Time timestamp B32;
+ Time configTimestamp B32;
+ CARD16 nCrtcs B16;
+ CARD16 nOutputs B16;
+ CARD16 nModes B16;
+ CARD16 nbytesNames B16;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+} xRRGetScreenResourcesCurrentReply;
+#define sz_xRRGetScreenResourcesCurrentReply 32
+
+/*
* event
*/
typedef struct {
diff --git a/randrproto.txt b/randrproto.txt
index 626da56..fa3b1e2 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -528,10 +528,10 @@ dynamic changes in the display environment.
This request explicitly asks the server to ensure that the
configuration data is up-to-date wrt the hardware. If that requires
- polling, this is when such polling would take place. Requests for
- further information should not poll, but rather return the data
- collected at this point.
-
+ polling, this is when such polling would take place. If the
+ current configuration is all that's required, use
+ RRGetScreenResourcesCurrent instead.
+
┌───
RRGetOutputInfo
output: OUTPUT
@@ -968,6 +968,40 @@ dynamic changes in the display environment.
must be the size returned by RRGetCrtcGammaSize else a Value error
results.
+7.2. Extension Requests added in version 1.3 of the extension
+
+┌───
+ RRGetScreenResourcesCurrent
+ window: WINDOW
+ ▶
+ timestamp: TIMESTAMP
+ config-timestamp: TIMESTAMP
+ crtcs: LISTofCRTC
+ outputs: LISTofOUTPUT
+ modes: LISTofMODEINFO
+└───
+ Errors: Window
+
+ RRGetScreenResourcesCurrent returns the list of outputs and crtcs
+ connected to the screen associated with 'window'.
+
+ 'timestamp' indicates when the configuration was last set.
+
+ 'config-timestamp' indicates when the configuration information last
+ changed. Requests to configure the output will fail unless the
+ timestamp indicates that the information the client is using is up
+ to date, to ensure clients can be well behaved in the face of race
+ conditions.
+
+ 'crtcs' contains the list of CRTCs associated with the screen.
+
+ 'outputs' contains the list of outputs associated with the screen.
+
+ 'modes' contains the list of modes associated with the screen
+
+ Unlike RRGetScreenResources, this merely returns the current
+ configuration, and does not poll for hardware changes.
+
❧❧❧❧❧❧❧❧❧❧❧
8. Extension Events
@@ -1128,6 +1162,8 @@ list of what each version provided:
1.2: Separate screens from CRTCs and outputs, switch to full VESA
modes
+ 1.3: Added cheap version of RRGetScreenResources.
+
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
changed for GetScreenInfo to ensure this failure in a relatively
@@ -1135,7 +1171,8 @@ 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. It offers backward compatibility with
-version 1.1.
+version 1.1. Version 1.3 adds a cheap version of GetScreenResources to
+avoid expensive DDC operations.
❧❧❧❧❧❧❧❧❧❧❧
@@ -1681,6 +1718,33 @@ A.2.1 Protocol Requests added with version 1.2
p unused, p=pad(6n)
└───
+A.2.2 Protocol Requests added with version 1.2
+
+┌───
+ RRGetScreenResourcesCurrent
+ 1 CARD8 major opcode
+ 1 8 RandR opcode
+ 2 2 length
+ 4 WINDOW window
+ ▶
+ 1 1 Reply
+ 1 unused
+ 2 CARD16 sequence number
+ 4 c+o+8m+(b+p)/4 reply length
+ 4 TIMESTAMP timestamp
+ 4 TIMESTAMP config-timestamp
+ 2 c number of CRTCs
+ 2 o number of outputs
+ 2 m number of modeinfos
+ 2 b total bytes in mode names
+ 8 unused
+ 4c LISTofCRTC crtcs
+ 4o LISTofOUTPUT outputs
+ 32m LISTofMODEINFO modeinfos
+ b STRING8 mode names
+ p unused, p=pad(b)
+└───
+
A.3 Protocol Events
┌───
commit 4a960ba3db3c3f8bdf3d519d263f910b6107b9ff
Author: Julien Cristau <jcristau@debian.org>
Date: Fri Jul 11 17:12:22 2008 +0200
spec: add missing list of clones to RRGetOutputInfo reply
diff --git a/randrproto.txt b/randrproto.txt
index 6719cf8..626da56 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -1434,6 +1434,7 @@ A.2.1 Protocol Requests added with version 1.2
2 n length of name
4c LISTofCRTC crtcs
4m LISTofMODE modes
+ 4o LISTofOUTPUT clones
n STRING8 name
p unused, p=pad(n)
└───
commit 2be5a52d5f6bdd2aa70efcb06bd99a149c6db6ba
Author: Adam Jackson <ajax@redhat.com>
Date: Wed Jul 2 15:34:31 2008 -0400
randrproto 1.2.2
diff --git a/configure.ac b/configure.ac
index 6c338f0..7a3c61c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@ dnl
dnl Process this file with autoconf to create configure.
AC_PREREQ([2.57])
-AC_INIT([RandrProto], [1.2.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AC_INIT([RandrProto], [1.2.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
XORG_RELEASE_VERSION
commit 9ab3d5cca3cf9a76c6873007b8d4345c838cc297
Author: Adam Jackson <ajax@redhat.com>
Date: Mon Jun 23 14:52:12 2008 -0400
Bug #16149: Make the field not be named 'delete' in C++ mode.
Thanks for the upward compatibility, Bjarne.
diff --git a/randrproto.h b/randrproto.h
index cf7a022..3fb2e45 100644
--- a/randrproto.h
+++ b/randrproto.h
@@ -376,7 +376,11 @@ typedef struct {
Atom type B32;
CARD32 longOffset B32;
CARD32 longLength B32;
+#ifdef __cplusplus
+ BOOL _delete;
+#else
BOOL delete;
+#endif
BOOL pending;
CARD16 pad1 B16;
} xRRGetOutputPropertyReq;
commit 2d09f9cac379c74f492b528a8aa2ac3b5997d617
Author: Keith Packard <keithp@keithp.com>
Date: Tue Mar 18 16:01:10 2008 -0700
Eliminate inverse matrix from randr transform protocol
It is easier, and potentially more precise, to compute the inverse in the
server where everything can eventually be kept in floating point form.
diff --git a/randrproto.h b/randrproto.h
index e6bab25..6c52eea 100644
--- a/randrproto.h
+++ b/randrproto.h
@@ -568,13 +568,11 @@ typedef struct {
CARD16 length B16;
RRCrtc crtc B32;
xRenderTransform transform;
- CARD32 pad0 B32;
- xRenderTransform inverse;
CARD16 nbytesFilter; /* number of bytes in filter name */
CARD16 pad B16;
} xRRSetCrtcTransformReq;
-#define sz_xRRSetCrtcTransformReq 88
+#define sz_xRRSetCrtcTransformReq 48
typedef struct {
CARD8 reqType;
@@ -592,19 +590,17 @@ typedef struct {
CARD32 length B32;
xRenderTransform pendingTransform;
BYTE hasTransforms;
- CARD8 pad0a;
- CARD16 pad0 B16;
- xRenderTransform pendingInverse;
- CARD16 pendingNbytesFilter B16; /* number of bytes in filter name */
- CARD16 pendingNparamsFilter B16; /* number of filter params */
+ CARD8 pad0;
+ CARD16 pad1 B16;
xRenderTransform currentTransform;
CARD32 pad2 B32;
- xRenderTransform currentInverse;
+ CARD16 pendingNbytesFilter B16; /* number of bytes in filter name */
+ CARD16 pendingNparamsFilter B16; /* number of filter params */
CARD16 currentNbytesFilter B16; /* number of bytes in filter name */
CARD16 currentNparamsFilter B16; /* number of filter params */
} xRRGetCrtcTransformReply;
-#define sz_xRRGetCrtcTransformReply 168
+#define sz_xRRGetCrtcTransformReply 96
/*
* event
diff --git a/randrproto.txt b/randrproto.txt
index ac40f93..eac79c7 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -983,7 +983,6 @@ dynamic changes in the display environment.
RRSetCrtcTransform
crtc: CRTC
transform: TRANSFORM
- inverse: TRANSFORM
filter: STRING8
values: LISTofFIXED
└───
@@ -994,8 +993,7 @@ rotation and reflection values for describing the transformation from frame
buffer image to crtc presentation. 'transform' is a full 2D projective
transformations from screen coordinate space to crtc coordinate space. This
transformation is applied before the rotation and reflection values to
-compute the complete transform. 'inverse' must be the
-multiplicative inverse of 'transform' or a Match error results.
+compute the complete transform.
'filter' and 'values' specify a Render filter that may be used by the server
when transforming data from frame buffer to crtc.
@@ -1014,11 +1012,9 @@ the screen when the mode is set.
crtc: CRTC
▶
pending-transform: TRANSFORM
- pending-inverse: TRANSFORM
pending-filter: STRING8
pending-values: LISTofFIXED
current-transform: TRANSFORM
- current-inverse: TRANSFORM
current-filter: STRING8
current-values: LISTofFIXED
└───
commit aa5cd18a9f84aa075ffa7f70e6591b70b093119f
Author: Keith Packard <keithp@keithp.com>
Date: Sat Mar 15 00:32:35 2008 -0700
Add filters to CRTC transforms.
This allows scaling transforms to use bilinear filtering if desired.
diff --git a/randrproto.h b/randrproto.h
index d2d0963..e6bab25 100644
--- a/randrproto.h
+++ b/randrproto.h
@@ -570,7 +570,8 @@ typedef struct {
xRenderTransform transform;
CARD32 pad0 B32;
xRenderTransform inverse;
- CARD32 pad1 B32;
+ CARD16 nbytesFilter; /* number of bytes in filter name */
+ CARD16 pad B16;
} xRRSetCrtcTransformReq;
#define sz_xRRSetCrtcTransformReq 88
@@ -592,13 +593,15 @@ typedef struct {
xRenderTransform pendingTransform;
BYTE hasTransforms;
CARD8 pad0a;
- CARD16 pad0b B16;
+ CARD16 pad0 B16;
xRenderTransform pendingInverse;
- CARD32 pad1 B32;
+ CARD16 pendingNbytesFilter B16; /* number of bytes in filter name */
+ CARD16 pendingNparamsFilter B16; /* number of filter params */
xRenderTransform currentTransform;
CARD32 pad2 B32;
xRenderTransform currentInverse;
- CARD32 pad3 B32;
+ CARD16 currentNbytesFilter B16; /* number of bytes in filter name */
+ CARD16 currentNparamsFilter B16; /* number of filter params */
} xRRGetCrtcTransformReply;
#define sz_xRRGetCrtcTransformReply 168
diff --git a/randrproto.txt b/randrproto.txt
index 8d21160..ac40f93 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -984,6 +984,8 @@ dynamic changes in the display environment.
crtc: CRTC
transform: TRANSFORM
inverse: TRANSFORM
+ filter: STRING8
+ values: LISTofFIXED
└───
Errors: Crtc, Match
@@ -995,6 +997,9 @@ transformation is applied before the rotation and reflection values to
compute the complete transform. 'inverse' must be the
multiplicative inverse of 'transform' or a Match error results.
+'filter' and 'values' specify a Render filter that may be used by the server
+when transforming data from frame buffer to crtc.
+
This request sets the transform to be used at the next RRSetCrtcConfig
request execution; it does not cause any change to occur in the current
configuration.
@@ -1010,8 +1015,12 @@ the screen when the mode is set.
▶
pending-transform: TRANSFORM
pending-inverse: TRANSFORM
+ pending-filter: STRING8
+ pending-values: LISTofFIXED
current-transform: TRANSFORM
current-inverse: TRANSFORM
+ current-filter: STRING8
+ current-values: LISTofFIXED
└───
This request returns the pending and current transforms for the specified
commit 329b2068c1505dbc2eef7cc245b02c3bbf9c67ff
Author: Keith Packard <keithp@keithp.com>
Date: Fri Feb 15 15:49:35 2008 -0800
Add Transform request proposal for 1.3
diff --git a/randr.h b/randr.h
index 17e6ef9..7b35e86 100644
--- a/randr.h
+++ b/randr.h
@@ -39,11 +39,11 @@ typedef unsigned long XRandrModeFlags;
#define RANDR_NAME "RANDR"
#define RANDR_MAJOR 1
-#define RANDR_MINOR 2
+#define RANDR_MINOR 3
#define RRNumberErrors 3
#define RRNumberEvents 2
-#define RRNumberRequests 25
+#define RRNumberRequests 27
#define X_RRQueryVersion 0
/* we skip 1 to make old clients fail pretty immediately */
@@ -77,6 +77,15 @@ typedef unsigned long XRandrModeFlags;
#define X_RRGetCrtcGamma 23
#define X_RRSetCrtcGamma 24
+/* V1.3 additions */
+#define X_RRSetCrtcTransform 25
+#define X_RRGetCrtcTransform 26
+
+#define RRTransformUnit (1L << 0)
+#define RRTransformScaleUp (1L << 1)
+#define RRTransformScaleDown (1L << 2)
+#define RRTransformProjective (1L << 3)
+
/* Event selection bits */
#define RRScreenChangeNotifyMask (1L << 0)
/* V1.2 additions */
diff --git a/randrproto.h b/randrproto.h
index cf7a022..d2d0963 100644
--- a/randrproto.h
+++ b/randrproto.h
@@ -31,6 +31,7 @@
#define _XRANDRP_H_
#include <X11/extensions/randr.h>
+#include <X11/extensions/renderproto.h>
#define Window CARD32
#define Drawable CARD32
@@ -558,6 +559,51 @@ typedef struct {
#define sz_xRRSetCrtcGammaReq 12
/*
+ * Additions for RandR 1.3
+ */
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 randrReqType;
+ CARD16 length B16;
+ RRCrtc crtc B32;
+ xRenderTransform transform;
+ CARD32 pad0 B32;
+ xRenderTransform inverse;
+ CARD32 pad1 B32;
+} xRRSetCrtcTransformReq;
+
+#define sz_xRRSetCrtcTransformReq 88
+
+typedef struct {
+ CARD8 reqType;
+ CARD8 randrReqType;
+ CARD16 length B16;
+ RRCrtc crtc B32;
+} xRRGetCrtcTransformReq;
+
+#define sz_xRRGetCrtcTransformReq 8
+
+typedef struct {
+ BYTE type;
+ CARD8 status;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ xRenderTransform pendingTransform;
+ BYTE hasTransforms;
+ CARD8 pad0a;
+ CARD16 pad0b B16;
+ xRenderTransform pendingInverse;
+ CARD32 pad1 B32;
+ xRenderTransform currentTransform;
+ CARD32 pad2 B32;
+ xRenderTransform currentInverse;
+ CARD32 pad3 B32;
+} xRRGetCrtcTransformReply;
+
+#define sz_xRRGetCrtcTransformReply 168
+
+/*
* event
*/
typedef struct {
@@ -598,8 +644,8 @@ typedef struct {
CARD8 type; /* always evBase + RRNotify */
CARD8 subCode; /* RRNotify_OutputChange */
CARD16 sequenceNumber B16;
- Time timestamp B32; /* time crtc was changed */
- Time configTimestamp B32; /* time crtc was changed */
+ Time timestamp B32; /* time output was changed */
+ Time configTimestamp B32; /* time config was changed */
Window window B32; /* window requesting notification */
RROutput output B32; /* affected output */
RRCrtc crtc B32; /* current crtc */
diff --git a/randrproto.txt b/randrproto.txt
index 6719cf8..8d21160 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -1,6 +1,6 @@
The X Resize, Rotate and Reflect Extension
- Version 1.2
- 2006-4-13
+ Version 1.3
+ 2006-20-7
Jim Gettys
Jim.Gettys@hp.com
@@ -110,6 +110,13 @@ bandwidth for large resolution screens. This is exposed in RandR by
requiring that nothing be connected to the second CRTC when driving a high
resolution screen on the first.
+1.3 Introduction to version 1.3 of the extension
+
+Version 1.3 builds on the changes made with version 1.2 and adds some new
+capabilities without fundmentally changing the extension again. This version
+adds 'panning regions' and projective transforms, plus defines some standard
+output properties to help clients describe the systme more accurately.
+
1.1 Acknowledgements
Our thanks to the contributors to the design found on the xpert mailing
@@ -846,8 +853,10 @@ dynamic changes in the display environment.
'x' and 'y' indicate the position of this CRTC within the screen
region. They will be set to 0 when the CRTC is disabled.
- 'width' and 'height' indicate the size of the area presented by this
- CRTC.
+ 'width' and 'height' indicate the size of the area within the screen
+ presented by this CRTC. This may be different than the size of the
+ mode due to rotation. They will be set to 0 when the CRTC is
+ disabled.
'mode' indicates which mode is active, or None indicating that the
CRTC has been disabled and is not displaying the screen contents.
@@ -968,6 +977,47 @@ dynamic changes in the display environment.
must be the size returned by RRGetCrtcGammaSize else a Value error
results.
+7.2. Extension Requests added in version 1.3 of the extension
+
+┌───
+ RRSetCrtcTransform
+ crtc: CRTC
+ transform: TRANSFORM
+ inverse: TRANSFORM
+└───
+ Errors: Crtc, Match
+
+This request provides a mechanism that is more general than the existing
+rotation and reflection values for describing the transformation from frame
+buffer image to crtc presentation. 'transform' is a full 2D projective
+transformations from screen coordinate space to crtc coordinate space. This
+transformation is applied before the rotation and reflection values to
+compute the complete transform. 'inverse' must be the
+multiplicative inverse of 'transform' or a Match error results.
+
+This request sets the transform to be used at the next RRSetCrtcConfig
+request execution; it does not cause any change to occur in the current
+configuration.
+
+When a non-identity transformation is in use, the rectangle returned by
+RRGetCrtcInfo defines the bounding rectangle of the screen that is projected
+to the crtc. It is this projected rectangle which must be within the area of
+the screen when the mode is set.
+
+┌───
+ RRGetCrtcTransform
+ crtc: CRTC
+ ▶
+ pending-transform: TRANSFORM
+ pending-inverse: TRANSFORM
+ current-transform: TRANSFORM
+ current-inverse: TRANSFORM
+└───
+
+This request returns the pending and current transforms for the specified
+CRTC. The pending transform will be the same as the current transform if no
+new pending transform has been set since the last call to RRSetCrtcConfig.
+
❧❧❧❧❧❧❧❧❧❧❧
8. Extension Events
@@ -990,12 +1040,12 @@ factors, such as re-cabling a monitor, etc.
configTimestamp: TIMESTAMP time config data was changed
root: WINDOW root window of screen
window: WINDOW window requesting notification
- size-id: SIZEID index of new size
+ size-id: SIZEID index of new SCREENSIZE
subpixelOrder: SUBPIXELORDER order of subpixels
- widthInPixels: CARD16
- heightInPixels: CARD16
- widthInMillimeters: CARD16
- heightInMillimeters: CARD16
+ widthInPixels: CARD16 width in pixels of the new SCREENSIZE
+ heightInPixels: CARD16 height in pixels of the new SCREENSIZE
+ widthInMillimeters: CARD16 width in mm of the new SCREENSIZE
+ heightInMillimeters: CARD16 height in mm of the new SCREENSIZE
└───
This event is generated whenever the screen configuration is changed
and sent to requesting clients. 'timestamp' indicates when the
@@ -1021,6 +1071,13 @@ factors, such as re-cabling a monitor, etc.
just at the time when a display manager or log in script might
be changing the screen size or configuration.
+ Note that the sizes in this event reflect the new SCREENSIZE and
+ thus will appear rotated by the 'rotation' parameter from the sizes
+ of the screen itself. In other words, when rotation is 90 or 270,
+ widthInPixels in this event will be the same as the height value
+ from a ConfigureNotify that reflects the same size change. This
+ will probably confuse developers.
+
8.1 Events added in version 1.2 of the RandR extension
┌───
@@ -1065,27 +1122,26 @@ factors, such as re-cabling a monitor, etc.
┌───
RRCrtcChangeNotify
timestamp: TIMESTAMP time monitor was changed
- config-timestamp: TIMESTAMP time config data was changed
- root: WINDOW root window of screen
window: WINDOW window requesting notification
crtc: CRTC CRTC which changed
mode: MODE new mode
rotation: ROTATION; new rotation
x: INT16 x position of CRTC within screen
y: INT16 y position of CRTC within screen
+ width: CARD16 width of new mode
+ height: CARD16 height of new mode
└───
This event is generated whenever the CRTC configuration is changed
and sent to requesting clients. 'timestamp' indicates when the
- CRTC configuration was changed. 'config-timestamp' says when the
- last time the configuration was changed. 'root' is the root of the
- screen the change occurred on, 'window' is window selecting for this
- event.
+ CRTC configuration was changed. 'window' is window selecting for this
+ event. 'mode' is the new mode, or None if the crtc is disabled.
+ 'x' and 'y' mark the location in the screen where this CRTC
+ is reading data. 'width' and 'height' indicate the size of the
+ mode. 'x', 'y, 'width' and 'height' are all zero when 'mode' is None.
This event is sent whenever the monitor's configuration changes
or if a new monitor configuration becomes available that was
- not available in the past. In this case (config-timestamp in
- the event not being equal to the config-timestamp returned in
- the last call to RRGetCrtcModes), the client MUST call
+ not available in the past. In this case, the client MUST call
RRGetCrtcModes to update its view of possible monitor
configurations to have a correct view of possible monitor
organizations.
commit 2df8499d24d15bfca3c928b681f64b6e8a05f0af
Author: James Cloos <cloos@jhcloos.com>
Date: Thu Dec 6 16:39:05 2007 -0500
Replace static ChangeLog with dist-hook to generate from git log
diff --git a/Makefile.am b/Makefile.am
index be38f92..59e0378 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -10,3 +10,13 @@ randrdocdir = $(datadir)/doc/$(PACKAGE)
randrdoc_DATA = randrproto.txt
EXTRA_DIST = autogen.sh randrproto.pc.in $(randrdoc_DATA)
+
+EXTRA_DIST += ChangeLog
+MAINTAINERCLEANFILES = ChangeLog
+
+.PHONY: ChangeLog
+
+ChangeLog:
+ (GIT_DIR=$(top_srcdir)/.git git-log > .changelog.tmp && mv .changelog.tmp ChangeLog; rm -f .changelog.tmp) || (touch ChangeLog; echo 'git directory not found: installing possibly empty changelog.' >&2)
+
+dist-hook: ChangeLog
commit 3243afaa593f95bb89b1381dac2b920111ce36b1
Author: Jakob Bornecrantz <wallbraker@gmail.com>
Date: Tue Apr 17 14:25:38 2007 -0700
Correct a copy'n'paste error in RRGetOutputInfo spec text.
diff --git a/randrproto.txt b/randrproto.txt
index 345ef4e..6719cf8 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -547,7 +547,7 @@ dynamic changes in the display environment.
widthInMillimeters, heightInMillimeters: CARD32
crtcs: LISTofCRTC
clones: LISTofOUTPUT
- modes: LISTofOUTPUT
+ modes: LISTofMODE
num-preferred: CARD16
└───
Errors: Output
commit d1c5739ae19f7cc01a6a5603d3fae93e1f9ee3d1
Author: Alan Coopersmith <alan.coopersmith@sun.com>
Date: Mon Apr 9 14:31:10 2007 -0700
Delete duplicate B32's in xRRScreenChangeNotifyEvent
Caused compiler warnings:
"randrproto.h", line 567: warning: syntax error: empty member declaration
"randrproto.h", line 568: warning: syntax error: empty member declaration
diff --git a/randrproto.h b/randrproto.h
index abca369..cf7a022 100644
--- a/randrproto.h
+++ b/randrproto.h
@@ -564,8 +564,8 @@ typedef struct {
CARD8 type; /* always evBase + ScreenChangeNotify */
CARD8 rotation; /* new rotation */
CARD16 sequenceNumber B16;
- Time timestamp B32; B32; /* time screen was changed */
- Time configTimestamp B32; B32; /* time config data was changed */
+ Time timestamp B32; /* time screen was changed */
+ Time configTimestamp B32; /* time config data was changed */
Window root B32; /* root window */
Window window B32; /* window requesting notification */
SizeID sizeID B16; /* new size ID */
Reply to: