Browse Source

Don't expose EXT_sRGB on ES3/WebGL2 builds.

It is superseded by core functionality. The only annoyance is that you
need to use TextureFormat::SRGB in ES2 and TextureFormat::SRGB8 in ES3,
but that's with many other formats anyway. Also apparently the unsized
format is still allowed in core desktop GL, which is a shame.
pull/107/head
Vladimír Vondruš 11 years ago
parent
commit
6313791812
  1. 2
      doc/opengl-support.dox
  2. 6
      src/Magnum/AbstractTexture.cpp
  3. 2
      src/Magnum/Context.cpp
  4. 2
      src/Magnum/Extensions.h
  5. 18
      src/Magnum/TextureFormat.h
  6. 2
      src/MagnumExternal/OpenGL/GLES2/Emscripten/extensions.txt
  7. 2
      src/MagnumExternal/OpenGL/GLES2/extensions.txt
  8. 20
      src/MagnumExternal/OpenGL/GLES2/flextGL.h
  9. 20
      src/MagnumExternal/OpenGL/GLES2/flextGLEmscripten.h
  10. 24
      src/MagnumExternal/OpenGL/GLES2/flextGLNaCl.h
  11. 4
      src/MagnumExternal/OpenGL/GLES2/flextGLPlatform.cpp
  12. 1
      src/MagnumExternal/OpenGL/GLES3/Emscripten/extensions.txt
  13. 1
      src/MagnumExternal/OpenGL/GLES3/extensions.txt
  14. 10
      src/MagnumExternal/OpenGL/GLES3/flextGL.h
  15. 10
      src/MagnumExternal/OpenGL/GLES3/flextGLEmscripten.h
  16. 2
      src/MagnumExternal/OpenGL/GLES3/flextGLPlatform.cpp

2
doc/opengl-support.dox

@ -302,6 +302,7 @@ Extension | Status
@es_extension{EXT,occlusion_query_boolean} | done
@es_extension{EXT,shadow_samplers} | done
@es_extension{EXT,texture_rg} | done
@es_extension{EXT,sRGB} | done
@es_extension{EXT,texture_storage} | done
@es_extension{EXT,map_buffer_range} | done
@es_extension{EXT,draw_buffers} | done
@ -350,7 +351,6 @@ Extension | Status
@es_extension{EXT,debug_label} | see above
@es_extension{EXT,debug_marker} | done
@es_extension{EXT,separate_shader_objects} | only direct uniform binding
@es_extension{EXT,sRGB} | done
@es_extension{EXT,multisampled_render_to_texture} | only renderbuffer storage
@es_extension{EXT,robustness} | done
@es_extension{EXT,disjoint_timer_query} | only time elapsed query

6
src/Magnum/AbstractTexture.cpp

@ -552,7 +552,9 @@ ColorFormat AbstractTexture::imageFormatForInternalFormat(const TextureFormat in
case TextureFormat::R11FG11FB10F:
case TextureFormat::RGB9E5:
#endif
#if !defined(MAGNUM_TARGET_GLES) || defined(MAGNUM_TARGET_GLES2)
case TextureFormat::SRGB:
#endif
#ifndef MAGNUM_TARGET_GLES2
case TextureFormat::SRGB8:
#endif
@ -599,7 +601,9 @@ ColorFormat AbstractTexture::imageFormatForInternalFormat(const TextureFormat in
#ifndef MAGNUM_TARGET_GLES
case TextureFormat::RGBA12:
#endif
#if !defined(MAGNUM_TARGET_GLES) || defined(MAGNUM_TARGET_GLES2)
case TextureFormat::SRGBAlpha:
#endif
#ifndef MAGNUM_TARGET_GLES2
case TextureFormat::SRGB8Alpha8:
#endif
@ -683,8 +687,10 @@ ColorType AbstractTexture::imageTypeForInternalFormat(const TextureFormat intern
case TextureFormat::Luminance:
case TextureFormat::LuminanceAlpha:
#endif
#if !defined(MAGNUM_TARGET_GLES) || defined(MAGNUM_TARGET_GLES2)
case TextureFormat::SRGB:
case TextureFormat::SRGBAlpha:
#endif
#ifndef MAGNUM_TARGET_GLES2
case TextureFormat::SRGB8:
case TextureFormat::SRGB8Alpha8:

2
src/Magnum/Context.cpp

@ -253,7 +253,6 @@ const std::vector<Extension>& Extension::extensions(Version version) {
_extension(GL,EXT,disjoint_timer_query),
_extension(GL,EXT,texture_sRGB_decode),
_extension(GL,EXT,separate_shader_objects),
_extension(GL,EXT,sRGB),
_extension(GL,EXT,multisampled_render_to_texture),
_extension(GL,EXT,robustness),
_extension(GL,KHR,texture_compression_astc_ldr),
@ -287,6 +286,7 @@ const std::vector<Extension>& Extension::extensions(Version version) {
_extension(GL,EXT,occlusion_query_boolean),
_extension(GL,EXT,shadow_samplers),
_extension(GL,EXT,texture_rg),
_extension(GL,EXT,sRGB),
_extension(GL,EXT,texture_storage),
_extension(GL,EXT,map_buffer_range),
_extension(GL,EXT,draw_buffers),

2
src/Magnum/Extensions.h

@ -310,8 +310,8 @@ namespace GL {
#ifdef MAGNUM_TARGET_GLES2
_extension(GL,EXT,shadow_samplers, GLES200, GLES300) // #102
_extension(GL,EXT,texture_rg, GLES200, GLES300) // #103
_extension(GL,EXT,sRGB, GLES200, GLES300) // #105
#endif
_extension(GL,EXT,sRGB, GLES200, None) // #105
_extension(GL,EXT,multisampled_render_to_texture, GLES200, None) // #106
_extension(GL,EXT,robustness, GLES200, None) // #107
#ifdef MAGNUM_TARGET_GLES2

18
src/Magnum/TextureFormat.h

@ -694,21 +694,24 @@ enum class TextureFormat: GLenum {
RGB9E5 = GL_RGB9_E5,
#endif
#if !defined(MAGNUM_TARGET_GLES) || defined(MAGNUM_TARGET_GLES2)
/**
* sRGB, normalized unsigned, size implementation-dependent. Not allowed in
* unemulated @ref Texture::setStorage() "*Texture::setStorage()" calls, in
* that case use @ref TextureFormat::SRGB8 "TextureFormat::SRGB8" instead.
* @requires_es_extension Extension @es_extension{EXT,sRGB}
* @requires_webgl_extension Extension @webgl_extension{EXT,sRGB}
* @requires_es_extension Extension @es_extension{EXT,sRGB} in OpenGL ES 2.0.
* Use @ref TextureFormat::SRGB8 in OpenGL ES 3.0 instead.
* @requires_webgl_extension Extension @webgl_extension{EXT,sRGB} in WebGL
* 1.0. Use @ref TextureFormat::SRGB8 in WebGL 2.0 instead.
* @deprecated_gl Prefer to use the exactly specified version of this
* format, i.e. @ref TextureFormat::SRGB8.
* @todo is this allowed in core?
*/
#ifndef MAGNUM_TARGET_GLES
SRGB = GL_SRGB,
#else
SRGB = GL_SRGB_EXT,
#endif
#endif
#ifndef MAGNUM_TARGET_GLES2
/**
@ -785,21 +788,24 @@ enum class TextureFormat: GLenum {
RGBA12 = GL_RGBA12,
#endif
#if !defined(MAGNUM_TARGET_GLES) || defined(MAGNUM_TARGET_GLES2)
/**
* sRGBA, normalized unsigned, size implementation-dependent. Not allowed in
* unemulated @ref Texture::setStorage() "*Texture::setStorage()" calls, in
* that case use @ref TextureFormat::SRGB8Alpha8 "TextureFormat::SRGB8Alpha8" instead.
* @requires_es_extension Extension @es_extension{EXT,sRGB}
* @requires_webgl_extension Extension @webgl_extension{EXT,sRGB}
* @requires_es_extension Extension @es_extension{EXT,sRGB} in OpenGL ES
* 2.0. Use @ref TextureFormat::SRGB8Alpha8 in OpenGL ES 3.0 instead.
* @requires_webgl_extension Extension @webgl_extension{EXT,sRGB} in WebGL
* 1.0. Use @ref TextureFormat::SRGB8Alpha8 in WebGL 2.0 instead.
* @deprecated_gl Prefer to use the exactly specified version of this
* format, i.e. @ref TextureFormat::SRGB8Alpha8.
* @todo is this allowed in core?
*/
#ifndef MAGNUM_TARGET_GLES
SRGBAlpha = GL_SRGB_ALPHA,
#else
SRGBAlpha = GL_SRGB_ALPHA_EXT,
#endif
#endif
#ifndef MAGNUM_TARGET_GLES2
/**

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

@ -5,6 +5,7 @@ version 2.0 es
extension ANGLE_instanced_arrays optional
extension EXT_blend_minmax optional
extension EXT_shader_texture_lod optional
extension EXT_sRGB optional
extension OES_element_index_uint optional
extension OES_texture_half_float_linear optional
extension OES_texture_float_linear optional
@ -17,4 +18,3 @@ extension ANGLE_depth_texture optional
extension EXT_draw_buffers optional
extension EXT_texture_filter_anisotropic optional
extension EXT_sRGB optional

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

@ -16,6 +16,7 @@ extension EXT_shader_texture_lod optional
extension EXT_occlusion_query_boolean optional
extension EXT_shadow_samplers optional
extension EXT_texture_rg optional
extension EXT_sRGB optional
extension EXT_texture_storage optional
extension EXT_map_buffer_range optional
extension EXT_draw_buffers optional
@ -56,7 +57,6 @@ extension EXT_debug_marker optional
extension EXT_disjoint_timer_query optional
extension EXT_texture_sRGB_decode optional
extension EXT_separate_shader_objects optional
extension EXT_sRGB optional
extension EXT_multisampled_render_to_texture optional
extension EXT_robustness optional
extension KHR_debug optional

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

@ -468,6 +468,13 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_R8_EXT 0x8229
#define GL_RG8_EXT 0x822B
/* GL_EXT_sRGB */
#define GL_SRGB_EXT 0x8C40
#define GL_SRGB_ALPHA_EXT 0x8C42
#define GL_SRGB8_ALPHA8_EXT 0x8C43
#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210
/* GL_EXT_texture_storage */
#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F
@ -762,13 +769,6 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_ACTIVE_PROGRAM_EXT 0x8259
#define GL_PROGRAM_PIPELINE_BINDING_EXT 0x825A
/* GL_EXT_sRGB */
#define GL_SRGB_EXT 0x8C40
#define GL_SRGB_ALPHA_EXT 0x8C42
#define GL_SRGB8_ALPHA8_EXT 0x8C43
#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210
/* GL_EXT_multisampled_render_to_texture */
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C
@ -1116,6 +1116,9 @@ GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglGetQueryObjectuivEXT)(GLuint, GLenum,
/* GL_EXT_texture_rg */
/* GL_EXT_sRGB */
/* GL_EXT_texture_storage */
GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglTexStorage1DEXT)(GLenum, GLsizei, GLenum, GLsizei);
@ -1407,9 +1410,6 @@ GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglProgramUniformMatrix3x4fvEXT)(GLuint,
GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglProgramUniformMatrix4x3fvEXT)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
#define glProgramUniformMatrix4x3fvEXT flextglProgramUniformMatrix4x3fvEXT
/* GL_EXT_sRGB */
/* GL_EXT_multisampled_render_to_texture */
GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglRenderbufferStorageMultisampleEXT)(GLenum, GLsizei, GLenum, GLsizei, GLsizei);

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

@ -370,6 +370,13 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_FUNC_ADD_EXT 0x8006
#define GL_BLEND_EQUATION_EXT 0x8009
/* GL_EXT_sRGB */
#define GL_SRGB_EXT 0x8C40
#define GL_SRGB_ALPHA_EXT 0x8C42
#define GL_SRGB8_ALPHA8_EXT 0x8C43
#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210
/* GL_OES_element_index_uint */
#define GL_UNSIGNED_INT 0x1405
@ -443,13 +450,6 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
/* GL_EXT_sRGB */
#define GL_SRGB_EXT 0x8C40
#define GL_SRGB_ALPHA_EXT 0x8C42
#define GL_SRGB8_ALPHA8_EXT 0x8C43
#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210
/* Function prototypes */
/* GL_ES_VERSION_2_0 */
@ -610,6 +610,9 @@ GLAPI void glBlendEquationEXT(GLenum);
/* GL_EXT_shader_texture_lod */
/* GL_EXT_sRGB */
/* GL_OES_element_index_uint */
@ -645,9 +648,6 @@ GLAPI void glDrawBuffersEXT(GLsizei, const GLenum *);
/* GL_EXT_texture_filter_anisotropic */
/* GL_EXT_sRGB */
#ifdef __cplusplus
}
#endif

24
src/MagnumExternal/OpenGL/GLES2/flextGLNaCl.h vendored

@ -443,6 +443,13 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_R8_EXT 0x8229
#define GL_RG8_EXT 0x822B
/* GL_EXT_sRGB */
#define GL_SRGB_EXT 0x8C40
#define GL_SRGB_ALPHA_EXT 0x8C42
#define GL_SRGB8_ALPHA8_EXT 0x8C43
#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210
/* GL_EXT_texture_storage */
#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F
@ -737,13 +744,6 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_ACTIVE_PROGRAM_EXT 0x8259
#define GL_PROGRAM_PIPELINE_BINDING_EXT 0x825A
/* GL_EXT_sRGB */
#define GL_SRGB_EXT 0x8C40
#define GL_SRGB_ALPHA_EXT 0x8C42
#define GL_SRGB8_ALPHA8_EXT 0x8C43
#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210
/* GL_EXT_multisampled_render_to_texture */
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C
@ -1263,6 +1263,11 @@ GL_APICALL void GL_APIENTRY GLES2GetQueryObjectuivEXT(GLuint, GLenum, GLuint *);
#define GL_EXT_texture_rg 1
#endif
/* GL_EXT_sRGB */
#ifndef GL_EXT_sRGB
#define GL_EXT_sRGB 1
#endif
/* GL_EXT_texture_storage */
#ifndef GL_EXT_texture_storage
#define GL_EXT_texture_storage 1
@ -1632,11 +1637,6 @@ GL_APICALL void GL_APIENTRY GLES2ProgramUniformMatrix4x3fvEXT(GLuint, GLint, GLs
#define glProgramUniformMatrix4x3fvEXT GLES2ProgramUniformMatrix4x3fvEXT
#endif
/* GL_EXT_sRGB */
#ifndef GL_EXT_sRGB
#define GL_EXT_sRGB 1
#endif
/* GL_EXT_multisampled_render_to_texture */
#ifndef GL_EXT_multisampled_render_to_texture
#define GL_EXT_multisampled_render_to_texture 1

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

@ -52,6 +52,8 @@ void flextGLInit() {
/* GL_EXT_texture_rg */
/* GL_EXT_sRGB */
/* GL_EXT_texture_storage */
flextglTexStorage1DEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, GLsizei)>(loader.load("glTexStorage1DEXT"));
flextglTexStorage2DEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, GLsizei, GLsizei)>(loader.load("glTexStorage2DEXT"));
@ -217,8 +219,6 @@ void flextGLInit() {
flextglProgramUniformMatrix3x4fvEXT = reinterpret_cast<void(APIENTRY*)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *)>(loader.load("glProgramUniformMatrix3x4fvEXT"));
flextglProgramUniformMatrix4x3fvEXT = reinterpret_cast<void(APIENTRY*)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *)>(loader.load("glProgramUniformMatrix4x3fvEXT"));
/* GL_EXT_sRGB */
/* GL_EXT_multisampled_render_to_texture */
flextglRenderbufferStorageMultisampleEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, GLsizei, GLsizei)>(loader.load("glRenderbufferStorageMultisampleEXT"));
flextglFramebufferTexture2DMultisampleEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLenum, GLenum, GLuint, GLint, GLsizei)>(loader.load("glFramebufferTexture2DMultisampleEXT"));

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

@ -3,4 +3,3 @@
version 3.0 es
extension EXT_texture_filter_anisotropic optional
extension EXT_sRGB optional

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

@ -12,7 +12,6 @@ extension EXT_debug_marker optional
extension EXT_disjoint_timer_query optional
extension EXT_texture_sRGB_decode optional
extension EXT_separate_shader_objects optional
extension EXT_sRGB optional
extension EXT_multisampled_render_to_texture optional
extension EXT_robustness optional
extension KHR_debug optional

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

@ -953,13 +953,6 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_ACTIVE_PROGRAM_EXT 0x8259
#define GL_PROGRAM_PIPELINE_BINDING_EXT 0x825A
/* GL_EXT_sRGB */
#define GL_SRGB_EXT 0x8C40
#define GL_SRGB_ALPHA_EXT 0x8C42
#define GL_SRGB8_ALPHA8_EXT 0x8C43
#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210
/* GL_EXT_multisampled_render_to_texture */
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C
@ -1639,9 +1632,6 @@ GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglProgramUniformMatrix3x4fvEXT)(GLuint,
GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglProgramUniformMatrix4x3fvEXT)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
#define glProgramUniformMatrix4x3fvEXT flextglProgramUniformMatrix4x3fvEXT
/* GL_EXT_sRGB */
/* GL_EXT_multisampled_render_to_texture */
GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglRenderbufferStorageMultisampleEXT)(GLenum, GLsizei, GLenum, GLsizei, GLsizei);

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

@ -694,13 +694,6 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
/* GL_EXT_sRGB */
#define GL_SRGB_EXT 0x8C40
#define GL_SRGB_ALPHA_EXT 0x8C42
#define GL_SRGB8_ALPHA8_EXT 0x8C43
#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210
/* Function prototypes */
/* GL_ES_VERSION_2_0 */
@ -958,9 +951,6 @@ GLAPI void glGetInternalformativ(GLenum, GLenum, GLenum, GLsizei, GLint *);
/* GL_EXT_texture_filter_anisotropic */
/* GL_EXT_sRGB */
#ifdef __cplusplus
}
#endif

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

@ -163,8 +163,6 @@ void flextGLInit() {
flextglProgramUniformMatrix3x4fvEXT = reinterpret_cast<void(APIENTRY*)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *)>(loader.load("glProgramUniformMatrix3x4fvEXT"));
flextglProgramUniformMatrix4x3fvEXT = reinterpret_cast<void(APIENTRY*)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *)>(loader.load("glProgramUniformMatrix4x3fvEXT"));
/* GL_EXT_sRGB */
/* GL_EXT_multisampled_render_to_texture */
flextglRenderbufferStorageMultisampleEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLsizei, GLenum, GLsizei, GLsizei)>(loader.load("glRenderbufferStorageMultisampleEXT"));
flextglFramebufferTexture2DMultisampleEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLenum, GLenum, GLuint, GLint, GLsizei)>(loader.load("glFramebufferTexture2DMultisampleEXT"));

Loading…
Cancel
Save