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