summaryrefslogtreecommitdiff
path: root/xc/lib/Xxf86rush/XF86Rush.c
diff options
context:
space:
mode:
Diffstat (limited to 'xc/lib/Xxf86rush/XF86Rush.c')
-rw-r--r--xc/lib/Xxf86rush/XF86Rush.c47
1 files changed, 43 insertions, 4 deletions
diff --git a/xc/lib/Xxf86rush/XF86Rush.c b/xc/lib/Xxf86rush/XF86Rush.c
index a6dd27b1d..6281b1742 100644
--- a/xc/lib/Xxf86rush/XF86Rush.c
+++ b/xc/lib/Xxf86rush/XF86Rush.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/Xxf86rush/XF86Rush.c,v 1.2 1999/09/27 06:29:15 dawes Exp $ */
+/* $XFree86: xc/lib/Xxf86rush/XF86Rush.c,v 1.3 2000/02/11 22:35:45 dawes Exp $ */
/*
Copyright (c) 1998 Daryll Strauss
@@ -104,14 +104,15 @@ Bool XF86RushLockPixmap(Display *dpy, int screen, Pixmap pixmap, void **addr)
GetReq(XF86RushLockPixmap, req);
req->reqType = info->codes->major_opcode;
req->rushReqType = X_XF86RushLockPixmap;
- req->screen=screen;
- req->pixmap=pixmap;
+ req->screen = screen;
+ req->pixmap = pixmap;
if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
UnlockDisplay(dpy);
SyncHandle();
return False;
}
- *addr=(void*)rep.addr;
+ if (addr)
+ *addr = (void *)rep.addr;
UnlockDisplay(dpy);
SyncHandle();
return True;
@@ -182,3 +183,41 @@ Bool XF86RushSetPixelStride(Display *dpy, int screen, int stride)
SyncHandle();
return True;
}
+
+int XF86RushOverlayPixmap (Display *dpy, XvPortID port, Drawable d,
+ GC gc, Pixmap pixmap, int src_x, int src_y,
+ unsigned int src_w, unsigned int src_h,
+ int dest_x, int dest_y,
+ unsigned int dest_w, unsigned int dest_h,
+ unsigned int id)
+{
+ XExtDisplayInfo *info = find_display(dpy);
+ xXF86RushOverlayPixmapReq *req;
+
+ XF86RushCheckExtension (dpy, info, False);
+
+ FlushGC(dpy, gc);
+
+ LockDisplay(dpy);
+ GetReq(XF86RushOverlayPixmap, req);
+
+ req->reqType = info->codes->major_opcode;
+ req->rushReqType = X_XF86RushOverlayPixmap;
+ req->port = port;
+ req->drawable = d;
+ req->gc = gc->gid;
+ req->id = id;
+ req->pixmap = pixmap;
+ req->src_x = src_x;
+ req->src_y = src_y;
+ req->src_w = src_w;
+ req->src_h = src_h;
+ req->drw_x = dest_x;
+ req->drw_y = dest_y;
+ req->drw_w = dest_w;
+ req->drw_h = dest_h;
+
+ UnlockDisplay(dpy);
+ SyncHandle();
+ return Success;
+}