f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * Copyright © 2003 Keith Packard
f0ab104f070bc7f569404826fea1828ed985638cvboxsync *
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * Permission to use, copy, modify, distribute, and sell this software and its
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * documentation for any purpose is hereby granted without fee, provided that
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * the above copyright notice appear in all copies and that both that
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * copyright notice and this permission notice appear in supporting
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * documentation, and that the name of Keith Packard not be used in
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * advertising or publicity pertaining to distribution of the software without
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * specific, written prior permission. Keith Packard makes no
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * representations about the suitability of this software for any purpose. It
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * is provided "as is" without express or implied warranty.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync *
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * PERFORMANCE OF THIS SOFTWARE.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#ifndef _SHMINT_H_
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define _SHMINT_H_
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include <X11/extensions/shmproto.h>
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "screenint.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "pixmap.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "gc.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define XSHM_PUT_IMAGE_ARGS \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DrawablePtr /* dst */, \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr /* pGC */, \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /* depth */, \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int /* format */, \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /* w */, \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /* h */, \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /* sx */, \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /* sy */, \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /* sw */, \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /* sh */, \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /* dx */, \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /* dy */, \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync char * /* data */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define XSHM_CREATE_PIXMAP_ARGS \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ScreenPtr /* pScreen */, \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /* width */, \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /* height */, \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /* depth */, \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync char * /* addr */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct _ShmFuncs {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PixmapPtr (* CreatePixmap)(XSHM_CREATE_PIXMAP_ARGS);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync void (* PutImage)(XSHM_PUT_IMAGE_ARGS);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} ShmFuncs, *ShmFuncsPtr;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncShmRegisterFuncs(ScreenPtr pScreen, ShmFuncsPtr funcs);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncShmRegisterFbFuncs(ScreenPtr pScreen);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT RESTYPE ShmSegType;
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int ShmCompletionCode;
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int BadShmSegCode;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif /* _SHMINT_H_ */