15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copyright © 2007,2008 Red Hat, Inc.
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Permission is hereby granted, free of charge, to any person obtaining a
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * copy of this software and associated documentation files (the "Soft-
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * ware"), to deal in the Software without restriction, including without
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * limitation the rights to use, copy, modify, merge, publish, distribute,
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * and/or sell copies of the Software, and to permit persons to whom the
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Software is furnished to do so, provided that the above copyright
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * notice(s) and this permission notice appear in all copies of the Soft-
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * ware and that both the above copyright notice(s) and this permission
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * notice appear in supporting documentation.
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE-
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR-
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * MANCE OF THIS SOFTWARE.
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Except as contained in this notice, the name of a copyright holder shall
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * not be used in advertising or otherwise to promote the sale, use or
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * other dealings in this Software without prior written authorization of
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the copyright holder.
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Authors:
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   Kristian Høgsberg (krh@redhat.com)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef _VA_DRI2_H_
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _VA_DRI2_H_
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <X11/Xproto.h>
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <X11/extensions/Xfixes.h>
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <X11/Xfuncproto.h>
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <xf86drm.h>
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct {
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    unsigned int attachment;
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    unsigned int name;
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    unsigned int pitch;
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    unsigned int cpp;
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    unsigned int flags;
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} VA_DRI2Buffer;
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern Bool
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)VA_DRI2QueryExtension(Display *display, int *eventBase, int *errorBase);
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern Bool
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)VA_DRI2QueryVersion(Display *display, int *major, int *minor);
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern Bool
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)VA_DRI2Connect(Display *display, XID window,
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    char **driverName, char **deviceName);
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern Bool
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)VA_DRI2Authenticate(Display *display, XID window, drm_magic_t magic);
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern void
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)VA_DRI2CreateDrawable(Display *display, XID drawable);
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern void
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)VA_DRI2DestroyDrawable(Display *display, XID handle);
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern VA_DRI2Buffer *
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)VA_DRI2GetBuffers(Display *dpy, XID drawable,
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	       int *width, int *height,
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	       unsigned int *attachments, int count,
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	       int *outCount);
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern void
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)VA_DRI2CopyRegion(Display *dpy, XID drawable, XserverRegion region,
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                  CARD32 dest, CARD32 src);
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern void
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)VA_DRI2SwapBuffers(Display *dpy, XID drawable, CARD64 target_msc, CARD64 divisor,
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                   CARD64 remainder, CARD64 *count);
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
74