gcstruct.h revision 65fea56f17cd614bc8908264df980a62e1931468
637712559132d2b3617aea0103fb0385978da14evboxsync/***********************************************************
4efd24e631e5312d1fb78ae7ccaf9de912ff0e9fvboxsyncCopyright 1987, 1998 The Open Group
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.
637712559132d2b3617aea0103fb0385978da14evboxsyncThe above copyright notice and this permission notice shall be included in
637712559132d2b3617aea0103fb0385978da14evboxsyncall copies or substantial portions of the Software.
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.
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.
637712559132d2b3617aea0103fb0385978da14evboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
637712559132d2b3617aea0103fb0385978da14evboxsync All Rights Reserved
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.
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
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync******************************************************************/
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync * functions which modify the state of the GC
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsynctypedef struct _GCFuncs {
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync unsigned long /*stateChanges */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync unsigned long /*mask */ );
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync unsigned long /*mask */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync int /*type */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync int /*nrects */ );
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync * graphics operations invoked through a GC
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsynctypedef struct _GCOps {
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*nInit */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int * /*pwidthInit */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*fSorted */ );
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync char * /*psrc */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int * /*pwidth */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*nspans */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*fSorted */ );
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*depth */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*x */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*y */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*w */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*h */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*leftPad */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*format */ ,
637712559132d2b3617aea0103fb0385978da14evboxsync char * /*pBits */ );
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync int /*srcx */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync int /*srcy */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*w */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync int /*h */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync int /*dstx */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*dsty */ );
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync RegionPtr (*CopyPlane) (DrawablePtr /*pSrcDrawable */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*srcx */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync int /*srcy */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*width */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*height */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*dstx */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*dsty */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync unsigned long /*bitPlane */ );
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*mode */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*npt */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*mode */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync int /*npt */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*nseg */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync void (*PolyRectangle) (DrawablePtr /*pDrawable */ ,
b2e185d7c946ed90402d1dd86b24c6d82d8e591bvboxsync int /*nrects */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync int /*narcs */ ,
d142cd5e90598dd8d14744cb6bb7dd467cec446cvboxsync int /*shape */ ,
d142cd5e90598dd8d14744cb6bb7dd467cec446cvboxsync int /*mode */ ,
d142cd5e90598dd8d14744cb6bb7dd467cec446cvboxsync int /*count */ ,
d142cd5e90598dd8d14744cb6bb7dd467cec446cvboxsync int /*nrectFill */ ,
d142cd5e90598dd8d14744cb6bb7dd467cec446cvboxsync int /*narcs */ ,
d142cd5e90598dd8d14744cb6bb7dd467cec446cvboxsync int /*x */ ,
d142cd5e90598dd8d14744cb6bb7dd467cec446cvboxsync int /*y */ ,
d142cd5e90598dd8d14744cb6bb7dd467cec446cvboxsync int /*count */ ,
d142cd5e90598dd8d14744cb6bb7dd467cec446cvboxsync char * /*chars */ );
d142cd5e90598dd8d14744cb6bb7dd467cec446cvboxsync int /*x */ ,
d142cd5e90598dd8d14744cb6bb7dd467cec446cvboxsync int /*y */ ,
d142cd5e90598dd8d14744cb6bb7dd467cec446cvboxsync int /*count */ ,
d142cd5e90598dd8d14744cb6bb7dd467cec446cvboxsync unsigned short * /*chars */ );
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync int /*x */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync int /*y */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync int /*count */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync char * /*chars */ );
637712559132d2b3617aea0103fb0385978da14evboxsync int /*x */ ,
637712559132d2b3617aea0103fb0385978da14evboxsync int /*y */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync int /*count */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync unsigned short * /*chars */ );
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync void (*ImageGlyphBlt) (DrawablePtr /*pDrawable */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync int /*x */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync int /*y */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync unsigned int /*nglyph */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync int /*x */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync int /*y */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync unsigned int /*nglyph */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync int /*w */ ,
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync int /*h */ ,
637712559132d2b3617aea0103fb0385978da14evboxsync int /*x */ ,
637712559132d2b3617aea0103fb0385978da14evboxsync int /*y */ );
eeee785f36554f67d8737506fb0fadbf683cf9dfvboxsync/* there is padding in the bit fields because the Sun compiler doesn't
eeee785f36554f67d8737506fb0fadbf683cf9dfvboxsync * force alignment to 32-bit boundaries. losers.
eeee785f36554f67d8737506fb0fadbf683cf9dfvboxsynctypedef struct _GC {
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 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 long planemask;
eeee785f36554f67d8737506fb0fadbf683cf9dfvboxsync unsigned long fgPixel;
eeee785f36554f67d8737506fb0fadbf683cf9dfvboxsync unsigned long bgPixel;
eeee785f36554f67d8737506fb0fadbf683cf9dfvboxsync * alas -- both tile and stipple must be here as they
eeee785f36554f67d8737506fb0fadbf683cf9dfvboxsync * are independently specifiable
eeee785f36554f67d8737506fb0fadbf683cf9dfvboxsync DDXPointRec patOrg; /* origin for (tile, stipple) */
eeee785f36554f67d8737506fb0fadbf683cf9dfvboxsync unsigned long stateChanges; /* masked with GC_<kind> */
eeee785f36554f67d8737506fb0fadbf683cf9dfvboxsync unsigned long serialNumber;
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)
33698994f509c2b3a92e81a828ee7a0e01b81de0vboxsync PixmapPtr pRotatedPixmap; /* tile/stipple rotated for alignment */
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync /* fExpose & freeCompClip defined above */
b41f65ee355ae1d4b24473c6d6d70c653497429avboxsync#endif /* GCSTRUCT_H */