diff options
author | Michel Dänzer <michel@tungstengraphics.com> | 2007-08-31 16:59:28 +0200 |
---|---|---|
committer | Michel Dänzer <michel@tungstengraphics.com> | 2007-09-07 18:41:33 +0200 |
commit | 5f7da4da8de7449e1c2a4c679632a0b2a5858b7e (patch) | |
tree | 0dce6a52a8e77299938d347be9a1180a06397ea8 /exa | |
parent | be922b30486abce3a8c13996d579b211a7b56f0e (diff) |
EXA: Use exaShmPutImage for pushing glyphs to scratch pixmap in exaGlyphs.
Diffstat (limited to 'exa')
-rw-r--r-- | exa/exa_accel.c | 2 | ||||
-rw-r--r-- | exa/exa_priv.h | 5 | ||||
-rw-r--r-- | exa/exa_render.c | 9 |
3 files changed, 15 insertions, 1 deletions
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 @@ -300,6 +300,11 @@ 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); } |