From 0e858436af67256c0af49317183df4bf8092183c Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 1 Nov 2006 00:23:37 -0800 Subject: 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. --- randrproto.h | 10 +++++----- randrproto.txt | 12 +++++++++--- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/randrproto.h b/randrproto.h index 90549bd..cff3061 100644 --- a/randrproto.h +++ b/randrproto.h @@ -183,8 +183,6 @@ typedef struct _xRRModeInfo { RRMode id B32; CARD16 width B16; CARD16 height B16; - CARD32 mmWidth B32; - CARD32 mmHeight B32; CARD32 dotClock B32; CARD16 hSyncStart B16; CARD16 hSyncEnd B16; @@ -196,7 +194,7 @@ typedef struct _xRRModeInfo { CARD16 nameLength B16; RRModeFlags modeFlags B32; } xRRModeInfo; -#define sz_xRRModeInfo 40 +#define sz_xRRModeInfo 32 typedef struct { RROutput output B32; @@ -281,6 +279,8 @@ typedef struct { Time timestamp B32; RRCrtc crtc B32; RROutputOptions currentOptions B32; + CARD32 mmWidth B32; + CARD32 mmHeight B32; CARD8 connection; CARD8 subpixelOrder; CARD16 nCrtcs B16; @@ -290,7 +290,7 @@ typedef struct { CARD16 nameLength B16; RROutputOptions possibleOptions B32; } xRRGetOutputInfoReply; -#define sz_xRRGetOutputInfoReply 36 +#define sz_xRRGetOutputInfoReply 44 typedef struct { CARD8 reqType; @@ -374,7 +374,7 @@ typedef struct { Window window B32; xRRModeInfo modeInfo; } xRRCreateModeReq; -#define sz_xRRCreateModeReq 48 +#define sz_xRRCreateModeReq 40 typedef struct { BYTE type; diff --git a/randrproto.txt b/randrproto.txt index 01b284c..20543bf 100644 --- a/randrproto.txt +++ b/randrproto.txt @@ -288,8 +288,7 @@ OUTPUTOPTION { RROutputOptionScaleNone, MODEINFO { id: MODE name: STRING - widthInPixels, heightInPixels: CARD16 - widthInMillimeters, heightInMillimeters: CARD32 + width, height: CARD16 dotClock: CARD32 hSyncStart, hSyncEnd, hTotal, hSkew: CARD16 vSyncStart, vSyncEnd, vTotal: CARD16 @@ -559,6 +558,7 @@ dynamic changes in the display environment. name: STRING connection: CONNECTION subpixel-order: SUBPIXELORDER + widthInMillimeters, heightInMillimeters: CARD32 possible-options: SETofOUTPUTOPTION crtcs: LISTofCRTC clones: LISTofOUTPUT @@ -593,6 +593,10 @@ dynamic changes in the display environment. 'subpixel-order' contains the resulting subpixel order of the connected device to allow correct subpixel rendering. + 'widthInMillimeters' and 'heightInMillimeters' report the physical + size of the displayed area. If unknown, or not really fixed (e.g., + for a projector), these values are both zero. + 'possible-options' indicate which options are supported by this output device. @@ -1392,10 +1396,12 @@ A.2.1 Protocol Requests added with version 1.2 1 1 Reply 1 RRCONFIGSTATUS status 2 CARD16 sequence number - 4 1+c+m+(n+p)/4 reply length + 4 3+c+m+(n+p)/4 reply length 4 TIMESTAMP timestamp 4 CRTC current connected crtc 4 SETofOUTPUTOPTION current output options + 4 CARD32 width in millimeters + 4 CARD32 height in millimeters 1 CONNECTION connection 1 SUBPIXELORDER subpixel-order 2 c number of CRTCs -- cgit v1.2.1