8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync/***********************************************************
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncCopyright 1987, 1998 The Open Group
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncPermission to use, copy, modify, distribute, and sell this software and its
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncdocumentation for any purpose is hereby granted without fee, provided that
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncthe above copyright notice appear in all copies and that both that
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynccopyright notice and this permission notice appear in supporting
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncdocumentation.
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncThe above copyright notice and this permission notice shall be included in
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncall copies or substantial portions of the Software.
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncExcept as contained in this notice, the name of The Open Group shall not be
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncused in advertising or otherwise to promote the sale, use or other dealings
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncin this Software without prior written authorization from The Open Group.
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync All Rights Reserved
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncPermission to use, copy, modify, and distribute this software and its
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncdocumentation for any purpose and without fee is hereby granted,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncprovided that the above copyright notice appear in all copies and that
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncboth that copyright notice and this permission notice appear in
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncsupporting documentation, and that the name of Digital not be
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncused in advertising or publicity pertaining to distribution of the
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncsoftware without specific, written prior permission.
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncSOFTWARE.
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync******************************************************************/
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#ifndef SCREENINTSTRUCT_H
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define SCREENINTSTRUCT_H
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#include "screenint.h"
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#include "regionstr.h"
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#include "colormap.h"
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#include "cursor.h"
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#include "validate.h"
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#include <X11/Xproto.h>
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#include "dix.h"
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#include "privates.h"
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _PixmapFormat {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned char depth;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned char bitsPerPixel;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned char scanlinePad;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync } PixmapFormatRec;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _Visual {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync VisualID vid;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short class;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short bitsPerRGBValue;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short ColormapEntries;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short nplanes;/* = log2 (ColormapEntries). This does not
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * imply that the screen has this many planes.
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * it may have more or fewer */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned long redMask, greenMask, blueMask;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int offsetRed, offsetGreen, offsetBlue;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync } VisualRec;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _Depth {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned char depth;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short numVids;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync VisualID *vids; /* block of visual ids for this depth */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync } DepthRec;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _ScreenSaverStuff {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr pWindow;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XID wid;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync char blanked;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool (*ExternalScreenSaver)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr /*pScreen*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*xstate*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool /*force*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} ScreenSaverStuffRec;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync/*
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * There is a typedef for each screen function pointer so that code that
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * needs to declare a screen function pointer (e.g. in a screen private
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * or as a local variable) can easily do so and retain full type checking.
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* CloseScreenProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*index*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr /*pScreen*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* QueryBestSizeProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*class*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short * /*pwidth*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short * /*pheight*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr /*pScreen*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* SaveScreenProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr /*pScreen*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*on*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* GetImageProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DrawablePtr /*pDrawable*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*sx*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*sy*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*w*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*h*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned int /*format*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned long /*planeMask*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync char * /*pdstLine*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* GetSpansProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DrawablePtr /*pDrawable*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*wMax*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DDXPointPtr /*ppt*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int* /*pwidth*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*nspans*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync char * /*pdstStart*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* SourceValidateProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DrawablePtr /*pDrawable*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*x*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*y*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*width*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*height*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned int /*subWindowMode*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* CreateWindowProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWindow*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* DestroyWindowProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWindow*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* PositionWindowProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWindow*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*x*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*y*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* ChangeWindowAttributesProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWindow*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned long /*mask*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* RealizeWindowProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWindow*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* UnrealizeWindowProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWindow*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* RestackWindowProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWindow*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pOldNextSib*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef int (* ValidateTreeProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pParent*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pChild*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync VTKind /*kind*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* PostValidateTreeProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pParent*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pChild*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync VTKind /*kind*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* WindowExposuresProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWindow*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync RegionPtr /*prgn*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync RegionPtr /*other_exposed*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* CopyWindowProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWindow*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DDXPointRec /*ptOldOrg*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync RegionPtr /*prgnSrc*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* ClearToBackgroundProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWindow*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*x*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*y*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*w*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*h*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool /*generateExposures*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* ClipNotifyProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWindow*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*dx*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*dy*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync/* pixmap will exist only for the duration of the current rendering operation */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define CREATE_PIXMAP_USAGE_SCRATCH 1
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync/* pixmap will be the backing pixmap for a redirected window */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define CREATE_PIXMAP_USAGE_BACKING_PIXMAP 2
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync/* pixmap will contain a glyph */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define CREATE_PIXMAP_USAGE_GLYPH_PICTURE 3
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef PixmapPtr (* CreatePixmapProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr /*pScreen*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*width*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*height*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*depth*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned /*usage_hint*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* DestroyPixmapProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync PixmapPtr /*pPixmap*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* RealizeFontProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr /*pScreen*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync FontPtr /*pFont*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* UnrealizeFontProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr /*pScreen*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync FontPtr /*pFont*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* ConstrainCursorProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DeviceIntPtr /*pDev*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr /*pScreen*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync BoxPtr /*pBox*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* CursorLimitsProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DeviceIntPtr /* pDev */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr /*pScreen*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync CursorPtr /*pCursor*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync BoxPtr /*pHotBox*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync BoxPtr /*pTopLeftBox*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* DisplayCursorProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DeviceIntPtr /* pDev */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr /*pScreen*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync CursorPtr /*pCursor*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* RealizeCursorProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DeviceIntPtr /* pDev */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr /*pScreen*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync CursorPtr /*pCursor*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* UnrealizeCursorProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DeviceIntPtr /* pDev */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr /*pScreen*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync CursorPtr /*pCursor*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* RecolorCursorProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DeviceIntPtr /* pDev */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr /*pScreen*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync CursorPtr /*pCursor*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool /*displayed*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* SetCursorPositionProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DeviceIntPtr /* pDev */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr /*pScreen*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*x*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*y*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool /*generateEvent*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* CreateGCProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync GCPtr /*pGC*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* CreateColormapProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ColormapPtr /*pColormap*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* DestroyColormapProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ColormapPtr /*pColormap*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* InstallColormapProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ColormapPtr /*pColormap*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* UninstallColormapProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ColormapPtr /*pColormap*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef int (* ListInstalledColormapsProcPtr) (
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr /*pScreen*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XID* /*pmaps */);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* StoreColorsProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ColormapPtr /*pColormap*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*ndef*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync xColorItem * /*pdef*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* ResolveColorProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short* /*pred*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short* /*pgreen*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short* /*pblue*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync VisualPtr /*pVisual*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef RegionPtr (* BitmapToRegionProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync PixmapPtr /*pPix*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* SendGraphicsExposeProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ClientPtr /*client*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync RegionPtr /*pRgn*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XID /*drawable*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*major*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*minor*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* ScreenBlockHandlerProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*screenNum*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync pointer /*blockData*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync pointer /*pTimeout*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync pointer /*pReadmask*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* ScreenWakeupHandlerProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*screenNum*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync pointer /*wakeupData*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned long /*result*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync pointer /*pReadMask*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* CreateScreenResourcesProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr /*pScreen*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* ModifyPixmapHeaderProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync PixmapPtr /*pPixmap*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*width*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*height*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*depth*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*bitsPerPixel*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*devKind*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync pointer /*pPixData*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef PixmapPtr (* GetWindowPixmapProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWin*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* SetWindowPixmapProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWin*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync PixmapPtr /*pPix*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef PixmapPtr (* GetScreenPixmapProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr /*pScreen*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* SetScreenPixmapProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync PixmapPtr /*pPix*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* MarkWindowProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWin*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* MarkOverlappedWindowsProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*parent*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*firstChild*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr * /*pLayerWin*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef int (* ConfigNotifyProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWin*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*x*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*y*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*w*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*h*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*bw*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pSib*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* MoveWindowProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWin*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*x*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*y*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pSib*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync VTKind /*kind*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* ResizeWindowProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWin*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*x*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*y*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned int /*w*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned int /*h*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pSib*/
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef WindowPtr (* GetLayerWindowProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWin*/
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* HandleExposuresProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWin*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* ReparentWindowProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWin*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pPriorParent*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* SetShapeProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWin*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* kind */);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* ChangeBorderWidthProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWin*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned int /*width*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* MarkUnrealizedWindowProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pChild*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr /*pWin*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool /*fromConfigure*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef Bool (* DeviceCursorInitializeProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DeviceIntPtr /* pDev */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr /* pScreen */);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (* DeviceCursorCleanupProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DeviceIntPtr /* pDev */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr /* pScreen */);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef void (*ConstrainCursorHarderProcPtr)(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DeviceIntPtr, ScreenPtr, int, int *, int *);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _Screen {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int myNum; /* index of this instance in Screens[] */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ATOM id;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short x, y, width, height;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short mmWidth, mmHeight;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short numDepths;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned char rootDepth;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DepthPtr allowedDepths;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned long rootVisual;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned long defColormap;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short minInstalledCmaps, maxInstalledCmaps;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync char backingStoreSupport, saveUnderSupport;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned long whitePixel, blackPixel;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync GCPtr GCperDepth[MAXFORMATS+1];
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync /* next field is a stipple to use as default in
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync a GC. we don't build default tiles of all depths
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync because they are likely to be of a color
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync different from the default fg pixel, so
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync we don't win anything by building
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync a standard one.
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync PixmapPtr PixmapPerDepth[1];
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync pointer devPrivate;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short numVisuals;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync VisualPtr visuals;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowPtr root;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenSaverStuffRec screensaver;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync /* Random screen procedures */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync CloseScreenProcPtr CloseScreen;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync QueryBestSizeProcPtr QueryBestSize;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync SaveScreenProcPtr SaveScreen;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync GetImageProcPtr GetImage;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync GetSpansProcPtr GetSpans;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync SourceValidateProcPtr SourceValidate;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync /* Window Procedures */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync CreateWindowProcPtr CreateWindow;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DestroyWindowProcPtr DestroyWindow;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync PositionWindowProcPtr PositionWindow;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ChangeWindowAttributesProcPtr ChangeWindowAttributes;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync RealizeWindowProcPtr RealizeWindow;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync UnrealizeWindowProcPtr UnrealizeWindow;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ValidateTreeProcPtr ValidateTree;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync PostValidateTreeProcPtr PostValidateTree;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync WindowExposuresProcPtr WindowExposures;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync CopyWindowProcPtr CopyWindow;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ClearToBackgroundProcPtr ClearToBackground;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ClipNotifyProcPtr ClipNotify;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync RestackWindowProcPtr RestackWindow;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync /* Pixmap procedures */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync CreatePixmapProcPtr CreatePixmap;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DestroyPixmapProcPtr DestroyPixmap;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync /* Font procedures */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync RealizeFontProcPtr RealizeFont;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync UnrealizeFontProcPtr UnrealizeFont;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync /* Cursor Procedures */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ConstrainCursorProcPtr ConstrainCursor;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ConstrainCursorHarderProcPtr ConstrainCursorHarder;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync CursorLimitsProcPtr CursorLimits;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DisplayCursorProcPtr DisplayCursor;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync RealizeCursorProcPtr RealizeCursor;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync UnrealizeCursorProcPtr UnrealizeCursor;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync RecolorCursorProcPtr RecolorCursor;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync SetCursorPositionProcPtr SetCursorPosition;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync /* GC procedures */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync CreateGCProcPtr CreateGC;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync /* Colormap procedures */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync CreateColormapProcPtr CreateColormap;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DestroyColormapProcPtr DestroyColormap;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync InstallColormapProcPtr InstallColormap;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync UninstallColormapProcPtr UninstallColormap;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ListInstalledColormapsProcPtr ListInstalledColormaps;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync StoreColorsProcPtr StoreColors;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ResolveColorProcPtr ResolveColor;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync /* Region procedures */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync BitmapToRegionProcPtr BitmapToRegion;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync SendGraphicsExposeProcPtr SendGraphicsExpose;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync /* os layer procedures */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenBlockHandlerProcPtr BlockHandler;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenWakeupHandlerProcPtr WakeupHandler;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync pointer blockData;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync pointer wakeupData;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync /* anybody can get a piece of this array */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync PrivateRec *devPrivates;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync CreateScreenResourcesProcPtr CreateScreenResources;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ModifyPixmapHeaderProcPtr ModifyPixmapHeader;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync GetWindowPixmapProcPtr GetWindowPixmap;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync SetWindowPixmapProcPtr SetWindowPixmap;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync GetScreenPixmapProcPtr GetScreenPixmap;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync SetScreenPixmapProcPtr SetScreenPixmap;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync PixmapPtr pScratchPixmap; /* scratch pixmap "pool" */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned int totalPixmapSize;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync MarkWindowProcPtr MarkWindow;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync MarkOverlappedWindowsProcPtr MarkOverlappedWindows;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ConfigNotifyProcPtr ConfigNotify;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync MoveWindowProcPtr MoveWindow;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ResizeWindowProcPtr ResizeWindow;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync GetLayerWindowProcPtr GetLayerWindow;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync HandleExposuresProcPtr HandleExposures;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ReparentWindowProcPtr ReparentWindow;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync SetShapeProcPtr SetShape;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ChangeBorderWidthProcPtr ChangeBorderWidth;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync MarkUnrealizedWindowProcPtr MarkUnrealizedWindow;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync /* Device cursor procedures */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DeviceCursorInitializeProcPtr DeviceCursorInitialize;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync DeviceCursorCleanupProcPtr DeviceCursorCleanup;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync /* set it in driver side if X server can copy the framebuffer content.
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * Meant to be used together with '-background none' option, avoiding
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * malicious users to steal framebuffer's content if that would be the
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync * default */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool canDoBGNoneRoot;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} ScreenRec;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncstatic inline RegionPtr BitmapToRegion(ScreenPtr _pScreen, PixmapPtr pPix) {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync return (*(_pScreen)->BitmapToRegion)(pPix); /* no mi version?! */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync}
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _ScreenInfo {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int imageByteOrder;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int bitmapScanlineUnit;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int bitmapScanlinePad;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int bitmapBitOrder;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int numPixmapFormats;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync PixmapFormatRec
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync formats[MAXFORMATS];
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int numScreens;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenPtr screens[MAXSCREENS];
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} ScreenInfo;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern _X_EXPORT ScreenInfo screenInfo;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern _X_EXPORT void InitOutput(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ScreenInfo * /*pScreenInfo*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /*argc*/,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync char ** /*argv*/);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#endif /* SCREENINTSTRUCT_H */