summaryrefslogtreecommitdiff
path: root/exa
diff options
context:
space:
mode:
authorMichel Dänzer <michel@tungstengraphics.com>2007-08-31 16:59:28 +0200
committerMichel Dänzer <michel@tungstengraphics.com>2007-09-07 18:41:33 +0200
commit5f7da4da8de7449e1c2a4c679632a0b2a5858b7e (patch)
tree0dce6a52a8e77299938d347be9a1180a06397ea8 /exa
parentbe922b30486abce3a8c13996d579b211a7b56f0e (diff)
EXA: Use exaShmPutImage for pushing glyphs to scratch pixmap in exaGlyphs.
Diffstat (limited to 'exa')
-rw-r--r--exa/exa_accel.c2
-rw-r--r--exa/exa_priv.h5
-rw-r--r--exa/exa_render.c9
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);
}