03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/***********************************************************
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncCopyright 1987, 1998 The Open Group
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncPermission to use, copy, modify, distribute, and sell this software and its
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncdocumentation for any purpose is hereby granted without fee, provided that
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncthe above copyright notice appear in all copies and that both that
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynccopyright notice and this permission notice appear in supporting
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncdocumentation.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncThe above copyright notice and this permission notice shall be included in
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncall copies or substantial portions of the Software.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncExcept as contained in this notice, the name of The Open Group shall not be
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncused in advertising or otherwise to promote the sale, use or other dealings
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncin this Software without prior written authorization from The Open Group.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync All Rights Reserved
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncPermission to use, copy, modify, and distribute this software and its
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncdocumentation for any purpose and without fee is hereby granted,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncprovided that the above copyright notice appear in all copies and that
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncboth that copyright notice and this permission notice appear in
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncsupporting documentation, and that the name of Digital not be
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncused in advertising or publicity pertaining to distribution of the
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncsoftware without specific, written prior permission.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncSOFTWARE.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync******************************************************************/
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#ifndef GCSTRUCT_H
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define GCSTRUCT_H
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "gc.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "regionstr.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "region.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "pixmap.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "screenint.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "privates.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include <X11/Xprotostr.h>
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define GCAllBits ((1 << (GCLastBit + 1)) - 1)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * functions which modify the state of the GC
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef struct _GCFuncs {
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*ValidateGC) (GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned long /*stateChanges */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DrawablePtr /*pDrawable */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*ChangeGC) (GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned long /*mask */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*CopyGC) (GCPtr /*pGCSrc */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned long /*mask */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pGCDst */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*DestroyGC) (GCPtr /*pGC */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*ChangeClip) (GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*type */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync pointer /*pvalue */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*nrects */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*DestroyClip) (GCPtr /*pGC */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*CopyClip) (GCPtr /*pgcDst */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pgcSrc */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync} GCFuncs;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * graphics operations invoked through a GC
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef struct _GCOps {
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*FillSpans) (DrawablePtr /*pDrawable */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*nInit */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DDXPointPtr /*pptInit */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int * /*pwidthInit */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*fSorted */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*SetSpans) (DrawablePtr /*pDrawable */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync char * /*psrc */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DDXPointPtr /*ppt */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int * /*pwidth */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*nspans */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*fSorted */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*PutImage) (DrawablePtr /*pDrawable */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*depth */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*x */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*y */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*w */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*h */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*leftPad */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*format */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync char * /*pBits */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync RegionPtr (*CopyArea) (DrawablePtr /*pSrc */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DrawablePtr /*pDst */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*srcx */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*srcy */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*w */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*h */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*dstx */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*dsty */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync RegionPtr (*CopyPlane) (DrawablePtr /*pSrcDrawable */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DrawablePtr /*pDstDrawable */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*srcx */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*srcy */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*width */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*height */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*dstx */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*dsty */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned long /*bitPlane */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*PolyPoint) (DrawablePtr /*pDrawable */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*mode */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*npt */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DDXPointPtr /*pptInit */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*Polylines) (DrawablePtr /*pDrawable */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*mode */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*npt */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DDXPointPtr /*pptInit */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*PolySegment) (DrawablePtr /*pDrawable */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*nseg */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync xSegment * /*pSegs */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*PolyRectangle) (DrawablePtr /*pDrawable */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*nrects */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync xRectangle * /*pRects */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*PolyArc) (DrawablePtr /*pDrawable */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*narcs */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync xArc * /*parcs */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*FillPolygon) (DrawablePtr /*pDrawable */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*shape */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*mode */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*count */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DDXPointPtr /*pPts */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*PolyFillRect) (DrawablePtr /*pDrawable */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*nrectFill */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync xRectangle * /*prectInit */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*PolyFillArc) (DrawablePtr /*pDrawable */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*narcs */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync xArc * /*parcs */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int (*PolyText8) (DrawablePtr /*pDrawable */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*x */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*y */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*count */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync char * /*chars */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int (*PolyText16) (DrawablePtr /*pDrawable */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*x */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*y */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*count */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned short * /*chars */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*ImageText8) (DrawablePtr /*pDrawable */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*x */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*y */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*count */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync char * /*chars */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*ImageText16) (DrawablePtr /*pDrawable */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*x */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*y */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*count */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned short * /*chars */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*ImageGlyphBlt) (DrawablePtr /*pDrawable */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*x */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*y */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned int /*nglyph */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync CharInfoPtr * /*ppci */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync pointer /*pglyphBase */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*PolyGlyphBlt) (DrawablePtr /*pDrawable */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*x */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*y */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned int /*nglyph */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync CharInfoPtr * /*ppci */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync pointer /*pglyphBase */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync void (*PushPixels) (GCPtr /*pGC */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync PixmapPtr /*pBitMap */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DrawablePtr /*pDst */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*w */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*h */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*x */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int /*y */ );
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync} GCOps;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/* there is padding in the bit fields because the Sun compiler doesn't
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * force alignment to 32-bit boundaries. losers.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef struct _GC {
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync ScreenPtr pScreen;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned char depth;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned char alu;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned short lineWidth;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned short dashOffset;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned short numInDashList;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned char *dash;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned int lineStyle:2;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned int capStyle:2;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned int joinStyle:2;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned int fillStyle:2;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned int fillRule:1;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned int arcMode:1;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned int subWindowMode:1;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned int graphicsExposures:1;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned int clientClipType:2; /* CT_<kind> */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned int miTranslate:1; /* should mi things translate? */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned int tileIsPixel:1; /* tile is solid pixel */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned int fExpose:1; /* Call exposure handling */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned int freeCompClip:1; /* Free composite clip */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned int scratch_inuse:1; /* is this GC in a pool for reuse? */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned int unused:13; /* see comment above */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned long planemask;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned long fgPixel;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned long bgPixel;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync /*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * alas -- both tile and stipple must be here as they
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * are independently specifiable
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync PixUnion tile;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync PixmapPtr stipple;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DDXPointRec patOrg; /* origin for (tile, stipple) */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync struct _Font *font;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DDXPointRec clipOrg;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync pointer clientClip;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned long stateChanges; /* masked with GC_<kind> */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned long serialNumber;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCFuncs *funcs;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCOps *ops;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync PrivateRec *devPrivates;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync /*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * The following were moved here from private storage to allow device-
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * independent access to them from screen wrappers.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * --- 1997.11.03 Marc Aurele La France (tsi@xfree86.org)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync PixmapPtr pRotatedPixmap; /* tile/stipple rotated for alignment */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync RegionPtr pCompositeClip;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync /* fExpose & freeCompClip defined above */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync} GC;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif /* GCSTRUCT_H */