1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

OpenGL: Update compatibility headers

This also adds missing KHRONOS_APIENTRY qualifications to the debug
callback type, which fixes potential crashes when running debug Win32
builds.
This commit is contained in:
reuk 2024-01-16 15:34:08 +00:00
parent 878aad687e
commit 76b9b28658
No known key found for this signature in database
GPG key ID: FCB43929F012EE5C
5 changed files with 259 additions and 40 deletions

View file

@ -1140,7 +1140,7 @@
X (void , glDebugMessageEnableAMD, (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled)) \
X (void , glDebugMessageInsertAMD, (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf)) \
X (void , glDebugMessageCallbackAMD, (GLDEBUGPROCAMD callback, void *userParam)) \
X (GLuint , glGetDebugMessageLogAMD, (GLuint count, GLsizei bufSize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message))
X (GLuint , glGetDebugMessageLogAMD, (GLuint count, GLsizei bufSize, GLenum *categories, GLenum *severities, GLuint *ids, GLsizei *lengths, GLchar *message))
#define JUCE_GL_FUNCTIONS_GL_AMD_draw_buffers_blend \
X (void , glBlendFuncIndexedAMD, (GLuint buf, GLenum src, GLenum dst)) \
@ -2189,6 +2189,10 @@
#define JUCE_GL_FUNCTIONS_GL_EXT_framebuffer_blit \
X (void , glBlitFramebufferEXT, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter))
#define JUCE_GL_FUNCTIONS_GL_EXT_framebuffer_blit_layers \
X (void , glBlitFramebufferLayersEXT, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)) \
X (void , glBlitFramebufferLayerEXT, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint srcLayer, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLint dstLayer, GLbitfield mask, GLenum filter))
#define JUCE_GL_FUNCTIONS_GL_EXT_framebuffer_multisample \
X (void , glRenderbufferStorageMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height))
@ -2384,7 +2388,7 @@
X (GLuint , glCreateShaderProgramEXT, (GLenum type, const GLchar *string)) \
X (void , glActiveShaderProgramEXT, (GLuint pipeline, GLuint program)) \
X (void , glBindProgramPipelineEXT, (GLuint pipeline)) \
X (GLuint , glCreateShaderProgramvEXT, (GLenum type, GLsizei count, const GLchar **strings)) \
X (GLuint , glCreateShaderProgramvEXT, (GLenum type, GLsizei count, const GLchar *const*strings)) \
X (void , glDeleteProgramPipelinesEXT, (GLsizei n, const GLuint *pipelines)) \
X (void , glGenProgramPipelinesEXT, (GLsizei n, GLuint *pipelines)) \
X (void , glGetProgramPipelineInfoLogEXT, (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \
@ -2439,6 +2443,11 @@
#define JUCE_GL_FUNCTIONS_GL_EXT_texture_perturb_normal \
X (void , glTextureNormalEXT, (GLenum mode))
#define JUCE_GL_FUNCTIONS_GL_EXT_texture_storage \
X (void , glTexStorage1DEXT, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)) \
X (void , glTexStorage2DEXT, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)) \
X (void , glTexStorage3DEXT, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth))
#define JUCE_GL_FUNCTIONS_GL_NV_timeline_semaphore \
X (void , glCreateSemaphoresNV, (GLsizei n, GLuint *semaphores)) \
X (void , glSemaphoreParameterivNV, (GLuint semaphore, GLenum pname, const GLint *params)) \
@ -2850,12 +2859,6 @@
X (void , glMultiTexCoord3hvNV, (GLenum target, const GLhalfNV *v)) \
X (void , glMultiTexCoord4hNV, (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q)) \
X (void , glMultiTexCoord4hvNV, (GLenum target, const GLhalfNV *v)) \
X (void , glFogCoordhNV, (GLhalfNV fog)) \
X (void , glFogCoordhvNV, (const GLhalfNV *fog)) \
X (void , glSecondaryColor3hNV, (GLhalfNV red, GLhalfNV green, GLhalfNV blue)) \
X (void , glSecondaryColor3hvNV, (const GLhalfNV *v)) \
X (void , glVertexWeighthNV, (GLhalfNV weight)) \
X (void , glVertexWeighthvNV, (const GLhalfNV *weight)) \
X (void , glVertexAttrib1hNV, (GLuint index, GLhalfNV x)) \
X (void , glVertexAttrib1hvNV, (GLuint index, const GLhalfNV *v)) \
X (void , glVertexAttrib2hNV, (GLuint index, GLhalfNV x, GLhalfNV y)) \
@ -2867,7 +2870,13 @@
X (void , glVertexAttribs1hvNV, (GLuint index, GLsizei n, const GLhalfNV *v)) \
X (void , glVertexAttribs2hvNV, (GLuint index, GLsizei n, const GLhalfNV *v)) \
X (void , glVertexAttribs3hvNV, (GLuint index, GLsizei n, const GLhalfNV *v)) \
X (void , glVertexAttribs4hvNV, (GLuint index, GLsizei n, const GLhalfNV *v))
X (void , glVertexAttribs4hvNV, (GLuint index, GLsizei n, const GLhalfNV *v)) \
X (void , glFogCoordhNV, (GLhalfNV fog)) \
X (void , glFogCoordhvNV, (const GLhalfNV *fog)) \
X (void , glSecondaryColor3hNV, (GLhalfNV red, GLhalfNV green, GLhalfNV blue)) \
X (void , glSecondaryColor3hvNV, (const GLhalfNV *v)) \
X (void , glVertexWeighthNV, (GLhalfNV weight)) \
X (void , glVertexWeighthvNV, (const GLhalfNV *weight))
#define JUCE_GL_FUNCTIONS_GL_NV_internalformat_sample_query \
X (void , glGetInternalformatSampleivNV, (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params))
@ -3880,6 +3889,7 @@
JUCE_GL_FUNCTIONS_GL_EXT_external_buffer \
JUCE_GL_FUNCTIONS_GL_EXT_fog_coord \
JUCE_GL_FUNCTIONS_GL_EXT_framebuffer_blit \
JUCE_GL_FUNCTIONS_GL_EXT_framebuffer_blit_layers \
JUCE_GL_FUNCTIONS_GL_EXT_framebuffer_multisample \
JUCE_GL_FUNCTIONS_GL_EXT_framebuffer_object \
JUCE_GL_FUNCTIONS_GL_EXT_geometry_shader4 \
@ -3917,6 +3927,7 @@
JUCE_GL_FUNCTIONS_GL_EXT_texture_integer \
JUCE_GL_FUNCTIONS_GL_EXT_texture_object \
JUCE_GL_FUNCTIONS_GL_EXT_texture_perturb_normal \
JUCE_GL_FUNCTIONS_GL_EXT_texture_storage \
JUCE_GL_FUNCTIONS_GL_NV_timeline_semaphore \
JUCE_GL_FUNCTIONS_GL_EXT_timer_query \
JUCE_GL_FUNCTIONS_GL_EXT_transform_feedback \

View file

@ -192,13 +192,13 @@ typedef khronos_uint64_t GLuint64EXT;
typedef struct __GLsync *GLsync;
struct _cl_context;
struct _cl_event;
typedef void ( *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
typedef void ( *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
typedef void ( *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
typedef void ( *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam);
typedef void (KHRONOS_APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
typedef void (KHRONOS_APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
typedef void (KHRONOS_APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
typedef void (KHRONOS_APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam);
typedef unsigned short GLhalfNV;
typedef GLintptr GLvdpauSurfaceNV;
typedef void ( *GLVULKANPROCNV)(void);
typedef void (KHRONOS_APIENTRY *GLVULKANPROCNV)(void);
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
@ -3260,7 +3260,7 @@ enum : GLenum
extern void (KHRONOS_APIENTRY* const& glDebugMessageEnableAMD) (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
extern void (KHRONOS_APIENTRY* const& glDebugMessageInsertAMD) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf);
extern void (KHRONOS_APIENTRY* const& glDebugMessageCallbackAMD) (GLDEBUGPROCAMD callback, void *userParam);
extern GLuint (KHRONOS_APIENTRY* const& glGetDebugMessageLogAMD) (GLuint count, GLsizei bufSize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message);
extern GLuint (KHRONOS_APIENTRY* const& glGetDebugMessageLogAMD) (GLuint count, GLsizei bufSize, GLenum *categories, GLenum *severities, GLuint *ids, GLsizei *lengths, GLchar *message);
#endif
#ifndef GL_AMD_depth_clamp_separate
@ -6589,6 +6589,12 @@ enum : GLenum
extern void (KHRONOS_APIENTRY* const& glBlitFramebufferEXT) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
#endif
#ifndef GL_EXT_framebuffer_blit_layers
#define GL_EXT_framebuffer_blit_layers 1
extern void (KHRONOS_APIENTRY* const& glBlitFramebufferLayersEXT) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
extern void (KHRONOS_APIENTRY* const& glBlitFramebufferLayerEXT) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint srcLayer, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLint dstLayer, GLbitfield mask, GLenum filter);
#endif
#ifndef GL_EXT_framebuffer_multisample
#define GL_EXT_framebuffer_multisample 1
enum : GLenum
@ -7244,7 +7250,7 @@ extern void (KHRONOS_APIENTRY* const& glActiveProgramEXT) (GLuint progra
extern GLuint (KHRONOS_APIENTRY* const& glCreateShaderProgramEXT) (GLenum type, const GLchar *string);
extern void (KHRONOS_APIENTRY* const& glActiveShaderProgramEXT) (GLuint pipeline, GLuint program);
extern void (KHRONOS_APIENTRY* const& glBindProgramPipelineEXT) (GLuint pipeline);
extern GLuint (KHRONOS_APIENTRY* const& glCreateShaderProgramvEXT) (GLenum type, GLsizei count, const GLchar **strings);
extern GLuint (KHRONOS_APIENTRY* const& glCreateShaderProgramvEXT) (GLenum type, GLsizei count, const GLchar *const*strings);
extern void (KHRONOS_APIENTRY* const& glDeleteProgramPipelinesEXT) (GLsizei n, const GLuint *pipelines);
extern void (KHRONOS_APIENTRY* const& glGenProgramPipelinesEXT) (GLsizei n, GLuint *pipelines);
extern void (KHRONOS_APIENTRY* const& glGetProgramPipelineInfoLogEXT) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
@ -7349,6 +7355,10 @@ extern void (KHRONOS_APIENTRY* const& glMemoryBarrierEXT) (GLbitfield ba
#define GL_EXT_shader_integer_mix 1
#endif
#ifndef GL_EXT_shader_samples_identical
#define GL_EXT_shader_samples_identical 1
#endif
#ifndef GL_EXT_shadow_funcs
#define GL_EXT_shadow_funcs 1
#endif
@ -7765,6 +7775,10 @@ enum : GLenum
};
#endif
#ifndef GL_EXT_texture_shadow_lod
#define GL_EXT_texture_shadow_lod 1
#endif
#ifndef GL_EXT_texture_shared_exponent
#define GL_EXT_texture_shared_exponent 1
enum : GLenum
@ -7798,6 +7812,34 @@ enum : GLenum
};
#endif
#ifndef GL_EXT_texture_storage
#define GL_EXT_texture_storage 1
enum : GLenum
{
GL_TEXTURE_IMMUTABLE_FORMAT_EXT = 0x912F,
GL_RGBA32F_EXT = 0x8814,
GL_RGB32F_EXT = 0x8815,
GL_ALPHA32F_EXT = 0x8816,
GL_LUMINANCE32F_EXT = 0x8818,
GL_LUMINANCE_ALPHA32F_EXT = 0x8819,
GL_RGBA16F_EXT = 0x881A,
GL_RGB16F_EXT = 0x881B,
GL_ALPHA16F_EXT = 0x881C,
GL_LUMINANCE16F_EXT = 0x881E,
GL_LUMINANCE_ALPHA16F_EXT = 0x881F,
GL_BGRA8_EXT = 0x93A1,
GL_R8_EXT = 0x8229,
GL_RG8_EXT = 0x822B,
GL_R32F_EXT = 0x822E,
GL_RG32F_EXT = 0x8230,
GL_R16F_EXT = 0x822D,
GL_RG16F_EXT = 0x822F,
};
extern void (KHRONOS_APIENTRY* const& glTexStorage1DEXT) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
extern void (KHRONOS_APIENTRY* const& glTexStorage2DEXT) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
extern void (KHRONOS_APIENTRY* const& glTexStorage3DEXT) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
#endif
#ifndef GL_EXT_texture_swizzle
#define GL_EXT_texture_swizzle 1
enum : GLenum
@ -9379,12 +9421,6 @@ extern void (KHRONOS_APIENTRY* const& glMultiTexCoord3hNV) (GLenum targe
extern void (KHRONOS_APIENTRY* const& glMultiTexCoord3hvNV) (GLenum target, const GLhalfNV *v);
extern void (KHRONOS_APIENTRY* const& glMultiTexCoord4hNV) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
extern void (KHRONOS_APIENTRY* const& glMultiTexCoord4hvNV) (GLenum target, const GLhalfNV *v);
extern void (KHRONOS_APIENTRY* const& glFogCoordhNV) (GLhalfNV fog);
extern void (KHRONOS_APIENTRY* const& glFogCoordhvNV) (const GLhalfNV *fog);
extern void (KHRONOS_APIENTRY* const& glSecondaryColor3hNV) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
extern void (KHRONOS_APIENTRY* const& glSecondaryColor3hvNV) (const GLhalfNV *v);
extern void (KHRONOS_APIENTRY* const& glVertexWeighthNV) (GLhalfNV weight);
extern void (KHRONOS_APIENTRY* const& glVertexWeighthvNV) (const GLhalfNV *weight);
extern void (KHRONOS_APIENTRY* const& glVertexAttrib1hNV) (GLuint index, GLhalfNV x);
extern void (KHRONOS_APIENTRY* const& glVertexAttrib1hvNV) (GLuint index, const GLhalfNV *v);
extern void (KHRONOS_APIENTRY* const& glVertexAttrib2hNV) (GLuint index, GLhalfNV x, GLhalfNV y);
@ -9397,6 +9433,12 @@ extern void (KHRONOS_APIENTRY* const& glVertexAttribs1hvNV) (GLuint inde
extern void (KHRONOS_APIENTRY* const& glVertexAttribs2hvNV) (GLuint index, GLsizei n, const GLhalfNV *v);
extern void (KHRONOS_APIENTRY* const& glVertexAttribs3hvNV) (GLuint index, GLsizei n, const GLhalfNV *v);
extern void (KHRONOS_APIENTRY* const& glVertexAttribs4hvNV) (GLuint index, GLsizei n, const GLhalfNV *v);
extern void (KHRONOS_APIENTRY* const& glFogCoordhNV) (GLhalfNV fog);
extern void (KHRONOS_APIENTRY* const& glFogCoordhvNV) (const GLhalfNV *fog);
extern void (KHRONOS_APIENTRY* const& glSecondaryColor3hNV) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
extern void (KHRONOS_APIENTRY* const& glSecondaryColor3hvNV) (const GLhalfNV *v);
extern void (KHRONOS_APIENTRY* const& glVertexWeighthNV) (GLhalfNV weight);
extern void (KHRONOS_APIENTRY* const& glVertexWeighthvNV) (const GLhalfNV *weight);
#endif
#ifndef GL_NV_internalformat_sample_query
@ -10464,6 +10506,10 @@ extern void (KHRONOS_APIENTRY* const& glResumeTransformFeedbackNV) ();
extern void (KHRONOS_APIENTRY* const& glDrawTransformFeedbackNV) (GLenum mode, GLuint id);
#endif
#ifndef GL_NV_uniform_buffer_std430_layout
#define GL_NV_uniform_buffer_std430_layout 1
#endif
#ifndef GL_NV_uniform_buffer_unified_memory
#define GL_NV_uniform_buffer_unified_memory 1
enum : GLenum
@ -11983,10 +12029,6 @@ enum : GLenum
};
#endif
#ifndef GL_EXT_texture_shadow_lod
#define GL_EXT_texture_shadow_lod 1
#endif
/** Load all available functions from the OpenGL core API.

View file

@ -460,6 +460,9 @@
X (void , glGetInteger64vAPPLE, (GLenum pname, GLint64 *params)) \
X (void , glGetSyncivAPPLE, (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values))
#define JUCE_GL_FUNCTIONS_GL_ARM_shader_core_properties \
X (void , glMaxActiveShaderCoresARM, (GLuint count))
#define JUCE_GL_FUNCTIONS_GL_EXT_EGL_image_storage \
X (void , glEGLImageTargetTexStorageEXT, (GLenum target, GLeglImageOES image, const GLint* attrib_list)) \
X (void , glEGLImageTargetTextureStorageEXT, (GLuint texture, GLeglImageOES image, const GLint* attrib_list))
@ -548,6 +551,16 @@
X (void , glBufferStorageExternalEXT, (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags)) \
X (void , glNamedBufferStorageExternalEXT, (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags))
#define JUCE_GL_FUNCTIONS_GL_EXT_fragment_shading_rate \
X (void , glGetFragmentShadingRatesEXT, (GLsizei samples, GLsizei maxCount, GLsizei *count, GLenum *shadingRates)) \
X (void , glShadingRateEXT, (GLenum rate)) \
X (void , glShadingRateCombinerOpsEXT, (GLenum combinerOp0, GLenum combinerOp1)) \
X (void , glFramebufferShadingRateEXT, (GLenum target, GLenum attachment, GLuint texture, GLint baseLayer, GLsizei numLayers, GLsizei texelWidth, GLsizei texelHeight))
#define JUCE_GL_FUNCTIONS_GL_EXT_framebuffer_blit_layers \
X (void , glBlitFramebufferLayersEXT, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)) \
X (void , glBlitFramebufferLayerEXT, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint srcLayer, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLint dstLayer, GLbitfield mask, GLenum filter))
#define JUCE_GL_FUNCTIONS_GL_EXT_geometry_shader \
X (void , glFramebufferTextureEXT, (GLenum target, GLenum attachment, GLuint texture, GLint level))
@ -640,7 +653,7 @@
X (GLuint , glCreateShaderProgramEXT, (GLenum type, const GLchar *string)) \
X (void , glActiveShaderProgramEXT, (GLuint pipeline, GLuint program)) \
X (void , glBindProgramPipelineEXT, (GLuint pipeline)) \
X (GLuint , glCreateShaderProgramvEXT, (GLenum type, GLsizei count, const GLchar **strings)) \
X (GLuint , glCreateShaderProgramvEXT, (GLenum type, GLsizei count, const GLchar *const*strings)) \
X (void , glDeleteProgramPipelinesEXT, (GLsizei n, const GLuint *pipelines)) \
X (void , glGenProgramPipelinesEXT, (GLsizei n, GLuint *pipelines)) \
X (void , glGetProgramPipelineInfoLogEXT, (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \
@ -719,6 +732,10 @@
X (void , glTextureStorage2DEXT, (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)) \
X (void , glTextureStorage3DEXT, (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth))
#define JUCE_GL_FUNCTIONS_GL_EXT_texture_storage_compression \
X (void , glTexStorageAttribs2DEXT, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, const GLint* attrib_list)) \
X (void , glTexStorageAttribs3DEXT, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, const GLint* attrib_list))
#define JUCE_GL_FUNCTIONS_GL_EXT_texture_view \
X (void , glTextureViewEXT, (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers))
@ -1265,6 +1282,7 @@
JUCE_GL_FUNCTIONS_GL_APPLE_copy_texture_levels \
JUCE_GL_FUNCTIONS_GL_APPLE_framebuffer_multisample \
JUCE_GL_FUNCTIONS_GL_APPLE_sync \
JUCE_GL_FUNCTIONS_GL_ARM_shader_core_properties \
JUCE_GL_FUNCTIONS_GL_EXT_EGL_image_storage \
JUCE_GL_FUNCTIONS_GL_EXT_base_instance \
JUCE_GL_FUNCTIONS_GL_EXT_blend_func_extended \
@ -1283,6 +1301,8 @@
JUCE_GL_FUNCTIONS_GL_EXT_draw_instanced \
JUCE_GL_FUNCTIONS_GL_EXT_draw_transform_feedback \
JUCE_GL_FUNCTIONS_GL_EXT_external_buffer \
JUCE_GL_FUNCTIONS_GL_EXT_fragment_shading_rate \
JUCE_GL_FUNCTIONS_GL_EXT_framebuffer_blit_layers \
JUCE_GL_FUNCTIONS_GL_EXT_geometry_shader \
JUCE_GL_FUNCTIONS_GL_EXT_instanced_arrays \
JUCE_GL_FUNCTIONS_GL_EXT_map_buffer_range \
@ -1308,6 +1328,7 @@
JUCE_GL_FUNCTIONS_GL_EXT_texture_border_clamp \
JUCE_GL_FUNCTIONS_GL_EXT_texture_buffer \
JUCE_GL_FUNCTIONS_GL_EXT_texture_storage \
JUCE_GL_FUNCTIONS_GL_EXT_texture_storage_compression \
JUCE_GL_FUNCTIONS_GL_EXT_texture_view \
JUCE_GL_FUNCTIONS_GL_NV_timeline_semaphore \
JUCE_GL_FUNCTIONS_GL_EXT_win32_keyed_mutex \

View file

@ -85,13 +85,13 @@ typedef khronos_uint64_t GLuint64EXT;
typedef struct __GLsync *GLsync;
struct _cl_context;
struct _cl_event;
typedef void ( *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
typedef void ( *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
typedef void ( *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
typedef void ( *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam);
typedef void (KHRONOS_APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
typedef void (KHRONOS_APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
typedef void (KHRONOS_APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
typedef void (KHRONOS_APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam);
typedef unsigned short GLhalfNV;
typedef GLintptr GLvdpauSurfaceNV;
typedef void ( *GLVULKANPROCNV)(void);
typedef void (KHRONOS_APIENTRY *GLVULKANPROCNV)(void);
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
@ -1790,6 +1790,21 @@ enum : GLenum
#define GL_ARM_rgba8 1
#endif
#ifndef GL_ARM_shader_core_properties
#define GL_ARM_shader_core_properties 1
enum : GLenum
{
GL_SHADER_CORE_COUNT_ARM = 0x96F0,
GL_SHADER_CORE_ACTIVE_COUNT_ARM = 0x96F1,
GL_SHADER_CORE_PRESENT_MASK_ARM = 0x96F2,
GL_SHADER_CORE_MAX_WARP_COUNT_ARM = 0x96F3,
GL_SHADER_CORE_PIXEL_RATE_ARM = 0x96F4,
GL_SHADER_CORE_TEXEL_RATE_ARM = 0x96F5,
GL_SHADER_CORE_FMA_RATE_ARM = 0x96F6,
};
extern void (KHRONOS_APIENTRY* const& glMaxActiveShaderCoresARM) (GLuint count);
#endif
#ifndef GL_ARM_shader_framebuffer_fetch
#define GL_ARM_shader_framebuffer_fetch 1
enum : GLenum
@ -1839,6 +1854,16 @@ extern void (KHRONOS_APIENTRY* const& glEGLImageTargetTexStorageEXT) (GL
extern void (KHRONOS_APIENTRY* const& glEGLImageTargetTextureStorageEXT) (GLuint texture, GLeglImageOES image, const GLint* attrib_list);
#endif
#ifndef GL_EXT_EGL_image_storage_compression
#define GL_EXT_EGL_image_storage_compression 1
enum : GLenum
{
GL_SURFACE_COMPRESSION_EXT = 0x96C0,
GL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT = 0x96C1,
GL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0x96C2,
};
#endif
#ifndef GL_EXT_YUV_target
#define GL_EXT_YUV_target 1
enum : GLenum
@ -2117,6 +2142,49 @@ extern void (KHRONOS_APIENTRY* const& glNamedBufferStorageExternalEXT) (
#define GL_EXT_float_blend 1
#endif
#ifndef GL_EXT_fragment_shading_rate
#define GL_EXT_fragment_shading_rate 1
enum : GLenum
{
GL_SHADING_RATE_1X1_PIXELS_EXT = 0x96A6,
GL_SHADING_RATE_1X2_PIXELS_EXT = 0x96A7,
GL_SHADING_RATE_2X1_PIXELS_EXT = 0x96A8,
GL_SHADING_RATE_2X2_PIXELS_EXT = 0x96A9,
GL_SHADING_RATE_1X4_PIXELS_EXT = 0x96AA,
GL_SHADING_RATE_4X1_PIXELS_EXT = 0x96AB,
GL_SHADING_RATE_4X2_PIXELS_EXT = 0x96AC,
GL_SHADING_RATE_2X4_PIXELS_EXT = 0x96AD,
GL_SHADING_RATE_4X4_PIXELS_EXT = 0x96AE,
GL_SHADING_RATE_EXT = 0x96D0,
GL_SHADING_RATE_ATTACHMENT_EXT = 0x96D1,
GL_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_EXT = 0x96D2,
GL_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_EXT = 0x96D3,
GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_EXT = 0x96D4,
GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_EXT = 0x96D5,
GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_EXT = 0x96D6,
GL_MIN_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_WIDTH_EXT = 0x96D7,
GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_WIDTH_EXT = 0x96D8,
GL_MIN_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_HEIGHT_EXT = 0x96D9,
GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_HEIGHT_EXT = 0x96DA,
GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_ASPECT_RATIO_EXT = 0x96DB,
GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_LAYERS_EXT = 0x96DC,
GL_FRAGMENT_SHADING_RATE_WITH_SHADER_DEPTH_STENCIL_WRITES_SUPPORTED_EXT = 0x96DD,
GL_FRAGMENT_SHADING_RATE_WITH_SAMPLE_MASK_SUPPORTED_EXT = 0x96DE,
GL_FRAGMENT_SHADING_RATE_ATTACHMENT_WITH_DEFAULT_FRAMEBUFFER_SUPPORTED_EXT = 0x96DF,
GL_FRAGMENT_SHADING_RATE_NON_TRIVIAL_COMBINERS_SUPPORTED_EXT = 0x8F6F,
};
extern void (KHRONOS_APIENTRY* const& glGetFragmentShadingRatesEXT) (GLsizei samples, GLsizei maxCount, GLsizei *count, GLenum *shadingRates);
extern void (KHRONOS_APIENTRY* const& glShadingRateEXT) (GLenum rate);
extern void (KHRONOS_APIENTRY* const& glShadingRateCombinerOpsEXT) (GLenum combinerOp0, GLenum combinerOp1);
extern void (KHRONOS_APIENTRY* const& glFramebufferShadingRateEXT) (GLenum target, GLenum attachment, GLuint texture, GLint baseLayer, GLsizei numLayers, GLsizei texelWidth, GLsizei texelHeight);
#endif
#ifndef GL_EXT_framebuffer_blit_layers
#define GL_EXT_framebuffer_blit_layers 1
extern void (KHRONOS_APIENTRY* const& glBlitFramebufferLayersEXT) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
extern void (KHRONOS_APIENTRY* const& glBlitFramebufferLayerEXT) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint srcLayer, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLint dstLayer, GLbitfield mask, GLenum filter);
#endif
#ifndef GL_EXT_geometry_point_size
#define GL_EXT_geometry_point_size 1
#endif
@ -2481,6 +2549,10 @@ enum : GLenum
};
#endif
#ifndef GL_EXT_separate_depth_stencil
#define GL_EXT_separate_depth_stencil 1
#endif
#ifndef GL_EXT_separate_shader_objects
#define GL_EXT_separate_shader_objects 1
enum : GLenum
@ -2497,7 +2569,7 @@ extern void (KHRONOS_APIENTRY* const& glActiveProgramEXT) (GLuint progra
extern GLuint (KHRONOS_APIENTRY* const& glCreateShaderProgramEXT) (GLenum type, const GLchar *string);
extern void (KHRONOS_APIENTRY* const& glActiveShaderProgramEXT) (GLuint pipeline, GLuint program);
extern void (KHRONOS_APIENTRY* const& glBindProgramPipelineEXT) (GLuint pipeline);
extern GLuint (KHRONOS_APIENTRY* const& glCreateShaderProgramvEXT) (GLenum type, GLsizei count, const GLchar **strings);
extern GLuint (KHRONOS_APIENTRY* const& glCreateShaderProgramvEXT) (GLenum type, GLsizei count, const GLchar *const*strings);
extern void (KHRONOS_APIENTRY* const& glDeleteProgramPipelinesEXT) (GLsizei n, const GLuint *pipelines);
extern void (KHRONOS_APIENTRY* const& glGenProgramPipelinesEXT) (GLsizei n, GLuint *pipelines);
extern void (KHRONOS_APIENTRY* const& glGetProgramPipelineInfoLogEXT) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
@ -2597,6 +2669,10 @@ extern GLsizei (KHRONOS_APIENTRY* const& glGetFramebufferPixelLocalStorageS
extern void (KHRONOS_APIENTRY* const& glClearPixelLocalStorageuiEXT) (GLsizei offset, GLsizei n, const GLuint *values);
#endif
#ifndef GL_EXT_shader_samples_identical
#define GL_EXT_shader_samples_identical 1
#endif
#ifndef GL_EXT_shader_texture_lod
#define GL_EXT_shader_texture_lod 1
#endif
@ -2896,6 +2972,10 @@ enum : GLenum
};
#endif
#ifndef GL_EXT_texture_shadow_lod
#define GL_EXT_texture_shadow_lod 1
#endif
#ifndef GL_EXT_texture_storage
#define GL_EXT_texture_storage 1
enum : GLenum
@ -2925,6 +3005,28 @@ extern void (KHRONOS_APIENTRY* const& glTextureStorage2DEXT) (GLuint tex
extern void (KHRONOS_APIENTRY* const& glTextureStorage3DEXT) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
#endif
#ifndef GL_EXT_texture_storage_compression
#define GL_EXT_texture_storage_compression 1
enum : GLenum
{
GL_NUM_SURFACE_COMPRESSION_FIXED_RATES_EXT = 0x8F6E,
GL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT = 0x96C4,
GL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT = 0x96C5,
GL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT = 0x96C6,
GL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT = 0x96C7,
GL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT = 0x96C8,
GL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT = 0x96C9,
GL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT = 0x96CA,
GL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT = 0x96CB,
GL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT = 0x96CC,
GL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT = 0x96CD,
GL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT = 0x96CE,
GL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT = 0x96CF,
};
extern void (KHRONOS_APIENTRY* const& glTexStorageAttribs2DEXT) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, const GLint* attrib_list);
extern void (KHRONOS_APIENTRY* const& glTexStorageAttribs3DEXT) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, const GLint* attrib_list);
#endif
#ifndef GL_EXT_texture_type_2_10_10_10_REV
#define GL_EXT_texture_type_2_10_10_10_REV 1
enum : GLenum
@ -3395,6 +3497,10 @@ enum : GLenum
};
#endif
#ifndef GL_MESA_sampler_objects
#define GL_MESA_sampler_objects 1
#endif
#ifndef GL_MESA_shader_integer_functions
#define GL_MESA_shader_integer_functions 1
#endif
@ -4470,6 +4576,16 @@ enum : GLenum
extern void (KHRONOS_APIENTRY* const& glViewportSwizzleNV) (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew);
#endif
#ifndef GL_NV_pack_subimage
#define GL_NV_pack_subimage 1
enum : GLenum
{
GL_PACK_ROW_LENGTH_NV = 0x0D02,
GL_PACK_SKIP_ROWS_NV = 0x0D03,
GL_PACK_SKIP_PIXELS_NV = 0x0D04,
};
#endif
#ifndef GL_OES_EGL_image
#define GL_OES_EGL_image 1
extern void (KHRONOS_APIENTRY* const& glEGLImageTargetTexture2DOES) (GLenum target, GLeglImageOES image);
@ -5117,6 +5233,10 @@ extern void (KHRONOS_APIENTRY* const& glExtrapolateTex2DQCOM) (GLuint sr
#define GL_QCOM_render_shared_exponent 1
#endif
#ifndef GL_QCOM_render_sRGB_R8_RG8
#define GL_QCOM_render_sRGB_R8_RG8 1
#endif
#ifndef GL_QCOM_texture_foveated
#define GL_QCOM_texture_foveated 1
enum : GLenum
@ -5147,6 +5267,14 @@ enum : GLenum
};
#endif
#ifndef GL_QCOM_texture_lod_bias
#define GL_QCOM_texture_lod_bias 1
enum : GLenum
{
GL_TEXTURE_LOD_BIAS_QCOM = 0x8C96,
};
#endif
#ifndef GL_QCOM_perfmon_global_mode
#define GL_QCOM_perfmon_global_mode 1
enum : GLenum
@ -5245,10 +5373,6 @@ enum : GLenum
};
#endif
#ifndef GL_EXT_texture_shadow_lod
#define GL_EXT_texture_shadow_lod 1
#endif
/** Load all available functions from the OpenGL core API.

View file

@ -153,6 +153,20 @@ typedef int64_t khronos_int64_t;
typedef uint64_t khronos_uint64_t;
#define KHRONOS_SUPPORT_INT64 1
#define KHRONOS_SUPPORT_FLOAT 1
/*
* To support platform where unsigned long cannot be used interchangeably with
* inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t.
* Ideally, we could just use (u)intptr_t everywhere, but this could result in
* ABI breakage if khronos_uintptr_t is changed from unsigned long to
* unsigned long long or similar (this results in different C++ name mangling).
* To avoid changes for existing platforms, we restrict usage of intptr_t to
* platforms where the size of a pointer is larger than the size of long.
*/
#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__)
#if __SIZEOF_POINTER__ > __SIZEOF_LONG__
#define KHRONOS_USE_INTPTR_T
#endif
#endif
#elif defined(__VMS ) || defined(__sgi)
@ -235,14 +249,21 @@ typedef unsigned short int khronos_uint16_t;
* pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
* to be the only LLP64 architecture in current use.
*/
#ifdef _WIN64
#ifdef KHRONOS_USE_INTPTR_T
typedef intptr_t khronos_intptr_t;
typedef uintptr_t khronos_uintptr_t;
#elif defined(_WIN64)
typedef signed long long int khronos_intptr_t;
typedef unsigned long long int khronos_uintptr_t;
typedef signed long long int khronos_ssize_t;
typedef unsigned long long int khronos_usize_t;
#else
typedef signed long int khronos_intptr_t;
typedef unsigned long int khronos_uintptr_t;
#endif
#if defined(_WIN64)
typedef signed long long int khronos_ssize_t;
typedef unsigned long long int khronos_usize_t;
#else
typedef signed long int khronos_ssize_t;
typedef unsigned long int khronos_usize_t;
#endif