diff --git a/doc/glxew.html b/doc/glxew.html index e77d514..5719646 100644 --- a/doc/glxew.html +++ b/doc/glxew.html @@ -150,37 +150,38 @@ THE POSSIBILITY OF SUCH DAMAGE. 42 NV_copy_image 43 NV_delay_before_swap 44 NV_float_buffer -45 NV_multisample_coverage -46 NV_present_video -47 NV_robustness_video_memory_purge -48 NV_swap_group -49 NV_vertex_array_range -50 NV_video_capture -51 NV_video_out +45 NV_multigpu_context +46 NV_multisample_coverage +47 NV_present_video +48 NV_robustness_video_memory_purge +49 NV_swap_group +50 NV_vertex_array_range +51 NV_video_capture +52 NV_video_out
-52 OML_swap_method -53 OML_sync_control +53 OML_swap_method +54 OML_sync_control
-54 SGIS_blended_overlay -55 SGIS_color_range -56 SGIS_multisample -57 SGIS_shared_multisample +55 SGIS_blended_overlay +56 SGIS_color_range +57 SGIS_multisample +58 SGIS_shared_multisample
-58 SGIX_fbconfig -59 SGIX_hyperpipe -60 SGIX_pbuffer -61 SGIX_swap_barrier -62 SGIX_swap_group -63 SGIX_video_resize -64 SGIX_visual_select_group +59 SGIX_fbconfig +60 SGIX_hyperpipe +61 SGIX_pbuffer +62 SGIX_swap_barrier +63 SGIX_swap_group +64 SGIX_video_resize +65 SGIX_visual_select_group
-65 SGI_cushion -66 SGI_make_current_read -67 SGI_swap_control -68 SGI_video_sync +66 SGI_cushion +67 SGI_make_current_read +68 SGI_swap_control +69 SGI_video_sync
-69 SUN_get_transparent_index -70 SUN_video_resize +70 SUN_get_transparent_index +71 SUN_video_resize diff --git a/include/GL/glew.h b/include/GL/glew.h index 8757f67..9b9152d 100644 --- a/include/GL/glew.h +++ b/include/GL/glew.h @@ -4678,10 +4678,10 @@ typedef void (GLAPIENTRY * PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLen #ifndef GL_ARB_draw_elements_base_vertex #define GL_ARB_draw_elements_base_vertex 1 -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, void *indices, GLint basevertex); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLint basevertex); -typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, void *indices, GLint basevertex); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei* count, GLenum type, void**indices, GLsizei primcount, GLint *basevertex); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei* count, GLenum type, const void*const *indices, GLsizei drawcount, const GLint *basevertex); #define glDrawElementsBaseVertex GLEW_GET_FUN(__glewDrawElementsBaseVertex) #define glDrawElementsInstancedBaseVertex GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertex) @@ -14708,6 +14708,12 @@ typedef void (GLAPIENTRY * PFNGLREADBUFFERREGIONPROC) (GLuint region, GLint x, G #define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERPARAMETERIMESAPROC) (GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC) (GLenum target, GLenum pname, GLint* params); + +#define glFramebufferParameteriMESA GLEW_GET_FUN(__glewFramebufferParameteriMESA) +#define glGetFramebufferParameterivMESA GLEW_GET_FUN(__glewGetFramebufferParameterivMESA) + #define GLEW_MESA_framebuffer_flip_y GLEW_GET_VAR(__GLEW_MESA_framebuffer_flip_y) #endif /* GL_MESA_framebuffer_flip_y */ @@ -24445,6 +24451,9 @@ GLEW_FUN_EXPORT PFNGLDRAWBUFFERREGIONPROC __glewDrawBufferRegion; GLEW_FUN_EXPORT PFNGLNEWBUFFERREGIONPROC __glewNewBufferRegion; GLEW_FUN_EXPORT PFNGLREADBUFFERREGIONPROC __glewReadBufferRegion; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERPARAMETERIMESAPROC __glewFramebufferParameteriMESA; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC __glewGetFramebufferParameterivMESA; + GLEW_FUN_EXPORT PFNGLRESIZEBUFFERSMESAPROC __glewResizeBuffersMESA; GLEW_FUN_EXPORT PFNGLWINDOWPOS2DMESAPROC __glewWindowPos2dMESA; diff --git a/include/GL/glxew.h b/include/GL/glxew.h index 2b7f8d3..0474ed5 100644 --- a/include/GL/glxew.h +++ b/include/GL/glxew.h @@ -1039,6 +1039,21 @@ typedef Bool ( * PFNGLXDELAYBEFORESWAPNVPROC) (Display* dpy, GLXDrawable drawabl #endif /* GLX_NV_float_buffer */ +/* ------------------------ GLX_NV_multigpu_context ------------------------ */ + +#ifndef GLX_NV_multigpu_context +#define GLX_NV_multigpu_context 1 + +#define GLX_CONTEXT_MULTIGPU_ATTRIB_NV 0x20AA +#define GLX_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV 0x20AB +#define GLX_CONTEXT_MULTIGPU_ATTRIB_AFR_NV 0x20AC +#define GLX_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV 0x20AD +#define GLX_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV 0x20AE + +#define GLXEW_NV_multigpu_context GLXEW_GET_VAR(__GLXEW_NV_multigpu_context) + +#endif /* GLX_NV_multigpu_context */ + /* ---------------------- GLX_NV_multisample_coverage ---------------------- */ #ifndef GLX_NV_multisample_coverage @@ -1767,6 +1782,7 @@ GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_copy_buffer; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_copy_image; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_delay_before_swap; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_float_buffer; +GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_multigpu_context; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_multisample_coverage; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_present_video; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_robustness_video_memory_purge; diff --git a/src/glew.c b/src/glew.c index 3c86e23..e528209 100644 --- a/src/glew.c +++ b/src/glew.c @@ -2478,6 +2478,9 @@ PFNGLDRAWBUFFERREGIONPROC __glewDrawBufferRegion = NULL; PFNGLNEWBUFFERREGIONPROC __glewNewBufferRegion = NULL; PFNGLREADBUFFERREGIONPROC __glewReadBufferRegion = NULL; +PFNGLFRAMEBUFFERPARAMETERIMESAPROC __glewFramebufferParameteriMESA = NULL; +PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC __glewGetFramebufferParameterivMESA = NULL; + PFNGLRESIZEBUFFERSMESAPROC __glewResizeBuffersMESA = NULL; PFNGLWINDOWPOS2DMESAPROC __glewWindowPos2dMESA = NULL; @@ -10252,6 +10255,7 @@ static GLboolean _glewInit_GL_KHR_debug (); static GLboolean _glewInit_GL_KHR_parallel_shader_compile (); static GLboolean _glewInit_GL_KHR_robustness (); static GLboolean _glewInit_GL_KTX_buffer_region (); +static GLboolean _glewInit_GL_MESA_framebuffer_flip_y (); static GLboolean _glewInit_GL_MESA_resize_buffers (); static GLboolean _glewInit_GL_MESA_window_pos (); static GLboolean _glewInit_GL_NVX_conditional_render (); @@ -15336,6 +15340,20 @@ static GLboolean _glewInit_GL_KTX_buffer_region () #endif /* GL_KTX_buffer_region */ +#ifdef GL_MESA_framebuffer_flip_y + +static GLboolean _glewInit_GL_MESA_framebuffer_flip_y () +{ + GLboolean r = GL_FALSE; + + r = ((glFramebufferParameteriMESA = (PFNGLFRAMEBUFFERPARAMETERIMESAPROC)glewGetProcAddress((const GLubyte*)"glFramebufferParameteriMESA")) == NULL) || r; + r = ((glGetFramebufferParameterivMESA = (PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferParameterivMESA")) == NULL) || r; + + return r; +} + +#endif /* GL_MESA_framebuffer_flip_y */ + #ifdef GL_MESA_resize_buffers static GLboolean _glewInit_GL_MESA_resize_buffers () @@ -18823,6 +18841,9 @@ static GLenum GLEWAPIENTRY glewContextInit () #ifdef GL_KTX_buffer_region if (glewExperimental || GLEW_KTX_buffer_region) GLEW_KTX_buffer_region = !_glewInit_GL_KTX_buffer_region(); #endif /* GL_KTX_buffer_region */ +#ifdef GL_MESA_framebuffer_flip_y + if (glewExperimental || GLEW_MESA_framebuffer_flip_y) GLEW_MESA_framebuffer_flip_y = !_glewInit_GL_MESA_framebuffer_flip_y(); +#endif /* GL_MESA_framebuffer_flip_y */ #ifdef GL_MESA_resize_buffers if (glewExperimental || GLEW_MESA_resize_buffers) GLEW_MESA_resize_buffers = !_glewInit_GL_MESA_resize_buffers(); #endif /* GL_MESA_resize_buffers */ @@ -22093,6 +22114,7 @@ GLboolean __GLXEW_NV_copy_buffer = GL_FALSE; GLboolean __GLXEW_NV_copy_image = GL_FALSE; GLboolean __GLXEW_NV_delay_before_swap = GL_FALSE; GLboolean __GLXEW_NV_float_buffer = GL_FALSE; +GLboolean __GLXEW_NV_multigpu_context = GL_FALSE; GLboolean __GLXEW_NV_multisample_coverage = GL_FALSE; GLboolean __GLXEW_NV_present_video = GL_FALSE; GLboolean __GLXEW_NV_robustness_video_memory_purge = GL_FALSE; @@ -22875,6 +22897,9 @@ GLenum glxewInit () #ifdef GLX_NV_float_buffer GLXEW_NV_float_buffer = _glewSearchExtension("GLX_NV_float_buffer", extStart, extEnd); #endif /* GLX_NV_float_buffer */ +#ifdef GLX_NV_multigpu_context + GLXEW_NV_multigpu_context = _glewSearchExtension("GLX_NV_multigpu_context", extStart, extEnd); +#endif /* GLX_NV_multigpu_context */ #ifdef GLX_NV_multisample_coverage GLXEW_NV_multisample_coverage = _glewSearchExtension("GLX_NV_multisample_coverage", extStart, extEnd); #endif /* GLX_NV_multisample_coverage */ @@ -30515,6 +30540,13 @@ GLboolean glxewIsSupported (const char* name) continue; } #endif +#ifdef GLX_NV_multigpu_context + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multigpu_context", 16)) + { + ret = GLXEW_NV_multigpu_context; + continue; + } +#endif #ifdef GLX_NV_multisample_coverage if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample_coverage", 20)) { diff --git a/src/glewinfo.c b/src/glewinfo.c index 317b77a..be286d6 100644 --- a/src/glewinfo.c +++ b/src/glewinfo.c @@ -7230,7 +7230,10 @@ static void _glewInfo_GL_MESAX_texture_stack (void) static void _glewInfo_GL_MESA_framebuffer_flip_y (void) { - glewPrintExt("GL_MESA_framebuffer_flip_y", GLEW_MESA_framebuffer_flip_y, glewIsSupported("GL_MESA_framebuffer_flip_y"), glewGetExtension("GL_MESA_framebuffer_flip_y")); + GLboolean fi = glewPrintExt("GL_MESA_framebuffer_flip_y", GLEW_MESA_framebuffer_flip_y, glewIsSupported("GL_MESA_framebuffer_flip_y"), glewGetExtension("GL_MESA_framebuffer_flip_y")); + + glewInfoFunc(fi, "glFramebufferParameteriMESA", glFramebufferParameteriMESA == NULL); + glewInfoFunc(fi, "glGetFramebufferParameterivMESA", glGetFramebufferParameterivMESA == NULL); } #endif /* GL_MESA_framebuffer_flip_y */ @@ -14387,6 +14390,15 @@ static void _glewInfo_GLX_NV_float_buffer (void) #endif /* GLX_NV_float_buffer */ +#ifdef GLX_NV_multigpu_context + +static void _glewInfo_GLX_NV_multigpu_context (void) +{ + glewPrintExt("GLX_NV_multigpu_context", GLXEW_NV_multigpu_context, glxewIsSupported("GLX_NV_multigpu_context"), glxewGetExtension("GLX_NV_multigpu_context")); +} + +#endif /* GLX_NV_multigpu_context */ + #ifdef GLX_NV_multisample_coverage static void _glewInfo_GLX_NV_multisample_coverage (void) @@ -17832,6 +17844,9 @@ static void glxewInfo () #ifdef GLX_NV_float_buffer _glewInfo_GLX_NV_float_buffer(); #endif /* GLX_NV_float_buffer */ +#ifdef GLX_NV_multigpu_context + _glewInfo_GLX_NV_multigpu_context(); +#endif /* GLX_NV_multigpu_context */ #ifdef GLX_NV_multisample_coverage _glewInfo_GLX_NV_multisample_coverage(); #endif /* GLX_NV_multisample_coverage */