- It serves no obvious purpose, yet it directly accesses many fb
symbols.
---
 exa/exa_accel.c |  135 +------------------------------------------------------
 1 files changed, 1 insertions(+), 134 deletions(-)

diff --git a/exa/exa_accel.c b/exa/exa_accel.c
index b70222a..10e7914 100644
--- a/exa/exa_accel.c
+++ b/exa/exa_accel.c
@@ -836,139 +836,6 @@ out:
     REGION_DESTROY(pScreen, pReg);
 }
 
-static void
-exaImageGlyphBlt (DrawablePtr  pDrawable,
-                 GCPtr         pGC,
-                 int           x,
-                 int           y,
-                 unsigned int  nglyph,
-                 CharInfoPtr   *ppciInit,
-                 pointer       pglyphBase)
-{
-    FbGCPrivPtr            pPriv = fbGetGCPrivate(pGC);
-    CharInfoPtr            *ppci;
-    CharInfoPtr            pci;
-    unsigned char   *pglyph;           /* pointer bits in glyph */
-    int                    gWidth, gHeight;    /* width and height of glyph */
-    FbStride       gStride;            /* stride of glyph */
-    Bool           opaque;
-    int                    gx, gy;
-    void           (*glyph) (FbBits *,
-                             FbStride,
-                             int,
-                             FbStip *,
-                             FbBits,
-                             int,
-                             int);
-    FbBits         *dst;
-    FbStride       dstStride;
-    int                    dstBpp;
-    int                    dstXoff, dstYoff;
-    FbBits         depthMask;
-    PixmapPtr      pPixmap = exaGetDrawablePixmap(pDrawable);
-    ExaPixmapPriv(pPixmap);
-    RegionPtr      pending_damage = NULL;
-    BoxRec         extents;
-    int                    xoff, yoff;
-
-    if (pExaPixmap->pDamage)
-       pending_damage = DamagePendingRegion(pExaPixmap->pDamage);
-
-    if (pending_damage) {
-       extents = *REGION_EXTENTS(pScreen, pending_damage);
-
-       if (extents.x1 >= extents.x2 || extents.y1 >= extents.y2)
-           return;
-
-       depthMask = FbFullMask(pDrawable->depth);
-    }
-
-    if (!pending_damage || (pGC->planemask & depthMask) != depthMask)
-    {
-       ExaCheckImageGlyphBlt(pDrawable, pGC, x, y, nglyph, ppciInit, 
pglyphBase);
-       return;
-    }
-
-    glyph = NULL;
-    switch (pDrawable->bitsPerPixel) {
-    case 8:    glyph = fbGlyph8; break;
-    case 16:    glyph = fbGlyph16; break;
-    case 24:    glyph = fbGlyph24; break;
-    case 32:    glyph = fbGlyph32; break;
-    }
-
-    x += pDrawable->x;
-    y += pDrawable->y;
-
-    exaGetDrawableDeltas(pDrawable, pPixmap, &xoff, &yoff);
-    extents.x1 -= xoff;
-    extents.x2 -= xoff;
-    extents.y1 -= yoff;
-    extents.y2 -= yoff;
-
-    exaPrepareAccessReg (pDrawable, EXA_PREPARE_DEST, pending_damage);
-
-    if (TERMINALFONT (pGC->font) && !glyph)
-    {
-       opaque = TRUE;
-    }
-    else
-    {
-       FbBits fg = fbReplicatePixel (pGC->bgPixel, pDrawable->bitsPerPixel);
-
-       fbSolidBoxClipped (pDrawable,
-                          fbGetCompositeClip(pGC),
-                          extents.x1,
-                          extents.y1,
-                          extents.x2,
-                          extents.y2,
-                          fbAnd (GXcopy, fg, pGC->planemask),
-                          fbXor (GXcopy, fg, pGC->planemask));
-
-       opaque = FALSE;
-    }
-
-    EXA_FALLBACK(("to %p (%c)\n", pDrawable, exaDrawableLocation(pDrawable)));
-
-    exaPrepareAccessGC (pGC);
-
-    fbGetDrawable (pDrawable, dst, dstStride, dstBpp, dstXoff, dstYoff);
-
-    for (ppci = ppciInit; nglyph; nglyph--, x += pci->metrics.characterWidth)
-    {
-       pci = *ppci++;
-       gWidth = GLYPHWIDTHPIXELS(pci);
-       gHeight = GLYPHHEIGHTPIXELS(pci);
-       gx = x + pci->metrics.leftSideBearing;
-       gy = y - pci->metrics.ascent;
-
-       if (!gWidth || !gHeight || (gx + gWidth) <= extents.x1 ||
-           (gy + gHeight) <= extents.y1 || gx >= extents.x2 ||
-           gy >= extents.y2)
-           continue;
-
-       pglyph = FONTGLYPHBITS(pglyphBase, pci);
-
-       if (glyph && gWidth <= sizeof (FbStip) * 8 &&
-           fbGlyphIn (fbGetCompositeClip(pGC), gx, gy, gWidth, gHeight))
-       {
-           (*glyph) (dst + (gy + dstYoff) * dstStride, dstStride, dstBpp,
-                     (FbStip *) pglyph, pPriv->fg, gx + dstXoff, gHeight);
-       }
-       else
-       {
-           RegionPtr pClip = fbGetCompositeClip(pGC);
-
-           gStride = GLYPHWIDTHBYTESPADDED(pci) / sizeof (FbStip);
-           fbPutXYImage (pDrawable, pClip, pPriv->fg, pPriv->bg, pPriv->pm,
-                         GXcopy, opaque, gx, gy, gWidth, gHeight,
-                         (FbStip *) pglyph, gStride, 0);
-       }
-    }
-    exaFinishAccessGC (pGC);
-    exaFinishAccess (pDrawable, EXA_PREPARE_DEST);
-}
-
 const GCOps exaOps = {
     exaFillSpans,
     ExaCheckSetSpans,
@@ -987,7 +854,7 @@ const GCOps exaOps = {
     miPolyText16,
     miImageText8,
     miImageText16,
-    exaImageGlyphBlt,
+    ExaCheckImageGlyphBlt,
     ExaCheckPolyGlyphBlt,
     ExaCheckPushPixels,
 };
-- 
1.6.1.1

_______________________________________________
xorg mailing list
xorg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xorg

Reply via email to