⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 glxapi.c

📁 Mesa is an open-source implementation of the OpenGL specification - a system for rendering interacti
💻 C
📖 第 1 页 / 共 3 页
字号:
/*** GLX_SGIX_swap_barrier ***/void PUBLICglXBindSwapBarrierSGIX(Display *dpy, GLXDrawable drawable, int barrier){   struct _glxapi_table *t;   GET_DISPATCH(dpy, t);   if (!t)      return;   (*t->BindSwapBarrierSGIX)(dpy, drawable, barrier);}Bool PUBLICglXQueryMaxSwapBarriersSGIX(Display *dpy, int screen, int *max){   struct _glxapi_table *t;   GET_DISPATCH(dpy, t);   if (!t)      return False;   return (*t->QueryMaxSwapBarriersSGIX)(dpy, screen, max);}/*** GLX_SUN_get_transparent_index ***/Status PUBLICglXGetTransparentIndexSUN(Display *dpy, Window overlay, Window underlay, long *pTransparent){   struct _glxapi_table *t;   GET_DISPATCH(dpy, t);   if (!t)      return False;   return (*t->GetTransparentIndexSUN)(dpy, overlay, underlay, pTransparent);}/*** GLX_MESA_copy_sub_buffer ***/void PUBLICglXCopySubBufferMESA(Display *dpy, GLXDrawable drawable, int x, int y, int width, int height){   struct _glxapi_table *t;   GET_DISPATCH(dpy, t);   if (!t)      return;   (t->CopySubBufferMESA)(dpy, drawable, x, y, width, height);}/*** GLX_MESA_release_buffers ***/Bool PUBLICglXReleaseBuffersMESA(Display *dpy, Window w){   struct _glxapi_table *t;   GET_DISPATCH(dpy, t);   if (!t)      return False;   return (t->ReleaseBuffersMESA)(dpy, w);}/*** GLX_MESA_pixmap_colormap ***/GLXPixmap PUBLICglXCreateGLXPixmapMESA(Display *dpy, XVisualInfo *visinfo, Pixmap pixmap, Colormap cmap){   struct _glxapi_table *t;   GET_DISPATCH(dpy, t);   if (!t)      return 0;   return (t->CreateGLXPixmapMESA)(dpy, visinfo, pixmap, cmap);}/*** GLX_MESA_set_3dfx_mode ***/Bool PUBLICglXSet3DfxModeMESA(int mode){   struct _glxapi_table *t;   Display *dpy = glXGetCurrentDisplay();   GET_DISPATCH(dpy, t);   if (!t)      return False;   return (t->Set3DfxModeMESA)(mode);}/*** GLX_NV_vertex_array_range ***/void PUBLIC *glXAllocateMemoryNV( GLsizei size,                     GLfloat readFrequency,                     GLfloat writeFrequency,                     GLfloat priority ){   struct _glxapi_table *t;   Display *dpy = glXGetCurrentDisplay();   GET_DISPATCH(dpy, t);   if (!t)      return NULL;   return (t->AllocateMemoryNV)(size, readFrequency, writeFrequency, priority);}void PUBLICglXFreeMemoryNV( GLvoid *pointer ){   struct _glxapi_table *t;   Display *dpy = glXGetCurrentDisplay();   GET_DISPATCH(dpy, t);   if (!t)      return;   (t->FreeMemoryNV)(pointer);}/*** GLX_MESA_agp_offset */GLuint PUBLICglXGetAGPOffsetMESA( const GLvoid *pointer ){   struct _glxapi_table *t;   Display *dpy = glXGetCurrentDisplay();   GET_DISPATCH(dpy, t);   if (!t)      return ~0;   return (t->GetAGPOffsetMESA)(pointer);}/*** GLX_MESA_allocate_memory */void *glXAllocateMemoryMESA(Display *dpy, int scrn, size_t size,                      float readfreq, float writefreq, float priority){   /* dummy */   return NULL;}voidglXFreeMemoryMESA(Display *dpy, int scrn, void *pointer){   /* dummy */}GLuintglXGetMemoryOffsetMESA(Display *dpy, int scrn, const void *pointer){   /* dummy */   return 0;}/*** GLX_EXT_texture_from_pixmap */voidglXBindTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer,                   const int *attrib_list){   struct _glxapi_table *t;   GET_DISPATCH(dpy, t);   if (t)      t->BindTexImageEXT(dpy, drawable, buffer, attrib_list);}voidglXReleaseTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer){   struct _glxapi_table *t;   GET_DISPATCH(dpy, t);   if (t)      t->ReleaseTexImageEXT(dpy, drawable, buffer);}/**********************************************************************//* GLX API management functions                                       *//**********************************************************************/const char *_glxapi_get_version(void){   return "1.3";}/* * Return array of extension strings. */const char **_glxapi_get_extensions(void){   static const char *extensions[] = {#ifdef GLX_EXT_import_context      "GLX_EXT_import_context",#endif#ifdef GLX_SGI_video_sync      "GLX_SGI_video_sync",#endif#ifdef GLX_MESA_copy_sub_buffer      "GLX_MESA_copy_sub_buffer",#endif#ifdef GLX_MESA_release_buffers      "GLX_MESA_release_buffers",#endif#ifdef GLX_MESA_pixmap_colormap      "GLX_MESA_pixmap_colormap",#endif#ifdef GLX_MESA_set_3dfx_mode      "GLX_MESA_set_3dfx_mode",#endif#ifdef GLX_SGIX_fbconfig      "GLX_SGIX_fbconfig",#endif#ifdef GLX_SGIX_pbuffer      "GLX_SGIX_pbuffer",#endif#ifdef GLX_EXT_texture_from_pixmap      "GLX_EXT_texture_from_pixmap",#endif      NULL   };   return extensions;}/* * Return size of the GLX dispatch table, in entries, not bytes. */GLuint_glxapi_get_dispatch_table_size(void){   return sizeof(struct _glxapi_table) / sizeof(void *);}static intgeneric_no_op_func(void){   return 0;}/* * Initialize all functions in given dispatch table to be no-ops */void_glxapi_set_no_op_table(struct _glxapi_table *t){   typedef int (*nop_func)(void);   nop_func *dispatch = (nop_func *) t;   GLuint n = _glxapi_get_dispatch_table_size();   GLuint i;   for (i = 0; i < n; i++) {      dispatch[i] = generic_no_op_func;   }}struct name_address_pair {   const char *Name;   __GLXextFuncPtr Address;};static struct name_address_pair GLX_functions[] = {   /*** GLX_VERSION_1_0 ***/   { "glXChooseVisual", (__GLXextFuncPtr) glXChooseVisual },   { "glXCopyContext", (__GLXextFuncPtr) glXCopyContext },   { "glXCreateContext", (__GLXextFuncPtr) glXCreateContext },   { "glXCreateGLXPixmap", (__GLXextFuncPtr) glXCreateGLXPixmap },   { "glXDestroyContext", (__GLXextFuncPtr) glXDestroyContext },   { "glXDestroyGLXPixmap", (__GLXextFuncPtr) glXDestroyGLXPixmap },   { "glXGetConfig", (__GLXextFuncPtr) glXGetConfig },   { "glXGetCurrentContext", (__GLXextFuncPtr) glXGetCurrentContext },   { "glXGetCurrentDrawable", (__GLXextFuncPtr) glXGetCurrentDrawable },   { "glXIsDirect", (__GLXextFuncPtr) glXIsDirect },   { "glXMakeCurrent", (__GLXextFuncPtr) glXMakeCurrent },   { "glXQueryExtension", (__GLXextFuncPtr) glXQueryExtension },   { "glXQueryVersion", (__GLXextFuncPtr) glXQueryVersion },   { "glXSwapBuffers", (__GLXextFuncPtr) glXSwapBuffers },   { "glXUseXFont", (__GLXextFuncPtr) glXUseXFont },   { "glXWaitGL", (__GLXextFuncPtr) glXWaitGL },   { "glXWaitX", (__GLXextFuncPtr) glXWaitX },   /*** GLX_VERSION_1_1 ***/   { "glXGetClientString", (__GLXextFuncPtr) glXGetClientString },   { "glXQueryExtensionsString", (__GLXextFuncPtr) glXQueryExtensionsString },   { "glXQueryServerString", (__GLXextFuncPtr) glXQueryServerString },   /*** GLX_VERSION_1_2 ***/   { "glXGetCurrentDisplay", (__GLXextFuncPtr) glXGetCurrentDisplay },   /*** GLX_VERSION_1_3 ***/   { "glXChooseFBConfig", (__GLXextFuncPtr) glXChooseFBConfig },   { "glXCreateNewContext", (__GLXextFuncPtr) glXCreateNewContext },   { "glXCreatePbuffer", (__GLXextFuncPtr) glXCreatePbuffer },   { "glXCreatePixmap", (__GLXextFuncPtr) glXCreatePixmap },   { "glXCreateWindow", (__GLXextFuncPtr) glXCreateWindow },   { "glXDestroyPbuffer", (__GLXextFuncPtr) glXDestroyPbuffer },   { "glXDestroyPixmap", (__GLXextFuncPtr) glXDestroyPixmap },   { "glXDestroyWindow", (__GLXextFuncPtr) glXDestroyWindow },   { "glXGetCurrentReadDrawable", (__GLXextFuncPtr) glXGetCurrentReadDrawable },   { "glXGetFBConfigAttrib", (__GLXextFuncPtr) glXGetFBConfigAttrib },   { "glXGetFBConfigs", (__GLXextFuncPtr) glXGetFBConfigs },   { "glXGetSelectedEvent", (__GLXextFuncPtr) glXGetSelectedEvent },   { "glXGetVisualFromFBConfig", (__GLXextFuncPtr) glXGetVisualFromFBConfig },   { "glXMakeContextCurrent", (__GLXextFuncPtr) glXMakeContextCurrent },   { "glXQueryContext", (__GLXextFuncPtr) glXQueryContext },   { "glXQueryDrawable", (__GLXextFuncPtr) glXQueryDrawable },   { "glXSelectEvent", (__GLXextFuncPtr) glXSelectEvent },   /*** GLX_VERSION_1_4 ***/   { "glXGetProcAddress", (__GLXextFuncPtr) glXGetProcAddress },   /*** GLX_SGI_swap_control ***/   { "glXSwapIntervalSGI", (__GLXextFuncPtr) glXSwapIntervalSGI },   /*** GLX_SGI_video_sync ***/   { "glXGetVideoSyncSGI", (__GLXextFuncPtr) glXGetVideoSyncSGI },   { "glXWaitVideoSyncSGI", (__GLXextFuncPtr) glXWaitVideoSyncSGI },   /*** GLX_SGI_make_current_read ***/   { "glXMakeCurrentReadSGI", (__GLXextFuncPtr) glXMakeCurrentReadSGI },   { "glXGetCurrentReadDrawableSGI", (__GLXextFuncPtr) glXGetCurrentReadDrawableSGI },   /*** GLX_SGIX_video_source ***/#if defined(_VL_H)   { "glXCreateGLXVideoSourceSGIX", (__GLXextFuncPtr) glXCreateGLXVideoSourceSGIX },   { "glXDestroyGLXVideoSourceSGIX", (__GLXextFuncPtr) glXDestroyGLXVideoSourceSGIX },#endif   /*** GLX_EXT_import_context ***/   { "glXFreeContextEXT", (__GLXextFuncPtr) glXFreeContextEXT },   { "glXGetContextIDEXT", (__GLXextFuncPtr) glXGetContextIDEXT },   { "glXGetCurrentDisplayEXT", (__GLXextFuncPtr) glXGetCurrentDisplayEXT },   { "glXImportContextEXT", (__GLXextFuncPtr) glXImportContextEXT },   { "glXQueryContextInfoEXT", (__GLXextFuncPtr) glXQueryContextInfoEXT },   /*** GLX_SGIX_fbconfig ***/   { "glXGetFBConfigAttribSGIX", (__GLXextFuncPtr) glXGetFBConfigAttribSGIX },   { "glXChooseFBConfigSGIX", (__GLXextFuncPtr) glXChooseFBConfigSGIX },   { "glXCreateGLXPixmapWithConfigSGIX", (__GLXextFuncPtr) glXCreateGLXPixmapWithConfigSGIX },   { "glXCreateContextWithConfigSGIX", (__GLXextFuncPtr) glXCreateContextWithConfigSGIX },   { "glXGetVisualFromFBConfigSGIX", (__GLXextFuncPtr) glXGetVisualFromFBConfigSGIX },   { "glXGetFBConfigFromVisualSGIX", (__GLXextFuncPtr) glXGetFBConfigFromVisualSGIX },   /*** GLX_SGIX_pbuffer ***/   { "glXCreateGLXPbufferSGIX", (__GLXextFuncPtr) glXCreateGLXPbufferSGIX },   { "glXDestroyGLXPbufferSGIX", (__GLXextFuncPtr) glXDestroyGLXPbufferSGIX },   { "glXQueryGLXPbufferSGIX", (__GLXextFuncPtr) glXQueryGLXPbufferSGIX },   { "glXSelectEventSGIX", (__GLXextFuncPtr) glXSelectEventSGIX },   { "glXGetSelectedEventSGIX", (__GLXextFuncPtr) glXGetSelectedEventSGIX },   /*** GLX_SGI_cushion ***/   { "glXCushionSGI", (__GLXextFuncPtr) glXCushionSGI },   /*** GLX_SGIX_video_resize ***/   { "glXBindChannelToWindowSGIX", (__GLXextFuncPtr) glXBindChannelToWindowSGIX },   { "glXChannelRectSGIX", (__GLXextFuncPtr) glXChannelRectSGIX },   { "glXQueryChannelRectSGIX", (__GLXextFuncPtr) glXQueryChannelRectSGIX },   { "glXQueryChannelDeltasSGIX", (__GLXextFuncPtr) glXQueryChannelDeltasSGIX },   { "glXChannelRectSyncSGIX", (__GLXextFuncPtr) glXChannelRectSyncSGIX },   /*** GLX_SGIX_dmbuffer **/#if defined(_DM_BUFFER_H_)   { "glXAssociateDMPbufferSGIX", (__GLXextFuncPtr) glXAssociateDMPbufferSGIX },#endif   /*** GLX_SGIX_swap_group ***/   { "glXJoinSwapGroupSGIX", (__GLXextFuncPtr) glXJoinSwapGroupSGIX },   /*** GLX_SGIX_swap_barrier ***/   { "glXBindSwapBarrierSGIX", (__GLXextFuncPtr) glXBindSwapBarrierSGIX },   { "glXQueryMaxSwapBarriersSGIX", (__GLXextFuncPtr) glXQueryMaxSwapBarriersSGIX },   /*** GLX_SUN_get_transparent_index ***/   { "glXGetTransparentIndexSUN", (__GLXextFuncPtr) glXGetTransparentIndexSUN },   /*** GLX_MESA_copy_sub_buffer ***/   { "glXCopySubBufferMESA", (__GLXextFuncPtr) glXCopySubBufferMESA },   /*** GLX_MESA_pixmap_colormap ***/   { "glXCreateGLXPixmapMESA", (__GLXextFuncPtr) glXCreateGLXPixmapMESA },   /*** GLX_MESA_release_buffers ***/   { "glXReleaseBuffersMESA", (__GLXextFuncPtr) glXReleaseBuffersMESA },   /*** GLX_MESA_set_3dfx_mode ***/   { "glXSet3DfxModeMESA", (__GLXextFuncPtr) glXSet3DfxModeMESA },   /*** GLX_ARB_get_proc_address ***/   { "glXGetProcAddressARB", (__GLXextFuncPtr) glXGetProcAddressARB },   /*** GLX_NV_vertex_array_range ***/   { "glXAllocateMemoryNV", (__GLXextFuncPtr) glXAllocateMemoryNV },   { "glXFreeMemoryNV", (__GLXextFuncPtr) glXFreeMemoryNV },   /*** GLX_MESA_agp_offset ***/   { "glXGetAGPOffsetMESA", (__GLXextFuncPtr) glXGetAGPOffsetMESA },   /*** GLX_MESA_allocate_memory ***/   { "glXAllocateMemoryMESA", (__GLXextFuncPtr) glXAllocateMemoryMESA },   { "glXFreeMemoryMESA", (__GLXextFuncPtr) glXFreeMemoryMESA },   { "glXGetMemoryOffsetMESA", (__GLXextFuncPtr) glXGetMemoryOffsetMESA },   /*** GLX_EXT_texture_from_pixmap ***/   { "glXBindTexImageEXT", (__GLXextFuncPtr) glXBindTexImageEXT },   { "glXReleaseTexImageEXT", (__GLXextFuncPtr) glXReleaseTexImageEXT },   { NULL, NULL }   /* end of list */};/* * Return address of named glX function, or NULL if not found. */__GLXextFuncPtr_glxapi_get_proc_address(const char *funcName){   GLuint i;   for (i = 0; GLX_functions[i].Name; i++) {      if (strcmp(GLX_functions[i].Name, funcName) == 0)         return GLX_functions[i].Address;   }   return NULL;}/* * This function does not get dispatched through the dispatch table * since it's really a "meta" function. */__GLXextFuncPtrglXGetProcAddressARB(const GLubyte *procName){   __GLXextFuncPtr f;   f = _glxapi_get_proc_address((const char *) procName);   if (f) {      return f;   }   f = (__GLXextFuncPtr) _glapi_get_proc_address((const char *) procName);   return f;}/* GLX 1.4 */void (*glXGetProcAddress(const GLubyte *procName))(){   return glXGetProcAddressARB(procName);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -