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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
Date:   Mon Nov 24 16:01:55 2008 -0800

    Describe projective transform additions in Introduction
    
    Signed-off-by: Keith Packard <[EMAIL PROTECTED]>

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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
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
                           [EMAIL PROTECTED]
@@ -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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
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 */


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to