fb = (u_int32_t *)pci->bits;
pxPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, int x, int y,		unsigned int nglyph, CharInfoPtr *ppci,		pointer pGlyphBase)#endif{	pxScreenPrivPtr sp;	pxPrivGCPtr gcPriv;	RegionPtr clip;	int w, h, ex, bg, fg, x0, y0;	BoxRec box;	FontPtr pfont;	u_int32_t *pb, *fb;	pxPacket pxp;	int v1, v2, lw, xya, psy;	int stampw, stamphm;	CharInfoPtr pci;#ifdef _IMAGEGLYPH	PX_TRACE("pxImageGlyphBlt");#else	PX_TRACE("pxPolyGlyphBlt");#endif	clip = cfbGetCompositeClip(pGC);	pfont = pGC->font;	/*	 * Compte an approximate (but covering) bounding box.	 */	box.x1 = 0;	if (ppci[0]->metrics.leftSideBearing < 0)		box.x1 = ppci[0]->metrics.leftSideBearing;	h = nglyph - 1;	w = ppci[h]->metrics.rightSideBearing;	while (--h >= 0)		w += ppci[h]->metrics.characterWidth;	box.x2 = w;	box.y1 = -FONTMAXBOUNDS(pGC->font, ascent);	box.y2 = FONTMAXBOUNDS(pGC->font, descent);	box.x1 += pDrawable->x + x;	box.x2 += pDrawable->x + x;	box.y1 += pDrawable->y + y;	box.y2 += pDrawable->y + y;	switch (RECT_IN_REGION(pGC->pScreen, clip, &box)) {	case rgnPART:#ifdef _IMAGEGLYPH		miImageGlyphBlt(pDrawable, pGC, x, y, nglyph, ppci,		    pGlyphBase);#else		miPolyGlyphBlt(pDrawable, pGC, x, y, nglyph, ppci,		    pGlyphBase);#endif		return;	case rgnOUT:		return;	default:		break;	}	gcPriv = pxGetGCPrivate(pGC);	sp = gcPriv->sp;	pb = pxPacketStart(sp, &pxp, 6, 13);	pb[0] = STAMP_CMD_LINES | STAMP_RGB_FLAT | STAMP_LW_PERPRIMATIVE |	    STAMP_XY_PERPRIMATIVE | STAMP_CLIPRECT;	pb[1] = gcPriv->pmask;	pb[2] = 0;	pb[3] = gcPriv->umet | STAMP_WE_XYMASK | STAMP_WE_CLIPRECT;	pb[4] = 0x7c00400;	pb[5] = 0x7ffffff;	stampw = sp->stampw;	stamphm = sp->stamphm;	x += pDrawable->x;	y += pDrawable->y;#ifdef _IMAGEGLYPH	fg = gcPriv->fgPixel;#else	fg = gcPriv->fgFill;#endif	bg = gcPriv->bgPixel;	while (nglyph--) {		pci = *ppci++;		fb = (u_int32_t *)pci->bits;		w = GLYPHWIDTHPIXELS(pci);		h = GLYPHHEIGHTPIXELS(pci);		x0 = x + pci->metrics.leftSideBearing;		y0 = y - pci->metrics.ascent;		ex = x0 + w;		x += pci->metrics.characterWidth;;		lw = (h << 2) - 1;		psy = (y0 << 3) + lw;		v1 = (x0 << 19) | psy;		v2 = (ex << 19) | psy;		xya = XYMASKADDR(stampw, stamphm, x0, y, 0, 0);#ifdef _IMAGEGLYPH		pb = pxPacketAddPrim(sp, &pxp);		DOBG(v1, v2, lw, xya, bg);#endif		pb = pxPacketAddPrim(sp, &pxp);		DOFG(v1, v2, lw, xya, fb, fg);	}	pxPacketFlush(sp, &pxp);}