Home | History | Annotate | Line # | Download | only in src
      1 /*
      2  *
      3  * Copyright  2002 Keith Packard
      4  *
      5  * Permission to use, copy, modify, distribute, and sell this software and its
      6  * documentation for any purpose is hereby granted without fee, provided that
      7  * the above copyright notice appear in all copies and that both that
      8  * copyright notice and this permission notice appear in supporting
      9  * documentation, and that the name of Keith Packard not be used in
     10  * advertising or publicity pertaining to distribution of the software without
     11  * specific, written prior permission.  Keith Packard makes no
     12  * representations about the suitability of this software for any purpose.  It
     13  * is provided "as is" without express or implied warranty.
     14  *
     15  * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
     16  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
     17  * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
     18  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
     19  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
     20  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
     21  * PERFORMANCE OF THIS SOFTWARE.
     22  */
     23 
     24 #ifdef HAVE_CONFIG_H
     25 #include <config.h>
     26 #endif
     27 #include "Xrenderint.h"
     28 
     29 Cursor
     30 XRenderCreateCursor (Display	    *dpy,
     31 		     Picture	    source,
     32 		     unsigned int   x,
     33 		     unsigned int   y)
     34 {
     35     XRenderExtDisplayInfo	*info = XRenderFindDisplay (dpy);
     36     Cursor			cid;
     37     xRenderCreateCursorReq	*req;
     38 
     39     RenderCheckExtension (dpy, info, 0);
     40     LockDisplay(dpy);
     41     GetReq(RenderCreateCursor, req);
     42     req->reqType = (CARD8) info->codes->major_opcode;
     43     req->renderReqType = X_RenderCreateCursor;
     44     req->cid = (CARD32) (cid = XAllocID (dpy));
     45     req->src = (CARD32) source;
     46     req->x = (CARD16) x;
     47     req->y = (CARD16) y;
     48 
     49     UnlockDisplay(dpy);
     50     SyncHandle();
     51     return cid;
     52 }
     53 
     54 Cursor
     55 XRenderCreateAnimCursor (Display	*dpy,
     56 			 int		ncursor,
     57 			 XAnimCursor	*cursors)
     58 {
     59     XRenderExtDisplayInfo	*info = XRenderFindDisplay (dpy);
     60     Cursor			cid;
     61     xRenderCreateAnimCursorReq	*req;
     62     long			len;
     63 
     64     RenderCheckExtension (dpy, info, 0);
     65     LockDisplay(dpy);
     66     GetReq(RenderCreateAnimCursor, req);
     67     req->reqType = (CARD8) info->codes->major_opcode;
     68     req->renderReqType = X_RenderCreateAnimCursor;
     69     req->cid = (CARD32) (cid = XAllocID (dpy));
     70 
     71     len = (long) ncursor * SIZEOF (xAnimCursorElt) >> 2;
     72     SetReqLen (req, len, len);
     73     len <<= 2;
     74     Data32 (dpy, (long *) cursors, len);
     75 
     76     UnlockDisplay(dpy);
     77     SyncHandle();
     78     return cid;
     79 }
     80