---
 Makefile.am     |    4 +-
 multibuf.h      |  317 -----------------------------------------------------
 multibufconst.h |   99 +++++++++++++++++
 multibufst.h    |  325 -------------------------------------------------------
 4 files changed, 100 insertions(+), 645 deletions(-)
 delete mode 100644 multibuf.h
 create mode 100644 multibufconst.h

diff --git a/Makefile.am b/Makefile.am
index 71ee621..22ecf5d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -4,8 +4,6 @@ xext_HEADERS = \
        dpmsstr.h \
         ge.h \
         geproto.h \
-       lbxbuf.h \
-       lbxbufstr.h \
        lbxdeltastr.h \
        lbximage.h \
        lbxopts.h \
@@ -14,7 +12,7 @@ xext_HEADERS = \
        lbxzlib.h \
        mitmiscconst.h \
        mitmiscstr.h \
-       multibuf.h \
+       multibufconst.h \
        multibufst.h \
        security.h \
        securstr.h \
diff --git a/multibuf.h b/multibuf.h
deleted file mode 100644
index 96b4c3b..0000000
--- a/multibuf.h
+++ /dev/null
@@ -1,317 +0,0 @@
-/*
- * $Xorg: multibuf.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $
- *
-Copyright 1989, 1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
- */
-
-/* $XFree86: xc/include/extensions/multibuf.h,v 3.4 2001/12/14 19:53:28 dawes 
Exp $ */
-
-#ifndef _MULTIBUF_H_
-#define _MULTIBUF_H_
-
-#include <X11/Xfuncproto.h>
-
-#define MULTIBUFFER_PROTOCOL_NAME "Multi-Buffering"
-
-#define MULTIBUFFER_MAJOR_VERSION      1       /* current version numbers */
-#define MULTIBUFFER_MINOR_VERSION      1       /* has ClearImageBufferArea */
-
-#define X_MbufGetBufferVersion         0
-#define X_MbufCreateImageBuffers       1
-#define X_MbufDestroyImageBuffers      2
-#define X_MbufDisplayImageBuffers      3
-#define X_MbufSetMBufferAttributes     4
-#define X_MbufGetMBufferAttributes     5
-#define X_MbufSetBufferAttributes      6
-#define X_MbufGetBufferAttributes      7
-#define X_MbufGetBufferInfo            8
-#define X_MbufCreateStereoWindow       9
-#define X_MbufClearImageBufferArea     10
-
-/*
- * update_action field
- */
-#define MultibufferUpdateActionUndefined       0
-#define MultibufferUpdateActionBackground      1
-#define MultibufferUpdateActionUntouched       2
-#define MultibufferUpdateActionCopied          3
-
-/*
- * update_hint field
- */
-#define MultibufferUpdateHintFrequent          0
-#define MultibufferUpdateHintIntermittent      1
-#define MultibufferUpdateHintStatic            2
-
-/*
- * valuemask fields
- */
-#define MultibufferWindowUpdateHint    (1L << 0)
-#define MultibufferBufferEventMask     (1L << 0)
-
-/*
- * mono vs. stereo and left vs. right
- */
-#define MultibufferModeMono            0
-#define MultibufferModeStereo          1
-#define MultibufferSideMono            0
-#define MultibufferSideLeft            1
-#define MultibufferSideRight           2
-
-/*
- * clobber state
- */
-#define MultibufferUnclobbered         0
-#define MultibufferPartiallyClobbered  1
-#define MultibufferFullyClobbered      2
-
-/*
- * event stuff
- */
-#define MultibufferClobberNotifyMask   0x02000000
-#define MultibufferUpdateNotifyMask    0x04000000
-
-#define MultibufferClobberNotify       0
-#define MultibufferUpdateNotify                1
-#define MultibufferNumberEvents                (MultibufferUpdateNotify + 1)
-
-#define MultibufferBadBuffer           0
-#define MultibufferNumberErrors                (MultibufferBadBuffer + 1)
-
-
-#ifndef _MULTIBUF_SERVER_
-/*
- * Extra definitions that will only be needed in the client
- */
-typedef XID Multibuffer;
-
-typedef struct {
-    int        type;               /* of event */
-    unsigned long serial;   /* # of last request processed by server */
-    int send_event;        /* true if this came frome a SendEvent request */
-    Display *display;      /* Display the event was read from */
-    Multibuffer buffer;            /* buffer of event */
-    int        state;              /* see Clobbered constants above */
-} XmbufClobberNotifyEvent;
-
-typedef struct {
-    int        type;               /* of event */
-    unsigned long serial;   /* # of last request processed by server */
-    int send_event;        /* true if this came frome a SendEvent request */
-    Display *display;      /* Display the event was read from */
-    Multibuffer buffer;            /* buffer of event */
-} XmbufUpdateNotifyEvent;
-
-
-/*
- * per-window attributes that can be got
- */
-typedef struct {
-    int displayed_index;       /* which buffer is being displayed */
-    int update_action;         /* Undefined, Background, Untouched, Copied */
-    int update_hint;           /* Frequent, Intermittent, Static */
-    int window_mode;           /* Mono, Stereo */
-    int nbuffers;              /* Number of buffers */
-    Multibuffer *buffers;      /* Buffers */
-} XmbufWindowAttributes;
-
-/*
- * per-window attributes that can be set
- */
-typedef struct {
-    int update_hint;           /* Frequent, Intermittent, Static */
-} XmbufSetWindowAttributes;
-
-
-/*
- * per-buffer attributes that can be got
- */
-typedef struct {
-    Window window;             /* which window this belongs to */
-    unsigned long event_mask;  /* events that have been selected */
-    int buffer_index;          /* which buffer is this */
-    int side;                  /* Mono, Left, Right */
-} XmbufBufferAttributes;
-
-/*
- * per-buffer attributes that can be set
- */
-typedef struct {
-    unsigned long event_mask;  /* events that have been selected */
-} XmbufSetBufferAttributes;
-
-
-/*
- * per-screen buffer info (there will be lists of them)
- */
-typedef struct {
-    VisualID visualid;         /* visual usuable at this depth */
-    int max_buffers;           /* most buffers for this visual */
-    int depth;                 /* depth of buffers to be created */
-} XmbufBufferInfo;
-
-_XFUNCPROTOBEGIN
-
-extern Bool XmbufQueryExtension(
-    Display*           /* dpy */,
-    int*               /* event_base_return */,
-    int*               /* error_base_return */
-);
-
-extern Status XmbufGetVersion(
-    Display*           /* dpy */,
-    int*               /* major_version_return */,
-    int*               /* minor_version_return */
-);
-
-extern int XmbufCreateBuffers(
-    Display*           /* dpy */,
-    Window             /* w */,
-    int                        /* count */,
-    int                        /* update_action */,
-    int                        /* update_hint */,
-    Multibuffer*       /* buffers */
-);
-
-extern void XmbufDestroyBuffers(
-    Display*           /* dpy */,
-    Window             /* window */
-);
-
-extern void XmbufDisplayBuffers(
-    Display*           /* dpy */,
-    int                        /* count */,
-    Multibuffer*       /* buffers */,
-    int                        /* min_delay */,
-    int                        /* max_delay */
-);
-
-extern Status XmbufGetWindowAttributes(
-    Display*                   /* dpy */,
-    Window                     /* w */,
-    XmbufWindowAttributes*     /* attr */
-);
-
-extern void XmbufChangeWindowAttributes(
-    Display*                   /* dpy */,
-    Window                     /* w */,
-    unsigned long              /* valuemask */,
-    XmbufSetWindowAttributes*  /* attr */
-);
-
-extern Status XmbufGetBufferAttributes(
-    Display*                   /* dpy */,
-    Multibuffer                        /* b */,
-    XmbufBufferAttributes*     /* attr */
-);
-
-extern void XmbufChangeBufferAttributes(
-    Display*                   /* dpy */,
-    Multibuffer                        /* b */,
-    unsigned long              /* valuemask */,
-    XmbufSetBufferAttributes*  /* attr */
-);
-
-extern Status XmbufGetScreenInfo(
-    Display*                   /* dpy */,
-    Drawable                   /* d */,
-    int*                       /* nmono_return */,
-    XmbufBufferInfo**          /* mono_info_return */,
-    int*                       /* nstereo_return */,
-    XmbufBufferInfo**          /* stereo_info_return */
-);
-
-extern Window XmbufCreateStereoWindow(
-    Display*                   /* dpy */,
-    Window                     /* parent */,
-    int                                /* x */,
-    int                                /* y */,
-    unsigned int               /* width */,
-    unsigned int               /* height */,
-    unsigned int               /* border_width */,
-    int                                /* depth */,
-    unsigned int               /* class */,
-    Visual*                    /* visual */,
-    unsigned long              /* valuemask */,
-    XSetWindowAttributes*      /* attr */,
-    Multibuffer*               /* leftp */,
-    Multibuffer*               /* rightp */
-);
-
-extern void XmbufClearBufferArea(
-    Display*                   /* dpy */,
-    Multibuffer                        /* buffer */,
-    int                                /* x */,
-    int                                /* y */,
-    unsigned int               /* width */,
-    unsigned int               /* height */,
-    Bool                       /* exposures */
-);
-
-_XFUNCPROTOEND
-
-#else
-
-#include "scrnintstr.h"
-
-typedef Bool   (* mbInitFunc)();
-
-struct _mbufScreen;            /* declared in multibufst.h */
-
-extern void    RegisterMultibufferInit(
-    ScreenPtr                  /* pScreen */,
-    Bool (* /* bufMultibufferInit */)(
-       ScreenPtr               /* pScreen */,
-       struct _mbufScreen *    /* pMBScreen */
-    )
-);
-
-struct xMbufBufferInfo;                /* declared in multibufst.h */
-
-extern void    RegisterDoubleBufferHardware(
-    ScreenPtr                  /* pScreen */,
-    int                                /* nInfo */,
-    struct xMbufBufferInfo *   /* pInfo */,
-    DevUnion *                 /* frameBuffer */,
-    DevUnion                   /* selectPlane */,
-    void (* /* CopyBufferBitsFunc */ )(),
-    void (* /* DrawSelectPlaneFunc */ )()
-);
-
-extern int     CreateImageBuffers (
-    WindowPtr                  /* pWin */,
-    int                                /* nbuf */,
-    XID *                      /* ids */,
-    int                                /* action */,
-    int                                /* hint */
-);
-extern void    DestroyImageBuffers (
-    WindowPtr                  /* pWin */
-);
-extern int     DisplayImageBuffers (
-    XID *                      /* ids */,
-    int                                /* nbuf */
-);
-
-#endif /* _MULTIBUF_SERVER_ */
-#endif /* _MULTIBUF_H_ */
diff --git a/multibufconst.h b/multibufconst.h
new file mode 100644
index 0000000..36b5900
--- /dev/null
+++ b/multibufconst.h
@@ -0,0 +1,99 @@
+/*
+ * $Xorg: multibuf.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $
+ *
+Copyright 1989, 1998  The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ */
+
+/* $XFree86: xc/include/extensions/multibuf.h,v 3.4 2001/12/14 19:53:28 dawes 
Exp $ */
+
+#ifndef _MULTIBUFCONST_H_
+#define _MULTIBUFCONST_H_
+
+#define MULTIBUFFER_PROTOCOL_NAME "Multi-Buffering"
+
+#define MULTIBUFFER_MAJOR_VERSION      1       /* current version numbers */
+#define MULTIBUFFER_MINOR_VERSION      1       /* has ClearImageBufferArea */
+
+#define X_MbufGetBufferVersion         0
+#define X_MbufCreateImageBuffers       1
+#define X_MbufDestroyImageBuffers      2
+#define X_MbufDisplayImageBuffers      3
+#define X_MbufSetMBufferAttributes     4
+#define X_MbufGetMBufferAttributes     5
+#define X_MbufSetBufferAttributes      6
+#define X_MbufGetBufferAttributes      7
+#define X_MbufGetBufferInfo            8
+#define X_MbufCreateStereoWindow       9
+#define X_MbufClearImageBufferArea     10
+
+/*
+ * update_action field
+ */
+#define MultibufferUpdateActionUndefined       0
+#define MultibufferUpdateActionBackground      1
+#define MultibufferUpdateActionUntouched       2
+#define MultibufferUpdateActionCopied          3
+
+/*
+ * update_hint field
+ */
+#define MultibufferUpdateHintFrequent          0
+#define MultibufferUpdateHintIntermittent      1
+#define MultibufferUpdateHintStatic            2
+
+/*
+ * valuemask fields
+ */
+#define MultibufferWindowUpdateHint    (1L << 0)
+#define MultibufferBufferEventMask     (1L << 0)
+
+/*
+ * mono vs. stereo and left vs. right
+ */
+#define MultibufferModeMono            0
+#define MultibufferModeStereo          1
+#define MultibufferSideMono            0
+#define MultibufferSideLeft            1
+#define MultibufferSideRight           2
+
+/*
+ * clobber state
+ */
+#define MultibufferUnclobbered         0
+#define MultibufferPartiallyClobbered  1
+#define MultibufferFullyClobbered      2
+
+/*
+ * event stuff
+ */
+#define MultibufferClobberNotifyMask   0x02000000
+#define MultibufferUpdateNotifyMask    0x04000000
+
+#define MultibufferClobberNotify       0
+#define MultibufferUpdateNotify                1
+#define MultibufferNumberEvents                (MultibufferUpdateNotify + 1)
+
+#define MultibufferBadBuffer           0
+#define MultibufferNumberErrors                (MultibufferBadBuffer + 1)
+
+#endif /* _MULTIBUFCONST_H_ */
diff --git a/multibufst.h b/multibufst.h
index 8469a16..0db7407 100644
--- a/multibufst.h
+++ b/multibufst.h
@@ -33,21 +33,6 @@ in this Software without prior written authorization from 
The Open Group.
  * Protocol requests constants and alignment values
  */
 
-#include "multibuf.h"
-#ifdef _MULTIBUF_SERVER_
-#include "inputstr.h"
-#endif
-
-#if !defined(UNIXCPP) || defined(ANSICPP)
-#define MbufGetReq(name,req,info) GetReq (name, req); \
-       req->reqType = info->codes->major_opcode; \
-       req->mbufReqType = X_##name;
-#else
-#define MbufGetReq(name,req,info) GetReq (name, req); \
-       req->reqType = info->codes->major_opcode; \
-       req->mbufReqType = X_/**/name;
-#endif
-
 #define Window CARD32
 #define Drawable CARD32
 #define VisualID CARD32
@@ -296,314 +281,4 @@ typedef struct {
 #undef VisualID
 #undef Multibuffer
 
-
-#ifdef _MULTIBUF_SERVER_
-/* Macros for wrapping and unwrapping functions */
-
-#define SWAP_FUNC_VECTOR(pSTRUCT1,pSTRUCT2,DATA_TYPE,FUNC_NAME)                
\
-{                                                                      \
-    DATA_TYPE (* tmpFn)();                                             \
-                                                                       \
-    tmpFn = pSTRUCT1->FUNC_NAME;                                       \
-    pSTRUCT1->FUNC_NAME = pSTRUCT2->FUNC_NAME;                         \
-    pSTRUCT2->FUNC_NAME = tmpFn;                                       \
-}
-
-#if !defined(UNIXCPP) || defined(ANSICPP)
-#define WRAP_SCREEN_FUNC(pSCREEN,pPRIV,FUNC_NAME, PRIV_FUNC_NAME)      \
-{                                                                      \
-    if ((pPRIV->funcsWrapped & FUNC_NAME##Mask) == 0)                  \
-    {                                                                  \
-       pPRIV->FUNC_NAME   = pSCREEN->FUNC_NAME;                        \
-       pSCREEN->FUNC_NAME = PRIV_FUNC_NAME;                            \
-       pPRIV->funcsWrapped |= FUNC_NAME##Mask;                         \
-    }                                                                  \
-}
-
-#define UNWRAP_SCREEN_FUNC(pSCREEN,pPRIV,DATA_TYPE,FUNC_NAME)          \
-{                                                                      \
-    SWAP_FUNC_VECTOR(pSCREEN,pPRIV,DATA_TYPE,FUNC_NAME);               \
-    pPRIV->funcsWrapped &= ~(FUNC_NAME##Mask);                         \
-}
-
-#define REWRAP_SCREEN_FUNC(pSCREEN,pPRIV,DATA_TYPE,FUNC_NAME)          \
-{                                                                      \
-    if (MB_SCREEN_PRIV(pSCREEN)->mbufWindowCount)                      \
-    {                                                                  \
-       SWAP_FUNC_VECTOR(pSCREEN,pPRIV,DATA_TYPE,FUNC_NAME);            \
-       pPRIV->funcsWrapped |= FUNC_NAME##Mask;                         \
-    }                                                                  \
-}
-#else
-#define WRAP_SCREEN_FUNC(pSCREEN,pPRIV,FUNC_NAME, PRIV_FUNC_NAME)      \
-{                                                                      \
-    if ((pPRIV->funcsWrapped & FUNC_NAME/**/Mask) == 0)                        
\
-    {                                                                  \
-       pPRIV->FUNC_NAME   = pSCREEN->FUNC_NAME;                        \
-       pSCREEN->FUNC_NAME = PRIV_FUNC_NAME;                            \
-       pPRIV->funcsWrapped |= FUNC_NAME/**/Mask;                       \
-    }                                                                  \
-}
-
-#define UNWRAP_SCREEN_FUNC(pSCREEN,pPRIV,DATA_TYPE,FUNC_NAME)          \
-{                                                                      \
-    SWAP_FUNC_VECTOR(pSCREEN,pPRIV,DATA_TYPE,FUNC_NAME);               \
-    pPRIV->funcsWrapped &= ~(FUNC_NAME/**/Mask);                       \
-}
-
-#define REWRAP_SCREEN_FUNC(pSCREEN,pPRIV,DATA_TYPE,FUNC_NAME)          \
-{                                                                      \
-    if (MB_SCREEN_PRIV(pSCREEN)->mbufWindowCount)                      \
-    {                                                                  \
-       SWAP_FUNC_VECTOR(pSCREEN,pPRIV,DATA_TYPE,FUNC_NAME);            \
-       pPRIV->funcsWrapped |= FUNC_NAME/**/Mask;                       \
-    }                                                                  \
-}
-#endif
-
-/* The _Multibuffer and _Multibuffers structures below refer to each other,
- * so we need this forward declaration
- */
-typedef struct _Multibuffers   *MultibuffersPtr;
-
-/*
- * per-Multibuffer data
- */
- 
-typedef struct _Multibuffer {
-    MultibuffersPtr pMultibuffers;  /* associated window data */
-    Mask           eventMask;      /* 
MultibufferClobberNotifyMask|ExposureMask|MultibufferUpdateNotifyMask */
-    Mask           otherEventMask; /* mask of all other clients event masks */
-    OtherClients    *otherClients;  /* other clients that want events */
-    int                    number;         /* index of this buffer into array 
*/
-    int                    side;           /* always Mono */
-    int                    clobber;        /* Unclobbered, PartiallyClobbered, 
FullClobbered */
-    PixmapPtr      pPixmap;        /* associated pixmap */
-} MultibufferRec, *MultibufferPtr;
-
-/*
- * per-window data
- */
-
-typedef struct _Multibuffers {
-    WindowPtr  pWindow;                /* associated window */
-    int                numMultibuffer;         /* count of buffers */
-    int                refcnt;                 /* ref count for delete */
-    int                displayedMultibuffer;   /* currently active buffer */
-    int                updateAction;           /* Undefined, Background, 
Untouched, Copied */
-    int                updateHint;             /* Frequent, Intermittent, 
Static */
-    int                windowMode;             /* always Mono */
-
-    TimeStamp  lastUpdate;             /* time of last update */
-
-    unsigned short     width, height;  /* last known window size */
-    short              x, y;           /* for static gravity */
-
-    MultibufferPtr     buffers;        /* array of numMultibuffer buffers */
-} MultibuffersRec;
-
-/*
- * per-screen data
- */
-typedef struct _MultibufferScreen {
-    PositionWindowProcPtr PositionWindow;              /* pWin, x,y */
-} MultibufferScreenRec, *MultibufferScreenPtr;
-
-/*
- * per display-image-buffers request data.
- */
-
-typedef struct _DisplayRequest {
-    struct _DisplayRequest     *next;
-    TimeStamp                  activateTime;
-    ClientPtr                  pClient;
-    XID                                id;
-} DisplayRequestRec, *DisplayRequestPtr;
-
-#define DestroyWindowMask              (1L<<0)
-#define PositionWindowMask             (1L<<1)
-#define PostValidateTreeMask           (1L<<2)
-#define ClipNotifyMask                 (1L<<3)
-#define WindowExposuresMask            (1L<<4)
-#define CopyWindowMask                 (1L<<5)
-#define ClearToBackgroundMask          (1L<<6)
-#define ChangeWindowAttributesMask     (1L<<7)    
-
-extern int             MultibufferScreenIndex;
-extern int             MultibufferWindowIndex;
-
-extern RESTYPE         MultibufferDrawableResType;
-
-extern void            MultibufferUpdate(      /* pMbuffer, time */
-                               MultibufferPtr /* pMultibuffer */,
-                               CARD32 /* time */
-                               );
-extern void            MultibufferExpose(      /* pMbuffer, pRegion */
-                               MultibufferPtr /* pMultibuffer */,
-                               RegionPtr /* pRegion */
-                               );
-extern void            MultibufferClobber(     /* pMbuffer */
-                               MultibufferPtr /* pMultibuffer */
-                               );
-
-typedef struct _mbufWindow     *mbufWindowPtr;
-
-/*
- * per-buffer data
- */
-
-#define MB_DISPLAYED_BUFFER(pMBWindow) \
-    ((pMBWindow)->buffers + (pMBWindow)->displayedMultibuffer)
- 
-typedef struct _mbufBuffer {
-    mbufWindowPtr   pMBWindow;     /* associated window data */
-    Mask           eventMask;      /* client event mask */
-    Mask           otherEventMask; /* union of other clients' event masks */
-    OtherClientsPtr otherClients;   /* other clients that want events */
-    int                    number;         /* index of this buffer into array 
*/
-    int                    side;           /* stero side: always Mono */
-    int                    clobber;        /* clober state */
-    DrawablePtr            pDrawable;      /* associated drawable */
-} mbufBufferRec, *mbufBufferPtr;
-
-
-/*
- * per-window data
- */
-
-#define MB_WINDOW_PRIV(pWin) \
-    ((mbufWindowPtr)((pWin)->devPrivates[MultibufferWindowIndex].ptr))
-
-typedef struct _mbufWindow {
-    WindowPtr  pWindow;                /* associated window */
-    int                numMultibuffer;         /* count of buffers */
-    mbufBufferPtr buffers;             /* array of (numMultibuffer) buffers */
-    int                displayedMultibuffer;   /* currently active buffer */
-    int                updateAction;           /* Undefined, Background,
-                                          Untouched, Copied */
-    int                updateHint;             /* Frequent, Intermittent, 
Static */
-    int                windowMode;             /* always Mono */
-    TimeStamp  lastUpdate;             /* time of last update */
-    short              x, y;           /* for static gravity */
-    unsigned short     width, height;  /* last known window size */
-    DevUnion           devPrivate;
-} mbufWindowRec;
-
-
-/*
- * per-screen data
- */
-
-#define MB_SCREEN_PRIV(pScreen) \
-    ((mbufScreenPtr)((pScreen)->devPrivates[MultibufferScreenIndex].ptr))
-
-typedef struct _mbufScreen {
-    long mbufWindowCount;              /* count of multibuffered windows */
-
-    /* Wrap pScreen->DestroyWindow */
-    DestroyWindowProcPtr DestroyWindow;
-    long funcsWrapped;                 /* flags which functions are wrapped */
-
-    /* Initialized by device-dependent section */
-    int  nInfo;                                /* number of buffer info rec's 
*/
-    xMbufBufferInfo *pInfo;            /* buffer info (for Normal buffers) */
-
-    int  (* CreateImageBuffers)(
-               WindowPtr               /* pWin */,
-               int                     /* nbuf */,
-               XID *                   /* ids */,
-               int                     /* action */,
-               int                     /* hint */
-               );
-    void (* DestroyImageBuffers)(
-               WindowPtr               /* pWin */
-               );
-    void (* DisplayImageBuffers)(
-               ScreenPtr               /* pScreen */,
-               mbufBufferPtr *         /* ppMBBuffer */,
-               mbufWindowPtr *         /* ppMBWindow */,
-               int                     /* nbuf */
-               );
-    void (* ClearImageBufferArea)(
-               mbufBufferPtr           /* pMBBuffer */,
-               short                   /* x */,
-               short                   /* y */,
-               unsigned short          /* width */,
-               unsigned short          /* height */,
-               Bool                    /* exposures */
-               );
-    Bool (* ChangeMBufferAttributes)(  /* pMBWindow, vmask */ 
-               /* FIXME */
-               );
-    Bool (* ChangeBufferAttributes)(   /* pMBBuffer, vmask */
-               /* FIXME */
-               );
-    void (* DeleteBufferDrawable)(
-               DrawablePtr             /* pDrawable */
-               );
-    void (* WrapScreenFuncs)(
-               ScreenPtr               /* pScreen */
-               );
-    void (* ResetProc)(
-               ScreenPtr               /* pScreen */
-               );
-    DevUnion   devPrivate;
-} mbufScreenRec, *mbufScreenPtr;
-
-
-/* Privates to mbufScreenRec */
-
-#ifdef _MULTIBUF_PIXMAP_
-#define MB_SCREEN_PRIV_PIXMAP(pScreen) \
-    ((mbufPixmapPrivPtr) MB_SCREEN_PRIV((pScreen))->devPrivate.ptr)
-
-typedef struct _mbufPixmapPriv
-{
-    /* Pointers to wrapped functions */
-    PositionWindowProcPtr PositionWindow;              /* pWin, x,y */
-    long funcsWrapped;                 /* flags which functions are wrapped */
-} mbufPixmapPrivRec, *mbufPixmapPrivPtr;
-#endif /* _MULTIBUF_PIXMAP_ */
-
-
-#ifdef _MULTIBUF_BUFFER_
-
-extern int frameWindowPrivateIndex;
-
-#define MB_SCREEN_PRIV_BUFFER(pScreen) \
-    ((mbufBufferPrivPtr) MB_SCREEN_PRIV((pScreen))->devPrivate.ptr)
-
-typedef struct _mbufBufferPriv
-{
-    DevUnion   *frameBuffer;   /* Array of screen framebuffers */
-    DevUnion   selectPlane;    /* Plane(s) that select displayed buffer */
-
-    /* 
-     * Note: subtractRgn and unionRgn may overlap. subtractRgn is a union
-     * of all the old clipLists of the windows that are displaying
-     * the backbuffer. unionRgn is the union of all the new clipLists
-     * of the same windows.
-     */
-
-    RegionRec  backBuffer;     /* Area of screen displaying back buffer */
-    RegionRec   subtractRgn;   /* Regions lost to backBuffer   */
-    RegionRec   unionRgn;      /* Regions gained by backBuffer */
-    Bool       rgnChanged;     /* TRUE if "backBuffer" needs to be updated */
-
-    void (* CopyBufferBits)(); /* pMBWindow, srcBufferNum, dstBufferNum */
-    void (* DrawSelectPlane)();        /* pScreen, selectPlane, pRegion, 
bufferNum */
-
-    /* Pointers to wrapped functions */
-    PostValidateTreeProcPtr    PostValidateTree; /* pParent, pChild, kind */
-    ClipNotifyProcPtr          ClipNotify;       /* pWin, dx, dy */
-    WindowExposuresProcPtr     WindowExposures;  /* pWin, pRegion */
-    CopyWindowProcPtr          CopyWindow;       /* pWin, oldPt, pOldRegion */
-    ClearToBackgroundProcPtr   ClearToBackground; /* pWin, x,y,w,h, sendExpose 
*/
-    ChangeWindowAttributesProcPtr ChangeWindowAttributes; /* pWin, vmask */
-    long funcsWrapped;                 /* flags which functions are wrapped */
-    unsigned  inClearToBackground:1;   /* used by WindowExposure */
-} mbufBufferPrivRec, *mbufBufferPrivPtr;
-#endif /* _MULTIBUF_BUFFER_ */
-
-#endif /* _MULTIBUF_SERVER_ */
 #endif /* _MULTIBUFST_H_ */
-- 
1.6.3.rc1.2.g0164.dirty

_______________________________________________
xorg-devel mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to