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]