summaryrefslogtreecommitdiff
path: root/randrproto.txt
diff options
context:
space:
mode:
Diffstat (limited to 'randrproto.txt')
-rw-r--r--randrproto.txt100
1 files changed, 73 insertions, 27 deletions
diff --git a/randrproto.txt b/randrproto.txt
index ee513e7..20cac75 100644
--- a/randrproto.txt
+++ b/randrproto.txt
@@ -1,5 +1,5 @@
The X Resize, Rotate and Reflect Extension
- Version 1.3.1
+ Version 1.4.0
2009-10-5
Jim Gettys
@@ -371,46 +371,77 @@ SCANOUTPIXMAPINFO { format: PICTFORMAT
compositing process in conjunction with the sprite transforms
described in this extension.
+SCREENFLAG { SetScreenPixmapSize
+ SetScreenSize
+ SetScreenSizeInMillimeters
+ SetScreenCrtcs }
+
+CRTCFLAG { SetCrtcPosition
+ SetCrtcMode
+ SetCrtcRotation
+ SetCrtcOutputs
+ SetCrtcSpritePositionTransform
+ SetCrtcSpriteImageTransform
+ SetCrtcPixmap
+ SetCrtcPixmapPosition }
+
CRTCCONFIG { crtc: CRTC
+ set: SETofCRTCFLAG
x, y: INT16
mode: MODE
rotation: ROTATION
sprite-position-transform: TRANSFORM
sprite-image-transform: TRANSFORM
outputs: LISTofOUTPUT
- pixmap: PIXMAP, None or CurrentScanoutPixmap
+ pixmap: PIXMAP or None
pixmap-x, pixmap-y: INT16 }
- The sprite-position-transform and sprite-image-transform
- values are used as in the RRSetCrtcSpriteTransform request
- position-transform and image-transform parameters.
+ If 'set' includes SetCrtcSpritePositionTransform, then
+ sprite-position-transform is used as in the
+ RRSetCrtcSpriteTransform request position-transform parameter.
- 'pixmap' specifies the origin of the pixel data to be presented on
- 'crtc'. If 'pixmap' is None, then data will be presented from
- the screen pixmap. If 'pixmap' is 'CurrentScanoutPixmap', then
- whatever source is currently in use will remain in use, whether
- that is the screen pixmap or some other allocated scanout pixmap.
+ If 'set' includes SetCrtcSpriteImageTransform, then
+ sprite-image-transform is used as in the
+ RRSetCrtcSpriteTransform request image-transform parameter.
- 'pixmap-x' and 'pixmap-y' specify the origin of the scanout
- data within the pixmap, the area from that location to
- pixmap-x + width-of(mode), pixmap-y + height-of(mode) is what
- will be seen on the connected outputs.
+ If 'set' includes SetCrtcPixmap, then 'pixmap' specifies the
+ origin of the pixel data to be presented on 'crtc'. If
+ 'pixmap' is None, then data will be presented from the screen
+ pixmap.
- The pixmap value must specify a scanout pixmap as created by
- RRCreateScanoutPixmap, or a Match error results.
+ If 'set' includes SetCrtcPixmapPosition, then 'pixmap-x' and
+ 'pixmap-y' specify the origin of the scanout data within the
+ pixmap, the area from that location to pixmap-x +
+ width-of(mode), pixmap-y + height-of(mode) is what will be
+ seen on the connected outputs.
- The specified pixmap must be at least as large as the area to
- be scanned out, or a Match error results.
+ If 'set' includes SetCrtcPixmap, then 'pixmap' must specify a
+ scanout pixmap as created by RRCreateScanoutPixmap or
+ None. Otherwise a Match error results. Furthermore:
- The specified pixmap must have had the specified 'rotation'
- included as a part of its creation paramaeters, or a Match
- error results.
+ * 'pixmap' must be at least as large as the area to be
+ scanned out, or a Match error results.
+
+ * If 'pixmap' is destroyed while still being used as a
+ scanout pixmap, then the associated CRTC will have its
+ scanout pixmap set back to None, the CRTC origin set back
+ to 0,0 (to make sure it fits) and the screen pixmap width
+ and height increased to be at least as big as the current
+ CRTC mode.
+
+ * Future crtc changes that do not change the scanout pixmap
+ will cause an existing scanout pixmap to be resized to be
+ large enough to hold the new mode at the then-current
+ pixmap-x/pixmap-y location.
+
+ If 'set' includes SetCrtcRotation then:
- If 'pixmap' is destroyed while still being used as a scanout
- pixmap, then the associated CRTC will have its scanout pixmap
- set back to None, the CRTC origin set back to 0,0 (to make
- sure it fits) and the screen pixmap width and height increased
- to be at least as big as the current CRTC mode.
+ * Any new or existing scanout pixmap must have had the
+ specified 'rotation' included as a part of its creation
+ parameters, or a Match error results.
+
+ * If no scanout pixmap is in use, then the crtc must support
+ 'rotation' else a Value error results.
❧❧❧❧❧❧❧❧❧❧❧
@@ -1413,6 +1444,7 @@ dynamic changes in the display environment.
┌───
RRSetCrtcConfigs
drawable: DRAWABLE
+ set: SETofSCREENFLAG
screen-pixmap-width: CARD16
screen-pixmap-height: CARD16
screen-width: CARD16
@@ -1426,10 +1458,24 @@ dynamic changes in the display environment.
Errors: Value, Match
This works much like RRSetScreenSize followed by a sequence of
- RRSetCrtcConfig, except that the entire configuration is set
+ RRSetCrtcConfig, except that the entire configuration can be set
in a single operation, either succeeding or failing without
any partial execution.
+ If 'set' includes 'SetScreenPixmapSize', then
+ 'screen-pixmap-width' and 'screen-pixmap-height' specify the
+ new screen pixmap size.
+
+ If 'set' includes 'SetScreenSize', then 'screen-width' and
+ 'screen-height' specify the new screen size.
+
+ If 'set' includes 'SetScreenSizeInMillimeters', then
+ 'width-in-millimeters' and 'height-in-millimeters' specify
+ the new screen physical size.
+
+ If 'set' includes 'SetScreenCrtcs', then 'configs' includes
+ the list of new CRTC configurations.
+
In addition to the pre-1.4 semantics, this request adds the
ability to specific a scanout pixmap for each crtc, and
integrates the 1.4 sprite transform request as well.