scrnintstr.h revision 05b261ec
105b261ecSmrg/*********************************************************** 205b261ecSmrg 305b261ecSmrgCopyright 1987, 1998 The Open Group 405b261ecSmrg 505b261ecSmrgPermission to use, copy, modify, distribute, and sell this software and its 605b261ecSmrgdocumentation for any purpose is hereby granted without fee, provided that 705b261ecSmrgthe above copyright notice appear in all copies and that both that 805b261ecSmrgcopyright notice and this permission notice appear in supporting 905b261ecSmrgdocumentation. 1005b261ecSmrg 1105b261ecSmrgThe above copyright notice and this permission notice shall be included in 1205b261ecSmrgall copies or substantial portions of the Software. 1305b261ecSmrg 1405b261ecSmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1505b261ecSmrgIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1605b261ecSmrgFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1705b261ecSmrgOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 1805b261ecSmrgAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 1905b261ecSmrgCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 2005b261ecSmrg 2105b261ecSmrgExcept as contained in this notice, the name of The Open Group shall not be 2205b261ecSmrgused in advertising or otherwise to promote the sale, use or other dealings 2305b261ecSmrgin this Software without prior written authorization from The Open Group. 2405b261ecSmrg 2505b261ecSmrg 2605b261ecSmrgCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. 2705b261ecSmrg 2805b261ecSmrg All Rights Reserved 2905b261ecSmrg 3005b261ecSmrgPermission to use, copy, modify, and distribute this software and its 3105b261ecSmrgdocumentation for any purpose and without fee is hereby granted, 3205b261ecSmrgprovided that the above copyright notice appear in all copies and that 3305b261ecSmrgboth that copyright notice and this permission notice appear in 3405b261ecSmrgsupporting documentation, and that the name of Digital not be 3505b261ecSmrgused in advertising or publicity pertaining to distribution of the 3605b261ecSmrgsoftware without specific, written prior permission. 3705b261ecSmrg 3805b261ecSmrgDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 3905b261ecSmrgALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 4005b261ecSmrgDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 4105b261ecSmrgANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 4205b261ecSmrgWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 4305b261ecSmrgARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 4405b261ecSmrgSOFTWARE. 4505b261ecSmrg 4605b261ecSmrg******************************************************************/ 4705b261ecSmrg 4805b261ecSmrg#ifndef SCREENINTSTRUCT_H 4905b261ecSmrg#define SCREENINTSTRUCT_H 5005b261ecSmrg 5105b261ecSmrg#include "screenint.h" 5205b261ecSmrg#include "regionstr.h" 5305b261ecSmrg#include "bstore.h" 5405b261ecSmrg#include "colormap.h" 5505b261ecSmrg#include "cursor.h" 5605b261ecSmrg#include "validate.h" 5705b261ecSmrg#include <X11/Xproto.h> 5805b261ecSmrg#include "dix.h" 5905b261ecSmrg 6005b261ecSmrgtypedef struct _PixmapFormat { 6105b261ecSmrg unsigned char depth; 6205b261ecSmrg unsigned char bitsPerPixel; 6305b261ecSmrg unsigned char scanlinePad; 6405b261ecSmrg } PixmapFormatRec; 6505b261ecSmrg 6605b261ecSmrgtypedef struct _Visual { 6705b261ecSmrg VisualID vid; 6805b261ecSmrg short class; 6905b261ecSmrg short bitsPerRGBValue; 7005b261ecSmrg short ColormapEntries; 7105b261ecSmrg short nplanes;/* = log2 (ColormapEntries). This does not 7205b261ecSmrg * imply that the screen has this many planes. 7305b261ecSmrg * it may have more or fewer */ 7405b261ecSmrg unsigned long redMask, greenMask, blueMask; 7505b261ecSmrg int offsetRed, offsetGreen, offsetBlue; 7605b261ecSmrg } VisualRec; 7705b261ecSmrg 7805b261ecSmrgtypedef struct _Depth { 7905b261ecSmrg unsigned char depth; 8005b261ecSmrg short numVids; 8105b261ecSmrg VisualID *vids; /* block of visual ids for this depth */ 8205b261ecSmrg } DepthRec; 8305b261ecSmrg 8405b261ecSmrg 8505b261ecSmrg/* 8605b261ecSmrg * There is a typedef for each screen function pointer so that code that 8705b261ecSmrg * needs to declare a screen function pointer (e.g. in a screen private 8805b261ecSmrg * or as a local variable) can easily do so and retain full type checking. 8905b261ecSmrg */ 9005b261ecSmrg 9105b261ecSmrgtypedef Bool (* CloseScreenProcPtr)( 9205b261ecSmrg int /*index*/, 9305b261ecSmrg ScreenPtr /*pScreen*/); 9405b261ecSmrg 9505b261ecSmrgtypedef void (* QueryBestSizeProcPtr)( 9605b261ecSmrg int /*class*/, 9705b261ecSmrg unsigned short * /*pwidth*/, 9805b261ecSmrg unsigned short * /*pheight*/, 9905b261ecSmrg ScreenPtr /*pScreen*/); 10005b261ecSmrg 10105b261ecSmrgtypedef Bool (* SaveScreenProcPtr)( 10205b261ecSmrg ScreenPtr /*pScreen*/, 10305b261ecSmrg int /*on*/); 10405b261ecSmrg 10505b261ecSmrgtypedef void (* GetImageProcPtr)( 10605b261ecSmrg DrawablePtr /*pDrawable*/, 10705b261ecSmrg int /*sx*/, 10805b261ecSmrg int /*sy*/, 10905b261ecSmrg int /*w*/, 11005b261ecSmrg int /*h*/, 11105b261ecSmrg unsigned int /*format*/, 11205b261ecSmrg unsigned long /*planeMask*/, 11305b261ecSmrg char * /*pdstLine*/); 11405b261ecSmrg 11505b261ecSmrgtypedef void (* GetSpansProcPtr)( 11605b261ecSmrg DrawablePtr /*pDrawable*/, 11705b261ecSmrg int /*wMax*/, 11805b261ecSmrg DDXPointPtr /*ppt*/, 11905b261ecSmrg int* /*pwidth*/, 12005b261ecSmrg int /*nspans*/, 12105b261ecSmrg char * /*pdstStart*/); 12205b261ecSmrg 12305b261ecSmrgtypedef void (* PointerNonInterestBoxProcPtr)( 12405b261ecSmrg ScreenPtr /*pScreen*/, 12505b261ecSmrg BoxPtr /*pBox*/); 12605b261ecSmrg 12705b261ecSmrgtypedef void (* SourceValidateProcPtr)( 12805b261ecSmrg DrawablePtr /*pDrawable*/, 12905b261ecSmrg int /*x*/, 13005b261ecSmrg int /*y*/, 13105b261ecSmrg int /*width*/, 13205b261ecSmrg int /*height*/); 13305b261ecSmrg 13405b261ecSmrgtypedef Bool (* CreateWindowProcPtr)( 13505b261ecSmrg WindowPtr /*pWindow*/); 13605b261ecSmrg 13705b261ecSmrgtypedef Bool (* DestroyWindowProcPtr)( 13805b261ecSmrg WindowPtr /*pWindow*/); 13905b261ecSmrg 14005b261ecSmrgtypedef Bool (* PositionWindowProcPtr)( 14105b261ecSmrg WindowPtr /*pWindow*/, 14205b261ecSmrg int /*x*/, 14305b261ecSmrg int /*y*/); 14405b261ecSmrg 14505b261ecSmrgtypedef Bool (* ChangeWindowAttributesProcPtr)( 14605b261ecSmrg WindowPtr /*pWindow*/, 14705b261ecSmrg unsigned long /*mask*/); 14805b261ecSmrg 14905b261ecSmrgtypedef Bool (* RealizeWindowProcPtr)( 15005b261ecSmrg WindowPtr /*pWindow*/); 15105b261ecSmrg 15205b261ecSmrgtypedef Bool (* UnrealizeWindowProcPtr)( 15305b261ecSmrg WindowPtr /*pWindow*/); 15405b261ecSmrg 15505b261ecSmrgtypedef void (* RestackWindowProcPtr)( 15605b261ecSmrg WindowPtr /*pWindow*/, 15705b261ecSmrg WindowPtr /*pOldNextSib*/); 15805b261ecSmrg 15905b261ecSmrgtypedef int (* ValidateTreeProcPtr)( 16005b261ecSmrg WindowPtr /*pParent*/, 16105b261ecSmrg WindowPtr /*pChild*/, 16205b261ecSmrg VTKind /*kind*/); 16305b261ecSmrg 16405b261ecSmrgtypedef void (* PostValidateTreeProcPtr)( 16505b261ecSmrg WindowPtr /*pParent*/, 16605b261ecSmrg WindowPtr /*pChild*/, 16705b261ecSmrg VTKind /*kind*/); 16805b261ecSmrg 16905b261ecSmrgtypedef void (* WindowExposuresProcPtr)( 17005b261ecSmrg WindowPtr /*pWindow*/, 17105b261ecSmrg RegionPtr /*prgn*/, 17205b261ecSmrg RegionPtr /*other_exposed*/); 17305b261ecSmrg 17405b261ecSmrgtypedef void (* PaintWindowProcPtr)( 17505b261ecSmrg WindowPtr /*pWindow*/, 17605b261ecSmrg RegionPtr /*pRegion*/, 17705b261ecSmrg int /*what*/); 17805b261ecSmrg 17905b261ecSmrgtypedef PaintWindowProcPtr PaintWindowBackgroundProcPtr; 18005b261ecSmrgtypedef PaintWindowProcPtr PaintWindowBorderProcPtr; 18105b261ecSmrg 18205b261ecSmrgtypedef void (* CopyWindowProcPtr)( 18305b261ecSmrg WindowPtr /*pWindow*/, 18405b261ecSmrg DDXPointRec /*ptOldOrg*/, 18505b261ecSmrg RegionPtr /*prgnSrc*/); 18605b261ecSmrg 18705b261ecSmrgtypedef void (* ClearToBackgroundProcPtr)( 18805b261ecSmrg WindowPtr /*pWindow*/, 18905b261ecSmrg int /*x*/, 19005b261ecSmrg int /*y*/, 19105b261ecSmrg int /*w*/, 19205b261ecSmrg int /*h*/, 19305b261ecSmrg Bool /*generateExposures*/); 19405b261ecSmrg 19505b261ecSmrgtypedef void (* ClipNotifyProcPtr)( 19605b261ecSmrg WindowPtr /*pWindow*/, 19705b261ecSmrg int /*dx*/, 19805b261ecSmrg int /*dy*/); 19905b261ecSmrg 20005b261ecSmrgtypedef PixmapPtr (* CreatePixmapProcPtr)( 20105b261ecSmrg ScreenPtr /*pScreen*/, 20205b261ecSmrg int /*width*/, 20305b261ecSmrg int /*height*/, 20405b261ecSmrg int /*depth*/); 20505b261ecSmrg 20605b261ecSmrgtypedef Bool (* DestroyPixmapProcPtr)( 20705b261ecSmrg PixmapPtr /*pPixmap*/); 20805b261ecSmrg 20905b261ecSmrgtypedef void (* SaveDoomedAreasProcPtr)( 21005b261ecSmrg WindowPtr /*pWindow*/, 21105b261ecSmrg RegionPtr /*prgnSave*/, 21205b261ecSmrg int /*xorg*/, 21305b261ecSmrg int /*yorg*/); 21405b261ecSmrg 21505b261ecSmrgtypedef RegionPtr (* RestoreAreasProcPtr)( 21605b261ecSmrg WindowPtr /*pWindow*/, 21705b261ecSmrg RegionPtr /*prgnRestore*/); 21805b261ecSmrg 21905b261ecSmrgtypedef void (* ExposeCopyProcPtr)( 22005b261ecSmrg WindowPtr /*pSrc*/, 22105b261ecSmrg DrawablePtr /*pDst*/, 22205b261ecSmrg GCPtr /*pGC*/, 22305b261ecSmrg RegionPtr /*prgnExposed*/, 22405b261ecSmrg int /*srcx*/, 22505b261ecSmrg int /*srcy*/, 22605b261ecSmrg int /*dstx*/, 22705b261ecSmrg int /*dsty*/, 22805b261ecSmrg unsigned long /*plane*/); 22905b261ecSmrg 23005b261ecSmrgtypedef RegionPtr (* TranslateBackingStoreProcPtr)( 23105b261ecSmrg WindowPtr /*pWindow*/, 23205b261ecSmrg int /*windx*/, 23305b261ecSmrg int /*windy*/, 23405b261ecSmrg RegionPtr /*oldClip*/, 23505b261ecSmrg int /*oldx*/, 23605b261ecSmrg int /*oldy*/); 23705b261ecSmrg 23805b261ecSmrgtypedef RegionPtr (* ClearBackingStoreProcPtr)( 23905b261ecSmrg WindowPtr /*pWindow*/, 24005b261ecSmrg int /*x*/, 24105b261ecSmrg int /*y*/, 24205b261ecSmrg int /*w*/, 24305b261ecSmrg int /*h*/, 24405b261ecSmrg Bool /*generateExposures*/); 24505b261ecSmrg 24605b261ecSmrgtypedef void (* DrawGuaranteeProcPtr)( 24705b261ecSmrg WindowPtr /*pWindow*/, 24805b261ecSmrg GCPtr /*pGC*/, 24905b261ecSmrg int /*guarantee*/); 25005b261ecSmrg 25105b261ecSmrgtypedef Bool (* RealizeFontProcPtr)( 25205b261ecSmrg ScreenPtr /*pScreen*/, 25305b261ecSmrg FontPtr /*pFont*/); 25405b261ecSmrg 25505b261ecSmrgtypedef Bool (* UnrealizeFontProcPtr)( 25605b261ecSmrg ScreenPtr /*pScreen*/, 25705b261ecSmrg FontPtr /*pFont*/); 25805b261ecSmrg 25905b261ecSmrgtypedef void (* ConstrainCursorProcPtr)( 26005b261ecSmrg ScreenPtr /*pScreen*/, 26105b261ecSmrg BoxPtr /*pBox*/); 26205b261ecSmrg 26305b261ecSmrgtypedef void (* CursorLimitsProcPtr)( 26405b261ecSmrg ScreenPtr /*pScreen*/, 26505b261ecSmrg CursorPtr /*pCursor*/, 26605b261ecSmrg BoxPtr /*pHotBox*/, 26705b261ecSmrg BoxPtr /*pTopLeftBox*/); 26805b261ecSmrg 26905b261ecSmrgtypedef Bool (* DisplayCursorProcPtr)( 27005b261ecSmrg ScreenPtr /*pScreen*/, 27105b261ecSmrg CursorPtr /*pCursor*/); 27205b261ecSmrg 27305b261ecSmrgtypedef Bool (* RealizeCursorProcPtr)( 27405b261ecSmrg ScreenPtr /*pScreen*/, 27505b261ecSmrg CursorPtr /*pCursor*/); 27605b261ecSmrg 27705b261ecSmrgtypedef Bool (* UnrealizeCursorProcPtr)( 27805b261ecSmrg ScreenPtr /*pScreen*/, 27905b261ecSmrg CursorPtr /*pCursor*/); 28005b261ecSmrg 28105b261ecSmrgtypedef void (* RecolorCursorProcPtr)( 28205b261ecSmrg ScreenPtr /*pScreen*/, 28305b261ecSmrg CursorPtr /*pCursor*/, 28405b261ecSmrg Bool /*displayed*/); 28505b261ecSmrg 28605b261ecSmrgtypedef Bool (* SetCursorPositionProcPtr)( 28705b261ecSmrg ScreenPtr /*pScreen*/, 28805b261ecSmrg int /*x*/, 28905b261ecSmrg int /*y*/, 29005b261ecSmrg Bool /*generateEvent*/); 29105b261ecSmrg 29205b261ecSmrgtypedef Bool (* CreateGCProcPtr)( 29305b261ecSmrg GCPtr /*pGC*/); 29405b261ecSmrg 29505b261ecSmrgtypedef Bool (* CreateColormapProcPtr)( 29605b261ecSmrg ColormapPtr /*pColormap*/); 29705b261ecSmrg 29805b261ecSmrgtypedef void (* DestroyColormapProcPtr)( 29905b261ecSmrg ColormapPtr /*pColormap*/); 30005b261ecSmrg 30105b261ecSmrgtypedef void (* InstallColormapProcPtr)( 30205b261ecSmrg ColormapPtr /*pColormap*/); 30305b261ecSmrg 30405b261ecSmrgtypedef void (* UninstallColormapProcPtr)( 30505b261ecSmrg ColormapPtr /*pColormap*/); 30605b261ecSmrg 30705b261ecSmrgtypedef int (* ListInstalledColormapsProcPtr) ( 30805b261ecSmrg ScreenPtr /*pScreen*/, 30905b261ecSmrg XID* /*pmaps */); 31005b261ecSmrg 31105b261ecSmrgtypedef void (* StoreColorsProcPtr)( 31205b261ecSmrg ColormapPtr /*pColormap*/, 31305b261ecSmrg int /*ndef*/, 31405b261ecSmrg xColorItem * /*pdef*/); 31505b261ecSmrg 31605b261ecSmrgtypedef void (* ResolveColorProcPtr)( 31705b261ecSmrg unsigned short* /*pred*/, 31805b261ecSmrg unsigned short* /*pgreen*/, 31905b261ecSmrg unsigned short* /*pblue*/, 32005b261ecSmrg VisualPtr /*pVisual*/); 32105b261ecSmrg 32205b261ecSmrgtypedef RegionPtr (* BitmapToRegionProcPtr)( 32305b261ecSmrg PixmapPtr /*pPix*/); 32405b261ecSmrg 32505b261ecSmrgtypedef void (* SendGraphicsExposeProcPtr)( 32605b261ecSmrg ClientPtr /*client*/, 32705b261ecSmrg RegionPtr /*pRgn*/, 32805b261ecSmrg XID /*drawable*/, 32905b261ecSmrg int /*major*/, 33005b261ecSmrg int /*minor*/); 33105b261ecSmrg 33205b261ecSmrgtypedef void (* ScreenBlockHandlerProcPtr)( 33305b261ecSmrg int /*screenNum*/, 33405b261ecSmrg pointer /*blockData*/, 33505b261ecSmrg pointer /*pTimeout*/, 33605b261ecSmrg pointer /*pReadmask*/); 33705b261ecSmrg 33805b261ecSmrgtypedef void (* ScreenWakeupHandlerProcPtr)( 33905b261ecSmrg int /*screenNum*/, 34005b261ecSmrg pointer /*wakeupData*/, 34105b261ecSmrg unsigned long /*result*/, 34205b261ecSmrg pointer /*pReadMask*/); 34305b261ecSmrg 34405b261ecSmrgtypedef Bool (* CreateScreenResourcesProcPtr)( 34505b261ecSmrg ScreenPtr /*pScreen*/); 34605b261ecSmrg 34705b261ecSmrgtypedef Bool (* ModifyPixmapHeaderProcPtr)( 34805b261ecSmrg PixmapPtr /*pPixmap*/, 34905b261ecSmrg int /*width*/, 35005b261ecSmrg int /*height*/, 35105b261ecSmrg int /*depth*/, 35205b261ecSmrg int /*bitsPerPixel*/, 35305b261ecSmrg int /*devKind*/, 35405b261ecSmrg pointer /*pPixData*/); 35505b261ecSmrg 35605b261ecSmrgtypedef PixmapPtr (* GetWindowPixmapProcPtr)( 35705b261ecSmrg WindowPtr /*pWin*/); 35805b261ecSmrg 35905b261ecSmrgtypedef void (* SetWindowPixmapProcPtr)( 36005b261ecSmrg WindowPtr /*pWin*/, 36105b261ecSmrg PixmapPtr /*pPix*/); 36205b261ecSmrg 36305b261ecSmrgtypedef PixmapPtr (* GetScreenPixmapProcPtr)( 36405b261ecSmrg ScreenPtr /*pScreen*/); 36505b261ecSmrg 36605b261ecSmrgtypedef void (* SetScreenPixmapProcPtr)( 36705b261ecSmrg PixmapPtr /*pPix*/); 36805b261ecSmrg 36905b261ecSmrgtypedef void (* MarkWindowProcPtr)( 37005b261ecSmrg WindowPtr /*pWin*/); 37105b261ecSmrg 37205b261ecSmrgtypedef Bool (* MarkOverlappedWindowsProcPtr)( 37305b261ecSmrg WindowPtr /*parent*/, 37405b261ecSmrg WindowPtr /*firstChild*/, 37505b261ecSmrg WindowPtr * /*pLayerWin*/); 37605b261ecSmrg 37705b261ecSmrgtypedef Bool (* ChangeSaveUnderProcPtr)( 37805b261ecSmrg WindowPtr /*pLayerWin*/, 37905b261ecSmrg WindowPtr /*firstChild*/); 38005b261ecSmrg 38105b261ecSmrgtypedef void (* PostChangeSaveUnderProcPtr)( 38205b261ecSmrg WindowPtr /*pLayerWin*/, 38305b261ecSmrg WindowPtr /*firstChild*/); 38405b261ecSmrg 38505b261ecSmrgtypedef void (* MoveWindowProcPtr)( 38605b261ecSmrg WindowPtr /*pWin*/, 38705b261ecSmrg int /*x*/, 38805b261ecSmrg int /*y*/, 38905b261ecSmrg WindowPtr /*pSib*/, 39005b261ecSmrg VTKind /*kind*/); 39105b261ecSmrg 39205b261ecSmrgtypedef void (* ResizeWindowProcPtr)( 39305b261ecSmrg WindowPtr /*pWin*/, 39405b261ecSmrg int /*x*/, 39505b261ecSmrg int /*y*/, 39605b261ecSmrg unsigned int /*w*/, 39705b261ecSmrg unsigned int /*h*/, 39805b261ecSmrg WindowPtr /*pSib*/ 39905b261ecSmrg); 40005b261ecSmrg 40105b261ecSmrgtypedef WindowPtr (* GetLayerWindowProcPtr)( 40205b261ecSmrg WindowPtr /*pWin*/ 40305b261ecSmrg); 40405b261ecSmrg 40505b261ecSmrgtypedef void (* HandleExposuresProcPtr)( 40605b261ecSmrg WindowPtr /*pWin*/); 40705b261ecSmrg 40805b261ecSmrgtypedef void (* ReparentWindowProcPtr)( 40905b261ecSmrg WindowPtr /*pWin*/, 41005b261ecSmrg WindowPtr /*pPriorParent*/); 41105b261ecSmrg 41205b261ecSmrg#ifdef SHAPE 41305b261ecSmrgtypedef void (* SetShapeProcPtr)( 41405b261ecSmrg WindowPtr /*pWin*/); 41505b261ecSmrg#endif /* SHAPE */ 41605b261ecSmrg 41705b261ecSmrgtypedef void (* ChangeBorderWidthProcPtr)( 41805b261ecSmrg WindowPtr /*pWin*/, 41905b261ecSmrg unsigned int /*width*/); 42005b261ecSmrg 42105b261ecSmrgtypedef void (* MarkUnrealizedWindowProcPtr)( 42205b261ecSmrg WindowPtr /*pChild*/, 42305b261ecSmrg WindowPtr /*pWin*/, 42405b261ecSmrg Bool /*fromConfigure*/); 42505b261ecSmrg 42605b261ecSmrgtypedef struct _Screen { 42705b261ecSmrg int myNum; /* index of this instance in Screens[] */ 42805b261ecSmrg ATOM id; 42905b261ecSmrg short width, height; 43005b261ecSmrg short mmWidth, mmHeight; 43105b261ecSmrg short numDepths; 43205b261ecSmrg unsigned char rootDepth; 43305b261ecSmrg DepthPtr allowedDepths; 43405b261ecSmrg unsigned long rootVisual; 43505b261ecSmrg unsigned long defColormap; 43605b261ecSmrg short minInstalledCmaps, maxInstalledCmaps; 43705b261ecSmrg char backingStoreSupport, saveUnderSupport; 43805b261ecSmrg unsigned long whitePixel, blackPixel; 43905b261ecSmrg unsigned long rgf; /* array of flags; she's -- HUNGARIAN */ 44005b261ecSmrg GCPtr GCperDepth[MAXFORMATS+1]; 44105b261ecSmrg /* next field is a stipple to use as default in 44205b261ecSmrg a GC. we don't build default tiles of all depths 44305b261ecSmrg because they are likely to be of a color 44405b261ecSmrg different from the default fg pixel, so 44505b261ecSmrg we don't win anything by building 44605b261ecSmrg a standard one. 44705b261ecSmrg */ 44805b261ecSmrg PixmapPtr PixmapPerDepth[1]; 44905b261ecSmrg pointer devPrivate; 45005b261ecSmrg short numVisuals; 45105b261ecSmrg VisualPtr visuals; 45205b261ecSmrg int WindowPrivateLen; 45305b261ecSmrg unsigned *WindowPrivateSizes; 45405b261ecSmrg unsigned totalWindowSize; 45505b261ecSmrg int GCPrivateLen; 45605b261ecSmrg unsigned *GCPrivateSizes; 45705b261ecSmrg unsigned totalGCSize; 45805b261ecSmrg 45905b261ecSmrg /* Random screen procedures */ 46005b261ecSmrg 46105b261ecSmrg CloseScreenProcPtr CloseScreen; 46205b261ecSmrg QueryBestSizeProcPtr QueryBestSize; 46305b261ecSmrg SaveScreenProcPtr SaveScreen; 46405b261ecSmrg GetImageProcPtr GetImage; 46505b261ecSmrg GetSpansProcPtr GetSpans; 46605b261ecSmrg PointerNonInterestBoxProcPtr PointerNonInterestBox; 46705b261ecSmrg SourceValidateProcPtr SourceValidate; 46805b261ecSmrg 46905b261ecSmrg /* Window Procedures */ 47005b261ecSmrg 47105b261ecSmrg CreateWindowProcPtr CreateWindow; 47205b261ecSmrg DestroyWindowProcPtr DestroyWindow; 47305b261ecSmrg PositionWindowProcPtr PositionWindow; 47405b261ecSmrg ChangeWindowAttributesProcPtr ChangeWindowAttributes; 47505b261ecSmrg RealizeWindowProcPtr RealizeWindow; 47605b261ecSmrg UnrealizeWindowProcPtr UnrealizeWindow; 47705b261ecSmrg ValidateTreeProcPtr ValidateTree; 47805b261ecSmrg PostValidateTreeProcPtr PostValidateTree; 47905b261ecSmrg WindowExposuresProcPtr WindowExposures; 48005b261ecSmrg PaintWindowBackgroundProcPtr PaintWindowBackground; 48105b261ecSmrg PaintWindowBorderProcPtr PaintWindowBorder; 48205b261ecSmrg CopyWindowProcPtr CopyWindow; 48305b261ecSmrg ClearToBackgroundProcPtr ClearToBackground; 48405b261ecSmrg ClipNotifyProcPtr ClipNotify; 48505b261ecSmrg RestackWindowProcPtr RestackWindow; 48605b261ecSmrg 48705b261ecSmrg /* Pixmap procedures */ 48805b261ecSmrg 48905b261ecSmrg CreatePixmapProcPtr CreatePixmap; 49005b261ecSmrg DestroyPixmapProcPtr DestroyPixmap; 49105b261ecSmrg 49205b261ecSmrg /* Backing store procedures */ 49305b261ecSmrg 49405b261ecSmrg SaveDoomedAreasProcPtr SaveDoomedAreas; 49505b261ecSmrg RestoreAreasProcPtr RestoreAreas; 49605b261ecSmrg ExposeCopyProcPtr ExposeCopy; 49705b261ecSmrg TranslateBackingStoreProcPtr TranslateBackingStore; 49805b261ecSmrg ClearBackingStoreProcPtr ClearBackingStore; 49905b261ecSmrg DrawGuaranteeProcPtr DrawGuarantee; 50005b261ecSmrg /* 50105b261ecSmrg * A read/write copy of the lower level backing store vector is needed now 50205b261ecSmrg * that the functions can be wrapped. 50305b261ecSmrg */ 50405b261ecSmrg BSFuncRec BackingStoreFuncs; 50505b261ecSmrg 50605b261ecSmrg /* Font procedures */ 50705b261ecSmrg 50805b261ecSmrg RealizeFontProcPtr RealizeFont; 50905b261ecSmrg UnrealizeFontProcPtr UnrealizeFont; 51005b261ecSmrg 51105b261ecSmrg /* Cursor Procedures */ 51205b261ecSmrg 51305b261ecSmrg ConstrainCursorProcPtr ConstrainCursor; 51405b261ecSmrg CursorLimitsProcPtr CursorLimits; 51505b261ecSmrg DisplayCursorProcPtr DisplayCursor; 51605b261ecSmrg RealizeCursorProcPtr RealizeCursor; 51705b261ecSmrg UnrealizeCursorProcPtr UnrealizeCursor; 51805b261ecSmrg RecolorCursorProcPtr RecolorCursor; 51905b261ecSmrg SetCursorPositionProcPtr SetCursorPosition; 52005b261ecSmrg 52105b261ecSmrg /* GC procedures */ 52205b261ecSmrg 52305b261ecSmrg CreateGCProcPtr CreateGC; 52405b261ecSmrg 52505b261ecSmrg /* Colormap procedures */ 52605b261ecSmrg 52705b261ecSmrg CreateColormapProcPtr CreateColormap; 52805b261ecSmrg DestroyColormapProcPtr DestroyColormap; 52905b261ecSmrg InstallColormapProcPtr InstallColormap; 53005b261ecSmrg UninstallColormapProcPtr UninstallColormap; 53105b261ecSmrg ListInstalledColormapsProcPtr ListInstalledColormaps; 53205b261ecSmrg StoreColorsProcPtr StoreColors; 53305b261ecSmrg ResolveColorProcPtr ResolveColor; 53405b261ecSmrg 53505b261ecSmrg /* Region procedures */ 53605b261ecSmrg 53705b261ecSmrg BitmapToRegionProcPtr BitmapToRegion; 53805b261ecSmrg SendGraphicsExposeProcPtr SendGraphicsExpose; 53905b261ecSmrg 54005b261ecSmrg /* os layer procedures */ 54105b261ecSmrg 54205b261ecSmrg ScreenBlockHandlerProcPtr BlockHandler; 54305b261ecSmrg ScreenWakeupHandlerProcPtr WakeupHandler; 54405b261ecSmrg 54505b261ecSmrg pointer blockData; 54605b261ecSmrg pointer wakeupData; 54705b261ecSmrg 54805b261ecSmrg /* anybody can get a piece of this array */ 54905b261ecSmrg DevUnion *devPrivates; 55005b261ecSmrg 55105b261ecSmrg CreateScreenResourcesProcPtr CreateScreenResources; 55205b261ecSmrg ModifyPixmapHeaderProcPtr ModifyPixmapHeader; 55305b261ecSmrg 55405b261ecSmrg GetWindowPixmapProcPtr GetWindowPixmap; 55505b261ecSmrg SetWindowPixmapProcPtr SetWindowPixmap; 55605b261ecSmrg GetScreenPixmapProcPtr GetScreenPixmap; 55705b261ecSmrg SetScreenPixmapProcPtr SetScreenPixmap; 55805b261ecSmrg 55905b261ecSmrg PixmapPtr pScratchPixmap; /* scratch pixmap "pool" */ 56005b261ecSmrg 56105b261ecSmrg int PixmapPrivateLen; 56205b261ecSmrg unsigned int *PixmapPrivateSizes; 56305b261ecSmrg unsigned int totalPixmapSize; 56405b261ecSmrg 56505b261ecSmrg MarkWindowProcPtr MarkWindow; 56605b261ecSmrg MarkOverlappedWindowsProcPtr MarkOverlappedWindows; 56705b261ecSmrg ChangeSaveUnderProcPtr ChangeSaveUnder; 56805b261ecSmrg PostChangeSaveUnderProcPtr PostChangeSaveUnder; 56905b261ecSmrg MoveWindowProcPtr MoveWindow; 57005b261ecSmrg ResizeWindowProcPtr ResizeWindow; 57105b261ecSmrg GetLayerWindowProcPtr GetLayerWindow; 57205b261ecSmrg HandleExposuresProcPtr HandleExposures; 57305b261ecSmrg ReparentWindowProcPtr ReparentWindow; 57405b261ecSmrg 57505b261ecSmrg#ifdef SHAPE 57605b261ecSmrg SetShapeProcPtr SetShape; 57705b261ecSmrg#endif /* SHAPE */ 57805b261ecSmrg 57905b261ecSmrg ChangeBorderWidthProcPtr ChangeBorderWidth; 58005b261ecSmrg MarkUnrealizedWindowProcPtr MarkUnrealizedWindow; 58105b261ecSmrg 58205b261ecSmrg} ScreenRec; 58305b261ecSmrg 58405b261ecSmrgtypedef struct _ScreenInfo { 58505b261ecSmrg int imageByteOrder; 58605b261ecSmrg int bitmapScanlineUnit; 58705b261ecSmrg int bitmapScanlinePad; 58805b261ecSmrg int bitmapBitOrder; 58905b261ecSmrg int numPixmapFormats; 59005b261ecSmrg PixmapFormatRec 59105b261ecSmrg formats[MAXFORMATS]; 59205b261ecSmrg int arraySize; 59305b261ecSmrg int numScreens; 59405b261ecSmrg ScreenPtr screens[MAXSCREENS]; 59505b261ecSmrg int numVideoScreens; 59605b261ecSmrg} ScreenInfo; 59705b261ecSmrg 59805b261ecSmrgextern ScreenInfo screenInfo; 59905b261ecSmrg 60005b261ecSmrgextern void InitOutput( 60105b261ecSmrg ScreenInfo * /*pScreenInfo*/, 60205b261ecSmrg int /*argc*/, 60305b261ecSmrg char ** /*argv*/); 60405b261ecSmrg 60505b261ecSmrg#endif /* SCREENINTSTRUCT_H */ 606