Git init
[framework/uifw/xorg/lib/libxext.git] / include / X11 / extensions / Xdbe.h
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 XDBE_H
34 #define XDBE_H
35
36 #include <X11/Xfuncproto.h>
37 #include <X11/extensions/dbe.h>
38
39 typedef struct
40 {
41     VisualID    visual;    /* one visual ID that supports double-buffering */
42     int         depth;     /* depth of visual in bits                      */
43     int         perflevel; /* performance level of visual                  */
44 }
45 XdbeVisualInfo;
46
47 typedef struct
48 {
49     int                 count;          /* number of items in visual_depth   */
50     XdbeVisualInfo      *visinfo;       /* list of visuals & depths for scrn */
51 }
52 XdbeScreenVisualInfo;
53
54
55 typedef Drawable XdbeBackBuffer;
56
57 typedef unsigned char XdbeSwapAction;
58
59 typedef struct
60 {
61     Window              swap_window;    /* window for which to swap buffers   */
62     XdbeSwapAction      swap_action;    /* swap action to use for swap_window */
63 }
64 XdbeSwapInfo;
65
66 typedef struct
67 {
68     Window      window;                 /* window that buffer belongs to */
69 }
70 XdbeBackBufferAttributes;
71
72 typedef struct
73 {
74     int                 type;
75     Display             *display;       /* display the event was read from */
76     XdbeBackBuffer      buffer;         /* resource id                     */
77     unsigned long       serial;         /* serial number of failed request */
78     unsigned char       error_code;     /* error base + XdbeBadBuffer      */
79     unsigned char       request_code;   /* major opcode of failed request  */
80     unsigned char       minor_code;     /* minor opcode of failed request  */
81 }
82 XdbeBufferError;
83
84 /* _XFUNCPROTOBEGIN and _XFUNCPROTOEND are defined as noops
85  * (for non-C++ builds) in X11/Xfuncproto.h.
86  */
87 _XFUNCPROTOBEGIN
88
89 extern Status XdbeQueryExtension(
90     Display*            /* dpy                  */,
91     int*                /* major_version_return */,
92     int*                /* minor_version_return */
93 );
94
95 extern XdbeBackBuffer XdbeAllocateBackBufferName(
96     Display*            /* dpy         */,
97     Window              /* window      */,
98     XdbeSwapAction      /* swap_action */
99 );
100
101 extern Status XdbeDeallocateBackBufferName(
102     Display*            /* dpy    */,
103     XdbeBackBuffer      /* buffer */
104 );
105
106 extern Status XdbeSwapBuffers(
107     Display*            /* dpy         */,
108     XdbeSwapInfo*       /* swap_info   */,
109     int                 /* num_windows */
110 );
111
112 extern Status XdbeBeginIdiom(
113     Display*            /* dpy */
114 );
115
116 extern Status XdbeEndIdiom(
117     Display*            /* dpy */
118 );
119
120 extern XdbeScreenVisualInfo *XdbeGetVisualInfo(
121     Display*            /* dpy               */,
122     Drawable*           /* screen_specifiers */,
123     int*                /* num_screens       */
124 );
125
126 extern void XdbeFreeVisualInfo(
127     XdbeScreenVisualInfo*       /* visual_info */
128 );
129
130 extern XdbeBackBufferAttributes *XdbeGetBackBufferAttributes(
131     Display*            /* dpy    */,
132     XdbeBackBuffer      /* buffer */
133 );
134
135 _XFUNCPROTOEND
136
137 #endif /* XDBE_H */
138