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