Browse Source

Support for ARB_texture_mirror_clamp_to_edge.

This functionality was present in ATI_texture_mirror_once and
EXT_texture_mirror_clamp for ages, now (strict subset of) it is in core
OpenGL 4.4 too.
pull/278/head
Vladimír Vondruš 13 years ago
parent
commit
cfa3d35f11
  1. 2
      src/Context.cpp
  2. 3
      src/Extensions.h
  3. 17
      src/Sampler.h

2
src/Context.cpp

@ -82,7 +82,9 @@ const std::vector<Extension>& Extension::extensions(Version version) {
_extension(GL,AMD,vertex_shader_layer), // done
_extension(GL,AMD,shader_trinary_minmax), // done
_extension(GL,ARB,robustness), // done
_extension(GL,ATI,texture_mirror_once),
_extension(GL,EXT,texture_filter_anisotropic), // done
_extension(GL,EXT,texture_mirror_clamp),
_extension(GL,EXT,direct_state_access),
_extension(GL,GREMEDY,string_marker)}; // done
static const std::vector<Extension> extensions300{

3
src/Extensions.h

@ -161,10 +161,13 @@ namespace GL {
_extension(GL,ARB,texture_mirror_clamp_to_edge, GL210, GL440) // #149
_extension(GL,ARB,texture_stencil8, GL210, GL440) // #150
_extension(GL,ARB,vertex_type_10f_11f_11f_rev, GL300, GL440) // #151
} namespace ATI {
_extension(GL,ATI,texture_mirror_once, GL210, None) // #221
} namespace EXT {
_extension(GL,EXT,texture_filter_anisotropic, GL210, None) // #187
/* 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
_extension(GL,EXT,gpu_shader4, GL210, GL300) // #326
_extension(GL,EXT,packed_float, GL210, GL300) // #328
_extension(GL,EXT,texture_array, GL210, GL300) // #329

17
src/Sampler.h

@ -113,11 +113,24 @@ class Sampler {
* @requires_es_extension %Extension @es_extension{NV,texture_border_clamp}
*/
#ifndef MAGNUM_TARGET_GLES
ClampToBorder = GL_CLAMP_TO_BORDER
ClampToBorder = GL_CLAMP_TO_BORDER,
#else
ClampToBorder = GL_CLAMP_TO_BORDER_NV
ClampToBorder = GL_CLAMP_TO_BORDER_NV,
#endif
#endif
#ifndef MAGNUM_TARGET_GLES
/**
* Mirror the texture once in negative coordinates and clamp to
* edge after that.
* @requires_gl44 %Extension @extension{ARB,texture_mirror_clamp_to_edge},
* @extension{ATI,texture_mirror_once} or @extension{EXT,texture_mirror_clamp}
* @requires_gl Only separate @ref Magnum::Sampler::Wrapping "Wrapping::MirroredRepeat"
* or @ref Magnum::Sampler::Wrapping "Wrapping::ClampToEdge"
* is available in OpenGL ES.
*/
MirrorClampToEdge = GL_MIRROR_CLAMP_TO_EDGE
#endif
};
#ifndef MAGNUM_TARGET_GLES3

Loading…
Cancel
Save