scrnintstr.h revision 040abec2534dadc53ebc8fa378ef03f4feecb7db
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/***********************************************************
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncCopyright 1987, 1998 The Open Group
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncPermission to use, copy, modify, distribute, and sell this software and its
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncdocumentation for any purpose is hereby granted without fee, provided that
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncthe above copyright notice appear in all copies and that both that
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynccopyright notice and this permission notice appear in supporting
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncdocumentation.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncThe above copyright notice and this permission notice shall be included in
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncall copies or substantial portions of the Software.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncExcept as contained in this notice, the name of The Open Group shall not be
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncused in advertising or otherwise to promote the sale, use or other dealings
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncin this Software without prior written authorization from The Open Group.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync All Rights Reserved
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncPermission to use, copy, modify, and distribute this software and its
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncdocumentation for any purpose and without fee is hereby granted,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncprovided that the above copyright notice appear in all copies and that
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncboth that copyright notice and this permission notice appear in
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncsupporting documentation, and that the name of Digital not be
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncused in advertising or publicity pertaining to distribution of the
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncsoftware without specific, written prior permission.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync******************************************************************/
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _PixmapFormat {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char depth;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char bitsPerPixel;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char scanlinePad;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _Visual {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short nplanes;/* = log2 (ColormapEntries). This does not
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * imply that the screen has this many planes.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * it may have more or fewer */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _Depth {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char depth;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync VisualID *vids; /* block of visual ids for this depth */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * There is a typedef for each screen function pointer so that code that
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * needs to declare a screen function pointer (e.g. in a screen private
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * or as a local variable) can easily do so and retain full type checking.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*index*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* QueryBestSizeProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*class*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short * /*pwidth*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short * /*pheight*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*on*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* GetImageProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*sx*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*sy*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int /*format*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned long /*planeMask*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char * /*pdstLine*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* GetSpansProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*wMax*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int* /*pwidth*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*nspans*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char * /*pdstStart*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* SourceValidateProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*width*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*height*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*y*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned long /*mask*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* RestackWindowProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef int (* ValidateTreeProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* PostValidateTreeProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* WindowExposuresProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* PaintWindowProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*what*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef PaintWindowProcPtr PaintWindowBackgroundProcPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef PaintWindowProcPtr PaintWindowBorderProcPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* CopyWindowProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* ClearToBackgroundProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* ClipNotifyProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*dx*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*dy*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* pixmap will exist only for the duration of the current rendering operation */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* pixmap will be the backing pixmap for a redirected window */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* pixmap will contain a glyph */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*width*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*height*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*depth*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned /*usage_hint*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* SaveDoomedAreasProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*xorg*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*yorg*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* ExposeCopyProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*srcx*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*srcy*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*dstx*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*dsty*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned long /*plane*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*windx*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*windy*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*oldx*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*oldy*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* DrawGuaranteeProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*guarantee*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* ConstrainCursorProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* CursorLimitsProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* RecolorCursorProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* DestroyColormapProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* InstallColormapProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* UninstallColormapProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* StoreColorsProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*ndef*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* ResolveColorProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short* /*pred*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short* /*pgreen*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short* /*pblue*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*major*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*minor*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*screenNum*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*screenNum*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned long /*result*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*width*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*height*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*depth*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*bitsPerPixel*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*devKind*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* SetWindowPixmapProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* SetScreenPixmapProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* MarkWindowProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* MoveWindowProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* ResizeWindowProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int /*w*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int /*h*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* HandleExposuresProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* ReparentWindowProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* SetShapeProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif /* SHAPE */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* ChangeBorderWidthProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int /*width*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _Screen {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int myNum; /* index of this instance in Screens[] */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char rootDepth;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned long rootVisual;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned long defColormap;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned long rgf; /* array of flags; she's -- HUNGARIAN */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync /* next field is a stipple to use as default in
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync a GC. we don't build default tiles of all depths
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync because they are likely to be of a color
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync different from the default fg pixel, so
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync we don't win anything by building
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync a standard one.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync /* Random screen procedures */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PointerNonInterestBoxProcPtr PointerNonInterestBox;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync /* Window Procedures */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ChangeWindowAttributesProcPtr ChangeWindowAttributes;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PaintWindowBackgroundProcPtr PaintWindowBackground; /** unused */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PaintWindowBorderProcPtr PaintWindowBorder; /** unused */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync /* Pixmap procedures */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync /* Backing store procedures */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync TranslateBackingStoreProcPtr TranslateBackingStore;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * A read/write copy of the lower level backing store vector is needed now
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * that the functions can be wrapped.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync /* Font procedures */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync /* Cursor Procedures */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync /* GC procedures */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync /* Colormap procedures */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ListInstalledColormapsProcPtr ListInstalledColormaps;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync /* Region procedures */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync /* os layer procedures */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync /* anybody can get a piece of this array */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CreateScreenResourcesProcPtr CreateScreenResources;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PixmapPtr pScratchPixmap; /* scratch pixmap "pool" */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync MarkOverlappedWindowsProcPtr MarkOverlappedWindows;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif /* SHAPE */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _ScreenInfo {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*argc*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char ** /*argv*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif /* SCREENINTSTRUCT_H */