diff --git a/exa/exa_accel.c b/exa/exa_accel.c index 136fca22d..e44ce6005 100644 --- a/exa/exa_accel.c +++ b/exa/exa_accel.c @@ -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 * cases. */ -static void +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) diff --git a/exa/exa_priv.h b/exa/exa_priv.h index a6ac92106..02371d7d8 100644 --- a/exa/exa_priv.h +++ b/exa/exa_priv.h @@ -299,6 +299,11 @@ exaFillRegionTiled (DrawablePtr pDrawable, RegionPtr pRegion, PixmapPtr pTile, void 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 exaGetImage (DrawablePtr pDrawable, int x, int y, int w, int h, unsigned int format, unsigned long planeMask, char *d); diff --git a/exa/exa_render.c b/exa/exa_render.c index 9df795f37..943a4c8f6 100644 --- a/exa/exa_render.c +++ b/exa/exa_render.c @@ -1282,6 +1282,15 @@ exaGlyphs (CARD8 op, 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, 0, 0, glyph->info.width, glyph->info.height, 0, 0); }