EXA: Use exaShmPutImage for pushing glyphs to scratch pixmap in exaGlyphs.

This commit is contained in:
Michel Dänzer 2007-08-31 16:59:28 +02:00
parent be922b3048
commit 5f7da4da8d
3 changed files with 15 additions and 1 deletions

View File

@ -287,7 +287,7 @@ exaDoShmPutImage(DrawablePtr pDrawable, GCPtr pGC, int depth,
* We also need to set the pending damage to ensure correct migration in all * We also need to set the pending damage to ensure correct migration in all
* cases. * cases.
*/ */
static void void
exaShmPutImage(DrawablePtr pDrawable, GCPtr pGC, int depth, unsigned int format, exaShmPutImage(DrawablePtr pDrawable, GCPtr pGC, int depth, unsigned int format,
int w, int h, int sx, int sy, int sw, int sh, int dx, int dy, int w, int h, int sx, int sy, int sw, int sh, int dx, int dy,
char *data) char *data)

View File

@ -299,6 +299,11 @@ exaFillRegionTiled (DrawablePtr pDrawable, RegionPtr pRegion, PixmapPtr pTile,
void void
exaPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what); exaPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what);
void
exaShmPutImage(DrawablePtr pDrawable, GCPtr pGC, int depth, unsigned int format,
int w, int h, int sx, int sy, int sw, int sh, int dx, int dy,
char *data);
void void
exaGetImage (DrawablePtr pDrawable, int x, int y, int w, int h, exaGetImage (DrawablePtr pDrawable, int x, int y, int w, int h,
unsigned int format, unsigned long planeMask, char *d); unsigned int format, unsigned long planeMask, char *d);

View File

@ -1282,6 +1282,15 @@ exaGlyphs (CARD8 op,
pScratchPixmap->drawable.serialNumber = NEXT_SERIAL_NUMBER; pScratchPixmap->drawable.serialNumber = NEXT_SERIAL_NUMBER;
} }
#ifdef MITSHM
if (pExaScr->info->PrepareComposite)
exaShmPutImage(&pPixmap->drawable, pGC,
pPixmap->drawable.depth, ZPixmap,
glyph->info.width, glyph->info.height, 0, 0,
glyph->info.width, glyph->info.height, 0, 0,
glyphdata);
else
#endif
exaCopyArea (&pScratchPixmap->drawable, &pPixmap->drawable, pGC, exaCopyArea (&pScratchPixmap->drawable, &pPixmap->drawable, pGC,
0, 0, glyph->info.width, glyph->info.height, 0, 0); 0, 0, glyph->info.width, glyph->info.height, 0, 0);
} }