deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/***********************************************************
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncCopyright 1987, 1998 The Open Group
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncPermission to use, copy, modify, distribute, and sell this software and its
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncdocumentation for any purpose is hereby granted without fee, provided that
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncthe above copyright notice appear in all copies and that both that
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynccopyright notice and this permission notice appear in supporting
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncdocumentation.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncThe above copyright notice and this permission notice shall be included in
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncall copies or substantial portions of the Software.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncExcept as contained in this notice, the name of The Open Group shall not be
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncused in advertising or otherwise to promote the sale, use or other dealings
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncin this Software without prior written authorization from The Open Group.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync All Rights Reserved
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncPermission to use, copy, modify, and distribute this software and its
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncdocumentation for any purpose and without fee is hereby granted,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncprovided that the above copyright notice appear in all copies and that
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncboth that copyright notice and this permission notice appear in
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncsupporting documentation, and that the name of Digital not be
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncused in advertising or publicity pertaining to distribution of the
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncsoftware without specific, written prior permission.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncSOFTWARE.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync******************************************************************/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef SCREENINTSTRUCT_H
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define SCREENINTSTRUCT_H
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "screenint.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "regionstr.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "bstore.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "colormap.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "cursor.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "validate.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include <X11/Xproto.h>
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "dix.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct _PixmapFormat {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char depth;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char bitsPerPixel;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char scanlinePad;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } PixmapFormatRec;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct _Visual {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync VisualID vid;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync short class;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync short bitsPerRGBValue;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync short ColormapEntries;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync short nplanes;/* = log2 (ColormapEntries). This does not
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * imply that the screen has this many planes.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * it may have more or fewer */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long redMask, greenMask, blueMask;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int offsetRed, offsetGreen, offsetBlue;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } VisualRec;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct _Depth {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char depth;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync short numVids;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync VisualID *vids; /* block of visual ids for this depth */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } DepthRec;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * There is a typedef for each screen function pointer so that code that
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * needs to declare a screen function pointer (e.g. in a screen private
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * or as a local variable) can easily do so and retain full type checking.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* CloseScreenProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*index*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* QueryBestSizeProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*class*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned short * /*pwidth*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned short * /*pheight*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* SaveScreenProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*on*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* GetImageProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawablePtr /*pDrawable*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*sx*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*sy*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*w*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*h*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int /*format*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long /*planeMask*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char * /*pdstLine*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* GetSpansProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawablePtr /*pDrawable*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*wMax*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DDXPointPtr /*ppt*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int* /*pwidth*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*nspans*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char * /*pdstStart*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* PointerNonInterestBoxProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BoxPtr /*pBox*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* SourceValidateProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawablePtr /*pDrawable*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*x*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*y*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*width*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*height*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* CreateWindowProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWindow*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* DestroyWindowProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWindow*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* PositionWindowProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWindow*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*x*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*y*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* ChangeWindowAttributesProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWindow*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long /*mask*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* RealizeWindowProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWindow*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* UnrealizeWindowProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWindow*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* RestackWindowProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWindow*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pOldNextSib*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef int (* ValidateTreeProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pParent*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pChild*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync VTKind /*kind*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* PostValidateTreeProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pParent*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pChild*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync VTKind /*kind*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* WindowExposuresProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWindow*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr /*prgn*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr /*other_exposed*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* PaintWindowProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWindow*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr /*pRegion*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*what*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef PaintWindowProcPtr PaintWindowBackgroundProcPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef PaintWindowProcPtr PaintWindowBorderProcPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* CopyWindowProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWindow*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DDXPointRec /*ptOldOrg*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr /*prgnSrc*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* ClearToBackgroundProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWindow*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*x*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*y*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*w*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*h*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool /*generateExposures*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* ClipNotifyProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWindow*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*dx*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*dy*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef PixmapPtr (* CreatePixmapProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*width*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*height*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*depth*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* DestroyPixmapProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PixmapPtr /*pPixmap*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* SaveDoomedAreasProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWindow*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr /*prgnSave*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*xorg*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*yorg*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef RegionPtr (* RestoreAreasProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWindow*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr /*prgnRestore*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* ExposeCopyProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pSrc*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawablePtr /*pDst*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr /*pGC*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr /*prgnExposed*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*srcx*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*srcy*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*dstx*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*dsty*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long /*plane*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef RegionPtr (* TranslateBackingStoreProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWindow*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*windx*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*windy*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr /*oldClip*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*oldx*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*oldy*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef RegionPtr (* ClearBackingStoreProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWindow*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*x*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*y*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*w*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*h*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool /*generateExposures*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* DrawGuaranteeProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWindow*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr /*pGC*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*guarantee*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* RealizeFontProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FontPtr /*pFont*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* UnrealizeFontProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FontPtr /*pFont*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* ConstrainCursorProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BoxPtr /*pBox*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* CursorLimitsProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CursorPtr /*pCursor*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BoxPtr /*pHotBox*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BoxPtr /*pTopLeftBox*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* DisplayCursorProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CursorPtr /*pCursor*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* RealizeCursorProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CursorPtr /*pCursor*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* UnrealizeCursorProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CursorPtr /*pCursor*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* RecolorCursorProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CursorPtr /*pCursor*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool /*displayed*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* SetCursorPositionProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*x*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*y*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool /*generateEvent*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* CreateGCProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr /*pGC*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* CreateColormapProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ColormapPtr /*pColormap*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* DestroyColormapProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ColormapPtr /*pColormap*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* InstallColormapProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ColormapPtr /*pColormap*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* UninstallColormapProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ColormapPtr /*pColormap*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef int (* ListInstalledColormapsProcPtr) (
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync XID* /*pmaps */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* StoreColorsProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ColormapPtr /*pColormap*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*ndef*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xColorItem * /*pdef*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* ResolveColorProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned short* /*pred*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned short* /*pgreen*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned short* /*pblue*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync VisualPtr /*pVisual*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef RegionPtr (* BitmapToRegionProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PixmapPtr /*pPix*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* SendGraphicsExposeProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClientPtr /*client*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr /*pRgn*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync XID /*drawable*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*major*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*minor*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* ScreenBlockHandlerProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*screenNum*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer /*blockData*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer /*pTimeout*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer /*pReadmask*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* ScreenWakeupHandlerProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*screenNum*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer /*wakeupData*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long /*result*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer /*pReadMask*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* CreateScreenResourcesProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* ModifyPixmapHeaderProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PixmapPtr /*pPixmap*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*width*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*height*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*depth*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*bitsPerPixel*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*devKind*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer /*pPixData*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef PixmapPtr (* GetWindowPixmapProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWin*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* SetWindowPixmapProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWin*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PixmapPtr /*pPix*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef PixmapPtr (* GetScreenPixmapProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* SetScreenPixmapProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PixmapPtr /*pPix*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* MarkWindowProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWin*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* MarkOverlappedWindowsProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*parent*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*firstChild*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr * /*pLayerWin*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (* ChangeSaveUnderProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pLayerWin*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*firstChild*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* PostChangeSaveUnderProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pLayerWin*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*firstChild*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* MoveWindowProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWin*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*x*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*y*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pSib*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync VTKind /*kind*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* ResizeWindowProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWin*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*x*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*y*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int /*w*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int /*h*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pSib*/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef WindowPtr (* GetLayerWindowProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWin*/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* HandleExposuresProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWin*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* ReparentWindowProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWin*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pPriorParent*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef SHAPE
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* SetShapeProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWin*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif /* SHAPE */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* ChangeBorderWidthProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWin*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int /*width*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (* MarkUnrealizedWindowProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pChild*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /*pWin*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool /*fromConfigure*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct _Screen {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int myNum; /* index of this instance in Screens[] */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ATOM id;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync short width, height;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync short mmWidth, mmHeight;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync short numDepths;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char rootDepth;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DepthPtr allowedDepths;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long rootVisual;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long defColormap;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync short minInstalledCmaps, maxInstalledCmaps;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char backingStoreSupport, saveUnderSupport;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long whitePixel, blackPixel;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long rgf; /* array of flags; she's -- HUNGARIAN */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr GCperDepth[MAXFORMATS+1];
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* next field is a stipple to use as default in
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync a GC. we don't build default tiles of all depths
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync because they are likely to be of a color
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync different from the default fg pixel, so
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync we don't win anything by building
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync a standard one.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PixmapPtr PixmapPerDepth[1];
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer devPrivate;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync short numVisuals;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync VisualPtr visuals;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int WindowPrivateLen;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned *WindowPrivateSizes;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned totalWindowSize;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int GCPrivateLen;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned *GCPrivateSizes;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned totalGCSize;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* Random screen procedures */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CloseScreenProcPtr CloseScreen;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync QueryBestSizeProcPtr QueryBestSize;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync SaveScreenProcPtr SaveScreen;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GetImageProcPtr GetImage;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GetSpansProcPtr GetSpans;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PointerNonInterestBoxProcPtr PointerNonInterestBox;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync SourceValidateProcPtr SourceValidate;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* Window Procedures */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CreateWindowProcPtr CreateWindow;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DestroyWindowProcPtr DestroyWindow;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PositionWindowProcPtr PositionWindow;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ChangeWindowAttributesProcPtr ChangeWindowAttributes;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RealizeWindowProcPtr RealizeWindow;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync UnrealizeWindowProcPtr UnrealizeWindow;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ValidateTreeProcPtr ValidateTree;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PostValidateTreeProcPtr PostValidateTree;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowExposuresProcPtr WindowExposures;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PaintWindowBackgroundProcPtr PaintWindowBackground;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PaintWindowBorderProcPtr PaintWindowBorder;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CopyWindowProcPtr CopyWindow;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClearToBackgroundProcPtr ClearToBackground;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClipNotifyProcPtr ClipNotify;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RestackWindowProcPtr RestackWindow;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* Pixmap procedures */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CreatePixmapProcPtr CreatePixmap;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DestroyPixmapProcPtr DestroyPixmap;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* Backing store procedures */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync SaveDoomedAreasProcPtr SaveDoomedAreas;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RestoreAreasProcPtr RestoreAreas;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ExposeCopyProcPtr ExposeCopy;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync TranslateBackingStoreProcPtr TranslateBackingStore;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClearBackingStoreProcPtr ClearBackingStore;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawGuaranteeProcPtr DrawGuarantee;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * A read/write copy of the lower level backing store vector is needed now
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * that the functions can be wrapped.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BSFuncRec BackingStoreFuncs;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* Font procedures */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RealizeFontProcPtr RealizeFont;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync UnrealizeFontProcPtr UnrealizeFont;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* Cursor Procedures */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ConstrainCursorProcPtr ConstrainCursor;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CursorLimitsProcPtr CursorLimits;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DisplayCursorProcPtr DisplayCursor;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RealizeCursorProcPtr RealizeCursor;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync UnrealizeCursorProcPtr UnrealizeCursor;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RecolorCursorProcPtr RecolorCursor;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync SetCursorPositionProcPtr SetCursorPosition;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* GC procedures */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CreateGCProcPtr CreateGC;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* Colormap procedures */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CreateColormapProcPtr CreateColormap;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DestroyColormapProcPtr DestroyColormap;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync InstallColormapProcPtr InstallColormap;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync UninstallColormapProcPtr UninstallColormap;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ListInstalledColormapsProcPtr ListInstalledColormaps;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync StoreColorsProcPtr StoreColors;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ResolveColorProcPtr ResolveColor;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* Region procedures */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BitmapToRegionProcPtr BitmapToRegion;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync SendGraphicsExposeProcPtr SendGraphicsExpose;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* os layer procedures */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenBlockHandlerProcPtr BlockHandler;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenWakeupHandlerProcPtr WakeupHandler;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer blockData;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer wakeupData;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* anybody can get a piece of this array */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DevUnion *devPrivates;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CreateScreenResourcesProcPtr CreateScreenResources;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ModifyPixmapHeaderProcPtr ModifyPixmapHeader;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GetWindowPixmapProcPtr GetWindowPixmap;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync SetWindowPixmapProcPtr SetWindowPixmap;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GetScreenPixmapProcPtr GetScreenPixmap;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync SetScreenPixmapProcPtr SetScreenPixmap;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PixmapPtr pScratchPixmap; /* scratch pixmap "pool" */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef PIXPRIV
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int PixmapPrivateLen;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int *PixmapPrivateSizes;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int totalPixmapSize;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync MarkWindowProcPtr MarkWindow;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync MarkOverlappedWindowsProcPtr MarkOverlappedWindows;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ChangeSaveUnderProcPtr ChangeSaveUnder;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PostChangeSaveUnderProcPtr PostChangeSaveUnder;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync MoveWindowProcPtr MoveWindow;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ResizeWindowProcPtr ResizeWindow;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GetLayerWindowProcPtr GetLayerWindow;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync HandleExposuresProcPtr HandleExposures;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ReparentWindowProcPtr ReparentWindow;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef SHAPE
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync SetShapeProcPtr SetShape;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif /* SHAPE */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ChangeBorderWidthProcPtr ChangeBorderWidth;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync MarkUnrealizedWindowProcPtr MarkUnrealizedWindow;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} ScreenRec;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct _ScreenInfo {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int imageByteOrder;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int bitmapScanlineUnit;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int bitmapScanlinePad;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int bitmapBitOrder;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int numPixmapFormats;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PixmapFormatRec
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync formats[MAXFORMATS];
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int arraySize;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int numScreens;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr screens[MAXSCREENS];
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int numVideoScreens;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} ScreenInfo;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern ScreenInfo screenInfo;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void InitOutput(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenInfo * /*pScreenInfo*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*argc*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char ** /*argv*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif /* SCREENINTSTRUCT_H */