Browse Source

GL: recognize and implement EXT_depth_clamp on GLES.

Makes Renderer::Feature::DepthClamp available not just on desktop GL
anymore.
pull/601/head
Vladimír Vondruš 3 years ago
parent
commit
6b37d76d8c
  1. 2
      doc/changelog.dox
  2. 1
      doc/opengl-support.dox
  3. 1
      src/Magnum/GL/Context.cpp
  4. 3
      src/Magnum/GL/Extensions.h
  5. 10
      src/Magnum/GL/Renderer.h
  6. 1
      src/MagnumExternal/OpenGL/GLES2/extensions.txt
  7. 4
      src/MagnumExternal/OpenGL/GLES2/flextGL.h
  8. 4
      src/MagnumExternal/OpenGL/GLES2/flextGLWindowsDesktop.h
  9. 1
      src/MagnumExternal/OpenGL/GLES3/extensions.txt
  10. 4
      src/MagnumExternal/OpenGL/GLES3/flextGL.h
  11. 4
      src/MagnumExternal/OpenGL/GLES3/flextGLWindowsDesktop.h

2
doc/changelog.dox

@ -492,6 +492,8 @@ See also:
complement @relativeref{GL::Framebuffer::InvalidationAttachment,Depth} and
@relativeref{GL::Framebuffer::InvalidationAttachment,Stencil} (see
[mosra/magnum#554](https://github.com/mosra/magnum/pull/554))
- @ref GL::Renderer::Feature::DepthClamp is now exposed on OpenGL ES as well,
using the @gl_extension{EXT,depth_clamp} extension
- Added @ref GL::Shader::wrap() and @relativeref{GL::Shader,release()}
- New @ref MAGNUM_GL_ABSTRACTSHADERPROGRAM_SUBCLASS_DRAW_IMPLEMENTATION() and
@ref MAGNUM_GL_ABSTRACTSHADERPROGRAM_SUBCLASS_DISPATCH_IMPLEMENTATION()

1
doc/opengl-support.dox

@ -482,6 +482,7 @@ Extension | Status
@gl_extension{EXT,texture_compression_rgtc} | done
@gl_extension{EXT,texture_compression_bptc} | done
@gl_extension{EXT,texture_compression_s3tc_srgb} | done
@gl_extension{EXT,depth_clamp} | done
@gl_extension{IMG,texture_compression_pvrtc} | done
@gl_extension2{KHR,texture_compression_astc_hdr,KHR_texture_compression_astc_hdr} | done
@gl_extension2{KHR,blend_equation_advanced_coherent,KHR_blend_equation_advanced} | done

1
src/Magnum/GL/Context.cpp

@ -361,6 +361,7 @@ constexpr Extension ExtensionList[]{
#endif
Extensions::EXT::debug_label{},
Extensions::EXT::debug_marker{},
Extensions::EXT::depth_clamp{},
Extensions::EXT::disjoint_timer_query{},
Extensions::EXT::draw_elements_base_vertex{},
Extensions::EXT::multi_draw_arrays{},

3
src/Magnum/GL/Extensions.h

@ -479,8 +479,9 @@ namespace ANDROID {
_extension( 70,EXT,texture_compression_bptc, GLES300, None) // #287
#endif
_extension( 71,EXT,texture_compression_s3tc_srgb, GLES200, None) // #289
_extension( 72,EXT,depth_clamp, GLES200, None) // #309
} namespace IMG {
_extension( 72,IMG,texture_compression_pvrtc, GLES200, None) // #54
_extension( 73,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

10
src/Magnum/GL/Renderer.h

@ -324,14 +324,18 @@ class MAGNUM_GL_EXPORT Renderer {
#endif
#endif
#ifndef MAGNUM_TARGET_GLES
#ifndef MAGNUM_TARGET_WEBGL
/**
* Depth clamping. If enabled, ignores near and far clipping plane.
* @requires_gl32 Extension @gl_extension{ARB,depth_clamp}
* @requires_gl Depth clamping is not available in OpenGL ES and
* WebGL.
* @requires_es_extension Extension @gl_extension{EXT,depth_clamp}
* @requires_gles Depth clamping is not available in WebGL.
*/
#ifndef MAGNUM_TARGET_GLES
DepthClamp = GL_DEPTH_CLAMP,
#else
DepthClamp = GL_DEPTH_CLAMP_EXT,
#endif
#endif
/**

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

@ -93,6 +93,7 @@ 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 EXT_depth_clamp optional
extension IMG_texture_compression_pvrtc optional
# extension KHR_texture_compression_astc_hdr optional
extension KHR_blend_equation_advanced_coherent optional

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

@ -1004,6 +1004,10 @@ typedef void (APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLen
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
/* GL_EXT_depth_clamp */
#define GL_DEPTH_CLAMP_EXT 0x864F
/* GL_IMG_texture_compression_pvrtc */
#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00

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

@ -1000,6 +1000,10 @@ typedef void (APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLen
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
/* GL_EXT_depth_clamp */
#define GL_DEPTH_CLAMP_EXT 0x864F
/* GL_IMG_texture_compression_pvrtc */
#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00

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

@ -69,6 +69,7 @@ extension EXT_clip_cull_distance optional
extension EXT_texture_compression_rgtc optional
extension EXT_texture_compression_bptc optional
extension EXT_texture_compression_s3tc_srgb optional
extension EXT_depth_clamp optional
extension IMG_texture_compression_pvrtc optional
# extension KHR_texture_compression_astc_hdr optional
extension KHR_blend_equation_advanced_coherent optional

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

@ -1629,6 +1629,10 @@ typedef void (APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLen
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
/* GL_EXT_depth_clamp */
#define GL_DEPTH_CLAMP_EXT 0x864F
/* GL_IMG_texture_compression_pvrtc */
#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00

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

@ -1622,6 +1622,10 @@ typedef void (APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLen
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
/* GL_EXT_depth_clamp */
#define GL_DEPTH_CLAMP_EXT 0x864F
/* GL_IMG_texture_compression_pvrtc */
#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00

Loading…
Cancel
Save