Home | History | Annotate | Download | only in extensions
      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