1 module x11.extensions.randr;
2 
3 version(Posix):
4 
5 /*
6  * Copyright © 2000 Compaq Computer Corporation
7  * Copyright © 2002 Hewlett Packard Company
8  * Copyright © 2006 Intel Corporation
9  * Copyright © 2008 Red Hat, Inc.
10  *
11  * Permission to use, copy, modify, distribute, and sell this software and its
12  * documentation for any purpose is hereby granted without fee, provided that
13  * the above copyright notice appear in all copies and that both that copyright
14  * notice and this permission notice appear in supporting documentation, and
15  * that the name of the copyright holders not be used in advertising or
16  * publicity pertaining to distribution of the software without specific,
17  * written prior permission.  The copyright holders make no representations
18  * about the suitability of this software for any purpose.  It is provided "as
19  * is" without express or implied warranty.
20  *
21  * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
22  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
23  * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
24  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
25  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
26  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
27  * OF THIS SOFTWARE.
28  *
29  * Author:  Jim Gettys, HP Labs, Hewlett-Packard, Inc.
30  *	    Keith Packard, Intel Corporation
31  */
32 
33 alias ushort Rotation;
34 alias ushort SizeID;
35 alias ushort SubpixelOrder;
36 alias ushort Connection;
37 alias ushort XRandrRotation;
38 alias ushort XRandrSizeID;
39 alias ushort XRandrSubpixelOrder;
40 alias ulong XRandrModeFlags;
41 
42 enum RANDR_NAME			= "RANDR";
43 enum RANDR_MAJOR		= 1;
44 enum RANDR_MINOR		= 4;
45 
46 enum RRNumberErrors		= 4;
47 enum RRNumberEvents		= 2;
48 enum RRNumberRequests	= 42;
49 
50 enum X_RRQueryVersion	= 0;
51 
52 enum X_RROldGetScreenInfo	= 1;
53 enum X_RR1_0SetScreenConfig	= 2;
54 enum X_RRSetScreenConfig	= 2;
55 enum X_RROldScreenChangeSelectInput	= 3;
56 enum X_RRSelectInput		= 4;
57 enum X_RRGetScreenInfo		= 5;
58 enum X_RRGetScreenSizeRange	= 6;
59 enum X_RRSetScreenSize		= 7;
60 enum X_RRGetScreenResources	= 8;
61 enum X_RRGetOutputInfo		= 9;
62 enum X_RRListOutputProperties = 10;
63 enum X_RRQueryOutputProperty = 11;
64 enum X_RRConfigureOutputProperty = 12;
65 enum X_RRChangeOutputProperty = 13;
66 enum X_RRDeleteOutputProperty = 14;
67 enum X_RRGetOutputProperty 	= 15;
68 enum X_RRCreateMode			= 16;
69 enum X_RRDestroyMode		= 17;
70 enum X_RRAddOutputMode		= 18;
71 enum X_RRDeleteOutputMode	= 19;
72 enum X_RRGetCrtcInfo		= 20;
73 enum X_RRSetCrtcConfig	    = 21;
74 enum X_RRGetCrtcGammaSize	= 22;
75 enum X_RRGetCrtcGamma		= 23;
76 enum X_RRSetCrtcGamma		= 24;
77 enum X_RRGetScreenResourcesCurrent = 25;
78 enum X_RRSetCrtcTransform	= 26;
79 enum X_RRGetCrtcTransform	= 27;
80 enum X_RRGetPanning			= 28;
81 enum X_RRSetPanning			= 29;
82 enum X_RRSetOutputPrimary	= 30;
83 enum X_RRGetOutputPrimary	= 31;
84 enum X_RRGetProviders		= 32;
85 enum X_RRGetProviderInfo	= 33;
86 enum X_RRSetProviderOffloadSink = 34;
87 enum X_RRSetProviderOutputSource = 35;
88 enum X_RRListProviderProperties = 36;
89 enum X_RRQueryProviderProperty = 37;
90 enum X_RRConfigureProviderProperty = 38;
91 enum X_RRChangeProviderProperty = 39;
92 enum X_RRDeleteProviderProperty = 40;
93 enum X_RRGetProviderProperty = 41;
94 
95 enum RRTransformUnit		= (1L << 0);
96 enum RRTransformScaleUp	    = (1L << 1);
97 enum RRTransformScaleDown	= (1L << 2);
98 enum RRTransformProjective	= (1L << 3);
99 
100 enum RRScreenChangeNotifyMask = (1L << 0);
101 enum RRCrtcChangeNotifyMask	= (1L << 1);
102 enum RROutputChangeNotifyMask = (1L << 2);
103 enum RROutputPropertyNotifyMask = (1L << 3);
104 enum RRProviderChangeNotifyMask = (1L << 4);
105 enum RRProviderPropertyNotifyMask = (1L << 5);
106 enum RRResourceChangeNotifyMask = (1L << 6);
107 
108 enum RRScreenChangeNotify	= 0;
109 enum RRNotify				= 1;
110 
111 enum  RRNotify_CrtcChange	= 0;
112 enum  RRNotify_OutputChange	= 1;
113 enum  RRNotify_OutputProperty = 2;
114 enum  RRNotify_ProviderChange = 3;
115 enum  RRNotify_ProviderProperty = 4;
116 enum  RRNotify_ResourceChange = 5;
117 
118 enum RR_Rotate_0			= 1;
119 enum RR_Rotate_90			= 2;
120 enum RR_Rotate_180			= 4;
121 enum RR_Rotate_270			= 8;
122 
123 enum RR_Reflect_X			= 16;
124 enum RR_Reflect_Y			= 32;
125 
126 enum RRSetConfigSuccess		= 0;
127 enum RRSetConfigInvalidConfigTime = 1;
128 enum RRSetConfigInvalidTime	= 2;
129 enum RRSetConfigFailed		= 3;
130 
131 enum RR_HSyncPositive		= 0x00000001;
132 enum RR_HSyncNegative		= 0x00000002;
133 enum RR_VSyncPositive		= 0x00000004;
134 enum RR_VSyncNegative		= 0x00000008;
135 enum RR_Interlace			= 0x00000010;
136 enum RR_DoubleScan			= 0x00000020;
137 enum RR_CSync				= 0x00000040;
138 enum RR_CSyncPositive		= 0x00000080;
139 enum RR_CSyncNegative		= 0x00000100;
140 enum RR_HSkewPresent		= 0x00000200;
141 enum RR_BCast				= 0x00000400;
142 enum RR_PixelMultiplex		= 0x00000800;
143 enum RR_DoubleClock			= 0x00001000;
144 enum RR_ClockDivideBy2		= 0x00002000;
145 
146 enum RR_Connected			= 0;
147 enum RR_Disconnected		= 1;
148 enum RR_UnknownConnection	= 2;
149 
150 enum BadRROutput			= 0;
151 enum BadRRCrtc				= 1;
152 enum BadRRMode				= 2;
153 enum BadRRProvider			= 3;
154 
155 enum RR_PROPERTY_BACKLIGHT	= "Backlight";
156 enum RR_PROPERTY_RANDR_EDID	= "EDID";
157 enum RR_PROPERTY_SIGNAL_FORMAT = "SignalFormat";
158 enum RR_PROPERTY_SIGNAL_PROPERTIES = "SignalProperties";
159 enum RR_PROPERTY_CONNECTOR_TYPE	= "ConnectorType";
160 enum RR_PROPERTY_CONNECTOR_NUMBER = "ConnectorNumber";
161 enum RR_PROPERTY_COMPATIBILITY_LIST	= "CompatibilityList";
162 enum RR_PROPERTY_CLONE_LIST	= "CloneList";
163 enum RR_PROPERTY_BORDER		= "Border";
164 enum RR_PROPERTY_BORDER_DIMENSIONS = "BorderDimensions";
165 
166 enum RR_Capability_None = 0;
167 enum RR_Capability_SourceOutput = 1;
168 enum RR_Capability_SinkOutput = 2;
169 enum RR_Capability_SourceOffload = 4;
170 enum RR_Capability_SinkOffload = 8;