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