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