jpayne@69
|
1 /******************************************************************************
|
jpayne@69
|
2 *
|
jpayne@69
|
3 * Copyright (c) 1994, 1995 Hewlett-Packard Company
|
jpayne@69
|
4 *
|
jpayne@69
|
5 * Permission is hereby granted, free of charge, to any person obtaining
|
jpayne@69
|
6 * a copy of this software and associated documentation files (the
|
jpayne@69
|
7 * "Software"), to deal in the Software without restriction, including
|
jpayne@69
|
8 * without limitation the rights to use, copy, modify, merge, publish,
|
jpayne@69
|
9 * distribute, sublicense, and/or sell copies of the Software, and to
|
jpayne@69
|
10 * permit persons to whom the Software is furnished to do so, subject to
|
jpayne@69
|
11 * the following conditions:
|
jpayne@69
|
12 *
|
jpayne@69
|
13 * The above copyright notice and this permission notice shall be included
|
jpayne@69
|
14 * in all copies or substantial portions of the Software.
|
jpayne@69
|
15 *
|
jpayne@69
|
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
jpayne@69
|
17 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
jpayne@69
|
18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
jpayne@69
|
19 * IN NO EVENT SHALL HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY CLAIM,
|
jpayne@69
|
20 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
jpayne@69
|
21 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
|
jpayne@69
|
22 * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
jpayne@69
|
23 *
|
jpayne@69
|
24 * Except as contained in this notice, the name of the Hewlett-Packard
|
jpayne@69
|
25 * Company shall not be used in advertising or otherwise to promote the
|
jpayne@69
|
26 * sale, use or other dealings in this Software without prior written
|
jpayne@69
|
27 * authorization from the Hewlett-Packard Company.
|
jpayne@69
|
28 *
|
jpayne@69
|
29 * Header file for Xlib-related DBE
|
jpayne@69
|
30 *
|
jpayne@69
|
31 *****************************************************************************/
|
jpayne@69
|
32
|
jpayne@69
|
33 #ifndef XDBE_H
|
jpayne@69
|
34 #define XDBE_H
|
jpayne@69
|
35
|
jpayne@69
|
36 #include <X11/Xfuncproto.h>
|
jpayne@69
|
37 #include <X11/extensions/dbe.h>
|
jpayne@69
|
38
|
jpayne@69
|
39 typedef struct
|
jpayne@69
|
40 {
|
jpayne@69
|
41 VisualID visual; /* one visual ID that supports double-buffering */
|
jpayne@69
|
42 int depth; /* depth of visual in bits */
|
jpayne@69
|
43 int perflevel; /* performance level of visual */
|
jpayne@69
|
44 }
|
jpayne@69
|
45 XdbeVisualInfo;
|
jpayne@69
|
46
|
jpayne@69
|
47 typedef struct
|
jpayne@69
|
48 {
|
jpayne@69
|
49 int count; /* number of items in visual_depth */
|
jpayne@69
|
50 XdbeVisualInfo *visinfo; /* list of visuals & depths for scrn */
|
jpayne@69
|
51 }
|
jpayne@69
|
52 XdbeScreenVisualInfo;
|
jpayne@69
|
53
|
jpayne@69
|
54
|
jpayne@69
|
55 typedef Drawable XdbeBackBuffer;
|
jpayne@69
|
56
|
jpayne@69
|
57 typedef unsigned char XdbeSwapAction;
|
jpayne@69
|
58
|
jpayne@69
|
59 typedef struct
|
jpayne@69
|
60 {
|
jpayne@69
|
61 Window swap_window; /* window for which to swap buffers */
|
jpayne@69
|
62 XdbeSwapAction swap_action; /* swap action to use for swap_window */
|
jpayne@69
|
63 }
|
jpayne@69
|
64 XdbeSwapInfo;
|
jpayne@69
|
65
|
jpayne@69
|
66 typedef struct
|
jpayne@69
|
67 {
|
jpayne@69
|
68 Window window; /* window that buffer belongs to */
|
jpayne@69
|
69 }
|
jpayne@69
|
70 XdbeBackBufferAttributes;
|
jpayne@69
|
71
|
jpayne@69
|
72 typedef struct
|
jpayne@69
|
73 {
|
jpayne@69
|
74 int type;
|
jpayne@69
|
75 Display *display; /* display the event was read from */
|
jpayne@69
|
76 XdbeBackBuffer buffer; /* resource id */
|
jpayne@69
|
77 unsigned long serial; /* serial number of failed request */
|
jpayne@69
|
78 unsigned char error_code; /* error base + XdbeBadBuffer */
|
jpayne@69
|
79 unsigned char request_code; /* major opcode of failed request */
|
jpayne@69
|
80 unsigned char minor_code; /* minor opcode of failed request */
|
jpayne@69
|
81 }
|
jpayne@69
|
82 XdbeBufferError;
|
jpayne@69
|
83
|
jpayne@69
|
84 /* _XFUNCPROTOBEGIN and _XFUNCPROTOEND are defined as noops
|
jpayne@69
|
85 * (for non-C++ builds) in X11/Xfuncproto.h.
|
jpayne@69
|
86 */
|
jpayne@69
|
87 _XFUNCPROTOBEGIN
|
jpayne@69
|
88
|
jpayne@69
|
89 extern Status XdbeQueryExtension(
|
jpayne@69
|
90 Display* /* dpy */,
|
jpayne@69
|
91 int* /* major_version_return */,
|
jpayne@69
|
92 int* /* minor_version_return */
|
jpayne@69
|
93 );
|
jpayne@69
|
94
|
jpayne@69
|
95 extern XdbeBackBuffer XdbeAllocateBackBufferName(
|
jpayne@69
|
96 Display* /* dpy */,
|
jpayne@69
|
97 Window /* window */,
|
jpayne@69
|
98 XdbeSwapAction /* swap_action */
|
jpayne@69
|
99 );
|
jpayne@69
|
100
|
jpayne@69
|
101 extern Status XdbeDeallocateBackBufferName(
|
jpayne@69
|
102 Display* /* dpy */,
|
jpayne@69
|
103 XdbeBackBuffer /* buffer */
|
jpayne@69
|
104 );
|
jpayne@69
|
105
|
jpayne@69
|
106 extern Status XdbeSwapBuffers(
|
jpayne@69
|
107 Display* /* dpy */,
|
jpayne@69
|
108 XdbeSwapInfo* /* swap_info */,
|
jpayne@69
|
109 int /* num_windows */
|
jpayne@69
|
110 );
|
jpayne@69
|
111
|
jpayne@69
|
112 extern Status XdbeBeginIdiom(
|
jpayne@69
|
113 Display* /* dpy */
|
jpayne@69
|
114 );
|
jpayne@69
|
115
|
jpayne@69
|
116 extern Status XdbeEndIdiom(
|
jpayne@69
|
117 Display* /* dpy */
|
jpayne@69
|
118 );
|
jpayne@69
|
119
|
jpayne@69
|
120 extern XdbeScreenVisualInfo *XdbeGetVisualInfo(
|
jpayne@69
|
121 Display* /* dpy */,
|
jpayne@69
|
122 Drawable* /* screen_specifiers */,
|
jpayne@69
|
123 int* /* num_screens */
|
jpayne@69
|
124 );
|
jpayne@69
|
125
|
jpayne@69
|
126 extern void XdbeFreeVisualInfo(
|
jpayne@69
|
127 XdbeScreenVisualInfo* /* visual_info */
|
jpayne@69
|
128 );
|
jpayne@69
|
129
|
jpayne@69
|
130 extern XdbeBackBufferAttributes *XdbeGetBackBufferAttributes(
|
jpayne@69
|
131 Display* /* dpy */,
|
jpayne@69
|
132 XdbeBackBuffer /* buffer */
|
jpayne@69
|
133 );
|
jpayne@69
|
134
|
jpayne@69
|
135 _XFUNCPROTOEND
|
jpayne@69
|
136
|
jpayne@69
|
137 #endif /* XDBE_H */
|
jpayne@69
|
138
|