74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* $Xorg: Xdbe.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/******************************************************************************
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync *
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * Copyright (c) 1994, 1995 Hewlett-Packard Company
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync *
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * Permission is hereby granted, free of charge, to any person obtaining
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * a copy of this software and associated documentation files (the
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * "Software"), to deal in the Software without restriction, including
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * without limitation the rights to use, copy, modify, merge, publish,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * distribute, sublicense, and/or sell copies of the Software, and to
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * permit persons to whom the Software is furnished to do so, subject to
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * the following conditions:
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync *
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * The above copyright notice and this permission notice shall be included
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * in all copies or substantial portions of the Software.
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync *
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * IN NO EVENT SHALL HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY CLAIM,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync *
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * Except as contained in this notice, the name of the Hewlett-Packard
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * Company shall not be used in advertising or otherwise to promote the
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * sale, use or other dealings in this Software without prior written
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * authorization from the Hewlett-Packard Company.
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync *
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * Header file for Xlib-related DBE
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync *
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync *****************************************************************************/
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* $XFree86: xc/include/extensions/Xdbe.h,v 3.2 2001/08/01 00:44:35 tsi Exp $ */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#ifndef XDBE_H
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XDBE_H
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* INCLUDES */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#include <X11/Xfuncproto.h>
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#include <X11/extensions/Xdbeproto.h>
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* DEFINES */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* Errors */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define XdbeBadBuffer 0
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* TYPEDEFS */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsynctypedef Drawable XdbeBackBuffer;
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsynctypedef unsigned char XdbeSwapAction;
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsynctypedef struct
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync{
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync Window swap_window; /* window for which to swap buffers */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync XdbeSwapAction swap_action; /* swap action to use for swap_window */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync}
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncXdbeSwapInfo;
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsynctypedef struct
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync{
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync Window window; /* window that buffer belongs to */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync}
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncXdbeBackBufferAttributes;
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsynctypedef struct
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync{
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int type;
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync Display *display; /* display the event was read from */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync XdbeBackBuffer buffer; /* resource id */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync unsigned long serial; /* serial number of failed request */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync unsigned char error_code; /* error base + XdbeBadBuffer */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync unsigned char request_code; /* major opcode of failed request */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync unsigned char minor_code; /* minor opcode of failed request */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync}
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncXdbeBufferError;
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* _XFUNCPROTOBEGIN and _XFUNCPROTOEND are defined as noops
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * (for non-C++ builds) in X11/Xfuncproto.h.
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync_XFUNCPROTOBEGIN
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncextern Status XdbeQueryExtension(
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#if NeedFunctionPrototypes
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync Display* /* dpy */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int* /* major_version_return */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int* /* minor_version_return */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync);
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncextern XdbeBackBuffer XdbeAllocateBackBufferName(
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#if NeedFunctionPrototypes
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync Display* /* dpy */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync Window /* window */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync XdbeSwapAction /* swap_action */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync);
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncextern Status XdbeDeallocateBackBufferName(
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#if NeedFunctionPrototypes
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync Display* /* dpy */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync XdbeBackBuffer /* buffer */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync);
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncextern Status XdbeSwapBuffers(
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#if NeedFunctionPrototypes
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync Display* /* dpy */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync XdbeSwapInfo* /* swap_info */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int /* num_windows */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync);
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncextern Status XdbeBeginIdiom(
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#if NeedFunctionPrototypes
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync Display* /* dpy */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync);
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncextern Status XdbeEndIdiom(
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#if NeedFunctionPrototypes
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync Display* /* dpy */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync);
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncextern XdbeScreenVisualInfo *XdbeGetVisualInfo(
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#if NeedFunctionPrototypes
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync Display* /* dpy */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync Drawable* /* screen_specifiers */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int* /* num_screens */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync);
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncextern void XdbeFreeVisualInfo(
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#if NeedFunctionPrototypes
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync XdbeScreenVisualInfo* /* visual_info */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync);
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncextern XdbeBackBufferAttributes *XdbeGetBackBufferAttributes(
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#if NeedFunctionPrototypes
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync Display* /* dpy */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync XdbeBackBuffer /* buffer */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#endif
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync);
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync_XFUNCPROTOEND
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#endif /* XDBE_H */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync