16f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul/* 26f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * Mesa 3-D graphics library 3be2de8b299c9fc7bdc22372ed799e894a8582c62Brian Paul * Version: 6.3 46f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * 5be2de8b299c9fc7bdc22372ed799e894a8582c62Brian Paul * Copyright (C) 1999-2004 Brian Paul All Rights Reserved. 66f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * 76f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * Permission is hereby granted, free of charge, to any person obtaining a 86f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * copy of this software and associated documentation files (the "Software"), 96f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * to deal in the Software without restriction, including without limitation 106f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * the rights to use, copy, modify, merge, publish, distribute, sublicense, 116f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * and/or sell copies of the Software, and to permit persons to whom the 126f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * Software is furnished to do so, subject to the following conditions: 136f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * 146f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * The above copyright notice and this permission notice shall be included 156f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * in all copies or substantial portions of the Software. 166f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * 176f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 186f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 196f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 206f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 216f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 226f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 236f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul */ 246f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 256f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 266f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul#ifndef _glxapi_h_ 276f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul#define _glxapi_h_ 286f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 296f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 304536021a62e02fceaa6e8eb889b0f61743109cc4Brian Paul#define GLX_GLXEXT_PROTOTYPES 316f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul#include "GL/glx.h" 326f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 336f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 341d822ea8cfa765802fe63b1a5d8d2bd83118007fBrian Paul/* The GLX API dispatcher (i.e. this code) is being built into stand-alone 351d822ea8cfa765802fe63b1a5d8d2bd83118007fBrian Paul * Mesa. We don't know anything about XFree86 or real GLX so we define a 361d822ea8cfa765802fe63b1a5d8d2bd83118007fBrian Paul * minimal __GLXContextRec here so some of the functions in this file can 371d822ea8cfa765802fe63b1a5d8d2bd83118007fBrian Paul * work properly. 381d822ea8cfa765802fe63b1a5d8d2bd83118007fBrian Paul */ 397cf50e137da497a590ec9001a9918972a6246142Brian Paultypedef struct __GLXcontextRec { 407cf50e137da497a590ec9001a9918972a6246142Brian Paul Display *currentDpy; 417cf50e137da497a590ec9001a9918972a6246142Brian Paul GLboolean isDirect; 427cf50e137da497a590ec9001a9918972a6246142Brian Paul GLXDrawable currentDrawable; 437cf50e137da497a590ec9001a9918972a6246142Brian Paul GLXDrawable currentReadable; 447cf50e137da497a590ec9001a9918972a6246142Brian Paul XID xid; 457cf50e137da497a590ec9001a9918972a6246142Brian Paul} __GLXcontext; 467cf50e137da497a590ec9001a9918972a6246142Brian Paul 477cf50e137da497a590ec9001a9918972a6246142Brian Paul 486f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul/* 496f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * Almost all the GLX API functions get routed through this dispatch table. 506f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * The exceptions are the glXGetCurrentXXX() functions. 516f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * 526f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * This dispatch table allows multiple GLX client-side modules to coexist. 536f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * Specifically, a real GLX library (like SGI's or the Utah GLX) and Mesa's 546f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * pseudo-GLX can be present at the same time. The former being used on 556f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul * GLX-enabled X servers and the later on non-GLX X servers. 56783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul * 571d822ea8cfa765802fe63b1a5d8d2bd83118007fBrian Paul * Red Hat has been using this since Red Hat Linux 7.0 (I think). 581d822ea8cfa765802fe63b1a5d8d2bd83118007fBrian Paul * This'll be a standard feature in XFree86 4.3. It basically allows one 591d822ea8cfa765802fe63b1a5d8d2bd83118007fBrian Paul * libGL to do both DRI-rendering and "fake GLX" rendering to X displays 601d822ea8cfa765802fe63b1a5d8d2bd83118007fBrian Paul * that lack the GLX extension. 616f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul */ 626f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paulstruct _glxapi_table { 63b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_VERSION_1_0 ***/ 646f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul XVisualInfo *(*ChooseVisual)(Display *dpy, int screen, int *list); 653994b77bab8c62a4c1a4dffdfba233ef46662b99Brian Paul void (*CopyContext)(Display *dpy, GLXContext src, GLXContext dst, unsigned long mask); 666f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul GLXContext (*CreateContext)(Display *dpy, XVisualInfo *visinfo, GLXContext shareList, Bool direct); 676f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul GLXPixmap (*CreateGLXPixmap)(Display *dpy, XVisualInfo *visinfo, Pixmap pixmap); 686f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul void (*DestroyContext)(Display *dpy, GLXContext ctx); 696f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul void (*DestroyGLXPixmap)(Display *dpy, GLXPixmap pixmap); 706f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul int (*GetConfig)(Display *dpy, XVisualInfo *visinfo, int attrib, int *value); 716f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul /*GLXContext (*GetCurrentContext)(void);*/ 726f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul /*GLXDrawable (*GetCurrentDrawable)(void);*/ 736f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul Bool (*IsDirect)(Display *dpy, GLXContext ctx); 746f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul Bool (*MakeCurrent)(Display *dpy, GLXDrawable drawable, GLXContext ctx); 756f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul Bool (*QueryExtension)(Display *dpy, int *errorb, int *event); 766f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul Bool (*QueryVersion)(Display *dpy, int *maj, int *min); 776f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul void (*SwapBuffers)(Display *dpy, GLXDrawable drawable); 786f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul void (*UseXFont)(Font font, int first, int count, int listBase); 796f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul void (*WaitGL)(void); 806f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul void (*WaitX)(void); 816f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 82b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_VERSION_1_1 ***/ 836f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul const char *(*GetClientString)(Display *dpy, int name); 846f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul const char *(*QueryExtensionsString)(Display *dpy, int screen); 856f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul const char *(*QueryServerString)(Display *dpy, int screen, int name); 866f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 87b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_VERSION_1_2 ***/ 886f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul /*Display *(*GetCurrentDisplay)(void);*/ 896f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 90b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_VERSION_1_3 ***/ 915605798e56ca6e9f968623f33b58ee7ca90594afBrian Paul GLXFBConfig *(*ChooseFBConfig)(Display *dpy, int screen, const int *attribList, int *nitems); 926f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul GLXContext (*CreateNewContext)(Display *dpy, GLXFBConfig config, int renderType, GLXContext shareList, Bool direct); 936f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul GLXPbuffer (*CreatePbuffer)(Display *dpy, GLXFBConfig config, const int *attribList); 946f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul GLXPixmap (*CreatePixmap)(Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attribList); 956f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul GLXWindow (*CreateWindow)(Display *dpy, GLXFBConfig config, Window win, const int *attribList); 966f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul void (*DestroyPbuffer)(Display *dpy, GLXPbuffer pbuf); 976f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul void (*DestroyPixmap)(Display *dpy, GLXPixmap pixmap); 986f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul void (*DestroyWindow)(Display *dpy, GLXWindow window); 996f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul /*GLXDrawable (*GetCurrentReadDrawable)(void);*/ 1006f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul int (*GetFBConfigAttrib)(Display *dpy, GLXFBConfig config, int attribute, int *value); 1015605798e56ca6e9f968623f33b58ee7ca90594afBrian Paul GLXFBConfig *(*GetFBConfigs)(Display *dpy, int screen, int *nelements); 1026f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul void (*GetSelectedEvent)(Display *dpy, GLXDrawable drawable, unsigned long *mask); 1036f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul XVisualInfo *(*GetVisualFromFBConfig)(Display *dpy, GLXFBConfig config); 1046f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul Bool (*MakeContextCurrent)(Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); 1056f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul int (*QueryContext)(Display *dpy, GLXContext ctx, int attribute, int *value); 1066f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul void (*QueryDrawable)(Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); 1076f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul void (*SelectEvent)(Display *dpy, GLXDrawable drawable, unsigned long mask); 1086f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 109b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_SGI_swap_control ***/ 110783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul int (*SwapIntervalSGI)(int); 111783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul 112b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_SGI_video_sync ***/ 113783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul int (*GetVideoSyncSGI)(unsigned int *count); 114783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul int (*WaitVideoSyncSGI)(int divisor, int remainder, unsigned int *count); 115783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul 116b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_SGI_make_current_read ***/ 117783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul Bool (*MakeCurrentReadSGI)(Display *, GLXDrawable, GLXDrawable, GLXContext); 1187cf50e137da497a590ec9001a9918972a6246142Brian Paul /*GLXDrawable (*GetCurrentReadDrawableSGI)(void);*/ 119783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul 120b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_SGIX_video_source (needs video library) ***/ 121b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul#if defined(_VL_H_) 122783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul GLXVideoSourceSGIX (*CreateGLXVideoSourceSGIX)(Display *, int, VLServer, VLPath, int, VLNode); 123783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul void (*DestroyGLXVideoSourceSGIX)(Display *, GLXVideoSourceSGIX); 124b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul#else 125b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul void *CreateGLXVideoSourceSGIX; 126b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul void *DestroyGLXVideoSourceSGIX; 127783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul#endif 128783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul 129b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_EXT_import_context ***/ 1306f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul void (*FreeContextEXT)(Display *dpy, GLXContext context); 1316f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul GLXContextID (*GetContextIDEXT)(const GLXContext context); 1327cf50e137da497a590ec9001a9918972a6246142Brian Paul /*Display *(*GetCurrentDisplayEXT)(void);*/ 1336f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul GLXContext (*ImportContextEXT)(Display *dpy, GLXContextID contextID); 1346f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul int (*QueryContextInfoEXT)(Display *dpy, GLXContext context, int attribute,int *value); 1356f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 136b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_SGIX_fbconfig ***/ 137783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul int (*GetFBConfigAttribSGIX)(Display *, GLXFBConfigSGIX, int, int *); 138783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul GLXFBConfigSGIX * (*ChooseFBConfigSGIX)(Display *, int, int *, int *); 139783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul GLXPixmap (*CreateGLXPixmapWithConfigSGIX)(Display *, GLXFBConfigSGIX, Pixmap); 140783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul GLXContext (*CreateContextWithConfigSGIX)(Display *, GLXFBConfigSGIX, int, GLXContext, Bool); 141783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul XVisualInfo * (*GetVisualFromFBConfigSGIX)(Display *, GLXFBConfigSGIX); 142783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul GLXFBConfigSGIX (*GetFBConfigFromVisualSGIX)(Display *, XVisualInfo *); 143783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul 144b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_SGIX_pbuffer ***/ 145783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul GLXPbufferSGIX (*CreateGLXPbufferSGIX)(Display *, GLXFBConfigSGIX, unsigned int, unsigned int, int *); 146783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul void (*DestroyGLXPbufferSGIX)(Display *, GLXPbufferSGIX); 147783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul int (*QueryGLXPbufferSGIX)(Display *, GLXPbufferSGIX, int, unsigned int *); 148783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul void (*SelectEventSGIX)(Display *, GLXDrawable, unsigned long); 149783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul void (*GetSelectedEventSGIX)(Display *, GLXDrawable, unsigned long *); 150783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul 151b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_SGI_cushion ***/ 152783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul void (*CushionSGI)(Display *, Window, float); 1536f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 154b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_SGIX_video_resize ***/ 1554536021a62e02fceaa6e8eb889b0f61743109cc4Brian Paul int (*BindChannelToWindowSGIX)(Display *, int, int, Window); 1564536021a62e02fceaa6e8eb889b0f61743109cc4Brian Paul int (*ChannelRectSGIX)(Display *, int, int, int, int, int, int); 1574536021a62e02fceaa6e8eb889b0f61743109cc4Brian Paul int (*QueryChannelRectSGIX)(Display *, int, int, int *, int *, int *, int *); 1584536021a62e02fceaa6e8eb889b0f61743109cc4Brian Paul int (*QueryChannelDeltasSGIX)(Display *, int, int, int *, int *, int *, int *); 1594536021a62e02fceaa6e8eb889b0f61743109cc4Brian Paul int (*ChannelRectSyncSGIX)(Display *, int, int, GLenum); 1604536021a62e02fceaa6e8eb889b0f61743109cc4Brian Paul 161b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_SGIX_dmbuffer (needs dmedia library) ***/ 162b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul#if defined (_DM_BUFFER_H_) 163783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul Bool (*AssociateDMPbufferSGIX)(Display *, GLXPbufferSGIX, DMparams *, DMbuffer); 164b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul#else 165b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul void *AssociciateDMPbufferSGIX; 1664536021a62e02fceaa6e8eb889b0f61743109cc4Brian Paul#endif 1674536021a62e02fceaa6e8eb889b0f61743109cc4Brian Paul 168b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_SGIX_swap_group ***/ 169783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul void (*JoinSwapGroupSGIX)(Display *, GLXDrawable, GLXDrawable); 170783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul 171b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_SGIX_swap_barrier ***/ 172783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul void (*BindSwapBarrierSGIX)(Display *, GLXDrawable, int); 173783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul Bool (*QueryMaxSwapBarriersSGIX)(Display *, int, int *); 1744536021a62e02fceaa6e8eb889b0f61743109cc4Brian Paul 175b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_SUN_get_transparent_index ***/ 176783d7dfcbf40f727c85915b3e5ea5ff6682eaa48Brian Paul Status (*GetTransparentIndexSUN)(Display *, Window, Window, long *); 1776f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 178b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_MESA_copy_sub_buffer ***/ 1796f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul void (*CopySubBufferMESA)(Display *dpy, GLXDrawable drawable, int x, int y, int width, int height); 1806f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 181b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_MESA_release_buffers ***/ 1826f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul Bool (*ReleaseBuffersMESA)(Display *dpy, Window w); 1836f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 184b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_MESA_pixmap_colormap ***/ 1856f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul GLXPixmap (*CreateGLXPixmapMESA)(Display *dpy, XVisualInfo *visinfo, Pixmap pixmap, Colormap cmap); 1866f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 187b0bb4f6226a18e0a6eb40046c7f7b5a841c75edaBrian Paul /*** GLX_MESA_set_3dfx_mode ***/ 1884536021a62e02fceaa6e8eb889b0f61743109cc4Brian Paul Bool (*Set3DfxModeMESA)(int mode); 1896f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 190d3f6b0559f1465fa87b67e2e7f47e7ea9e95450fBrian Paul /*** GLX_NV_vertex_array_range ***/ 1918fefafa2200d3ea44ec46592b190654a10685b46Brian Paul void * (*AllocateMemoryNV)( GLsizei size, 1928fefafa2200d3ea44ec46592b190654a10685b46Brian Paul GLfloat readFrequency, 1938fefafa2200d3ea44ec46592b190654a10685b46Brian Paul GLfloat writeFrequency, 1948fefafa2200d3ea44ec46592b190654a10685b46Brian Paul GLfloat priority ); 1958fefafa2200d3ea44ec46592b190654a10685b46Brian Paul void (*FreeMemoryNV)( GLvoid *pointer ); 196d3f6b0559f1465fa87b67e2e7f47e7ea9e95450fBrian Paul 197d3f6b0559f1465fa87b67e2e7f47e7ea9e95450fBrian Paul /*** GLX_MESA_agp_offset ***/ 198d3f6b0559f1465fa87b67e2e7f47e7ea9e95450fBrian Paul GLuint (*GetAGPOffsetMESA)( const GLvoid *pointer ); 199fd54564f78d4aeae2c39ada7502ec659c14b3ecaBrian 200fd54564f78d4aeae2c39ada7502ec659c14b3ecaBrian /*** GLX_EXT_texture_from_pixmap ***/ 201fd54564f78d4aeae2c39ada7502ec659c14b3ecaBrian void (*BindTexImageEXT)(Display *dpy, GLXDrawable drawable, int buffer, 202fd54564f78d4aeae2c39ada7502ec659c14b3ecaBrian const int *attrib_list); 203fd54564f78d4aeae2c39ada7502ec659c14b3ecaBrian void (*ReleaseTexImageEXT)(Display *dpy, GLXDrawable drawable, int buffer); 2046f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul}; 2056f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 2066f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 2076f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 2086f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paulextern const char * 2096f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul_glxapi_get_version(void); 2106f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 2116f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 2126f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paulextern const char ** 2136f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul_glxapi_get_extensions(void); 2146f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 2156f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 2166f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paulextern GLuint 2176f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul_glxapi_get_dispatch_table_size(void); 2186f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 2196f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 2206f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paulextern void 2216f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul_glxapi_set_no_op_table(struct _glxapi_table *t); 2226f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 2236f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 224be2de8b299c9fc7bdc22372ed799e894a8582c62Brian Paulextern __GLXextFuncPtr 2256f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul_glxapi_get_proc_address(const char *funcName); 2266f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 2276f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul 2286f2311270cb30c74dc705c6e981f35bbf31ddb96Brian Paul#endif 229