Add mode origins and output options.

Also document non-obvious defined types. Eliminate mode options.
This commit is contained in:
Keith Packard 2006-10-03 11:01:56 -07:00
parent 61d60a93dc
commit d6c9bdd0e6

View file

@ -198,6 +198,30 @@ RRCONFIGSTATUS { Success
InvalidTime InvalidTime
Failed } Failed }
A value of type RRCONFIGSTATUS returned when manipulating the output
configuration or querying information from the server that has some
time-dependency.
InvalidConfigTime indicates that the supplied configuration
timestamp does not match the current X server configuration
timestamp. Usually this means that the output configuration has
changed since the timestamp was received by the application.
InvalidTime indicates that the supplied output reconfiguration time
is earlier than the most recent output reconfiguration request.
Generally this indicates that another application has reconfigured
the output using a later timestamp.
Failed is returned whenever the operation is unsuccessful for some
other reason. This generally indicates that the requested output
configuration is unsupported by the hardware. The goal is to make
these limitations expressed by the protocol, but when that isn't
possible it is correct to return this error value. If, as a
implentor, you find this error code required, please submit the
hardware constraints that exist so that a future version of the
extension can correctly capture the configuration constraints in
your system.
ROTATION { Rotate_0 ROTATION { Rotate_0
Rotate_90 Rotate_90
Rotate_180 Rotate_180
@ -205,6 +229,10 @@ ROTATION { Rotate_0
Reflect_X Reflect_X
Reflect_Y } Reflect_Y }
These values are used both to indicate a set of allowed rotations
and reflections as well as to indicate a specific rotation and
reflection combination.
RRSELECTMASK { RRScreenChangeNotifyMask RRSELECTMASK { RRScreenChangeNotifyMask
RRCrtcChangeNotifyMask (New in version 1.2) RRCrtcChangeNotifyMask (New in version 1.2)
RROutputChangeNotifyMask (New in version 1.2) RROutputChangeNotifyMask (New in version 1.2)
@ -214,12 +242,44 @@ SIZEID { CARD16 }
MODE { XID or None } MODE { XID or None }
RRMODEORIGIN { RRModeOriginPreferred,
RRModeOriginDetailed,
RRModeOriginVESA,
RRModeOriginConfig,
RRModeOriginUser,
RRModeOriginOther }
These values are used to indicate to the application the origin
of each mode.
Preferred modes come from the monitor as the preferred mode for
this monitor; generally these are used for fixed-pixel flat panels
to indicate the native resolution of the panel.
Detailed modes also come from the monitor as additional modes that
may not follow the VESA specification.
VESA modes are either standard modes from the VESA spec or modes
generated from the GTF using the monitor specifications.
Config modes are those provided as a part of the X server
configuration.
User modes are those defined through the RandR protocol during X
server operation.
Other modes covers modes that come from any other source; space
aliens, tarot cards, whatever.
CRTC { XID } CRTC { XID }
OUTPUT { XID } OUTPUT { XID }
CONNECTION { Connected, Disconnected, UnknownConnection } CONNECTION { Connected, Disconnected, UnknownConnection }
This value provides an indication of whether an output is actually
connected to a monitor or other presentation device.
SUBPIXELORDER { SubPixelUnknown The subpixel order uses the Render SUBPIXELORDER { SubPixelUnknown The subpixel order uses the Render
SubPixelHorizontalRGB extensions definitions; they are here SubPixelHorizontalRGB extensions definitions; they are here
SubPixelHorizontalBGR only for convenience. SubPixelHorizontalBGR only for convenience.
@ -245,9 +305,15 @@ MODEFLAG { HSyncPositive
DoubleClock DoubleClock
ClockDivideBy2 } ClockDivideBy2 }
MODEOPTION { ScalingNone, OUTPUTOPTION { RROutputOptionScaleNone,
ScalingMaxAspect, RROutputOptionScaleMaxAspect,
ScalingMax } RROutputOptionScaleMax }
These options select paramaters of the output which are independent
of the output mode.
The scale options are used for fixed panels and select between
different scaling options for non-native resolutions.
MODEINFO { id: MODE MODEINFO { id: MODE
name: STRING name: STRING
@ -257,7 +323,10 @@ MODEINFO { id: MODE
hSyncStart, hSyncEnd, hTotal, hSkew: CARD16 hSyncStart, hSyncEnd, hTotal, hSkew: CARD16
vSyncStart, vSyncEnd, vTotal: CARD16 vSyncStart, vSyncEnd, vTotal: CARD16
modeFlags: SETofMODEFLAG modeFlags: SETofMODEFLAG
modeOptions: SETofMODEOPTION } modeOrigin: MODEORIGIN }
OUTPUTCONFIG { output: OUTPUT
options: SETofOUTPUTOPTION }
REFRESH { rates: LISTofCARD16 } REFRESH { rates: LISTofCARD16 }
@ -515,10 +584,12 @@ dynamic changes in the display environment.
status: RRCONFIGSTATUS status: RRCONFIGSTATUS
timestamp: TIMESTAMP timestamp: TIMESTAMP
crtc: CRTC crtc: CRTC
options: SETofOUTPUTOPTION
name: STRING name: STRING
connection: CONNECTION connection: CONNECTION
subpixel-order: SUBPIXELORDER subpixel-order: SUBPIXELORDER
possible-options: SETofOUTPUTOPTION
crtcs: LISTofCRTC crtcs: LISTofCRTC
clones: LISTofOUTPUT clones: LISTofOUTPUT
modes: LISTofMODE modes: LISTofMODE
@ -538,6 +609,8 @@ dynamic changes in the display environment.
'crtc' is the current source CRTC for video data, or Disabled if the 'crtc' is the current source CRTC for video data, or Disabled if the
output is not connected to any CRTC. output is not connected to any CRTC.
'options' is the currently enabled set of options.
'name' is a UTF-8 encoded string designed to be presented to the 'name' is a UTF-8 encoded string designed to be presented to the
user to indicate which output this is. E.g. "S-Video" or "DVI". user to indicate which output this is. E.g. "S-Video" or "DVI".
@ -549,6 +622,9 @@ dynamic changes in the display environment.
'subpixel-order' contains the resulting subpixel order of the 'subpixel-order' contains the resulting subpixel order of the
connected device to allow correct subpixel rendering. connected device to allow correct subpixel rendering.
'possible-options' indicate which options are supported by this
output device.
'crtcs' is the list of CRTCs that this output may be connected to. 'crtcs' is the list of CRTCs that this output may be connected to.
Attempting to connect this output to a different CRTC results in a Attempting to connect this output to a different CRTC results in a
Match error. Match error.
@ -779,7 +855,6 @@ dynamic changes in the display environment.
config-timestamp: TIMESTAMP config-timestamp: TIMESTAMP
x, y: INT16 x, y: INT16
mode: MODE mode: MODE
options: SETofMODEOPTION
rotation: ROTATION rotation: ROTATION
outputs: LISTofOUTPUT outputs: LISTofOUTPUT
@ -1124,6 +1199,17 @@ A.1 Common Types
└─── └───
Return status for requests which depend on time. Return status for requests which depend on time.
┌───
RRMODEORIGIN
0 RRModeOriginPreferred
1 RRModeOriginDetailed
2 RRModeOriginVESA
3 RRModeOriginConfig
4 RRModeOriginUser
5 RRModeOriginOther
└───
Origin of mode information.
┌─── ┌───
MODEINFO (40) Added in version 1.2 MODEINFO (40) Added in version 1.2
4 CARD32 id 4 CARD32 id
@ -1174,6 +1260,18 @@ A.1 Common Types
1 Disconnected 1 Disconnected
2 UnknownConnection 2 UnknownConnection
└─── └───
┌───
OUTPUTOPTION
1 RROutputOptionScaleNone
2 RROutputOptionScaleMaxAspect
4 RROutputOptionScaleMax
└───
┌───
OUTPUTCONFIG
4 CARD32 output
4 CARD32 set of output options
└───
A.2 Protocol Requests A.2 Protocol Requests
@ -1330,16 +1428,18 @@ A.2.1 Protocol Requests added with version 1.2
1 1 Reply 1 1 Reply
1 RRCONFIGSTATUS status 1 RRCONFIGSTATUS status
2 CARD16 sequence number 2 CARD16 sequence number
4 c+m+(n+p)/4 reply length 4 1+c+m+(n+p)/4 reply length
4 TIMESTAMP timestamp 4 TIMESTAMP timestamp
4 CRTC current connected crtc 4 CRTC current connected crtc
4 SETofOUTPUTOPTION current output options
1 CONNECTION connection 1 CONNECTION connection
1 SUBPIXELORDER subpixel-order 1 SUBPIXELORDER subpixel-order
2 c number of CRTCs 2 c number of CRTCs
2 m number of modes 2 m number of modes
2 o number of clones 2 o number of clones
2 n length of name 2 n length of name
6 unused 2 unused
4 SETofOUTPUTOPTION supported output options
4c LISTofCRTC crtcs 4c LISTofCRTC crtcs
4m LISTofMODE modes 4m LISTofMODE modes
n STRING8 name n STRING8 name
@ -1493,7 +1593,7 @@ A.2.1 Protocol Requests added with version 1.2
RRSetCrtcConfig RRSetCrtcConfig
1 CARD8 major opcode 1 CARD8 major opcode
1 19 RandR opcode 1 19 RandR opcode
2 7+n length 2 7+2n length
4 CRTC crtc 4 CRTC crtc
4 TIMESTAMP timestamp 4 TIMESTAMP timestamp
4 TIMESTAMP config timestamp 4 TIMESTAMP config timestamp
@ -1502,7 +1602,7 @@ A.2.1 Protocol Requests added with version 1.2
4 MODE mode 4 MODE mode
2 ROTATION rotation/reflection 2 ROTATION rotation/reflection
2 unused 2 unused
4n LISTofOUTPUT outputs 8n LISTofOUTPUTCONFIG outputs
1 1 Reply 1 1 Reply
1 RRCONFIGSTATUS status 1 RRCONFIGSTATUS status