.gitignore | 77 ++++ ChangeLog | 283 ++++++++++++++++ Makefile.am | 16 README | 30 + configure.ac | 12 debian/README.source | 73 ++++ debian/changelog | 53 +++ debian/control | 15 debian/rules | 31 - debian/watch | 1 debian/x11proto-randr-dev.install | 2 debian/xsfbs/repack.sh | 32 + debian/xsfbs/xsfbs.sh | 78 ---- randr.h | 23 + randrproto.h | 120 +++++++ randrproto.txt | 640 ++++++++++++++++++++++++++++++-------- 16 files changed, 1226 insertions(+), 260 deletions(-)
New commits: commit 88ac88f5aa5bb895348a127b3041c2f0063d0d4e Author: Julien Cristau <[email protected]> Date: Mon Feb 14 16:34:50 2011 +0100 Upload to experimental diff --git a/debian/changelog b/debian/changelog index b377925..9a7f205 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -x11proto-randr (1.3.99.1-1) UNRELEASED; urgency=low +x11proto-randr (1.3.99.1-1) experimental; urgency=low * New git snapshot. * Remove Andres Salomon and David Nusinow from Uploaders. Thanks for your @@ -6,7 +6,7 @@ x11proto-randr (1.3.99.1-1) UNRELEASED; urgency=low * debian/rules: stop using touch for stampfiles, random whitespace cleanup. * Bump Standards-Version to 3.9.1. - -- Julien Cristau <[email protected]> Mon, 03 Jan 2011 20:17:46 +0100 + -- Julien Cristau <[email protected]> Mon, 14 Feb 2011 16:34:33 +0100 x11proto-randr (1.3.2-1) unstable; urgency=low commit 08612c2d31a70dfe2141417ed2ad00ca6fa98a24 Author: Julien Cristau <[email protected]> Date: Mon Feb 14 16:34:29 2011 +0100 Bump Standards-Version to 3.9.1. diff --git a/debian/changelog b/debian/changelog index b7e9b79..b377925 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,7 @@ x11proto-randr (1.3.99.1-1) UNRELEASED; urgency=low * Remove Andres Salomon and David Nusinow from Uploaders. Thanks for your work! * debian/rules: stop using touch for stampfiles, random whitespace cleanup. + * Bump Standards-Version to 3.9.1. -- Julien Cristau <[email protected]> Mon, 03 Jan 2011 20:17:46 +0100 diff --git a/debian/control b/debian/control index 0ececab..e7c2f3e 100644 --- a/debian/control +++ b/debian/control @@ -8,7 +8,7 @@ Build-Depends: automake, pkg-config, xutils-dev (>= 1:7.5~1) -Standards-Version: 3.8.3 +Standards-Version: 3.9.1 Vcs-Git: git://git.debian.org/git/pkg-xorg/proto/x11proto-randr Vcs-Browser: http://git.debian.org/?p=pkg-xorg/proto/x11proto-randr.git commit 6a0715f5239b6ea64b4a8d53a8656246784b5c5c Author: Julien Cristau <[email protected]> Date: Mon Feb 14 16:33:23 2011 +0100 debian/rules: stop using touch for stampfiles, random whitespace cleanup. diff --git a/debian/changelog b/debian/changelog index 5b1400e..b7e9b79 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,7 @@ x11proto-randr (1.3.99.1-1) UNRELEASED; urgency=low * New git snapshot. * Remove Andres Salomon and David Nusinow from Uploaders. Thanks for your work! + * debian/rules: stop using touch for stampfiles, random whitespace cleanup. -- Julien Cristau <[email protected]> Mon, 03 Jan 2011 20:17:46 +0100 diff --git a/debian/rules b/debian/rules index 1c98497..12d0ea3 100755 --- a/debian/rules +++ b/debian/rules @@ -15,34 +15,29 @@ include debian/xsfbs/xsfbs.mk autogen: autogen-stamp autogen-stamp: dh_testdir - autoreconf -vfi - touch autogen-stamp + >$@ .PHONY: configure configure: configure-stamp configure-stamp: autogen-stamp dh_testdir - mkdir -p build cd build && \ ../configure --prefix=/usr --mandir=\$${prefix}/share/man \ --infodir=\$${prefix}/share/info - touch configure-stamp + >$@ build: build-stamp build-stamp: configure-stamp dh_testdir - cd build && $(MAKE) - - touch build-stamp + >$@ clean: dh_testdir dh_testroot rm -f *-stamp - rm -f config.cache config.log config.status rm -f */config.cache */config.log */config.status rm -f conftest* */conftest* @@ -51,7 +46,6 @@ clean: rm -f aclocal.m4 configure install-sh missing rm -f config.guess config.sub rm -f Makefile.in - dh_clean install: build @@ -59,14 +53,12 @@ install: build dh_testroot dh_clean -k dh_installdirs - cd build && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp PACKAGE=$(PACKAGE) install # Build architecture-independent files here. binary-indep: build install dh_testdir dh_testroot - dh_installdocs dh_installman dh_install --sourcedir=debian/tmp --fail-missing commit f14390b5b12e1bac0ab76feb7606050090812878 Author: Julien Cristau <[email protected]> Date: Mon Feb 14 16:20:22 2011 +0100 Remove Andres Salomon and David Nusinow from Uploaders. Thanks for your work! diff --git a/debian/changelog b/debian/changelog index 320c4fe..5b1400e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,8 @@ -x11proto-randr (1.3.99.1) UNRELEASED; urgency=low +x11proto-randr (1.3.99.1-1) UNRELEASED; urgency=low * New git snapshot. + * Remove Andres Salomon and David Nusinow from Uploaders. Thanks for your + work! -- Julien Cristau <[email protected]> Mon, 03 Jan 2011 20:17:46 +0100 diff --git a/debian/control b/debian/control index 6f45c65..0ececab 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: x11proto-randr Section: x11 Priority: optional Maintainer: Debian X Strike Force <[email protected]> -Uploaders: David Nusinow <[email protected]>, Andres Salomon <[email protected]>, Cyril Brulebois <[email protected]> +Uploaders: Cyril Brulebois <[email protected]> Build-Depends: debhelper (>= 5.0.0), automake, commit 555b493cacdc808a6c7504c6e0ec05e957678d33 Author: Julien Cristau <[email protected]> Date: Mon Feb 14 16:13:03 2011 +0100 Bump changelogs diff --git a/ChangeLog b/ChangeLog index 2318c74..7caf475 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,57 @@ +commit 0d32bb0780db35cec31e423faffa7061ec3e697f +Author: Keith Packard <[email protected]> +Date: Mon Dec 6 22:39:07 2010 -0800 + + Define new semantics for scanout pixmap destruction. + + This is not yet implemented in the X server... + + Signed-off-by: Keith Packard <[email protected]> + +commit 3e28d3098faa1a420cd0eb0474b2959cecc8813a +Author: Keith Packard <[email protected]> +Date: Mon Dec 6 10:01:21 2010 -0800 + + Fix spelling errors, add description of SCANOUTPIXMAPINFO fields. + + Review results from Aaron Plattner. + + Signed-off-by: Keith Packard <[email protected]> + +commit ebab32deea654d2ceb0538177e78d8ad48cf2a82 +Author: Keith Packard <[email protected]> +Date: Sun Dec 5 23:22:26 2010 -0800 + + Add some informative text about the reasons for the PCP and ST bits + + Signed-off-by: Keith Packard <[email protected]> + +commit dd14a2275521b4cc50a588c95cc34cca7db51a91 +Author: Keith Packard <[email protected]> +Date: Sun Dec 5 20:31:18 2010 -0800 + + RandR version 1.4 additions + + This adds the specification and protocol header definitions for the + RandR 1.4 protocol changes, including + + * Per crtc pixmaps and pixmap origins + * Sprite position and image transforms + * SetCrtcConfigs request + + Signed-off-by: Keith Packard <[email protected]> + +commit 1325b011247e52cd8ffd0ca96408d77ea22ffaaa +Author: Keith Packard <[email protected]> +Date: Sun Dec 5 20:30:43 2010 -0800 + + Whitespace cleanups in randrproto.txt + + This just eliminates some ugly space/tab combos + + Signed-off-by: Keith Packard <[email protected]> + Reviewed-by: Cyril Brulebois <[email protected]> + commit 75b7c5feed818291c8ba8ac1ee5b6a6ee4b61851 Author: Alan Coopersmith <[email protected]> Date: Fri Oct 29 23:12:30 2010 -0700 diff --git a/debian/changelog b/debian/changelog index f9906da..320c4fe 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +x11proto-randr (1.3.99.1) UNRELEASED; urgency=low + + * New git snapshot. + + -- Julien Cristau <[email protected]> Mon, 03 Jan 2011 20:17:46 +0100 + x11proto-randr (1.3.2-1) unstable; urgency=low [ Julien Cristau ] commit 0d32bb0780db35cec31e423faffa7061ec3e697f Author: Keith Packard <[email protected]> Date: Mon Dec 6 22:39:07 2010 -0800 Define new semantics for scanout pixmap destruction. This is not yet implemented in the X server... Signed-off-by: Keith Packard <[email protected]> diff --git a/randrproto.txt b/randrproto.txt index e15a798..ee513e7 100644 --- a/randrproto.txt +++ b/randrproto.txt @@ -406,6 +406,12 @@ CRTCCONFIG { crtc: CRTC included as a part of its creation paramaeters, 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. + ❧❧❧❧❧❧❧❧❧❧❧ 6. Extension Initialization commit 3e28d3098faa1a420cd0eb0474b2959cecc8813a Author: Keith Packard <[email protected]> Date: Mon Dec 6 10:01:21 2010 -0800 Fix spelling errors, add description of SCANOUTPIXMAPINFO fields. Review results from Aaron Plattner. Signed-off-by: Keith Packard <[email protected]> diff --git a/randrproto.h b/randrproto.h index 54abafc..ba9b703 100644 --- a/randrproto.h +++ b/randrproto.h @@ -897,6 +897,7 @@ typedef struct { } xRRSetPanningReply; #define sz_xRRSetPanningReply 32 +#undef PictFormat #undef RRModeFlags #undef RRCrtc #undef RRMode diff --git a/randrproto.txt b/randrproto.txt index f700a84..e15a798 100644 --- a/randrproto.txt +++ b/randrproto.txt @@ -131,8 +131,7 @@ underlying hardware to clients • Per-crtc pixmaps. This provides for multiple scan-out buffers which applications can create and assign to arbitrary collections - of crtcs. These pixmaps can be associated with a window for use - with OpenGL or drawn to directly. + of crtcs. • Sprite position and image transforms. These provide a projective transform for both the hot spot location and the sprite image @@ -356,6 +355,22 @@ SCANOUTPIXMAPINFO { format: PICTFORMAT maxWidth, maxHeight: CARD16 rotations: SETofROTATION } + 'format' is the format of the pixels within the scanout + pixmap. Only 'Direct' formats are supported, this will never + be an 'Indexed' format. + + 'maxWidth' and 'maxHeight' define the largest supported + scanout pixmap. There is no minimum size; scanout pixmaps down + to 1x1 may be created. + + 'rotations' lists the set of rotations which can be provided + without additional latency or memory usage within the + environment. This typically means that they are supported + directly by the hardware. It is expected that a compositing + manager will perform other transforms as a part of the + compositing process in conjunction with the sprite transforms + described in this extension. + CRTCCONFIG { crtc: CRTC x, y: INT16 mode: MODE @@ -363,7 +378,7 @@ CRTCCONFIG { crtc: CRTC sprite-position-transform: TRANSFORM sprite-image-transform: TRANSFORM outputs: LISTofOUTPUT - pixmap: PIXMAP, None or CurrenScanoutPixmap + pixmap: PIXMAP, None or CurrentScanoutPixmap pixmap-x, pixmap-y: INT16 } The sprite-position-transform and sprite-image-transform @@ -373,7 +388,7 @@ CRTCCONFIG { crtc: CRTC '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 current in use will remain in use, whether + whatever source is currently in use will remain in use, whether that is the screen pixmap or some other allocated scanout pixmap. 'pixmap-x' and 'pixmap-y' specify the origin of the scanout commit ebab32deea654d2ceb0538177e78d8ad48cf2a82 Author: Keith Packard <[email protected]> Date: Sun Dec 5 23:22:26 2010 -0800 Add some informative text about the reasons for the PCP and ST bits Signed-off-by: Keith Packard <[email protected]> diff --git a/randrproto.txt b/randrproto.txt index 0d537ac..f700a84 100644 --- a/randrproto.txt +++ b/randrproto.txt @@ -134,12 +134,44 @@ underlying hardware to clients of crtcs. These pixmaps can be associated with a window for use with OpenGL or drawn to directly. + • Sprite position and image transforms. These provide a projective + transform for both the hot spot location and the sprite image + itself for each CRTC. + • RRSetCrtcConfigs request. This supplies a set of crtc configurations to the server that must be applied together or not at all. This can reduce screen flicker while also providing the server a complete configuration for appropriate resource management. +The first two additions, per-crtc pixmaps and sprite transforms are +designed to solve two problems: + + 1) Screen transforms. The software transform code in the X server + uses a shadow frame buffer, adding another copy to every graphics + operation. Worse, the server has no idea about when clients are + done drawing a frame, so the user gets additional latency and + judder. + + The goal is to move this operation out to the compositing manager + which already deals with an extra copy of the frame buffer for + many operations. Have the compositing manager create and draw to a + separate pixmap for scanout. It can perform whatever transforms + are required to get the image in the right orientation for the + user. + + 2) Hardware scanout engine size limits. With a single scanout buffer + for the entire screen, it's possible for the user to ask for a + configuration which requires that scanout buffer to be larger than + the hardware is capable of scanning out from. Again, having the + compositing manager create a pixmap for each CRTC will allow for + any configuration where monitor position within the virtual space + isn't limited by the scanout limits. + +In both of these cases, the Sprite transforms are necessary to ensure +that the sprite appears at the desired spot on each CRTC and with the +right shape. + 1.99 Acknowledgements Our thanks to the contributors to the design found on the xpert mailing commit dd14a2275521b4cc50a588c95cc34cca7db51a91 Author: Keith Packard <[email protected]> Date: Sun Dec 5 20:31:18 2010 -0800 RandR version 1.4 additions This adds the specification and protocol header definitions for the RandR 1.4 protocol changes, including * Per crtc pixmaps and pixmap origins * Sprite position and image transforms * SetCrtcConfigs request Signed-off-by: Keith Packard <[email protected]> diff --git a/configure.ac b/configure.ac index 4ef4bb6..0c71460 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ dnl dnl Process this file with autoconf to create configure. AC_PREREQ([2.60]) -AC_INIT([RandrProto], [1.3.2], +AC_INIT([RandrProto], [1.4.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_MAINTAINER_MODE diff --git a/randr.h b/randr.h index 1ee95f9..4480f5c 100644 --- a/randr.h +++ b/randr.h @@ -40,11 +40,11 @@ typedef unsigned long XRandrModeFlags; #define RANDR_NAME "RANDR" #define RANDR_MAJOR 1 -#define RANDR_MINOR 3 +#define RANDR_MINOR 4 #define RRNumberErrors 3 #define RRNumberEvents 2 -#define RRNumberRequests 32 +#define RRNumberRequests 37 #define X_RRQueryVersion 0 /* we skip 1 to make old clients fail pretty immediately */ @@ -92,6 +92,13 @@ typedef unsigned long XRandrModeFlags; #define RRTransformScaleDown (1L << 2) #define RRTransformProjective (1L << 3) +/* V1.4 additions */ +#define X_RRQueryScanoutPixmaps 32 +#define X_RRCreateScanoutPixmap 33 +#define X_RRSetCrtcSpriteTransform 34 +#define X_RRGetCrtcSpriteTransform 35 +#define X_RRSetCrtcConfigs 36 + /* Event selection bits */ #define RRScreenChangeNotifyMask (1L << 0) /* V1.2 additions */ @@ -149,6 +156,9 @@ typedef unsigned long XRandrModeFlags; #define BadRRCrtc 1 #define BadRRMode 2 +/* new in 1.4 protocol */ +#define RR_CurrentScanoutPixmap 1 /* current scanout pixmap in RRSetCrtcConfigs */ + /* Conventional RandR output properties */ #define RR_PROPERTY_BACKLIGHT "Backlight" diff --git a/randrproto.h b/randrproto.h index 3b98a9f..54abafc 100644 --- a/randrproto.h +++ b/randrproto.h @@ -49,6 +49,7 @@ #define RRMode CARD32 #define RRCrtc CARD32 #define RRModeFlags CARD32 +#define PictFormat CARD32 #define Rotation CARD16 #define SizeID CARD16 @@ -646,6 +647,124 @@ typedef struct { #define sz_xRRGetOutputPrimaryReply 32 /* + * Additions for 1.4 + */ + +typedef struct { + PictFormat format B32; + CARD16 maxWidth B16, maxHeight B16; + Rotation rotations B16; + CARD16 pad0 B16; + CARD32 pad1 B32; +} xRRScanoutPixmapInfo; +#define sz_xRRScanoutPixmapInfo 16 + +typedef struct { + RRCrtc crtc B32; + INT16 x B16, y B16; + RRMode mode B32; + Rotation rotation B16; + CARD16 nOutput B16; + xRenderTransform spritePositionTransform; + xRenderTransform spriteImageTransform; + Pixmap pixmap B32; + INT16 xPixmap B16, yPixmap B16; +} xRRCrtcConfig; +#define sz_xRRCrtcConfig (2*sz_xRenderTransform + 24) + +typedef struct { + CARD8 reqType; + CARD8 randrReqType; + CARD16 length B16; + Drawable drawable B32; +} xRRQueryScanoutPixmapsReq; +#define sz_xRRQueryScanoutPixmapsReq 8 + +typedef struct { + BYTE type; + CARD8 pad; + CARD16 sequenceNumber B16; + CARD32 length B32; + CARD32 pad0 B32; + CARD32 pad1 B32; + CARD32 pad2 B32; + CARD32 pad3 B32; + CARD32 pad4 B32; + CARD32 pad5 B32; +} xRRQueryScanoutPixmapsReply; +#define sz_xRRQueryScanoutPixmapsReply 32 + +typedef struct { + CARD8 reqType; + CARD8 randrReqType; + CARD16 length B16; + Pixmap pid B32; + Drawable drawable B32; + CARD16 width B16, height B16; + PictFormat format B32; + Rotation rotations B16; + CARD16 pad B16; +} xRRCreateScanoutPixmapReq; +#define sz_xRRCreateScanoutPixmapReq 24 + +typedef struct { + CARD8 reqType; + CARD8 randrReqType; + CARD16 length B16; + RRCrtc crtc B32; + xRenderTransform positionTransform; + xRenderTransform imageTransform; +} xRRSetCrtcSpriteTransformReq; +#define sz_xRRSetCrtcSpriteTransformReq (2*sz_xRenderTransform + 8) + +typedef struct { + CARD8 reqType; + CARD8 randrReqType; + CARD16 length B16; + RRCrtc crtc B32; +} xRRGetCrtcSpriteTransformReq; +#define sz_xRRGetCrtcSpriteTransformReq 8 + +typedef struct { + BYTE type; + CARD8 pad; + CARD16 sequenceNumber B16; + CARD32 length B32; + xRenderTransform positionTransform; + xRenderTransform imageTransform; +} xRRGetCrtcSpriteTransformReply; +#define sz_xRRGetCrtcSpriteTransformReply (2*sz_xRenderTransform + 8) + +typedef struct { + CARD8 reqType; + CARD8 randrReqType; + CARD16 length B16; + Drawable drawable B32; + CARD16 screenPixmapWidth B16, screenPixmapHeight B16; + CARD16 screenWidth B16, screenHeight B16; + CARD32 widthInMillimeters B32; + CARD32 heightInMillimeters B32; + CARD16 nConfigs B16; + CARD16 pad0 B16; + CARD32 pad1 B32; +} xRRSetCrtcConfigsReq; +#define sz_xRRSetCrtcConfigsReq 32 + +typedef struct { + BYTE type; + CARD8 status; + CARD16 sequenceNumber B16; + CARD32 length B32; + CARD32 pad0 B32; + CARD32 pad1 B32; + CARD32 pad2 B16; + CARD32 pad3 B32; + CARD32 pad4 B32; + CARD32 pad5 B32; +} xRRSetCrtcConfigsReply; +#define sz_xRRSetCrtcConfigsReply 32 + +/* * event */ typedef struct { diff --git a/randrproto.txt b/randrproto.txt index 9f3d4a1..0d537ac 100644 --- a/randrproto.txt +++ b/randrproto.txt @@ -124,7 +124,23 @@ following features are added in this version: • Panning. It was removed with RandR 1.2 because the old semantics didn't fit any longer. With RandR 1.3 panning can be specified per crtc. -1.1 Acknowledgements +1.4 Introduction to version 1.4 of the extension + +Version 1.4 adds a couple more capabilities to further expose the +underlying hardware to clients + + • Per-crtc pixmaps. This provides for multiple scan-out buffers + which applications can create and assign to arbitrary collections + of crtcs. These pixmaps can be associated with a window for use + with OpenGL or drawn to directly. + + • RRSetCrtcConfigs request. This supplies a set of + crtc configurations to the server that must be applied together + or not at all. This can reduce screen flicker while also + providing the server a complete configuration for appropriate + resource management. + +1.99 Acknowledgements Our thanks to the contributors to the design found on the xpert mailing list, in particular: @@ -302,6 +318,49 @@ REFRESH { rates: LISTofCARD16 } ❧❧❧❧❧❧❧❧❧❧❧ +5.4. Protocol Types added in version 1.4 of the extension + +SCANOUTPIXMAPINFO { format: PICTFORMAT + maxWidth, maxHeight: CARD16 + rotations: SETofROTATION } + +CRTCCONFIG { crtc: CRTC + x, y: INT16 + mode: MODE + rotation: ROTATION + sprite-position-transform: TRANSFORM + sprite-image-transform: TRANSFORM + outputs: LISTofOUTPUT + pixmap: PIXMAP, None or CurrenScanoutPixmap + 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. + + '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 current in use will remain in use, whether + that is the screen pixmap or some other allocated scanout pixmap. + + '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 pixmap value must specify a scanout pixmap as created by + RRCreateScanoutPixmap, or a Match error results. + + The specified pixmap must be at least as large as the area to + be scanned out, or a Match error results. + + The specified pixmap must have had the specified 'rotation' + included as a part of its creation paramaeters, or a Match + error results. + + ❧❧❧❧❧❧❧❧❧❧❧ + 6. Extension Initialization The name of this extension is "RANDR". @@ -1238,6 +1297,92 @@ dynamic changes in the display environment. ❧❧❧❧❧❧❧❧❧❧❧ +7.3. Extension Requests added in version 1.4 of the extension. + +┌─── + RRQueryScanoutPixmaps + window: WINDOW + ▶ + infos: LISTofSCANOUTPIXMAPINFO +└─── + Errors: Window + + This request returns information about the server support for + alternate scanout pixmaps. For each pictformat, there is a set + of rotations and a maximum supported size. The rotations here + are those provided by the scanout hardware itself, not by + software emulation. + +┌─── + RRCreateScanoutPixmap + pixmap: PIXMAP + drawable: DRAWABLE + width, height: CARD16 + format: PICTFORMAT + rotations: SETofROTATION +└─── + Errors: Drawable, Match, Value + + Creates a pixmap which can subsequently be used as a scanout + buffer for the screen associated with 'drawable'. 'rotations' + is the set of rotation values which may be used with the + resulting scanout buffer when it is associated with a CRTC. + + 'format' must be one of the supported scanout formats, or a + Match error results. + + 'width' and 'height' must be within the supported range for + the specified format or a Value error results. + + 'rotations' must be a subset of those supported for the + specified format or a Match error results. + +┌─── + RRSetCrtcSpriteTransform + crtc: CRTC + position-transform: TRANSFORM + image-transform: TRANSFORM +└─── + Sets the sprite transforms for the specified crtc, any sprites + presented on this crtc will have their positions transformed + by the position-transform matrix. Sprite images displayed on the crtc + will be transformed by the image-transform matrix. + +┌─── + RRGetCrtcSpriteTransform + crtc: CRTC + ▶ + position-transform: TRANSFORM + image-transform: TRANSFORM +└─── + Gets the sprite transforms for the specified crtc. + +┌─── + RRSetCrtcConfigs + drawable: DRAWABLE + screen-pixmap-width: CARD16 + screen-pixmap-height: CARD16 + screen-width: CARD16 + screen-height: CARD16 + width-in-millimeters: CARD32 + height-in-millimeters: CARD32 + configs: LISTofCRTCCONFIG + ▶ + status: RRCONFIGSTATUS +└─── + Errors: Value, Match + + This works much like RRSetScreenSize followed by a sequence of + RRSetCrtcConfig, except that the entire configuration is set + in a single operation, either succeeding or failing without + any partial execution. + + 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. + + ❧❧❧❧❧❧❧❧❧❧❧ + 8. Extension Events Clients MAY select for ConfigureNotify on the root window to be commit 1325b011247e52cd8ffd0ca96408d77ea22ffaaa Author: Keith Packard <[email protected]> Date: Sun Dec 5 20:30:43 2010 -0800 Whitespace cleanups in randrproto.txt This just eliminates some ugly space/tab combos Signed-off-by: Keith Packard <[email protected]> Reviewed-by: Cyril Brulebois <[email protected]> diff --git a/randrproto.txt b/randrproto.txt index 016532c..9f3d4a1 100644 --- a/randrproto.txt +++ b/randrproto.txt @@ -29,14 +29,14 @@ protocol described here, as it has been overtaken by events. These events include: ► Modern toolkits (in this case, GTK+ 2.x) have progressed to the point - of implementing migration between screens of arbitrary depths + of implementing migration between screens of arbitrary depths ► The continued advance of Moore's law has made limited amounts of VRAM - less of an issue, reducing the pressure to implement depth switching + less of an issue, reducing the pressure to implement depth switching on laptops or desktop systems ► The continued decline of legacy toolkits whose design would have - required depth switching to support migration + required depth switching to support migration ► The lack of depth switching implementation experience in the - intervening time, due to events beyond our control + intervening time, due to events beyond our control Additionally, the requirement to support depth switching might complicate other re-engineering of the device independent part of the @@ -138,7 +138,7 @@ Thomas Winischhofer for the hardware-accelerated SiS rotation implementation Matthew Tippett and Kevin Martin for splitting outputs and CRTCs to more fully expose what video hardware can do - ❧❧❧❧❧❧❧❧❧❧❧ + ❧❧❧❧❧❧❧❧❧❧❧ 2. Screen change model @@ -182,7 +182,7 @@ pop-up menus and other pop up windows will position themselves correctly in the face of screen configuration changes (the issue is ensuring that pop-ups are visible on the reconfigured screen). - ❧❧❧❧❧❧❧❧❧❧❧ + ❧❧❧❧❧❧❧❧❧❧❧ 3. Data Types @@ -190,7 +190,7 @@ The subpixel order is shared with the Render extension, and is documented there. The only datatype defined is the screen size, defined in the normal (0 degree) orientation. - ❧❧❧❧❧❧❧❧❧❧❧ + ❧❧❧❧❧❧❧❧❧❧❧ 4. Errors @@ -203,7 +203,7 @@ CRTC Mode A value for a MODE argument does not name a defined MODE. - ❧❧❧❧❧❧❧❧❧❧❧ + ❧❧❧❧❧❧❧❧❧❧❧ 5. Protocol Types @@ -266,11 +266,11 @@ CONNECTION { Connected, Disconnected, UnknownConnection } connected to a monitor or other presentation device. SUBPIXELORDER { SubPixelUnknown The subpixel order uses the Render - SubPixelHorizontalRGB extensions definitions; they are here - SubPixelHorizontalBGR only for convenience. - SubPixelVerticalRGB - SubPixelVerticalBGR - SubPixelNone } + SubPixelHorizontalRGB extensions definitions; they are here + SubPixelHorizontalBGR only for convenience. + SubPixelVerticalRGB + SubPixelVerticalBGR + SubPixelNone } SCREENSIZE { widthInPixels, heightInPixels: CARD16 widthInMillimeters, heightInMillimeters: CARD16 } @@ -292,15 +292,15 @@ MODEFLAG { HSyncPositive MODEINFO { id: MODE name: STRING - width, height: CARD16 - dotClock: CARD32 - hSyncStart, hSyncEnd, hTotal, hSkew: CARD16 - vSyncStart, vSyncEnd, vTotal: CARD16 - modeFlags: SETofMODEFLAG } + width, height: CARD16 + dotClock: CARD32 + hSyncStart, hSyncEnd, hTotal, hSkew: CARD16 + vSyncStart, vSyncEnd, vTotal: CARD16 + modeFlags: SETofMODEFLAG } REFRESH { rates: LISTofCARD16 } - ❧❧❧❧❧❧❧❧❧❧❧ + ❧❧❧❧❧❧❧❧❧❧❧ 6. Extension Initialization @@ -323,7 +323,7 @@ The name of this extension is "RANDR". It is the clients responsibility to ensure that the server supports a version which is compatible with its expectations. - ❧❧❧❧❧❧❧❧❧❧❧ + ❧❧❧❧❧❧❧❧❧❧❧ 7. Extension Requests @@ -564,7 +564,7 @@ dynamic changes in the display environment. name: STRING connection: CONNECTION subpixel-order: SUBPIXELORDER - widthInMillimeters, heightInMillimeters: CARD32 + widthInMillimeters, heightInMillimeters: CARD32 crtcs: LISTofCRTC clones: LISTofOUTPUT modes: LISTofMODE @@ -619,9 +619,9 @@ dynamic changes in the display environment. ┌─── RRListOutputProperties - output:OUTPUT + output:OUTPUT ▶ - atoms: LISTof ATOM + atoms: LISTof ATOM └─── Errors: Output @@ -633,7 +633,7 @@ dynamic changes in the display environment. output: OUTPUT property: ATOM ▶ - pending: BOOL + pending: BOOL range: BOOL immutable: BOOL valid-values: LISTofINT32 @@ -663,7 +663,7 @@ dynamic changes in the display environment. RRConfigureOutputProperty output: OUTPUT property: ATOM - pending: BOOL + pending: BOOL range: BOOL valid-values: LISTofINT32 └─── @@ -680,7 +680,7 @@ dynamic changes in the display environment. ┌─── RRChangeOutputProperty - output: OUTPUT + output: OUTPUT property, type: ATOM format: {8, 16, 32} mode: { Replace, Prepend, Append } @@ -717,7 +717,7 @@ dynamic changes in the display environment. ┌─── RRDeleteOutputProperty - output: OUTPUT + output: OUTPUT property: ATOM └─── Errors: Atom, Output @@ -728,7 +728,7 @@ dynamic changes in the display environment. -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

