mirror of
https://gitlab.freedesktop.org/xorg/proto/xorgproto.git
synced 2025-12-20 04:40:10 +01:00
Add [GS]etOutputPrimary
This commit is contained in:
parent
1334866b4a
commit
d904495a4c
3 changed files with 110 additions and 4 deletions
4
randr.h
4
randr.h
|
|
@ -44,7 +44,7 @@ typedef unsigned long XRandrModeFlags;
|
|||
|
||||
#define RRNumberErrors 3
|
||||
#define RRNumberEvents 2
|
||||
#define RRNumberRequests 30
|
||||
#define RRNumberRequests 32
|
||||
|
||||
#define X_RRQueryVersion 0
|
||||
/* we skip 1 to make old clients fail pretty immediately */
|
||||
|
|
@ -84,6 +84,8 @@ typedef unsigned long XRandrModeFlags;
|
|||
#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)
|
||||
|
|
|
|||
31
randrproto.h
31
randrproto.h
|
|
@ -614,6 +614,37 @@ typedef struct {
|
|||
|
||||
#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
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1193,6 +1193,51 @@ dynamic changes in the display environment.
|
|||
'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
|
||||
|
|
@ -1360,7 +1405,7 @@ list of what each version provided:
|
|||
modes
|
||||
|
||||
1.3: Added cheap version of RRGetScreenResources. Added CRTC
|
||||
transformations. Added panning.
|
||||
transformations. Added panning. Added primary outputs.
|
||||
|
||||
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
|
||||
|
|
@ -1369,8 +1414,9 @@ 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. Version 1.3 adds a cheap version of
|
||||
GetScreenResources to avoid expensive DDC operations, and CRTC
|
||||
transformations. 1.2 and 1.3 are backward-compatible with 1.1.
|
||||
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.
|
||||
|
||||
❧❧❧❧❧❧❧❧❧❧❧
|
||||
|
||||
|
|
@ -2038,6 +2084,33 @@ A.2.2 Protocol Requests added with version 1.3
|
|||
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
|
||||
|
||||
┌───
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue