Browse Source

Implement EXT_sRGB_write_control ES extension.

pull/107/head
Vladimír Vondruš 11 years ago
parent
commit
df6acb10ab
  1. 1
      doc/opengl-support.dox
  2. 1
      src/Magnum/Context.cpp
  3. 1
      src/Magnum/Extensions.h
  4. 17
      src/Magnum/Renderer.h
  5. 1
      src/MagnumExternal/OpenGL/GLES2/extensions.txt
  6. 7
      src/MagnumExternal/OpenGL/GLES2/flextGL.h
  7. 2
      src/MagnumExternal/OpenGL/GLES2/flextGLPlatform.cpp
  8. 1
      src/MagnumExternal/OpenGL/GLES3/extensions.txt
  9. 7
      src/MagnumExternal/OpenGL/GLES3/flextGL.h
  10. 2
      src/MagnumExternal/OpenGL/GLES3/flextGLPlatform.cpp

1
doc/opengl-support.dox

@ -355,6 +355,7 @@ Extension | Status
@es_extension{EXT,robustness} | done
@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_extension{EXT,shader_integer_mix} | done (shading language only)
@extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} | |
@extension{KHR,texture_compression_astc_hdr} | |

1
src/Magnum/Context.cpp

@ -252,6 +252,7 @@ const std::vector<Extension>& Extension::extensions(Version version) {
_extension(GL,EXT,debug_marker),
_extension(GL,EXT,disjoint_timer_query),
_extension(GL,EXT,texture_sRGB_decode),
_extension(GL,EXT,sRGB_write_control),
_extension(GL,EXT,separate_shader_objects),
_extension(GL,EXT,multisampled_render_to_texture),
_extension(GL,EXT,robustness),

1
src/Magnum/Extensions.h

@ -323,6 +323,7 @@ namespace GL {
_extension(GL,EXT,draw_buffers, GLES200, GLES300) // #151
#endif
_extension(GL,EXT,texture_sRGB_decode, GLES200, None) // #152
_extension(GL,EXT,sRGB_write_control, GLES200, None) // #153
#ifdef MAGNUM_TARGET_GLES2
_extension(GL,EXT,instanced_arrays, GLES200, GLES300) // #156
_extension(GL,EXT,draw_instanced, GLES200, GLES300) // #157

17
src/Magnum/Renderer.h

@ -140,15 +140,24 @@ class MAGNUM_EXPORT Renderer {
*/
FaceCulling = GL_CULL_FACE,
#ifndef MAGNUM_TARGET_GLES
#ifndef MAGNUM_TARGET_WEBGL
/**
* sRGB encoding of the default framebuffer
* @requires_gl30 Extension @extension{ARB,framebuffer_sRGB}
* @requires_gl sRGB encoding of the default framebuffer is
* implementation-defined in OpenGL ES and WebGL.
* @requires_es_extension @es_extension{EXT,sRGB_write_control}.
* Otherwise sRGB encoding of the default framebuffer is
* implementation-defined.
* @requires_gles sRGB encoding of the default framebuffer is
* implementation-defined in WebGL.
*/
#ifndef MAGNUM_TARGET_GLES
FramebufferSRGB = GL_FRAMEBUFFER_SRGB,
#else
FramebufferSRGB = GL_FRAMEBUFFER_SRGB_EXT,
#endif
#endif
#ifndef MAGNUM_TARGET_GLES
/**
* Logical operation
* @see @ref setLogicOperation()
@ -156,9 +165,7 @@ class MAGNUM_EXPORT Renderer {
* available in OpenGL ES and WebGL.
*/
LogicOperation = GL_COLOR_LOGIC_OP,
#endif
#ifndef MAGNUM_TARGET_GLES
/**
* Multisampling. Enabled by default. Note that the actual presence
* of this feature in default framebuffer depends on context

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

@ -56,6 +56,7 @@ extension EXT_debug_label optional
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_separate_shader_objects optional
extension EXT_multisampled_render_to_texture optional
extension EXT_robustness optional

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

@ -759,6 +759,10 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_DECODE_EXT 0x8A49
#define GL_SKIP_DECODE_EXT 0x8A4A
/* GL_EXT_sRGB_write_control */
#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9
/* GL_EXT_separate_shader_objects */
#define GL_ACTIVE_PROGRAM_EXT 0x8259
@ -1313,6 +1317,9 @@ GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglGetQueryObjectui64vEXT)(GLuint, GLenu
/* GL_EXT_texture_sRGB_decode */
/* GL_EXT_sRGB_write_control */
/* GL_EXT_separate_shader_objects */
GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglUseShaderProgramEXT)(GLenum, GLuint);

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

@ -170,6 +170,8 @@ void flextGLInit() {
/* GL_EXT_texture_sRGB_decode */
/* GL_EXT_sRGB_write_control */
/* GL_EXT_separate_shader_objects */
flextglUseShaderProgramEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLuint)>(loader.load("glUseShaderProgramEXT"));
flextglActiveProgramEXT = reinterpret_cast<void(APIENTRY*)(GLuint)>(loader.load("glActiveProgramEXT"));

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

@ -11,6 +11,7 @@ extension EXT_debug_label optional
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_separate_shader_objects optional
extension EXT_multisampled_render_to_texture optional
extension EXT_robustness optional

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

@ -943,6 +943,10 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_DECODE_EXT 0x8A49
#define GL_SKIP_DECODE_EXT 0x8A4A
/* GL_EXT_sRGB_write_control */
#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9
/* GL_EXT_separate_shader_objects */
#define GL_ACTIVE_PROGRAM_EXT 0x8259
@ -1535,6 +1539,9 @@ GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglGetQueryObjectui64vEXT)(GLuint, GLenu
/* GL_EXT_texture_sRGB_decode */
/* GL_EXT_sRGB_write_control */
/* GL_EXT_separate_shader_objects */
GLAPI FLEXTGL_EXPORT void(APIENTRY *flextglUseShaderProgramEXT)(GLenum, GLuint);

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

@ -114,6 +114,8 @@ void flextGLInit() {
/* GL_EXT_texture_sRGB_decode */
/* GL_EXT_sRGB_write_control */
/* GL_EXT_separate_shader_objects */
flextglUseShaderProgramEXT = reinterpret_cast<void(APIENTRY*)(GLenum, GLuint)>(loader.load("glUseShaderProgramEXT"));
flextglActiveProgramEXT = reinterpret_cast<void(APIENTRY*)(GLuint)>(loader.load("glActiveProgramEXT"));

Loading…
Cancel
Save