home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / anim / players / mpeg_src.lha / amiga / include / X11 / extensions / XShm.h
C/C++ Source or Header  |  1992-12-08  |  4KB  |  150 lines

  1. /************************************************************
  2. Copyright 1989 by The Massachusetts Institute of Technology
  3.  
  4. Permission to use, copy, modify, and distribute this
  5. software and its documentation for any purpose and without
  6. fee is hereby granted, provided that the above copyright
  7. no- tice appear in all copies and that both that copyright
  8. no- tice and this permission notice appear in supporting
  9. docu- mentation, and that the name of MIT not be used in
  10. advertising or publicity pertaining to distribution of the
  11. software without specific prior written permission.
  12. M.I.T. makes no representation about the suitability of
  13. this software for any purpose. It is provided "as is"
  14. without any express or implied warranty.
  15.  
  16. ********************************************************/
  17.  
  18. /* THIS IS NOT AN X CONSORTIUM STANDARD */
  19.  
  20. /* $XConsortium: XShm.h,v 1.5 91/07/12 09:54:34 rws Exp $ */
  21.  
  22. #ifndef _XSHM_H_
  23. #define _XSHM_H_
  24.  
  25. #include <X11/Xfuncproto.h>
  26.  
  27. #define X_ShmQueryVersion        0
  28. #define X_ShmAttach            1
  29. #define X_ShmDetach            2
  30. #define X_ShmPutImage            3
  31. #define X_ShmGetImage            4
  32. #define X_ShmCreatePixmap        5
  33.  
  34. #define ShmCompletion            0
  35. #define ShmNumberEvents            (ShmCompletion + 1)
  36.  
  37. #define BadShmSeg            0
  38. #define ShmNumberErrors            (BadShmSeg + 1)
  39.  
  40. typedef unsigned long ShmSeg;
  41.  
  42. #ifndef _XSHM_SERVER_
  43. typedef struct {
  44.     int    type;            /* of event */
  45.     unsigned long serial;   /* # of last request processed by server */
  46.     Bool send_event;        /* true if this came frome a SendEvent request */
  47.     Display *display;        /* Display the event was read from */
  48.     Drawable drawable;        /* drawable of request */
  49.     int major_code;        /* ShmReqCode */
  50.     int minor_code;        /* X_ShmPutImage */
  51.     ShmSeg shmseg;        /* the ShmSeg used in the request */
  52.     unsigned long offset;   /* the offset into ShmSeg used in the request */
  53. } XShmCompletionEvent;
  54.  
  55. typedef struct {
  56.     ShmSeg shmseg;    /* resource id */
  57.     int shmid;        /* kernel id */
  58.     char *shmaddr;    /* address in client */
  59.     Bool readOnly;    /* how the server should attach it */
  60. } XShmSegmentInfo;
  61.  
  62. _XFUNCPROTOBEGIN
  63.  
  64. Bool XShmQueryVersion(
  65. #if NeedFunctionPrototypes
  66.     Display*        /* dpy */,
  67.     int*        /* majorVersion */,
  68.     int*        /* minorVersion */,
  69.     Bool*        /* sharedPixmaps */
  70. #endif
  71. );
  72.  
  73. int XShmPixmapFormat(
  74. #if NeedFunctionPrototypes
  75.     Display*        /* dpy */
  76. #endif
  77. );
  78.  
  79. Status XShmAttach(
  80. #if NeedFunctionPrototypes
  81.     Display*        /* dpy */,
  82.     XShmSegmentInfo*    /* shminfo */
  83. #endif
  84. );
  85.  
  86. Status XShmDetach(
  87. #if NeedFunctionPrototypes
  88.     Display*        /* dpy */,
  89.     XShmSegmentInfo*    /* shminfo */
  90. #endif
  91. );
  92.  
  93. Status XShmPutImage(
  94. #if NeedFunctionPrototypes
  95.     Display*        /* dpy */,
  96.     Drawable        /* d */,
  97.     GC            /* gc */,
  98.     XImage*        /* image */,
  99.     int            /* src_x */,
  100.     int            /* src_y */,
  101.     int            /* dst_x */,
  102.     int            /* dst_y */,
  103.     unsigned int    /* src_width */,
  104.     unsigned int    /* src_height */,
  105.     Bool        /* send_event */
  106. #endif
  107. );
  108.  
  109. Status XShmGetImage(
  110. #if NeedFunctionPrototypes
  111.     Display*        /* dpy */,
  112.     Drawable        /* d */,
  113.     XImage*        /* image */,
  114.     int            /* x */,
  115.     int            /* y */,
  116.     unsigned long    /* plane_mask */
  117. #endif
  118. );
  119.  
  120. XImage *XShmCreateImage(
  121. #if NeedFunctionPrototypes
  122.     Display*        /* dpy */,
  123.     Visual*        /* visual */,
  124.     unsigned int    /* depth */,
  125.     int            /* format */,
  126.     char*        /* data */,
  127.     XShmSegmentInfo*    /* shminfo */,
  128.     unsigned int    /* width */,
  129.     unsigned int    /* height */
  130. #endif
  131. );
  132.  
  133. Pixmap XShmCreatePixmap(
  134. #if NeedFunctionPrototypes
  135.     Display*        /* dpy */,
  136.     Drawable        /* d */,
  137.     char*        /* data */,
  138.     XShmSegmentInfo*    /* shminfo */,
  139.     unsigned int    /* width */,
  140.     unsigned int    /* height */,
  141.     unsigned int    /* depth */
  142. #endif
  143. );
  144.  
  145. _XFUNCPROTOEND
  146.  
  147. #endif
  148.  
  149. #endif
  150.