1 /******************************************************************************
2  *
3  * Copyright (c) 1994, 1995  Hewlett-Packard Company
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining
6  * a copy of this software and associated documentation files (the
7  * "Software"), to deal in the Software without restriction, including
8  * without limitation the rights to use, copy, modify, merge, publish,
9  * distribute, sublicense, and/or sell copies of the Software, and to
10  * permit persons to whom the Software is furnished to do so, subject to
11  * the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be included
14  * in all copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19  * IN NO EVENT SHALL HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY CLAIM,
20  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
21  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
22  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23  *
24  * Except as contained in this notice, the name of the Hewlett-Packard
25  * Company shall not be used in advertising or otherwise to promote the
26  * sale, use or other dealings in this Software without prior written
27  * authorization from the Hewlett-Packard Company.
28  *
29  *     Header file for Xlib-related DBE
30  *
31  *****************************************************************************/
32 
33 #ifndef DBE_PROTO_H
34 #define DBE_PROTO_H
35 
36 #include <X11/extensions/dbe.h>
37 
38 /* Request values used in (S)ProcDbeDispatch() */
39 #define X_DbeGetVersion                 0
40 #define X_DbeAllocateBackBufferName     1
41 #define X_DbeDeallocateBackBufferName   2
42 #define X_DbeSwapBuffers                3
43 #define X_DbeBeginIdiom                 4
44 #define X_DbeEndIdiom                   5
45 #define X_DbeGetVisualInfo              6
46 #define X_DbeGetBackBufferAttributes    7
47 
48 typedef CARD8  xDbeSwapAction;
49 typedef CARD32 xDbeBackBuffer;
50 
51 /* TYPEDEFS */
52 
53 /* Protocol data types */
54 
55 typedef struct
56 {
57     CARD32		window B32;	/* window      */
58     xDbeSwapAction	swapAction;	/* swap action */
59     CARD8		pad1;		/* unused      */
60     CARD16		pad2 B16;
61 
62 } xDbeSwapInfo;
63 
64 typedef struct
65 {
66     CARD32	visualID B32;	/* associated visual      */
67     CARD8	depth;		/* depth of visual        */
68     CARD8	perfLevel;	/* performance level hint */
69     CARD16	pad1 B16;
70 
71 } xDbeVisInfo;
72 #define sz_xDbeVisInfo	8
73 
74 typedef struct
75 {
76     CARD32	n B32;	/* number of visual info items in list  */
77 
78 } xDbeScreenVisInfo;	/* followed by n xDbeVisInfo items */
79 
80 typedef struct
81 {
82     CARD32	window B32;	/* window */
83 
84 } xDbeBufferAttributes;
85 
86 
87 /* Requests and replies */
88 
89 typedef struct
90 {
91     CARD8	reqType;	/* major-opcode: always codes->major_opcode */
92     CARD8	dbeReqType;	/* minor-opcode: always X_DbeGetVersion (0) */
93     CARD16	length B16;	/* request length: (2)                      */
94     CARD8	majorVersion;	/* client-major-version                     */
95     CARD8	minorVersion;	/* client-minor-version                     */
96     CARD16	unused B16;	/* unused                                   */
97 
98 } xDbeGetVersionReq;
99 #define sz_xDbeGetVersionReq	8
100 
101 typedef struct
102 {
103     BYTE	type;			/* Reply: X_Reply (1)   */
104     CARD8	unused;			/* unused               */
105     CARD16	sequenceNumber B16;	/* sequence number      */
106     CARD32	length B32;		/* reply length: (0)    */
107     CARD8	majorVersion;		/* server-major-version */
108     CARD8	minorVersion;		/* server-minor-version */
109     CARD16	pad1 B16;		/* unused               */
110     CARD32	pad2 B32;
111     CARD32	pad3 B32;
112     CARD32	pad4 B32;
113     CARD32	pad5 B32;
114     CARD32	pad6 B32;
115 
116 } xDbeGetVersionReply;
117 #define sz_xDbeGetVersionReply	32
118 
119 typedef struct
120 {
121     CARD8		reqType;	/* major-opcode: codes->major_opcode */
122     CARD8		dbeReqType;	/* X_DbeAllocateBackBufferName (1)   */
123     CARD16		length B16;	/* request length: (4)               */
124     CARD32		window B32;	/* window                            */
125     xDbeBackBuffer	buffer B32;	/* back buffer name                  */
126     xDbeSwapAction	swapAction;	/* swap action hint                  */
127     CARD8		pad1;		/* unused                            */
128     CARD16		pad2 B16;
129 
130 } xDbeAllocateBackBufferNameReq;
131 #define sz_xDbeAllocateBackBufferNameReq	16
132 
133 typedef struct
134 {
135     CARD8		reqType;	/* major-opcode: codes->major_opcode */
136     CARD8		dbeReqType;	/* X_DbeDeallocateBackBufferName (2) */
137     CARD16		length B16;	/* request length: (2)               */
138     xDbeBackBuffer	buffer B32;	/* back buffer name                  */
139 
140 } xDbeDeallocateBackBufferNameReq;
141 #define sz_xDbeDeallocateBackBufferNameReq	8
142 
143 typedef struct
144 {
145     CARD8	reqType;	/* major-opcode: always codes->major_opcode  */
146     CARD8	dbeReqType;	/* minor-opcode: always X_DbeSwapBuffers (3) */
147     CARD16	length B16;	/* request length: (2+2n)                    */
148     CARD32	n B32;		/* n, number of window/swap action pairs     */
149 
150 } xDbeSwapBuffersReq;		/* followed by n window/swap action pairs    */
151 #define sz_xDbeSwapBuffersReq	8
152 
153 typedef struct
154 {
155     CARD8	reqType;	/* major-opcode: always codes->major_opcode */
156     CARD8	dbeReqType;	/* minor-opcode: always X_DbeBeginIdom (4)  */
157     CARD16	length B16;	/* request length: (1)                      */
158 
159 } xDbeBeginIdiomReq;
160 #define sz_xDbeBeginIdiomReq	4
161 
162 typedef struct
163 {
164     CARD8	reqType;	/* major-opcode: always codes->major_opcode */
165     CARD8	dbeReqType;	/* minor-opcode: always X_DbeEndIdom (5)    */
166     CARD16	length B16;	/* request length: (1)                      */
167 
168 } xDbeEndIdiomReq;
169 #define sz_xDbeEndIdiomReq	4
170 
171 typedef struct
172 {
173     CARD8	reqType;	/* always codes->major_opcode     */
174     CARD8	dbeReqType;	/* always X_DbeGetVisualInfo (6)  */
175     CARD16	length B16;	/* request length: (2+n)          */
176     CARD32	n B32;		/* n, number of drawables in list */
177 
178 } xDbeGetVisualInfoReq;		/* followed by n drawables        */
179 #define sz_xDbeGetVisualInfoReq	8
180 
181 typedef struct
182 {
183     BYTE	type;			/* Reply: X_Reply (1)                */
184     CARD8	unused;			/* unused                            */
185     CARD16	sequenceNumber B16;	/* sequence number                   */
186     CARD32	length B32;		/* reply length                      */
187     CARD32	m;			/* m, number of visual infos in list */
188     CARD32	pad1 B32;		/* unused                            */
189     CARD32	pad2 B32;
190     CARD32	pad3 B32;
191     CARD32	pad4 B32;
192     CARD32	pad5 B32;
193 
194 } xDbeGetVisualInfoReply;		/* followed by m visual infos        */
195 #define sz_xDbeGetVisualInfoReply	32
196 
197 typedef struct
198 {
199     CARD8		reqType;	/* always codes->major_opcode       */
200     CARD8		dbeReqType;	/* X_DbeGetBackBufferAttributes (7) */
201     CARD16		length B16;	/* request length: (2)              */
202     xDbeBackBuffer	buffer B32;	/* back buffer name                 */
203 
204 } xDbeGetBackBufferAttributesReq;
205 #define sz_xDbeGetBackBufferAttributesReq	8
206 
207 typedef struct
208 {
209     BYTE	type;			/* Reply: X_Reply (1) */
210     CARD8	unused;			/* unused             */
211     CARD16	sequenceNumber B16;	/* sequence number    */
212     CARD32	length B32;		/* reply length: (0)  */
213     CARD32	attributes;		/* attributes         */
214     CARD32	pad1 B32;		/* unused             */
215     CARD32	pad2 B32;
216     CARD32	pad3 B32;
217     CARD32	pad4 B32;
218     CARD32	pad5 B32;
219 
220 } xDbeGetBackBufferAttributesReply;
221 #define sz_xDbeGetBackBufferAttributesReply	32
222 
223 #endif /* DBE_PROTO_H */
224 
225