fakedri_drv.h revision 9a4748c9b04aa33bb54066d49bd27d4c9f0cf33e
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync/* $Id$ */
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync/** @file
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync *
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync * VirtualBox guest OpenGL DRI header
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync */
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync/*
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync * Copyright (C) 2009 Sun Microsystems, Inc.
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync *
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync * Sun Microsystems, Inc. confidential
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync * All rights reserved
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync */
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync#ifndef ___CROPENGL_FAKEDRIDRV_H
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync#define ___CROPENGL_FAKEDRIDRV_H
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync#include "src/mesa/main/mtypes.h"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync#include "src/mesa/main/dd.h"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync#include "src/mesa/glapi/dispatch.h"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync#include "src/mesa/glapi/glapi.h"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync#include "src/mesa/glapi/glapitable.h"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync#include "src/mesa/glapi/glapioffsets.h"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync#include "src/mesa/drivers/dri/common/dri_util.h"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync#include "GL/internal/dri_interface.h"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync#include "glx_proto.h"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync#ifdef VBOX_OGL_GLX_USE_CSTUBS
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync# include "dri_glx.h"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync#endif
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsynctypedef struct _vbox_glxapi_table
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync{
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync #define GLXAPI_ENTRY(Func) PGLXFUNC_##Func Func;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync #include "fakedri_glxfuncsList.h"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync #undef GLXAPI_ENTRY
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync} fakedri_glxapi_table;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern fakedri_glxapi_table glxim;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync#ifdef VBOX_OGL_GLX_USE_CSTUBS
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync/* Extern declarations for our C stubs */
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern void VBOXGLXENTRYTAG(glXFreeMemoryMESA)(Display *dpy, int scrn, void *pointer) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern GLXContext VBOXGLXENTRYTAG(glXImportContextEXT)(Display *dpy, GLXContextID contextID) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern GLXContextID VBOXGLXENTRYTAG(glXGetContextIDEXT)(const GLXContext ctx) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern Bool VBOXGLXENTRYTAG(glXMakeCurrentReadSGI)(Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern Display * VBOXGLXENTRYTAG(glXGetCurrentDisplayEXT)(void) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern void VBOXGLXENTRYTAG(glXFreeContextEXT)(Display *dpy, GLXContext ctx) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern int VBOXGLXENTRYTAG(glXQueryContextInfoEXT)(Display *dpy, GLXContext ctx) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern void * VBOXGLXENTRYTAG(glXAllocateMemoryMESA)(Display *dpy, int scrn,
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync size_t size, float readFreq,
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync float writeFreq, float priority);
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern GLuint VBOXGLXENTRYTAG(glXGetMemoryOffsetMESA)(Display *dpy, int scrn, const void *pointer ) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern GLXPixmap VBOXGLXENTRYTAG(glXCreateGLXPixmapMESA)(Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern void VBOXGLXENTRYTAG(glXCopyContext)( Display *dpy, GLXContext src, GLXContext dst, unsigned long mask);
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern void VBOXGLXENTRYTAG(glXUseXFont)(Font font, int first, int count, int listBase) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern CR_GLXFuncPtr VBOXGLXENTRYTAG(glXGetProcAddress)(const GLubyte *name) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern Bool VBOXGLXENTRYTAG(glXQueryExtension)(Display *dpy, int *errorBase, int *eventBase) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern Bool VBOXGLXENTRYTAG(glXIsDirect)(Display *dpy, GLXContext ctx) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern GLXPixmap VBOXGLXENTRYTAG(glXCreateGLXPixmap)(Display *dpy, XVisualInfo *vis, Pixmap pixmap) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern void VBOXGLXENTRYTAG(glXSwapBuffers)(Display *dpy, GLXDrawable drawable) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern GLXDrawable VBOXGLXENTRYTAG(glXGetCurrentDrawable)(void) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern void VBOXGLXENTRYTAG(glXWaitGL)(void) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern Display * VBOXGLXENTRYTAG(glXGetCurrentDisplay)(void) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern const char * VBOXGLXENTRYTAG(glXQueryServerString)(Display *dpy, int screen, int name) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern GLXContext VBOXGLXENTRYTAG(glXCreateContext)(Display *dpy, XVisualInfo *vis, GLXContext share, Bool direct) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern int VBOXGLXENTRYTAG(glXGetConfig)(Display *dpy, XVisualInfo *vis, int attrib, int *value) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern void VBOXGLXENTRYTAG(glXWaitX)(void) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern GLXContext VBOXGLXENTRYTAG(glXGetCurrentContext)(void) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern const char * VBOXGLXENTRYTAG(glXGetClientString)(Display *dpy, int name) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern Bool VBOXGLXENTRYTAG(glXMakeCurrent)(Display *dpy, GLXDrawable drawable, GLXContext ctx) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern void VBOXGLXENTRYTAG(glXDestroyContext)(Display *dpy, GLXContext ctx) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern CR_GLXFuncPtr VBOXGLXENTRYTAG(glXGetProcAddressARB)(const GLubyte *name) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern void VBOXGLXENTRYTAG(glXDestroyGLXPixmap)(Display *dpy, GLXPixmap pix) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern Bool VBOXGLXENTRYTAG(glXQueryVersion)(Display *dpy, int *major, int *minor) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern XVisualInfo * VBOXGLXENTRYTAG(glXChooseVisual)(Display *dpy, int screen, int *attribList) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern const char * VBOXGLXENTRYTAG(glXQueryExtensionsString)(Display *dpy, int screen) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern GLXPbufferSGIX VBOXGLXENTRYTAG(glXCreateGLXPbufferSGIX)(Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list);
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern int VBOXGLXENTRYTAG(glXQueryGLXPbufferSGIX)(Display *dpy, GLXPbuffer pbuf, int attribute, unsigned int *value);
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern GLXFBConfigSGIX * VBOXGLXENTRYTAG(glXChooseFBConfigSGIX)(Display *dpy, int screen, int *attrib_list, int *nelements);
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern void VBOXGLXENTRYTAG(glXDestroyGLXPbufferSGIX)(Display *dpy, GLXPbuffer pbuf) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern void VBOXGLXENTRYTAG(glXSelectEventSGIX)(Display *dpy, GLXDrawable drawable, unsigned long mask) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern void VBOXGLXENTRYTAG(glXGetSelectedEventSGIX)(Display *dpy, GLXDrawable drawable, unsigned long *mask) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern GLXFBConfigSGIX VBOXGLXENTRYTAG(glXGetFBConfigFromVisualSGIX)(Display *dpy, XVisualInfo *vis) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern XVisualInfo * VBOXGLXENTRYTAG(glXGetVisualFromFBConfigSGIX)(Display *dpy, GLXFBConfig config) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern GLXContext VBOXGLXENTRYTAG(glXCreateContextWithConfigSGIX)(Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern GLXPixmap VBOXGLXENTRYTAG(glXCreateGLXPixmapWithConfigSGIX)(Display *dpy, GLXFBConfig config, Pixmap pixmap) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern int VBOXGLXENTRYTAG(glXGetFBConfigAttribSGIX)(Display *dpy, GLXFBConfig config, int attribute, int *value) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern GLXFBConfig * VBOXGLXENTRYTAG(glXChooseFBConfig)(Display *dpy, int screen, ATTRIB_TYPE *attrib_list, int *nelements) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern GLXPbuffer VBOXGLXENTRYTAG(glXCreatePbuffer)(Display *dpy, GLXFBConfig config, ATTRIB_TYPE *attrib_list) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern GLXPixmap VBOXGLXENTRYTAG(glXCreatePixmap)(Display *dpy, GLXFBConfig config, Pixmap pixmap, const ATTRIB_TYPE *attrib_list) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern GLXWindow VBOXGLXENTRYTAG(glXCreateWindow)(Display *dpy, GLXFBConfig config, Window win, ATTRIB_TYPE *attrib_list) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern GLXContext VBOXGLXENTRYTAG(glXCreateNewContext)(Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern void VBOXGLXENTRYTAG(glXDestroyPbuffer)(Display *dpy, GLXPbuffer pbuf) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern void VBOXGLXENTRYTAG(glXDestroyPixmap)(Display *dpy, GLXPixmap pixmap) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern void VBOXGLXENTRYTAG(glXDestroyWindow)(Display *dpy, GLXWindow win) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern GLXDrawable VBOXGLXENTRYTAG(glXGetCurrentReadDrawable)(void) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern int VBOXGLXENTRYTAG(glXGetFBConfigAttrib)(Display *dpy, GLXFBConfig config, int attribute, int *value) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern GLXFBConfig * VBOXGLXENTRYTAG(glXGetFBConfigs)(Display *dpy, int screen, int *nelements) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern void VBOXGLXENTRYTAG(glXGetSelectedEvent)(Display *dpy, GLXDrawable draw, unsigned long *event_mask) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern XVisualInfo * VBOXGLXENTRYTAG(glXGetVisualFromFBConfig)(Display *dpy, GLXFBConfig config) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern Bool VBOXGLXENTRYTAG(glXMakeContextCurrent)(Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern int VBOXGLXENTRYTAG(glXQueryContext)(Display *dpy, GLXContext ctx, int attribute, int *value) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern void VBOXGLXENTRYTAG(glXQueryDrawable)(Display *dpy, GLXDrawable draw, int attribute, unsigned int *value) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsyncextern void VBOXGLXENTRYTAG(glXSelectEvent)(Display *dpy, GLXDrawable draw, unsigned long event_mask) ;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync#else
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync/* Extern declarations for our asm stubs */
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync# define GLXAPI_ENTRY(Func) \
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync extern void vbox_glX##Func;\
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync extern void vbox_glX##Func##_EndProc;
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync# include "fakedri_glxfuncsList.h"
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync# undef GLXAPI_ENTRY
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync#endif
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync#endif /* ___CROPENGL_FAKEDRIDRV_H */
9a4748c9b04aa33bb54066d49bd27d4c9f0cf33evboxsync