Logo Search packages:      
Sourcecode: x11proto-xext version File versions  Download package

shmstr.h

/* $XFree86: xc/include/extensions/shmstr.h,v 3.3 2001/12/14 19:53:29 dawes Exp $ */
/************************************************************

Copyright 1989, 1998  The Open Group

Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.

********************************************************/

/* THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATION */

#ifndef _SHMSTR_H_
#define _SHMSTR_H_

/* $Xorg: shmstr.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $ */

#include "XShm.h"

#define ShmSeg CARD32
#define Drawable CARD32
#define VisualID CARD32
#define GContext CARD32
#define Pixmap CARD32

#define SHMNAME "MIT-SHM"

#define SHM_MAJOR_VERSION     1     /* current version numbers */
#define SHM_MINOR_VERSION     1

#ifdef _XSHM_SERVER_
#define XSHM_PUT_IMAGE_ARGS \
    DrawablePtr         /* dst */, \
    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 */

#define XSHM_CREATE_PIXMAP_ARGS \
    ScreenPtr     /* pScreen */, \
    int           /* width */, \
    int           /* height */, \
    int           /* depth */, \
    char *  /* addr */

typedef struct _ShmFuncs {
    PixmapPtr     (* CreatePixmap)(XSHM_CREATE_PIXMAP_ARGS);
    void    (* PutImage)(XSHM_PUT_IMAGE_ARGS);
} ShmFuncs, *ShmFuncsPtr;
#endif

typedef struct _ShmQueryVersion {
    CARD8   reqType;          /* always ShmReqCode */
    CARD8   shmReqType;       /* always X_ShmQueryVersion */
    CARD16  length B16;
} xShmQueryVersionReq;
#define sz_xShmQueryVersionReq      4

typedef struct {
    BYTE    type;             /* X_Reply */
    BOOL    sharedPixmaps;
    CARD16  sequenceNumber B16;
    CARD32  length B32;
    CARD16  majorVersion B16; /* major version of SHM protocol */
    CARD16  minorVersion B16; /* minor version of SHM protocol */
    CARD16  uid B16;
    CARD16  gid B16;
    CARD8   pixmapFormat;
    CARD8   pad0;
    CARD16  pad1 B16;
    CARD32  pad2 B32;
    CARD32  pad3 B32;
    CARD32  pad4 B32;
} xShmQueryVersionReply;
#define sz_xShmQueryVersionReply    32

typedef struct _ShmAttach {
    CARD8   reqType;    /* always ShmReqCode */
    CARD8   shmReqType; /* always X_ShmAttach */
    CARD16  length B16;
    ShmSeg  shmseg B32;
    CARD32  shmid B32;
    BOOL    readOnly;
    BYTE    pad0;
    CARD16  pad1 B16;
} xShmAttachReq;
#define sz_xShmAttachReq      16

typedef struct _ShmDetach {
    CARD8   reqType;    /* always ShmReqCode */
    CARD8   shmReqType; /* always X_ShmDetach */
    CARD16  length B16;
    ShmSeg  shmseg B32;
} xShmDetachReq;
#define sz_xShmDetachReq      8

typedef struct _ShmPutImage {
    CARD8   reqType;    /* always ShmReqCode */
    CARD8   shmReqType; /* always X_ShmPutImage */
    CARD16  length B16;
    Drawable      drawable B32;
    GContext      gc B32;
    CARD16  totalWidth B16;
    CARD16  totalHeight B16;
    CARD16  srcX B16;
    CARD16  srcY B16;
    CARD16  srcWidth B16;
    CARD16  srcHeight B16;
    INT16   dstX B16;
    INT16   dstY B16;
    CARD8   depth;
    CARD8   format;
    CARD8   sendEvent;
    CARD8   bpad;
    ShmSeg  shmseg B32;
    CARD32  offset B32;
} xShmPutImageReq;    
#define sz_xShmPutImageReq    40

typedef struct _ShmGetImage {
    CARD8   reqType;    /* always ShmReqCode */
    CARD8   shmReqType; /* always X_ShmGetImage */
    CARD16  length B16;
    Drawable      drawable B32;
    INT16   x B16;
    INT16   y B16;
    CARD16  width B16;
    CARD16  height B16;
    CARD32  planeMask B32;
    CARD8   format;
    CARD8   pad0;
    CARD8   pad1;
    CARD8   pad2;
    ShmSeg  shmseg B32;
    CARD32  offset B32;
} xShmGetImageReq;    
#define sz_xShmGetImageReq    32

typedef struct _ShmGetImageReply {
    BYTE    type;  /* X_Reply */
    CARD8   depth;
    CARD16  sequenceNumber B16;
    CARD32  length B32;
    VisualID      visual B32;
    CARD32  size B32;
    CARD32  pad0 B32;
    CARD32  pad1 B32;
    CARD32  pad2 B32;
    CARD32  pad3 B32;
} xShmGetImageReply;
#define sz_xShmGetImageReply  32

typedef struct _ShmCreatePixmap {
    CARD8   reqType;    /* always ShmReqCode */
    CARD8   shmReqType; /* always X_ShmCreatePixmap */
    CARD16  length B16;
    Pixmap  pid B32;
    Drawable      drawable B32;
    CARD16  width B16;
    CARD16  height B16;
    CARD8   depth;
    CARD8   pad0;
    CARD8   pad1;
    CARD8   pad2;
    ShmSeg  shmseg B32;
    CARD32  offset B32;
} xShmCreatePixmapReq;
#define sz_xShmCreatePixmapReq 28

typedef struct _ShmCompletion {
    BYTE    type;       /* always eventBase + ShmCompletion */
    BYTE    bpad0;
    CARD16  sequenceNumber B16;
    Drawable      drawable B32;
    CARD16  minorEvent B16;
    BYTE    majorEvent;
    BYTE    bpad1;
    ShmSeg  shmseg B32;
    CARD32  offset B32;
    CARD32  pad0 B32;
    CARD32  pad1 B32;
    CARD32  pad2 B32;
} xShmCompletionEvent;
#define sz_xShmCompletionEvent      32

#undef ShmSeg
#undef Drawable
#undef VisualID
#undef GContext
#undef Pixmap

#endif /* _SHMSTR_H_ */

Generated by  Doxygen 1.6.0   Back to index