diff options
author | Keith Packard <keithp@neko.keithp.com> | 2006-06-24 17:35:35 -0700 |
---|---|---|
committer | Keith Packard <keithp@neko.keithp.com> | 2006-06-24 17:35:35 -0700 |
commit | 3b72072c31258d1f12b93eba77b5e30cf46c5309 (patch) | |
tree | ffe75329baf5594f32d1ee9916f85eebe9c3b07c | |
parent | 2907236309d2862f61dcb0c032df1abdb9adc80e (diff) | |
download | xorg-proto-randrproto-3b72072c31258d1f12b93eba77b5e30cf46c5309.tar.gz |
Repair broken parts of spec. Add RRGetMonitorInfo and RRSetMonitorConfig
-rw-r--r-- | protocol.txt | 222 |
1 files changed, 176 insertions, 46 deletions
diff --git a/protocol.txt b/protocol.txt index d8b24c7..6ec3e92 100644 --- a/protocol.txt +++ b/protocol.txt @@ -141,13 +141,18 @@ There are no new error types defined by this extension. 5. Protocol Types +RRCONFIGSTATUS { + Success + InvalidConfigTime + InvalidTime + Failed } ROTATION { - RR_rotate_0 - RR_rotate_90 - RR_rotate_180 - RR_rotate_270 - RR-Reflect_X - RR_Reflect_Y } + Rotate_0 + Rotate_90 + Rotate_180 + Rotate_270 + Reflect_X + Reflect_Y } RRSELECTMASK { RRScreenChangeNotifyMask } @@ -160,6 +165,13 @@ SUBPIXELORDER { SubPixelUnknown The subpixel order uses the Render SubPixelVerticalBGR SubPixelNone } +SCREENSIZE { + widthInPixels, heightInPixels: CARD16 + widthInMillimeters, heightInMillimeters: CARD16 } + +REFRESH { + rates: LISTofCARD16 } + 6. Extension Initialization The name of this extension is "RANDR". @@ -204,6 +216,7 @@ RRSetScreenConfig -> + status: RRCONFIGSTATUS new-timestamp: TIMESTAMP config-timestamp: TIMESTAMP root: WINDOW @@ -211,35 +224,45 @@ RRSetScreenConfig Errors: Value, Match - If the timestamp in this request is less than the time when - the configuration was last successfully set, the request is - ignored and False returned in success. If the - config-timestamp in this request is not equal to when the - server's screen configurations last changed, the request is - ignored and False returned in success. This could occur if - the screen changed since you last made a RRGetScreenInfo - request, perhaps by a different piece of display hardware - being installed. Rather than allowing an incorrect call to be - executed based on stale data, the server will ignore the - request. + If 'timestamp' is less than the time when the configuration was last + successfully set, the request is ignored and InvalidTime returned in + status. + + If 'config-timestamp' is not equal to when the server's screen + configurations last changed, the request is ignored and + InvalidConfigTime returned in status. This could occur if the + screen changed since you last made a RRGetScreenInfo request, + perhaps by a different piece of display hardware being installed. + Rather than allowing an incorrect call to be executed based on stale + data, the server will ignore the request. + + 'rate' contains the desired refresh rate. If it is zero, the server + selects an appropriate rate. + + This request may fail for other indeterminate reasons, in which case + 'status' will be set to Failed and no configuration change will be + made. + + This request sets the screen to the specified size, rate, rotation + and reflection. - If rate is zero, the server selects an appropriate rate. + When this request succeeds, 'status' contains Success and the + requested changes to configuration will have been made. + + 'new-time-stamp' contains the time at which this request was + executed. + + 'config-timestamp' contains the time when the possible screen + configurations were last changed. + + 'root' contains the root window for the screen indicated by the + drawable. - If the request succeeds, this request sets the screen to the - specified size, rate, rotation and reflection. If the requests - succeeds, the new-time-stamp is returned containing the time - when the screen configuration was changed and config-timestamp - is returned to indicate when the possible screen - configurations were last changed, and success is set to True. - The root window for the screen indicated by the drawable - argument is also returned, along with the subpixel order, to - allow correct subpixel rendering. - - Value errors are generated if the rotation is not an - allowed rotation. Value errors are generated, if, when the - timestamps would allow the operation to succeed, or size-index - are not possible (out of range). + 'subpixelOrder' contains the resulting subpixel order of the screen + to allow correct subpixel rendering. + Value errors are generated when 'rotation', 'rate' or 'sizeID' are + invalid. RRGetScreenInfo window: WINDOW @@ -258,14 +281,6 @@ RRGetScreenInfo where: - SCREENSIZE { - widthInPixels, heightInPixels: CARD16 - widthInMillimeters, heightInMillimeters: CARD16 } - - REFRESH { - rates: LISTofCARD16 - } - Errors: Window RRGetScreenInfo returns information about the current and available @@ -338,7 +353,122 @@ RRSetScreenSize subset of the specified size, else a Match error results. RRGetMonitorInfo + drawable: DRAWABLE + + -> + + root: WINDOW + monitors: LISTofMONITOR + + where: + + MONITOR { + name: STRING + timestamp: TIMESTAMP + config-timestamp: TIMESTAMP + x, y: INT16 + sizeID: SIZEID or Disabled + rotation: ROTATION + rate: CARD16 + rotations: SETofROTATION + defaultSizeID: SIZEID or Disabled + sizes: LISTofSCREENSIZE + refresh: LISTofREFRESH + } + + Errors: Drawable + + RRGetMonitorInfo returns information about the current and available + configurations for all monitors connected to the screen associated + with 'window'. + + 'root' is the root window of the screen. + + 'timestamp' indicates when the configuration was last set. + + 'config-timestamp' indicates when the screen configuration + information last changed: requests to set the screen 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. + + 'x' and 'y' indicate the position of this monitor within the screen + region. They will be set to 0 when the monitor is disabled. + + 'sizeID' indicates which size is active, or 'Disabled' indicating + that the monitor has been disabled and is not displaying the screen + contents. + + 'rotation' indicates the active rotation. It is set to Rotate_0 + when the monitor is disabled. + 'rate' is the current refresh rate. This is zero when monitor is + disabled, when the refresh rate is unknown or on devices for which + refresh is not relevant. + + 'rotations' contains the set of rotations and reflections supported + by the monitor. + + 'defaultSizeID' is the size the monitor is set to at server reset + time. + + 'sizes' is the list of possible displayed sizes (with rotation set + to Rotate_0). Each size indicates both the linear physical size of + the monitor and the pixel size of the displayed area. + + 'refresh' is the list of refresh rates for each size. Each element + of 'sizes' has a cooresponding element in 'refresh'. An empty list + indicates no known rates, or a device for which refresh is not + relevant. + +RRSetMonitorConfig + drawable: DRAWABLE + monitor: CARD32 + timestamp: TIMESTAMP + config-timestamp: TIMESTAMP + x,y: INT16 + sizeID: SIZEID + rotation: ROTATION + rate: CARD16 + + -> + + status: RRStatus + new-timestamp: TIMESTAMP + config-timestamp: TIMESTAMP + root: WINDOW + subpixelOrder: SUBPIXELORDER + + Errors: Drawable, Value, Match + + If the timestamp in this request is less than the time when + the configuration was last successfully set, the request is + ignored and False returned in success. If the + config-timestamp in this request is not equal to when the + server's screen configurations last changed, the request is + ignored and False returned in success. This could occur if + the screen changed since you last made a RRGetScreenInfo + request, perhaps by a different piece of display hardware + being installed. Rather than allowing an incorrect call to be + executed based on stale data, the server will ignore the + request. + + If rate is zero, the server selects an appropriate rate. + + If the request succeeds, this request sets the screen to the + specified size, rate, rotation and reflection. If the requests + succeeds, the new-time-stamp is returned containing the time + when the screen configuration was changed and config-timestamp + is returned to indicate when the possible screen + configurations were last changed, and success is set to True. + The root window for the screen indicated by the drawable + argument is also returned, along with the subpixel order, to + allow correct subpixel rendering. + + Value errors are generated if the rotation is not an + allowed rotation. Value errors are generated, if, when the + timestamps would allow the operation to succeed, or size-index + are not possible (out of range). 8. Extension Events @@ -436,12 +566,12 @@ A.1 Common Types SETofROTATION - 0x0001 RR_Rotate_0 - 0x0002 RR_Rotate_90 - 0x0004 RR_Rotate_180 - 0x0008 RR_Rotate_270 - 0x0010 RR_Reflect_X - 0x0020 RR_Reflect_Y + 0x0001 Rotate_0 + 0x0002 Rotate_90 + 0x0004 Rotate_180 + 0x0008 Rotate_270 + 0x0010 Reflect_X + 0x0020 Reflect_Y SETofRRSELECTMASK |