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