1 /* 2 * $XFree86: xc/include/extensions/randrproto.h,v 1.6 2002/09/29 23:39:43 keithp Exp $ 3 * 4 * Copyright © 2000 Compaq Computer Corporation 5 * Copyright © 2002 Hewlett-Packard Company 6 * 7 * Permission to use, copy, modify, distribute, and sell this software and its 8 * documentation for any purpose is hereby granted without fee, provided that 9 * the above copyright notice appear in all copies and that both that 10 * copyright notice and this permission notice appear in supporting 11 * documentation, and that the name of Compaq or HP not be used in advertising 12 * or publicity pertaining to distribution of the software without specific, 13 * written prior permission. Compaq and HP makes no representations about the 14 * suitability of this software for any purpose. It is provided "as is" 15 * without express or implied warranty. 16 * 17 * HP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL 18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL COMPAQ 19 * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 20 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 21 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 22 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 23 * 24 * Author: Jim Gettys, Hewlett-Packard Company, Inc. 25 */ 26 27 /* note that RANDR 1.0 is incompatible with version 0.0, or 0.1 */ 28 /* V1.0 removes depth switching from the protocol */ 29 #ifndef _XRANDRP_H_ 30 #define _XRANDRP_H_ 31 32 #include <X11/extensions/randr.h> 33 34 #define Window CARD32 35 #define Drawable CARD32 36 #define Font CARD32 37 #define Pixmap CARD32 38 #define Cursor CARD32 39 #define Colormap CARD32 40 #define GContext CARD32 41 #define Atom CARD32 42 #define Time CARD32 43 #define KeyCode CARD8 44 #define KeySym CARD32 45 46 #define Rotation CARD16 47 #define SizeID CARD16 48 #define SubpixelOrder CARD16 49 50 /* 51 * data structures 52 */ 53 54 typedef struct { 55 CARD16 widthInPixels B16; 56 CARD16 heightInPixels B16; 57 CARD16 widthInMillimeters B16; 58 CARD16 heightInMillimeters B16; 59 } xScreenSizes; 60 #define sz_xScreenSizes 8 61 62 /* 63 * requests and replies 64 */ 65 66 typedef struct { 67 CARD8 reqType; 68 CARD8 randrReqType; 69 CARD16 length B16; 70 CARD32 majorVersion B32; 71 CARD32 minorVersion B32; 72 } xRRQueryVersionReq; 73 #define sz_xRRQueryVersionReq 12 74 75 typedef struct { 76 BYTE type; /* X_Reply */ 77 BYTE pad1; 78 CARD16 sequenceNumber B16; 79 CARD32 length B32; 80 CARD32 majorVersion B32; 81 CARD32 minorVersion B32; 82 CARD32 pad2 B32; 83 CARD32 pad3 B32; 84 CARD32 pad4 B32; 85 CARD32 pad5 B32; 86 } xRRQueryVersionReply; 87 #define sz_xRRQueryVersionReply 32 88 89 typedef struct { 90 CARD8 reqType; 91 CARD8 randrReqType; 92 CARD16 length B16; 93 Window window B32; 94 } xRRGetScreenInfoReq; 95 #define sz_xRRGetScreenInfoReq 8 96 97 /* 98 * the xRRScreenInfoReply structure is followed by: 99 * 100 * the size information 101 */ 102 103 104 typedef struct { 105 BYTE type; /* X_Reply */ 106 BYTE setOfRotations; 107 CARD16 sequenceNumber B16; 108 CARD32 length B32; 109 Window root B32; 110 Time timestamp B32; 111 Time configTimestamp B32; 112 CARD16 nSizes B16; 113 SizeID sizeID B16; 114 Rotation rotation B16; 115 CARD16 rate B16; 116 CARD16 nrateEnts B16; 117 CARD16 pad B16; 118 } xRRGetScreenInfoReply; 119 #define sz_xRRGetScreenInfoReply 32 120 121 typedef struct { 122 CARD8 reqType; 123 CARD8 randrReqType; 124 CARD16 length B16; 125 Drawable drawable B32; 126 Time timestamp B32; 127 Time configTimestamp B32; 128 SizeID sizeID B16; 129 Rotation rotation B16; 130 } xRR1_0SetScreenConfigReq; 131 #define sz_xRR1_0SetScreenConfigReq 20 132 133 typedef struct { 134 CARD8 reqType; 135 CARD8 randrReqType; 136 CARD16 length B16; 137 Drawable drawable B32; 138 Time timestamp B32; 139 Time configTimestamp B32; 140 SizeID sizeID B16; 141 Rotation rotation B16; 142 CARD16 rate B16; 143 CARD16 pad B16; 144 } xRRSetScreenConfigReq; 145 #define sz_xRRSetScreenConfigReq 24 146 147 typedef struct { 148 BYTE type; /* X_Reply */ 149 CARD8 status; 150 CARD16 sequenceNumber B16; 151 CARD32 length B32; 152 Time newTimestamp B32; 153 Time newConfigTimestamp B32; 154 Window root; 155 CARD16 subpixelOrder B16; 156 CARD16 pad4 B16; 157 CARD32 pad5 B32; 158 CARD32 pad6 B32; 159 } xRRSetScreenConfigReply; 160 #define sz_xRRSetScreenConfigReply 32 161 162 typedef struct { 163 CARD8 reqType; 164 CARD8 randrReqType; 165 CARD16 length B16; 166 Window window B32; 167 CARD16 enable B16; 168 CARD16 pad2 B16; 169 } xRRSelectInputReq; 170 #define sz_xRRSelectInputReq 12 171 172 #define sz_xRRSelectInputReq 12 173 174 /* 175 * event 176 */ 177 typedef struct { 178 CARD8 type; /* always evBase + ScreenChangeNotify */ 179 CARD8 rotation; /* new rotation */ 180 CARD16 sequenceNumber B16; 181 Time timestamp B32; /* time screen was changed */ 182 Time configTimestamp B32; /* time config data was changed */ 183 Window root B32; /* root window */ 184 Window window B32; /* window requesting notification */ 185 SizeID sizeID B16; /* new size ID */ 186 CARD16 subpixelOrder B16; /* subpixel order */ 187 CARD16 widthInPixels B16; /* new size */ 188 CARD16 heightInPixels B16; 189 CARD16 widthInMillimeters B16; 190 CARD16 heightInMillimeters B16; 191 } xRRScreenChangeNotifyEvent; 192 #define sz_xRRScreenChangeNotifyEvent 32 193 194 #undef Window 195 #undef Drawable 196 #undef Font 197 #undef Pixmap 198 #undef Cursor 199 #undef Colormap 200 #undef GContext 201 #undef Atom 202 #undef Time 203 #undef KeyCode 204 #undef KeySym 205 #undef Rotation 206 #undef SizeID 207 #undef SubpixelOrder 208 209 #endif /* _XRANDRP_H_ */ 210