+++ /dev/null
-/*
- * $XConsortium: cfbigblt8.c,v 1.9 94/04/17 20:28:52 dpw Exp $
- *
-Copyright (c) 1990 X Consortium
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the X Consortium shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from the X Consortium.
- *
- * Author: Keith Packard, MIT X Consortium
- */
-
-#include "X.h"
-#include "Xmd.h"
-#include "Xproto.h"
-#include "cfb.h"
-#include "fontstruct.h"
-#include "dixfontstr.h"
-#include "gcstruct.h"
-#include "windowstr.h"
-#include "scrnintstr.h"
-#include "pixmapstr.h"
-#include "regionstr.h"
-#include "cfbmskbits.h"
-#include "cfb8bit.h"
-
-void
-cfbImageGlyphBlt8 (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase)
- DrawablePtr pDrawable;
- GCPtr pGC;
- int x, y;
- unsigned int nglyph;
- CharInfoPtr *ppci;
- pointer pglyphBase;
-{
- ExtentInfoRec info; /* used by QueryGlyphExtents() */
- xRectangle backrect;
- int fillStyle;
- int alu;
- int fgPixel;
- int rop;
- int xor;
- int and;
- int pm;
- cfbPrivGC *priv;
-
- QueryGlyphExtents(pGC->font, ppci, (unsigned long)nglyph, &info);
-
- if (info.overallWidth >= 0)
- {
- backrect.x = x;
- backrect.width = info.overallWidth;
- }
- else
- {
- backrect.x = x + info.overallWidth;
- backrect.width = -info.overallWidth;
- }
- backrect.y = y - FONTASCENT(pGC->font);
- backrect.height = FONTASCENT(pGC->font) + FONTDESCENT(pGC->font);
-
- priv = cfbGetGCPrivate(pGC);
-
- /* this code cheats by knowing that ValidateGC isn't
- * necessary for PolyFillRect
- */
-
- fgPixel = pGC->fgPixel;
-
- pGC->fgPixel = pGC->bgPixel;
- priv->xor = PFILL(pGC->bgPixel);
-
- (*pGC->ops->PolyFillRect) (pDrawable, pGC, 1, &backrect);
-
- pGC->fgPixel = fgPixel;
-
- priv->xor = PFILL(pGC->fgPixel);
-
- (*pGC->ops->PolyGlyphBlt) (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
-
-}