1 /* 2 * Copyright © 2008 Red Hat, Inc. 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * copy of this software and associated documentation files (the "Soft- 6 * ware"), to deal in the Software without restriction, including without 7 * limitation the rights to use, copy, modify, merge, publish, distribute, 8 * and/or sell copies of the Software, and to permit persons to whom the 9 * Software is furnished to do so, provided that the above copyright 10 * notice(s) and this permission notice appear in all copies of the Soft- 11 * ware and that both the above copyright notice(s) and this permission 12 * notice appear in supporting documentation. 13 * 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- 16 * ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY 17 * RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN 18 * THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE- 19 * QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 20 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 21 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR- 22 * MANCE OF THIS SOFTWARE. 23 * 24 * Except as contained in this notice, the name of a copyright holder shall 25 * not be used in advertising or otherwise to promote the sale, use or 26 * other dealings in this Software without prior written authorization of 27 * the copyright holder. 28 * 29 * Authors: 30 * Kristian Høgsberg (krh@redhat.com) 31 */ 32 33 #ifndef _DRI2_PROTO_H_ 34 #define _DRI2_PROTO_H_ 35 36 #define DRI2_NAME "DRI2" 37 #define DRI2_MAJOR 1 38 #define DRI2_MINOR 2 39 40 #define DRI2NumberErrors 0 41 #define DRI2NumberEvents 2 42 #define DRI2NumberRequests 13 43 44 #define X_DRI2QueryVersion 0 45 #define X_DRI2Connect 1 46 #define X_DRI2Authenticate 2 47 #define X_DRI2CreateDrawable 3 48 #define X_DRI2DestroyDrawable 4 49 #define X_DRI2GetBuffers 5 50 #define X_DRI2CopyRegion 6 51 #define X_DRI2GetBuffersWithFormat 7 52 #define X_DRI2SwapBuffers 8 53 #define X_DRI2GetMSC 9 54 #define X_DRI2WaitMSC 10 55 #define X_DRI2WaitSBC 11 56 #define X_DRI2SwapInterval 12 57 58 typedef struct { 59 CARD32 attachment B32; 60 CARD32 name B32; 61 CARD32 pitch B32; 62 CARD32 cpp B32; 63 CARD32 flags B32; 64 } xDRI2Buffer; 65 66 typedef struct { 67 CARD8 reqType; 68 CARD8 dri2ReqType; 69 CARD16 length B16; 70 CARD32 majorVersion B32; 71 CARD32 minorVersion B32; 72 } xDRI2QueryVersionReq; 73 #define sz_xDRI2QueryVersionReq 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 } xDRI2QueryVersionReply; 87 #define sz_xDRI2QueryVersionReply 32 88 89 typedef struct { 90 CARD8 reqType; 91 CARD8 dri2ReqType; 92 CARD16 length B16; 93 CARD32 window B32; 94 CARD32 driverType B32; 95 } xDRI2ConnectReq; 96 #define sz_xDRI2ConnectReq 12 97 98 typedef struct { 99 BYTE type; /* X_Reply */ 100 BYTE pad1; 101 CARD16 sequenceNumber B16; 102 CARD32 length B32; 103 CARD32 driverNameLength B32; 104 CARD32 deviceNameLength B32; 105 CARD32 pad2 B32; 106 CARD32 pad3 B32; 107 CARD32 pad4 B32; 108 CARD32 pad5 B32; 109 } xDRI2ConnectReply; 110 #define sz_xDRI2ConnectReply 32 111 112 typedef struct { 113 CARD8 reqType; 114 CARD8 dri2ReqType; 115 CARD16 length B16; 116 CARD32 window B32; 117 CARD32 magic B32; 118 } xDRI2AuthenticateReq; 119 #define sz_xDRI2AuthenticateReq 12 120 121 typedef struct { 122 BYTE type; /* X_Reply */ 123 BYTE pad1; 124 CARD16 sequenceNumber B16; 125 CARD32 length B32; 126 CARD32 authenticated B32; 127 CARD32 pad2 B32; 128 CARD32 pad3 B32; 129 CARD32 pad4 B32; 130 CARD32 pad5 B32; 131 CARD32 pad6 B32; 132 } xDRI2AuthenticateReply; 133 #define sz_xDRI2AuthenticateReply 32 134 135 typedef struct { 136 CARD8 reqType; 137 CARD8 dri2ReqType; 138 CARD16 length B16; 139 CARD32 drawable B32; 140 } xDRI2CreateDrawableReq; 141 #define sz_xDRI2CreateDrawableReq 8 142 143 typedef struct { 144 CARD8 reqType; 145 CARD8 dri2ReqType; 146 CARD16 length B16; 147 CARD32 drawable B32; 148 } xDRI2DestroyDrawableReq; 149 #define sz_xDRI2DestroyDrawableReq 8 150 151 typedef struct { 152 CARD8 reqType; 153 CARD8 dri2ReqType; 154 CARD16 length B16; 155 CARD32 drawable B32; 156 CARD32 count B32; 157 } xDRI2GetBuffersReq; 158 #define sz_xDRI2GetBuffersReq 12 159 160 typedef struct { 161 BYTE type; /* X_Reply */ 162 BYTE pad1; 163 CARD16 sequenceNumber B16; 164 CARD32 length B32; 165 CARD32 width B32; 166 CARD32 height B32; 167 CARD32 count B32; 168 CARD32 pad2 B32; 169 CARD32 pad3 B32; 170 CARD32 pad4 B32; 171 } xDRI2GetBuffersReply; 172 #define sz_xDRI2GetBuffersReply 32 173 174 typedef struct { 175 CARD8 reqType; 176 CARD8 dri2ReqType; 177 CARD16 length B16; 178 CARD32 drawable B32; 179 CARD32 region B32; 180 CARD32 dest B32; 181 CARD32 src B32; 182 } xDRI2CopyRegionReq; 183 #define sz_xDRI2CopyRegionReq 20 184 185 typedef struct { 186 BYTE type; /* X_Reply */ 187 BYTE pad1; 188 CARD16 sequenceNumber B16; 189 CARD32 length B32; 190 CARD32 pad2 B32; 191 CARD32 pad3 B32; 192 CARD32 pad4 B32; 193 CARD32 pad5 B32; 194 CARD32 pad6 B32; 195 CARD32 pad7 B32; 196 } xDRI2CopyRegionReply; 197 #define sz_xDRI2CopyRegionReply 32 198 199 typedef struct { 200 CARD8 reqType; 201 CARD8 dri2ReqType; 202 CARD16 length B16; 203 CARD32 drawable B32; 204 CARD32 target_msc_hi B32; 205 CARD32 target_msc_lo B32; 206 CARD32 divisor_hi B32; 207 CARD32 divisor_lo B32; 208 CARD32 remainder_hi B32; 209 CARD32 remainder_lo B32; 210 } xDRI2SwapBuffersReq; 211 #define sz_xDRI2SwapBuffersReq 32 212 213 typedef struct { 214 BYTE type; /* X_Reply */ 215 BYTE pad1; 216 CARD16 sequenceNumber B16; 217 CARD32 length B32; 218 CARD32 swap_hi B32; 219 CARD32 swap_lo B32; 220 CARD32 pad2 B32; 221 CARD32 pad3 B32; 222 CARD32 pad4 B32; 223 CARD32 pad5 B32; 224 } xDRI2SwapBuffersReply; 225 #define sz_xDRI2SwapBuffersReply 32 226 227 #endif 228