Home | History | Annotate | Download | only in x11
      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 Hgsberg (krh (at) 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