ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync/******************************************************************************
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync *
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * Copyright (c) 1994, 1995 Hewlett-Packard Company
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync *
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * Permission is hereby granted, free of charge, to any person obtaining
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * a copy of this software and associated documentation files (the
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * "Software"), to deal in the Software without restriction, including
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * without limitation the rights to use, copy, modify, merge, publish,
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * distribute, sublicense, and/or sell copies of the Software, and to
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * permit persons to whom the Software is furnished to do so, subject to
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * the following conditions:
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync *
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * The above copyright notice and this permission notice shall be included
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * in all copies or substantial portions of the Software.
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync *
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * IN NO EVENT SHALL HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY CLAIM,
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync *
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * Except as contained in this notice, the name of the Hewlett-Packard
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * Company shall not be used in advertising or otherwise to promote the
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * sale, use or other dealings in this Software without prior written
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * authorization from the Hewlett-Packard Company.
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync *
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * Header file for Xlib-related DBE
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync *
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync *****************************************************************************/
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync#ifndef XDBE_H
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync#define XDBE_H
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync#include <X11/Xfuncproto.h>
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync#include <X11/extensions/dbe.h>
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsynctypedef struct
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync{
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync VisualID visual; /* one visual ID that supports double-buffering */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync int depth; /* depth of visual in bits */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync int perflevel; /* performance level of visual */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync}
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsyncXdbeVisualInfo;
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsynctypedef struct
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync{
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync int count; /* number of items in visual_depth */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync XdbeVisualInfo *visinfo; /* list of visuals & depths for scrn */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync}
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsyncXdbeScreenVisualInfo;
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsynctypedef Drawable XdbeBackBuffer;
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsynctypedef unsigned char XdbeSwapAction;
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsynctypedef struct
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync{
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync Window swap_window; /* window for which to swap buffers */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync XdbeSwapAction swap_action; /* swap action to use for swap_window */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync}
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsyncXdbeSwapInfo;
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsynctypedef struct
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync{
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync Window window; /* window that buffer belongs to */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync}
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsyncXdbeBackBufferAttributes;
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsynctypedef struct
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync{
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync int type;
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync Display *display; /* display the event was read from */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync XdbeBackBuffer buffer; /* resource id */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync unsigned long serial; /* serial number of failed request */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync unsigned char error_code; /* error base + XdbeBadBuffer */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync unsigned char request_code; /* major opcode of failed request */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync unsigned char minor_code; /* minor opcode of failed request */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync}
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsyncXdbeBufferError;
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync/* _XFUNCPROTOBEGIN and _XFUNCPROTOEND are defined as noops
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync * (for non-C++ builds) in X11/Xfuncproto.h.
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync_XFUNCPROTOBEGIN
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsyncextern Status XdbeQueryExtension(
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync Display* /* dpy */,
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync int* /* major_version_return */,
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync int* /* minor_version_return */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync);
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsyncextern XdbeBackBuffer XdbeAllocateBackBufferName(
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync Display* /* dpy */,
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync Window /* window */,
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync XdbeSwapAction /* swap_action */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync);
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsyncextern Status XdbeDeallocateBackBufferName(
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync Display* /* dpy */,
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync XdbeBackBuffer /* buffer */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync);
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsyncextern Status XdbeSwapBuffers(
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync Display* /* dpy */,
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync XdbeSwapInfo* /* swap_info */,
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync int /* num_windows */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync);
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsyncextern Status XdbeBeginIdiom(
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync Display* /* dpy */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync);
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsyncextern Status XdbeEndIdiom(
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync Display* /* dpy */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync);
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsyncextern XdbeScreenVisualInfo *XdbeGetVisualInfo(
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync Display* /* dpy */,
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync Drawable* /* screen_specifiers */,
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync int* /* num_screens */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync);
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsyncextern void XdbeFreeVisualInfo(
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync XdbeScreenVisualInfo* /* visual_info */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync);
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsyncextern XdbeBackBufferAttributes *XdbeGetBackBufferAttributes(
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync Display* /* dpy */,
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync XdbeBackBuffer /* buffer */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync);
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync_XFUNCPROTOEND
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync#endif /* XDBE_H */
ae3b356f74cf4942fdd85f8b0544af62f8161656vboxsync