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