040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/***********************************************************
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncCopyright 1987, 1998 The Open Group
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
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.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncThe above copyright notice and this permission notice shall be included in
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncall copies or substantial portions of the Software.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
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.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
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.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync All Rights Reserved
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
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.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
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
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSOFTWARE.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync******************************************************************/
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#ifndef GCSTRUCT_H
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define GCSTRUCT_H
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#include "gc.h"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#include "regionstr.h"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#include "region.h"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#include "pixmap.h"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#include "screenint.h"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#include "privates.h"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#include <X11/Xprotostr.h>
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/*
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * functions which modify the state of the GC
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _GCFuncs {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* ValidateGC)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned long /*stateChanges*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDrawable*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* ChangeGC)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned long /*mask*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* CopyGC)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGCSrc*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned long /*mask*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGCDst*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* DestroyGC)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* ChangeClip)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*type*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /*pvalue*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*nrects*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* DestroyClip)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* CopyClip)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pgcDst*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pgcSrc*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DevUnion devPrivate;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} GCFuncs;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/*
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * graphics operations invoked through a GC
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _GCOps {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* FillSpans)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDrawable*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*nInit*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DDXPointPtr /*pptInit*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int * /*pwidthInit*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*fSorted*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* SetSpans)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDrawable*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char * /*psrc*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DDXPointPtr /*ppt*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int * /*pwidth*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*nspans*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*fSorted*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* PutImage)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDrawable*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*depth*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*x*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*y*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*w*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*h*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*leftPad*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*format*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char * /*pBits*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync RegionPtr (* CopyArea)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pSrc*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDst*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*srcx*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*srcy*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*w*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*h*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*dstx*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*dsty*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync RegionPtr (* CopyPlane)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pSrcDrawable*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDstDrawable*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*srcx*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*srcy*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*width*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*height*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*dstx*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*dsty*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned long /*bitPlane*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* PolyPoint)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDrawable*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*mode*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*npt*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DDXPointPtr /*pptInit*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* Polylines)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDrawable*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*mode*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*npt*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DDXPointPtr /*pptInit*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* PolySegment)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDrawable*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*nseg*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xSegment * /*pSegs*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* PolyRectangle)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDrawable*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*nrects*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xRectangle * /*pRects*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* PolyArc)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDrawable*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*narcs*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xArc * /*parcs*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* FillPolygon)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDrawable*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*shape*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*mode*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*count*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DDXPointPtr /*pPts*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* PolyFillRect)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDrawable*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*nrectFill*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xRectangle * /*prectInit*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* PolyFillArc)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDrawable*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*narcs*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xArc * /*parcs*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int (* PolyText8)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDrawable*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*x*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*y*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*count*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char * /*chars*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int (* PolyText16)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDrawable*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*x*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*y*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*count*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short * /*chars*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* ImageText8)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDrawable*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*x*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*y*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*count*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char * /*chars*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* ImageText16)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDrawable*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*x*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*y*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*count*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short * /*chars*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* ImageGlyphBlt)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDrawable*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*x*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*y*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int /*nglyph*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CharInfoPtr * /*ppci*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /*pglyphBase*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* PolyGlyphBlt)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDrawable*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*x*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*y*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int /*nglyph*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CharInfoPtr * /*ppci*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /*pglyphBase*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* PushPixels)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /*pGC*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PixmapPtr /*pBitMap*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /*pDst*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*w*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*h*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*x*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*y*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DevUnion devPrivate;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} GCOps;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* there is padding in the bit fields because the Sun compiler doesn't
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * force alignment to 32-bit boundaries. losers.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _GC {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ScreenPtr pScreen;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char depth;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char alu;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short lineWidth;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short dashOffset;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short numInDashList;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char *dash;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int lineStyle : 2;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int capStyle : 2;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int joinStyle : 2;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int fillStyle : 2;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int fillRule : 1;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int arcMode : 1;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int subWindowMode : 1;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int graphicsExposures : 1;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int clientClipType : 2; /* CT_<kind> */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int miTranslate:1; /* should mi things translate? */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int tileIsPixel:1; /* tile is solid pixel */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int fExpose:1; /* Call exposure handling */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int freeCompClip:1; /* Free composite clip */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int unused:14; /* see comment above */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned long planemask;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned long fgPixel;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned long bgPixel;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync /*
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * alas -- both tile and stipple must be here as they
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * are independently specifiable
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PixUnion tile;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PixmapPtr stipple;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DDXPointRec patOrg; /* origin for (tile, stipple) */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync struct _Font *font;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DDXPointRec clipOrg;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DDXPointRec lastWinOrg; /* position of window last validated */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer clientClip;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned long stateChanges; /* masked with GC_<kind> */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned long serialNumber;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCFuncs *funcs;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCOps *ops;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PrivateRec *devPrivates;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync /*
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * The following were moved here from private storage to allow device-
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * independent access to them from screen wrappers.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * --- 1997.11.03 Marc Aurele La France (tsi@xfree86.org)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PixmapPtr pRotatedPixmap; /* tile/stipple rotated for alignment */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync RegionPtr pCompositeClip;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync /* fExpose & freeCompClip defined above */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} GC;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif /* GCSTRUCT_H */