117ca54c3Smrg/******************************************************************************
217ca54c3Smrg *
317ca54c3Smrg * Copyright (c) 1994, 1995  Hewlett-Packard Company
417ca54c3Smrg *
517ca54c3Smrg * Permission is hereby granted, free of charge, to any person obtaining
617ca54c3Smrg * a copy of this software and associated documentation files (the
717ca54c3Smrg * "Software"), to deal in the Software without restriction, including
817ca54c3Smrg * without limitation the rights to use, copy, modify, merge, publish,
917ca54c3Smrg * distribute, sublicense, and/or sell copies of the Software, and to
1017ca54c3Smrg * permit persons to whom the Software is furnished to do so, subject to
1117ca54c3Smrg * the following conditions:
1217ca54c3Smrg *
1317ca54c3Smrg * The above copyright notice and this permission notice shall be included
1417ca54c3Smrg * in all copies or substantial portions of the Software.
1517ca54c3Smrg *
1617ca54c3Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
1717ca54c3Smrg * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1817ca54c3Smrg * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
1917ca54c3Smrg * IN NO EVENT SHALL HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY CLAIM,
2017ca54c3Smrg * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
2117ca54c3Smrg * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
2217ca54c3Smrg * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2317ca54c3Smrg *
2417ca54c3Smrg * Except as contained in this notice, the name of the Hewlett-Packard
2517ca54c3Smrg * Company shall not be used in advertising or otherwise to promote the
2617ca54c3Smrg * sale, use or other dealings in this Software without prior written
2717ca54c3Smrg * authorization from the Hewlett-Packard Company.
2817ca54c3Smrg *
2917ca54c3Smrg *     Header file for Xlib-related DBE
3017ca54c3Smrg *
3117ca54c3Smrg *****************************************************************************/
3217ca54c3Smrg
3317ca54c3Smrg#ifndef DBE_PROTO_H
3417ca54c3Smrg#define DBE_PROTO_H
3517ca54c3Smrg
3617ca54c3Smrg#include <X11/extensions/dbe.h>
3717ca54c3Smrg
3817ca54c3Smrg/* Request values used in (S)ProcDbeDispatch() */
3917ca54c3Smrg#define X_DbeGetVersion                 0
4017ca54c3Smrg#define X_DbeAllocateBackBufferName     1
4117ca54c3Smrg#define X_DbeDeallocateBackBufferName   2
4217ca54c3Smrg#define X_DbeSwapBuffers                3
4317ca54c3Smrg#define X_DbeBeginIdiom                 4
4417ca54c3Smrg#define X_DbeEndIdiom                   5
4517ca54c3Smrg#define X_DbeGetVisualInfo              6
4617ca54c3Smrg#define X_DbeGetBackBufferAttributes    7
4717ca54c3Smrg
4817ca54c3Smrgtypedef CARD8  xDbeSwapAction;
4917ca54c3Smrgtypedef CARD32 xDbeBackBuffer;
5017ca54c3Smrg
5117ca54c3Smrg/* TYPEDEFS */
5217ca54c3Smrg
5317ca54c3Smrg/* Protocol data types */
5417ca54c3Smrg
5517ca54c3Smrgtypedef struct
5617ca54c3Smrg{
57ea1d6981Smrg    CARD32		window;		/* window      */
5817ca54c3Smrg    xDbeSwapAction	swapAction;	/* swap action */
5917ca54c3Smrg    CARD8		pad1;		/* unused      */
60ea1d6981Smrg    CARD16		pad2;
6117ca54c3Smrg
6217ca54c3Smrg} xDbeSwapInfo;
6317ca54c3Smrg
6417ca54c3Smrgtypedef struct
6517ca54c3Smrg{
66ea1d6981Smrg    CARD32	visualID;	/* associated visual      */
6717ca54c3Smrg    CARD8	depth;		/* depth of visual        */
6817ca54c3Smrg    CARD8	perfLevel;	/* performance level hint */
69ea1d6981Smrg    CARD16	pad1;
7017ca54c3Smrg
7117ca54c3Smrg} xDbeVisInfo;
7217ca54c3Smrg#define sz_xDbeVisInfo	8
7317ca54c3Smrg
7417ca54c3Smrgtypedef struct
7517ca54c3Smrg{
76ea1d6981Smrg    CARD32	n;	/* number of visual info items in list  */
7717ca54c3Smrg
7817ca54c3Smrg} xDbeScreenVisInfo;	/* followed by n xDbeVisInfo items */
7917ca54c3Smrg
8017ca54c3Smrgtypedef struct
8117ca54c3Smrg{
82ea1d6981Smrg    CARD32	window;		/* window */
8317ca54c3Smrg
8417ca54c3Smrg} xDbeBufferAttributes;
8517ca54c3Smrg
8617ca54c3Smrg
8717ca54c3Smrg/* Requests and replies */
8817ca54c3Smrg
8917ca54c3Smrgtypedef struct
9017ca54c3Smrg{
9117ca54c3Smrg    CARD8	reqType;	/* major-opcode: always codes->major_opcode */
9217ca54c3Smrg    CARD8	dbeReqType;	/* minor-opcode: always X_DbeGetVersion (0) */
93ea1d6981Smrg    CARD16	length;		/* request length: (2)                      */
9417ca54c3Smrg    CARD8	majorVersion;	/* client-major-version                     */
9517ca54c3Smrg    CARD8	minorVersion;	/* client-minor-version                     */
96ea1d6981Smrg    CARD16	unused;		/* unused                                   */
9717ca54c3Smrg
9817ca54c3Smrg} xDbeGetVersionReq;
9917ca54c3Smrg#define sz_xDbeGetVersionReq	8
10017ca54c3Smrg
10117ca54c3Smrgtypedef struct
10217ca54c3Smrg{
10317ca54c3Smrg    BYTE	type;			/* Reply: X_Reply (1)   */
10417ca54c3Smrg    CARD8	unused;			/* unused               */
105ea1d6981Smrg    CARD16	sequenceNumber;		/* sequence number      */
106ea1d6981Smrg    CARD32	length;			/* reply length: (0)    */
10717ca54c3Smrg    CARD8	majorVersion;		/* server-major-version */
10817ca54c3Smrg    CARD8	minorVersion;		/* server-minor-version */
109ea1d6981Smrg    CARD16	pad1;			/* unused               */
110ea1d6981Smrg    CARD32	pad2;
111ea1d6981Smrg    CARD32	pad3;
112ea1d6981Smrg    CARD32	pad4;
113ea1d6981Smrg    CARD32	pad5;
114ea1d6981Smrg    CARD32	pad6;
11517ca54c3Smrg
11617ca54c3Smrg} xDbeGetVersionReply;
11717ca54c3Smrg#define sz_xDbeGetVersionReply	32
11817ca54c3Smrg
11917ca54c3Smrgtypedef struct
12017ca54c3Smrg{
12117ca54c3Smrg    CARD8		reqType;	/* major-opcode: codes->major_opcode */
12217ca54c3Smrg    CARD8		dbeReqType;	/* X_DbeAllocateBackBufferName (1)   */
123ea1d6981Smrg    CARD16		length;		/* request length: (4)               */
124ea1d6981Smrg    CARD32		window;		/* window                            */
125ea1d6981Smrg    xDbeBackBuffer	buffer;		/* back buffer name                  */
12617ca54c3Smrg    xDbeSwapAction	swapAction;	/* swap action hint                  */
12717ca54c3Smrg    CARD8		pad1;		/* unused                            */
128ea1d6981Smrg    CARD16		pad2;
12917ca54c3Smrg
13017ca54c3Smrg} xDbeAllocateBackBufferNameReq;
13117ca54c3Smrg#define sz_xDbeAllocateBackBufferNameReq	16
13217ca54c3Smrg
13317ca54c3Smrgtypedef struct
13417ca54c3Smrg{
13517ca54c3Smrg    CARD8		reqType;	/* major-opcode: codes->major_opcode */
13617ca54c3Smrg    CARD8		dbeReqType;	/* X_DbeDeallocateBackBufferName (2) */
137ea1d6981Smrg    CARD16		length;		/* request length: (2)               */
138ea1d6981Smrg    xDbeBackBuffer	buffer;		/* back buffer name                  */
13917ca54c3Smrg
14017ca54c3Smrg} xDbeDeallocateBackBufferNameReq;
14117ca54c3Smrg#define sz_xDbeDeallocateBackBufferNameReq	8
14217ca54c3Smrg
14317ca54c3Smrgtypedef struct
14417ca54c3Smrg{
14517ca54c3Smrg    CARD8	reqType;	/* major-opcode: always codes->major_opcode  */
14617ca54c3Smrg    CARD8	dbeReqType;	/* minor-opcode: always X_DbeSwapBuffers (3) */
147ea1d6981Smrg    CARD16	length;		/* request length: (2+2n)                    */
148ea1d6981Smrg    CARD32	n;		/* n, number of window/swap action pairs     */
14917ca54c3Smrg
15017ca54c3Smrg} xDbeSwapBuffersReq;		/* followed by n window/swap action pairs    */
15117ca54c3Smrg#define sz_xDbeSwapBuffersReq	8
15217ca54c3Smrg
15317ca54c3Smrgtypedef struct
15417ca54c3Smrg{
15517ca54c3Smrg    CARD8	reqType;	/* major-opcode: always codes->major_opcode */
15617ca54c3Smrg    CARD8	dbeReqType;	/* minor-opcode: always X_DbeBeginIdom (4)  */
157ea1d6981Smrg    CARD16	length;		/* request length: (1)                      */
15817ca54c3Smrg
15917ca54c3Smrg} xDbeBeginIdiomReq;
16017ca54c3Smrg#define sz_xDbeBeginIdiomReq	4
16117ca54c3Smrg
16217ca54c3Smrgtypedef struct
16317ca54c3Smrg{
16417ca54c3Smrg    CARD8	reqType;	/* major-opcode: always codes->major_opcode */
16517ca54c3Smrg    CARD8	dbeReqType;	/* minor-opcode: always X_DbeEndIdom (5)    */
166ea1d6981Smrg    CARD16	length;		/* request length: (1)                      */
16717ca54c3Smrg
16817ca54c3Smrg} xDbeEndIdiomReq;
16917ca54c3Smrg#define sz_xDbeEndIdiomReq	4
17017ca54c3Smrg
17117ca54c3Smrgtypedef struct
17217ca54c3Smrg{
17317ca54c3Smrg    CARD8	reqType;	/* always codes->major_opcode     */
17417ca54c3Smrg    CARD8	dbeReqType;	/* always X_DbeGetVisualInfo (6)  */
175ea1d6981Smrg    CARD16	length;		/* request length: (2+n)          */
176ea1d6981Smrg    CARD32	n;		/* n, number of drawables in list */
17717ca54c3Smrg
17817ca54c3Smrg} xDbeGetVisualInfoReq;		/* followed by n drawables        */
17917ca54c3Smrg#define sz_xDbeGetVisualInfoReq	8
18017ca54c3Smrg
18117ca54c3Smrgtypedef struct
18217ca54c3Smrg{
18317ca54c3Smrg    BYTE	type;			/* Reply: X_Reply (1)                */
18417ca54c3Smrg    CARD8	unused;			/* unused                            */
185ea1d6981Smrg    CARD16	sequenceNumber;		/* sequence number                   */
186ea1d6981Smrg    CARD32	length;			/* reply length                      */
18717ca54c3Smrg    CARD32	m;			/* m, number of visual infos in list */
188ea1d6981Smrg    CARD32	pad1;			/* unused                            */
189ea1d6981Smrg    CARD32	pad2;
190ea1d6981Smrg    CARD32	pad3;
191ea1d6981Smrg    CARD32	pad4;
192ea1d6981Smrg    CARD32	pad5;
19317ca54c3Smrg
19417ca54c3Smrg} xDbeGetVisualInfoReply;		/* followed by m visual infos        */
19517ca54c3Smrg#define sz_xDbeGetVisualInfoReply	32
19617ca54c3Smrg
19717ca54c3Smrgtypedef struct
19817ca54c3Smrg{
19917ca54c3Smrg    CARD8		reqType;	/* always codes->major_opcode       */
20017ca54c3Smrg    CARD8		dbeReqType;	/* X_DbeGetBackBufferAttributes (7) */
201ea1d6981Smrg    CARD16		length;		/* request length: (2)              */
202ea1d6981Smrg    xDbeBackBuffer	buffer;		/* back buffer name                 */
20317ca54c3Smrg
20417ca54c3Smrg} xDbeGetBackBufferAttributesReq;
20517ca54c3Smrg#define sz_xDbeGetBackBufferAttributesReq	8
20617ca54c3Smrg
20717ca54c3Smrgtypedef struct
20817ca54c3Smrg{
20917ca54c3Smrg    BYTE	type;			/* Reply: X_Reply (1) */
21017ca54c3Smrg    CARD8	unused;			/* unused             */
211ea1d6981Smrg    CARD16	sequenceNumber;		/* sequence number    */
212ea1d6981Smrg    CARD32	length;			/* reply length: (0)  */
21317ca54c3Smrg    CARD32	attributes;		/* attributes         */
214ea1d6981Smrg    CARD32	pad1;			/* unused             */
215ea1d6981Smrg    CARD32	pad2;
216ea1d6981Smrg    CARD32	pad3;
217ea1d6981Smrg    CARD32	pad4;
218ea1d6981Smrg    CARD32	pad5;
21917ca54c3Smrg
22017ca54c3Smrg} xDbeGetBackBufferAttributesReply;
22117ca54c3Smrg#define sz_xDbeGetBackBufferAttributesReply	32
22217ca54c3Smrg
22317ca54c3Smrg#endif /* DBE_PROTO_H */
22417ca54c3Smrg
225