recent “definition”: the new extensions added by glext.h version 62
To highlight the problem, the main difference between glext.h version 62 and 61 are for the section containing tokens (lines 4669-4830):
#ifndef GL_EXT_shader_image_load_store
#define GL_MAX_IMAGE_UNITS_EXT 0x8F38
#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39
#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A
…
#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000
#define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF
#endif
#ifndef GL_EXT_vertex_attrib_64bit
/* reuse GL_DOUBLE */
#define GL_DOUBLE_VEC2_EXT 0x8FFC
…
#define GL_DOUBLE_MAT4x3_EXT 0x8F4E
#endif
#ifndef GL_NV_gpu_program5
#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A
…
#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D
#endif
#ifndef GL_NV_gpu_shader5
#define GL_INT64_NV 0x140E
…
#define GL_FLOAT16_VEC4_NV 0x8FFB
/* reuse GL_PATCHES */
#endif
#ifndef GL_NV_shader_buffer_store
#define GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV 0x00000010
/* reuse GL_READ_WRITE /
/ reuse GL_WRITE_ONLY */
#endif
#ifndef GL_NV_tessellation_program5
#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8
…
#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75
#endif
#ifndef GL_NV_vertex_attrib_integer_64bit
/* reuse GL_INT64_NV /
/ reuse GL_UNSIGNED_INT64_NV */
#endif
#ifndef GL_NV_multisample_coverage
#define GL_COVERAGE_SAMPLES_NV 0x80A9
#define GL_COLOR_SAMPLES_NV 0x8E20
#endif
#ifndef GL_AMD_name_gen_delete
#define GL_DATA_BUFFER_AMD 0x9151
…
#define GL_SAMPLER_OBJECT_AMD 0x9155
#endif
#ifndef GL_AMD_debug_output
#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144
…
#define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150
#endif
and for the section declaring prototypes (lines 10238-10274):
#ifndef GL_EXT_shader_image_load_store
#define GL_EXT_shader_image_load_store 1
#endif
#ifndef GL_EXT_vertex_attrib_64bit
#define GL_EXT_vertex_attrib_64bit 1
#endif
#ifndef GL_NV_gpu_program5
#define GL_NV_gpu_program5 1
#endif
#ifndef GL_NV_gpu_shader5
#define GL_NV_gpu_shader5 1
#endif
#ifndef GL_NV_shader_buffer_store
#define GL_NV_shader_buffer_store 1
#endif
#ifndef GL_NV_tessellation_program5
#define GL_NV_tessellation_program5 1
#endif
#ifndef GL_NV_vertex_attrib_integer_64bit
#define GL_NV_vertex_attrib_integer_64bit 1
#endif
#ifndef GL_NV_multisample_coverage
#define GL_NV_multisample_coverage 1
#endif
#ifndef GL_AMD_name_gen_delete
#define GL_AMD_name_gen_delete 1
#endif
As you can read, the tokens are here. But that’s not true for the prototypes. So, that’s why I am a bit surprised and i reported this problem.