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