|
|
#include "scrninstr.h"
The first section contains various screen definitions
typedef struct _Screen {
int myNum; /* index of this instance in Screens[] */
ATOM id;
short width, height;
short mmWidth, mmHeight;
short numDepths;
unsigned char rootDepth;
DepthPtr allowedDepths;
unsigned long rootVisual;
unsigned long defColormap;
short minInstalledCmaps, maxInstalledCmaps;
char backingStoreSupport, saveUnderSupport;
unsigned long whitePixel, blackPixel;
unsigned long rgf; /* array of flags; she's -- HUNGARIAN */
GCPtr GCperDepth[MAXFORMATS+1];
PixmapPtr PixmapPerDepth[1];
pointer devPrivate;
short numVisuals;
VisualPtr visuals;
int WindowPrivateLen;
unsigned *WindowPrivateSizes;
unsigned totalWindowSize;
int GCPrivateLen;
unsigned *GCPrivateSizes;
unsigned totalGCSize;
#ifdef PIXPRIV
int PixmapPrivateLen;
unsigned *PixmapPrivateSizes;
unsigned totalPixmapSize;
long _reserved_pad_data[47]; /* new privates */
#else
long _reserved_pad_data[50]; /* padding for expansion S001 */
#endif
Note the following:
myNumPixmapPtr Bool (* CloseScreen)(); /* index, pScreen */
void (* QueryBestSize)(); /* class, pwidth, pheight, pScreen */
Bool (* SaveScreen)(); /* pScreen, on */
void (* GetImage)(); /* pDrawable, sx, sy, w, h, format,
* planemask, pdestbits */
void (* GetSpans)(); /* pDrawable, wMax, ppt, pwidth,
* nspans, pdstbits */
void (* PointerNonInterestBox)(); /* pScr, BoxPtr */
void (* SourceValidate)(); /* pDrawable, x, y, w, h */
Bool (* CreateWindow)(); /* pWin */
Bool (* DestroyWindow)(); /* pWin */
Bool (* PositionWindow)(); /* pWin, x, y */
Bool (* ChangeWindowAttributes)(); /* pWin, mask */
Bool (* RealizeWindow)(); /* pWin */
Bool (* UnrealizeWindow)(); /* pWin */
int (* ValidateTree)(); /* pParent, pChild, kind */
void (* PostValidateTree)(); /* pParent, pChild, kind */
void (* WindowExposures)(); /* pWin, pRegion, pBSRegion */
void (* PaintWindowBackground)(); /* pWin, pRgn, which */
void (* PaintWindowBorder)(); /* pWin, pRgn, which */
void (* CopyWindow)(); /* pWin, oldPt, pOldRegion */
void (* ClearToBackground)(); /* pWin, x,y,w,h, sendExpose */
void (* ClipNotify)(); /* pWin, dx, dy */
PixmapPtr (* CreatePixmap)(); /* pScreen, width, height, depth */
Bool (* DestroyPixmap)(); /* pPixmap */
void (* SaveDoomedAreas)(); /* pWin, pRegion, dx, dy */
RegionPtr (* RestoreAreas)(); /* pWin, pRegion */
void (* ExposeCopy)(); /* pSrc, pDst, pGC, pRegion, */
/* srcx, srcy, dstx, dsty, plane */
RegionPtr (* TranslateBackingStore)();/* pWin, dx, dy, pOldClip */
RegionPtr (* ClearBackingStore)(); /* pWin, x, y, w, h, sendExpose */
void (* DrawGuarantee)(); /* pWin, pGC, guarantee */
Bool (* RealizeFont)(); /* pScr, pFont */
Bool (* UnrealizeFont)(); /* pScr, pFont */
void (* ConstrainCursor)(); /* pScr, BoxPtr */
void (* CursorLimits)(); /* pScr, pCurs, BoxPtr, BoxPtr */
Bool (* DisplayCursor)(); /* pScr, pCurs */
Bool (* RealizeCursor)(); /* pScr, pCurs */
Bool (* UnrealizeCursor)(); /* pScr, pCurs */
void (* RecolorCursor)(); /* pScr, pCurs, displayed */
Bool (* SetCursorPosition)(); /* pScr, x, y */
Bool (* CreateGC)(); /* pGC */
Bool (* CreateColormap)(); /* pcmap */
void (* DestroyColormap)(); /* pcmap */
void (* InstallColormap)(); /* pcmap */
void (* UninstallColormap)(); /* pcmap */
int (* ListInstalledColormaps) (); /* pScreen, pmaps */
void (* StoreColors)(); /* pmap, ndef, pdef */
void (* ResolveColor)(); /* preg, pgreen, pblue */
RegionPtr (* RegionCreate)(); /* rect, size */
void (* RegionInit)(); /* pRegion, rect, size */
Bool (* RegionCopy)(); /* dstrgn, srcrgn */
void (* RegionDestroy)(); /* pRegion */
void (* RegionUninit)(); /* pRegion */
Bool (* Intersect)(); /* newReg, reg1, reg2 */
Bool (* Union)(); /* newReg, reg1, reg2 */
Bool (* Subtract)(); /* regD, regM, regS */
Bool (* Inverse)(); /* newReg, reg1, invRect */
void (* RegionReset)(); /* pRegion, pBox */
void (* TranslateRegion)(); /* pRegion, x, y */
int (* RectIn)(); /* pRegion, pRect */
Bool (* PointInRegion)(); /* pRegion, x, y, pBox */
Bool (* RegionNotEmpty)(); /* pRegion: RegionPtr */
void (* RegionEmpty)(); /* pRegion: RegionPtr */
BoxPtr (* RegionExtents)(); /* pRegion: RegionPtr */
Bool (* RegionAppend)(); /* pRegion, pRegion */
Bool (* RegionValidate)(); /* pRegion, pOverlap */
RegionPtr (* BitmapToRegion)(); /* PixmapPtr */
RegionPtr (* RectsToRegion)(); /* nrects, pRects, ordering */
void (* SendGraphicsExpose)(); /* client, rgn, draw, major, minor */
Bool (* CreateScreenResources)(); /* pScreen */
Bool (* ModifyPixmapHeader)(); /* pPixmap, w, h, depth, bpp, devKind, pixdata */
void (* BlockHandler)(); /* data: pointer */
void (* WakeupHandler)(); /* data: pointer */
pointer blockData;
pointer wakeupData;
/* anybody can get a piece of this array */
DevUnion *devPrivates;
PixmapPtr pScratchPixmap; /* scratch pixmap "pool" */
``Screen Private'' in Developing NFB graphics adapter drivers