XvMClibint.h revision 98af18c5
16f03b1f6Smrg/* $XFree86: xc/lib/XvMC/XvMClibint.h,v 1.4 2001/07/25 15:04:54 dawes Exp $ */
26f03b1f6Smrg
36f03b1f6Smrg#ifndef _XVMCLIBINT_H
46f03b1f6Smrg#define _XVMCLIBINT_H
56f03b1f6Smrg#define NEED_REPLIES
66f03b1f6Smrg
76f03b1f6Smrg#include <X11/Xlibint.h>
86f03b1f6Smrg#include <X11/extensions/Xvproto.h>
96f03b1f6Smrg#include <X11/extensions/XvMCproto.h>
106f03b1f6Smrg#include <X11/extensions/XvMClib.h>
116f03b1f6Smrg
126f03b1f6Smrg#define XvMCCheckExtension(dpy, i, val) \
136f03b1f6Smrg  XextCheckExtension(dpy, i, xvmc_extension_name, val)
146f03b1f6Smrg
156f03b1f6Smrg
166f03b1f6Smrg#if !defined(UNIXCPP)
176f03b1f6Smrg#define XvMCGetReq(name, req) \
186f03b1f6Smrg        WORD64ALIGN\
196f03b1f6Smrg	if ((dpy->bufptr + sizeof(xvmc##name##Req)) > dpy->bufmax)\
206f03b1f6Smrg		_XFlush(dpy);\
216f03b1f6Smrg	req = (xvmc##name##Req *)(dpy->last_req = dpy->bufptr);\
226f03b1f6Smrg	req->reqType = info->codes->major_opcode;\
236f03b1f6Smrg        req->xvmcReqType = xvmc_##name; \
246f03b1f6Smrg        req->length = sizeof(xvmc##name##Req)>>2;\
256f03b1f6Smrg	dpy->bufptr += sizeof(xvmc##name##Req);\
266f03b1f6Smrg	dpy->request++
276f03b1f6Smrg#else
286f03b1f6Smrg#define XvMCGetReq(name, req) \
296f03b1f6Smrg        WORD64ALIGN\
306f03b1f6Smrg	if ((dpy->bufptr + sizeof(xvmc/**/name/**/Req)) > dpy->bufmax)\
316f03b1f6Smrg		_XFlush(dpy);\
326f03b1f6Smrg	req = (xvmc/**/name/**/Req *)(dpy->last_req = dpy->bufptr);\
336f03b1f6Smrg	req->reqType = info->codes->major_opcode;\
346f03b1f6Smrg	req->xvmcReqType = xvmc_/**/name;\
356f03b1f6Smrg	req->length = sizeof(xvmc/**/name/**/Req)>>2;\
366f03b1f6Smrg	dpy->bufptr += sizeof(xvmc/**/name/**/Req);\
376f03b1f6Smrg	dpy->request++
386f03b1f6Smrg#endif
396f03b1f6Smrg
4098af18c5Smrg_XFUNCPROTOBEGIN
4198af18c5Smrg
4298af18c5SmrgStatus _xvmc_create_context(
4398af18c5Smrg    Display *		/* dpy */,
4498af18c5Smrg    XvMCContext *	/* context */,
4598af18c5Smrg    int *		/* priv_count */,
4698af18c5Smrg    CARD32 **		/* priv_data */
4798af18c5Smrg);
4898af18c5Smrg
4998af18c5SmrgStatus _xvmc_destroy_context(
5098af18c5Smrg    Display *		/* dpy */,
5198af18c5Smrg    XvMCContext *	/* context */
5298af18c5Smrg);
5398af18c5Smrg
5498af18c5SmrgStatus _xvmc_create_surface (
5598af18c5Smrg    Display *		/* dpy */,
5698af18c5Smrg    XvMCContext *	/* context */,
5798af18c5Smrg    XvMCSurface *	/* surface */,
5898af18c5Smrg    int *		/* priv_count */,
5998af18c5Smrg    CARD32 **		/* priv_data */
6098af18c5Smrg);
6198af18c5Smrg
6298af18c5SmrgStatus _xvmc_destroy_surface (
6398af18c5Smrg    Display *		/* dpy */,
6498af18c5Smrg    XvMCSurface *	/* surface */
6598af18c5Smrg);
6698af18c5Smrg
6798af18c5SmrgStatus _xvmc_create_subpicture (
6898af18c5Smrg    Display *		/* dpy */,
6998af18c5Smrg    XvMCContext *	/* context */,
7098af18c5Smrg    XvMCSubpicture *	/* subpicture */,
7198af18c5Smrg    int *		/* priv_count */,
7298af18c5Smrg    CARD32 **		/* priv_data */
7398af18c5Smrg);
7498af18c5Smrg
7598af18c5SmrgStatus _xvmc_destroy_subpicture(
7698af18c5Smrg    Display *		/* dpy */,
7798af18c5Smrg    XvMCSubpicture *	/* subpicture */
7898af18c5Smrg);
7998af18c5Smrg
8098af18c5Smrg_XFUNCPROTOEND
8198af18c5Smrg
826f03b1f6Smrg#endif /* XVMCLIBINT_H */
83