update to randrproto 1.3.0.

This commit is contained in:
matthieu 2009-05-02 15:19:40 +00:00
parent 5c48ead90c
commit 997ce82af1
7 changed files with 1525 additions and 50 deletions

700
proto/randrproto/ChangeLog Normal file
View File

@ -0,0 +1,700 @@
commit 94e22fecc66590f81ca280517505c721a5f54497
Author: Matthias Hopf <mhopf@suse.de>
Date: Fri Mar 6 15:03:09 2009 +0100
Bump to 1.3.0
commit 5cc58adb620d37694a9d57cd26c40b4cb2d1de68
Author: Matthias Hopf <mhopf@suse.de>
Date: Wed Feb 25 17:08:45 2009 +0100
Bump to 1.2.99.4
commit 7bd01756e684bb841f32fa30832eb7980f92ac9c
Author: Adam Jackson <ajax@redhat.com>
Date: Tue Feb 17 13:58:19 2009 -0500
Zero reply from GetPanning means panning not supported.
Don't throw BadRRCrtc for this case, that's just mean.
commit 1c7e20d115bc470479f32afd703ca7966754c54f
Author: Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>
Date: Tue Jan 27 20:06:28 2009 -0200
Janitor: Correct make distcheck and dont distribute autogen.sh
commit 1ff5e2cdfa2636317099a0917c9819ff4a81b025
Author: Maarten Maathuis <madman2003@gmail.com>
Date: Tue Dec 16 23:35:49 2008 +0100
Fix typo in 83f3f29dd3ac5d3875b5edef5805d6adb6a02698.
commit 83f3f29dd3ac5d3875b5edef5805d6adb6a02698
Author: Matthias Hopf <mhopf@suse.de>
Date: Tue Dec 16 18:20:00 2008 +0100
Add standard property name defines.
commit 6a480445e94c39df2bc9663e7590ab41cd17c465
Author: Matthias Hopf <mhopf@suse.de>
Date: Tue Dec 16 18:13:48 2008 +0100
Should read "EDID", not "EdidData".
commit 2aae5ec72ea285a051deaae98515587e1c77d7a5
Author: Matthias Hopf <mhopf@suse.de>
Date: Tue Dec 16 18:09:08 2008 +0100
Add description of standard properties.
commit 3fdbdc2b0a971db7497c6e03e215fd19ec400ce9
Author: Matthias Hopf <mhopf@suse.de>
Date: Fri Dec 12 12:41:21 2008 +0100
Bump to 1.2.99.3
commit 0c1527d2e89a807e54c549e44798e2cf63fafca2
Author: Matthias Hopf <mhopf@suse.de>
Date: Thu Dec 11 17:15:15 2008 +0100
Panning tracking areas describe full screen if set to 0.
commit d904495a4cbd66850dc03d32f223aaaf8425f077
Author: Adam Jackson <ajax@redhat.com>
Date: Wed Dec 10 11:15:48 2008 -0500
Add [GS]etOutputPrimary
commit 1334866b4aa025bce745140aa0f71f6493408ffa
Merge: ad65017... e719120...
Author: Keith Packard <keithp@keithp.com>
Date: Tue Dec 9 20:59:47 2008 -0800
Merge commit 'origin/master'
commit e71912062f3985dd2f4d7b37e415b4a614b51d9b
Author: Matthias Hopf <mhopf@suse.de>
Date: Mon Dec 8 14:40:07 2008 +0100
Add unicode art pictures for panning.
commit 19a851fc85192906586138c5b17740ba28328eaa
Author: Matthias Hopf <mhopf@suse.de>
Date: Thu Dec 4 15:45:23 2008 +0100
Bump to 1.2.99.2
commit fb1f243716282f442235323834fec50aab7fe2f7
Author: Matthias Hopf <mhopf@suse.de>
Date: Thu Dec 4 15:44:12 2008 +0100
Nuke config-timestamp for panning. Specifying panning update on screen size change.
commit 425468e9a29071823316bfc027bc80eb20acc61e
Author: Matthias Hopf <mhopf@suse.de>
Date: Thu Dec 4 12:57:33 2008 +0100
Add panning to versioning information.
commit 419a0f20746d9f3e8962ea3294568343d9877b2c
Author: Matthias Hopf <mhopf@suse.de>
Date: Fri Nov 28 18:30:22 2008 +0100
Panning protocol bits description
commit 6b5d4ce8943c1d39392a0536d426fe27a9161b04
Author: Matthias Hopf <mhopf@suse.de>
Date: Fri Nov 28 18:29:19 2008 +0100
Panning protocol description
commit abe956221670598a5fd0f77107a3471c2fcf84df
Author: Matthias Hopf <mhopf@suse.de>
Date: Fri Nov 28 17:22:23 2008 +0100
Panning protocol extension
commit 546906dbe29816adaa6a35277266d79fbe131d0c
Author: Adam Jackson <ajax@redhat.com>
Date: Wed Dec 3 13:36:00 2008 -0500
Indent CRTC transform docs to match the rest of the requests.
commit 5d5e4cff8c69d36d10e682d59c9a9005a8b5ad18
Author: Adam Jackson <ajax@redhat.com>
Date: Wed Dec 3 12:02:18 2008 -0500
More doc for CRTC transforms
commit ad6501790bbaff528cf247df24ddb7de27576a11
Author: Keith Packard <keithp@keithp.com>
Date: Wed Nov 26 15:47:18 2008 -0800
Remove duplicate GetScreenResourcesCurrent declarations
Signed-off-by: Keith Packard <keithp@keithp.com>
commit 10bff0be50cf5cf314960bb85c472f1c63d37755
Author: Keith Packard <keithp@keithp.com>
Date: Wed Nov 26 09:24:36 2008 -0800
Update to version 1.2.99.1
commit 6c17940a7960885695aa6033de58c3cd2bb6fb79
Merge: c998b46... 8793429...
Author: Keith Packard <keithp@keithp.com>
Date: Mon Nov 24 16:22:11 2008 -0800
Merge branch 'transform-proposal'
Conflicts:
randr.h
randrproto.h
randrproto.txt
commit 8793429f3d9d7cdf16be118ce05a68af6531568e
Author: Keith Packard <keithp@keithp.com>
Date: Mon Nov 24 16:01:55 2008 -0800
Describe projective transform additions in Introduction
Signed-off-by: Keith Packard <keithp@keithp.com>
commit c998b4658d735e5b2d7aa6983d732d40cc802823
Author: Adam Jackson <ajax@redhat.com>
Date: Mon Nov 24 16:29:58 2008 -0500
GSRC added in 1.3, not 1.2
commit 0d334c880396b9ef67ed899ad228cc693aad6a28
Author: Adam Jackson <ajax@redhat.com>
Date: Mon Nov 24 16:19:43 2008 -0500
Fix RRNumberRequests
commit 2c0635eed5ae418ca278d99e044f583d54273097
Author: Adam Jackson <ajax@redhat.com>
Date: Mon Nov 24 15:54:09 2008 -0500
Add GetScreenResourcesCurrent
commit 4a960ba3db3c3f8bdf3d519d263f910b6107b9ff
Author: Julien Cristau <jcristau@debian.org>
Date: Fri Jul 11 17:12:22 2008 +0200
spec: add missing list of clones to RRGetOutputInfo reply
commit 2be5a52d5f6bdd2aa70efcb06bd99a149c6db6ba
Author: Adam Jackson <ajax@redhat.com>
Date: Wed Jul 2 15:34:31 2008 -0400
randrproto 1.2.2
commit 9ab3d5cca3cf9a76c6873007b8d4345c838cc297
Author: Adam Jackson <ajax@redhat.com>
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.
commit 2d09f9cac379c74f492b528a8aa2ac3b5997d617
Author: Keith Packard <keithp@keithp.com>
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.
commit aa5cd18a9f84aa075ffa7f70e6591b70b093119f
Author: Keith Packard <keithp@keithp.com>
Date: Sat Mar 15 00:32:35 2008 -0700
Add filters to CRTC transforms.
This allows scaling transforms to use bilinear filtering if desired.
commit 329b2068c1505dbc2eef7cc245b02c3bbf9c67ff
Author: Keith Packard <keithp@keithp.com>
Date: Fri Feb 15 15:49:35 2008 -0800
Add Transform request proposal for 1.3
commit 2df8499d24d15bfca3c928b681f64b6e8a05f0af
Author: James Cloos <cloos@jhcloos.com>
Date: Thu Dec 6 16:39:05 2007 -0500
Replace static ChangeLog with dist-hook to generate from git log
commit 3243afaa593f95bb89b1381dac2b920111ce36b1
Author: Jakob Bornecrantz <wallbraker@gmail.com>
Date: Tue Apr 17 14:25:38 2007 -0700
Correct a copy'n'paste error in RRGetOutputInfo spec text.
commit d1c5739ae19f7cc01a6a5603d3fae93e1f9ee3d1
Author: Alan Coopersmith <alan.coopersmith@sun.com>
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
commit aada204b1fc9ba6461efad3fe6bd032ee98536e1
Author: Keith Packard <keithp@neko.keithp.com>
Date: Sun Feb 18 21:02:30 2007 -0800
Bump version to 1.2.1.
And add copyright to configure.ac file
commit 0e689cecd65f420ec175046e4bb2b5386bf7b7c5
Author: Keith Packard <keithp@neko.keithp.com>
Date: Sun Feb 18 21:02:10 2007 -0800
Fix wording about requesting ConfigureNotify events.
commit 34ebf25a88972afdc561f4525d02b3fe41ac84bf
Author: Eric Anholt <eric@anholt.net>
Date: Thu Feb 1 15:08:10 2007 -0800
Fix the size of the padding fields of xRRGetCrtcGamma.
commit 615f8077c55593a2001ca4c84ff3ede5c2c2842a
Author: Eric Anholt <eric@anholt.net>
Date: Tue Jan 9 09:40:47 2007 -0800
Install the randr protocol description.
commit 335639ba8f0df1364a6807187ba17eeae5b187e4
Author: Keith Packard <keithp@neko.keithp.com>
Date: Thu Nov 30 13:25:35 2006 -0800
More bugs found by Ian Osgood during the XCB work.
ListOutputProperties has no nProperties field.
Pad fields not mentioned in Gamma requests.
sz_xRROUtputChangeNotifyEvent -> sz_xRROutputChangeNotifyEvent
commit 504556a9f886c84798ae8e0e46896a7c74b95c61
Merge: c27ece2... 3d521b3...
Author: Keith Packard <keithp@neko.keithp.com>
Date: Thu Nov 30 09:44:20 2006 -0800
Merge branch 'multi-monitor'
commit 3d521b3d38d10c5ec660d13514ef3e626bef90fa
Author: Keith Packard <keithp@neko.keithp.com>
Date: Thu Nov 30 09:43:10 2006 -0800
Fix padding bugs discovered in XCB work
commit c27ece25924115448bf9e1dc461d5e7f4112f112
Merge: 3305f63... 7363d44...
Author: Eric Anholt <eric@anholt.net>
Date: Mon Nov 27 15:31:33 2006 -0800
Merge branch 'multi-monitor'
This brings in the changes for RandR 1.2 protocol.
commit 7363d448c77c2d2ec2928d9d4bc41aac1c2d36b7
Author: Keith Packard <keithp@neko.keithp.com>
Date: Fri Nov 24 13:45:25 2006 -0800
Use BYTE for one-byte values. #undef Drawable needed.
commit a86f4b9442a48a3049e03a4c7d4fd022a860bf01
Author: Keith Packard <keithp@neko.keithp.com>
Date: Fri Nov 24 13:44:55 2006 -0800
Create Properties when configured. Pending defaults to Current
Change property semantics to create them with empty value
when they are configured.
When clients request the Pending value of a property without any pending
vlaue, the current value is returned instead.
commit af852261efa5eb7f8d16e3e90b8832bf66d93de7
Author: Keith Packard <keithp@neko.keithp.com>
Date: Mon Nov 20 20:58:16 2006 -0800
Change properties to have a pending value and report valid values.
Pending values are transferred to current values at mode set, allowing a
queue of values to accrue in preparation for the modeset operation while
still reporting valid 'current' values for applications.
The set of valid values is also available so applications can present
a reasonable list to the user during configuration.
I renumbered a bunch of requests to keep property requests sequential.
commit cdc282c2995dc17dee97c6da24a9705478cf792e
Author: Keith Packard <keithp@neko.keithp.com>
Date: Thu Nov 16 08:50:49 2006 -0800
Remove output options. Clean up other sizes.
Output options will be controlled by properties instead.
Also found a few instances in randrproto.txt using the wrong
size for MODEINFO.
commit 96977842d01220bd4a294375c669b26ff30275d1
Author: Keith Packard <keithp@neko.keithp.com>
Date: Wed Nov 1 11:50:50 2006 -0800
Fix RRNumberErrors, start adding standard property names
commit 0e858436af67256c0af49317183df4bf8092183c
Author: Keith Packard <keithp@mandolin.keithp.com>
Date: Wed Nov 1 00:23:37 2006 -0800
Move physical size information from mode to output.
Modes are stored in CRTCs which have no physical size.
Outputs have a physical size which can change, both in response
to mode changes as well as (potentially) other factors.
Placing the physical size information in the output also permits clone
mode to work across monitors of differing physical size.
commit 369d4e7d2030c707cf2ce37d06c1d23b0570910c
Author: Keith Packard <keithp@neko.keithp.com>
Date: Wed Oct 4 20:03:35 2006 -0700
Remove mode origins. Add preferred mode count.
Switched from identifying source of mode line to listing which modes are
preferred by each output. This enables better CRTC sharing by making modes
less arbitrarily different.
commit 3c354e7245dd7830b5600716185017831aff1316
Author: Keith Packard <keithp@guitar.keithp.com>
Date: Wed Oct 4 14:51:48 2006 -0700
Get rid of mode origins.
commit ee843ac7077f5dcae677ad1b7c794abb0b89e111
Author: Keith Packard <keithp@guitar.keithp.com>
Date: Tue Oct 3 21:02:39 2006 -0700
Add mode origins and output options.
Mode origins indicate the source of the mode information, from VESA timings,
user config or whatever.
Output options currently include only panel fitting options; more may be
added later (this field is 32 bits wide)
commit d6c9bdd0e6713a8c4dff53e88bd820ff1140758c
Author: Keith Packard <keithp@guitar.keithp.com>
Date: Tue Oct 3 11:01:56 2006 -0700
Add mode origins and output options.
Also document non-obvious defined types. Eliminate mode options.
commit 61d60a93dc0c827ef970f21f6b80099cc6c958f1
Author: Keith Packard <keithp@guitar.keithp.com>
Date: Tue Sep 19 16:33:40 2006 -0700
Update package version to 1.2.0. Fix various goofs found by building stuff.
commit ce292d7cad17be4b13e4b7fad27b0ecbed101689
Author: Keith Packard <keithp@neko.keithp.com>
Date: Sun Sep 17 23:41:55 2006 -0700
Fix various random typos found while attempting to use header files
Fix RRNumberRequests
Rename errors to include RR to avoid conflicting with Xi.
Add RR to various request/reply structs (oops).
Remove nOutputs from SetCrtcConfigReq -- length is sufficient.
Remove bogus members from SetCrtcConfigReply.
Add MODEOPTION. Document protocol error encoding.
commit d6992dd3b7fcf22e4d670b29e8d0e2aba0d8e81d
Author: Keith Packard <keithp@neko.keithp.com>
Date: Fri Sep 15 15:41:02 2006 -0700
Add CONNECTION values to spec and header.
Missing CONNECTION values in encoding and header file.
commit e9a5a489acd591ff53823b406dca13c622439c14
Author: Keith Packard <keithp@neko.keithp.com>
Date: Thu Sep 14 23:53:04 2006 -0700
Update header files for new 1.2 spec. Fix missing bits in spec.
Spec was missing a few things in the encoding section.
commit 81ecda4300e007d62b36942fd6ac56a3ee1a1fa0
Author: Keith Packard <keithp@neko.keithp.com>
Date: Wed Sep 13 12:35:05 2006 -0700
Add .gitignore
commit 1cb8f4cda51fc256908a199c2599f46211c0cd52
Author: Keith Packard <keithp@neko.keithp.com>
Date: Wed Sep 13 12:33:58 2006 -0700
Fix RandR opcodes
commit b34676e8f709c4f8f6a2112c83103dfd0cabcbd7
Author: Keith Packard <keithp@neko.keithp.com>
Date: Wed Sep 13 12:23:08 2006 -0700
Add Output properties and CRTC Gamma ramps. Move sub-pixel to Output.
The property requests mirror the core window property requests, except that
notify events are delivered to windows, rather than to outputs.
Gamma ramps lifted from XFree86V-idModeExtension; clients get to deal with
converting single value to ramp though.
Subpixel moved to output; clients get to figure out the effect of rotation
on subpixel ordering.
commit 1ec6ea06b8b7182b465e5c0d34475c20de76812b
Author: Keith Packard <keithp@neko.keithp.com>
Date: Tue Sep 12 18:40:03 2006 -0700
Spelling and formatting fixes.
commit e81693720d5d1acf31780de3f5fa90bf0f46a801
Author: Keith Packard <keithp@neko.keithp.com>
Date: Tue Sep 12 16:48:22 2006 -0700
Rearrange modes to be listed with screen resources. Encoding.
Modes are now listed as screen resources instead of with the output; they're
shared across outputs for cloning.
Wrote up encoding.
commit 4e47d7af0574690dcf00516337bf0bbe567c9c75
Author: Keith Packard <keithp@neko.keithp.com>
Date: Mon Sep 11 22:49:15 2006 -0700
Finish basic request descriptions for version 1.2
outputs now report list of valid modes. crtcs accept a valid mode which must
be supported on all connected outputs.
outputs also report connection status.
commit dd19f8fbfcc4b8863347ce422006715ed95a7c00
Author: Keith Packard <keithp@neko.keithp.com>
Date: Mon Sep 11 22:19:28 2006 -0700
Move supported mode list from CRTC to OUTPUT.
commit 62decb70de5bbe623859764e7cb492209478e304
Author: Keith Packard <keithp@neko.keithp.com>
Date: Mon Sep 11 21:29:39 2006 -0700
Start rework for screen/CRTC/monitor scheme.
commit 3305f634fae79603edc1d3aab1671a91caeb24d4
Author: Alan Coopersmith <alan.coopersmith@sun.com>
Date: Fri Jul 14 18:56:26 2006 -0700
renamed: .cvsignore -> .gitignore
commit 5220e7d7dfa64d95918b6f5ad52089fe87540b61
Author: Keith Packard <keithp@neko.keithp.com>
Date: Tue Jun 27 22:38:32 2006 +0200
Swizzle protocol contents to fix errors discovered while implementing X server piece
commit c414ce4494f0d062bc25fa671cf50a556c9e1d8c
Author: Keith Packard <keithp@neko.keithp.com>
Date: Tue Jun 27 02:27:10 2006 +0200
Just use CARD16 for indices
commit bbaabdd10585aed3bc44f2179ec4a68975a599cc
Author: Keith Packard <keithp@neko.keithp.com>
Date: Mon Jun 26 14:33:18 2006 +0200
Finish randerproto.h change for 1.2. Use Window instead of Drawable for 1.2.
commit d606ad207ccef5c050374b535acb0bd3ed3b95aa
Author: Keith Packard <keithp@neko.keithp.com>
Date: Mon Jun 26 12:42:50 2006 +0200
move protocol.txt to randrproto.txt. Start updating headers for version 1.2
commit 69f5562610a94cb7c67b5e8bcd7d1e3df53bbcad
Author: Keith Packard <keithp@neko.keithp.com>
Date: Sun Jun 25 08:51:27 2006 +0200
Finish encodings for 1.2 additions.
commit efde5d9569afef58317905ce30910f80cb3d01c8
Author: Keith Packard <keithp@neko.keithp.com>
Date: Sun Jun 25 03:35:24 2006 +0200
Start specifying the encoding for 1.2 requests
commit bb97699dcd1e274a1abc20f1a818aaf53b269a1b
Author: Keith Packard <keithp@neko.keithp.com>
Date: Sun Jun 25 03:25:59 2006 +0200
Describe relationship between RandR, Xinerama and XFree86-VidModeExtension
commit 66cb6d24ecd161c9f0b42ba55d8ae642fe02729e
Author: Keith Packard <keithp@neko.keithp.com>
Date: Sun Jun 25 03:10:20 2006 +0200
Add RRMonitorChangeNotify event. Complete RRSetMonitorConfig.
commit 3b72072c31258d1f12b93eba77b5e30cf46c5309
Author: Keith Packard <keithp@neko.keithp.com>
Date: Sat Jun 24 17:35:35 2006 -0700
Repair broken parts of spec. Add RRGetMonitorInfo and RRSetMonitorConfig
commit 2907236309d2862f61dcb0c032df1abdb9adc80e
Author: Keith Packard <keithp@neko.keithp.com>
Date: Sat Jun 24 16:58:16 2006 -0700
Clean up really broken text in the spec
commit 2370c88074c63bbe8d37d510e7e1f5c28fe6e573
Author: Keith Packard <keithp@neko.keithp.com>
Date: Sat Jun 24 16:22:44 2006 -0700
Reformat license text, add Intel copyright
commit 79af1c0351dbac7c89433b7ae141835a4566c428
Author: Keith Packard <keithp@neko.keithp.com>
Date: Sat Jun 24 16:14:07 2006 -0700
Introduce Xinerama changes. Remove spurious 'Bad' error name prefix.
commit 914084f13a379ee85dc1b8f6fd3f46c8ba7f7797
Author: Kevin E Martin <kem@kem.org>
Date: Thu Dec 15 00:24:38 2005 +0000
Update package version number for final X11R7 release candidate.
commit 49011800c0c000799428b543cc4fe72204abdd7f
Author: Kevin E Martin <kem@kem.org>
Date: Wed Oct 19 02:48:14 2005 +0000
Update package version number for RC1 release.
commit 6f41ee7aa447ea8245249dca9a665151f5b65725
Author: Eric Anholt <anholt@freebsd.org>
Date: Tue Aug 2 19:19:39 2005 +0000
Add basic .cvsignore files for proto modules.
commit 224663a4c053377b30ded5676a9438618969d92c
Author: Kevin E Martin <kem@kem.org>
Date: Fri Jul 29 21:22:56 2005 +0000
Various changes preparing packages for RC0:
- Verify and update package version numbers as needed
- Implement versioning scheme
- Change bug address to point to bugzilla bug entry form
- Disable loadable i18n in libX11 by default (use --enable-loadable-i18n to
reenable it)
- Fix makedepend to use pkgconfig and pass distcheck
- Update build script to build macros first
- Update modular Xorg version
commit fd007cfa47c96f73c16d12c8498f4735addd2f4e
Author: Daniel Stone <daniel@fooishbar.org>
Date: Sat May 21 04:14:00 2005 +0000
Set version to 1.1.
commit 0e6b22b5729df01528a78ce25780395f1ddbb7c4
Author: Adam Jackson <ajax@nwnk.net>
Date: Thu May 19 00:22:40 2005 +0000
revert last change, didn't do right thing at all, sorry for the noise
commit b805a556617f9a29e812a988b8be6056c654cd82
Author: Adam Jackson <ajax@nwnk.net>
Date: Thu May 19 00:10:18 2005 +0000
Require automake 1.7 in AM_INIT_AUTOMAKE
commit cede321965b378548cd0c43528451d47c70ea5b8
Author: Josh Triplett <josh@speakeasy.net>
Date: Tue May 17 06:34:47 2005 +0000
Add COPYING file for Randr. Note that the two included licenses are very
similar, but contain a few minor differences when referring to the
companies granting the license, HP and Compaq.
commit b3b508a6b8761d6a117639935ad4b18407846c61
Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
Date: Mon May 9 18:20:05 2005 +0000
Change all the protonames from <extension>Ext to <extension>Proto.
commit b385d6eefab1555f48255edbdc2c8c8fe101cf80
Author: Kevin E Martin <kem@kem.org>
Date: Fri May 6 01:46:31 2005 +0000
Initial build system files for proto module.
commit 05a69617948c14bc149d0d1c2a78894a9ba1970d
Author: Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk>
Date: Sat Dec 4 00:42:46 2004 +0000
Encoding of numerous files changed to UTF-8
commit 3b8859eca5103b50149e0274182cf55d80ec7909
Author: Egbert Eich <eich@suse.de>
Date: Fri Apr 23 18:43:06 2004 +0000
Merging XORG-CURRENT into trunk
commit 17d50f3cdcf97b0d39c376c73d60750bff912f8b
Author: Egbert Eich <eich@suse.de>
Date: Sun Mar 14 08:31:36 2004 +0000
Importing vendor version xf86-4_4_99_1 on Sun Mar 14 00:26:39 PST 2004
commit cbbd2e5ed80cda31163a0d481232aecb96295656
Author: Egbert Eich <eich@suse.de>
Date: Wed Mar 3 12:10:54 2004 +0000
Importing vendor version xf86-4_4_0 on Wed Mar 3 04:09:24 PST 2004
commit a94538f86fbcab3c57a723036c03490d9a3eb120
Author: Egbert Eich <eich@suse.de>
Date: Thu Feb 26 13:35:14 2004 +0000
readding XFree86's cvs IDs
commit 359fc691ebea1276937657d34fccf8f4a8d9e33d
Author: Egbert Eich <eich@suse.de>
Date: Thu Feb 26 09:22:28 2004 +0000
Importing vendor version xf86-4_3_99_903 on Wed Feb 26 01:21:00 PST 2004
commit f37a7bf7eeaaf96461797ea4c06c3208d2cbdeb4
Author: Kaleb Keithley <kaleb@freedesktop.org>
Date: Fri Nov 14 16:48:43 2003 +0000
XFree86 4.3.0.1
commit 7ad444f10407c94b55911966c10cba0533cf8f74
Author: Kaleb Keithley <kaleb@freedesktop.org>
Date: Fri Nov 14 16:48:43 2003 +0000
Initial revision

View File

@ -9,4 +9,14 @@ pkgconfig_DATA = randrproto.pc
randrdocdir = $(datadir)/doc/$(PACKAGE)
randrdoc_DATA = randrproto.txt
EXTRA_DIST = autogen.sh randrproto.pc.in $(randrdoc_DATA)
EXTRA_DIST = randrproto.pc.in $(randrdoc_DATA)
EXTRA_DIST += ChangeLog
MAINTAINERCLEANFILES = ChangeLog
.PHONY: ChangeLog
ChangeLog:
$(CHANGELOG_CMD)
dist-hook: ChangeLog

View File

@ -1,12 +0,0 @@
#! /bin/sh
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
ORIGDIR=`pwd`
cd $srcdir
autoreconf -v --install || exit 1
cd $ORIGDIR || exit $?
$srcdir/configure --enable-maintainer-mode "$@"

View File

@ -22,10 +22,14 @@ 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.3.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
# Require xorg-macros: XORG_CHANGELOG
m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.2 or later before running autoconf/autogen])])
XORG_MACROS_VERSION(1.2)
XORG_RELEASE_VERSION
XORG_CHANGELOG
AC_OUTPUT([Makefile
randrproto.pc])

View File

@ -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
@ -39,11 +40,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 32
#define X_RRQueryVersion 0
/* we skip 1 to make old clients fail pretty immediately */
@ -77,6 +78,20 @@ typedef unsigned long XRandrModeFlags;
#define X_RRGetCrtcGamma 23
#define X_RRSetCrtcGamma 24
/* V1.3 additions */
#define X_RRGetScreenResourcesCurrent 25
#define X_RRSetCrtcTransform 26
#define X_RRGetCrtcTransform 27
#define X_RRGetPanning 28
#define X_RRSetPanning 29
#define X_RRSetOutputPrimary 30
#define X_RRGetOutputPrimary 31
#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 */
@ -136,6 +151,12 @@ typedef unsigned long XRandrModeFlags;
/* Conventional RandR output properties */
#define RR_PROPERTY_RANDR_EDID "RANDR_EDID"
#define RR_PROPERTY_RANDR_EDID "EDID"
#define RR_PROPERTY_SIGNAL_FORMAT "SignalFormat"
#define RR_PROPERTY_SIGNAL_PROPERTIES "SignalProperties"
#define RR_PROPERTY_CONNECTOR_TYPE "ConnectorType"
#define RR_PROPERTY_CONNECTOR_NUMBER "ConnectorNumber"
#define RR_PROPERTY_COMPATIBILITY_LIST "CompatibilityList"
#define RR_PROPERTY_CLONE_LIST "CloneList"
#endif /* _RANDR_H_ */

View File

@ -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
@ -31,6 +32,7 @@
#define _XRANDRP_H_
#include <X11/extensions/randr.h>
#include <X11/extensions/renderproto.h>
#define Window CARD32
#define Drawable CARD32
@ -376,7 +378,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;
@ -557,6 +563,88 @@ typedef struct {
} xRRSetCrtcGammaReq;
#define sz_xRRSetCrtcGammaReq 12
/*
* Additions for V1.3
*/
typedef xRRGetScreenResourcesReq xRRGetScreenResourcesCurrentReq;
#define sz_xRRGetScreenResourcesCurrentReq sz_xRRGetScreenResourcesReq
typedef xRRGetScreenResourcesReply xRRGetScreenResourcesCurrentReply;
#define sz_xRRGetScreenResourcesCurrentReply sz_xRRGetScreenResourcesReply
typedef struct {
CARD8 reqType;
CARD8 randrReqType;
CARD16 length B16;
RRCrtc crtc B32;
xRenderTransform transform;
CARD16 nbytesFilter; /* number of bytes in filter name */
CARD16 pad B16;
} xRRSetCrtcTransformReq;
#define sz_xRRSetCrtcTransformReq 48
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 pad0;
CARD16 pad1 B16;
xRenderTransform currentTransform;
CARD32 pad2 B32;
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 96
typedef struct {
CARD8 reqType;
CARD8 randrReqType;
CARD16 length B16;
Window window B32;
RROutput output B32;
} xRRSetOutputPrimaryReq;
#define sz_xRRSetOutputPrimaryReq 12
typedef struct {
CARD8 reqType;
CARD8 randrReqType;
CARD16 length B16;
Window window B32;
} xRRGetOutputPrimaryReq;
#define sz_xRRGetOutputPrimaryReq 8
typedef struct {
BYTE type;
CARD8 pad;
CARD16 sequenceNumber B16;
CARD32 length B32;
RROutput output B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xRRGetOutputPrimaryReply;
#define sz_xRRGetOutputPrimaryReply 32
/*
* event
*/
@ -564,8 +652,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 */
@ -598,8 +686,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 */
@ -626,6 +714,70 @@ typedef struct {
} xRROutputPropertyNotifyEvent;
#define sz_xRROutputPropertyNotifyEvent 32
typedef struct {
CARD8 reqType;
CARD8 randrReqType;
CARD16 length B16;
RRCrtc crtc B32;
} xRRGetPanningReq;
#define sz_xRRGetPanningReq 8
typedef struct {
BYTE type;
CARD8 status;
CARD16 sequenceNumber B16;
CARD32 length B32;
Time timestamp B32;
CARD16 left B16;
CARD16 top B16;
CARD16 width B16;
CARD16 height B16;
CARD16 track_left B16;
CARD16 track_top B16;
CARD16 track_width B16;
CARD16 track_height B16;
INT16 border_left B16;
INT16 border_top B16;
INT16 border_right B16;
INT16 border_bottom B16;
} xRRGetPanningReply;
#define sz_xRRGetPanningReply 36
typedef struct {
CARD8 reqType;
CARD8 randrReqType;
CARD16 length B16;
RRCrtc crtc B32;
Time timestamp B32;
CARD16 left B16;
CARD16 top B16;
CARD16 width B16;
CARD16 height B16;
CARD16 track_left B16;
CARD16 track_top B16;
CARD16 track_width B16;
CARD16 track_height B16;
INT16 border_left B16;
INT16 border_top B16;
INT16 border_right B16;
INT16 border_bottom B16;
} xRRSetPanningReq;
#define sz_xRRSetPanningReq 36
typedef struct {
BYTE type;
CARD8 status;
CARD16 sequenceNumber B16;
CARD32 length B32;
Time newTimestamp B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xRRSetPanningReply;
#define sz_xRRSetPanningReply 32
#undef RRModeFlags
#undef RRCrtc
#undef RRMode

View File

@ -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
Jim.Gettys@hp.com
@ -110,6 +110,20 @@ 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. 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.
• 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
Our thanks to the contributors to the design found on the xpert mailing
@ -497,6 +511,12 @@ dynamic changes in the display environment.
extension and the core protocol. They must be non-zero, or Value
error results.
If panning is enabled, the width and height of the panning and the
tracking areas are adapted to the new size and clamped afterwards.
Disabled panning axes remain disabled.
Panning borders are disabled if their requirements are no longer met
(see RRSetPanning).
┌───
RRGetScreenResources
window: WINDOW
@ -528,10 +548,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
@ -547,7 +567,7 @@ dynamic changes in the display environment.
widthInMillimeters, heightInMillimeters: CARD32
crtcs: LISTofCRTC
clones: LISTofOUTPUT
modes: LISTofOUTPUT
modes: LISTofMODE
num-preferred: CARD16
└───
Errors: Output
@ -846,8 +866,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.
@ -925,6 +947,12 @@ dynamic changes in the display environment.
then re-enabling the CRTC at the new configuration to avoid an
invalid intermediate configuration.
If panning is enabled, the width and height of the panning and the
tracking areas are clamped to the new mode size.
Disabled panning axes remain disabled.
Panning borders are disabled if their requirements are no longer met
(see RRSetPanning).
When this request succeeds, 'status' contains Success and the
requested changes to configuration will have been made.
@ -968,6 +996,250 @@ 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.
┌───
RRSetCrtcTransform
crtc: CRTC
transform: TRANSFORM
filter: STRING8
values: LISTofFIXED
└───
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 transformation from screen
coordinate space to crtc coordinate space. This transformation is
applied before the rotation and reflection values to 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.
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-filter: STRING8
pending-values: LISTofFIXED
current-transform: TRANSFORM
current-filter: STRING8
current-values: LISTofFIXED
└───
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.
┌───
RRGetPanning
crtc: CRTC
status: RRCONFIGSTATUS
timestamp: TIMESTAMP
left, top, width, height: CARD16
track_left, track_top, track_width, track_height: CARD16
border_left, border_top, border_right, border_bottom: INT16
└───
Errors: Crtc
Version 1.3 adds panning support again. If multiple crtcs are active
the panning behavior can be defined per crtc individually.
RRGetPanning returns information about the currently set panning
configuration for the specified crtc. If the CRTC does not support
panning, all fields (except timestamp) will be 0.
'timestamp' indicates when the configuration was last set.
All other entries are explained for RRSetPanning.
┌───
RRSetPanning
crtc: CRTC
timestamp: TIMESTAMP
left, top, width, height: CARD16
track_left, track_top, track_width, track_height: CARD16
border_left, border_top, border_right, border_bottom: INT16
status: RRCONFIGSTATUS
new-timestamp: TIMESTAMP
└───
Errors: Crtc, Match
This request sets the panning parameters. As soon as panning is
enabled, the CRTC position can change with every pointer move.
RRCrtcChangeNotify events are sent to the clients requesting those.
If 'timestamp' is less than the time when the configuration was last
successfully set, the request is ignored and InvalidTime returned in
status.
┌──┳━━━━━━━━━━━━━━┳─────┬ ─ ─ ─ ─ ─ ┐
│ ┃ CRTC ┃ │
│ ┃ ┃ │ │
│ ┃ X┃→ │
│ ┃ ┃ │ │ framebuffer
│ ┗━━━━━━━━━━━━━━┛ │
│ │ │
│panning area │
└───────────────────────┴ ─ ─ ─ ─ ─ ┘
'left', 'top', 'width', and 'height' contain the total panning area
for this CRTC. 'width' has to be larger than or equal to the CRTC's
width or 0, and 'left'+'width' must be within the screen size, else a
Match error results. Equivalent restrictions for the height exist.
'width' or 'height' set to 0 indicate that panning should be disabled
on the according axis. Setting 'width'/'height' to the CRTC's
width/height will disable panning on the X/Y axis as well, but
RRSetScreenSize will silently enable panning if the screen size is
increased. This does not happen if set to 0.
┌────────┳━━━━━━━━━━━━━━┳ ─ ─ ─ ─ ─ ┐
│ ┃ CRTC ┃
│ ┃ ┃ │
│ ┃ ┃
│ ┃ ┃ │ tracking area
│ ┗━━━━━━━━━━━━━━┫ X
│ ↓ │ ↓ │
│panning area │
└───────────────────────┴ ─ ─ ─ ─ ─ ┘
'track_left', 'track_top', 'track_width', and 'track_height' contain
the pointer area for which the panning region is updated. For normal
use cases it should enclose the panning area minus borders, and is
typically set to either the panning area minus borders, or to the
total screen size. If set to the total screen size, the CRTC will pan
in the remaining axis even if the pointer is outside the panning area
on a different CRTC, as shown in the figure above. If the pointer is
outside the tracking area, the CRTC will not pan. Zero can be used as
an alias for the total screen size.
┌──┳━━━━━━━━━━━━━━┳────────────┐
│ ┃ CRTC ┃ │
│ ┃ ┃ │
│ ┃ ┃→ │
│ ┃ X←→┃ │
│ ┃ border_right │
│ ┗━━━━━━━━━━━━━━┛ │
│ │
│panning area │
└──────────────────────────────┘
'border_left', 'border_top', 'border_right', and 'border_bottom'
define the distances from the CRTC borders that will activate panning
if the pointer hits them. If the borders are 0, the screen will pan
when the pointer hits the CRTC borders (behavior of pre-RandR Xserver
panning). If the borders are positive, the screen will pan when the
pointer gets close to the CRTC borders, if they are negative, the
screen will only pan when the pointer is already way past the CRTC
borders. Negative values might confuse users and disable panning to
the very edges of the screen. Thus they are discouraged.
border_left + border_right has to be lower or equal than the CRTC's
width, else a Match error results. An equivalent restriction for the
height exists.
Screen size changes update the panning and the tracking areas to the
new size. Both screen size changes and mode changes clamp these areas
to the current CRTC size. In these cases panning borders are disabled
if their requirements are no longer met.
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.
┌───
RRSetOutputPrimary
window: WINDOW
output: OUTPUT
└───
Errors: Match, Output, Window
RRSetOutputPrimary marks 'output' as the primary output for the
screen with the same root window as 'window'. This output's CRTC
will be sorted to the front of the list in Xinerama and RANDR
geometry requests for the benefit of older applications. The
default primary output is None, and None is a legal value to pass
to RRSetOutputPrimary. This request is expected to be used by
desktop environments to mark the screen that should hold the primary
menu bar or panel.
If the named output is not connected to any CRTC, or if the Window
and Output are not attached to the same screen, BadMatch is generated.
In the latter case, errorValue will be the Window, not the Output.
As this changes the logical layout of the screen, ConfigureNotify
and RRScreenChangeNotify will be generated on the appropriate root
window when the primary output is changed by this call. This request
also generates RROutputChangeNotify events on the outputs that gained
and lost primary status.
If an output is disconnected asynchronously (eg. due to recabling),
the primary status does not change, but RROutputChangeNotify events
will be generated if the hardware is capable of detecting this;
clients are expected to reconfigure if appropriate.
If an output is deleted (eg. due to device hotplug), the server will
act as though None was passed to RRSetOutputPrimary, including
generating the appropriate events.
┌───
RRGetOutputPrimary
window: WINDOW
output: OUTPUT
└───
Errors: Window
RRGetOutputPrimary returns the primary output for the system.
❧❧❧❧❧❧❧❧❧❧❧
8. Extension Events
@ -990,12 +1262,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 +1293,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 +1344,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.
@ -1100,7 +1378,173 @@ factors, such as re-cabling a monitor, etc.
❧❧❧❧❧❧❧❧❧❧❧
9. Extension Versioning
9. Properties
Properties are used for output specific parameters, and for announcing
static or rarely changing data. Announced data is typically
immutable. Properties are also used for evaluating new parameters
before adding them to the RandR protocol.
The following properties are hereby declared official, and drivers SHOULD
prefix driver specific properties with '_', unless they are planned to be
added to this specification. List values, that are not declared by the table
below, and will remain driver specific or are not planned to be added to this
specification, SHOULD be prefixed with "_" as well in order to avoid name
space or semantics clashes with future extensions of these values.
Beginning with version 1.3 of the RandR extension, certain properties
are mandatory and MUST be provided by implementations. Earlier
versions of the RandR extension MAY provide these properties as well,
as long as the semantics are not altered. Clients SHOULD fall back
gracefully to lower version functionality, though, if the driver
doesn't handle a mandatory property correctly.
9.1 Known properties
"EDID" aka RR_PROPERTY_RANDR_EDID
Type: int8 [n]
Flags: Immutable
Range/List: -
Raw EDID data from the device attached to the according
output. Should include main EDID data and all extension
blocks.
"SignalFormat" aka RR_PROPERTY_SIGNAL_FORMAT
Type: int32 / Atom
Flags: -
Range/List: unknown VGA TMDS LVDS Composite Composite-PAL
Composite-NTSC Composite-SECAM SVideo
Component DisplayPort
Signal format / physical protocol format that is used for the
specified output. valid-values lists all possible formats on this
output, which SHOULD be a subset of the list above and MUST be static.
Values with dashes (Composite-PAL) describe more specific versions of
the base values (Composite) and SHOULD be used if known to the driver.
A driver MAY change this property of an output if the underlying
hardware indicates a protocol change (e.g. TV formats). Clients are
allowed to change the signal format in order to select a different
signal format (e.g. Composite etc.) or physical protocol (e.g. VGA or
TMDS on DVI-I).
Laptop panels SHOULD not be detected with this property, but rather by
ConnectorType.
"SignalProperties" aka RR_PROPERTY_SIGNAL_FORMAT
Type: int32 [n] / Atom
Flags: -
Range/List: For Composite signals:
NTSC NTSC-M NTSC-J NTSC-N NTSC-4.43 NTSC-film
PAL PAL-B PAL-G PAL-H PAL-H PAL-I PAL-M PAL-D
PAL-N PAL-Nc PAL-L PAL-60
SECAM SECAM-L SECAM-B SECAM-G SECAM-D SECAM-K
SECAM-H SECAM-K
For TMDS signals:
SingleLink DualLink
For DisplayPort signals:
Lane1 Lane2 Lane4 LowSpeed HiSpeed
Properties of the signal format that is currently used for the
specified output. valid-values lists all possible properties on this
output, which SHOULD be a subset of the list above. It will change if
SignalFormat changes. Multiple properties are allowed.
Values with dashes (PAL-B) describe more specific versions of the base
values (PAL) and SHOULD be used if known to the driver. A driver MAY
change this property of an output if the underlying hardware indicates
a signal change (e.g. TV formats). Clients are allowed to change the
properties in order to select a different signal subformat.
"ConnectorType" aka RR_PROPERTY_CONNECTOR_TYPE
Type: int32 / Atom
Flags: Immutable, Static
Range/List: unknown VGA DVI DVII DVIA DVID HDMI Panel
TV TV-Composite TV-SVideo TV-Component
TV-SCART TV-C4 DisplayPort
Connector type, as far as known to the driver.
Values with dashes (TVComposite) describe more specific versions of
the base values (TV). The former SHOULD be used if the connector is
not capable of producing other signal formats. The later SHOULD be
used if the exact connector is unknown, or the connector is a
multiformat connector that is not described otherwise. DVI, for
instance, SHOULD be handled like a DVII connector, unless additional
information is available to the user agent. PANEL describes
laptopinternal (normally LVDS) displays. TV, TVSCART, TVComponent,
and TVC4 with signal format VGA are valid combinations and describe
RGB TV signals.
"ConnectorNumber" aka RR_PROPERTY_CONNECTOR_NUMBER
Type: int32
Flags: Immutable, Static
Range/List: 0-
Outputs that route their signal to the same connector MUST
have the same connector number. Outputs with the same
connector number MUST route their signal to the same
connector, except if it is 0, which indicates unknown
connectivity. 1 is called the primary connector, 2 the
secondary. 3 is typically a TV connector, but that is completely
driver / hardware dependent.
Outputs with the same connector number SHOULD have the same
connector type. Meaning and client behavior for mismatching
connector types is undefined at the moment.
"CompatibilityList" aka RR_PROPERTY_COMPATIBILITY_LIST
Type: int32 [2*n] / Atom pairs
Flags: Immutable
Range/List: 0-
Some combinations of outputs on some cards cannot be served at all,
because the according encoder is only capable of driving one output at
a time.
This property lists all output + signal format pairs that can be
driven together with this output. NULL atoms specify any output / any
signal format, respectively.
This property MUST be symmetric, but may change with changing signal
format. I.e. if the property for DVI-1/TMDS specifies VGA-1/VGA to be
available, VGA-1/VGA has to list DVI-1/TMDS as well.
"CloneList" aka RR_PROPERTY_CLONE_LIST
Type: int32 [2*n] / Atom pairs
Flags: Immutable
Range/List: 0-
Some combinations of outputs on some cards cannot be served
independently from each other, because they are wired up to the same
encoder outputs.
This property lists all output + signal format pairs that are
driven together with this output, and thus can only be programmed in
clone mode with the same CRTC.
This property MUST be symmetric, but may change with changing signal
format. I.e. if the property for DVI-1/VGA specifies VGA-1/VGA to be
cloned, VGA-1/VGA has to list DVI-1/VGA as well.
Outputs / format pairs listed in this property MUST be included in the
CompatibilityList.
9.2 Properties introduced with version 1.2 of the RandR extension
Property Immutable Mandatory since
──────── ───────── ───────────────
EdidData yes n/a
EdidData is provided by the RandR frontend, thus not driver specific.
9.3 Properties introduced with version 1.3 of the RandR extension
Property Immutable Mandatory since
──────── ───────── ───────────────
SignalFormat no RandR 1.3
SignalProperties no not mandatory
ConnectorType yes: static RandR 1.3
ConnectorNumber yes: static not mandatory
CompatibilityList yes not mandatory
CloneList yes not mandatory
❧❧❧❧❧❧❧❧❧❧❧
10. Extension Versioning
The RandR extension was developed in parallel with the implementation
to ensure the feasibility of various portions of the design. As
@ -1128,23 +1572,29 @@ 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. Added CRTC
transformations. Added panning. Added primary outputs.
Added standard properties.
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
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.
system with multiple output support. Version 1.3 adds a cheap version of
GetScreenResources to avoid expensive DDC operations, CRTC transformations,
panning, and the primary output concept. 1.2 and 1.3 are backward-compatible
with 1.1.
❧❧❧❧❧❧❧❧❧❧❧
10. Relationship with other extensions
11. Relationship with other extensions
Two other extensions have a direct relationship with this extension. This
section attempts to explain how these three are supposed to work together.
10.1 XFree86-VidModeExtension
11.1 XFree86-VidModeExtension
XFree86-VidModeExtension changes the configuration of a single monitor
attached to the screen without changing the configuration of the screen
@ -1161,7 +1611,7 @@ All of the utility of this extension is subsumed by RandR version 1.2, RandR
should be used in preference to XFree86-VidModeExtension where both are
present.
10.2 Xinerama
11.2 Xinerama
Xinerama provides a mechanism for describing the relationship between the
overall screen display and monitors placed within that area. As such, it
@ -1434,6 +1884,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)
└───
@ -1680,6 +2131,155 @@ A.2.1 Protocol Requests added with version 1.2
p unused, p=pad(6n)
└───
A.2.2 Protocol Requests added with version 1.3
┌───
RRGetScreenResourcesCurrent
1 CARD8 major opcode
1 25 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)
└───
┌───
RRSetCrtcTransform
1 CARD8 major opcode
1 26 RandR opcode
2 12+(n+p)/4+v length
4 CRTC crtc
36 TRANSFORM transform
2 CARD16 filter length
2 unused
n STRING8 filter name
p unused, p=pad(n)
4v FIXED filter params
└───
┌───
RRGetCrtcTransform
1 CARD8 major opcode
1 27 RandR opcode
2 2 length
4 CRTC crtc
1 1 Reply
1 unused
2 CARD16 sequence number
4 16+(pn+pnp)/4+(cn+cnp)/4+pf+cf reply length
36 TRANSFORM pending transform
1 BOOL has transforms
3 unused
36 TRANSFORM current transform
4 unused
2 pn pending filter name length
2 pf pending filter num params
2 cn current filter name length
2 cf current filter num params
pn STRING8 pending filter name
pnp unused, pnp=pad(pn)
4*pf FIXED pending filter params
cn STRING8 current filter name
cnp unused, cnp=pad(cn)
4*cf FIXED current filter params
└───
┌───
RRGetPanning
1 CARD8 major opcode
1 28 RandR opcode
2 2 length
4 CRTC crtc
1 1 Reply
1 RRCONFIGSTATUS status
2 CARD16 sequence number
4 1 reply length
4 TIMESTAMP timestamp
2 CARD16 left
2 CARD16 top
2 CARD16 width
2 CARD16 height
2 CARD16 track_left
2 CARD16 track_top
2 CARD16 track_width
2 CARD16 track_height
2 INT16 border_left
2 INT16 border_top
2 INT16 border_right
2 INT16 border_bottom
└───
┌───
RRSetPanning
1 CARD8 major opcode
1 29 RandR opcode
2 9 length
4 CRTC crtc
4 TIMESTAMP timestamp
2 CARD16 left
2 CARD16 top
2 CARD16 width
2 CARD16 height
2 CARD16 track_left
2 CARD16 track_top
2 CARD16 track_width
2 CARD16 track_height
2 INT16 border_left
2 INT16 border_top
2 INT16 border_right
2 INT16 border_bottom
1 1 Reply
1 RRCONFIGSTATUS status
2 CARD16 sequence number
4 0 reply length
4 TIMESTAMP new timestamp
20 unused
└───
┌───
RRSetOutputPrimary
1 CARD8 major opcode
1 30 RandR opcode
2 3 length
4 WINDOW window
4 OUTPUT output
└───
┌───
RRGetOutputPrimary
1 CARD8 major opcode
1 31 RandR opcode
2 2 length
4 WINDOW window
1 1 Reply
1 unused
2 CARD16 sequence number
4 CARD32 length
4 OUTPUT output
4 CARD32 pad1
4 CARD32 pad2
4 CARD32 pad3
4 CARD32 pad4
└───
A.3 Protocol Events
┌───