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