Browse Source

GL: recognize and load ANGLE multi-draw extensions.

Needed a change in flextGL to allow merging in 3rd party gl.xml
additions because Chrome is apparently a center of the universe and thus
doesn't need to bother upstreaming its extensions, ffs.
pull/495/head
Vladimír Vondruš 5 years ago
parent
commit
b0bc366334
  1. 13
      doc/changelog.dox
  2. 4
      doc/opengl-support.dox
  3. 6
      src/Magnum/GL/Context.cpp
  4. 50
      src/Magnum/GL/Extensions.h
  5. 7
      src/MagnumExternal/OpenGL/GLES2/Emscripten/extensions.txt
  6. 13
      src/MagnumExternal/OpenGL/GLES2/extensions.txt
  7. 32
      src/MagnumExternal/OpenGL/GLES2/flextGL.h
  8. 14
      src/MagnumExternal/OpenGL/GLES2/flextGLEmscripten.h
  9. 13
      src/MagnumExternal/OpenGL/GLES2/flextGLPlatform.cpp
  10. 26
      src/MagnumExternal/OpenGL/GLES2/flextGLPlatformIOS.cpp
  11. 13
      src/MagnumExternal/OpenGL/GLES2/flextGLPlatformWindowsDesktop.cpp
  12. 32
      src/MagnumExternal/OpenGL/GLES2/flextGLWindowsDesktop.h
  13. 8
      src/MagnumExternal/OpenGL/GLES3/Emscripten/extensions.txt
  14. 8
      src/MagnumExternal/OpenGL/GLES3/extensions.txt
  15. 54
      src/MagnumExternal/OpenGL/GLES3/flextGL.h
  16. 14
      src/MagnumExternal/OpenGL/GLES3/flextGLEmscripten.h
  17. 23
      src/MagnumExternal/OpenGL/GLES3/flextGLPlatform.cpp
  18. 46
      src/MagnumExternal/OpenGL/GLES3/flextGLPlatformIOS.cpp
  19. 23
      src/MagnumExternal/OpenGL/GLES3/flextGLPlatformWindowsDesktop.cpp
  20. 54
      src/MagnumExternal/OpenGL/GLES3/flextGLWindowsDesktop.h

13
doc/changelog.dox

@ -62,11 +62,14 @@ See also:
@webgl_extension{WEBGL,debug_renderer_info} and
@webgl_extension{WEBGL,debug_shaders} extensions, no implementation done
yet
- Recognizing @webgl_extension{WEBGL,multi_draw},
@webgl_extension{WEBGL,draw_instanced_base_vertex_base_instance} and
@webgl_extension{WEBGL,multi_draw_instanced_base_vertex_base_instance}
extensions, however there's no Emscripten entrypoints for those yet which
means these can'be implemented right now.
- Recognizing ANGLE GLES and WebGL multi-draw extensions:
- @m_class{m-doc-external} [ANGLE_multi_draw](https://chromium.googlesource.com/angle/angle/+/master/extensions/ANGLE_multi_draw.txt)
- @m_class{m-doc-external} [ANGLE_base_vertex_base_instance](https://chromium.googlesource.com/angle/angle/+/master/extensions/ANGLE_base_vertex_base_instance.txt)
- @gl_extension{EXT,draw_elements_base_vertex}
- @gl_extension{OES,draw_elements_base_vertex}
- @webgl_extension{WEBGL,multi_draw}
- @webgl_extension{WEBGL,draw_instanced_base_vertex_base_instance}
- @webgl_extension{WEBGL,multi_draw_instanced_base_vertex_base_instance}
- Added a @ref GL::AbstractTexture::target() getter to simplify interaction
with raw GL code
- Exposed @gl_extension{ARB,buffer_storage} as

4
doc/opengl-support.dox

@ -449,6 +449,8 @@ Extension | Status
@gl_extension2{ANGLE,texture_compression_dxt1,ANGLE_texture_compression_dxt} | done
@gl_extension2{ANGLE,texture_compression_dxt3,ANGLE_texture_compression_dxt} | done
@gl_extension2{ANGLE,texture_compression_dxt5,ANGLE_texture_compression_dxt} | done
@m_class{m-doc-external} [ANGLE_multi_draw](https://chromium.googlesource.com/angle/angle/+/master/extensions/ANGLE_multi_draw.txt) (unlisted) | |
@m_class{m-doc-external} [ANGLE_base_vertex_base_instance](https://chromium.googlesource.com/angle/angle/+/master/extensions/ANGLE_base_vertex_base_instance.txt) (unlisted) | |
@gl_extension{APPLE,texture_format_BGRA8888} | done
@gl_extension{APPLE,clip_distance} | done
@gl_extension{ARM,shader_framebuffer_fetch} | missing renderer setup and limit query
@ -470,6 +472,7 @@ Extension | Status
@gl_extension{EXT,texture_compression_s3tc} | done
@gl_extension{EXT,pvrtc_sRGB} | done
@gl_extension{EXT,shader_integer_mix} | done (shading language only)
@gl_extension{EXT,draw_elements_base_vertex} | |
@gl_extension{EXT,texture_norm16} | done
@gl_extension{EXT,texture_sRGB_R8} | done
@gl_extension{EXT,texture_sRGB_RG8} | done
@ -497,6 +500,7 @@ Extension | Status
@gl_extension{OES,stencil1} | done
@gl_extension{OES,stencil4} | done
@gl_extension{OES,texture_float_linear} | done
@gl_extension{OES,draw_elements_base_vertex} | |
@gl_extension{OVR,multiview} | |
@gl_extension{OVR,multiview2} | |

6
src/Magnum/GL/Context.cpp

@ -327,6 +327,10 @@ constexpr Extension ExtensionList[]{
#ifndef MAGNUM_TARGET_GLES2
_extension(ANDROID,extension_pack_es31a),
#endif
#ifndef MAGNUM_TARGET_GLES2
_extension(ANGLE,base_vertex_base_instance),
#endif
_extension(ANGLE,multi_draw),
_extension(ANGLE,texture_compression_dxt1),
_extension(ANGLE,texture_compression_dxt3),
_extension(ANGLE,texture_compression_dxt5),
@ -340,6 +344,7 @@ constexpr Extension ExtensionList[]{
_extension(EXT,debug_label),
_extension(EXT,debug_marker),
_extension(EXT,disjoint_timer_query),
_extension(EXT,draw_elements_base_vertex),
_extension(EXT,multi_draw_arrays),
_extension(EXT,multisampled_render_to_texture),
_extension(EXT,polygon_offset_clamp),
@ -391,6 +396,7 @@ constexpr Extension ExtensionList[]{
#endif
_extension(NV,texture_border_clamp),
_extension(OES,depth32),
_extension(OES,draw_elements_base_vertex),
_extension(OES,mapbuffer),
_extension(OES,stencil1),
_extension(OES,stencil4),

50
src/Magnum/GL/Extensions.h

@ -368,21 +368,29 @@ namespace ANDROID {
#ifdef MAGNUM_TARGET_GLES2
_extension( 8,ANGLE,depth_texture, GLES200, GLES300) // #138
#endif
/* Unlike the WEBGL variants, these don't have a number assigned because
Google just doesn't give a shit. These are also not in the official
gl.xml but had to be fetched from an extra file inside ANGLE's repo
(which doesn't even follow the XML schema, so it had to be fixed). */
_extension( 9,ANGLE,multi_draw, GLES200, None) // #???
#ifndef MAGNUM_TARGET_GLES2
_extension( 10,ANGLE,base_vertex_base_instance, GLES310, None) // #???
#endif
} namespace APPLE {
#ifdef MAGNUM_TARGET_GLES2
_extension( 9,APPLE,framebuffer_multisample, GLES200, GLES300) // #78
_extension( 11,APPLE,framebuffer_multisample, GLES200, GLES300) // #78
#endif
_extension( 10,APPLE,texture_format_BGRA8888, GLES200, None) // #79
_extension( 12,APPLE,texture_format_BGRA8888, GLES200, None) // #79
#ifdef MAGNUM_TARGET_GLES2
_extension( 11,APPLE,texture_max_level, GLES200, GLES300) // #80
_extension( 13,APPLE,texture_max_level, GLES200, GLES300) // #80
#endif
_extension( 12,APPLE,clip_distance, GLES200, None) // #193
_extension( 14,APPLE,clip_distance, GLES200, None) // #193
} namespace ARM {
#ifdef MAGNUM_TARGET_GLES2
_extension( 13,ARM,rgba8, GLES200, GLES300) // #82
_extension( 15,ARM,rgba8, GLES200, GLES300) // #82
#endif
_extension( 14,ARM,shader_framebuffer_fetch, GLES200, None) // #165
_extension( 15,ARM,shader_framebuffer_fetch_depth_stencil, GLES200, None) // #166
_extension( 16,ARM,shader_framebuffer_fetch, GLES200, None) // #165
_extension( 17,ARM,shader_framebuffer_fetch_depth_stencil, GLES200, None) // #166
} namespace EXT {
_extension( 19,EXT,texture_filter_anisotropic, GLES200, None) // #41
#ifdef MAGNUM_TARGET_GLES2
@ -450,19 +458,22 @@ namespace ANDROID {
_extension( 59,EXT,texture_buffer, GLES310, GLES320) // #183
_extension( 60,EXT,texture_cube_map_array, GLES310, GLES320) // #184
_extension( 61,EXT,primitive_bounding_box, GLES310, GLES320) // #186
_extension( 62,EXT,texture_norm16, GLES310, None) // #207
_extension( 63,EXT,texture_sRGB_R8, GLES300, None) // #221
_extension( 64,EXT,texture_sRGB_RG8, GLES300, None) // #223
#endif
_extension( 65,EXT,polygon_offset_clamp, GLES200, None) // #252
_extension( 62,EXT,draw_elements_base_vertex, GLES200, None) // #204
#ifndef MAGNUM_TARGET_GLES2
_extension( 63,EXT,texture_norm16, GLES310, None) // #207
_extension( 64,EXT,texture_sRGB_R8, GLES300, None) // #221
_extension( 65,EXT,texture_sRGB_RG8, GLES300, None) // #223
#endif
_extension( 66,EXT,polygon_offset_clamp, GLES200, None) // #252
#ifndef MAGNUM_TARGET_GLES2
_extension( 66,EXT,clip_cull_distance, GLES300, None) // #257
_extension( 67,EXT,texture_compression_rgtc, GLES300, None) // #286
_extension( 68,EXT,texture_compression_bptc, GLES300, None) // #287
_extension( 67,EXT,clip_cull_distance, GLES300, None) // #257
_extension( 68,EXT,texture_compression_rgtc, GLES300, None) // #286
_extension( 69,EXT,texture_compression_bptc, GLES300, None) // #287
#endif
_extension( 69,EXT,texture_compression_s3tc_srgb, GLES200, None) // #289
_extension( 70,EXT,texture_compression_s3tc_srgb, GLES200, None) // #289
} namespace IMG {
_extension( 70,IMG,texture_compression_pvrtc, GLES200, None) // #54
_extension( 71,IMG,texture_compression_pvrtc, GLES200, None) // #54
} namespace KHR {
_extension( 80,KHR,texture_compression_astc_ldr,GLES200, GLES320) // #117
_extension( 81,KHR,texture_compression_astc_hdr,GLES200, None) // #117
@ -545,14 +556,15 @@ namespace ANDROID {
#ifndef MAGNUM_TARGET_GLES2
_extension(147,OES,texture_storage_multisample_2d_array, GLES310, GLES320) // #174
#endif
_extension(148,OES,draw_elements_base_vertex, GLES200, None) // #219
} namespace OVR {
#ifndef MAGNUM_TARGET_GLES2
_extension(148,OVR,multiview, GLES300, None) // #241
_extension(149,OVR,multiview2, GLES300, None) // #242
_extension(149,OVR,multiview, GLES300, None) // #241
_extension(150,OVR,multiview2, GLES300, None) // #242
#endif
} namespace MAGNUM {
#ifndef MAGNUM_TARGET_GLES2
_extension(150,MAGNUM,shader_vertex_id, GLES300, GLES300)
_extension(151,MAGNUM,shader_vertex_id, GLES300, GLES300)
#endif
}
#endif

7
src/MagnumExternal/OpenGL/GLES2/Emscripten/extensions.txt vendored

@ -4,6 +4,8 @@
version 2.0 es
extraspec https://raw.githubusercontent.com/google/angle/master/scripts/gl_angle_ext.xml
extension ANGLE_instanced_arrays optional
extension EXT_color_buffer_half_float optional
extension EXT_sRGB optional
@ -37,6 +39,11 @@ extension KHR_texture_compression_astc_ldr optional
# barrier
extension KHR_blend_equation_advanced optional
# From the gl_angle_ext file, base for WEBGL_multi_draw
extension ANGLE_multi_draw optional
# Base for WEBGL_{multi_,}draw_instanced_base_vertex_base_instance
extension ANGLE_base_vertex_base_instance optional
begin functions blacklist
# Not present in WEBGL_blend_equation_advanced_coherent
BlendBarrierKHR

13
src/MagnumExternal/OpenGL/GLES2/extensions.txt vendored

@ -4,6 +4,8 @@
version 2.0 es
extraspec https://raw.githubusercontent.com/google/angle/master/scripts/gl_angle_ext.xml
extension ANGLE_framebuffer_blit optional
extension ANGLE_framebuffer_multisample optional
extension ANGLE_instanced_arrays optional
@ -87,6 +89,7 @@ extension EXT_texture_sRGB_decode optional
extension EXT_sRGB_write_control optional
extension EXT_texture_compression_s3tc optional
extension EXT_pvrtc_sRGB optional
extension EXT_draw_elements_base_vertex optional
extension EXT_polygon_offset_clamp optional
extension EXT_texture_compression_s3tc_srgb optional
extension IMG_texture_compression_pvrtc optional
@ -106,6 +109,10 @@ extension OES_depth32 optional
extension OES_mapbuffer optional
extension OES_stencil1 optional
extension OES_stencil4 optional
extension OES_draw_elements_base_vertex optional
# From the gl_angle_ext file
extension ANGLE_multi_draw optional
begin functions blacklist
# These are listed in EXT_separate_shader_objects with only the comment
@ -141,6 +148,12 @@ begin functions blacklist
TextureStorage1DEXT
TextureStorage2DEXT
TextureStorage3DEXT
# EXT/OES_draw_elements_base_vertex lists those are only present in ES3
DrawRangeElementsBaseVertexEXT
DrawRangeElementsBaseVertexOES
DrawElementsInstancedBaseVertexEXT
DrawElementsInstancedBaseVertexOES
end functions blacklist
# kate: hl python

32
src/MagnumExternal/OpenGL/GLES2/flextGL.h vendored

@ -1230,6 +1230,13 @@ struct FlextGL {
void(APIENTRY *DrawElementsInstancedANGLE)(GLenum, GLsizei, GLenum, const void *, GLsizei);
void(APIENTRY *VertexAttribDivisorANGLE)(GLuint, GLuint);
/* GL_ANGLE_multi_draw */
void(APIENTRY *MultiDrawArraysANGLE)(GLenum, const GLint *, const GLsizei *, GLsizei);
void(APIENTRY *MultiDrawArraysInstancedANGLE)(GLenum, const GLint *, const GLsizei *, const GLsizei *, GLsizei);
void(APIENTRY *MultiDrawElementsANGLE)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei);
void(APIENTRY *MultiDrawElementsInstancedANGLE)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, const GLsizei*, GLsizei);
/* GL_APPLE_framebuffer_multisample */
void(APIENTRY *RenderbufferStorageMultisampleAPPLE)(GLenum, GLsizei, GLenum, GLsizei, GLsizei);
@ -1273,6 +1280,11 @@ struct FlextGL {
void(APIENTRY *EnableiEXT)(GLenum, GLuint);
GLboolean(APIENTRY *IsEnablediEXT)(GLenum, GLuint);
/* GL_EXT_draw_elements_base_vertex */
void(APIENTRY *DrawElementsBaseVertexEXT)(GLenum, GLsizei, GLenum, const void *, GLint);
void(APIENTRY *MultiDrawElementsBaseVertexEXT)(GLenum, const GLsizei *, GLenum, const void *const*, GLsizei, const GLint *);
/* GL_EXT_instanced_arrays */
void(APIENTRY *DrawArraysInstancedEXT)(GLenum, GLint, GLsizei, GLsizei);
@ -1425,6 +1437,10 @@ struct FlextGL {
void(APIENTRY *NamedFramebufferSampleLocationsfvNV)(GLuint, GLuint, GLsizei, const GLfloat *);
void(APIENTRY *ResolveDepthValuesNV)(void);
/* GL_OES_draw_elements_base_vertex */
void(APIENTRY *DrawElementsBaseVertexOES)(GLenum, GLsizei, GLenum, const void *, GLint);
/* GL_OES_mapbuffer */
void(APIENTRY *GetBufferPointervOES)(GLenum, GLenum, void **);
@ -1464,6 +1480,13 @@ extern FLEXTGL_EXPORT FlextGL flextGL;
#define glDrawElementsInstancedANGLE flextGL.DrawElementsInstancedANGLE
#define glVertexAttribDivisorANGLE flextGL.VertexAttribDivisorANGLE
/* GL_ANGLE_multi_draw */
#define glMultiDrawArraysANGLE flextGL.MultiDrawArraysANGLE
#define glMultiDrawArraysInstancedANGLE flextGL.MultiDrawArraysInstancedANGLE
#define glMultiDrawElementsANGLE flextGL.MultiDrawElementsANGLE
#define glMultiDrawElementsInstancedANGLE flextGL.MultiDrawElementsInstancedANGLE
/* GL_APPLE_framebuffer_multisample */
#define glRenderbufferStorageMultisampleAPPLE flextGL.RenderbufferStorageMultisampleAPPLE
@ -1507,6 +1530,11 @@ extern FLEXTGL_EXPORT FlextGL flextGL;
#define glEnableiEXT flextGL.EnableiEXT
#define glIsEnablediEXT flextGL.IsEnablediEXT
/* GL_EXT_draw_elements_base_vertex */
#define glDrawElementsBaseVertexEXT flextGL.DrawElementsBaseVertexEXT
#define glMultiDrawElementsBaseVertexEXT flextGL.MultiDrawElementsBaseVertexEXT
/* GL_EXT_instanced_arrays */
#define glDrawArraysInstancedEXT flextGL.DrawArraysInstancedEXT
@ -1659,6 +1687,10 @@ extern FLEXTGL_EXPORT FlextGL flextGL;
#define glNamedFramebufferSampleLocationsfvNV flextGL.NamedFramebufferSampleLocationsfvNV
#define glResolveDepthValuesNV flextGL.ResolveDepthValuesNV
/* GL_OES_draw_elements_base_vertex */
#define glDrawElementsBaseVertexOES flextGL.DrawElementsBaseVertexOES
/* GL_OES_mapbuffer */
#define glGetBufferPointervOES flextGL.GetBufferPointervOES

14
src/MagnumExternal/OpenGL/GLES2/flextGLEmscripten.h vendored

@ -589,12 +589,26 @@ typedef khronos_uint64_t GLuint64;
/* Function prototypes */
/* GL_ANGLE_base_vertex_base_instance */
GLAPI void glDrawArraysInstancedBaseInstanceANGLE(GLenum, GLint, GLsizei, GLsizei, GLuint);
GLAPI void glDrawElementsInstancedBaseVertexBaseInstanceANGLE(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLint, GLuint);
GLAPI void glMultiDrawArraysInstancedBaseInstanceANGLE(GLenum, const GLint *, const GLsizei *, const GLsizei *, const GLuint *, GLsizei);
GLAPI void glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE(GLenum, const GLsizei *, GLenum, const GLvoid *const*, const GLsizei *, const GLint *, const GLuint *, GLsizei);
/* GL_ANGLE_instanced_arrays */
GLAPI void glDrawArraysInstancedANGLE(GLenum, GLint, GLsizei, GLsizei);
GLAPI void glDrawElementsInstancedANGLE(GLenum, GLsizei, GLenum, const void *, GLsizei);
GLAPI void glVertexAttribDivisorANGLE(GLuint, GLuint);
/* GL_ANGLE_multi_draw */
GLAPI void glMultiDrawArraysANGLE(GLenum, const GLint *, const GLsizei *, GLsizei);
GLAPI void glMultiDrawArraysInstancedANGLE(GLenum, const GLint *, const GLsizei *, const GLsizei *, GLsizei);
GLAPI void glMultiDrawElementsANGLE(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei);
GLAPI void glMultiDrawElementsInstancedANGLE(GLenum, const GLsizei *, GLenum, const GLvoid *const*, const GLsizei*, GLsizei);
/* GL_ES_VERSION_2_0 */
GLAPI void glActiveTexture(GLenum);

13
src/MagnumExternal/OpenGL/GLES2/flextGLPlatform.cpp vendored

@ -44,6 +44,12 @@ void flextGLInit(Magnum::GL::Context&) {
flextGL.DrawElementsInstancedANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLsizei)>(loader.load("glDrawElementsInstancedANGLE"));
flextGL.VertexAttribDivisorANGLE = reinterpret_cast<void(APIENTRY*)(GLuint, GLuint)>(loader.load("glVertexAttribDivisorANGLE"));
/* GL_ANGLE_multi_draw */
flextGL.MultiDrawArraysANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLint *, const GLsizei *, GLsizei)>(loader.load("glMultiDrawArraysANGLE"));
flextGL.MultiDrawArraysInstancedANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLint *, const GLsizei *, const GLsizei *, GLsizei)>(loader.load("glMultiDrawArraysInstancedANGLE"));
flextGL.MultiDrawElementsANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei)>(loader.load("glMultiDrawElementsANGLE"));
flextGL.MultiDrawElementsInstancedANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, const GLsizei*, GLsizei)>(loader.load("glMultiDrawElementsInstancedANGLE"));
/* GL_APPLE_framebuffer_multisample */
flextGL.RenderbufferStorageMultisampleAPPLE = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, GLsizei, GLsizei)>(loader.load("glRenderbufferStorageMultisampleAPPLE"));
flextGL.ResolveMultisampleFramebufferAPPLE = reinterpret_cast<void(APIENTRY*)(void)>(loader.load("glResolveMultisampleFramebufferAPPLE"));
@ -80,6 +86,10 @@ void flextGLInit(Magnum::GL::Context&) {
flextGL.EnableiEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLuint)>(loader.load("glEnableiEXT"));
flextGL.IsEnablediEXT = reinterpret_cast<GLboolean(APIENTRY*)(GLenum, GLuint)>(loader.load("glIsEnablediEXT"));
/* GL_EXT_draw_elements_base_vertex */
flextGL.DrawElementsBaseVertexEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLint)>(loader.load("glDrawElementsBaseVertexEXT"));
flextGL.MultiDrawElementsBaseVertexEXT = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const void *const*, GLsizei, const GLint *)>(loader.load("glMultiDrawElementsBaseVertexEXT"));
/* GL_EXT_instanced_arrays */
flextGL.DrawArraysInstancedEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLint, GLsizei, GLsizei)>(loader.load("glDrawArraysInstancedEXT"));
flextGL.DrawElementsInstancedEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLsizei)>(loader.load("glDrawElementsInstancedEXT"));
@ -211,6 +221,9 @@ void flextGLInit(Magnum::GL::Context&) {
flextGL.NamedFramebufferSampleLocationsfvNV = reinterpret_cast<void(APIENTRY*)(GLuint, GLuint, GLsizei, const GLfloat *)>(loader.load("glNamedFramebufferSampleLocationsfvNV"));
flextGL.ResolveDepthValuesNV = reinterpret_cast<void(APIENTRY*)(void)>(loader.load("glResolveDepthValuesNV"));
/* GL_OES_draw_elements_base_vertex */
flextGL.DrawElementsBaseVertexOES = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLint)>(loader.load("glDrawElementsBaseVertexOES"));
/* GL_OES_mapbuffer */
flextGL.GetBufferPointervOES = reinterpret_cast<void(APIENTRY*)(GLenum, GLenum, void **)>(loader.load("glGetBufferPointervOES"));
flextGL.MapBufferOES = reinterpret_cast<void *(APIENTRY*)(GLenum, GLenum)>(loader.load("glMapBufferOES"));

26
src/MagnumExternal/OpenGL/GLES2/flextGLPlatformIOS.cpp vendored

@ -30,6 +30,10 @@
#undef glDrawArraysInstancedANGLE
#undef glDrawElementsInstancedANGLE
#undef glVertexAttribDivisorANGLE
#undef glMultiDrawArraysANGLE
#undef glMultiDrawArraysInstancedANGLE
#undef glMultiDrawElementsANGLE
#undef glMultiDrawElementsInstancedANGLE
#undef glRenderbufferStorageMultisampleAPPLE
#undef glResolveMultisampleFramebufferAPPLE
#undef glGetObjectLabelEXT
@ -52,6 +56,8 @@
#undef glDisableiEXT
#undef glEnableiEXT
#undef glIsEnablediEXT
#undef glDrawElementsBaseVertexEXT
#undef glMultiDrawElementsBaseVertexEXT
#undef glDrawArraysInstancedEXT
#undef glDrawElementsInstancedEXT
#undef glVertexAttribDivisorEXT
@ -141,6 +147,7 @@
#undef glFramebufferSampleLocationsfvNV
#undef glNamedFramebufferSampleLocationsfvNV
#undef glResolveDepthValuesNV
#undef glDrawElementsBaseVertexOES
#undef glGetBufferPointervOES
#undef glMapBufferOES
#undef glUnmapBufferOES
@ -179,6 +186,14 @@ void flextGLInit(Magnum::GL::Context&) {
flextGL.VertexAttribDivisorANGLE = reinterpret_cast<void(APIENTRY*)(GLuint, GLuint)>(glVertexAttribDivisorANGLE);
#endif
/* GL_ANGLE_multi_draw */
#if GL_ANGLE_multi_draw
flextGL.MultiDrawArraysANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLint *, const GLsizei *, GLsizei)>(glMultiDrawArraysANGLE);
flextGL.MultiDrawArraysInstancedANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLint *, const GLsizei *, const GLsizei *, GLsizei)>(glMultiDrawArraysInstancedANGLE);
flextGL.MultiDrawElementsANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei)>(glMultiDrawElementsANGLE);
flextGL.MultiDrawElementsInstancedANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, const GLsizei*, GLsizei)>(glMultiDrawElementsInstancedANGLE);
#endif
/* GL_APPLE_framebuffer_multisample */
#if GL_APPLE_framebuffer_multisample
flextGL.RenderbufferStorageMultisampleAPPLE = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, GLsizei, GLsizei)>(glRenderbufferStorageMultisampleAPPLE);
@ -229,6 +244,12 @@ void flextGLInit(Magnum::GL::Context&) {
flextGL.IsEnablediEXT = reinterpret_cast<GLboolean(APIENTRY*)(GLenum, GLuint)>(glIsEnablediEXT);
#endif
/* GL_EXT_draw_elements_base_vertex */
#if GL_EXT_draw_elements_base_vertex
flextGL.DrawElementsBaseVertexEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLint)>(glDrawElementsBaseVertexEXT);
flextGL.MultiDrawElementsBaseVertexEXT = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const void *const*, GLsizei, const GLint *)>(glMultiDrawElementsBaseVertexEXT);
#endif
/* GL_EXT_instanced_arrays */
#if GL_EXT_instanced_arrays
flextGL.DrawArraysInstancedEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLint, GLsizei, GLsizei)>(glDrawArraysInstancedEXT);
@ -402,6 +423,11 @@ void flextGLInit(Magnum::GL::Context&) {
flextGL.ResolveDepthValuesNV = reinterpret_cast<void(APIENTRY*)(void)>(glResolveDepthValuesNV);
#endif
/* GL_OES_draw_elements_base_vertex */
#if GL_OES_draw_elements_base_vertex
flextGL.DrawElementsBaseVertexOES = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLint)>(glDrawElementsBaseVertexOES);
#endif
/* GL_OES_mapbuffer */
#if GL_OES_mapbuffer
flextGL.GetBufferPointervOES = reinterpret_cast<void(APIENTRY*)(GLenum, GLenum, void **)>(glGetBufferPointervOES);

13
src/MagnumExternal/OpenGL/GLES2/flextGLPlatformWindowsDesktop.cpp vendored

@ -44,6 +44,12 @@ void flextGLInit(Magnum::GL::Context&) {
flextGL.DrawElementsInstancedANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLsizei)>(loader.load("glDrawElementsInstancedANGLE"));
flextGL.VertexAttribDivisorANGLE = reinterpret_cast<void(APIENTRY*)(GLuint, GLuint)>(loader.load("glVertexAttribDivisorANGLE"));
/* GL_ANGLE_multi_draw */
flextGL.MultiDrawArraysANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLint *, const GLsizei *, GLsizei)>(loader.load("glMultiDrawArraysANGLE"));
flextGL.MultiDrawArraysInstancedANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLint *, const GLsizei *, const GLsizei *, GLsizei)>(loader.load("glMultiDrawArraysInstancedANGLE"));
flextGL.MultiDrawElementsANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei)>(loader.load("glMultiDrawElementsANGLE"));
flextGL.MultiDrawElementsInstancedANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, const GLsizei*, GLsizei)>(loader.load("glMultiDrawElementsInstancedANGLE"));
/* GL_APPLE_framebuffer_multisample */
flextGL.RenderbufferStorageMultisampleAPPLE = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, GLsizei, GLsizei)>(loader.load("glRenderbufferStorageMultisampleAPPLE"));
flextGL.ResolveMultisampleFramebufferAPPLE = reinterpret_cast<void(APIENTRY*)(void)>(loader.load("glResolveMultisampleFramebufferAPPLE"));
@ -179,6 +185,10 @@ void flextGLInit(Magnum::GL::Context&) {
flextGL.EnableiEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLuint)>(loader.load("glEnableiEXT"));
flextGL.IsEnablediEXT = reinterpret_cast<GLboolean(APIENTRY*)(GLenum, GLuint)>(loader.load("glIsEnablediEXT"));
/* GL_EXT_draw_elements_base_vertex */
flextGL.DrawElementsBaseVertexEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLint)>(loader.load("glDrawElementsBaseVertexEXT"));
flextGL.MultiDrawElementsBaseVertexEXT = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const void *const*, GLsizei, const GLint *)>(loader.load("glMultiDrawElementsBaseVertexEXT"));
/* GL_EXT_instanced_arrays */
flextGL.DrawArraysInstancedEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLint, GLsizei, GLsizei)>(loader.load("glDrawArraysInstancedEXT"));
flextGL.DrawElementsInstancedEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLsizei)>(loader.load("glDrawElementsInstancedEXT"));
@ -310,6 +320,9 @@ void flextGLInit(Magnum::GL::Context&) {
flextGL.NamedFramebufferSampleLocationsfvNV = reinterpret_cast<void(APIENTRY*)(GLuint, GLuint, GLsizei, const GLfloat *)>(loader.load("glNamedFramebufferSampleLocationsfvNV"));
flextGL.ResolveDepthValuesNV = reinterpret_cast<void(APIENTRY*)(void)>(loader.load("glResolveDepthValuesNV"));
/* GL_OES_draw_elements_base_vertex */
flextGL.DrawElementsBaseVertexOES = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLint)>(loader.load("glDrawElementsBaseVertexOES"));
/* GL_OES_mapbuffer */
flextGL.GetBufferPointervOES = reinterpret_cast<void(APIENTRY*)(GLenum, GLenum, void **)>(loader.load("glGetBufferPointervOES"));
flextGL.MapBufferOES = reinterpret_cast<void *(APIENTRY*)(GLenum, GLenum)>(loader.load("glMapBufferOES"));

32
src/MagnumExternal/OpenGL/GLES2/flextGLWindowsDesktop.h vendored

@ -1129,6 +1129,13 @@ struct FlextGL {
void(APIENTRY *DrawElementsInstancedANGLE)(GLenum, GLsizei, GLenum, const void *, GLsizei);
void(APIENTRY *VertexAttribDivisorANGLE)(GLuint, GLuint);
/* GL_ANGLE_multi_draw */
void(APIENTRY *MultiDrawArraysANGLE)(GLenum, const GLint *, const GLsizei *, GLsizei);
void(APIENTRY *MultiDrawArraysInstancedANGLE)(GLenum, const GLint *, const GLsizei *, const GLsizei *, GLsizei);
void(APIENTRY *MultiDrawElementsANGLE)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei);
void(APIENTRY *MultiDrawElementsInstancedANGLE)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, const GLsizei*, GLsizei);
/* GL_APPLE_framebuffer_multisample */
void(APIENTRY *RenderbufferStorageMultisampleAPPLE)(GLenum, GLsizei, GLenum, GLsizei, GLsizei);
@ -1272,6 +1279,11 @@ struct FlextGL {
void(APIENTRY *EnableiEXT)(GLenum, GLuint);
GLboolean(APIENTRY *IsEnablediEXT)(GLenum, GLuint);
/* GL_EXT_draw_elements_base_vertex */
void(APIENTRY *DrawElementsBaseVertexEXT)(GLenum, GLsizei, GLenum, const void *, GLint);
void(APIENTRY *MultiDrawElementsBaseVertexEXT)(GLenum, const GLsizei *, GLenum, const void *const*, GLsizei, const GLint *);
/* GL_EXT_instanced_arrays */
void(APIENTRY *DrawArraysInstancedEXT)(GLenum, GLint, GLsizei, GLsizei);
@ -1424,6 +1436,10 @@ struct FlextGL {
void(APIENTRY *NamedFramebufferSampleLocationsfvNV)(GLuint, GLuint, GLsizei, const GLfloat *);
void(APIENTRY *ResolveDepthValuesNV)(void);
/* GL_OES_draw_elements_base_vertex */
void(APIENTRY *DrawElementsBaseVertexOES)(GLenum, GLsizei, GLenum, const void *, GLint);
/* GL_OES_mapbuffer */
void(APIENTRY *GetBufferPointervOES)(GLenum, GLenum, void **);
@ -1463,6 +1479,13 @@ extern FLEXTGL_EXPORT FlextGL flextGL;
#define glDrawElementsInstancedANGLE flextGL.DrawElementsInstancedANGLE
#define glVertexAttribDivisorANGLE flextGL.VertexAttribDivisorANGLE
/* GL_ANGLE_multi_draw */
#define glMultiDrawArraysANGLE flextGL.MultiDrawArraysANGLE
#define glMultiDrawArraysInstancedANGLE flextGL.MultiDrawArraysInstancedANGLE
#define glMultiDrawElementsANGLE flextGL.MultiDrawElementsANGLE
#define glMultiDrawElementsInstancedANGLE flextGL.MultiDrawElementsInstancedANGLE
/* GL_APPLE_framebuffer_multisample */
#define glRenderbufferStorageMultisampleAPPLE flextGL.RenderbufferStorageMultisampleAPPLE
@ -1606,6 +1629,11 @@ extern FLEXTGL_EXPORT FlextGL flextGL;
#define glEnableiEXT flextGL.EnableiEXT
#define glIsEnablediEXT flextGL.IsEnablediEXT
/* GL_EXT_draw_elements_base_vertex */
#define glDrawElementsBaseVertexEXT flextGL.DrawElementsBaseVertexEXT
#define glMultiDrawElementsBaseVertexEXT flextGL.MultiDrawElementsBaseVertexEXT
/* GL_EXT_instanced_arrays */
#define glDrawArraysInstancedEXT flextGL.DrawArraysInstancedEXT
@ -1758,6 +1786,10 @@ extern FLEXTGL_EXPORT FlextGL flextGL;
#define glNamedFramebufferSampleLocationsfvNV flextGL.NamedFramebufferSampleLocationsfvNV
#define glResolveDepthValuesNV flextGL.ResolveDepthValuesNV
/* GL_OES_draw_elements_base_vertex */
#define glDrawElementsBaseVertexOES flextGL.DrawElementsBaseVertexOES
/* GL_OES_mapbuffer */
#define glGetBufferPointervOES flextGL.GetBufferPointervOES

8
src/MagnumExternal/OpenGL/GLES3/Emscripten/extensions.txt vendored

@ -4,6 +4,8 @@
version 3.0 es
extraspec https://raw.githubusercontent.com/google/angle/master/scripts/gl_angle_ext.xml
extension EXT_texture_filter_anisotropic optional
# It's actually EXT_disjoint_timer_query_webgl2, but that's not known to gl.xml
extension EXT_disjoint_timer_query optional
@ -24,7 +26,11 @@ extension KHR_texture_compression_astc_ldr optional
# WEBGL_blend_equation_advanced_coherent includes just the enums but not the
# barrier
extension KHR_blend_equation_advanced optional
extension KHR_blend_equation_advanced optional
# From the gl_angle_ext file, base for WEBGL_multi_draw etc
extension ANGLE_multi_draw optional
extension ANGLE_base_vertex_base_instance optional
begin functions blacklist
# Not present in WEBGL_blend_equation_advanced_coherent

8
src/MagnumExternal/OpenGL/GLES3/extensions.txt vendored

@ -5,6 +5,8 @@
version 3.2 es
extraspec https://raw.githubusercontent.com/google/angle/master/scripts/gl_angle_ext.xml
extension EXT_color_buffer_half_float optional
extension EXT_color_buffer_float optional
extension EXT_copy_image optional
@ -56,6 +58,7 @@ extension EXT_sRGB_write_control optional
extension EXT_texture_compression_s3tc optional
extension EXT_pvrtc_sRGB optional
extension EXT_shader_integer_mix optional
extension EXT_draw_elements_base_vertex optional
extension EXT_texture_norm16 optional
extension EXT_texture_sRGB_R8 optional
extension EXT_texture_sRGB_RG8 optional
@ -83,7 +86,12 @@ extension OES_depth32 optional
extension OES_mapbuffer optional
extension OES_stencil1 optional
extension OES_stencil4 optional
extension OES_draw_elements_base_vertex optional
extension OVR_multiview optional
extension OVR_multiview2 optional
# From the gl_angle_ext file
extension ANGLE_multi_draw optional
extension ANGLE_base_vertex_base_instance optional
# kate: hl python

54
src/MagnumExternal/OpenGL/GLES3/flextGL.h vendored

@ -1945,6 +1945,20 @@ GLAPI FLEXTGL_EXPORT void APIENTRY glWaitSync(GLsync, GLbitfield, GLuint64);
less symbols is exported, saving on binary size. */
struct FlextGL {
/* GL_ANGLE_base_vertex_base_instance */
void(APIENTRY *DrawArraysInstancedBaseInstanceANGLE)(GLenum, GLint, GLsizei, GLsizei, GLuint);
void(APIENTRY *DrawElementsInstancedBaseVertexBaseInstanceANGLE)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLint, GLuint);
void(APIENTRY *MultiDrawArraysInstancedBaseInstanceANGLE)(GLenum, const GLint *, const GLsizei *, const GLsizei *, const GLuint *, GLsizei);
void(APIENTRY *MultiDrawElementsInstancedBaseVertexBaseInstanceANGLE)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, const GLsizei *, const GLint *, const GLuint *, GLsizei);
/* GL_ANGLE_multi_draw */
void(APIENTRY *MultiDrawArraysANGLE)(GLenum, const GLint *, const GLsizei *, GLsizei);
void(APIENTRY *MultiDrawArraysInstancedANGLE)(GLenum, const GLint *, const GLsizei *, const GLsizei *, GLsizei);
void(APIENTRY *MultiDrawElementsANGLE)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei);
void(APIENTRY *MultiDrawElementsInstancedANGLE)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, const GLsizei*, GLsizei);
/* GL_ES_VERSION_3_1 */
void(APIENTRY *ActiveShaderProgram)(GLuint, GLuint);
@ -2104,6 +2118,13 @@ struct FlextGL {
void(APIENTRY *EnableiEXT)(GLenum, GLuint);
GLboolean(APIENTRY *IsEnablediEXT)(GLenum, GLuint);
/* GL_EXT_draw_elements_base_vertex */
void(APIENTRY *DrawElementsBaseVertexEXT)(GLenum, GLsizei, GLenum, const void *, GLint);
void(APIENTRY *DrawElementsInstancedBaseVertexEXT)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLint);
void(APIENTRY *DrawRangeElementsBaseVertexEXT)(GLenum, GLuint, GLuint, GLsizei, GLenum, const void *, GLint);
void(APIENTRY *MultiDrawElementsBaseVertexEXT)(GLenum, const GLsizei *, GLenum, const void *const*, GLsizei, const GLint *);
/* GL_EXT_geometry_shader */
void(APIENTRY *FramebufferTextureEXT)(GLenum, GLenum, GLuint, GLint);
@ -2236,6 +2257,12 @@ struct FlextGL {
void(APIENTRY *NamedFramebufferSampleLocationsfvNV)(GLuint, GLuint, GLsizei, const GLfloat *);
void(APIENTRY *ResolveDepthValuesNV)(void);
/* GL_OES_draw_elements_base_vertex */
void(APIENTRY *DrawElementsBaseVertexOES)(GLenum, GLsizei, GLenum, const void *, GLint);
void(APIENTRY *DrawElementsInstancedBaseVertexOES)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLint);
void(APIENTRY *DrawRangeElementsBaseVertexOES)(GLenum, GLuint, GLuint, GLsizei, GLenum, const void *, GLint);
/* GL_OES_mapbuffer */
void(APIENTRY *GetBufferPointervOES)(GLenum, GLenum, void **);
@ -2257,6 +2284,20 @@ struct FlextGL {
extern FLEXTGL_EXPORT FlextGL flextGL;
/* GL_ANGLE_base_vertex_base_instance */
#define glDrawArraysInstancedBaseInstanceANGLE flextGL.DrawArraysInstancedBaseInstanceANGLE
#define glDrawElementsInstancedBaseVertexBaseInstanceANGLE flextGL.DrawElementsInstancedBaseVertexBaseInstanceANGLE
#define glMultiDrawArraysInstancedBaseInstanceANGLE flextGL.MultiDrawArraysInstancedBaseInstanceANGLE
#define glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE flextGL.MultiDrawElementsInstancedBaseVertexBaseInstanceANGLE
/* GL_ANGLE_multi_draw */
#define glMultiDrawArraysANGLE flextGL.MultiDrawArraysANGLE
#define glMultiDrawArraysInstancedANGLE flextGL.MultiDrawArraysInstancedANGLE
#define glMultiDrawElementsANGLE flextGL.MultiDrawElementsANGLE
#define glMultiDrawElementsInstancedANGLE flextGL.MultiDrawElementsInstancedANGLE
/* GL_ES_VERSION_3_1 */
#define glActiveShaderProgram flextGL.ActiveShaderProgram
@ -2416,6 +2457,13 @@ extern FLEXTGL_EXPORT FlextGL flextGL;
#define glEnableiEXT flextGL.EnableiEXT
#define glIsEnablediEXT flextGL.IsEnablediEXT
/* GL_EXT_draw_elements_base_vertex */
#define glDrawElementsBaseVertexEXT flextGL.DrawElementsBaseVertexEXT
#define glDrawElementsInstancedBaseVertexEXT flextGL.DrawElementsInstancedBaseVertexEXT
#define glDrawRangeElementsBaseVertexEXT flextGL.DrawRangeElementsBaseVertexEXT
#define glMultiDrawElementsBaseVertexEXT flextGL.MultiDrawElementsBaseVertexEXT
/* GL_EXT_geometry_shader */
#define glFramebufferTextureEXT flextGL.FramebufferTextureEXT
@ -2548,6 +2596,12 @@ extern FLEXTGL_EXPORT FlextGL flextGL;
#define glNamedFramebufferSampleLocationsfvNV flextGL.NamedFramebufferSampleLocationsfvNV
#define glResolveDepthValuesNV flextGL.ResolveDepthValuesNV
/* GL_OES_draw_elements_base_vertex */
#define glDrawElementsBaseVertexOES flextGL.DrawElementsBaseVertexOES
#define glDrawElementsInstancedBaseVertexOES flextGL.DrawElementsInstancedBaseVertexOES
#define glDrawRangeElementsBaseVertexOES flextGL.DrawRangeElementsBaseVertexOES
/* GL_OES_mapbuffer */
#define glGetBufferPointervOES flextGL.GetBufferPointervOES

14
src/MagnumExternal/OpenGL/GLES3/flextGLEmscripten.h vendored

@ -881,6 +881,20 @@ typedef struct __GLsync *GLsync;
/* Function prototypes */
/* GL_ANGLE_base_vertex_base_instance */
GLAPI void glDrawArraysInstancedBaseInstanceANGLE(GLenum, GLint, GLsizei, GLsizei, GLuint);
GLAPI void glDrawElementsInstancedBaseVertexBaseInstanceANGLE(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLint, GLuint);
GLAPI void glMultiDrawArraysInstancedBaseInstanceANGLE(GLenum, const GLint *, const GLsizei *, const GLsizei *, const GLuint *, GLsizei);
GLAPI void glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE(GLenum, const GLsizei *, GLenum, const GLvoid *const*, const GLsizei *, const GLint *, const GLuint *, GLsizei);
/* GL_ANGLE_multi_draw */
GLAPI void glMultiDrawArraysANGLE(GLenum, const GLint *, const GLsizei *, GLsizei);
GLAPI void glMultiDrawArraysInstancedANGLE(GLenum, const GLint *, const GLsizei *, const GLsizei *, GLsizei);
GLAPI void glMultiDrawElementsANGLE(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei);
GLAPI void glMultiDrawElementsInstancedANGLE(GLenum, const GLsizei *, GLenum, const GLvoid *const*, const GLsizei*, GLsizei);
/* GL_ES_VERSION_2_0 */
GLAPI void glActiveTexture(GLenum);

23
src/MagnumExternal/OpenGL/GLES3/flextGLPlatform.cpp vendored

@ -33,6 +33,18 @@
void flextGLInit(Magnum::GL::Context&) {
Magnum::Platform::Implementation::OpenGLFunctionLoader loader;
/* GL_ANGLE_base_vertex_base_instance */
flextGL.DrawArraysInstancedBaseInstanceANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, GLint, GLsizei, GLsizei, GLuint)>(loader.load("glDrawArraysInstancedBaseInstanceANGLE"));
flextGL.DrawElementsInstancedBaseVertexBaseInstanceANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLint, GLuint)>(loader.load("glDrawElementsInstancedBaseVertexBaseInstanceANGLE"));
flextGL.MultiDrawArraysInstancedBaseInstanceANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLint *, const GLsizei *, const GLsizei *, const GLuint *, GLsizei)>(loader.load("glMultiDrawArraysInstancedBaseInstanceANGLE"));
flextGL.MultiDrawElementsInstancedBaseVertexBaseInstanceANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, const GLsizei *, const GLint *, const GLuint *, GLsizei)>(loader.load("glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE"));
/* GL_ANGLE_multi_draw */
flextGL.MultiDrawArraysANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLint *, const GLsizei *, GLsizei)>(loader.load("glMultiDrawArraysANGLE"));
flextGL.MultiDrawArraysInstancedANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLint *, const GLsizei *, const GLsizei *, GLsizei)>(loader.load("glMultiDrawArraysInstancedANGLE"));
flextGL.MultiDrawElementsANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei)>(loader.load("glMultiDrawElementsANGLE"));
flextGL.MultiDrawElementsInstancedANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, const GLsizei*, GLsizei)>(loader.load("glMultiDrawElementsInstancedANGLE"));
/* GL_ES_VERSION_3_1 */
flextGL.ActiveShaderProgram = reinterpret_cast<void(APIENTRY*)(GLuint, GLuint)>(loader.load("glActiveShaderProgram"));
flextGL.BindImageTexture = reinterpret_cast<void(APIENTRY*)(GLuint, GLuint, GLint, GLboolean, GLint, GLenum, GLenum)>(loader.load("glBindImageTexture"));
@ -185,6 +197,12 @@ void flextGLInit(Magnum::GL::Context&) {
flextGL.EnableiEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLuint)>(loader.load("glEnableiEXT"));
flextGL.IsEnablediEXT = reinterpret_cast<GLboolean(APIENTRY*)(GLenum, GLuint)>(loader.load("glIsEnablediEXT"));
/* GL_EXT_draw_elements_base_vertex */
flextGL.DrawElementsBaseVertexEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLint)>(loader.load("glDrawElementsBaseVertexEXT"));
flextGL.DrawElementsInstancedBaseVertexEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLint)>(loader.load("glDrawElementsInstancedBaseVertexEXT"));
flextGL.DrawRangeElementsBaseVertexEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLuint, GLuint, GLsizei, GLenum, const void *, GLint)>(loader.load("glDrawRangeElementsBaseVertexEXT"));
flextGL.MultiDrawElementsBaseVertexEXT = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const void *const*, GLsizei, const GLint *)>(loader.load("glMultiDrawElementsBaseVertexEXT"));
/* GL_EXT_geometry_shader */
flextGL.FramebufferTextureEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLenum, GLuint, GLint)>(loader.load("glFramebufferTextureEXT"));
@ -302,6 +320,11 @@ void flextGLInit(Magnum::GL::Context&) {
flextGL.NamedFramebufferSampleLocationsfvNV = reinterpret_cast<void(APIENTRY*)(GLuint, GLuint, GLsizei, const GLfloat *)>(loader.load("glNamedFramebufferSampleLocationsfvNV"));
flextGL.ResolveDepthValuesNV = reinterpret_cast<void(APIENTRY*)(void)>(loader.load("glResolveDepthValuesNV"));
/* GL_OES_draw_elements_base_vertex */
flextGL.DrawElementsBaseVertexOES = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLint)>(loader.load("glDrawElementsBaseVertexOES"));
flextGL.DrawElementsInstancedBaseVertexOES = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLint)>(loader.load("glDrawElementsInstancedBaseVertexOES"));
flextGL.DrawRangeElementsBaseVertexOES = reinterpret_cast<void(APIENTRY*)(GLenum, GLuint, GLuint, GLsizei, GLenum, const void *, GLint)>(loader.load("glDrawRangeElementsBaseVertexOES"));
/* GL_OES_mapbuffer */
flextGL.GetBufferPointervOES = reinterpret_cast<void(APIENTRY*)(GLenum, GLenum, void **)>(loader.load("glGetBufferPointervOES"));
flextGL.MapBufferOES = reinterpret_cast<void *(APIENTRY*)(GLenum, GLenum)>(loader.load("glMapBufferOES"));

46
src/MagnumExternal/OpenGL/GLES3/flextGLPlatformIOS.cpp vendored

@ -25,6 +25,14 @@
#include "flextGL.h"
#undef glDrawArraysInstancedBaseInstanceANGLE
#undef glDrawElementsInstancedBaseVertexBaseInstanceANGLE
#undef glMultiDrawArraysInstancedBaseInstanceANGLE
#undef glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE
#undef glMultiDrawArraysANGLE
#undef glMultiDrawArraysInstancedANGLE
#undef glMultiDrawElementsANGLE
#undef glMultiDrawElementsInstancedANGLE
#undef glCopyImageSubDataEXT
#undef glGetObjectLabelEXT
#undef glLabelObjectEXT
@ -51,6 +59,10 @@
#undef glDisableiEXT
#undef glEnableiEXT
#undef glIsEnablediEXT
#undef glDrawElementsBaseVertexEXT
#undef glDrawElementsInstancedBaseVertexEXT
#undef glDrawRangeElementsBaseVertexEXT
#undef glMultiDrawElementsBaseVertexEXT
#undef glFramebufferTextureEXT
#undef glMultiDrawArraysEXT
#undef glMultiDrawElementsEXT
@ -138,6 +150,9 @@
#undef glFramebufferSampleLocationsfvNV
#undef glNamedFramebufferSampleLocationsfvNV
#undef glResolveDepthValuesNV
#undef glDrawElementsBaseVertexOES
#undef glDrawElementsInstancedBaseVertexOES
#undef glDrawRangeElementsBaseVertexOES
#undef glGetBufferPointervOES
#undef glMapBufferOES
#undef glUnmapBufferOES
@ -149,6 +164,22 @@
void flextGLInit(Magnum::GL::Context&) {
/* GL_ANGLE_base_vertex_base_instance */
#if GL_ANGLE_base_vertex_base_instance
flextGL.DrawArraysInstancedBaseInstanceANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, GLint, GLsizei, GLsizei, GLuint)>(glDrawArraysInstancedBaseInstanceANGLE);
flextGL.DrawElementsInstancedBaseVertexBaseInstanceANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLint, GLuint)>(glDrawElementsInstancedBaseVertexBaseInstanceANGLE);
flextGL.MultiDrawArraysInstancedBaseInstanceANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLint *, const GLsizei *, const GLsizei *, const GLuint *, GLsizei)>(glMultiDrawArraysInstancedBaseInstanceANGLE);
flextGL.MultiDrawElementsInstancedBaseVertexBaseInstanceANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, const GLsizei *, const GLint *, const GLuint *, GLsizei)>(glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE);
#endif
/* GL_ANGLE_multi_draw */
#if GL_ANGLE_multi_draw
flextGL.MultiDrawArraysANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLint *, const GLsizei *, GLsizei)>(glMultiDrawArraysANGLE);
flextGL.MultiDrawArraysInstancedANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLint *, const GLsizei *, const GLsizei *, GLsizei)>(glMultiDrawArraysInstancedANGLE);
flextGL.MultiDrawElementsANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei)>(glMultiDrawElementsANGLE);
flextGL.MultiDrawElementsInstancedANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, const GLsizei*, GLsizei)>(glMultiDrawElementsInstancedANGLE);
#endif
/* GL_EXT_copy_image */
#if GL_EXT_copy_image
flextGL.CopyImageSubDataEXT = reinterpret_cast<void(APIENTRY*)(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei)>(glCopyImageSubDataEXT);
@ -195,6 +226,14 @@ void flextGLInit(Magnum::GL::Context&) {
flextGL.IsEnablediEXT = reinterpret_cast<GLboolean(APIENTRY*)(GLenum, GLuint)>(glIsEnablediEXT);
#endif
/* GL_EXT_draw_elements_base_vertex */
#if GL_EXT_draw_elements_base_vertex
flextGL.DrawElementsBaseVertexEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLint)>(glDrawElementsBaseVertexEXT);
flextGL.DrawElementsInstancedBaseVertexEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLint)>(glDrawElementsInstancedBaseVertexEXT);
flextGL.DrawRangeElementsBaseVertexEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLuint, GLuint, GLsizei, GLenum, const void *, GLint)>(glDrawRangeElementsBaseVertexEXT);
flextGL.MultiDrawElementsBaseVertexEXT = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const void *const*, GLsizei, const GLint *)>(glMultiDrawElementsBaseVertexEXT);
#endif
/* GL_EXT_geometry_shader */
#if GL_EXT_geometry_shader
flextGL.FramebufferTextureEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLenum, GLuint, GLint)>(glFramebufferTextureEXT);
@ -342,6 +381,13 @@ void flextGLInit(Magnum::GL::Context&) {
flextGL.ResolveDepthValuesNV = reinterpret_cast<void(APIENTRY*)(void)>(glResolveDepthValuesNV);
#endif
/* GL_OES_draw_elements_base_vertex */
#if GL_OES_draw_elements_base_vertex
flextGL.DrawElementsBaseVertexOES = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLint)>(glDrawElementsBaseVertexOES);
flextGL.DrawElementsInstancedBaseVertexOES = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLint)>(glDrawElementsInstancedBaseVertexOES);
flextGL.DrawRangeElementsBaseVertexOES = reinterpret_cast<void(APIENTRY*)(GLenum, GLuint, GLuint, GLsizei, GLenum, const void *, GLint)>(glDrawRangeElementsBaseVertexOES);
#endif
/* GL_OES_mapbuffer */
#if GL_OES_mapbuffer
flextGL.GetBufferPointervOES = reinterpret_cast<void(APIENTRY*)(GLenum, GLenum, void **)>(glGetBufferPointervOES);

23
src/MagnumExternal/OpenGL/GLES3/flextGLPlatformWindowsDesktop.cpp vendored

@ -33,6 +33,18 @@
void flextGLInit(Magnum::GL::Context&) {
Magnum::Platform::Implementation::OpenGLFunctionLoader loader;
/* GL_ANGLE_base_vertex_base_instance */
flextGL.DrawArraysInstancedBaseInstanceANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, GLint, GLsizei, GLsizei, GLuint)>(loader.load("glDrawArraysInstancedBaseInstanceANGLE"));
flextGL.DrawElementsInstancedBaseVertexBaseInstanceANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLint, GLuint)>(loader.load("glDrawElementsInstancedBaseVertexBaseInstanceANGLE"));
flextGL.MultiDrawArraysInstancedBaseInstanceANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLint *, const GLsizei *, const GLsizei *, const GLuint *, GLsizei)>(loader.load("glMultiDrawArraysInstancedBaseInstanceANGLE"));
flextGL.MultiDrawElementsInstancedBaseVertexBaseInstanceANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, const GLsizei *, const GLint *, const GLuint *, GLsizei)>(loader.load("glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE"));
/* GL_ANGLE_multi_draw */
flextGL.MultiDrawArraysANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLint *, const GLsizei *, GLsizei)>(loader.load("glMultiDrawArraysANGLE"));
flextGL.MultiDrawArraysInstancedANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLint *, const GLsizei *, const GLsizei *, GLsizei)>(loader.load("glMultiDrawArraysInstancedANGLE"));
flextGL.MultiDrawElementsANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei)>(loader.load("glMultiDrawElementsANGLE"));
flextGL.MultiDrawElementsInstancedANGLE = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, const GLsizei*, GLsizei)>(loader.load("glMultiDrawElementsInstancedANGLE"));
/* GL_ES_VERSION_2_0 */
flextGL.ActiveTexture = reinterpret_cast<void(APIENTRY*)(GLenum)>(loader.load("glActiveTexture"));
flextGL.AttachShader = reinterpret_cast<void(APIENTRY*)(GLuint, GLuint)>(loader.load("glAttachShader"));
@ -387,6 +399,12 @@ void flextGLInit(Magnum::GL::Context&) {
flextGL.EnableiEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLuint)>(loader.load("glEnableiEXT"));
flextGL.IsEnablediEXT = reinterpret_cast<GLboolean(APIENTRY*)(GLenum, GLuint)>(loader.load("glIsEnablediEXT"));
/* GL_EXT_draw_elements_base_vertex */
flextGL.DrawElementsBaseVertexEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLint)>(loader.load("glDrawElementsBaseVertexEXT"));
flextGL.DrawElementsInstancedBaseVertexEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLint)>(loader.load("glDrawElementsInstancedBaseVertexEXT"));
flextGL.DrawRangeElementsBaseVertexEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLuint, GLuint, GLsizei, GLenum, const void *, GLint)>(loader.load("glDrawRangeElementsBaseVertexEXT"));
flextGL.MultiDrawElementsBaseVertexEXT = reinterpret_cast<void(APIENTRY*)(GLenum, const GLsizei *, GLenum, const void *const*, GLsizei, const GLint *)>(loader.load("glMultiDrawElementsBaseVertexEXT"));
/* GL_EXT_geometry_shader */
flextGL.FramebufferTextureEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLenum, GLuint, GLint)>(loader.load("glFramebufferTextureEXT"));
@ -504,6 +522,11 @@ void flextGLInit(Magnum::GL::Context&) {
flextGL.NamedFramebufferSampleLocationsfvNV = reinterpret_cast<void(APIENTRY*)(GLuint, GLuint, GLsizei, const GLfloat *)>(loader.load("glNamedFramebufferSampleLocationsfvNV"));
flextGL.ResolveDepthValuesNV = reinterpret_cast<void(APIENTRY*)(void)>(loader.load("glResolveDepthValuesNV"));
/* GL_OES_draw_elements_base_vertex */
flextGL.DrawElementsBaseVertexOES = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLint)>(loader.load("glDrawElementsBaseVertexOES"));
flextGL.DrawElementsInstancedBaseVertexOES = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLint)>(loader.load("glDrawElementsInstancedBaseVertexOES"));
flextGL.DrawRangeElementsBaseVertexOES = reinterpret_cast<void(APIENTRY*)(GLenum, GLuint, GLuint, GLsizei, GLenum, const void *, GLint)>(loader.load("glDrawRangeElementsBaseVertexOES"));
/* GL_OES_mapbuffer */
flextGL.GetBufferPointervOES = reinterpret_cast<void(APIENTRY*)(GLenum, GLenum, void **)>(loader.load("glGetBufferPointervOES"));
flextGL.MapBufferOES = reinterpret_cast<void *(APIENTRY*)(GLenum, GLenum)>(loader.load("glMapBufferOES"));

54
src/MagnumExternal/OpenGL/GLES3/flextGLWindowsDesktop.h vendored

@ -1744,6 +1744,20 @@ GLAPI FLEXTGL_EXPORT void APIENTRY glGetTexLevelParameteriv(GLenum, GLint, GLenu
less symbols is exported, saving on binary size. */
struct FlextGL {
/* GL_ANGLE_base_vertex_base_instance */
void(APIENTRY *DrawArraysInstancedBaseInstanceANGLE)(GLenum, GLint, GLsizei, GLsizei, GLuint);
void(APIENTRY *DrawElementsInstancedBaseVertexBaseInstanceANGLE)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLint, GLuint);
void(APIENTRY *MultiDrawArraysInstancedBaseInstanceANGLE)(GLenum, const GLint *, const GLsizei *, const GLsizei *, const GLuint *, GLsizei);
void(APIENTRY *MultiDrawElementsInstancedBaseVertexBaseInstanceANGLE)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, const GLsizei *, const GLint *, const GLuint *, GLsizei);
/* GL_ANGLE_multi_draw */
void(APIENTRY *MultiDrawArraysANGLE)(GLenum, const GLint *, const GLsizei *, GLsizei);
void(APIENTRY *MultiDrawArraysInstancedANGLE)(GLenum, const GLint *, const GLsizei *, const GLsizei *, GLsizei);
void(APIENTRY *MultiDrawElementsANGLE)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei);
void(APIENTRY *MultiDrawElementsInstancedANGLE)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, const GLsizei*, GLsizei);
/* GL_ES_VERSION_2_0 */
void(APIENTRY *ActiveTexture)(GLenum);
@ -2107,6 +2121,13 @@ struct FlextGL {
void(APIENTRY *EnableiEXT)(GLenum, GLuint);
GLboolean(APIENTRY *IsEnablediEXT)(GLenum, GLuint);
/* GL_EXT_draw_elements_base_vertex */
void(APIENTRY *DrawElementsBaseVertexEXT)(GLenum, GLsizei, GLenum, const void *, GLint);
void(APIENTRY *DrawElementsInstancedBaseVertexEXT)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLint);
void(APIENTRY *DrawRangeElementsBaseVertexEXT)(GLenum, GLuint, GLuint, GLsizei, GLenum, const void *, GLint);
void(APIENTRY *MultiDrawElementsBaseVertexEXT)(GLenum, const GLsizei *, GLenum, const void *const*, GLsizei, const GLint *);
/* GL_EXT_geometry_shader */
void(APIENTRY *FramebufferTextureEXT)(GLenum, GLenum, GLuint, GLint);
@ -2239,6 +2260,12 @@ struct FlextGL {
void(APIENTRY *NamedFramebufferSampleLocationsfvNV)(GLuint, GLuint, GLsizei, const GLfloat *);
void(APIENTRY *ResolveDepthValuesNV)(void);
/* GL_OES_draw_elements_base_vertex */
void(APIENTRY *DrawElementsBaseVertexOES)(GLenum, GLsizei, GLenum, const void *, GLint);
void(APIENTRY *DrawElementsInstancedBaseVertexOES)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLint);
void(APIENTRY *DrawRangeElementsBaseVertexOES)(GLenum, GLuint, GLuint, GLsizei, GLenum, const void *, GLint);
/* GL_OES_mapbuffer */
void(APIENTRY *GetBufferPointervOES)(GLenum, GLenum, void **);
@ -2260,6 +2287,20 @@ struct FlextGL {
extern FLEXTGL_EXPORT FlextGL flextGL;
/* GL_ANGLE_base_vertex_base_instance */
#define glDrawArraysInstancedBaseInstanceANGLE flextGL.DrawArraysInstancedBaseInstanceANGLE
#define glDrawElementsInstancedBaseVertexBaseInstanceANGLE flextGL.DrawElementsInstancedBaseVertexBaseInstanceANGLE
#define glMultiDrawArraysInstancedBaseInstanceANGLE flextGL.MultiDrawArraysInstancedBaseInstanceANGLE
#define glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE flextGL.MultiDrawElementsInstancedBaseVertexBaseInstanceANGLE
/* GL_ANGLE_multi_draw */
#define glMultiDrawArraysANGLE flextGL.MultiDrawArraysANGLE
#define glMultiDrawArraysInstancedANGLE flextGL.MultiDrawArraysInstancedANGLE
#define glMultiDrawElementsANGLE flextGL.MultiDrawElementsANGLE
#define glMultiDrawElementsInstancedANGLE flextGL.MultiDrawElementsInstancedANGLE
/* GL_ES_VERSION_2_0 */
#define glActiveTexture flextGL.ActiveTexture
@ -2623,6 +2664,13 @@ extern FLEXTGL_EXPORT FlextGL flextGL;
#define glEnableiEXT flextGL.EnableiEXT
#define glIsEnablediEXT flextGL.IsEnablediEXT
/* GL_EXT_draw_elements_base_vertex */
#define glDrawElementsBaseVertexEXT flextGL.DrawElementsBaseVertexEXT
#define glDrawElementsInstancedBaseVertexEXT flextGL.DrawElementsInstancedBaseVertexEXT
#define glDrawRangeElementsBaseVertexEXT flextGL.DrawRangeElementsBaseVertexEXT
#define glMultiDrawElementsBaseVertexEXT flextGL.MultiDrawElementsBaseVertexEXT
/* GL_EXT_geometry_shader */
#define glFramebufferTextureEXT flextGL.FramebufferTextureEXT
@ -2755,6 +2803,12 @@ extern FLEXTGL_EXPORT FlextGL flextGL;
#define glNamedFramebufferSampleLocationsfvNV flextGL.NamedFramebufferSampleLocationsfvNV
#define glResolveDepthValuesNV flextGL.ResolveDepthValuesNV
/* GL_OES_draw_elements_base_vertex */
#define glDrawElementsBaseVertexOES flextGL.DrawElementsBaseVertexOES
#define glDrawElementsInstancedBaseVertexOES flextGL.DrawElementsInstancedBaseVertexOES
#define glDrawRangeElementsBaseVertexOES flextGL.DrawRangeElementsBaseVertexOES
/* GL_OES_mapbuffer */
#define glGetBufferPointervOES flextGL.GetBufferPointervOES

Loading…
Cancel
Save