Browse Source

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.
v7.0.12
reuk 2 years ago
parent
commit
76b9b28658
No known key found for this signature in database GPG Key ID: FCB43929F012EE5C
5 changed files with 259 additions and 40 deletions
  1. +20
    -9
      modules/juce_opengl/opengl/juce_gl.cpp
  2. +59
    -17
      modules/juce_opengl/opengl/juce_gl.h
  3. +22
    -1
      modules/juce_opengl/opengl/juce_gles2.cpp
  4. +134
    -10
      modules/juce_opengl/opengl/juce_gles2.h
  5. +24
    -3
      modules/juce_opengl/opengl/juce_khrplatform.h

+ 20
- 9
modules/juce_opengl/opengl/juce_gl.cpp View File

@@ -1140,7 +1140,7 @@
X (void , glDebugMessageEnableAMD, (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled)) \ 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 , glDebugMessageInsertAMD, (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf)) \
X (void , glDebugMessageCallbackAMD, (GLDEBUGPROCAMD callback, void *userParam)) \ 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 \ #define JUCE_GL_FUNCTIONS_GL_AMD_draw_buffers_blend \
X (void , glBlendFuncIndexedAMD, (GLuint buf, GLenum src, GLenum dst)) \ X (void , glBlendFuncIndexedAMD, (GLuint buf, GLenum src, GLenum dst)) \
@@ -2189,6 +2189,10 @@
#define JUCE_GL_FUNCTIONS_GL_EXT_framebuffer_blit \ #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)) 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 \ #define JUCE_GL_FUNCTIONS_GL_EXT_framebuffer_multisample \
X (void , glRenderbufferStorageMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) 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 (GLuint , glCreateShaderProgramEXT, (GLenum type, const GLchar *string)) \
X (void , glActiveShaderProgramEXT, (GLuint pipeline, GLuint program)) \ X (void , glActiveShaderProgramEXT, (GLuint pipeline, GLuint program)) \
X (void , glBindProgramPipelineEXT, (GLuint pipeline)) \ 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 , glDeleteProgramPipelinesEXT, (GLsizei n, const GLuint *pipelines)) \
X (void , glGenProgramPipelinesEXT, (GLsizei n, GLuint *pipelines)) \ X (void , glGenProgramPipelinesEXT, (GLsizei n, GLuint *pipelines)) \
X (void , glGetProgramPipelineInfoLogEXT, (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \ X (void , glGetProgramPipelineInfoLogEXT, (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \
@@ -2439,6 +2443,11 @@
#define JUCE_GL_FUNCTIONS_GL_EXT_texture_perturb_normal \ #define JUCE_GL_FUNCTIONS_GL_EXT_texture_perturb_normal \
X (void , glTextureNormalEXT, (GLenum mode)) 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 \ #define JUCE_GL_FUNCTIONS_GL_NV_timeline_semaphore \
X (void , glCreateSemaphoresNV, (GLsizei n, GLuint *semaphores)) \ X (void , glCreateSemaphoresNV, (GLsizei n, GLuint *semaphores)) \
X (void , glSemaphoreParameterivNV, (GLuint semaphore, GLenum pname, const GLint *params)) \ X (void , glSemaphoreParameterivNV, (GLuint semaphore, GLenum pname, const GLint *params)) \
@@ -2850,12 +2859,6 @@
X (void , glMultiTexCoord3hvNV, (GLenum target, const GLhalfNV *v)) \ X (void , glMultiTexCoord3hvNV, (GLenum target, const GLhalfNV *v)) \
X (void , glMultiTexCoord4hNV, (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q)) \ X (void , glMultiTexCoord4hNV, (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q)) \
X (void , glMultiTexCoord4hvNV, (GLenum target, const GLhalfNV *v)) \ 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 , glVertexAttrib1hNV, (GLuint index, GLhalfNV x)) \
X (void , glVertexAttrib1hvNV, (GLuint index, const GLhalfNV *v)) \ X (void , glVertexAttrib1hvNV, (GLuint index, const GLhalfNV *v)) \
X (void , glVertexAttrib2hNV, (GLuint index, GLhalfNV x, GLhalfNV y)) \ 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 , glVertexAttribs1hvNV, (GLuint index, GLsizei n, const GLhalfNV *v)) \
X (void , glVertexAttribs2hvNV, (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 , 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 \ #define JUCE_GL_FUNCTIONS_GL_NV_internalformat_sample_query \
X (void , glGetInternalformatSampleivNV, (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params)) 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_external_buffer \
JUCE_GL_FUNCTIONS_GL_EXT_fog_coord \ JUCE_GL_FUNCTIONS_GL_EXT_fog_coord \
JUCE_GL_FUNCTIONS_GL_EXT_framebuffer_blit \ 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_multisample \
JUCE_GL_FUNCTIONS_GL_EXT_framebuffer_object \ JUCE_GL_FUNCTIONS_GL_EXT_framebuffer_object \
JUCE_GL_FUNCTIONS_GL_EXT_geometry_shader4 \ JUCE_GL_FUNCTIONS_GL_EXT_geometry_shader4 \
@@ -3917,6 +3927,7 @@
JUCE_GL_FUNCTIONS_GL_EXT_texture_integer \ JUCE_GL_FUNCTIONS_GL_EXT_texture_integer \
JUCE_GL_FUNCTIONS_GL_EXT_texture_object \ JUCE_GL_FUNCTIONS_GL_EXT_texture_object \
JUCE_GL_FUNCTIONS_GL_EXT_texture_perturb_normal \ 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_NV_timeline_semaphore \
JUCE_GL_FUNCTIONS_GL_EXT_timer_query \ JUCE_GL_FUNCTIONS_GL_EXT_timer_query \
JUCE_GL_FUNCTIONS_GL_EXT_transform_feedback \ JUCE_GL_FUNCTIONS_GL_EXT_transform_feedback \


+ 59
- 17
modules/juce_opengl/opengl/juce_gl.h View File

@@ -192,13 +192,13 @@ typedef khronos_uint64_t GLuint64EXT;
typedef struct __GLsync *GLsync; typedef struct __GLsync *GLsync;
struct _cl_context; struct _cl_context;
struct _cl_event; 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 unsigned short GLhalfNV;
typedef GLintptr GLvdpauSurfaceNV; typedef GLintptr GLvdpauSurfaceNV;
typedef void ( *GLVULKANPROCNV)(void);
typedef void (KHRONOS_APIENTRY *GLVULKANPROCNV)(void);
JUCE_END_IGNORE_WARNINGS_GCC_LIKE 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& 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& glDebugMessageInsertAMD) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf);
extern void (KHRONOS_APIENTRY* const& glDebugMessageCallbackAMD) (GLDEBUGPROCAMD callback, void *userParam); 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 #endif
#ifndef GL_AMD_depth_clamp_separate #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); 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 #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 #ifndef GL_EXT_framebuffer_multisample
#define GL_EXT_framebuffer_multisample 1 #define GL_EXT_framebuffer_multisample 1
enum : GLenum 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 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& glActiveShaderProgramEXT) (GLuint pipeline, GLuint program);
extern void (KHRONOS_APIENTRY* const& glBindProgramPipelineEXT) (GLuint pipeline); 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& glDeleteProgramPipelinesEXT) (GLsizei n, const GLuint *pipelines);
extern void (KHRONOS_APIENTRY* const& glGenProgramPipelinesEXT) (GLsizei n, 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); 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 #define GL_EXT_shader_integer_mix 1
#endif #endif
#ifndef GL_EXT_shader_samples_identical
#define GL_EXT_shader_samples_identical 1
#endif
#ifndef GL_EXT_shadow_funcs #ifndef GL_EXT_shadow_funcs
#define GL_EXT_shadow_funcs 1 #define GL_EXT_shadow_funcs 1
#endif #endif
@@ -7765,6 +7775,10 @@ enum : GLenum
}; };
#endif #endif
#ifndef GL_EXT_texture_shadow_lod
#define GL_EXT_texture_shadow_lod 1
#endif
#ifndef GL_EXT_texture_shared_exponent #ifndef GL_EXT_texture_shared_exponent
#define GL_EXT_texture_shared_exponent 1 #define GL_EXT_texture_shared_exponent 1
enum : GLenum enum : GLenum
@@ -7798,6 +7812,34 @@ enum : GLenum
}; };
#endif #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 #ifndef GL_EXT_texture_swizzle
#define GL_EXT_texture_swizzle 1 #define GL_EXT_texture_swizzle 1
enum : GLenum 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& 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& 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& 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& glVertexAttrib1hNV) (GLuint index, GLhalfNV x);
extern void (KHRONOS_APIENTRY* const& glVertexAttrib1hvNV) (GLuint index, const GLhalfNV *v); extern void (KHRONOS_APIENTRY* const& glVertexAttrib1hvNV) (GLuint index, const GLhalfNV *v);
extern void (KHRONOS_APIENTRY* const& glVertexAttrib2hNV) (GLuint index, GLhalfNV x, GLhalfNV y); 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& 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& 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& 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 #endif
#ifndef GL_NV_internalformat_sample_query #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); extern void (KHRONOS_APIENTRY* const& glDrawTransformFeedbackNV) (GLenum mode, GLuint id);
#endif #endif
#ifndef GL_NV_uniform_buffer_std430_layout
#define GL_NV_uniform_buffer_std430_layout 1
#endif
#ifndef GL_NV_uniform_buffer_unified_memory #ifndef GL_NV_uniform_buffer_unified_memory
#define GL_NV_uniform_buffer_unified_memory 1 #define GL_NV_uniform_buffer_unified_memory 1
enum : GLenum enum : GLenum
@@ -11983,10 +12029,6 @@ enum : GLenum
}; };
#endif #endif
#ifndef GL_EXT_texture_shadow_lod
#define GL_EXT_texture_shadow_lod 1
#endif
/** Load all available functions from the OpenGL core API. /** Load all available functions from the OpenGL core API.


+ 22
- 1
modules/juce_opengl/opengl/juce_gles2.cpp View File

@@ -460,6 +460,9 @@
X (void , glGetInteger64vAPPLE, (GLenum pname, GLint64 *params)) \ X (void , glGetInteger64vAPPLE, (GLenum pname, GLint64 *params)) \
X (void , glGetSyncivAPPLE, (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values)) 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 \ #define JUCE_GL_FUNCTIONS_GL_EXT_EGL_image_storage \
X (void , glEGLImageTargetTexStorageEXT, (GLenum target, GLeglImageOES image, const GLint* attrib_list)) \ X (void , glEGLImageTargetTexStorageEXT, (GLenum target, GLeglImageOES image, const GLint* attrib_list)) \
X (void , glEGLImageTargetTextureStorageEXT, (GLuint texture, 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 , glBufferStorageExternalEXT, (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags)) \
X (void , glNamedBufferStorageExternalEXT, (GLuint buffer, 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 \ #define JUCE_GL_FUNCTIONS_GL_EXT_geometry_shader \
X (void , glFramebufferTextureEXT, (GLenum target, GLenum attachment, GLuint texture, GLint level)) X (void , glFramebufferTextureEXT, (GLenum target, GLenum attachment, GLuint texture, GLint level))
@@ -640,7 +653,7 @@
X (GLuint , glCreateShaderProgramEXT, (GLenum type, const GLchar *string)) \ X (GLuint , glCreateShaderProgramEXT, (GLenum type, const GLchar *string)) \
X (void , glActiveShaderProgramEXT, (GLuint pipeline, GLuint program)) \ X (void , glActiveShaderProgramEXT, (GLuint pipeline, GLuint program)) \
X (void , glBindProgramPipelineEXT, (GLuint pipeline)) \ 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 , glDeleteProgramPipelinesEXT, (GLsizei n, const GLuint *pipelines)) \
X (void , glGenProgramPipelinesEXT, (GLsizei n, GLuint *pipelines)) \ X (void , glGenProgramPipelinesEXT, (GLsizei n, GLuint *pipelines)) \
X (void , glGetProgramPipelineInfoLogEXT, (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \ 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 , 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)) 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 \ #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)) 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_copy_texture_levels \
JUCE_GL_FUNCTIONS_GL_APPLE_framebuffer_multisample \ JUCE_GL_FUNCTIONS_GL_APPLE_framebuffer_multisample \
JUCE_GL_FUNCTIONS_GL_APPLE_sync \ 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_EGL_image_storage \
JUCE_GL_FUNCTIONS_GL_EXT_base_instance \ JUCE_GL_FUNCTIONS_GL_EXT_base_instance \
JUCE_GL_FUNCTIONS_GL_EXT_blend_func_extended \ 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_instanced \
JUCE_GL_FUNCTIONS_GL_EXT_draw_transform_feedback \ JUCE_GL_FUNCTIONS_GL_EXT_draw_transform_feedback \
JUCE_GL_FUNCTIONS_GL_EXT_external_buffer \ 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_geometry_shader \
JUCE_GL_FUNCTIONS_GL_EXT_instanced_arrays \ JUCE_GL_FUNCTIONS_GL_EXT_instanced_arrays \
JUCE_GL_FUNCTIONS_GL_EXT_map_buffer_range \ 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_border_clamp \
JUCE_GL_FUNCTIONS_GL_EXT_texture_buffer \ JUCE_GL_FUNCTIONS_GL_EXT_texture_buffer \
JUCE_GL_FUNCTIONS_GL_EXT_texture_storage \ 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_EXT_texture_view \
JUCE_GL_FUNCTIONS_GL_NV_timeline_semaphore \ JUCE_GL_FUNCTIONS_GL_NV_timeline_semaphore \
JUCE_GL_FUNCTIONS_GL_EXT_win32_keyed_mutex \ JUCE_GL_FUNCTIONS_GL_EXT_win32_keyed_mutex \


+ 134
- 10
modules/juce_opengl/opengl/juce_gles2.h View File

@@ -85,13 +85,13 @@ typedef khronos_uint64_t GLuint64EXT;
typedef struct __GLsync *GLsync; typedef struct __GLsync *GLsync;
struct _cl_context; struct _cl_context;
struct _cl_event; 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 unsigned short GLhalfNV;
typedef GLintptr GLvdpauSurfaceNV; typedef GLintptr GLvdpauSurfaceNV;
typedef void ( *GLVULKANPROCNV)(void);
typedef void (KHRONOS_APIENTRY *GLVULKANPROCNV)(void);
JUCE_END_IGNORE_WARNINGS_GCC_LIKE JUCE_END_IGNORE_WARNINGS_GCC_LIKE
@@ -1790,6 +1790,21 @@ enum : GLenum
#define GL_ARM_rgba8 1 #define GL_ARM_rgba8 1
#endif #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 #ifndef GL_ARM_shader_framebuffer_fetch
#define GL_ARM_shader_framebuffer_fetch 1 #define GL_ARM_shader_framebuffer_fetch 1
enum : GLenum 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); extern void (KHRONOS_APIENTRY* const& glEGLImageTargetTextureStorageEXT) (GLuint texture, GLeglImageOES image, const GLint* attrib_list);
#endif #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 #ifndef GL_EXT_YUV_target
#define GL_EXT_YUV_target 1 #define GL_EXT_YUV_target 1
enum : GLenum enum : GLenum
@@ -2117,6 +2142,49 @@ extern void (KHRONOS_APIENTRY* const& glNamedBufferStorageExternalEXT) (
#define GL_EXT_float_blend 1 #define GL_EXT_float_blend 1
#endif #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 #ifndef GL_EXT_geometry_point_size
#define GL_EXT_geometry_point_size 1 #define GL_EXT_geometry_point_size 1
#endif #endif
@@ -2481,6 +2549,10 @@ enum : GLenum
}; };
#endif #endif
#ifndef GL_EXT_separate_depth_stencil
#define GL_EXT_separate_depth_stencil 1
#endif
#ifndef GL_EXT_separate_shader_objects #ifndef GL_EXT_separate_shader_objects
#define GL_EXT_separate_shader_objects 1 #define GL_EXT_separate_shader_objects 1
enum : GLenum 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 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& glActiveShaderProgramEXT) (GLuint pipeline, GLuint program);
extern void (KHRONOS_APIENTRY* const& glBindProgramPipelineEXT) (GLuint pipeline); 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& glDeleteProgramPipelinesEXT) (GLsizei n, const GLuint *pipelines);
extern void (KHRONOS_APIENTRY* const& glGenProgramPipelinesEXT) (GLsizei n, 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); 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); extern void (KHRONOS_APIENTRY* const& glClearPixelLocalStorageuiEXT) (GLsizei offset, GLsizei n, const GLuint *values);
#endif #endif
#ifndef GL_EXT_shader_samples_identical
#define GL_EXT_shader_samples_identical 1
#endif
#ifndef GL_EXT_shader_texture_lod #ifndef GL_EXT_shader_texture_lod
#define GL_EXT_shader_texture_lod 1 #define GL_EXT_shader_texture_lod 1
#endif #endif
@@ -2896,6 +2972,10 @@ enum : GLenum
}; };
#endif #endif
#ifndef GL_EXT_texture_shadow_lod
#define GL_EXT_texture_shadow_lod 1
#endif
#ifndef GL_EXT_texture_storage #ifndef GL_EXT_texture_storage
#define GL_EXT_texture_storage 1 #define GL_EXT_texture_storage 1
enum : GLenum 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); extern void (KHRONOS_APIENTRY* const& glTextureStorage3DEXT) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
#endif #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 #ifndef GL_EXT_texture_type_2_10_10_10_REV
#define GL_EXT_texture_type_2_10_10_10_REV 1 #define GL_EXT_texture_type_2_10_10_10_REV 1
enum : GLenum enum : GLenum
@@ -3395,6 +3497,10 @@ enum : GLenum
}; };
#endif #endif
#ifndef GL_MESA_sampler_objects
#define GL_MESA_sampler_objects 1
#endif
#ifndef GL_MESA_shader_integer_functions #ifndef GL_MESA_shader_integer_functions
#define GL_MESA_shader_integer_functions 1 #define GL_MESA_shader_integer_functions 1
#endif #endif
@@ -4470,6 +4576,16 @@ enum : GLenum
extern void (KHRONOS_APIENTRY* const& glViewportSwizzleNV) (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); extern void (KHRONOS_APIENTRY* const& glViewportSwizzleNV) (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew);
#endif #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 #ifndef GL_OES_EGL_image
#define GL_OES_EGL_image 1 #define GL_OES_EGL_image 1
extern void (KHRONOS_APIENTRY* const& glEGLImageTargetTexture2DOES) (GLenum target, GLeglImageOES image); 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 #define GL_QCOM_render_shared_exponent 1
#endif #endif
#ifndef GL_QCOM_render_sRGB_R8_RG8
#define GL_QCOM_render_sRGB_R8_RG8 1
#endif
#ifndef GL_QCOM_texture_foveated #ifndef GL_QCOM_texture_foveated
#define GL_QCOM_texture_foveated 1 #define GL_QCOM_texture_foveated 1
enum : GLenum enum : GLenum
@@ -5147,6 +5267,14 @@ enum : GLenum
}; };
#endif #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 #ifndef GL_QCOM_perfmon_global_mode
#define GL_QCOM_perfmon_global_mode 1 #define GL_QCOM_perfmon_global_mode 1
enum : GLenum enum : GLenum
@@ -5245,10 +5373,6 @@ enum : GLenum
}; };
#endif #endif
#ifndef GL_EXT_texture_shadow_lod
#define GL_EXT_texture_shadow_lod 1
#endif
/** Load all available functions from the OpenGL core API. /** Load all available functions from the OpenGL core API.


+ 24
- 3
modules/juce_opengl/opengl/juce_khrplatform.h View File

@@ -153,6 +153,20 @@ typedef int64_t khronos_int64_t;
typedef uint64_t khronos_uint64_t; typedef uint64_t khronos_uint64_t;
#define KHRONOS_SUPPORT_INT64 1 #define KHRONOS_SUPPORT_INT64 1
#define KHRONOS_SUPPORT_FLOAT 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) #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 * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
* to be the only LLP64 architecture in current use. * 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 signed long long int khronos_intptr_t;
typedef unsigned long long int khronos_uintptr_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 #else
typedef signed long int khronos_intptr_t; typedef signed long int khronos_intptr_t;
typedef unsigned long int khronos_uintptr_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 signed long int khronos_ssize_t;
typedef unsigned long int khronos_usize_t; typedef unsigned long int khronos_usize_t;
#endif #endif


Loading…
Cancel
Save