diff --git a/auto/bin/parse_spec.pl b/auto/bin/parse_spec.pl index e16ef32..6f2213e 100755 --- a/auto/bin/parse_spec.pl +++ b/auto/bin/parse_spec.pl @@ -44,6 +44,9 @@ my %typemap = ( uint => "GLuint", ushort => "GLushort", DMbuffer => "void *", + # Nvidia video output fsck up + int64EXT => "GLint64EXT", + uint64EXT=> "GLuint64EXT", # ARB VBO introduces these. @@ -128,6 +131,7 @@ sub normalize_prototype { local $_ = join(" ", @_); s/\s+/ /g; # multiple whitespace -> single space + s/\<.*\>//g; # remove from direct state access extension s/\s*\(\s*/ \(/; # exactly one space before ( and none after s/\s*\)\s*/\)/; # no after before or after ) s/\s*\*([a-zA-Z])/\* $1/; # "* identifier" diff --git a/auto/bin/update_ext.sh b/auto/bin/update_ext.sh index 4a3ab0e..e50f751 100755 --- a/auto/bin/update_ext.sh +++ b/auto/bin/update_ext.sh @@ -34,6 +34,28 @@ if [ ! -d $1 ] ; then grep -v -F -f $1/GLX_EXT_visual_info $1/GLX_EXT_visual_rating > tmp mv tmp $1/GLX_EXT_visual_rating +# GL_EXT_draw_buffers2 and GL_EXT_transform_feedback both define glGetBooleanIndexedvEXT but with different parameter names + grep -v glGetBooleanIndexedvEXT $1/GL_EXT_transform_feedback > tmp + mv tmp $1/GL_EXT_transform_feedback + +# GL_EXT_draw_buffers2 and GL_EXT_transform_feedback both define glGetIntegerIndexedvEXT but with different parameter names + grep -v glGetIntegerIndexedvEXT $1/GL_EXT_transform_feedback > tmp + mv tmp $1/GL_EXT_transform_feedback + +# remove duplicates from GL_NV_present_video and GLX_NV_present_video + grep -v -F -f $1/GLX_NV_present_video $1/GL_NV_present_video > tmp + mv tmp $1/GL_NV_present_video + +# fix WGL_NV_present_video + cat >> $1/WGL_NV_present_video <> $1/WGL_NV_video_output < tmp mv tmp $1/GL_NV_occlusion_query @@ -60,6 +82,13 @@ if [ ! -d $1 ] ; then GL_SWIZZLE_STRQ_DQ_ATI 0x897B EOT +# add deprecated constants to GL_NV_texture_shader + cat >> $1/GL_NV_texture_shader <> $1/WGL_ATI_pixel_format_float < tmp mv tmp $1/GL_ARB_vertex_shader +# remove duplicates in GL_EXT_direct_state_access + grep -v "glGetBooleanIndexedvEXT" $1/GL_EXT_direct_state_access > tmp + mv tmp $1/GL_EXT_direct_state_access + grep -v "glGetIntegerIndexedvEXT" $1/GL_EXT_direct_state_access > tmp + mv tmp $1/GL_EXT_direct_state_access + grep -v "glDisableIndexedEXT" $1/GL_EXT_direct_state_access > tmp + mv tmp $1/GL_EXT_direct_state_access + grep -v "glEnableIndexedEXT" $1/GL_EXT_direct_state_access > tmp + mv tmp $1/GL_EXT_direct_state_access + grep -v "glIsEnabledIndexedEXT" $1/GL_EXT_direct_state_access > tmp + mv tmp $1/GL_EXT_direct_state_access + # fix bugs in GL_ARB_vertex_shader grep -v "GL_FLOAT" $1/GL_ARB_vertex_shader > tmp mv tmp $1/GL_ARB_vertex_shader diff --git a/auto/blacklist b/auto/blacklist index 90c165f..9226245 100644 --- a/auto/blacklist +++ b/auto/blacklist @@ -12,7 +12,3 @@ SGIX/video_source.txt SGIX/hyperpipe_group.txt OES/fixed_point.txt OES/query_matrix.txt -NV/present_video.txt -NV/wgl_video_out.txt -EXT/draw_buffers2.txt -EXT/transform_feedback.txt \ No newline at end of file diff --git a/auto/src/glew_head.h b/auto/src/glew_head.h index 9b46d4b..93d1fa5 100644 --- a/auto/src/glew_head.h +++ b/auto/src/glew_head.h @@ -118,6 +118,7 @@ typedef _W64 int ptrdiff_t; */ #include +#include #define GLEW_APIENTRY_DEFINED #define APIENTRY @@ -166,16 +167,20 @@ typedef float GLclampf; typedef double GLdouble; typedef double GLclampd; typedef void GLvoid; -#if defined(_MSC_VER) && _MSC_VER < 1400 +#if defined(_MSC_VER) +# if _MSC_VER < 1400 typedef __int64 GLint64EXT; typedef unsigned __int64 GLuint64EXT; -#elif defined(__MINGW32__) -#include -typedef int64_t GLint64EXT; -typedef uint64_t GLuint64EXT; -#else +# else typedef signed long long GLint64EXT; typedef unsigned long long GLuint64EXT; +# endif +#else +# if defined(__MINGW32__) +#include +# endif +typedef int64_t GLint64EXT; +typedef uint64_t GLuint64EXT; #endif #define GL_ACCUM 0x0100 diff --git a/auto/src/glxew_head.h b/auto/src/glxew_head.h index 96345fe..56b481a 100644 --- a/auto/src/glxew_head.h +++ b/auto/src/glxew_head.h @@ -60,6 +60,8 @@ typedef struct __glXContextRec *GLXContext; typedef struct __GLXcontextRec *GLXContext; #endif +typedef unsigned int GLXVideoDeviceNV; + extern Bool glXQueryExtension (Display *dpy, int *errorBase, int *eventBase); extern Bool glXQueryVersion (Display *dpy, int *major, int *minor); extern int glXGetConfig (Display *dpy, XVisualInfo *vis, int attrib, int *value);