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