Browse Source

GL: implement EXT_texture_mirror_clamp_to_edge on ES and WebGL.

pull/638/head
Vladimír Vondruš 2 years ago
parent
commit
e3d1864ee6
  1. 4
      doc/opengl-support.dox
  2. 2
      src/Magnum/GL/Sampler.cpp
  3. 9
      src/Magnum/GL/Sampler.h

4
doc/opengl-support.dox

@ -488,7 +488,7 @@ Extension | Status
@gl_extension{EXT,texture_compression_bptc} | done @gl_extension{EXT,texture_compression_bptc} | done
@gl_extension{EXT,texture_compression_s3tc_srgb} | done @gl_extension{EXT,texture_compression_s3tc_srgb} | done
@gl_extension{EXT,clip_control} | done @gl_extension{EXT,clip_control} | done
@gl_extension{EXT,texture_mirror_clamp_to_edge} | | @gl_extension{EXT,texture_mirror_clamp_to_edge} | done
@gl_extension{EXT,depth_clamp} | done @gl_extension{EXT,depth_clamp} | done
@gl_extension{IMG,texture_compression_pvrtc} | done @gl_extension{IMG,texture_compression_pvrtc} | done
@gl_extension2{KHR,texture_compression_astc_hdr,KHR_texture_compression_astc_hdr} | done @gl_extension2{KHR,texture_compression_astc_hdr,KHR_texture_compression_astc_hdr} | done
@ -575,7 +575,7 @@ Extension | Status
@webgl_extension{EXT,polygon_offset_clamp} | missing support in Emscripten @webgl_extension{EXT,polygon_offset_clamp} | missing support in Emscripten
@webgl_extension{EXT,clip_control} | missing support in Emscripten @webgl_extension{EXT,clip_control} | missing support in Emscripten
@webgl_extension{EXT,depth_clamp} | done @webgl_extension{EXT,depth_clamp} | done
@webgl_extension{EXT,texture_mirror_clamp_to_edge} | | @webgl_extension{EXT,texture_mirror_clamp_to_edge} | done
@webgl_extension{KHR,parallel_shader_compile} | done @webgl_extension{KHR,parallel_shader_compile} | done
@webgl_extension{NV,shader_noperspective_interpolation} | done (shading language only) @webgl_extension{NV,shader_noperspective_interpolation} | done (shading language only)
@webgl_extension{OES,texture_float_linear} | done @webgl_extension{OES,texture_float_linear} | done

2
src/Magnum/GL/Sampler.cpp

@ -173,9 +173,7 @@ Debug& operator<<(Debug& debug, const SamplerWrapping value) {
#ifndef MAGNUM_TARGET_WEBGL #ifndef MAGNUM_TARGET_WEBGL
_c(ClampToBorder) _c(ClampToBorder)
#endif #endif
#ifndef MAGNUM_TARGET_GLES
_c(MirrorClampToEdge) _c(MirrorClampToEdge)
#endif
#undef _c #undef _c
/* LCOV_EXCL_STOP */ /* LCOV_EXCL_STOP */
} }

9
src/Magnum/GL/Sampler.h

@ -165,17 +165,18 @@ enum class SamplerWrapping: GLint {
#endif #endif
#endif #endif
#ifndef MAGNUM_TARGET_GLES
/** /**
* Mirror the texture once in negative coordinates and clamp to * Mirror the texture once in negative coordinates and clamp to
* edge after that. **Unavailable on rectangle textures.** * edge after that. **Unavailable on rectangle textures.**
* @requires_gl44 Extension @gl_extension{ARB,texture_mirror_clamp_to_edge}, * @requires_gl44 Extension @gl_extension{ARB,texture_mirror_clamp_to_edge},
* @gl_extension{ATI,texture_mirror_once} or @gl_extension{EXT,texture_mirror_clamp} * @gl_extension{ATI,texture_mirror_once} or @gl_extension{EXT,texture_mirror_clamp}
* @requires_gl Only separate @ref SamplerWrapping::MirroredRepeat or * @requires_es_extension Extension @gl_extension{EXT,texture_mirror_clamp_to_edge}
* @ref SamplerWrapping::ClampToEdge is available in OpenGL ES and * @requires_webgl_extension Extension @webgl_extension{EXT,texture_mirror_clamp_to_edge}
* WebGL.
*/ */
#ifndef MAGNUM_TARGET_GLES
MirrorClampToEdge = GL_MIRROR_CLAMP_TO_EDGE MirrorClampToEdge = GL_MIRROR_CLAMP_TO_EDGE
#else
MirrorClampToEdge = GL_MIRROR_CLAMP_TO_EDGE_EXT
#endif #endif
}; };

Loading…
Cancel
Save