a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* $XFree86: xc/programs/Xserver/afb/afb.h,v 3.8 2001/10/28 03:32:57 tsi Exp $ */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* Combined Purdue/PurduePlus patches, level 2.0, 1/17/89 */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/***********************************************************
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncCopyright (c) 1987 X Consortium
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncPermission is hereby granted, free of charge, to any person obtaining a copy
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncof this software and associated documentation files (the "Software"), to deal
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncin the Software without restriction, including without limitation the rights
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncto use, copy, modify, merge, publish, distribute, sublicense, and/or sell
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynccopies of the Software, and to permit persons to whom the Software is
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncfurnished to do so, subject to the following conditions:
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncThe above copyright notice and this permission notice shall be included in
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncall copies or substantial portions of the Software.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncExcept as contained in this notice, the name of the X Consortium shall not be
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncused in advertising or otherwise to promote the sale, use or other dealings
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncin this Software without prior written authorization from the X Consortium.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync All Rights Reserved
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncPermission to use, copy, modify, and distribute this software and its
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncdocumentation for any purpose and without fee is hereby granted,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncprovided that the above copyright notice appear in all copies and that
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncboth that copyright notice and this permission notice appear in
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncsupporting documentation, and that the name of Digital not be
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncused in advertising or publicity pertaining to distribution of the
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncsoftware without specific, written prior permission.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync******************************************************************/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* $XConsortium: afb.h,v 5.31 94/04/17 20:28:15 dpw Exp $ */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* Monochrome Frame Buffer definitions
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync written by drewry, september 1986
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* warning: PixelType definition duplicated in maskbits.h */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif /* PixelType */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*alu*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*planemask*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*srcx*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*srcy*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*width*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*height*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*dstx*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*dsty*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*alu*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*planemask*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*planemask*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*srcx*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*srcy*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*width*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*height*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*dstx*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*dsty*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*srcx*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*srcy*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*width*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*height*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*dstx*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*dsty*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*plane*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*alu*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*planemask*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*alu*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*planemask*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*alu*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*planemask*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*alu*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*planemask*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*alu*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*planemask*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*alu*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*planemask*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nlwidth*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*sizeDst*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*depthDst*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*signdx*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*signdy*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*axis*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*x1*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*y1*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*e1*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*e2*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*len*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char * /*rrops*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int * /*pdashIndex*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char * /*pDash*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*numInDashList*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int * /*pdashOffset*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*isDoubleDash*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nlwidth*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*sizeDst*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*depthDst*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*signdx*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*signdy*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*axis*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*x1*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*y1*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*e1*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*e2*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*len*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char * /*rrops*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char * /*bgrrops*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*xorg*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*yorg*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*xorg*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*yorg*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned short * /*pred*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned short * /*pgreen*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned short * /*pblue*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*ndefs*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*depth*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*visuals*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*bitsPerRGB*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int * /*nvisualp*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int * /*ndepthp*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int * /*rootDepthp*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*sizes*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*bitsPerRGB*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*narcs*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nrectFill*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*mode*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*shape*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*count*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nInit*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int * /*pwidthInit*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*fSorted*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nInit*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int * /*pwidthInit*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*fSorted*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nInit*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int * /*pwidthInit*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*fSorted*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nInit*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int * /*pwidthInit*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*fSorted*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nInit*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int * /*pwidthInit*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*fSorted*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nInit*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int * /*pwidthInit*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*fSorted*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nInit*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int * /*pwidthInit*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*fSorted*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*changes*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*alu*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*planemask*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*depth*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char * /*rrops*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*planemask*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*depth*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char * /*rrops*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*wMax*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int * /*pwidth*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nspans*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync char * /*pdstStart*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nlwidth*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*sizeDst*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*depthDst*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*x1*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*y1*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*len*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char * /*rrops*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nlwidth*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*sizeDst*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*depthDst*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*x1*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*y1*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*len*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char * /*rrops*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned int /*nglyph*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*depth*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*leftPad*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*format*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync char * /*pImage*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*sx*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*sy*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned int /*format*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*planeMask*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync char * /*pdstLine*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*mode*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*npt*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*mode*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*npt*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*class*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned short * /*pwidth*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned short * /*pheight*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nbox*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char * /*rrops*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nbox*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char * /*rrops*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nbox*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*xOff*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*yOff*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char * /*rrops*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned int /*nglyph*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*width*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*height*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*depth*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*xrot*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*yrot*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*what*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*mode*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*npt*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*dx*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*dy*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*xOrg*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*yOrg*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*index*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int * /*pWinIndex*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int * /*pGCIndex*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*xsize*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*ysize*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*dpix*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*dpiy*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*width*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nseg*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nseg*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*xOrigin*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*xStart*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*xEnd*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*alu*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*widthDst*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*sizeDst*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*depthDst*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*sizeSrc*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync char * /*psrc*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int * /*pwidth*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nspans*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*fSorted*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned int /*nglyph*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nbox*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*alu*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*planemask*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nbox*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*alu*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*planemask*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nbox*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*alu*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*xOff*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*yOff*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*planemask*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nbox*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*alu*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*xOff*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*yOff*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*planemask*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nbox*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*alu*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char */*rropsOS*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*planemask*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nbox*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*alu*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char */*rropsOS*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*planemask*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nbox*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*alu*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*xOff*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*yOff*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char */*rropsOS*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*planemask*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*nbox*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*alu*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*xOff*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*yOff*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char */*rropsOS*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*planemask*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned long /*mask*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*narcs*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync private field of pixmap
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pixmap.devPrivate = (PixelType *)pointer_to_bits
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pixmap.devKind = width_of_pixmap_in_bytes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync private field of screen
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync a pixmap, for which we allocate storage. devPrivate is a pointer to
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncthe bits in the hardware framebuffer. note that devKind can be poked to
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncmake the code work for framebuffers that are wider than their
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncdisplayable screen (e.g. the early vsII, which displayed 960 pixels
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncacross, but was 1024 in the hardware.)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync private field of GC
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct {
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char rrops[AFB_MAX_DEPTH]; /* reduction of rasterop to 1 of 3 */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char rropOS[AFB_MAX_DEPTH]; /* rop for opaque stipple */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int afbGCPrivateIndex; /* index into GC private array */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int afbWindowPrivateIndex; /* index into Window private array */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int frameWindowPrivateIndex; /* index into Window private array */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ((afbPrivGC *)((pGC)->devPrivates[afbGCPrivateIndex].ptr))
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* private field of window */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct {
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char fastBorder; /* non-zero if border tile is 32 bits wide */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned short unused; /* pad for alignment with Sun compiler */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* Common macros for extracting drawing information */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync (int)(((PixmapPtr)((pDrawable)->pScreen->devPrivates[afbScreenPrivateIndex].ptr))->devKind) : \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync (int)(((PixmapPtr)pDrawable)->devKind)) / sizeof (wtype))
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbGetByteWidth(pDrawable) afbGetTypedWidth(pDrawable, unsigned char)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbGetPixelWidth(pDrawable) afbGetTypedWidth(pDrawable, PixelType)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbGetTypedWidthAndPointer(pDrawable, width, pointer, wtype, ptype) {\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync _pPix = (PixmapPtr)(pDrawable)->pScreen->devPrivates[afbScreenPrivateIndex].ptr; \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync (width) = ((int) _pPix->devKind) / sizeof (wtype); \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbGetPixelWidthSizeDepthAndPointer(pDrawable, width, size, dep, pointer) {\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync _pPix = (PixmapPtr)(pDrawable)->pScreen->devPrivates[afbScreenPrivateIndex].ptr; \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync (width) = ((int)_pPix->devKind) / sizeof (PixelType); \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbGetByteWidthAndPointer(pDrawable, width, pointer) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync afbGetTypedWidthAndPointer(pDrawable, width, pointer, unsigned char, unsigned char)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbGetPixelWidthAndPointer(pDrawable, width, pointer) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync afbGetTypedWidthAndPointer(pDrawable, width, pointer, PixelType, PixelType)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbGetWindowTypedWidthAndPointer(pWin, width, pointer, wtype, ptype) {\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync PixmapPtr _pPix = (PixmapPtr)(pWin)->drawable.pScreen->devPrivates[afbScreenPrivateIndex].ptr; \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync (width) = ((int) _pPix->devKind) / sizeof (wtype); \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbGetWindowPixelWidthAndPointer(pWin, width, pointer) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync afbGetWindowTypedWidthAndPointer(pWin, width, pointer, PixelType, PixelType)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbGetWindowByteWidthAndPointer(pWin, width, pointer) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync afbGetWindowTypedWidthAndPointer(pWin, width, pointer, char, char)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* afb uses the following macros to calculate addresses in drawables.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * To support banked framebuffers, the macros come in four flavors.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * All four collapse into the same definition on unbanked devices.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * afbScanlineFoo - calculate address and do bank switching
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * afbScanlineFooNoBankSwitch - calculate address, don't bank switch
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * afbScanlineFooSrc - calculate address, switch source bank
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * afbScanlineFooDst - calculate address, switch destination bank
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* The NoBankSwitch versions are the same for banked and unbanked cases */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbScanlineIncNoBankSwitch(_ptr, _off) _ptr += (_off)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbScanlineOffsetNoBankSwitch(_ptr, _off) ((_ptr) + (_off))
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbScanlineDeltaNoBankSwitch(_ptr, _y, _w) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync afbScanlineOffsetNoBankSwitch(_ptr, (_y) * (_w) + ((_x) >> MFB_PWSH))
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#include "afblinebank.h" /* get macro definitions from this file */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#else /* !MFB_LINE_BANK - unbanked case */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbScanlineInc(_ptr, _off) afbScanlineIncNoBankSwitch(_ptr, _off)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbScanlineIncSrc(_ptr, _off) afbScanlineInc(_ptr, _off)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbScanlineIncDst(_ptr, _off) afbScanlineInc(_ptr, _off)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbScanlineOffset(_ptr, _off) afbScanlineOffsetNoBankSwitch(_ptr, _off)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbScanlineOffsetSrc(_ptr, _off) afbScanlineOffset(_ptr, _off)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbScanlineOffsetDst(_ptr, _off) afbScanlineOffset(_ptr, _off)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbScanlineSrc(_ptr, _x, _y, _w) afbScanline(_ptr, _x, _y, _w)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbScanlineDst(_ptr, _x, _y, _w) afbScanline(_ptr, _x, _y, _w)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbScanlineDeltaSrc(_ptr, _y, _w) afbScanlineDelta(_ptr, _y, _w)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define afbScanlineDeltaDst(_ptr, _y, _w) afbScanlineDelta(_ptr, _y, _w)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif /* MFB_LINE_BANK */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync afbScanlineOffset(_ptr, (_y) * (_w) + ((_x) >> MFB_PWSH))
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* precomputed information about each glyph for GlyphBlt code.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync this saves recalculating the per glyph information for each box.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync PixelType *pdstBase; /* longword with character origin */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* reduced raster ops for afb */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync these let the code do one switch on the rop per call, rather
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync than a switch on the rop per item (span or rectangle.)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* Using a "switch" statement is much faster in most cases
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * since the compiler can do a look-up table or multi-way branch
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * instruction, depending on the architecture. The result on
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * A Sun 3/50 is at least 2.5 times faster, assuming a uniform
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * distribution of RasterOp operation types.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * However, doing some profiling on a running system reveals
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * GXcopy is the operation over 99.5% of the time and
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * GXxor is the next most frequent (about .4%), so we make special
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * checks for those first.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * Note that this requires a change to the "calling sequence"
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * since we can't engineer a "switch" statement to have an lvalue.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync switch (alu) { \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* C expression fragments for various operations. These get passed in
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * as -D's on the compile command line. See afb/Imakefile. This
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * fixes XBUG 6319.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * This seems like a good place to point out that afb's use of the
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * words black and white is an unfortunate misnomer. In afb code, black
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * means zero, and white means one.