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