]> git.sesse.net Git - rdpsrv/blobdiff - Xserver/include/extensions/Xdbeproto.h
Import X server from vnc-3.3.7.
[rdpsrv] / Xserver / include / extensions / Xdbeproto.h
diff --git a/Xserver/include/extensions/Xdbeproto.h b/Xserver/include/extensions/Xdbeproto.h
new file mode 100644 (file)
index 0000000..e347373
--- /dev/null
@@ -0,0 +1,277 @@
+/* $XConsortium: Xdbeproto.h /main/3 1995/09/22 10:20:16 dpw $ */
+/******************************************************************************
+ * 
+ * Copyright (c) 1994, 1995  Hewlett-Packard Company
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ * 
+ * Except as contained in this notice, the name of the Hewlett-Packard
+ * Company shall not be used in advertising or otherwise to promote the
+ * sale, use or other dealings in this Software without prior written
+ * authorization from the Hewlett-Packard Company.
+ * 
+ *     Header file for Xlib-related DBE
+ *
+ *****************************************************************************/
+
+
+#ifndef XDBE_PROTO_H
+#define XDBE_PROTO_H
+
+/* INCLUDES */
+
+
+/* DEFINES */
+
+/* Values for swap_action field of XdbeSwapInfo structure */
+#define XdbeUndefined    0
+#define XdbeBackground   1
+#define XdbeUntouched    2
+#define XdbeCopied       3
+
+#ifdef NEED_DBE_PROTOCOL
+
+#define DBE_PROTOCOL_NAME "DOUBLE-BUFFER"
+
+/* Current version numbers */
+#define DBE_MAJOR_VERSION       1
+#define DBE_MINOR_VERSION       0
+
+/* Used when adding extension; also used in Xdbe macros */
+#define DbeNumberEvents                        0
+#define DbeBadBuffer                   0
+#define DbeNumberErrors                        (DbeBadBuffer + 1)
+
+/* Request values used in (S)ProcDbeDispatch() */
+#define X_DbeGetVersion                 0
+#define X_DbeAllocateBackBufferName     1
+#define X_DbeDeallocateBackBufferName   2
+#define X_DbeSwapBuffers                3
+#define X_DbeBeginIdiom                 4
+#define X_DbeEndIdiom                   5
+#define X_DbeGetVisualInfo              6
+#define X_DbeGetBackBufferAttributes    7
+
+typedef CARD8  xDbeSwapAction;
+typedef CARD32 xDbeBackBuffer;
+
+#endif /* NEED_DBE_PROTOCOL */
+
+
+/* TYPEDEFS */
+
+/* Client data types */
+
+/* XdbeVisualInfo and XdbeScreenVisualInfo are defined in this file,
+ * "Xdbeproto.h", rather than "Xdbe.h" because the server uses these data
+ * types.
+ */
+
+typedef struct
+{
+    VisualID    visual;    /* one visual ID that supports double-buffering */
+    int         depth;     /* depth of visual in bits                      */
+    int         perflevel; /* performance level of visual                  */
+}
+XdbeVisualInfo;
+
+typedef struct
+{
+    int                 count;          /* number of items in visual_depth   */
+    XdbeVisualInfo      *visinfo;       /* list of visuals & depths for scrn */
+}
+XdbeScreenVisualInfo;
+
+/* Protocol data types */
+
+#ifdef NEED_DBE_PROTOCOL
+
+typedef struct
+{
+    CARD32             window B32;     /* window      */
+    xDbeSwapAction     swapAction;     /* swap action */
+    CARD8              pad1;           /* unused      */
+    CARD16             pad2 B16;
+
+} xDbeSwapInfo;
+
+typedef struct
+{
+    CARD32     visualID B32;   /* associated visual      */
+    CARD8      depth;          /* depth of visual        */
+    CARD8      perfLevel;      /* performance level hint */
+    CARD16     pad1 B16;
+
+} xDbeVisInfo;
+#define sz_xDbeVisInfo 8
+
+typedef struct
+{
+    CARD32     n B32;  /* number of visual info items in list  */
+
+} xDbeScreenVisInfo;   /* followed by n xDbeVisInfo items */
+
+typedef struct
+{
+    CARD32     window B32;     /* window */
+
+} xDbeBufferAttributes;
+
+
+/* Requests and replies */
+
+typedef struct
+{
+    CARD8      reqType;        /* major-opcode: always codes->major_opcode */
+    CARD8      dbeReqType;     /* minor-opcode: always X_DbeGetVersion (0) */
+    CARD16     length B16;     /* request length: (2)                      */
+    CARD8      majorVersion;   /* client-major-version                     */
+    CARD8      minorVersion;   /* client-minor-version                     */
+    CARD16     unused B16;     /* unused                                   */
+
+} xDbeGetVersionReq;
+#define sz_xDbeGetVersionReq   8
+
+typedef struct
+{
+    BYTE       type;                   /* Reply: X_Reply (1)   */
+    CARD8      unused;                 /* unused               */
+    CARD16     sequenceNumber B16;     /* sequence number      */
+    CARD32     length B32;             /* reply length: (0)    */
+    CARD8      majorVersion;           /* server-major-version */
+    CARD8      minorVersion;           /* server-minor-version */
+    CARD16     pad1 B16;               /* unused               */
+    CARD32     pad2 B32;
+    CARD32     pad3 B32;
+    CARD32     pad4 B32;
+    CARD32     pad5 B32;
+    CARD32     pad6 B32;
+
+} xDbeGetVersionReply;
+#define sz_xDbeGetVersionReply 32
+
+typedef struct
+{
+    CARD8              reqType;        /* major-opcode: codes->major_opcode */
+    CARD8              dbeReqType;     /* X_DbeAllocateBackBufferName (1)   */
+    CARD16             length B16;     /* request length: (4)               */
+    CARD32             window B32;     /* window                            */
+    xDbeBackBuffer     buffer B32;     /* back buffer name                  */
+    xDbeSwapAction     swapAction;     /* swap action hint                  */
+    CARD8              pad1;           /* unused                            */
+    CARD16             pad2 B16;
+
+} xDbeAllocateBackBufferNameReq;
+#define sz_xDbeAllocateBackBufferNameReq       16
+
+typedef struct
+{
+    CARD8              reqType;        /* major-opcode: codes->major_opcode */
+    CARD8              dbeReqType;     /* X_DbeDeallocateBackBufferName (2) */
+    CARD16             length B16;     /* request length: (2)               */
+    xDbeBackBuffer     buffer B32;     /* back buffer name                  */
+
+} xDbeDeallocateBackBufferNameReq;
+#define sz_xDbeDeallocateBackBufferNameReq     8
+
+typedef struct
+{
+    CARD8      reqType;        /* major-opcode: always codes->major_opcode  */
+    CARD8      dbeReqType;     /* minor-opcode: always X_DbeSwapBuffers (3) */
+    CARD16     length B16;     /* request length: (2+2n)                    */
+    CARD32     n B32;          /* n, number of window/swap action pairs     */
+
+} xDbeSwapBuffersReq;          /* followed by n window/swap action pairs    */
+#define sz_xDbeSwapBuffersReq  8
+
+typedef struct
+{
+    CARD8      reqType;        /* major-opcode: always codes->major_opcode */
+    CARD8      dbeReqType;     /* minor-opcode: always X_DbeBeginIdom (4)  */
+    CARD16     length B16;     /* request length: (1)                      */
+
+} xDbeBeginIdiomReq;
+#define sz_xDbeBeginIdiomReq   4
+
+typedef struct
+{
+    CARD8      reqType;        /* major-opcode: always codes->major_opcode */
+    CARD8      dbeReqType;     /* minor-opcode: always X_DbeEndIdom (5)    */
+    CARD16     length B16;     /* request length: (1)                      */
+
+} xDbeEndIdiomReq;
+#define sz_xDbeEndIdiomReq     4
+
+typedef struct
+{
+    CARD8      reqType;        /* always codes->major_opcode     */
+    CARD8      dbeReqType;     /* always X_DbeGetVisualInfo (6)  */
+    CARD16     length B16;     /* request length: (2+n)          */
+    CARD32     n B32;          /* n, number of drawables in list */
+
+} xDbeGetVisualInfoReq;                /* followed by n drawables        */
+#define sz_xDbeGetVisualInfoReq        8
+
+typedef struct
+{
+    BYTE       type;                   /* Reply: X_Reply (1)                */
+    CARD8      unused;                 /* unused                            */
+    CARD16     sequenceNumber B16;     /* sequence number                   */
+    CARD32     length B32;             /* reply length                      */
+    CARD32     m;                      /* m, number of visual infos in list */
+    CARD32     pad1 B32;               /* unused                            */
+    CARD32     pad2 B32;
+    CARD32     pad3 B32;
+    CARD32     pad4 B32;
+    CARD32     pad5 B32;
+
+} xDbeGetVisualInfoReply;              /* followed by m visual infos        */
+#define sz_xDbeGetVisualInfoReply      32
+
+typedef struct
+{
+    CARD8              reqType;        /* always codes->major_opcode       */
+    CARD8              dbeReqType;     /* X_DbeGetBackBufferAttributes (7) */
+    CARD16             length B16;     /* request length: (2)              */
+    xDbeBackBuffer     buffer B32;     /* back buffer name                 */
+
+} xDbeGetBackBufferAttributesReq;
+#define sz_xDbeGetBackBufferAttributesReq      8
+
+typedef struct
+{
+    BYTE       type;                   /* Reply: X_Reply (1) */
+    CARD8      unused;                 /* unused             */
+    CARD16     sequenceNumber B16;     /* sequence number    */
+    CARD32     length B32;             /* reply length: (0)  */
+    CARD32     attributes;             /* attributes         */
+    CARD32     pad1 B32;               /* unused             */
+    CARD32     pad2 B32;
+    CARD32     pad3 B32;
+    CARD32     pad4 B32;
+    CARD32     pad5 B32;
+
+} xDbeGetBackBufferAttributesReply;
+#define sz_xDbeGetBackBufferAttributesReply    32
+
+#endif /* NEED_DBE_PROTOCOL */
+
+#endif /* XDBE_PROTO_H */
+