Missing prototypes in glext.h

Is it normal that the file glext.h no longer contains the functions prototypes for the recent extensions published ?

For example specification of extension GL_AMD_debug_output contains DebugMessageEnableAMD() function, but not glext.h.
The tokens are well declared in glext.h :

#ifndef GL_AMD_debug_output
#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144
#define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145

#define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F
#define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150
#endif

but not the function prototypes that should be in a section similar to:

#ifndef GL_NV_texture_barrier
#define GL_NV_texture_barrier 1
#ifdef GL_GLEXT_PROTOTYPES
GLAPI void APIENTRY glTextureBarrierNV (void);
#endif /* GL_GLEXT_PROTOTYPES */
typedef void (APIENTRYP PFNGLTEXTUREBARRIERNVPROC) (void);
#endif

Nicolas.

Is it normal that the file glext.h no longer contains the functions prototypes for the recent extensions published ?

Define “recent.” GL_AMD_debug_output was released less than 2 weeks ago. That’s probably not enough time to update the spec files and everything.

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.