summaryrefslogtreecommitdiff
path: root/hw/xnest/GCOps.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/xnest/GCOps.c')
-rw-r--r--hw/xnest/GCOps.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/hw/xnest/GCOps.c b/hw/xnest/GCOps.c
index 042a29f6e..4ccc0b916 100644
--- a/hw/xnest/GCOps.c
+++ b/hw/xnest/GCOps.c
@@ -310,5 +310,16 @@ void
xnestPushPixels(GCPtr pGC, PixmapPtr pBitmap, DrawablePtr pDst,
int width, int height, int x, int y)
{
- ErrorF("xnest warning: function xnestPushPixels not implemented\n");
+ /* only works for solid bitmaps */
+ if (pGC->fillStyle == FillSolid)
+ {
+ XSetStipple (xnestDisplay, xnestGC(pGC), xnestPixmap(pBitmap));
+ XSetTSOrigin (xnestDisplay, xnestGC(pGC), x, y);
+ XSetFillStyle (xnestDisplay, xnestGC(pGC), FillStippled);
+ XFillRectangle (xnestDisplay, xnestDrawable(pDst),
+ xnestGC(pGC), x, y, width, height);
+ XSetFillStyle (xnestDisplay, xnestGC(pGC), FillSolid);
+ }
+ else
+ ErrorF("xnest warning: function xnestPushPixels not implemented\n");
}