diff --git a/doc/opengl-support.dox b/doc/opengl-support.dox index b2a5e936f..7bcf2d137 100644 --- a/doc/opengl-support.dox +++ b/doc/opengl-support.dox @@ -263,6 +263,7 @@ Extension | Status @extension{AMD,shader_trinary_minmax} | done (shading language only) @extension{ATI,texture_mirror_once} | done (GL 4.4 subset) @extension{EXT,texture_filter_anisotropic} | done +@extension{EXT,texture_compression_s3tc} | done @extension{EXT,texture_mirror_clamp} | only GL 4.4 subset @extension{EXT,direct_state_access} | done for implemented functionality @extension{EXT,texture_sRGB_decode} | done @@ -359,6 +360,7 @@ Extension | Status @es_extension{EXT,disjoint_timer_query} | only time elapsed query @es_extension{EXT,texture_sRGB_decode} | done @es_extension{EXT,sRGB_write_control} | done +@es_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} | done @es_extension{EXT,shader_integer_mix} | done (shading language only) @es_extension{EXT,copy_image} | | @es_extension{EXT,draw_buffers_indexed} | | @@ -430,6 +432,7 @@ Extension | Status @webgl_extension{EXT,texture_filter_anisotropic} | done @webgl_extension{EXT,sRGB} | done @webgl_extension{EXT,disjoint_timer_query} | only time elapsed query +@webgl_extension{WEBGL,compressed_texture_s3tc} | done @section opengl-unsupported Unsupported OpenGL features diff --git a/src/Magnum/AbstractTexture.cpp b/src/Magnum/AbstractTexture.cpp index 7389315f0..7d5b25df6 100644 --- a/src/Magnum/AbstractTexture.cpp +++ b/src/Magnum/AbstractTexture.cpp @@ -575,6 +575,7 @@ ColorFormat AbstractTexture::imageFormatForInternalFormat(const TextureFormat in case TextureFormat::CompressedRGBBptcUnsignedFloat: case TextureFormat::CompressedRGBBptcSignedFloat: #endif + case TextureFormat::CompressedRGBS3tcDxt1: return ColorFormat::RGB; #ifndef MAGNUM_TARGET_GLES2 @@ -624,6 +625,9 @@ ColorFormat AbstractTexture::imageFormatForInternalFormat(const TextureFormat in case TextureFormat::CompressedRGBABptcUnorm: case TextureFormat::CompressedSRGBAlphaBptcUnorm: #endif + case TextureFormat::CompressedRGBAS3tcDxt1: + case TextureFormat::CompressedRGBAS3tcDxt3: + case TextureFormat::CompressedRGBAS3tcDxt5: return ColorFormat::RGBA; #ifndef MAGNUM_TARGET_GLES2 @@ -718,6 +722,10 @@ ColorType AbstractTexture::imageTypeForInternalFormat(const TextureFormat intern case TextureFormat::CompressedRGBABptcUnorm: case TextureFormat::CompressedSRGBAlphaBptcUnorm: #endif + case TextureFormat::CompressedRGBS3tcDxt1: + case TextureFormat::CompressedRGBAS3tcDxt1: + case TextureFormat::CompressedRGBAS3tcDxt3: + case TextureFormat::CompressedRGBAS3tcDxt5: return ColorType::UnsignedByte; #ifndef MAGNUM_TARGET_GLES2 diff --git a/src/Magnum/ColorFormat.cpp b/src/Magnum/ColorFormat.cpp index 007161c21..bc258c3ec 100644 --- a/src/Magnum/ColorFormat.cpp +++ b/src/Magnum/ColorFormat.cpp @@ -154,6 +154,10 @@ Debug operator<<(Debug debug, const CompressedColorFormat value) { _c(RGBABptcUnorm) _c(SRGBAlphaBptcUnorm) #endif + _c(RGBS3tcDxt1) + _c(RGBAS3tcDxt1) + _c(RGBAS3tcDxt3) + _c(RGBAS3tcDxt5) #undef _c } diff --git a/src/Magnum/ColorFormat.h b/src/Magnum/ColorFormat.h index 1042b55f9..830b373e1 100644 --- a/src/Magnum/ColorFormat.h +++ b/src/Magnum/ColorFormat.h @@ -666,6 +666,42 @@ enum class CompressedColorFormat: GLenum { */ SRGBAlphaBptcUnorm = GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM, #endif + + /** + * S3TC DXT1 compressed RGB. **Available only for 2D, 3D, 2D array, cube + * map and cube map array textures.** + * @requires_extension Extension @extension{EXT,texture_compression_s3tc} + * @requires_es_extension Extension @es_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} + * @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc} + */ + RGBS3tcDxt1 = GL_COMPRESSED_RGB_S3TC_DXT1_EXT, + + /** + * S3TC DXT1 compressed RGBA. **Available only for 2D, 3D, 2D array, cube + * map and cube map array textures.** + * @requires_extension Extension @extension{EXT,texture_compression_s3tc} + * @requires_es_extension Extension @es_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} + * @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc} + */ + RGBAS3tcDxt1 = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, + + /** + * S3TC DXT3 compressed RGBA. **Available only for 2D, 3D, 2D array, cube + * map and cube map array textures.** + * @requires_extension Extension @extension{EXT,texture_compression_s3tc} + * @requires_es_extension Extension @es_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} + * @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc} + */ + RGBAS3tcDxt3 = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT, + + /** + * S3TC DXT5 compressed RGBA. **Available only for 2D, 3D, 2D array, cube + * map and cube map array textures.** + * @requires_extension Extension @extension{EXT,texture_compression_s3tc} + * @requires_es_extension Extension @es_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} + * @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc} + */ + RGBAS3tcDxt5 = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT }; /** @debugoperatorenum{Magnum::ColorFormat} */ diff --git a/src/Magnum/Context.cpp b/src/Magnum/Context.cpp index faf86988f..b960e6c5c 100644 --- a/src/Magnum/Context.cpp +++ b/src/Magnum/Context.cpp @@ -80,6 +80,7 @@ const std::vector& Extension::extensions(Version version) { _extension(GL,ARB,transform_feedback_overflow_query), _extension(GL,ATI,texture_mirror_once), _extension(GL,EXT,texture_filter_anisotropic), + _extension(GL,EXT,texture_compression_s3tc), _extension(GL,EXT,texture_mirror_clamp), _extension(GL,EXT,direct_state_access), _extension(GL,EXT,texture_sRGB_decode), @@ -237,6 +238,7 @@ const std::vector& Extension::extensions(Version version) { _extension(GL,OES,element_index_uint), _extension(GL,OES,texture_float_linear), _extension(GL,OES,texture_half_float_linear), + _extension(GL,WEBGL,compressed_texture_s3tc), _extension(GL,WEBGL,depth_texture), _extension(GL,WEBGL,draw_buffers)}; #endif @@ -258,6 +260,7 @@ const std::vector& Extension::extensions(Version version) { _extension(GL,EXT,disjoint_timer_query), _extension(GL,EXT,texture_sRGB_decode), _extension(GL,EXT,sRGB_write_control), + _extension(GL,EXT,texture_compression_s3tc), #ifndef MAGNUM_TARGET_GLES2 _extension(GL,EXT,shader_integer_mix), _extension(GL,EXT,copy_image), diff --git a/src/Magnum/Extensions.h b/src/Magnum/Extensions.h index 3272c8db7..68faf5058 100644 --- a/src/Magnum/Extensions.h +++ b/src/Magnum/Extensions.h @@ -197,6 +197,7 @@ namespace GL { _extension(GL,ATI,texture_mirror_once, GL210, None) // #221 } namespace EXT { _extension(GL,EXT,texture_filter_anisotropic, GL210, None) // #187 + _extension(GL,EXT,texture_compression_s3tc, GL210, None) // #198 /* EXT_framebuffer_object, EXT_packed_depth_stencil, EXT_framebuffer_blit, EXT_framebuffer_multisample replaced with ARB_framebuffer_object */ _extension(GL,EXT,texture_mirror_clamp, GL210, None) // #298 @@ -259,6 +260,7 @@ namespace GL { #endif } namespace WEBGL { #ifdef MAGNUM_TARGET_GLES2 + _extension(GL,WEBGL,compressed_texture_s3tc, GLES200, None) // #8 _extension(GL,WEBGL,depth_texture, GLES200, GLES300) // #9 _extension(GL,WEBGL,draw_buffers, GLES200, GLES300) // #18 #endif @@ -330,6 +332,7 @@ namespace GL { #endif _extension(GL,EXT,texture_sRGB_decode, GLES200, None) // #152 _extension(GL,EXT,sRGB_write_control, GLES200, None) // #153 + _extension(GL,EXT,texture_compression_s3tc, GLES200, None) // #154 #ifdef MAGNUM_TARGET_GLES2 _extension(GL,EXT,instanced_arrays, GLES200, GLES300) // #156 _extension(GL,EXT,draw_instanced, GLES200, GLES300) // #157 diff --git a/src/Magnum/TextureFormat.h b/src/Magnum/TextureFormat.h index 238edc169..a3cd5dd29 100644 --- a/src/Magnum/TextureFormat.h +++ b/src/Magnum/TextureFormat.h @@ -926,6 +926,42 @@ enum class TextureFormat: GLenum { CompressedSRGBAlphaBptcUnorm = GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM, #endif + /** + * S3TC DXT1 compressed RGB. **Available only on 2D, 3D, 2D array, cube map + * and cube map array textures.** + * @requires_extension Extension @extension{EXT,texture_compression_s3tc} + * @requires_es_extension Extension @es_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} + * @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc} + */ + CompressedRGBS3tcDxt1 = GL_COMPRESSED_RGB_S3TC_DXT1_EXT, + + /** + * S3TC DXT1 compressed RGBA. **Available only on 2D, 3D, 2D array, cube + * map and cube map array textures.** + * @requires_extension Extension @extension{EXT,texture_compression_s3tc} + * @requires_es_extension Extension @es_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} + * @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc} + */ + CompressedRGBAS3tcDxt1 = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, + + /** + * S3TC DXT3 compressed RGBA. **Available only on 2D, 3D, 2D array, cube + * map and cube map array textures.** + * @requires_extension Extension @extension{EXT,texture_compression_s3tc} + * @requires_es_extension Extension @es_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} + * @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc} + */ + CompressedRGBAS3tcDxt3 = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT, + + /** + * S3TC DXT5 compressed RGBA. **Available only on 2D, 3D, 2D array, cube + * map and cube map array textures.** + * @requires_extension Extension @extension{EXT,texture_compression_s3tc} + * @requires_es_extension Extension @es_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} + * @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc} + */ + CompressedRGBAS3tcDxt5 = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, + /** * Depth component, size implementation-dependent. Not supported in 3D * textures. Not allowed in unemulated @ref Texture::setStorage() diff --git a/src/MagnumExternal/OpenGL/GL/extensions.txt b/src/MagnumExternal/OpenGL/GL/extensions.txt index 8dca7c818..035c3e478 100644 --- a/src/MagnumExternal/OpenGL/GL/extensions.txt +++ b/src/MagnumExternal/OpenGL/GL/extensions.txt @@ -21,6 +21,7 @@ extension ARB_sparse_buffer optional extension ARB_transform_feedback_overflow_query optional extension ATI_texture_mirror_once optional extension EXT_texture_filter_anisotropic optional +extension EXT_texture_compression_s3tc optional extension EXT_texture_mirror_clamp optional extension EXT_direct_state_access optional extension EXT_texture_sRGB_decode optional diff --git a/src/MagnumExternal/OpenGL/GL/flextGL.h b/src/MagnumExternal/OpenGL/GL/flextGL.h index 1197e6d0d..3b81f2b94 100644 --- a/src/MagnumExternal/OpenGL/GL/flextGL.h +++ b/src/MagnumExternal/OpenGL/GL/flextGL.h @@ -1629,6 +1629,13 @@ typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +/* GL_EXT_texture_compression_s3tc */ + +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 + /* GL_EXT_texture_mirror_clamp */ #define GL_MIRROR_CLAMP_EXT 0x8742 @@ -2383,6 +2390,9 @@ GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglVertexArrayVertexOffsetEXT)(GLuint, G /* GL_EXT_shader_integer_mix */ +/* GL_EXT_texture_compression_s3tc */ + + /* GL_EXT_texture_filter_anisotropic */ diff --git a/src/MagnumExternal/OpenGL/GL/flextGLPlatform.cpp b/src/MagnumExternal/OpenGL/GL/flextGLPlatform.cpp index 6ffac73e4..99577b055 100644 --- a/src/MagnumExternal/OpenGL/GL/flextGLPlatform.cpp +++ b/src/MagnumExternal/OpenGL/GL/flextGLPlatform.cpp @@ -337,6 +337,8 @@ void flextGLInit() { /* GL_EXT_shader_integer_mix */ + /* GL_EXT_texture_compression_s3tc */ + /* GL_EXT_texture_filter_anisotropic */ /* GL_EXT_texture_mirror_clamp */ diff --git a/src/MagnumExternal/OpenGL/GLES2/Emscripten/extensions.txt b/src/MagnumExternal/OpenGL/GLES2/Emscripten/extensions.txt index 315891b14..8a4eb5925 100644 --- a/src/MagnumExternal/OpenGL/GLES2/Emscripten/extensions.txt +++ b/src/MagnumExternal/OpenGL/GLES2/Emscripten/extensions.txt @@ -18,3 +18,5 @@ extension ANGLE_depth_texture optional extension EXT_draw_buffers optional extension EXT_texture_filter_anisotropic optional +# These are used as a base for WEBGL_* extensions +extension EXT_texture_compression_s3tc optional diff --git a/src/MagnumExternal/OpenGL/GLES2/extensions.txt b/src/MagnumExternal/OpenGL/GLES2/extensions.txt index 585e515ee..ab328b416 100644 --- a/src/MagnumExternal/OpenGL/GLES2/extensions.txt +++ b/src/MagnumExternal/OpenGL/GLES2/extensions.txt @@ -58,6 +58,7 @@ extension EXT_debug_marker optional extension EXT_disjoint_timer_query optional extension EXT_texture_sRGB_decode optional extension EXT_sRGB_write_control optional +extension EXT_texture_compression_s3tc optional extension EXT_draw_buffers_indexed optional extension EXT_texture_border_clamp optional extension EXT_separate_shader_objects optional diff --git a/src/MagnumExternal/OpenGL/GLES2/flextGL.h b/src/MagnumExternal/OpenGL/GLES2/flextGL.h index 3fe983ed3..3bac0ec23 100644 --- a/src/MagnumExternal/OpenGL/GLES2/flextGL.h +++ b/src/MagnumExternal/OpenGL/GLES2/flextGL.h @@ -760,6 +760,13 @@ typedef khronos_ssize_t GLsizeiptr; #define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 +/* GL_EXT_texture_compression_s3tc */ + +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 + /* GL_EXT_draw_buffers_indexed */ #define GL_BLEND_EQUATION_RGB 0x8009 @@ -1436,6 +1443,9 @@ GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglTexParameterIivEXT)(GLenum, GLenum, c GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglTexParameterIuivEXT)(GLenum, GLenum, const GLuint *); #define glTexParameterIuivEXT flextglTexParameterIuivEXT +/* GL_EXT_texture_compression_s3tc */ + + /* GL_EXT_texture_filter_anisotropic */ diff --git a/src/MagnumExternal/OpenGL/GLES2/flextGLEmscripten.h b/src/MagnumExternal/OpenGL/GLES2/flextGLEmscripten.h index ccdcb060e..6235d465c 100644 --- a/src/MagnumExternal/OpenGL/GLES2/flextGLEmscripten.h +++ b/src/MagnumExternal/OpenGL/GLES2/flextGLEmscripten.h @@ -448,6 +448,13 @@ typedef khronos_ssize_t GLsizeiptr; #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +/* GL_EXT_texture_compression_s3tc */ + +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 + /* Function prototypes */ /* GL_ANGLE_depth_texture */ @@ -617,6 +624,9 @@ GLAPI void glDrawBuffersEXT(GLsizei, const GLenum *); /* GL_EXT_shader_texture_lod */ +/* GL_EXT_texture_compression_s3tc */ + + /* GL_EXT_texture_filter_anisotropic */ diff --git a/src/MagnumExternal/OpenGL/GLES2/flextGLNaCl.h b/src/MagnumExternal/OpenGL/GLES2/flextGLNaCl.h index b5f2ff7ae..dd08e4e4e 100644 --- a/src/MagnumExternal/OpenGL/GLES2/flextGLNaCl.h +++ b/src/MagnumExternal/OpenGL/GLES2/flextGLNaCl.h @@ -735,6 +735,13 @@ typedef khronos_ssize_t GLsizeiptr; #define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 +/* GL_EXT_texture_compression_s3tc */ + +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 + /* GL_EXT_draw_buffers_indexed */ #define GL_BLEND_EQUATION_RGB 0x8009 @@ -1613,6 +1620,11 @@ GL_APICALL void GL_APIENTRY GLES2TexParameterIuivEXT(GLenum, GLenum, const GLuin #define glTexParameterIuivEXT GLES2TexParameterIuivEXT #endif +/* GL_EXT_texture_compression_s3tc */ +#ifndef GL_EXT_texture_compression_s3tc +#define GL_EXT_texture_compression_s3tc 1 +#endif + /* GL_EXT_texture_filter_anisotropic */ #ifndef GL_EXT_texture_filter_anisotropic #define GL_EXT_texture_filter_anisotropic 1 diff --git a/src/MagnumExternal/OpenGL/GLES2/flextGLPlatform.cpp b/src/MagnumExternal/OpenGL/GLES2/flextGLPlatform.cpp index 3a5273cc8..aac2e1f7f 100644 --- a/src/MagnumExternal/OpenGL/GLES2/flextGLPlatform.cpp +++ b/src/MagnumExternal/OpenGL/GLES2/flextGLPlatform.cpp @@ -164,6 +164,8 @@ void flextGLInit() { flextglTexParameterIivEXT = reinterpret_cast(loader.load("glTexParameterIivEXT")); flextglTexParameterIuivEXT = reinterpret_cast(loader.load("glTexParameterIuivEXT")); + /* GL_EXT_texture_compression_s3tc */ + /* GL_EXT_texture_filter_anisotropic */ /* GL_EXT_texture_format_BGRA8888 */ diff --git a/src/MagnumExternal/OpenGL/GLES3/Emscripten/extensions.txt b/src/MagnumExternal/OpenGL/GLES3/Emscripten/extensions.txt index 7d6ad2580..35ade3c48 100644 --- a/src/MagnumExternal/OpenGL/GLES3/Emscripten/extensions.txt +++ b/src/MagnumExternal/OpenGL/GLES3/Emscripten/extensions.txt @@ -3,3 +3,5 @@ version 3.0 es extension EXT_texture_filter_anisotropic optional +# These are used as a base for WEBGL_* extensions +extension EXT_texture_compression_s3tc optional diff --git a/src/MagnumExternal/OpenGL/GLES3/extensions.txt b/src/MagnumExternal/OpenGL/GLES3/extensions.txt index ad8213b31..f07c7bb94 100644 --- a/src/MagnumExternal/OpenGL/GLES3/extensions.txt +++ b/src/MagnumExternal/OpenGL/GLES3/extensions.txt @@ -13,6 +13,7 @@ extension EXT_debug_marker optional extension EXT_disjoint_timer_query optional extension EXT_texture_sRGB_decode optional extension EXT_sRGB_write_control optional +extension EXT_texture_compression_s3tc optional extension EXT_shader_integer_mix optional extension EXT_copy_image optional extension EXT_draw_buffers_indexed optional diff --git a/src/MagnumExternal/OpenGL/GLES3/flextGL.h b/src/MagnumExternal/OpenGL/GLES3/flextGL.h index 4e9a8bf3d..ddbb93b1d 100644 --- a/src/MagnumExternal/OpenGL/GLES3/flextGL.h +++ b/src/MagnumExternal/OpenGL/GLES3/flextGL.h @@ -946,6 +946,13 @@ typedef khronos_ssize_t GLsizeiptr; #define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 +/* GL_EXT_texture_compression_s3tc */ + +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 + /* GL_EXT_draw_buffers_indexed */ #define GL_BLEND_EQUATION_RGB 0x8009 @@ -1966,6 +1973,9 @@ GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglTexBufferEXT)(GLenum, GLenum, GLuint) GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglTexBufferRangeEXT)(GLenum, GLenum, GLuint, GLintptr, GLsizeiptr); #define glTexBufferRangeEXT flextglTexBufferRangeEXT +/* GL_EXT_texture_compression_s3tc */ + + /* GL_EXT_texture_cube_map_array */ diff --git a/src/MagnumExternal/OpenGL/GLES3/flextGLEmscripten.h b/src/MagnumExternal/OpenGL/GLES3/flextGLEmscripten.h index f8fefb58c..7bec8e0ee 100644 --- a/src/MagnumExternal/OpenGL/GLES3/flextGLEmscripten.h +++ b/src/MagnumExternal/OpenGL/GLES3/flextGLEmscripten.h @@ -694,6 +694,13 @@ typedef khronos_ssize_t GLsizeiptr; #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +/* GL_EXT_texture_compression_s3tc */ + +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 + /* Function prototypes */ /* GL_ES_VERSION_2_0 */ @@ -948,6 +955,9 @@ GLAPI void glVertexAttribI4uiv(GLuint, const GLuint *); GLAPI void glVertexAttribIPointer(GLuint, GLint, GLenum, GLsizei, const void *); GLAPI void glWaitSync(GLsync, GLbitfield, GLuint64); +/* GL_EXT_texture_compression_s3tc */ + + /* GL_EXT_texture_filter_anisotropic */ diff --git a/src/MagnumExternal/OpenGL/GLES3/flextGLPlatform.cpp b/src/MagnumExternal/OpenGL/GLES3/flextGLPlatform.cpp index 1ece6626c..42a421518 100644 --- a/src/MagnumExternal/OpenGL/GLES3/flextGLPlatform.cpp +++ b/src/MagnumExternal/OpenGL/GLES3/flextGLPlatform.cpp @@ -210,6 +210,8 @@ void flextGLInit() { flextglTexBufferEXT = reinterpret_cast(loader.load("glTexBufferEXT")); flextglTexBufferRangeEXT = reinterpret_cast(loader.load("glTexBufferRangeEXT")); + /* GL_EXT_texture_compression_s3tc */ + /* GL_EXT_texture_cube_map_array */ /* GL_EXT_texture_filter_anisotropic */