From 8018b17bc74bbe3579d3e4d7a9eb534169f6f0aa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?=
Date: Tue, 1 May 2018 02:05:30 +0200
Subject: [PATCH] Doxygen: renamed \extension[2] to \gl_extension[2].
So it's clear that this is not a Vulkan extension link.
---
Doxyfile | 4 +-
Doxyfile-mcss | 4 +-
Doxyfile-public | 4 +-
doc/changelog-old.dox | 50 +-
doc/changelog.dox | 78 +--
doc/coding-style.dox | 12 +-
doc/method-chaining.dox | 2 +-
doc/opengl-support.dox | 546 ++++++++++----------
doc/opengl-wrapping.dox | 4 +-
doc/opengl.dox | 2 +-
doc/platforms-gl.dox | 6 +-
doc/snippets/coding-style.h | 6 +-
src/Magnum/DebugTools/BufferData.h | 4 +-
src/Magnum/DebugTools/TextureImage.h | 4 +-
src/Magnum/GL/AbstractFramebuffer.h | 100 ++--
src/Magnum/GL/AbstractObject.cpp | 4 +-
src/Magnum/GL/AbstractObject.h | 6 +-
src/Magnum/GL/AbstractQuery.h | 12 +-
src/Magnum/GL/AbstractShaderProgram.h | 110 ++--
src/Magnum/GL/AbstractTexture.h | 70 +--
src/Magnum/GL/Attribute.h | 28 +-
src/Magnum/GL/Buffer.h | 134 ++---
src/Magnum/GL/BufferImage.h | 10 +-
src/Magnum/GL/BufferTexture.h | 28 +-
src/Magnum/GL/BufferTextureFormat.h | 12 +-
src/Magnum/GL/Context.h | 18 +-
src/Magnum/GL/CubeMapTexture.h | 148 +++---
src/Magnum/GL/CubeMapTextureArray.h | 76 +--
src/Magnum/GL/DebugOutput.h | 78 +--
src/Magnum/GL/DefaultFramebuffer.h | 56 +--
src/Magnum/GL/Framebuffer.h | 182 +++----
src/Magnum/GL/ImageFormat.h | 6 +-
src/Magnum/GL/Mesh.h | 128 ++---
src/Magnum/GL/MeshView.h | 40 +-
src/Magnum/GL/MultisampleTexture.h | 40 +-
src/Magnum/GL/PixelFormat.h | 430 ++++++++--------
src/Magnum/GL/PrimitiveQuery.h | 16 +-
src/Magnum/GL/RectangleTexture.h | 46 +-
src/Magnum/GL/Renderbuffer.h | 34 +-
src/Magnum/GL/RenderbufferFormat.h | 102 ++--
src/Magnum/GL/Renderer.h | 214 ++++----
src/Magnum/GL/SampleQuery.h | 22 +-
src/Magnum/GL/Sampler.h | 28 +-
src/Magnum/GL/Shader.h | 100 ++--
src/Magnum/GL/Texture.h | 218 ++++----
src/Magnum/GL/TextureArray.h | 90 ++--
src/Magnum/GL/TextureFormat.h | 582 +++++++++++-----------
src/Magnum/GL/TimeQuery.h | 8 +-
src/Magnum/GL/TransformFeedback.h | 38 +-
src/Magnum/GL/Version.h | 8 +-
src/Magnum/Mesh.h | 24 +-
src/Magnum/Shaders/MeshVisualizer.h | 8 +-
src/Magnum/Text/DistanceFieldGlyphCache.h | 4 +-
src/Magnum/Text/GlyphCache.h | 2 +-
src/Magnum/Text/Renderer.h | 6 +-
src/Magnum/TextureTools/DistanceField.h | 2 +-
56 files changed, 1997 insertions(+), 1997 deletions(-)
diff --git a/Doxyfile b/Doxyfile
index ca048063f..d2dba2b0e 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -264,8 +264,8 @@ ALIASES = \
"requires_gl46=@xrefitem requires-gl46 \"Requires OpenGL 4.6\" \"Functionality requiring OpenGL 4.6\"" \
"requires_extension=@xrefitem requires-extension \"Requires OpenGL extension\" \"Functionality requiring specific OpenGL extension\"" \
"requires_gl=@xrefitem requires-gl \"Requires desktop OpenGL\" \"Functionality requiring desktop OpenGL\"" \
- "extension{2}=\1_\2" \
- "extension2{3}=\1_\2" \
+ "gl_extension{2}=\1_\2" \
+ "gl_extension2{3}=\1_\2" \
"requires_gles20=@xrefitem requires-gles20 \"Requires OpenGL ES 2.0 / WebGL 1.0\" \"Functionality requiring OpenGL ES 2.0 or WebGL 1.0\"" \
"requires_gles30=@xrefitem requires-gles30 \"Requires OpenGL ES 3.0\" \"Functionality requiring OpenGL ES 3.0\"" \
"requires_gles31=@xrefitem requires-gles31 \"Requires OpenGL ES 3.1\" \"Functionality requiring OpenGL ES 3.1\"" \
diff --git a/Doxyfile-mcss b/Doxyfile-mcss
index a6e00bdb2..523dc70e6 100644
--- a/Doxyfile-mcss
+++ b/Doxyfile-mcss
@@ -44,8 +44,8 @@ ALIASES = \
"requires_gl46=@xrefitem requires-gl46 \"Requires OpenGL 4.6\" \"Functionality requiring OpenGL 4.6\"" \
"requires_extension=@xrefitem requires-extension \"Requires OpenGL extension\" \"Functionality requiring specific OpenGL extension\"" \
"requires_gl=@xrefitem requires-gl \"Requires desktop OpenGL\" \"Functionality requiring desktop OpenGL\"" \
- "extension{2}=@m_class{m-dox-external} \1_\2" \
- "extension2{3}=@m_class{m-dox-external} \1_\2" \
+ "gl_extension{2}=@m_class{m-dox-external} \1_\2" \
+ "gl_extension2{3}=@m_class{m-dox-external} \1_\2" \
"requires_gles20=@xrefitem requires-gles20 \"Requires OpenGL ES 2.0 / WebGL 1.0\" \"Functionality requiring OpenGL ES 2.0 or WebGL 1.0\"" \
"requires_gles30=@xrefitem requires-gles30 \"Requires OpenGL ES 3.0\" \"Functionality requiring OpenGL ES 3.0\"" \
"requires_gles31=@xrefitem requires-gles31 \"Requires OpenGL ES 3.1\" \"Functionality requiring OpenGL ES 3.1\"" \
diff --git a/Doxyfile-public b/Doxyfile-public
index 552b2d901..ca5784761 100644
--- a/Doxyfile-public
+++ b/Doxyfile-public
@@ -40,8 +40,8 @@ ALIASES = \
"requires_gl46=@xrefitem requires-gl46 \"Requires OpenGL 4.6\" \"Functionality requiring OpenGL 4.6\"" \
"requires_extension=@xrefitem requires-extension \"Requires OpenGL extension\" \"Functionality requiring specific OpenGL extension\"" \
"requires_gl=@xrefitem requires-gl \"Requires desktop OpenGL\" \"Functionality requiring desktop OpenGL\"" \
- "extension{2}=@m_class{m-dox-external} \1_\2" \
- "extension2{3}=@m_class{m-dox-external} \1_\2" \
+ "gl_extension{2}=@m_class{m-dox-external} \1_\2" \
+ "gl_extension2{3}=@m_class{m-dox-external} \1_\2" \
"requires_gles20=@xrefitem requires-gles20 \"Requires OpenGL ES 2.0 / WebGL 1.0\" \"Functionality requiring OpenGL ES 2.0 or WebGL 1.0\"" \
"requires_gles30=@xrefitem requires-gles30 \"Requires OpenGL ES 3.0\" \"Functionality requiring OpenGL ES 3.0\"" \
"requires_gles31=@xrefitem requires-gles31 \"Requires OpenGL ES 3.1\" \"Functionality requiring OpenGL ES 3.1\"" \
diff --git a/doc/changelog-old.dox b/doc/changelog-old.dox
index 8475c5dad..e70ba796c 100644
--- a/doc/changelog-old.dox
+++ b/doc/changelog-old.dox
@@ -48,23 +48,23 @@ for a high-level overview.
- Enabled already implemented functionality on OpenGL ES 3.1.
- Support for new OpenGL functionality:
- - Support for @extension{ARB,direct_state_acccess} (OpenGL 4.5)
+ - Support for @gl_extension{ARB,direct_state_acccess} (OpenGL 4.5)
everywhere except in Mesh.
- - Support for @extension{ARB,conditional_render_inverted} (OpenGL
+ - Support for @gl_extension{ARB,conditional_render_inverted} (OpenGL
4.5) in @cpp SampleQuery @ce.
- - Support for @extension{ARB,get_texture_sub_image} (OpenGL 4.5) in
+ - Support for @gl_extension{ARB,get_texture_sub_image} (OpenGL 4.5) in
@cpp *Texture::subImage() @ce.
- - Support for @extension{EXT,transform_feedback},
- @extension{ARB,transform_feedback2} (OpenGL 3.0, 4.0, OpenGL ES 3.0) in
+ - Support for @gl_extension{EXT,transform_feedback},
+ @gl_extension{ARB,transform_feedback2} (OpenGL 3.0, 4.0, OpenGL ES 3.0) in
new @cpp TransformFeedback @ce class, added
@cpp Renderer::Feature::RasterizerDiscard @ce.
- - Support for @extension{ARB,robustness_isolation} in
+ - Support for @gl_extension{ARB,robustness_isolation} in
@cpp Renderer::graphicsResetStatus() @ce.
- - Support for @extension{ARB,framebuffer_sRGB} (OpenGL 3.0) in
+ - Support for @gl_extension{ARB,framebuffer_sRGB} (OpenGL 3.0) in
@cpp Renderer::Feature::FramebufferSRGB @ce
- - Support for @extension{OES,texture_npot} ES extension.
- - Support for debug groups from @extension{KHR,debug} (OpenGL 4.5) and
- @extension{EXT,debug_marker} extensions in @cpp DebugGroup @ce class.
+ - Support for @gl_extension{OES,texture_npot} ES extension.
+ - Support for debug groups from @gl_extension{KHR,debug} (OpenGL 4.5) and
+ @gl_extension{EXT,debug_marker} extensions in @cpp DebugGroup @ce class.
- Added @cpp CubeMapTexture::*image() @ce that returns all six faces
together.
@@ -114,11 +114,11 @@ for a high-level overview.
- Removed annoying restriction when adding reference-counted resources to
@ref ResourceManager.
- Extension querying cleanup:
- - Removed @extension{APPLE,flush_buffer_range} extension.
- - Replaced @extension{APPLE,vertex_array_object} with
- @extension{ARB,vertex_array_object}.
- - Replaced @extension{NV,half_float} with @extension{ARB,half_float_vertex}.
- - Replaced @extension{EXT,framebuffer_sRGB} with @extension{ARB,framebuffer_sRGB}.
+ - Removed @gl_extension{APPLE,flush_buffer_range} extension.
+ - Replaced @gl_extension{APPLE,vertex_array_object} with
+ @gl_extension{ARB,vertex_array_object}.
+ - Replaced @gl_extension{NV,half_float} with @gl_extension{ARB,half_float_vertex}.
+ - Replaced @gl_extension{EXT,framebuffer_sRGB} with @gl_extension{ARB,framebuffer_sRGB}.
- Documentation cleanup, fixes and improvements.
@subsection changelog-2015-05-buildsystem Build system
@@ -282,21 +282,21 @@ for a high-level overview.
[mosra/magnum#59](https://github.com/mosra/magnum/pull/59).
- @ref Trade::ObjImporter "ObjImporter" plugin, mesh import only (no
materials yet)
-- Completed support of @extension{EXT,texture_integer},
- @extension{ARB,stencil_texturing}, @extension{ARB,texture_rectangle},
- @extension{ARB,texture_buffer_object}, @extension{ARB,texture_swizzle},
- @extension{EXT,texture_sRGB_decode} extensions (and related ES extensions) and
+- Completed support of @gl_extension{EXT,texture_integer},
+ @gl_extension{ARB,stencil_texturing}, @gl_extension{ARB,texture_rectangle},
+ @gl_extension{ARB,texture_buffer_object}, @gl_extension{ARB,texture_swizzle},
+ @gl_extension{EXT,texture_sRGB_decode} extensions (and related ES extensions) and
other missing parameters in @cpp *Texture @ce classes
-- Basic support for @extension{ARB,texture_multisample} and
- @extension{ARB,texture_storage_multisample} in new @cpp MultisampleTexture @ce
+- Basic support for @gl_extension{ARB,texture_multisample} and
+ @gl_extension{ARB,texture_storage_multisample} in new @cpp MultisampleTexture @ce
class
- Instanced rendering, base vertex and base instance specification in
@cpp Mesh @ce and @cpp MeshView @ce classes; @cpp Mesh::addVertexBufferInstanced() @ce
function for adding buffers with per-instance data (see
[mosra/magnum#47](https://github.com/mosra/magnum/issues/47))
- Mesh multi-draw using @cpp MeshView::draw() @ce
-- Initial @extension{ARB,multi_bind} support with @cpp AbstractTexture::bind() @ce
-- Support for @extension{ARB,vertex_type_10f_11f_11f_rev} in
+- Initial @gl_extension{ARB,multi_bind} support with @cpp AbstractTexture::bind() @ce
+- Support for @gl_extension{ARB,vertex_type_10f_11f_11f_rev} in
@cpp AbstractShaderProgram::Attribute::DataType @ce
- New variants of @cpp Shader::compile() @ce and @cpp AbstractShaderProgram::link() @ce,
allowing the driver to perform paralell compilation in multiple threads.
@@ -471,7 +471,7 @@ No dependency changes in this release.
`WITH_FONTCONVERTER` CMake option (currently Linux only), see
`magnum-fontconverter --help` for more information.
- Support for OpenGL object labels, debug message insertion and retrieval
- (@extension{KHR,debug}, @extension{EXT,debug_label} and @extension{EXT,debug_marker}
+ (@gl_extension{KHR,debug}, @gl_extension{EXT,debug_label} and @gl_extension{EXT,debug_marker}
extensions) (see [mosra/magnum#42](https://github.com/mosra/magnum/issues/42))
- @ref Platform::BasicScreenedApplication "Platform::ScreenedApplication"
class allowing the users to easily use multiple independent screens in the
@@ -492,7 +492,7 @@ No dependency changes in this release.
to ImageReference as it would result in access to deleted memory (GCC
4.8.1/Clang only)
- No-op fallback for @cpp *Texture::setMaxAnisotropy() @ce in case
- @extension{EXT,texture_filter_anisotropic extension} is not supported
+ @gl_extension{EXT,texture_filter_anisotropic extension} is not supported
- Added @cpp round() @ce, @cpp floor() @ce and @cpp ceil() @ce scalar/vector
functions to @ref Math namespace
- @ref Math::minmax() and @ref Math::Vector2::minmax() functions
diff --git a/doc/changelog.dox b/doc/changelog.dox
index 40ac18b3c..9f9355660 100644
--- a/doc/changelog.dox
+++ b/doc/changelog.dox
@@ -89,10 +89,10 @@ See also:
accepting both types.
- Initial support for OpenGL ES 3.2 and OpenGL 4.6
- New OpenGL extension support:
- - @extension{ARB,texture_filter_anisotropic}
- - @extension{OES,texture_float}, @extension2{OES,texture_half_float,OES_texture_float}
- - @extension{EXT,color_buffer_float},
- @extension2{EXT,color_buffer_half_float,EXT_color_buffer_half_float}
+ - @gl_extension{ARB,texture_filter_anisotropic}
+ - @gl_extension{OES,texture_float}, @gl_extension2{OES,texture_half_float,OES_texture_float}
+ - @gl_extension{EXT,color_buffer_float},
+ @gl_extension2{EXT,color_buffer_half_float,EXT_color_buffer_half_float}
and
their WebGL counterparts @webgl_extension{EXT,color_buffer_half_float},
@webgl_extension{WEBGL,color_buffer_float},
@@ -516,44 +516,44 @@ a high-level overview.
- WebAssembly support when building for Emscripten
- WebGL 2.0 support
- New OpenGL extension support:
- - @extension{EXT,draw_buffers} ES2 extension
- - @extension{EXT,sRGB_write_control} ES extension
- - @extension{NV,polygon_mode} ES extension
- - @extension{KHR,blend_equation_advanced},
- @extension2{KHR,blend_equation_advanced_coherent,KHR_blend_equation_advanced}
+ - @gl_extension{EXT,draw_buffers} ES2 extension
+ - @gl_extension{EXT,sRGB_write_control} ES extension
+ - @gl_extension{NV,polygon_mode} ES extension
+ - @gl_extension{KHR,blend_equation_advanced},
+ @gl_extension2{KHR,blend_equation_advanced_coherent,KHR_blend_equation_advanced}
desktop and ES extensions
- - @extension{ANDROID,extension_pack_es31a} ES3 extension, which
+ - @gl_extension{ANDROID,extension_pack_es31a} ES3 extension, which
includes:
- - @extension{OES,texture_storage_multisample_2d_array}
- - @extension{OES,texture_stencil8}
- - @extension{EXT,texture_border_clamp}
- - @extension{EXT,texture_cube_map_array}
- - @extension{EXT,texture_buffer}
- - @extension{EXT,geometry_shader}
- - @extension{EXT,tessellation_shader}
- - @extension{NV,shader_noperspective_interpolation} ES3 extension
- - @extension{EXT,texture_compression_s3tc} desktop and ES extension,
+ - @gl_extension{OES,texture_storage_multisample_2d_array}
+ - @gl_extension{OES,texture_stencil8}
+ - @gl_extension{EXT,texture_border_clamp}
+ - @gl_extension{EXT,texture_cube_map_array}
+ - @gl_extension{EXT,texture_buffer}
+ - @gl_extension{EXT,geometry_shader}
+ - @gl_extension{EXT,tessellation_shader}
+ - @gl_extension{NV,shader_noperspective_interpolation} ES3 extension
+ - @gl_extension{EXT,texture_compression_s3tc} desktop and ES extension,
@webgl_extension{WEBGL,compressed_texture_s3tc} WebGL extension
- - @extension2{KHR,texture_compression_astc_ldr,KHR_texture_compression_astc_hdr},
- @extension{KHR,texture_compression_astc_hdr} desktop and ES
+ - @gl_extension2{KHR,texture_compression_astc_ldr,KHR_texture_compression_astc_hdr},
+ @gl_extension{KHR,texture_compression_astc_hdr} desktop and ES
extension
- - @extension{EXT,unpack_subimage} and @extension{NV,pack_subimage}
+ - @gl_extension{EXT,unpack_subimage} and @gl_extension{NV,pack_subimage}
ES2 extensions
- - @extension{ARB,uniform_buffer_object} and its ES3/WebGL2
+ - @gl_extension{ARB,uniform_buffer_object} and its ES3/WebGL2
counterpart, except for data layout queries
- - @extension{ARB,texture_barrier}
- - @extension{ARB,shader_storage_buffer_object} and its ES3.1
+ - @gl_extension{ARB,texture_barrier}
+ - @gl_extension{ARB,shader_storage_buffer_object} and its ES3.1
counterpart
- - @extension{ARB,compute_shader} and its ES3.1 counterpart
- - @extension{ARB,shader_image_load_store} and its ES3.1 counterpart
- - @extension{KHR,no_error} desktop and ES extension
- - @extension{EXT,shader_framebuffer_fetch}, @extension{ARM,shader_framebuffer_fetch}
- and @extension{ARM,shader_framebuffer_fetch_depth_stencil} (partial
+ - @gl_extension{ARB,compute_shader} and its ES3.1 counterpart
+ - @gl_extension{ARB,shader_image_load_store} and its ES3.1 counterpart
+ - @gl_extension{KHR,no_error} desktop and ES extension
+ - @gl_extension{EXT,shader_framebuffer_fetch}, @gl_extension{ARM,shader_framebuffer_fetch}
+ and @gl_extension{ARM,shader_framebuffer_fetch_depth_stencil} (partial
support)
- - @extension{ARB,transform_feedback2},
- @extension{ARB,transform_feedback3},
- @extension{AMD,transform_feedback3_lines_triangles},
- @extension{ARB,transform_feedback_overflow_query} desktop extension
+ - @gl_extension{ARB,transform_feedback2},
+ @gl_extension{ARB,transform_feedback3},
+ @gl_extension{AMD,transform_feedback3_lines_triangles},
+ @gl_extension{ARB,transform_feedback_overflow_query} desktop extension
and their ES3 counterparts, if applicable
(see [mosra/magnum#53](https://github.com/mosra/magnum/issues/53))
- Compressed image support:
@@ -852,11 +852,11 @@ a high-level overview.
- Behavior of @ref GL::Version::GLES200 "Version::GLES200" and upwards on
desktop OpenGL is changed to request an ES dialect of GLSL when used in
@ref GL::Shader "Shader" (instead of a particular desktop GL version that
- supports given ES version), looks for @extension{ARB,ES2_compatibility} and
+ supports given ES version), looks for @gl_extension{ARB,ES2_compatibility} and
others (instead of checking for a particular desktop GL version that
supports given ES version)
- Binding some default VAO in case the engine is running on core profile with
- @extension{ARB,vertex_array_object} disabled
+ @gl_extension{ARB,vertex_array_object} disabled
- It's now possible to create @ref ImageView with @cpp nullptr @ce data (for
example for old-style texture allocation using
@ref GL::Texture::setImage() "Texture::setImage()")
@@ -969,10 +969,10 @@ a high-level overview.
- @ref GL::Framebuffer::attachCubeMapTexture() "Framebuffer::attachCubeMapTexture()"
incorrectly behaved as a layered attachment (see
[mosra/magnum#123](https://github.com/mosra/magnum/issues/123))
-- Fixed object label queries using the @extension{EXT,debug_label}
+- Fixed object label queries using the @gl_extension{EXT,debug_label}
extension
-- @extension{EXT,direct_state_access} function was accidentally used in
- @extension{ARB,direct_state_access} code path, causing crashes on Mesa
+- @gl_extension{EXT,direct_state_access} function was accidentally used in
+ @gl_extension{ARB,direct_state_access} code path, causing crashes on Mesa
- Properly export @ref GL::Framebuffer::DrawAttachment "Framebuffer::DrawAttachment"
to avoid linker failures on Windows
- Fixed @ref GL::Framebuffer "Framebuffer" attachments on GLES2 drivers w/o
diff --git a/doc/coding-style.dox b/doc/coding-style.dox
index 839d2f570..e6d7c4841 100644
--- a/doc/coding-style.dox
+++ b/doc/coding-style.dox
@@ -116,17 +116,17 @@ documentation.
@subsubsection coding-style-documentation-commands-extension Links to OpenGL and OpenAL extensions
If an OpenGL extension is referenced in the documentation, it should be done
-with @c \@extension command:
+with @c \@gl_extension command:
@snippet coding-style.h extension
It produces a link to the specification of the extension in OpenGL registry:
-@extension{ARB,timer_query}
+@gl_extension{ARB,timer_query}
-With command @c \@extension2 you can specify extension filename, if the
+With command @c \@gl_extension2 you can specify extension filename, if the
previous command gives 404 error. For example
@snippet coding-style.h extension2
@@ -134,7 +134,7 @@ previous command gives 404 error. For example
produces this link:
-@extension2{NV,read_buffer_front,GL_NV_read_buffer}
+@gl_extension2{NV,read_buffer_front,GL_NV_read_buffer}
OpenAL extensions can be referenced using @c \@al_extension, OpenAL context
@@ -178,7 +178,7 @@ extensions, use @c \@fn_gl_extension command, e.g.
@snippet coding-style.h fn_gl_extension
First parameter is function name without the suffix, the second two parameters
-are the same as in @c \@extension command. It produced link to extension
+are the same as in @c \@gl_extension command. It produced link to extension
specification, with function name as link text:
@@ -210,7 +210,7 @@ If any class or function requires specific OpenGL version above 2.1, it should
be marked with appropriate command @c \@requires_glXX, where `XX` is version
number (e.g. `42` for OpenGL 4.2) or @c \@requires_extension for specific
extension which is not in any core OpenGL version. It should be used in
-conjunction with @c \@extension command, if there is an extension providing
+conjunction with @c \@gl_extension command, if there is an extension providing
the same functionality. For example:
@snippet coding-style.h requires_gl
diff --git a/doc/method-chaining.dox b/doc/method-chaining.dox
index 214475b56..d8969ca98 100644
--- a/doc/method-chaining.dox
+++ b/doc/method-chaining.dox
@@ -38,7 +38,7 @@ Magnum uses this feature mainly for configuring OpenGL objects (such as
various mesh and framebuffer options, shader uniforms etc.). Because OpenGL was
designed with "bind-to-modify" approach, most configuration calls internally
need to bind the object first and only after that change the parameters (unless
-@extension{EXT,direct_state_access} extension is available to avoid this). To
+@gl_extension{EXT,direct_state_access} extension is available to avoid this). To
reduce unneeded bind calls, Magnum binds the object only if it is not already
bound somewhere. Method chaining encourages you to configure whole object in
one run, effectively reducing the number of needed bindings. Consider the
diff --git a/doc/opengl-support.dox b/doc/opengl-support.dox
index 86f2f1b2b..28953e83c 100644
--- a/doc/opengl-support.dox
+++ b/doc/opengl-support.dox
@@ -45,8 +45,8 @@ following:
@subsection opengl-support-30 OpenGL 3.0
-@todo @extension{EXT,texture_array} overlaps with @extension{ARB,framebuffer_object}
-@todo Add @extension{ARB,depth_buffer_float} and implement the missing @fn_gl{DepthRange} function, but keep (and implement) @extension{NV,depth_buffer_float} for non-linear depth buffer
+@todo @gl_extension{EXT,texture_array} overlaps with @gl_extension{ARB,framebuffer_object}
+@todo Add @gl_extension{ARB,depth_buffer_float} and implement the missing @fn_gl{DepthRange} function, but keep (and implement) @gl_extension{NV,depth_buffer_float} for non-linear depth buffer
@m_class{m-fullwidth}
@@ -54,26 +54,26 @@ Extension | Status
------------------------------------------- | ------
GLSL 1.30 | done
@fn_gl{ClearBuffer} functions | done
-@extension{ARB,map_buffer_range} | done
-@extension{ARB,color_buffer_float} | |
-@extension{ARB,half_float_pixel} | done
-@extension{ARB,texture_float} | done
-@extension{ARB,depth_buffer_float} | done
-@extension{ARB,texture_rg} | done
-@extension{ARB,vertex_array_object} | done
-@extension{ARB,framebuffer_object} | done
-@extension{ARB,framebuffer_sRGB} | done
-@extension{ARB,half_float_vertex} | done
-@extension{EXT,gpu_shader4} | done
-@extension{EXT,packed_float} | done
-@extension{EXT,texture_array} | done
-@extension{EXT,texture_compression_rgtc} | done
-@extension{EXT,texture_shared_exponent} | done
-@extension{EXT,draw_buffers2} | |
-@extension{EXT,texture_integer} | done (GL 3.0 subset)
-@extension{EXT,transform_feedback} | done
-@extension{NV,depth_buffer_float} | |
-@extension{NV,conditional_render} | done
+@gl_extension{ARB,map_buffer_range} | done
+@gl_extension{ARB,color_buffer_float} | |
+@gl_extension{ARB,half_float_pixel} | done
+@gl_extension{ARB,texture_float} | done
+@gl_extension{ARB,depth_buffer_float} | done
+@gl_extension{ARB,texture_rg} | done
+@gl_extension{ARB,vertex_array_object} | done
+@gl_extension{ARB,framebuffer_object} | done
+@gl_extension{ARB,framebuffer_sRGB} | done
+@gl_extension{ARB,half_float_vertex} | done
+@gl_extension{EXT,gpu_shader4} | done
+@gl_extension{EXT,packed_float} | done
+@gl_extension{EXT,texture_array} | done
+@gl_extension{EXT,texture_compression_rgtc} | done
+@gl_extension{EXT,texture_shared_exponent} | done
+@gl_extension{EXT,draw_buffers2} | |
+@gl_extension{EXT,texture_integer} | done (GL 3.0 subset)
+@gl_extension{EXT,transform_feedback} | done
+@gl_extension{NV,depth_buffer_float} | |
+@gl_extension{NV,conditional_render} | done
@subsection opengl-support-31 OpenGL 3.1
@@ -82,13 +82,13 @@ GLSL 1.30 | done
Extension | Status
------------------------------------------- | ------
GLSL 1.40 | done
-@extension{ARB,texture_rectangle} | done
-@extension{ARB,draw_instanced} | done
-@extension{ARB,texture_buffer_object} | done
-@extension{ARB,uniform_buffer_object} | done except for data layout queries
-@extension{ARB,copy_buffer} | done
-@extension{EXT,texture_snorm} | done
-@extension{NV,primitive_restart} | |
+@gl_extension{ARB,texture_rectangle} | done
+@gl_extension{ARB,draw_instanced} | done
+@gl_extension{ARB,texture_buffer_object} | done
+@gl_extension{ARB,uniform_buffer_object} | done except for data layout queries
+@gl_extension{ARB,copy_buffer} | done
+@gl_extension{EXT,texture_snorm} | done
+@gl_extension{NV,primitive_restart} | |
@subsection opengl-support-32 OpenGL 3.2
@@ -97,15 +97,15 @@ GLSL 1.40 | done
Extension | Status
------------------------------------------- | ------
GLSL 1.50 | done
-@extension{ARB,geometry_shader4} | missing some limit queries
-@extension{ARB,depth_clamp} | done
-@extension{ARB,draw_elements_base_vertex} | done
-@extension{ARB,fragment_coord_conventions} | done (shading language only)
-@extension{ARB,provoking_vertex} | done
-@extension{ARB,seamless_cube_map} | done
-@extension{ARB,sync} | |
-@extension{ARB,texture_multisample} | missing sample location queries and sample mask
-@extension{ARB,vertex_array_bgra} | done
+@gl_extension{ARB,geometry_shader4} | missing some limit queries
+@gl_extension{ARB,depth_clamp} | done
+@gl_extension{ARB,draw_elements_base_vertex} | done
+@gl_extension{ARB,fragment_coord_conventions} | done (shading language only)
+@gl_extension{ARB,provoking_vertex} | done
+@gl_extension{ARB,seamless_cube_map} | done
+@gl_extension{ARB,sync} | |
+@gl_extension{ARB,texture_multisample} | missing sample location queries and sample mask
+@gl_extension{ARB,vertex_array_bgra} | done
@subsection opengl-support-33 OpenGL 3.3
@@ -114,16 +114,16 @@ GLSL 1.50 | done
Extension | Status
------------------------------------------- | ------
GLSL 3.30 | done
-@extension{ARB,instanced_arrays} | done
-@extension{ARB,blend_func_extended} | done
-@extension{ARB,explicit_attrib_location} | done (shading language only)
-@extension{ARB,occlusion_query2} | done
-@extension{ARB,sampler_objects} | |
-@extension{ARB,shader_bit_encoding} | done (shading language only)
-@extension{ARB,texture_rgb10_a2ui} | done
-@extension{ARB,texture_swizzle} | done
-@extension{ARB,timer_query} | missing direct query
-@extension{ARB,vertex_type_2_10_10_10_rev} | done
+@gl_extension{ARB,instanced_arrays} | done
+@gl_extension{ARB,blend_func_extended} | done
+@gl_extension{ARB,explicit_attrib_location} | done (shading language only)
+@gl_extension{ARB,occlusion_query2} | done
+@gl_extension{ARB,sampler_objects} | |
+@gl_extension{ARB,shader_bit_encoding} | done (shading language only)
+@gl_extension{ARB,texture_rgb10_a2ui} | done
+@gl_extension{ARB,texture_swizzle} | done
+@gl_extension{ARB,timer_query} | missing direct query
+@gl_extension{ARB,vertex_type_2_10_10_10_rev} | done
@subsection opengl-support-40 OpenGL 4.0
@@ -132,19 +132,19 @@ GLSL 3.30 | done
Extension | Status
------------------------------------------- | ------
GLSL 4.00 | done
-@extension{ARB,draw_buffers_blend} | |
-@extension{ARB,sample_shading} | |
-@extension{ARB,texture_cube_map_array} | done
-@extension{ARB,texture_gather} | missing limit queries
-@extension{ARB,texture_query_lod} | done (shading language only)
-@extension{ARB,draw_indirect} | |
-@extension{ARB,gpu_shader5} | missing limit queries
-@extension{ARB,gpu_shader_fp64} | done
-@extension{ARB,shader_subroutine} | |
-@extension{ARB,tessellation_shader} | missing some limit queries and patch parameter specification function
-@extension{ARB,texture_buffer_object_rgb32} | done
-@extension{ARB,transform_feedback2} | done
-@extension{ARB,transform_feedback3} | missing indexed properties query
+@gl_extension{ARB,draw_buffers_blend} | |
+@gl_extension{ARB,sample_shading} | |
+@gl_extension{ARB,texture_cube_map_array} | done
+@gl_extension{ARB,texture_gather} | missing limit queries
+@gl_extension{ARB,texture_query_lod} | done (shading language only)
+@gl_extension{ARB,draw_indirect} | |
+@gl_extension{ARB,gpu_shader5} | missing limit queries
+@gl_extension{ARB,gpu_shader_fp64} | done
+@gl_extension{ARB,shader_subroutine} | |
+@gl_extension{ARB,tessellation_shader} | missing some limit queries and patch parameter specification function
+@gl_extension{ARB,texture_buffer_object_rgb32} | done
+@gl_extension{ARB,transform_feedback2} | done
+@gl_extension{ARB,transform_feedback3} | missing indexed properties query
@subsection opengl-support-41 OpenGL 4.1
@@ -153,12 +153,12 @@ GLSL 4.00 | done
Extension | Status
------------------------------------------- | ------
GLSL 4.10 | done
-@extension{ARB,ES2_compatibility} | only float depth clear
-@extension{ARB,get_program_binary} | |
-@extension{ARB,separate_shader_objects} | only direct uniform binding
-@extension{ARB,shader_precision} | done (shading language only)
-@extension{ARB,vertex_attrib_64bit} | done
-@extension{ARB,viewport_array} | |
+@gl_extension{ARB,ES2_compatibility} | only float depth clear
+@gl_extension{ARB,get_program_binary} | |
+@gl_extension{ARB,separate_shader_objects} | only direct uniform binding
+@gl_extension{ARB,shader_precision} | done (shading language only)
+@gl_extension{ARB,vertex_attrib_64bit} | done
+@gl_extension{ARB,viewport_array} | |
@subsection opengl-support-42 OpenGL 4.2
@@ -167,18 +167,18 @@ GLSL 4.10 | done
Extension | Status
------------------------------------------- | ------
GLSL 4.20 | done
-@extension{ARB,texture_compression_bptc} | done
-@extension{ARB,base_instance} | done
-@extension{ARB,shading_language_420pack} | done (shading language only)
-@extension{ARB,transform_feedback_instanced} | done
-@extension{ARB,compressed_texture_pixel_storage} | done
-@extension{ARB,conservative_depth} | done (shading language only)
-@extension{ARB,internalformat_query} | |
-@extension{ARB,map_buffer_alignment} | done
-@extension{ARB,shader_atomic_counters} | done
-@extension{ARB,shader_image_load_store} | done
-@extension{ARB,shading_language_packing} | done (shading language only)
-@extension{ARB,texture_storage} | done
+@gl_extension{ARB,texture_compression_bptc} | done
+@gl_extension{ARB,base_instance} | done
+@gl_extension{ARB,shading_language_420pack} | done (shading language only)
+@gl_extension{ARB,transform_feedback_instanced} | done
+@gl_extension{ARB,compressed_texture_pixel_storage} | done
+@gl_extension{ARB,conservative_depth} | done (shading language only)
+@gl_extension{ARB,internalformat_query} | |
+@gl_extension{ARB,map_buffer_alignment} | done
+@gl_extension{ARB,shader_atomic_counters} | done
+@gl_extension{ARB,shader_image_load_store} | done
+@gl_extension{ARB,shading_language_packing} | done (shading language only)
+@gl_extension{ARB,texture_storage} | done
@subsection opengl-support-43 OpenGL 4.3
@@ -187,33 +187,33 @@ GLSL 4.20 | done
Extension | Status
------------------------------------------- | ------
GLSL 4.30 | done
-@extension{ARB,arrays_of_arrays} | done (shading language only)
-@extension{ARB,ES3_compatibility} | only conservative sample query and compression formats
-@extension{ARB,clear_buffer_object} | |
-@extension{ARB,compute_shader} | done except for indirect dispatch
-@extension{ARB,copy_image} | |
-@extension{KHR,debug} | missing log retrieval, sync, pipeline and sampler label
-@extension{ARB,explicit_uniform_location} | done
-@extension{ARB,fragment_layer_viewport} | done (shading language only)
-@extension{ARB,framebuffer_no_attachments} | |
-@extension{ARB,internalformat_query2} | only compressed texture block queries
-@extension{ARB,invalidate_subdata} | done
-@extension{ARB,multi_draw_indirect} | |
-@extension{ARB,program_interface_query} | |
-@extension{ARB,robust_buffer_access_behavior} | done (nothing to do)
-@extension{ARB,shader_image_size} | done (shading language only)
-@extension{ARB,shader_storage_buffer_object} | missing (unneeded) block binding
-@extension{ARB,stencil_texturing} | done
-@extension{ARB,texture_buffer_range} | done
-@extension{ARB,texture_query_levels} | done (shading language only)
-@extension{ARB,texture_storage_multisample} | done
-@extension{ARB,texture_view} | |
-@extension{ARB,vertex_attrib_binding} | |
+@gl_extension{ARB,arrays_of_arrays} | done (shading language only)
+@gl_extension{ARB,ES3_compatibility} | only conservative sample query and compression formats
+@gl_extension{ARB,clear_buffer_object} | |
+@gl_extension{ARB,compute_shader} | done except for indirect dispatch
+@gl_extension{ARB,copy_image} | |
+@gl_extension{KHR,debug} | missing log retrieval, sync, pipeline and sampler label
+@gl_extension{ARB,explicit_uniform_location} | done
+@gl_extension{ARB,fragment_layer_viewport} | done (shading language only)
+@gl_extension{ARB,framebuffer_no_attachments} | |
+@gl_extension{ARB,internalformat_query2} | only compressed texture block queries
+@gl_extension{ARB,invalidate_subdata} | done
+@gl_extension{ARB,multi_draw_indirect} | |
+@gl_extension{ARB,program_interface_query} | |
+@gl_extension{ARB,robust_buffer_access_behavior} | done (nothing to do)
+@gl_extension{ARB,shader_image_size} | done (shading language only)
+@gl_extension{ARB,shader_storage_buffer_object} | missing (unneeded) block binding
+@gl_extension{ARB,stencil_texturing} | done
+@gl_extension{ARB,texture_buffer_range} | done
+@gl_extension{ARB,texture_query_levels} | done (shading language only)
+@gl_extension{ARB,texture_storage_multisample} | done
+@gl_extension{ARB,texture_view} | |
+@gl_extension{ARB,vertex_attrib_binding} | |
@subsection opengl-support-44 OpenGL 4.4
-@todo Also fallback to @extension{AMD,query_buffer_object}
-@todo @extension{AMD,pinned_memory} "fallback" for @extension{ARB,buffer_storage}
+@todo Also fallback to @gl_extension{AMD,query_buffer_object}
+@todo @gl_extension{AMD,pinned_memory} "fallback" for @gl_extension{ARB,buffer_storage}
@m_class{m-fullwidth}
@@ -221,14 +221,14 @@ Extension | Status
------------------------------------------- | ------
GLSL 4.40 | done
@def_gl{MAX_VERTEX_ATTRIB_STRIDE} | |
-@extension{ARB,buffer_storage} | |
-@extension{ARB,clear_texture} | |
-@extension{ARB,enhanced_layouts} | done (shading language only)
-@extension{ARB,multi_bind} | missing sampler and vertex buffer binding
-@extension{ARB,query_buffer_object} | |
-@extension{ARB,texture_mirror_clamp_to_edge} | done
-@extension{ARB,texture_stencil8} | done
-@extension{ARB,vertex_type_10f_11f_11f_rev} | done
+@gl_extension{ARB,buffer_storage} | |
+@gl_extension{ARB,clear_texture} | |
+@gl_extension{ARB,enhanced_layouts} | done (shading language only)
+@gl_extension{ARB,multi_bind} | missing sampler and vertex buffer binding
+@gl_extension{ARB,query_buffer_object} | |
+@gl_extension{ARB,texture_mirror_clamp_to_edge} | done
+@gl_extension{ARB,texture_stencil8} | done
+@gl_extension{ARB,vertex_type_10f_11f_11f_rev} | done
@subsection opengl-support-45 OpenGL 4.5
@@ -237,17 +237,17 @@ GLSL 4.40 | done
Extension | Status
------------------------------------------- | ------
GLSL 4.50 | done
-@extension{ARB,ES3_1_compatibility} | done
-@extension{ARB,clip_control} | |
-@extension{ARB,conditional_render_inverted} | done
-@extension{ARB,cull_distance} | |
-@extension{ARB,derivative_control} | done (shading language only)
-@extension{ARB,direct_state_access} | done for implemented functionality (except VAOs)
-@extension{ARB,get_texture_sub_image} | done
-@extension{ARB,shader_texture_image_samples} | done (shading language only)
-@extension{ARB,texture_barrier} | done
-@extension{KHR,context_flush_control} | |
-@extension{KHR,robustness} | |
+@gl_extension{ARB,ES3_1_compatibility} | done
+@gl_extension{ARB,clip_control} | |
+@gl_extension{ARB,conditional_render_inverted} | done
+@gl_extension{ARB,cull_distance} | |
+@gl_extension{ARB,derivative_control} | done (shading language only)
+@gl_extension{ARB,direct_state_access} | done for implemented functionality (except VAOs)
+@gl_extension{ARB,get_texture_sub_image} | done
+@gl_extension{ARB,shader_texture_image_samples} | done (shading language only)
+@gl_extension{ARB,texture_barrier} | done
+@gl_extension{KHR,context_flush_control} | |
+@gl_extension{KHR,robustness} | |
@subsection opengl-support-46 OpenGL 4.6
@@ -256,17 +256,17 @@ GLSL 4.50 | done
Extension | Status
------------------------------------------- | ------
GLSL 4.60 | done
-@extension{ARB,indirect_parameters} | |
-@extension{ARB,shader_draw_parameters} | done (shading language only)
-@extension{ARB,shader_group_vote} | done (shading language only)
-@extension{ARB,pipeline_statistics_query} | |
-@extension{ARB,transform_feedback_overflow_query} | done
-@extension{ARB,shader_atomic_counter_ops} | done (shading language only)
-@extension{ARB,gl_spirv} | |
-@extension{ARB,polygon_offset_clamp} | |
-@extension{ARB,spirv_extensions} | |
-@extension{ARB,texture_filter_anisotropic} | done
-@extension{KHR,no_error} | done
+@gl_extension{ARB,indirect_parameters} | |
+@gl_extension{ARB,shader_draw_parameters} | done (shading language only)
+@gl_extension{ARB,shader_group_vote} | done (shading language only)
+@gl_extension{ARB,pipeline_statistics_query} | |
+@gl_extension{ARB,transform_feedback_overflow_query} | done
+@gl_extension{ARB,shader_atomic_counter_ops} | done (shading language only)
+@gl_extension{ARB,gl_spirv} | |
+@gl_extension{ARB,polygon_offset_clamp} | |
+@gl_extension{ARB,spirv_extensions} | |
+@gl_extension{ARB,texture_filter_anisotropic} | done
+@gl_extension{KHR,no_error} | done
@subsection opengl-support-extensions ARB / Khronos OpenGL extensions
@@ -274,43 +274,43 @@ GLSL 4.60 | done
Extension | Status
------------------------------------------- | ------
-@extension{ARB,robustness} | done
-@extension{KHR,texture_compression_astc_hdr} | done
-@extension{ARB,robustness_isolation} | done
-@extension{ARB,bindless_texture} | |
-@extension{ARB,compute_variable_group_size} | |
-@extension{ARB,seamless_cubemap_per_texture} | |
-@extension{ARB,sparse_texture} | |
-@extension{ARB,sparse_buffer} | |
-@extension{ARB,ES3_2_compatibility} | |
-@extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} | done
-@extension{KHR,robust_buffer_access_behavior} | done (nothing to do)
-@extension{KHR,blend_equation_advanced} | done
-@extension2{KHR,blend_equation_advanced_coherent,blend_equation_advanced} | done
+@gl_extension{ARB,robustness} | done
+@gl_extension{KHR,texture_compression_astc_hdr} | done
+@gl_extension{ARB,robustness_isolation} | done
+@gl_extension{ARB,bindless_texture} | |
+@gl_extension{ARB,compute_variable_group_size} | |
+@gl_extension{ARB,seamless_cubemap_per_texture} | |
+@gl_extension{ARB,sparse_texture} | |
+@gl_extension{ARB,sparse_buffer} | |
+@gl_extension{ARB,ES3_2_compatibility} | |
+@gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} | done
+@gl_extension{KHR,robust_buffer_access_behavior} | done (nothing to do)
+@gl_extension{KHR,blend_equation_advanced} | done
+@gl_extension2{KHR,blend_equation_advanced_coherent,blend_equation_advanced} | done
@subsection opengl-support-extensions-vendor Vendor OpenGL extensions
-@todo @extension{ARB,sparse_texture}, @extension{ARB,bindless_texture} + their vendor equivalents
-@todo @extension{ATI,meminfo}, @extension{NVX,gpu_memory_info}, GPU temperature
-@todo @extension{AMD,performance_monitor}, @extension{INTEL,performance_query}
+@todo @gl_extension{ARB,sparse_texture}, @gl_extension{ARB,bindless_texture} + their vendor equivalents
+@todo @gl_extension{ATI,meminfo}, @gl_extension{NVX,gpu_memory_info}, GPU temperature
+@todo @gl_extension{AMD,performance_monitor}, @gl_extension{INTEL,performance_query}
@m_class{m-fullwidth}
Extension | Status
------------------------------------------- | ------
-@extension{AMD,transform_feedback3_lines_triangles} | done (nothing to do)
-@extension{AMD,vertex_shader_layer} | done (shading language only)
-@extension{AMD,shader_trinary_minmax} | done (shading language only)
-@extension{ATI,texture_mirror_once} | done (GL 4.4 subset)
-@extension{EXT,texture_filter_anisotropic} | done
-@extension{EXT,texture_compression_s3tc} | done
-@extension{EXT,texture_mirror_clamp} | only GL 4.4 subset
-@extension{EXT,direct_state_access} | done for implemented functionality
-@extension{EXT,texture_sRGB_decode} | done
-@extension{EXT,shader_integer_mix} | done (shading language only)
-@extension{EXT,debug_label} | missing pipeline and sampler label
-@extension{EXT,debug_marker} | done
-@extension{GREMEDY,string_marker} | done
+@gl_extension{AMD,transform_feedback3_lines_triangles} | done (nothing to do)
+@gl_extension{AMD,vertex_shader_layer} | done (shading language only)
+@gl_extension{AMD,shader_trinary_minmax} | done (shading language only)
+@gl_extension{ATI,texture_mirror_once} | done (GL 4.4 subset)
+@gl_extension{EXT,texture_filter_anisotropic} | done
+@gl_extension{EXT,texture_compression_s3tc} | done
+@gl_extension{EXT,texture_mirror_clamp} | only GL 4.4 subset
+@gl_extension{EXT,direct_state_access} | done for implemented functionality
+@gl_extension{EXT,texture_sRGB_decode} | done
+@gl_extension{EXT,shader_integer_mix} | done (shading language only)
+@gl_extension{EXT,debug_label} | missing pipeline and sampler label
+@gl_extension{EXT,debug_marker} | done
+@gl_extension{GREMEDY,string_marker} | done
@subsection opengl-support-es20 OpenGL ES 2.0
@@ -334,29 +334,29 @@ supported. ESSL 3.20 is supported.
Extension | Status
------------------------------------------- | ------
-@extension{EXT,color_buffer_half_float} | |
-@extension{EXT,color_buffer_float} | |
-@extension{EXT,copy_image} | |
-@extension{EXT,draw_buffers_indexed} | |
-@extension{EXT,geometry_shader} | missing some ES-specific limit queries
-@extension{EXT,gpu_shader5} | done (shading language only)
-@extension{EXT,shader_io_blocks} | done (shading language only)
-@extension{EXT,tessellation_shader} | see above
-@extension{EXT,texture_border_clamp} | done
-@extension{EXT,texture_buffer} | done
-@extension{EXT,texture_cube_map_array} | done
-@extension{EXT,primitive_bounding_box} | |
-@extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} | done
-@extension{KHR,debug} | see above
-@extension2{KHR,blend_equation_advanced,blend_equation_advanced} | done
-@extension{KHR,robustness} | |
-@extension{KHR,robust_buffer_access_behavior} | done (nothing to do)
-@extension{OES,sample_shading} | |
-@extension{OES,sample_variables} | done (shading language only)
-@extension{OES,shader_image_atomic} | done (shading language only)
-@extension{OES,shader_multisample_interpolation} | |
-@extension{OES,texture_stencil8} | done
-@extension{OES,texture_storage_multisample_2d_array} | done
+@gl_extension{EXT,color_buffer_half_float} | |
+@gl_extension{EXT,color_buffer_float} | |
+@gl_extension{EXT,copy_image} | |
+@gl_extension{EXT,draw_buffers_indexed} | |
+@gl_extension{EXT,geometry_shader} | missing some ES-specific limit queries
+@gl_extension{EXT,gpu_shader5} | done (shading language only)
+@gl_extension{EXT,shader_io_blocks} | done (shading language only)
+@gl_extension{EXT,tessellation_shader} | see above
+@gl_extension{EXT,texture_border_clamp} | done
+@gl_extension{EXT,texture_buffer} | done
+@gl_extension{EXT,texture_cube_map_array} | done
+@gl_extension{EXT,primitive_bounding_box} | |
+@gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} | done
+@gl_extension{KHR,debug} | see above
+@gl_extension2{KHR,blend_equation_advanced,blend_equation_advanced} | done
+@gl_extension{KHR,robustness} | |
+@gl_extension{KHR,robust_buffer_access_behavior} | done (nothing to do)
+@gl_extension{OES,sample_shading} | |
+@gl_extension{OES,sample_variables} | done (shading language only)
+@gl_extension{OES,shader_image_atomic} | done (shading language only)
+@gl_extension{OES,shader_multisample_interpolation} | |
+@gl_extension{OES,texture_stencil8} | done
+@gl_extension{OES,texture_storage_multisample_2d_array} | done
@subsection opengl-support-es30-extensions OpenGL ES 2.0 extensions to match ES 3.0 functionality
@@ -364,57 +364,57 @@ Extension | Status
Extension | Status
------------------------------------------- | ------
-@extension{ANGLE,framebuffer_blit} | done
-@extension{ANGLE,framebuffer_multisample} | done
-@extension{ANGLE,instanced_arrays} | done
-@extension{ANGLE,depth_texture} | done
-@extension{APPLE,framebuffer_multisample} | done (ES 3.0 subset)
-@extension{APPLE,texture_max_level} | done
-@extension{ARM,rgba8} | done
-@extension{EXT,texture_type_2_10_10_10_REV} | done
-@extension{EXT,discard_framebuffer} | done
-@extension2{EXT,blend_minmax,blend_minmax} | done
-@extension{EXT,shader_texture_lod} | done (shading language only)
-@extension{EXT,unpack_subimage} | done
-@extension{EXT,occlusion_query_boolean} | done
-@extension{EXT,shadow_samplers} | done
-@extension{EXT,texture_rg} | done
-@extension{EXT,sRGB} | done
-@extension{EXT,texture_storage} | done
-@extension{EXT,map_buffer_range} | done
-@extension{EXT,draw_buffers} | done
-@extension{EXT,instanced_arrays} | done
-@extension2{EXT,draw_instanced,draw_instanced} | done
-@extension{NV,draw_buffers} | done
-@extension{NV,fbo_color_attachments} | done
-@extension{NV,read_buffer} | done
-@extension{NV,pack_subimage} | done
-@extension{NV,draw_instanced} | done
-@extension{NV,framebuffer_blit} | done
-@extension{NV,framebuffer_multisample} | done
-@extension{NV,instanced_arrays} | done
-@extension{NV,shadow_samplers_array} | done (shading language only)
-@extension{NV,shadow_samplers_cube} | done (shading language only)
-@extension{OES,depth24} | done
-@extension{OES,element_index_uint} | done
-@extension{OES,fbo_render_mipmap} | done
-@extension{OES,rgb8_rgba8} | done (desktop-compatible subset)
-@extension{OES,texture_3D} | done
-@extension2{OES,texture_half_float_linear,OES_texture_float_linear} | done
-@extension2{OES,texture_half_float,OES_texture_float} | done
-@extension{OES,texture_float} | done
-@extension{OES,texture_npot} | done (nothing to do)
-@extension{OES,vertex_half_float} | done
-@extension{OES,packed_depth_stencil} | done
-@extension{OES,depth_texture} | done
-@extension{OES,standard_derivatives} | done
-@extension{OES,vertex_array_object} | done
-@extension{OES,required_internalformat} | done (desktop-compatible subset)
-@extension{OES,surfaceless_context} | done
+@gl_extension{ANGLE,framebuffer_blit} | done
+@gl_extension{ANGLE,framebuffer_multisample} | done
+@gl_extension{ANGLE,instanced_arrays} | done
+@gl_extension{ANGLE,depth_texture} | done
+@gl_extension{APPLE,framebuffer_multisample} | done (ES 3.0 subset)
+@gl_extension{APPLE,texture_max_level} | done
+@gl_extension{ARM,rgba8} | done
+@gl_extension{EXT,texture_type_2_10_10_10_REV} | done
+@gl_extension{EXT,discard_framebuffer} | done
+@gl_extension2{EXT,blend_minmax,blend_minmax} | done
+@gl_extension{EXT,shader_texture_lod} | done (shading language only)
+@gl_extension{EXT,unpack_subimage} | done
+@gl_extension{EXT,occlusion_query_boolean} | done
+@gl_extension{EXT,shadow_samplers} | done
+@gl_extension{EXT,texture_rg} | done
+@gl_extension{EXT,sRGB} | done
+@gl_extension{EXT,texture_storage} | done
+@gl_extension{EXT,map_buffer_range} | done
+@gl_extension{EXT,draw_buffers} | done
+@gl_extension{EXT,instanced_arrays} | done
+@gl_extension2{EXT,draw_instanced,draw_instanced} | done
+@gl_extension{NV,draw_buffers} | done
+@gl_extension{NV,fbo_color_attachments} | done
+@gl_extension{NV,read_buffer} | done
+@gl_extension{NV,pack_subimage} | done
+@gl_extension{NV,draw_instanced} | done
+@gl_extension{NV,framebuffer_blit} | done
+@gl_extension{NV,framebuffer_multisample} | done
+@gl_extension{NV,instanced_arrays} | done
+@gl_extension{NV,shadow_samplers_array} | done (shading language only)
+@gl_extension{NV,shadow_samplers_cube} | done (shading language only)
+@gl_extension{OES,depth24} | done
+@gl_extension{OES,element_index_uint} | done
+@gl_extension{OES,fbo_render_mipmap} | done
+@gl_extension{OES,rgb8_rgba8} | done (desktop-compatible subset)
+@gl_extension{OES,texture_3D} | done
+@gl_extension2{OES,texture_half_float_linear,OES_texture_float_linear} | done
+@gl_extension2{OES,texture_half_float,OES_texture_float} | done
+@gl_extension{OES,texture_float} | done
+@gl_extension{OES,texture_npot} | done (nothing to do)
+@gl_extension{OES,vertex_half_float} | done
+@gl_extension{OES,packed_depth_stencil} | done
+@gl_extension{OES,depth_texture} | done
+@gl_extension{OES,standard_derivatives} | done
+@gl_extension{OES,vertex_array_object} | done
+@gl_extension{OES,required_internalformat} | done (desktop-compatible subset)
+@gl_extension{OES,surfaceless_context} | done
@subsection opengl-support-es-extensions OpenGL ES extensions
-@todo @extension{NV,non_square_matrices}
+@todo @gl_extension{NV,non_square_matrices}
@todo Support also IMG_multisampled_render_to_texture? It has different enum
values (!)
@@ -422,41 +422,41 @@ Extension | Status
Extension | Status
------------------------------------------- | ------
-@extension{ANDROID,extension_pack_es31a} | done (nothing to do)
-@extension{APPLE,texture_format_BGRA8888} | done
-@extension{ARM,shader_framebuffer_fetch} | missing renderer setup and limit query
-@extension{ARM,shader_framebuffer_fetch_depth_stencil} | done (shading language only)
-@extension{EXT,texture_filter_anisotropic} | done
-@extension{EXT,texture_format_BGRA8888} | done
-@extension{EXT,read_format_bgra} | done
-@extension2{EXT,multi_draw_arrays,multi_draw_arrays} | done
-@extension{EXT,debug_label} | see above
-@extension{EXT,debug_marker} | done
-@extension2{EXT,separate_shader_objects,separate_shader_objects.gles} | only direct uniform binding
-@extension{EXT,multisampled_render_to_texture} | only renderbuffer storage
-@extension{EXT,robustness} | done
-@extension{EXT,shader_framebuffer_fetch} | missing limit query
-@extension{EXT,disjoint_timer_query} | only time elapsed query
-@extension{EXT,texture_sRGB_decode} | done
-@extension{EXT,sRGB_write_control} | done
-@extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} | done
-@extension{EXT,shader_integer_mix} | done (shading language only)
-@extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} | done
-@extension2{KHR,blend_equation_advanced_coherent,blend_equation_advanced} | done
-@extension{KHR,context_flush_control} | |
-@extension2{KHR,no_error,no_error} | done
-@extension2{NV,read_buffer_front,NV_read_buffer} | done
-@extension2{NV,read_depth,NV_read_depth_stencil} | done
-@extension2{NV,read_stencil,NV_read_depth_stencil} | done
-@extension{NV,read_depth_stencil} | done
-@extension{NV,texture_border_clamp} | done
-@extension{NV,shader_noperspective_interpolation} | done (shading language only)
-@extension{NV,polygon_mode} | done
-@extension{OES,depth32} | done
-@extension{OES,mapbuffer} | done
-@extension{OES,stencil1} | done
-@extension{OES,stencil4} | done
-@extension{OES,texture_float_linear} | done
+@gl_extension{ANDROID,extension_pack_es31a} | done (nothing to do)
+@gl_extension{APPLE,texture_format_BGRA8888} | done
+@gl_extension{ARM,shader_framebuffer_fetch} | missing renderer setup and limit query
+@gl_extension{ARM,shader_framebuffer_fetch_depth_stencil} | done (shading language only)
+@gl_extension{EXT,texture_filter_anisotropic} | done
+@gl_extension{EXT,texture_format_BGRA8888} | done
+@gl_extension{EXT,read_format_bgra} | done
+@gl_extension2{EXT,multi_draw_arrays,multi_draw_arrays} | done
+@gl_extension{EXT,debug_label} | see above
+@gl_extension{EXT,debug_marker} | done
+@gl_extension2{EXT,separate_shader_objects,separate_shader_objects.gles} | only direct uniform binding
+@gl_extension{EXT,multisampled_render_to_texture} | only renderbuffer storage
+@gl_extension{EXT,robustness} | done
+@gl_extension{EXT,shader_framebuffer_fetch} | missing limit query
+@gl_extension{EXT,disjoint_timer_query} | only time elapsed query
+@gl_extension{EXT,texture_sRGB_decode} | done
+@gl_extension{EXT,sRGB_write_control} | done
+@gl_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} | done
+@gl_extension{EXT,shader_integer_mix} | done (shading language only)
+@gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} | done
+@gl_extension2{KHR,blend_equation_advanced_coherent,blend_equation_advanced} | done
+@gl_extension{KHR,context_flush_control} | |
+@gl_extension2{KHR,no_error,no_error} | done
+@gl_extension2{NV,read_buffer_front,NV_read_buffer} | done
+@gl_extension2{NV,read_depth,NV_read_depth_stencil} | done
+@gl_extension2{NV,read_stencil,NV_read_depth_stencil} | done
+@gl_extension{NV,read_depth_stencil} | done
+@gl_extension{NV,texture_border_clamp} | done
+@gl_extension{NV,shader_noperspective_interpolation} | done (shading language only)
+@gl_extension{NV,polygon_mode} | done
+@gl_extension{OES,depth32} | done
+@gl_extension{OES,mapbuffer} | done
+@gl_extension{OES,stencil1} | done
+@gl_extension{OES,stencil4} | done
+@gl_extension{OES,texture_float_linear} | done
@subsection opengl-support-webgl10 WebGL 1.0
@@ -550,17 +550,17 @@ add any performance gains, is not supported in Magnum. See also
@subsection opengl-unsupported-extensions Unsupported ARB / Khronos extensions
-- @extension{ARB,shading_language_include} is overly complicated and
+- @gl_extension{ARB,shading_language_include} is overly complicated and
supported exclusively by NVidia
-- @extension{ARB,cl_event} seems to be not supported anywhere
-- @extension{ARB,shader_stencil_export} is supported exclusively by AMD
+- @gl_extension{ARB,cl_event} seems to be not supported anywhere
+- @gl_extension{ARB,shader_stencil_export} is supported exclusively by AMD
@subsection opengl-unsupported-extensions-vendor Unsupported vendor extensions
-- @extension{INTEL,map_texture} negatively affects texture access
+- @gl_extension{INTEL,map_texture} negatively affects texture access
performance. Combination of buffer mapping and pixel buffers might be of
the same or better performance, without affecting texture access speed.
-- @extension{NV,draw_texture} can be done with framebuffer blitting and
+- @gl_extension{NV,draw_texture} can be done with framebuffer blitting and
doesn't make any full-screen postprocessing easier, as shaders are
excluded.
*/
diff --git a/doc/opengl-wrapping.dox b/doc/opengl-wrapping.dox
index c86a7ce4d..c4a0dd812 100644
--- a/doc/opengl-wrapping.dox
+++ b/doc/opengl-wrapping.dox
@@ -123,8 +123,8 @@ GL version/extension is required. The information is also aggregated on
Some functionality can be emulated by Magnum --- it detects available extensions
and selects best possible code path for optimal performance. On startup, the
application prints list of extensions that were used to improve the default
-functionality. The most prominent feature is @extension{ARB,direct_state_access}
-(part of OpenGL 4.3) and its predecessor @extension{EXT,direct_state_access}.
+functionality. The most prominent feature is @gl_extension{ARB,direct_state_access}
+(part of OpenGL 4.3) and its predecessor @gl_extension{EXT,direct_state_access}.
These extensions make it possible to modify OpenGL objects without explicitly
binding them, reducing the amount of needed API calls. Magnum API is designed
around direct state access as it is far easier to use and less error-prone, but
diff --git a/doc/opengl.dox b/doc/opengl.dox
index 58faf6e0e..16420c734 100644
--- a/doc/opengl.dox
+++ b/doc/opengl.dox
@@ -58,7 +58,7 @@ The engine requires at least OpenGL 2.1 or OpenGL ES 2.0, but some specific
functionality has greater requirements. Following are lists of features
requiring specific OpenGL version. In most cases it is also specified which
extension is required, so if given hardware supports required extension, it
-doesn't need to have required OpenGL version too (e.g. @extension{ARB,vertex_array_object}
+doesn't need to have required OpenGL version too (e.g. @gl_extension{ARB,vertex_array_object}
is supported on older Intel GPUs even if they are capable of OpenGL 2.1 only).
- @subpage requires-gl30
diff --git a/doc/platforms-gl.dox b/doc/platforms-gl.dox
index ddc9aa09f..f023ed773 100644
--- a/doc/platforms-gl.dox
+++ b/doc/platforms-gl.dox
@@ -61,12 +61,12 @@ Various links gathered around the web:
with RGBA internal format, on mobile devices usually nothing happens. Be
sure to match the component count.
- Rendering to 16- and 32-bit float textures is only possible with OpenGL ES
- 3.2 or with the @extension{EXT,color_buffer_half_float} and
- @extension{EXT,color_buffer_float} extensions. You can work around that
+ 3.2 or with the @gl_extension{EXT,color_buffer_half_float} and
+ @gl_extension{EXT,color_buffer_float} extensions. You can work around that
issue by rendering to 32-bit unsigned integer textures and using the
@glsl floatBitsToUInt() @ce GLSL function instead.
- Linear filtering on 32-bit float textures is only possible with
- @extension{OES,texture_float_linear} (it's not even on ES 3.2 yet). You can
+ @gl_extension{OES,texture_float_linear} (it's not even on ES 3.2 yet). You can
work around that issue by using half-float texture formats or doing the
interpolation manually in a shader.
diff --git a/doc/snippets/coding-style.h b/doc/snippets/coding-style.h
index 611844e63..ee6a7b528 100644
--- a/doc/snippets/coding-style.h
+++ b/doc/snippets/coding-style.h
@@ -18,11 +18,11 @@ inline Collision operator/(const Point& a, const Sphere& b) { return (b/a).rever
/* [collisionoperator] */
/* [extension] */
-/** @extension{ARB,timer_query} */
+/** @gl_extension{ARB,timer_query} */
/* [extension] */
/* [extension2] */
-/** @extension2{NV,read_buffer_front,GL_NV_read_buffer} */
+/** @gl_extension2{NV,read_buffer_front,GL_NV_read_buffer} */
/* [extension2] */
/* [al_extension] */
@@ -60,7 +60,7 @@ static void setListenerVelocity(const Vector3& velocity) {
/* [fn_al] */
/* [requires_gl] */
-/** @requires_gl33 Extension @extension{ARB,timer_query} */
+/** @requires_gl33 Extension @gl_extension{ARB,timer_query} */
/* [requires_gl] */
/* [requires_al_extension] */
diff --git a/src/Magnum/DebugTools/BufferData.h b/src/Magnum/DebugTools/BufferData.h
index f4783444e..5dbfa61d4 100644
--- a/src/Magnum/DebugTools/BufferData.h
+++ b/src/Magnum/DebugTools/BufferData.h
@@ -53,7 +53,7 @@ Emulates @ref GL::Buffer::subData() call on platforms that don't support it
@ref MAGNUM_TARGET_GL enabled (done by default). See @ref building-features
for more information.
-@requires_gles30 Extension @extension{EXT,map_buffer_range} in OpenGL ES
+@requires_gles30 Extension @gl_extension{EXT,map_buffer_range} in OpenGL ES
2.0.
@requires_gles Buffer mapping is not available in WebGL.
*/
@@ -73,7 +73,7 @@ as OpenGL ES) by using @ref GL::Buffer::map().
@ref MAGNUM_TARGET_GL enabled (done by default). See @ref building-features
for more information.
-@requires_gles30 Extension @extension{EXT,map_buffer_range} in OpenGL ES
+@requires_gles30 Extension @gl_extension{EXT,map_buffer_range} in OpenGL ES
2.0.
@requires_gles Buffer mapping is not available in WebGL.
*/
diff --git a/src/Magnum/DebugTools/TextureImage.h b/src/Magnum/DebugTools/TextureImage.h
index ae9804e03..3ec10a5c6 100644
--- a/src/Magnum/DebugTools/TextureImage.h
+++ b/src/Magnum/DebugTools/TextureImage.h
@@ -43,7 +43,7 @@ namespace Magnum { namespace DebugTools {
Emulates @ref GL::Texture2D::subImage() call on platforms that don't support it
(such as OpenGL ES) by creating a framebuffer object and using
-@ref GL::Framebuffer::read(). On desktop OpenGL, if @extension{ARB,get_texture_sub_image}
+@ref GL::Framebuffer::read(). On desktop OpenGL, if @gl_extension{ARB,get_texture_sub_image}
is available, it's just an alias to @ref GL::Texture2D::subImage().
Note that only @ref GL::PixelFormat and @ref GL::PixelType values that are
@@ -114,7 +114,7 @@ MAGNUM_DEBUGTOOLS_EXPORT Image2D textureSubImage(GL::CubeMapTexture& texture, GL
Emulates @ref GL::Texture2D::subImage() call on platforms that don't support it
(such as OpenGL ES) by creating a framebuffer object and using
@ref GL::Framebuffer::read(). On desktop OpenGL, if
-@extension{ARB,get_texture_sub_image} is available, it's just an alias to
+@gl_extension{ARB,get_texture_sub_image} is available, it's just an alias to
@ref GL::Texture2D::subImage().
Note that only @ref GL::PixelFormat and @ref GL::PixelType values that are
diff --git a/src/Magnum/GL/AbstractFramebuffer.h b/src/Magnum/GL/AbstractFramebuffer.h
index f9b7b17ec..d26f0f06e 100644
--- a/src/Magnum/GL/AbstractFramebuffer.h
+++ b/src/Magnum/GL/AbstractFramebuffer.h
@@ -66,9 +66,9 @@ typedef Containers::EnumSet FramebufferClearMask;
@see @ref AbstractFramebuffer, @ref FramebufferBlitMask
@m_enum_values_as_keywords
-@requires_gl30 Extension @extension{ARB,framebuffer_object}
-@requires_gles30 Extension @extension{ANGLE,framebuffer_blit} or
- @extension{NV,framebuffer_blit} in OpenGL ES 2.0.
+@requires_gl30 Extension @gl_extension{ARB,framebuffer_object}
+@requires_gles30 Extension @gl_extension{ANGLE,framebuffer_blit} or
+ @gl_extension{NV,framebuffer_blit} in OpenGL ES 2.0.
@requires_webgl20 Framebuffer blit is not available in WebGL 1.0.
*/
enum class FramebufferBlit: GLbitfield {
@@ -81,9 +81,9 @@ enum class FramebufferBlit: GLbitfield {
@brief Mask for framebuffer blitting
@see @ref AbstractFramebuffer::blit()
-@requires_gl30 Extension @extension{ARB,framebuffer_object}
-@requires_gles30 Extension @extension{ANGLE,framebuffer_blit} or
- @extension{NV,framebuffer_blit} in OpenGL ES 2.0.
+@requires_gl30 Extension @gl_extension{ARB,framebuffer_object}
+@requires_gles30 Extension @gl_extension{ANGLE,framebuffer_blit} or
+ @gl_extension{NV,framebuffer_blit} in OpenGL ES 2.0.
@requires_webgl20 Framebuffer blit is not available in WebGL 1.0.
*/
#ifndef DOXYGEN_GENERATING_OUTPUT
@@ -98,9 +98,9 @@ typedef Containers::EnumSet FramebufferBlitMask;
@see @ref AbstractFramebuffer::blit()
@m_enum_values_as_keywords
-@requires_gl30 Extension @extension{ARB,framebuffer_object}
-@requires_gles30 Extension @extension{ANGLE,framebuffer_blit} or
- @extension{NV,framebuffer_blit} in OpenGL ES 2.0.
+@requires_gl30 Extension @gl_extension{ARB,framebuffer_object}
+@requires_gles30 Extension @gl_extension{ANGLE,framebuffer_blit} or
+ @gl_extension{NV,framebuffer_blit} in OpenGL ES 2.0.
@requires_webgl20 Framebuffer blit is not available in WebGL 1.0.
*/
enum class FramebufferBlitFilter: GLenum {
@@ -114,7 +114,7 @@ enum class FramebufferBlitFilter: GLenum {
@see @ref DefaultFramebuffer::checkStatus(), @ref Framebuffer::checkStatus()
@m_enum_values_as_keywords
-@requires_gl30 Extension @extension{ARB,framebuffer_object}
+@requires_gl30 Extension @gl_extension{ARB,framebuffer_object}
*/
enum class FramebufferTarget: GLenum {
/** Frambebuffer reading target */
@@ -158,19 +158,19 @@ doing image download via @ref read() using @fn_gl{PixelStore} with
avoid unnecessary calls to @fn_gl{PixelStore}. See also @ref Context::resetState()
and @ref Context::State::PixelStorage.
-If extension @extension{ARB,direct_state_access} (part of OpenGL 4.5) is
+If extension @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) is
available, @ref blit(), @ref clearDepth(), @ref clearStencil() and
@ref clearDepthStencil() functions use DSA to avoid unnecessary call to
@fn_gl{BindFramebuffer}. See their documentation for more information.
-If @extension{ARB,robustness} is available, @ref read() operations are
+If @gl_extension{ARB,robustness} is available, @ref read() operations are
protected from buffer overflow.
*/
class MAGNUM_GL_EXPORT AbstractFramebuffer {
friend Implementation::FramebufferState;
public:
- /** @todo `GL_IMPLEMENTATION_COLOR_READ_FORMAT`, `GL_IMPLEMENTATION_COLOR_READ_TYPE`, seems to be depending on currently bound FB (aargh) (@extension{ARB,ES2_compatibility}). */
+ /** @todo `GL_IMPLEMENTATION_COLOR_READ_FORMAT`, `GL_IMPLEMENTATION_COLOR_READ_TYPE`, seems to be depending on currently bound FB (aargh) (@gl_extension{ARB,ES2_compatibility}). */
/**
* @brief Max supported viewport size
@@ -186,8 +186,8 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
* @brief Max supported draw buffer count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither @extension{EXT,draw_buffers} nor
- * @extension{NV,draw_buffers} is available in OpenGL ES 2.0 and
+ * OpenGL calls. If neither @gl_extension{EXT,draw_buffers} nor
+ * @gl_extension{NV,draw_buffers} is available in OpenGL ES 2.0 and
* @webgl_extension{WEBGL,draw_buffers} is not available in WebGL 1.0,
* returns `0`.
* @see @ref DefaultFramebuffer::mapForDraw(), @ref Framebuffer::mapForDraw(),
@@ -200,7 +200,7 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
* @brief Max supported dual-source draw buffer count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{ARB,blend_func_extended} (part
+ * OpenGL calls. If extension @gl_extension{ARB,blend_func_extended} (part
* of OpenGL 3.3) is not available, returns `0`.
* @see @ref DefaultFramebuffer::mapForDraw(), @ref Framebuffer::mapForDraw(),
* @fn_gl{Get} with @def_gl_keyword{MAX_DUAL_SOURCE_DRAW_BUFFERS}
@@ -223,14 +223,14 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
* See @ref DefaultFramebuffer::mapForRead(), @ref Framebuffer::mapForRead(),
* @ref DefaultFramebuffer::mapForDraw() and @ref Framebuffer::mapForDraw()
* for specifying particular buffers for blitting operation. If
- * @extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
+ * @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
* available, @p source framebuffer is bound to @ref FramebufferTarget::Read
* and @p destination framebuffer to @ref FramebufferTarget::Draw
* before the operation (if not already).
* @see @fn_gl2_keyword{BlitNamedFramebuffer,BlitFramebuffer}, eventually
* @fn_gl_keyword{BlitFramebuffer}
- * @requires_gles30 Extension @extension{ANGLE,framebuffer_blit} or
- * @extension{NV,framebuffer_blit} in OpenGL ES 2.0.
+ * @requires_gles30 Extension @gl_extension{ANGLE,framebuffer_blit} or
+ * @gl_extension{NV,framebuffer_blit} in OpenGL ES 2.0.
* @requires_webgl20 Framebuffer blit is not available in WebGL 1.0.
*/
static void blit(AbstractFramebuffer& source, AbstractFramebuffer& destination, const Range2Di& sourceRectangle, const Range2Di& destinationRectangle, FramebufferBlitMask mask, FramebufferBlitFilter filter);
@@ -352,13 +352,13 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
* @ref PixelStorage::skip() is set, the functionality is emulated by
* adjusting the data pointer.
*
- * If @extension{ARB,robustness} is available, the operation is
+ * If @gl_extension{ARB,robustness} is available, the operation is
* protected from buffer overflow.
* @see @fn_gl{BindFramebuffer}, then @fn_gl{PixelStore} and
* @fn_gl_keyword{ReadPixels} or
* @fn_gl_extension_keyword{ReadnPixels,ARB,robustness}
- * @requires_gles30 Extension @extension{EXT,unpack_subimage}/
- * @extension{NV,pack_subimage} in OpenGL ES 2.0 if
+ * @requires_gles30 Extension @gl_extension{EXT,unpack_subimage}/
+ * @gl_extension{NV,pack_subimage} in OpenGL ES 2.0 if
* @ref PixelStorage::rowLength() is set to a non-zero value.
* @requires_webgl20 Non-zero @ref PixelStorage::rowLength() is not
* supported in WebGL 1.0.
@@ -388,7 +388,7 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
* @requires_webgl20 Pixel buffer objects are not available in WebGL
* 1.0.
* @todo Make it more flexible (usable with
- * @extension{ARB,buffer_storage}, avoiding relocations...)
+ * @gl_extension{ARB,buffer_storage}, avoiding relocations...)
*/
void read(const Range2Di& rectangle, BufferImage2D& image, BufferUsage usage);
@@ -413,7 +413,7 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
* On platforms that support it prefer to use @ref Texture1D::setStorage()
* and @ref copySubImage() instead, as it avoids unnecessary
* reallocations and has better performance characteristics. This call
- * also has no equivalent in @extension{ARB,direct_state_access}, thus
+ * also has no equivalent in @gl_extension{ARB,direct_state_access}, thus
* the texture needs to be bound to some texture unit before the
* operation.
* @see @ref Texture1D::maxSize(), @fn_gl{BindFramebuffer}, then
@@ -436,7 +436,7 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
* On platforms that support it prefer to use @ref Texture2D::setStorage()
* and @ref copySubImage() instead, as it avoids unnecessary
* reallocations and has better performance characteristics. This call
- * also has no equivalent in @extension{ARB,direct_state_access}, thus
+ * also has no equivalent in @gl_extension{ARB,direct_state_access}, thus
* the texture needs to be bound to some texture unit before the
* operation.
* @see @ref Texture2D::maxSize(), @fn_gl{BindFramebuffer}, then
@@ -457,13 +457,13 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
* On platforms that support it prefer to use @ref RectangleTexture::setStorage()
* and @ref copySubImage() instead, as it avoids unnecessary
* reallocations and has better performance characteristics. This call
- * also has no equivalent in @extension{ARB,direct_state_access}, thus
+ * also has no equivalent in @gl_extension{ARB,direct_state_access}, thus
* the texture needs to be bound to some texture unit before the
* operation.
* @see @ref Texture2D::maxSize(), @fn_gl{BindFramebuffer}, then
* @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl_keyword{CopyTexImage2D}
- * @requires_gl31 Extension @extension{ARB,texture_rectangle}
+ * @requires_gl31 Extension @gl_extension{ARB,texture_rectangle}
* @requires_gl Rectangle textures are not available in OpenGL ES and
* WebGL.
* @deprecated_gl Prefer to use @ref RectangleTexture::setStorage() and
@@ -483,7 +483,7 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
* On platforms that support it prefer to use @ref CubeMapTexture::setStorage()
* and @ref copySubImage() instead, as it avoids unnecessary
* reallocations and has better performance characteristics. This call
- * also has no equivalent in @extension{ARB,direct_state_access}, thus
+ * also has no equivalent in @gl_extension{ARB,direct_state_access}, thus
* the texture needs to be bound to some texture unit before the
* operation.
* @see @ref Texture2D::maxSize(), @fn_gl{BindFramebuffer}, then
@@ -505,7 +505,7 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
* On platforms that support it prefer to use @ref Texture2D::setStorage()
* and @ref copySubImage() instead, as it avoids unnecessary
* reallocations and has better performance characteristics. This call
- * also has no equivalent in @extension{ARB,direct_state_access}, thus
+ * also has no equivalent in @gl_extension{ARB,direct_state_access}, thus
* the texture needs to be bound to some texture unit before the
* operation.
* @see @ref Texture2D::maxSize(), @fn_gl{BindFramebuffer}, then
@@ -528,8 +528,8 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
* @param level Texture mip level
* @param offset Offset inside the texture
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the texture is bound before the operation (if not
* already).
* @see @ref Texture1D::setStorage(), @fn_gl{BindFramebuffer}, then
@@ -549,8 +549,8 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
* @param level Texture mip level
* @param offset Offset inside the texture
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the texture is bound before the operation (if not
* already).
* @see @ref Texture2D::setStorage(), @fn_gl{BindFramebuffer}, then
@@ -568,8 +568,8 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
* @param texture Texture where to put the data
* @param offset Offset inside the texture
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the texture is bound before the operation (if not
* already).
* @see @ref RectangleTexture::setStorage(), @fn_gl{BindFramebuffer},
@@ -592,8 +592,8 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
*
* Z coordinate of the offset is equivalent to number of texture face,
* i.e. +X is `0` and so on, in order of (+X, -X, +Y, -Y, +Z, -Z). If
- * neither @extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
- * @extension{EXT,direct_state_access} desktop extension is available,
+ * neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
+ * @gl_extension{EXT,direct_state_access} desktop extension is available,
* the texture is bound before the operation (if not already).
* @see @ref CubeMapTexture::setStorage(), @fn_gl{BindFramebuffer},
* then @fn_gl2_keyword{CopyTextureSubImage3D,CopyTexSubImage3D},
@@ -611,8 +611,8 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
* @param level Texture mip level
* @param offset Offset inside the texture
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the texture is bound before the operation (if not
* already).
* @see @ref Texture3D::setStorage(), @fn_gl{BindFramebuffer}, then
@@ -620,7 +620,7 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
* @fn_gl_extension_keyword{CopyTextureSubImage3D,EXT,direct_state_access},
* eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl_keyword{CopyTexSubImage3D}
- * @requires_gles30 Extension @extension{OES,texture_3D} in OpenGL
+ * @requires_gles30 Extension @gl_extension{OES,texture_3D} in OpenGL
* ES 2.0.
* @requires_webgl20 Only 2D textures are available in WebGL 1.0.
*/
@@ -635,8 +635,8 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
* @param level Texture mip level
* @param offset Offset inside the texture
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the texture is bound before the operation (if not
* already).
* @see @ref Texture1DArray::setStorage(), @fn_gl{BindFramebuffer},
@@ -658,8 +658,8 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
* @param level Texture mip level
* @param offset Offset inside the texture
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the texture is bound before the operation (if not
* already).
* @see @ref Texture2DArray::setStorage(), @fn_gl{BindFramebuffer},
@@ -667,7 +667,7 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
* @fn_gl_extension_keyword{CopyTextureSubImage3D,EXT,direct_state_access},
* eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl_keyword{CopyTexSubImage3D}
- * @requires_gl30 Extension @extension{EXT,texture_array}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_array}
* @requires_gles30 Array textures are not available in OpenGL ES 2.0.
* @requires_webgl20 Array textures are not available in WebGL 1.0.
*/
@@ -684,8 +684,8 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
*
* Z coordinate of the offset is equivalent to layer * 6 + number of
* texture face, i.e. +X is `0` and so on, in order of (+X, -X, +Y, -Y,
- * +Z, -Z). If neither @extension{ARB,direct_state_access} (part of
- * OpenGL 4.5) nor @extension{EXT,direct_state_access} desktop
+ * +Z, -Z). If neither @gl_extension{ARB,direct_state_access} (part of
+ * OpenGL 4.5) nor @gl_extension{EXT,direct_state_access} desktop
* available, the texture is bound before the operation (if not
* already).
* @see @ref CubeMapTextureArray::setStorage(), @fn_gl{BindFramebuffer},
@@ -693,10 +693,10 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer {
* @fn_gl_extension_keyword{CopyTextureSubImage3D,EXT,direct_state_access},
* eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl_keyword{CopyTexSubImage3D}
- * @requires_gl40 Extension @extension{ARB,texture_cube_map_array}
+ * @requires_gl40 Extension @gl_extension{ARB,texture_cube_map_array}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,texture_cube_map_array}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,texture_cube_map_array}
* @requires_gles Cube map texture arrays are not available in WebGL.
*/
void copySubImage(const Range2Di& rectangle, CubeMapTextureArray& texture, Int level, const Vector3i& offset);
diff --git a/src/Magnum/GL/AbstractObject.cpp b/src/Magnum/GL/AbstractObject.cpp
index ce9c8d965..b13f46115 100644
--- a/src/Magnum/GL/AbstractObject.cpp
+++ b/src/Magnum/GL/AbstractObject.cpp
@@ -87,8 +87,8 @@ namespace {
/**
* @todo Shouldn't ES2's KHR_debug have `GL_TRANSFORM_FEEDBACK_KHR`
* instead of `GL_TRANSFORM_FEEDBACK`? (it's a new enum in 2.0)
- * Also the original @extension{EXT,debug_label} mentions it
- * only for ES3 (i.e. no mention of @extension{EXT,transform_feedback})
+ * Also the original @gl_extension{EXT,debug_label} mentions it
+ * only for ES3 (i.e. no mention of @gl_extension{EXT,transform_feedback})
*/
case GL_TRANSFORM_FEEDBACK:
#ifndef MAGNUM_TARGET_GLES2
diff --git a/src/Magnum/GL/AbstractObject.h b/src/Magnum/GL/AbstractObject.h
index 75fcfadf0..e7a304aa4 100644
--- a/src/Magnum/GL/AbstractObject.h
+++ b/src/Magnum/GL/AbstractObject.h
@@ -89,9 +89,9 @@ class MAGNUM_GL_EXPORT AbstractObject {
*
* The result is cached, repeated queries don't result in repeated
* OpenGL calls. If OpenGL 4.3 / OpenGL ES 3.2 is not supported and
- * @extension{KHR,debug} desktop or ES extension (covered also by
- * @extension{ANDROID,extension_pack_es31a}) is not available,
- * returns `0`. Note that @extension{EXT,debug_label} has no such
+ * @gl_extension{KHR,debug} desktop or ES extension (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) is not available,
+ * returns `0`. Note that @gl_extension{EXT,debug_label} has no such
* limit.
* @see @ref AbstractQuery::setLabel(), @ref AbstractShaderProgram::setLabel(),
* @ref AbstractTexture::setLabel(), @ref Buffer::setLabel(),
diff --git a/src/Magnum/GL/AbstractQuery.h b/src/Magnum/GL/AbstractQuery.h
index 7829df888..ece85185c 100644
--- a/src/Magnum/GL/AbstractQuery.h
+++ b/src/Magnum/GL/AbstractQuery.h
@@ -88,8 +88,8 @@ class MAGNUM_GL_EXPORT AbstractQuery: public AbstractObject {
*
* The result is *not* cached, repeated queries will result in repeated
* OpenGL calls. If OpenGL 4.3 / OpenGL ES 3.2 is not supported and
- * neither @extension{KHR,debug} (covered also by
- * @extension{ANDROID,extension_pack_es31a}) nor @extension{EXT,debug_label}
+ * neither @gl_extension{KHR,debug} (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) nor @gl_extension{EXT,debug_label}
* desktop or ES extension is available, this function returns empty
* string.
* @see @fn_gl_keyword{GetObjectLabel} with @def_gl{QUERY} or
@@ -104,8 +104,8 @@ class MAGNUM_GL_EXPORT AbstractQuery: public AbstractObject {
* @return Reference to self (for method chaining)
*
* Default is empty string. If OpenGL 4.3 / OpenGL ES 3.2 is not
- * supported and neither @extension{KHR,debug} (covered also by
- * @extension{ANDROID,extension_pack_es31a}) nor @extension{EXT,debug_label}
+ * supported and neither @gl_extension{KHR,debug} (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) nor @gl_extension{EXT,debug_label}
* desktop or ES extension is available, this function does nothing.
* @see @ref maxLabelLength(), @fn_gl_keyword{ObjectLabel} with
* @def_gl{QUERY} or @fn_gl_extension_keyword{LabelObject,EXT,debug_label}
@@ -139,9 +139,9 @@ class MAGNUM_GL_EXPORT AbstractQuery: public AbstractObject {
* Note that this function is blocking until the result is available.
* See @ref resultAvailable().
* @see @fn_gl_keyword{GetQueryObject} with @def_gl{QUERY_RESULT}
- * @requires_gl33 Extension @extension{ARB,timer_query} for result
+ * @requires_gl33 Extension @gl_extension{ARB,timer_query} for result
* type @ref Magnum::UnsignedLong "UnsignedLong" and @ref Magnum::Long "Long"
- * @requires_es_extension Extension @extension{EXT,disjoint_timer_query}
+ * @requires_es_extension Extension @gl_extension{EXT,disjoint_timer_query}
* for result types @ref Magnum::Int "Int", @ref Magnum::UnsignedLong "UnsignedLong"
* and @ref Magnum::Long "Long".
* @requires_gles Only @ref Magnum::UnsignedInt "UnsignedInt" result
diff --git a/src/Magnum/GL/AbstractShaderProgram.h b/src/Magnum/GL/AbstractShaderProgram.h
index 96a380f10..3ca69d00b 100644
--- a/src/Magnum/GL/AbstractShaderProgram.h
+++ b/src/Magnum/GL/AbstractShaderProgram.h
@@ -132,11 +132,11 @@ out vec3 normal;
@snippet MagnumGL.cpp AbstractShaderProgram-binding
@see @ref maxVertexAttributes(), @ref AbstractFramebuffer::maxDrawBuffers()
-@requires_gl30 Extension @extension{EXT,gpu_shader4} for using
+@requires_gl30 Extension @gl_extension{EXT,gpu_shader4} for using
@ref bindFragmentDataLocation().
-@requires_gl33 Extension @extension{ARB,blend_func_extended} for using
+@requires_gl33 Extension @gl_extension{ARB,blend_func_extended} for using
@ref bindFragmentDataLocationIndexed().
-@requires_gl33 Extension @extension{ARB,explicit_attrib_location} for
+@requires_gl33 Extension @gl_extension{ARB,explicit_attrib_location} for
explicit attribute location instead of using
@ref bindAttributeLocation(), @ref bindFragmentDataLocation() or
@ref bindFragmentDataLocationIndexed().
@@ -145,14 +145,14 @@ out vec3 normal;
instead.
@requires_gles30 Multiple fragment shader outputs are not available in OpenGL
ES 2.0, similar functionality is available in extension
- @extension{EXT,draw_buffers} or @extension{NV,draw_buffers}.
+ @gl_extension{EXT,draw_buffers} or @gl_extension{NV,draw_buffers}.
@requires_webgl20 Explicit location specification of input attributes is not
supported in WebGL 1.0, use @ref bindAttributeLocation() instead.
@requires_webgl20 Multiple fragment shader outputs are not available in WebGL
1.0, similar functionality is available in extension
@webgl_extension{WEBGL,draw_buffers}.
-@todo @extension2{EXT,separate_shader_objects,separate_shader_objects.gles}
+@todo @gl_extension2{EXT,separate_shader_objects,separate_shader_objects.gles}
supports explicit attrib location
@subsection GL-AbstractShaderProgram-uniform-location Uniform locations
@@ -183,7 +183,7 @@ uniform mat3 normalMatrix;
@snippet MagnumGL.cpp AbstractShaderProgram-uniform-location
@see @ref maxUniformLocations()
-@requires_gl43 Extension @extension{ARB,explicit_uniform_location} for
+@requires_gl43 Extension @gl_extension{ARB,explicit_uniform_location} for
explicit uniform location instead of using @ref uniformLocation().
@requires_gles31 Explicit uniform location is not supported in OpenGL ES 3.0
and older. Use @ref uniformLocation() instead.
@@ -228,8 +228,8 @@ layout(std140) uniform material {
@snippet MagnumGL.cpp AbstractShaderProgram-uniform-block-binding
@see @ref Buffer::maxUniformBindings()
-@requires_gl31 Extension @extension{ARB,uniform_buffer_object}
-@requires_gl42 Extension @extension{ARB,shading_language_420pack} for explicit
+@requires_gl31 Extension @gl_extension{ARB,uniform_buffer_object}
+@requires_gl42 Extension @gl_extension{ARB,shading_language_420pack} for explicit
uniform block binding instead of using @ref uniformBlockIndex() and
@ref setUniformBlockBinding().
@requires_gles30 Uniform buffers are not available in OpenGL ES 2.0.
@@ -257,7 +257,7 @@ layout(std430, binding = 1) buffer normals {
@endcode
@see @ref Buffer::maxShaderStorageBindings()
-@requires_gl43 Extension @extension{ARB,shader_storage_buffer_object}
+@requires_gl43 Extension @gl_extension{ARB,shader_storage_buffer_object}
@requires_gles31 Shader storage is not available in OpenGL ES 3.0 and older.
@requires_gles Shader storage is not available in WebGL.
@@ -286,7 +286,7 @@ uniform sampler2D specularTexture;
@snippet MagnumGL.cpp AbstractShaderProgram-texture-uniforms
@see @ref Shader::maxTextureImageUnits(), @ref maxImageUnits()
-@requires_gl42 Extension @extension{ARB,shading_language_420pack} for explicit
+@requires_gl42 Extension @gl_extension{ARB,shading_language_420pack} for explicit
texture binding unit instead of using
@ref setUniform(Int, const T&) "setUniform(Int, Int)".
@requires_gles31 Explicit texture binding unit is not supported in OpenGL ES
@@ -327,11 +327,11 @@ out vec3 velocity;
@see @ref TransformFeedback::maxInterleavedComponents(),
@ref TransformFeedback::maxSeparateAttributes(),
@ref TransformFeedback::maxSeparateComponents()
-@requires_gl40 Extension @extension{ARB,transform_feedback2}
-@requires_gl40 Extension @extension{ARB,transform_feedback3} for using
+@requires_gl40 Extension @gl_extension{ARB,transform_feedback2}
+@requires_gl40 Extension @gl_extension{ARB,transform_feedback3} for using
`gl_NextBuffer` or `gl_SkipComponents#` names in
@ref setTransformFeedbackOutputs() function.
-@requires_gl44 Extension @extension{ARB,enhanced_layouts} for explicit
+@requires_gl44 Extension @gl_extension{ARB,enhanced_layouts} for explicit
transform feedback output specification instead of using
@ref setTransformFeedbackOutputs().
@requires_gles30 Transform feedback is not available in OpenGL ES 2.0.
@@ -362,17 +362,17 @@ See @ref types for more information, only types with GLSL equivalent can be
used (and their super- or subclasses with the same size and underlying type).
See also @ref Attribute::DataType enum for additional type options.
-@requires_gl30 Extension @extension{EXT,gpu_shader4} is required when using
+@requires_gl30 Extension @gl_extension{EXT,gpu_shader4} is required when using
integer attributes (i.e. @ref UnsignedInt, @ref Int, @ref Vector2ui,
@ref Vector2i, @ref Vector3ui, @ref Vector3i, @ref Vector4ui and
@ref Vector4i) or unsigned integer uniforms (i.e. @ref UnsignedInt,
@ref Vector2ui, @ref Vector3ui and @ref Vector4ui).
-@requires_gl40 Extension @extension{ARB,gpu_shader_fp64} is required when
+@requires_gl40 Extension @gl_extension{ARB,gpu_shader_fp64} is required when
using double uniforms (i.e. @ref Magnum::Double "Double", @ref Vector2d,
@ref Vector3d, @ref Vector4d, @ref Matrix2x2d, @ref Matrix3x3d,
@ref Matrix4x4d, @ref Matrix2x3d, @ref Matrix3x2d, @ref Matrix2x4d,
@ref Matrix4x2d, @ref Matrix3x4d and @ref Matrix4x3d).
-@requires_gl41 Extension @extension{ARB,vertex_attrib_64bit} is required when
+@requires_gl41 Extension @gl_extension{ARB,vertex_attrib_64bit} is required when
using double attributes (i.e. @ref Magnum::Double "Double", @ref Vector2d,
@ref Vector3d, @ref Vector4d, @ref Matrix2x2d, @ref Matrix3x3d,
@ref Matrix4x4d, @ref Matrix2x3d, @ref Matrix3x2d, @ref Matrix2x4d,
@@ -395,8 +395,8 @@ The engine tracks currently used shader program to avoid unnecessary calls to
are cached, so repeated queries don't result in repeated @fn_gl{Get} calls. See
also @ref Context::resetState() and @ref Context::State::Shaders.
-If extension @extension{ARB,separate_shader_objects} (part of OpenGL 4.1),
-@extension{EXT,direct_state_access} desktop extension, @extension2{EXT,separate_shader_objects,separate_shader_objects.gles} OpenGL ES
+If extension @gl_extension{ARB,separate_shader_objects} (part of OpenGL 4.1),
+@gl_extension{EXT,direct_state_access} desktop extension, @gl_extension2{EXT,separate_shader_objects,separate_shader_objects.gles} OpenGL ES
extension or OpenGL ES 3.1 is available, uniform setting functions use DSA
functions to avoid unnecessary calls to @fn_gl{UseProgram}. See @ref setUniform()
documentation for more information.
@@ -406,7 +406,7 @@ comes in handy.
@see @ref portability-shaders
-@todo `GL_NUM_{PROGRAM,SHADER}_BINARY_FORMATS` + `GL_{PROGRAM,SHADER}_BINARY_FORMATS` (vector), (@extension{ARB,ES2_compatibility})
+@todo `GL_NUM_{PROGRAM,SHADER}_BINARY_FORMATS` + `GL_{PROGRAM,SHADER}_BINARY_FORMATS` (vector), (@gl_extension{ARB,ES2_compatibility})
*/
class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
friend Mesh;
@@ -423,7 +423,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
*
* @see @ref setTransformFeedbackOutputs()
* @m_enum_values_as_keywords
- * @requires_gl30 Extension @extension{EXT,transform_feedback}
+ * @requires_gl30 Extension @gl_extension{EXT,transform_feedback}
* @requires_gles30 Transform feedback is not available in OpenGL ES
* 2.0.
* @requires_webgl20 Transform feedback is not available in WebGL 1.0.
@@ -451,7 +451,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* @brief Max supported atomic counter buffer size
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,shader_atomic_counters}
+ * OpenGL calls. If neither extension @gl_extension{ARB,shader_atomic_counters}
* (part of OpenGL 4.2) nor OpenGL ES 3.1 is available, returns @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_ATOMIC_COUNTER_BUFFER_SIZE}
* @requires_gles30 Not defined in OpenGL ES 2.0.
@@ -463,7 +463,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* @brief Max supported compute shared memory size
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,compute_shader}
+ * OpenGL calls. If neither extension @gl_extension{ARB,compute_shader}
* (part of OpenGL 4.3) nor OpenGL ES 3.1 is available, returns @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_COMPUTE_SHARED_MEMORY_SIZE}
* @requires_gles30 Not defined in OpenGL ES 2.0.
@@ -475,7 +475,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* @brief Max supported compute work group invocation count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,compute_shader}
+ * OpenGL calls. If neither extension @gl_extension{ARB,compute_shader}
* (part of OpenGL 4.3) nor OpenGL ES 3.1 is available, returns @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_COMPUTE_WORK_GROUP_INVOCATIONS}
* @requires_gles30 Not defined in OpenGL ES 2.0.
@@ -487,7 +487,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* @brief Max supported compute work group count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,compute_shader}
+ * OpenGL calls. If neither extension @gl_extension{ARB,compute_shader}
* (part of OpenGL 4.3) nor OpenGL ES 3.1 is available, returns zero
* vector.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_COMPUTE_WORK_GROUP_COUNT}
@@ -500,7 +500,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* @brief Max supported compute work group size
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,compute_shader}
+ * OpenGL calls. If neither extension @gl_extension{ARB,compute_shader}
* (part of OpenGL 4.3) nor OpenGL ES 3.1 is available, returns zero
* vector.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_COMPUTE_WORK_GROUP_SIZE}
@@ -513,7 +513,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* @brief Max supported image unit count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{ARB,shader_image_load_store}
+ * OpenGL calls. If extension @gl_extension{ARB,shader_image_load_store}
* (part of OpenGL 4.2) or OpenGL ES 3.1 is not available, returns
* @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_IMAGE_UNITS}
@@ -528,7 +528,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* @brief Max supported image sample count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{ARB,shader_image_load_store}
+ * OpenGL calls. If extension @gl_extension{ARB,shader_image_load_store}
* (part of OpenGL 4.2) is not available, returns @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_IMAGE_SAMPLES}
* @requires_gl Multisample image load/store is not available in OpenGL
@@ -543,8 +543,8 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* @brief Max supported combined shader output resource count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,shader_image_load_store}
- * (part of OpenGL 4.2) nor extension @extension{ARB,shader_storage_buffer_object}
+ * OpenGL calls. If neither extension @gl_extension{ARB,shader_image_load_store}
+ * (part of OpenGL 4.2) nor extension @gl_extension{ARB,shader_storage_buffer_object}
* (part of OpenGL 4.3) nor OpenGL ES 3.1 is available, returns
* @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_COMBINED_SHADER_OUTPUT_RESOURCES}
@@ -557,7 +557,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* @brief Max supported shader storage block size
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,shader_storage_buffer_object}
+ * OpenGL calls. If neither extension @gl_extension{ARB,shader_storage_buffer_object}
* (part of OpenGL 4.3) nor OpenGL ES 3.1 is available, returns
* @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_SHADER_STORAGE_BLOCK_SIZE}
@@ -571,7 +571,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* @brief Max supported uniform block size
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{ARB,uniform_buffer_object}
+ * OpenGL calls. If extension @gl_extension{ARB,uniform_buffer_object}
* (part of OpenGL 3.1) is not available, returns @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_UNIFORM_BLOCK_SIZE}
* @requires_gles30 Uniform blocks are not available in OpenGL ES 2.0.
@@ -584,7 +584,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* @brief Max supported explicit uniform location count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,explicit_uniform_location}
+ * OpenGL calls. If neither extension @gl_extension{ARB,explicit_uniform_location}
* (part of OpenGL 4.3) nor OpenGL ES 3.1 is available, returns
* @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_UNIFORM_LOCATIONS}
@@ -598,7 +598,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* @brief Min supported program texel offset
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{EXT,gpu_shader4} (part of
+ * OpenGL calls. If extension @gl_extension{EXT,gpu_shader4} (part of
* OpenGL 3.0) is not available, returns @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MIN_PROGRAM_TEXEL_OFFSET}
* @requires_gles30 Texture lookup with offset is not available in
@@ -612,7 +612,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* @brief Max supported program texel offset
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{EXT,gpu_shader4} (part of
+ * OpenGL calls. If extension @gl_extension{EXT,gpu_shader4} (part of
* OpenGL 3.0) is not available, returns @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_PROGRAM_TEXEL_OFFSET}
* @requires_gles30 Texture lookup with offset is not available in
@@ -673,8 +673,8 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
*
* The result is *not* cached, repeated queries will result in repeated
* OpenGL calls. If OpenGL 4.3 / OpenGL ES 3.2 is not supported and
- * neither @extension{KHR,debug} (covered also by
- * @extension{ANDROID,extension_pack_es31a}) nor @extension{EXT,debug_label}
+ * neither @gl_extension{KHR,debug} (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) nor @gl_extension{EXT,debug_label}
* desktop or ES extension is available, this function returns empty
* string.
* @see @fn_gl_keyword{GetObjectLabel} with @def_gl{PROGRAM} or
@@ -689,8 +689,8 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* @return Reference to self (for method chaining)
*
* Default is empty string. If OpenGL 4.3 / OpenGL ES 3.2 is not
- * supported and neither @extension{KHR,debug} (covered also by
- * @extension{ANDROID,extension_pack_es31a}) nor @extension{EXT,debug_label}
+ * supported and neither @gl_extension{KHR,debug} (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) nor @gl_extension{EXT,debug_label}
* desktop or ES extension is available, this function does nothing.
* @see @ref maxLabelLength(), @fn_gl_keyword{ObjectLabel} with
* @def_gl{PROGRAM} or @fn_gl_extension_keyword{LabelObject,EXT,debug_label}
@@ -724,7 +724,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
*
* Valid only on programs with compute shader attached.
* @see @fn_gl{DispatchCompute}
- * @requires_gl43 Extension @extension{ARB,compute_shader}
+ * @requires_gl43 Extension @gl_extension{ARB,compute_shader}
* @requires_gles31 Compute shaders are not available in OpenGL ES 3.0
* and older.
* @requires_gles Compute shaders are not available in WebGL.
@@ -755,7 +755,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* Initially disabled.
* @see @fn_gl_keyword{ProgramParameter} with
* @def_gl{PROGRAM_BINARY_RETRIEVABLE_HINT}
- * @requires_gl41 Extension @extension{ARB,get_program_binary}
+ * @requires_gl41 Extension @gl_extension{ARB,get_program_binary}
* @requires_gles30 Always allowed in OpenGL ES 2.0.
* @requires_gles Binary program representations are not supported in
* WebGL.
@@ -771,9 +771,9 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
*
* Initially disabled.
* @see @fn_gl_keyword{ProgramParameter} with @def_gl{PROGRAM_SEPARABLE}
- * @requires_gl41 Extension @extension{ARB,separate_shader_objects}
+ * @requires_gl41 Extension @gl_extension{ARB,separate_shader_objects}
* @requires_es_extension Extension
- * @extension2{EXT,separate_shader_objects,separate_shader_objects.gles}
+ * @gl_extension2{EXT,separate_shader_objects,separate_shader_objects.gles}
* @requires_gles Separate shader objects are not supported in WebGL.
*/
void setSeparable(bool enabled) {
@@ -839,7 +839,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* explicitly in the shader instead of using this function. See
* @ref GL-AbstractShaderProgram-attribute-location "class documentation"
* for more information.
- * @requires_gl33 Extension @extension{ARB,blend_func_extended}
+ * @requires_gl33 Extension @gl_extension{ARB,blend_func_extended}
* @requires_gl Multiple blend function inputs are not available in
* OpenGL ES or WebGL.
*/
@@ -864,9 +864,9 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* explicitly in the shader instead of using this function. See
* @ref GL-AbstractShaderProgram-attribute-location "class documentation"
* for more information.
- * @requires_gl30 Extension @extension{EXT,gpu_shader4}
+ * @requires_gl30 Extension @gl_extension{EXT,gpu_shader4}
* @requires_gl Use explicit location specification in OpenGL ES 3.0 or
- * WebGL 2.0 and `gl_FragData[n]` provided by @extension{NV,draw_buffers}
+ * WebGL 2.0 and `gl_FragData[n]` provided by @gl_extension{NV,draw_buffers}
* in OpenGL ES 2.0 and @webgl_extension{WEBGL,draw_buffers} in
* WebGL 1.0.
*/
@@ -902,8 +902,8 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* outputs explicitly in the shader instead of using this
* function. See @ref GL-AbstractShaderProgram-transform-feedback "class documentation"
* for more information.
- * @requires_gl30 Extension @extension{EXT,transform_feedback}
- * @requires_gl40 Extension @extension{ARB,transform_feedback3} for
+ * @requires_gl30 Extension @gl_extension{EXT,transform_feedback}
+ * @requires_gl40 Extension @gl_extension{ARB,transform_feedback3} for
* using `gl_NextBuffer` or `gl_SkipComponents#` names in
* @p outputs array
* @requires_gles30 Transform feedback is not available in OpenGL ES
@@ -955,7 +955,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* warning is printed and @cpp 0xffffffffu @ce is returned.
* @see @ref setUniformBlockBinding(),
* @fn_gl_keyword{GetUniformBlockIndex}
- * @requires_gl31 Extension @extension{ARB,uniform_buffer_object}
+ * @requires_gl31 Extension @gl_extension{ARB,uniform_buffer_object}
* @requires_gles30 Uniform buffers are not available in OpenGL ES 2.0.
* @requires_webgl20 Uniform buffers are not available in WebGL 1.0.
* @deprecated_gl Preferred usage is to specify uniform block binding
@@ -1015,9 +1015,9 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
* @param location Uniform location
* @param values Values
*
- * If neither @extension{ARB,separate_shader_objects} (part of OpenGL
- * 4.1) nor @extension{EXT,direct_state_access} desktop extension nor
- * @extension{EXT,separate_shader_objects} OpenGL ES extension nor
+ * If neither @gl_extension{ARB,separate_shader_objects} (part of OpenGL
+ * 4.1) nor @gl_extension{EXT,direct_state_access} desktop extension nor
+ * @gl_extension{EXT,separate_shader_objects} OpenGL ES extension nor
* OpenGL ES 3.1 is available, the shader is marked for use before the
* operation.
* @see @ref setUniform(Int, const T&), @ref uniformLocation(),
@@ -1039,7 +1039,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
#ifndef MAGNUM_TARGET_GLES2
/**
* @copydoc setUniform(Int, Containers::ArrayView)
- * @requires_gl30 Extension @extension{EXT,gpu_shader4}
+ * @requires_gl30 Extension @gl_extension{EXT,gpu_shader4}
* @requires_gles30 Only signed integers are available in OpenGL ES 2.0.
* @requires_webgl20 Only signed integers are available in WebGL 1.0.
*/
@@ -1052,7 +1052,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
#ifndef MAGNUM_TARGET_GLES
/**
* @copydoc setUniform(Int, Containers::ArrayView)
- * @requires_gl40 Extension @extension{ARB,gpu_shader_fp64}
+ * @requires_gl40 Extension @gl_extension{ARB,gpu_shader_fp64}
* @requires_gl Only floats are available in OpenGL ES or WebGL.
*/
void setUniform(Int location, Containers::ArrayView values);
@@ -1083,7 +1083,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
#ifndef MAGNUM_TARGET_GLES
/**
* @copydoc setUniform(Int, Containers::ArrayView)
- * @requires_gl40 Extension @extension{ARB,gpu_shader_fp64}
+ * @requires_gl40 Extension @gl_extension{ARB,gpu_shader_fp64}
* @requires_gl Only floats are available in OpenGL ES or WebGL.
*/
void setUniform(Int location, Containers::ArrayView> values);
@@ -1105,7 +1105,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject {
*
* @see @ref uniformBlockIndex(), @ref Buffer::maxUniformBindings(),
* @fn_gl_keyword{UniformBlockBinding}
- * @requires_gl31 Extension @extension{ARB,uniform_buffer_object}
+ * @requires_gl31 Extension @gl_extension{ARB,uniform_buffer_object}
* @requires_gles30 Uniform buffers are not available in OpenGL ES 2.0.
* @requires_webgl20 Uniform buffers are not available in WebGL 1.0.
* @deprecated_gl Preferred usage is to specify uniform block binding
diff --git a/src/Magnum/GL/AbstractTexture.h b/src/Magnum/GL/AbstractTexture.h
index 5c5372b8e..83f0ba9e3 100644
--- a/src/Magnum/GL/AbstractTexture.h
+++ b/src/Magnum/GL/AbstractTexture.h
@@ -77,31 +77,31 @@ values (such as @ref maxColorSamples()) are cached, so repeated queries don't
result in repeated @fn_gl{Get} calls. See also @ref Context::resetState() and
@ref Context::State::Textures.
-If @extension{ARB,direct_state_access} (part of OpenGL 4.5) is available,
+If @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) is available,
@ref bind(Int) and @ref unbind(Int) use @fn_gl{BindTextureUnit}. Otherwise, if
-@extension{ARB,multi_bind} (part of OpenGL 4.4) is available, @ref bind(Int)
+@gl_extension{ARB,multi_bind} (part of OpenGL 4.4) is available, @ref bind(Int)
and @ref unbind() uses @fn_gl{BindTextures}. Lastly, if
-@extension{EXT,direct_state_access} desktop extension is available,
+@gl_extension{EXT,direct_state_access} desktop extension is available,
@fn_gl_extension{BindNamedTexture,EXT,direct_state_access} function is used to
avoid unnecessary calls to @fn_gl{ActiveTexture}.
-In addition, if either @extension{ARB,direct_state_access} (part of OpenGL 4.5)
-or @extension{EXT,direct_state_access} desktop extension is available, also all
+In addition, if either @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+or @gl_extension{EXT,direct_state_access} desktop extension is available, also all
texture configuration and data updating functions use DSA functions to avoid
unnecessary calls to @fn_gl{ActiveTexture} and @fn_gl{BindTexture}. See
respective function documentation for more information.
-If @extension{ARB,multi_bind} (part of OpenGL 4.5) is available,
+If @gl_extension{ARB,multi_bind} (part of OpenGL 4.5) is available,
@ref bind(Int, std::initializer_list) and @ref unbind(Int, std::size_t)
use @fn_gl{BindTextures} to avoid unnecessary calls to @fn_gl{ActiveTexture}.
Otherwise the feature is emulated with sequence of @ref bind(Int)/@ref unbind(Int)
calls.
-If either @extension{ARB,direct_state_access} (part of OpenGL 4.5) or
-@extension{ARB,robustness} desktop extension is available, image reading
+If either @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) or
+@gl_extension{ARB,robustness} desktop extension is available, image reading
operations (such as @ref Texture::image()) are protected from buffer overflow.
-However, if @extension{ARB,direct_state_access} is not available and both
-@extension{EXT,direct_state_access} and @extension{ARB,robustness} are
+However, if @gl_extension{ARB,direct_state_access} is not available and both
+@gl_extension{EXT,direct_state_access} and @gl_extension{ARB,robustness} are
available, the robust version is preferred over DSA.
Pixel storage mode defined by @ref PixelStorage and @ref CompressedPixelStorage
@@ -127,8 +127,8 @@ and then set data using @ref Texture::setSubImage() "setSubImage()".
Function @ref Texture::setStorage() "setStorage()" creates immutable texture
storage, removing the need for additional consistency checks and memory
-reallocations when updating the data later. If OpenGL 4.2, @extension{ARB,texture_storage},
-OpenGL ES 3.0 or @extension{EXT,texture_storage} in OpenGL ES 2.0 is not
+reallocations when updating the data later. If OpenGL 4.2, @gl_extension{ARB,texture_storage},
+OpenGL ES 3.0 or @gl_extension{EXT,texture_storage} in OpenGL ES 2.0 is not
available, the feature is emulated with sequence of @ref Texture::setImage() "setImage()"
calls.
@@ -136,13 +136,13 @@ You can use functions @ref Texture::invalidateImage() "invalidateImage()" and
@ref Texture::invalidateSubImage() "invalidateSubImage()" if you don't need
texture data anymore to avoid unnecessary memory operations performed by OpenGL
in order to preserve the data. If running on OpenGL ES or extension
-@extension{ARB,invalidate_subdata} (part of OpenGL 4.3) is not available, these
+@gl_extension{ARB,invalidate_subdata} (part of OpenGL 4.3) is not available, these
functions do nothing.
@todo all texture [level] parameters, global texture parameters
@todo Texture copying
-@todo `GL_MAX_SAMPLE_MASK_WORDS` when @extension{ARB,texture_multisample} is done
-@todo Query for immutable levels (@extension{ARB,ES3_compatibility})
+@todo `GL_MAX_SAMPLE_MASK_WORDS` when @gl_extension{ARB,texture_multisample} is done
+@todo Query for immutable levels (@gl_extension{ARB,ES3_compatibility})
*/
class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject {
friend Implementation::TextureState;
@@ -170,7 +170,7 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject {
* @brief Max supported color sample count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,texture_multisample}
+ * OpenGL calls. If neither extension @gl_extension{ARB,texture_multisample}
* (part of OpenGL 3.2) nor OpenGL ES 3.1 is available, returns
* @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_COLOR_TEXTURE_SAMPLES}
@@ -183,7 +183,7 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject {
* @brief Max supported depth sample count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,texture_multisample}
+ * OpenGL calls. If neither extension @gl_extension{ARB,texture_multisample}
* (part of OpenGL 3.2) nor OpenGL ES 3.1 is available, returns
* @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_DEPTH_TEXTURE_SAMPLES}
@@ -196,7 +196,7 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject {
* @brief Max supported integer sample count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,texture_multisample}
+ * OpenGL calls. If neither extension @gl_extension{ARB,texture_multisample}
* (part of OpenGL 3.2) nor OpenGL ES 3.1 is available, returns
* @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_INTEGER_SAMPLES}
@@ -209,9 +209,9 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject {
/**
* @brief Unbind any texture from given texture unit
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5),
- * @extension{ARB,multi_bind} (part of OpenGL 4.4) nor
- * @extension{EXT,direct_state_access} desktop extension is available,
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5),
+ * @gl_extension{ARB,multi_bind} (part of OpenGL 4.4) nor
+ * @gl_extension{EXT,direct_state_access} desktop extension is available,
* the texture unit is made active before unbinding the texture.
* @note This function is meant to be used only internally from
* @ref AbstractShaderProgram subclasses. See its documentation
@@ -228,7 +228,7 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject {
* @brief Unbind textures in given range of texture units
*
* Unbinds all textures in the range @f$ [ firstTextureUnit ; firstTextureUnit + count ) @f$.
- * If @extension{ARB,multi_bind} (part of OpenGL 4.4) is not available,
+ * If @gl_extension{ARB,multi_bind} (part of OpenGL 4.4) is not available,
* the feature is emulated with sequence of @ref unbind(Int) calls.
* @note This function is meant to be used only internally from
* @ref AbstractShaderProgram subclasses. See its documentation
@@ -243,7 +243,7 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject {
*
* Binds first texture in the list to @p firstTextureUnit, second to
* `firstTextureUnit + 1` etc. If any texture is @cpp nullptr @ce,
- * given texture unit is unbound. If @extension{ARB,multi_bind} (part
+ * given texture unit is unbound. If @gl_extension{ARB,multi_bind} (part
* of OpenGL 4.4) is not available, the feature is emulated with
* sequence of @ref bind(Int) / @ref unbind(Int) calls.
* @note This function is meant to be used only internally from
@@ -266,7 +266,7 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject {
* @ref unbindImages(), @ref bindImages(),
* @ref AbstractShaderProgram::maxImageUnits(),
* @fn_gl_keyword{BindImageTexture}
- * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
+ * @requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
* @requires_gles31 Shader image load/store is not available in OpenGL
* ES 3.0 and older.
* @requires_gles Shader image load/store is not available in WebGL.
@@ -287,8 +287,8 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject {
* @ref unbindImage(), @ref bindImages(),
* @ref AbstractShaderProgram::maxImageUnits(),
* @fn_gl_keyword{BindImageTextures}
- * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
- * @requires_gl44 Extension @extension{ARB,multi_bind}
+ * @requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
+ * @requires_gl44 Extension @gl_extension{ARB,multi_bind}
* @requires_gl Multi bind is not available in OpenGL ES and WebGL.
*/
static void unbindImages(Int firstImageUnit, std::size_t count) {
@@ -310,8 +310,8 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject {
* @ref unbindImages(), @ref unbindImage(),
* @ref AbstractShaderProgram::maxImageUnits(),
* @fn_gl_keyword{BindImageTextures}
- * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
- * @requires_gl44 Extension @extension{ARB,multi_bind}
+ * @requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
+ * @requires_gl44 Extension @gl_extension{ARB,multi_bind}
* @requires_gl Multi bind is not available in OpenGL ES and WebGL.
*/
static void bindImages(Int firstImageUnit, std::initializer_list textures) {
@@ -365,8 +365,8 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject {
*
* The result is *not* cached, repeated queries will result in repeated
* OpenGL calls. If OpenGL 4.3 / OpenGL ES 3.2 is not supported and
- * neither @extension{KHR,debug} (covered also by
- * @extension{ANDROID,extension_pack_es31a}) nor @extension{EXT,debug_label}
+ * neither @gl_extension{KHR,debug} (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) nor @gl_extension{EXT,debug_label}
* desktop or ES extension is available, this function returns empty
* string.
* @see @fn_gl_keyword{GetObjectLabel} or
@@ -381,8 +381,8 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject {
* @return Reference to self (for method chaining)
*
* Default is empty string. If OpenGL 4.3 / OpenGL ES 3.2 is not
- * supported and neither @extension{KHR,debug} (covered also by
- * @extension{ANDROID,extension_pack_es31a}) nor @extension{EXT,debug_label}
+ * supported and neither @gl_extension{KHR,debug} (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) nor @gl_extension{EXT,debug_label}
* desktop or ES extension is available, this function does nothing.
* @see @ref maxLabelLength(), @fn_gl_keyword{ObjectLabel} or
* @fn_gl_extension_keyword{LabelObject,EXT,debug_label} with
@@ -402,9 +402,9 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject {
/**
* @brief Bind texture to given texture unit
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5),
- * @extension{ARB,multi_bind} (part of OpenGL 4.4) nor
- * @extension{EXT,direct_state_access} desktop extension is available,
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5),
+ * @gl_extension{ARB,multi_bind} (part of OpenGL 4.4) nor
+ * @gl_extension{EXT,direct_state_access} desktop extension is available,
* the texture unit is made active before binding the texture.
* @note This function is meant to be used only internally from
* @ref AbstractShaderProgram subclasses. See its documentation
diff --git a/src/Magnum/GL/Attribute.h b/src/Magnum/GL/Attribute.h
index 5ed5b255f..d0fe8f9f0 100644
--- a/src/Magnum/GL/Attribute.h
+++ b/src/Magnum/GL/Attribute.h
@@ -141,7 +141,7 @@ template class Attribute {
* float vector type. Must be used along with @ref DataType::UnsignedByte
* and @ref DataOption::Normalized.
* @m_keywords{GL_BGRA}
- * @requires_gl32 Extension @extension{ARB,vertex_array_bgra}
+ * @requires_gl32 Extension @gl_extension{ARB,vertex_array_bgra}
* @requires_gl Only RGBA component ordering is supported in OpenGL
* ES and WebGL.
*/
@@ -171,8 +171,8 @@ template class Attribute {
#ifndef MAGNUM_TARGET_WEBGL
/**
* Half float. Only for float attribute types.
- * @requires_gl30 Extension @extension{ARB,half_float_vertex}
- * @requires_gles30 Extension @extension{OES,vertex_half_float}
+ * @requires_gl30 Extension @gl_extension{ARB,half_float_vertex}
+ * @requires_gles30 Extension @gl_extension{OES,vertex_half_float}
* in OpenGL ES 2.0
* @requires_webgl20 Half float vertex attributes are not available
* in WebGL 1.0.
@@ -197,7 +197,7 @@ template class Attribute {
/**
* Unsigned 10.11.11 packed float. Only for three-component float
* vector attribute type.
- * @requires_gl44 Extension @extension{ARB,vertex_type_10f_11f_11f_rev}
+ * @requires_gl44 Extension @gl_extension{ARB,vertex_type_10f_11f_11f_rev}
* @requires_gl Packed float attributes are not available in OpenGL
* ES or WebGL.
*/
@@ -210,8 +210,8 @@ template class Attribute {
/**
* Unsigned 2.10.10.10 packed integer. Only for four-component
* float vector attribute type.
- * @todo How about (incompatible) @extension{OES,vertex_type_10_10_10_2}?
- * @requires_gl33 Extension @extension{ARB,vertex_type_2_10_10_10_rev}
+ * @todo How about (incompatible) @gl_extension{OES,vertex_type_10_10_10_2}?
+ * @requires_gl33 Extension @gl_extension{ARB,vertex_type_2_10_10_10_rev}
* @requires_gles30 Packed attributes are not available in OpenGL
* ES 2.0.
* @requires_webgl20 Packed attributes are not available in WebGL
@@ -222,7 +222,7 @@ template class Attribute {
/**
* Signed 2.10.10.10 packed integer. Only for four-component float
* vector attribute type.
- * @requires_gl33 Extension @extension{ARB,vertex_type_2_10_10_10_rev}
+ * @requires_gl33 Extension @gl_extension{ARB,vertex_type_2_10_10_10_rev}
* @requires_gles30 Packed attributes are not available in OpenGL
* ES 2.0.
* @requires_webgl20 Packed attributes are not available in WebGL
@@ -394,7 +394,7 @@ class DynamicAttribute {
* float vector type. Must be used along with @ref DataType::UnsignedByte
* and @ref Kind::GenericNormalized.
* @m_keywords{GL_BGRA}
- * @requires_gl32 Extension @extension{ARB,vertex_array_bgra}
+ * @requires_gl32 Extension @gl_extension{ARB,vertex_array_bgra}
* @requires_gl Only RGBA component ordering is supported in OpenGL
* ES and WebGL.
*/
@@ -420,8 +420,8 @@ class DynamicAttribute {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* Half float. Only for float attribute types.
- * @requires_gl30 Extension @extension{ARB,half_float_vertex}
- * @requires_gles30 Extension @extension{OES,vertex_half_float}
+ * @requires_gl30 Extension @gl_extension{ARB,half_float_vertex}
+ * @requires_gles30 Extension @gl_extension{OES,vertex_half_float}
* in OpenGL ES 2.0
* @requires_webgl20 Half float vertex attributes are not available
* in WebGL 1.0.
@@ -446,7 +446,7 @@ class DynamicAttribute {
/**
* Unsigned 10.11.11 packed float. Only for three-component float
* vector attribute type.
- * @requires_gl44 Extension @extension{ARB,vertex_type_10f_11f_11f_rev}
+ * @requires_gl44 Extension @gl_extension{ARB,vertex_type_10f_11f_11f_rev}
* @requires_gl Packed float attributes are not available in OpenGL
* ES or WebGL.
*/
@@ -459,8 +459,8 @@ class DynamicAttribute {
/**
* Unsigned 2.10.10.10 packed integer. Only for four-component
* float vector attribute type.
- * @todo How about (incompatible) @extension{OES,vertex_type_10_10_10_2}?
- * @requires_gl33 Extension @extension{ARB,vertex_type_2_10_10_10_rev}
+ * @todo How about (incompatible) @gl_extension{OES,vertex_type_10_10_10_2}?
+ * @requires_gl33 Extension @gl_extension{ARB,vertex_type_2_10_10_10_rev}
* @requires_gles30 Packed attributes are not available in OpenGL
* ES 2.0.
* @requires_webgl20 Packed attributes are not available in WebGL
@@ -471,7 +471,7 @@ class DynamicAttribute {
/**
* Signed 2.10.10.10 packed integer. Only for four-component float
* vector attribute type.
- * @requires_gl33 Extension @extension{ARB,vertex_type_2_10_10_10_rev}
+ * @requires_gl33 Extension @gl_extension{ARB,vertex_type_2_10_10_10_rev}
* @requires_gles30 Packed attributes are not available in OpenGL
* ES 2.0.
* @requires_webgl20 Packed attributes are not available in WebGL
diff --git a/src/Magnum/GL/Buffer.h b/src/Magnum/GL/Buffer.h
index f723e18e8..206343ab8 100644
--- a/src/Magnum/GL/Buffer.h
+++ b/src/Magnum/GL/Buffer.h
@@ -206,8 +206,8 @@ and implementation-defined values (such as @ref maxUniformBindings()) are
cached, so repeated queries don't result in repeated @fn_gl{Get} calls. See
also @ref Context::resetState() and @ref Context::State::Buffers.
-If either @extension{ARB,direct_state_access} (part of OpenGL 4.5) or
-@extension{EXT,direct_state_access} desktop extension is available, functions
+If either @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) or
+@gl_extension{EXT,direct_state_access} desktop extension is available, functions
@ref copy(), @ref size(), @ref data(), @ref subData(), @ref setData(),
@ref setSubData(), @ref map(), @ref mapRead(), @ref flushMappedRange() and
@ref unmap() use DSA functions to avoid unnecessary calls to @fn_gl{BindBuffer}.
@@ -216,7 +216,7 @@ See their respective documentation for more information.
You can use functions @ref invalidateData() and @ref invalidateSubData() if you
don't need buffer data anymore to avoid unnecessary memory operations performed
by OpenGL in order to preserve the data. If running on OpenGL ES or extension
-@extension{ARB,invalidate_subdata} (part of OpenGL 4.3) is not available, these
+@gl_extension{ARB,invalidate_subdata} (part of OpenGL 4.3) is not available, these
functions do nothing.
*/
class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
@@ -237,7 +237,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
#ifndef MAGNUM_TARGET_WEBGL
/**
* Used for storing atomic counters.
- * @requires_gl42 Extension @extension{ARB,shader_atomic_counters}
+ * @requires_gl42 Extension @gl_extension{ARB,shader_atomic_counters}
* @requires_gles31 Atomic counters are not available in OpenGL ES
* 3.0 and older.
* @requires_gles Atomic counters are not available in WebGL.
@@ -247,7 +247,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
/**
* Source for copies. See @ref copy().
- * @requires_gl31 Extension @extension{ARB,copy_buffer}
+ * @requires_gl31 Extension @gl_extension{ARB,copy_buffer}
* @requires_gles30 Buffer copying is not available in OpenGL ES
* 2.0.
* @requires_webgl20 Buffer copying is not available in WebGL 1.0.
@@ -256,7 +256,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
/**
* Target for copies. See @ref copy().
- * @requires_gl31 Extension @extension{ARB,copy_buffer}
+ * @requires_gl31 Extension @gl_extension{ARB,copy_buffer}
* @requires_gles30 Buffer copying is not available in OpenGL ES
* 2.0.
* @requires_webgl20 Buffer copying is not available in WebGL 1.0.
@@ -266,7 +266,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
#ifndef MAGNUM_TARGET_WEBGL
/**
* Indirect compute dispatch commands.
- * @requires_gl43 Extension @extension{ARB,compute_shader}
+ * @requires_gl43 Extension @gl_extension{ARB,compute_shader}
* @requires_gles31 Compute shaders are not available in OpenGL ES
* 3.0 and older.
* @requires_gles Compute shaders are not available in WebGL.
@@ -275,7 +275,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
/**
* Used for supplying arguments for indirect drawing.
- * @requires_gl40 Extension @extension{ARB,draw_indirect}
+ * @requires_gl40 Extension @gl_extension{ARB,draw_indirect}
* @requires_gles31 Indirect drawing is not available in OpenGL ES
* 3.0 and older.
* @requires_gles Indirect drawing is not available in WebGL.
@@ -309,7 +309,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
#ifndef MAGNUM_TARGET_WEBGL
/**
* Used for shader storage.
- * @requires_gl43 Extension @extension{ARB,shader_storage_buffer_object}
+ * @requires_gl43 Extension @gl_extension{ARB,shader_storage_buffer_object}
* @requires_gles31 Shader storage is not available in OpenGL ES
* 3.0 and older.
* @requires_gles Shader storage is not available in WebGL.
@@ -321,10 +321,10 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
#if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
/**
* Source for texel fetches. See @ref BufferTexture.
- * @requires_gl31 Extension @extension{ARB,texture_buffer_object}
+ * @requires_gl31 Extension @gl_extension{ARB,texture_buffer_object}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,texture_buffer}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,texture_buffer}
* @requires_gles Texture buffers are not available in WebGL.
*/
Texture = GL_TEXTURE_BUFFER,
@@ -333,7 +333,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
#ifndef MAGNUM_TARGET_GLES2
/**
* Target for transform feedback.
- * @requires_gl30 Extension @extension{EXT,transform_feedback}
+ * @requires_gl30 Extension @gl_extension{EXT,transform_feedback}
* @requires_gles30 Transform feedback is not available in OpenGL
* ES 2.0.
* @requires_webgl20 Transform feedback is not available in WebGL
@@ -343,7 +343,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
/**
* Used for storing uniforms.
- * @requires_gl31 Extension @extension{ARB,uniform_buffer_object}
+ * @requires_gl31 Extension @gl_extension{ARB,uniform_buffer_object}
* @requires_gles30 Uniform buffers are not available in OpenGL ES
* 2.0.
* @requires_webgl20 Uniform buffers are not available in WebGL
@@ -364,7 +364,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
#ifndef MAGNUM_TARGET_WEBGL
/**
* Atomic counter binding
- * @requires_gl42 Extension @extension{ARB,shader_atomic_counters}
+ * @requires_gl42 Extension @gl_extension{ARB,shader_atomic_counters}
* @requires_gles31 Atomic counters are not available in OpenGL ES
* 3.0 and older.
* @requires_gles Atomic counters are not available in WebGL.
@@ -375,7 +375,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
#ifndef MAGNUM_TARGET_WEBGL
/**
* Shader storage binding
- * @requires_gl43 Extension @extension{ARB,shader_storage_buffer_object}
+ * @requires_gl43 Extension @gl_extension{ARB,shader_storage_buffer_object}
* @requires_gles31 Shader storage is not available in OpenGL ES
* 3.0 and older.
* @requires_gles Shader storage is not available in WebGL.
@@ -385,7 +385,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
/**
* Uniform binding
- * @requires_gl31 Extension @extension{ARB,uniform_buffer_object}
+ * @requires_gl31 Extension @gl_extension{ARB,uniform_buffer_object}
* @requires_gles30 Uniform buffers are not available in OpenGL ES
* 2.0.
* @requires_webgl20 Uniform buffers are not available in WebGL
@@ -401,7 +401,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
*
* @see @ref map(MapAccess)
* @m_enum_values_as_keywords
- * @requires_es_extension Extension @extension{OES,mapbuffer}
+ * @requires_es_extension Extension @gl_extension{OES,mapbuffer}
* @requires_gles Buffer mapping is not available in WebGL.
* @deprecated_gl Prefer to use @ref map(GLintptr, GLsizeiptr, MapFlags)
* instead, as it has more complete set of features.
@@ -436,8 +436,8 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
*
* @see @ref MapFlags, @ref map(GLintptr, GLsizeiptr, MapFlags)
* @m_enum_values_as_keywords
- * @requires_gl30 Extension @extension{ARB,map_buffer_range}
- * @requires_gles30 Extension @extension{EXT,map_buffer_range} in
+ * @requires_gl30 Extension @gl_extension{ARB,map_buffer_range}
+ * @requires_gles30 Extension @gl_extension{EXT,map_buffer_range} in
* OpenGL ES 2.0.
* @requires_gles Buffer mapping is not available in WebGL.
*/
@@ -504,8 +504,8 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* @brief Memory mapping flags
*
* @see @ref map(GLintptr, GLsizeiptr, MapFlags)
- * @requires_gl30 Extension @extension{ARB,map_buffer_range}
- * @requires_gles30 Extension @extension{EXT,map_buffer_range} in
+ * @requires_gl30 Extension @gl_extension{ARB,map_buffer_range}
+ * @requires_gles30 Extension @gl_extension{EXT,map_buffer_range} in
* OpenGL ES 2.0.
* @requires_gles Buffer mapping is not available in WebGL.
*/
@@ -517,7 +517,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* @brief Minimal supported mapping alignment
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{ARB,map_buffer_alignment}
+ * OpenGL calls. If extension @gl_extension{ARB,map_buffer_alignment}
* (part of OpenGL 4.2) is not available, returns @cpp 1 @ce.
* @see @ref map(), @ref mapRead(), @fn_gl{Get} with
* @def_gl_keyword{MIN_MAP_BUFFER_ALIGNMENT}
@@ -533,7 +533,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* @brief Max supported atomic counter buffer binding count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,shader_atomic_counters}
+ * OpenGL calls. If neither extension @gl_extension{ARB,shader_atomic_counters}
* (part of OpenGL 4.2) nor OpenGL ES 3.1 is available, returns
* @cpp 0 @ce.
* @see @ref bind(), @ref unbind(), @fn_gl{Get} with
@@ -547,7 +547,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* @brief Max supported shader storage buffer binding count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,shader_storage_buffer_object}
+ * OpenGL calls. If neither extension @gl_extension{ARB,shader_storage_buffer_object}
* (part of OpenGL 4.3) nor OpenGL ES 3.1 is available, returns
* @cpp 0 @ce.
* @see @ref bind(), @ref unbind(), @fn_gl{Get} with
@@ -562,7 +562,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* @brief Alignment of uniform buffer binding offset
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{ARB,uniform_buffer_object}
+ * OpenGL calls. If extension @gl_extension{ARB,uniform_buffer_object}
* (part of OpenGL 3.1) is not available, returns @cpp 1 @ce.
* @see @ref bind(), @fn_gl{Get} with
* @def_gl_keyword{UNIFORM_BUFFER_OFFSET_ALIGNMENT}
@@ -576,7 +576,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* @brief Alignment of shader storage buffer binding offset
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,shader_storage_buffer_object}
+ * OpenGL calls. If neither extension @gl_extension{ARB,shader_storage_buffer_object}
* (part of OpenGL 4.3) nor OpenGL ES 3.1 is available, returns
* @cpp 1 @ce.
* @see @ref bind(), @fn_gl{Get} with
@@ -591,7 +591,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* @brief Max supported uniform buffer binding count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{ARB,uniform_buffer_object}
+ * OpenGL calls. If extension @gl_extension{ARB,uniform_buffer_object}
* (part of OpenGL 3.1) is not available, returns @cpp 0 @ce.
* @see @ref bind(), @ref unbind(), @fn_gl{Get} with
* @def_gl_keyword{MAX_UNIFORM_BUFFER_BINDINGS}
@@ -627,7 +627,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
*
* Unbinds all buffers in given target in range @f$ [ firstIndex ; firstIndex + count ] @f$.
* The range of indices must respect limits for given @p target. If
- * @extension{ARB,multi_bind} (part of OpenGL 4.4) is not available,
+ * @gl_extension{ARB,multi_bind} (part of OpenGL 4.4) is not available,
* the feature is emulated with sequence of @ref unbind(Target, UnsignedInt)
* calls.
* @note This function is meant to be used only internally from
@@ -658,7 +658,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* of indices must respect limits for given @p target. The offsets must
* respect alignment, which is 4 bytes for @ref Target::AtomicCounter
* and implementation-defined for other targets. All the buffers must
- * have allocated data store. If @extension{ARB,multi_bind} (part of
+ * have allocated data store. If @gl_extension{ARB,multi_bind} (part of
* OpenGL 4.4) is not available, the feature is emulated with sequence
* of @ref bind(Target, UnsignedInt, GLintptr, GLsizeiptr) /
* @ref unbind(Target, UnsignedInt) calls.
@@ -690,7 +690,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* `firstIndex + 1` etc. If any buffer is `nullptr`, given indexed
* target is unbound. The range of indices must respect limits for
* given @p target. All the buffers must have allocated data store. If
- * @extension{ARB,multi_bind} (part of OpenGL 4.4) is not available,
+ * @gl_extension{ARB,multi_bind} (part of OpenGL 4.4) is not available,
* the feature is emulated with sequence of @ref bind(Target, UnsignedInt)
* / @ref unbind(Target, UnsignedInt) calls.
* @note This function is meant to be used only internally from
@@ -720,14 +720,14 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* @param writeOffset Offset in the write buffer
* @param size Data size
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, @p read buffer is bound for reading and @p write buffer
* is bound for writing before the copy is performed (if not already).
* @see @fn_gl2_keyword{CopyNamedBufferSubData,CopyBufferSubData},
* @fn_gl_extension_keyword{NamedCopyBufferSubData,EXT,direct_state_access},
* eventually @fn_gl{BindBuffer} and @fn_gl_keyword{CopyBufferSubData}
- * @requires_gl31 Extension @extension{ARB,copy_buffer}
+ * @requires_gl31 Extension @gl_extension{ARB,copy_buffer}
* @requires_gles30 Buffer copying is not available in OpenGL ES 2.0.
* @requires_webgl20 Buffer copying is not available in WebGL 1.0.
*/
@@ -761,7 +761,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* @param targetHint Target hint, see @ref setTargetHint() for more
* information
*
- * Creates new OpenGL buffer object. If @extension{ARB,direct_state_access}
+ * Creates new OpenGL buffer object. If @gl_extension{ARB,direct_state_access}
* (part of OpenGL 4.5) is not available, the buffer is created on
* first use.
* @see @ref Buffer(NoCreateT), @ref wrap(), @fn_gl_keyword{CreateBuffers},
@@ -824,8 +824,8 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
*
* The result is *not* cached, repeated queries will result in repeated
* OpenGL calls. If OpenGL 4.3 / OpenGL ES 3.2 is not supported and
- * neither @extension{KHR,debug} (covered also by
- * @extension{ANDROID,extension_pack_es31a}) nor @extension{EXT,debug_label}
+ * neither @gl_extension{KHR,debug} (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) nor @gl_extension{EXT,debug_label}
* desktop or ES extension is available, this function returns empty
* string.
* @see @fn_gl_keyword{GetObjectLabel} with @def_gl{BUFFER} or
@@ -840,8 +840,8 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* @return Reference to self (for method chaining)
*
* Default is empty string. If OpenGL 4.3 / OpenGL ES 3.2 is not
- * supported and neither @extension{KHR,debug} (covered also by
- * @extension{ANDROID,extension_pack_es31a}) nor @extension{EXT,debug_label}
+ * supported and neither @gl_extension{KHR,debug} (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) nor @gl_extension{EXT,debug_label}
* desktop or ES extension is available, this function does nothing.
* @see @ref maxLabelLength(), @fn_gl_keyword{ObjectLabel} with
* @def_gl{BUFFER} or @fn_gl_extension_keyword{LabelObject,EXT,debug_label}
@@ -865,8 +865,8 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* @brief Set target hint
* @return Reference to self (for method chaining)
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the buffer needs to be internally bound to some target
* before any operation. You can specify target which will always be
* used when binding the buffer internally, possibly saving some calls
@@ -935,8 +935,8 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
/**
* @brief Buffer size
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the buffer is bound to hinted target before the operation
* (if not already).
* @see @ref setTargetHint(), @fn_gl2_keyword{GetNamedBufferParameter,GetBufferParameter},
@@ -949,8 +949,8 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
/**
* @brief Buffer data
*
- * Returns data of whole buffer. If neither @extension{ARB,direct_state_access}
- * (part of OpenGL 4.5) nor @extension{EXT,direct_state_access} is
+ * Returns data of whole buffer. If neither @gl_extension{ARB,direct_state_access}
+ * (part of OpenGL 4.5) nor @gl_extension{EXT,direct_state_access} is
* available, the buffer is bound to hinted target before the operation
* (if not already).
* @see @ref size(), @ref subData(), @ref setData(), @ref setTargetHint(),
@@ -981,8 +981,8 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* @param size Data size in bytes
*
* Returns data of given buffer portion. If neither
- * @extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
- * @extension{EXT,direct_state_access} is available, the buffer is
+ * @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
+ * @gl_extension{EXT,direct_state_access} is available, the buffer is
* bound to hinted target before the operation (if not already).
* @see @ref size(), @ref data(), @ref setSubData(), @ref setTargetHint(),
* @fn_gl2_keyword{GetNamedBufferSubData,GetBufferSubData},
@@ -1009,8 +1009,8 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* @param usage Buffer usage
* @return Reference to self (for method chaining)
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the buffer is bound to hinted target before the operation
* (if not already).
* @see @ref setTargetHint(), @fn_gl2_keyword{NamedBufferData,BufferData},
@@ -1037,8 +1037,8 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* @param data Data
* @return Reference to self (for method chaining)
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the buffer is bound to hinted target before the operation
* (if not already).
* @see @ref setTargetHint(), @fn_gl2_keyword{NamedBufferSubData,BufferSubData},
@@ -1063,7 +1063,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* @brief Invalidate buffer data
* @return Reference to self (for method chaining)
*
- * If running on OpenGL ES or extension @extension{ARB,invalidate_subdata}
+ * If running on OpenGL ES or extension @gl_extension{ARB,invalidate_subdata}
* (part of OpenGL 4.3) is not available, this function does nothing.
* @see @ref MapFlag::InvalidateBuffer, @fn_gl_keyword{InvalidateBufferData}
*/
@@ -1075,7 +1075,7 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* @param length Length of the invalidated range
* @return Reference to self (for method chaining)
*
- * If running on OpenGL ES or extension @extension{ARB,invalidate_subdata}
+ * If running on OpenGL ES or extension @gl_extension{ARB,invalidate_subdata}
* (part of OpenGL 4.3) is not available, this function does nothing.
* @see @ref MapFlag::InvalidateRange, @fn_gl_keyword{InvalidateBufferData}
*/
@@ -1087,15 +1087,15 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* @param access Access
* @return Pointer to mapped buffer data or @cpp nullptr @ce on error
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the buffer is bound to hinted target before the operation
* (if not already).
* @see @ref mapRead(), @ref minMapAlignment(), @ref unmap(),
* @ref setTargetHint(), @fn_gl2_keyword{MapNamedBuffer,MapBuffer},
* @fn_gl_extension_keyword{MapNamedBuffer,EXT,direct_state_access},
* eventually @fn_gl{BindBuffer} and @fn_gl_keyword{MapBuffer}
- * @requires_es_extension Extension @extension{OES,mapbuffer} in
+ * @requires_es_extension Extension @gl_extension{OES,mapbuffer} in
* OpenGL ES 2.0, use @ref map(GLintptr, GLsizeiptr, MapFlags) in
* OpenGL ES 3.0 instead.
* @requires_gles Buffer mapping is not available in WebGL.
@@ -1133,8 +1133,8 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* @ref MapFlag::Write must be specified.
* @return Sized view to buffer data or `nullptr` on error
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the buffer is bound to hinted target before the operation
* (if not already).
* @see @ref mapRead(), @ref minMapAlignment(), @ref flushMappedRange(),
@@ -1142,8 +1142,8 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* @fn_gl2_keyword{MapNamedBufferRange,MapBufferRange},
* @fn_gl_extension_keyword{MapNamedBufferRange,EXT,direct_state_access},
* eventually @fn_gl{BindBuffer} and @fn_gl_keyword{MapBufferRange}
- * @requires_gl30 Extension @extension{ARB,map_buffer_range}
- * @requires_gles30 Extension @extension{EXT,map_buffer_range} in
+ * @requires_gl30 Extension @gl_extension{ARB,map_buffer_range}
+ * @requires_gles30 Extension @gl_extension{EXT,map_buffer_range} in
* OpenGL ES 2.0.
* @requires_gles Buffer mapping is not available in WebGL.
*/
@@ -1178,15 +1178,15 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
* @ref map() with @ref MapFlag::FlushExplicit flag. See
* @ref GL-Buffer-data-mapping "class documentation" for usage example.
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the buffer is bound to hinted target before the operation
* (if not already).
* @see @ref setTargetHint(), @fn_gl2_keyword{FlushMappedNamedBufferRange,FlushMappedBufferRange},
* @fn_gl_extension_keyword{FlushMappedNamedBufferRange,EXT,direct_state_access},
* eventually @fn_gl{BindBuffer} and @fn_gl_keyword{FlushMappedBufferRange}
- * @requires_gl30 Extension @extension{ARB,map_buffer_range}
- * @requires_gles30 Extension @extension{EXT,map_buffer_range} in
+ * @requires_gl30 Extension @gl_extension{ARB,map_buffer_range}
+ * @requires_gles30 Extension @gl_extension{EXT,map_buffer_range} in
* OpenGL ES 2.0.
* @requires_gles Buffer mapping is not available in WebGL.
*/
@@ -1200,14 +1200,14 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject {
*
* Unmaps buffer previously mapped with @ref map() / @ref mapRead(),
* invalidating the pointer returned by these functions. If neither
- * @extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
- * @extension{EXT,direct_state_access} desktop extension is available,
+ * @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
+ * @gl_extension{EXT,direct_state_access} desktop extension is available,
* the buffer is bound to hinted target before the operation (if not
* already).
* @see @ref setTargetHint(), @fn_gl2_keyword{UnmapNamedBuffer,UnmapBuffer},
* @fn_gl_extension_keyword{UnmapNamedBuffer,EXT,direct_state_access},
* eventually @fn_gl{BindBuffer} and @fn_gl_keyword{UnmapBuffer}
- * @requires_gles30 Extension @extension{OES,mapbuffer} in OpenGL
+ * @requires_gles30 Extension @gl_extension{OES,mapbuffer} in OpenGL
* ES 2.0.
* @requires_gles Buffer mapping is not available in WebGL.
*/
diff --git a/src/Magnum/GL/BufferImage.h b/src/Magnum/GL/BufferImage.h
index 45643599c..56e16b2af 100644
--- a/src/Magnum/GL/BufferImage.h
+++ b/src/Magnum/GL/BufferImage.h
@@ -505,7 +505,7 @@ template class CompressedBufferImage {
* @param data Image data
* @param usage Image buffer usage
*
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default compressed pixel storage
* @requires_gl Compressed pixel storage is hardcoded in OpenGL ES and
* WebGL.
@@ -560,7 +560,7 @@ template class CompressedBufferImage {
*
* If @p dataSize is @cpp 0 @ce, the buffer is unconditionally
* reallocated on the first call to @ref setData().
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default compressed pixel storage
* @requires_gl Compressed pixel storage is hardcoded in OpenGL ES and
* WebGL.
@@ -611,7 +611,7 @@ template class CompressedBufferImage {
*
* Format is undefined, size is zero and buffer is empty, call
* @ref setData() to fill the image with data.
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default compressed pixel storage
* @requires_gl Compressed pixel storage is hardcoded in OpenGL ES and
* WebGL.
@@ -662,7 +662,7 @@ template class CompressedBufferImage {
*
* See @ref CompressedPixelStorage::dataProperties() for more
* information.
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* @requires_gl Compressed pixel storage is hardcoded in OpenGL ES and
* WebGL.
*/
@@ -690,7 +690,7 @@ template class CompressedBufferImage {
*
* Updates the image buffer with given data.
* @see @ref Buffer::setData()
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* @requires_gl Compressed pixel storage is hardcoded in OpenGL ES and
* WebGL.
*/
diff --git a/src/Magnum/GL/BufferTexture.h b/src/Magnum/GL/BufferTexture.h
index 2de3cab12..f68914f4d 100644
--- a/src/Magnum/GL/BufferTexture.h
+++ b/src/Magnum/GL/BufferTexture.h
@@ -65,8 +65,8 @@ information about usage in shaders.
@section GL-BufferTexture-performance-optimizations Performance optimizations
-If either @extension{ARB,direct_state_access} (part of OpenGL 4.5) or
-@extension{EXT,direct_state_access} is available, @ref setBuffer() functions
+If either @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) or
+@gl_extension{EXT,direct_state_access} is available, @ref setBuffer() functions
use DSA to avoid unnecessary calls to @fn_gl{ActiveTexture} and
@fn_gl{BindTexture}. See
@ref GL-AbstractTexture-performance-optimization "relevant section in AbstractTexture documentation"
@@ -75,10 +75,10 @@ and respective function documentation for more information.
@see @ref Texture, @ref TextureArray, @ref CubeMapTexture,
@ref CubeMapTextureArray, @ref RectangleTexture, @ref MultisampleTexture
@m_keywords{GL_TEXTURE_BUFFER}
-@requires_gl31 Extension @extension{ARB,texture_buffer_object}
+@requires_gl31 Extension @gl_extension{ARB,texture_buffer_object}
@requires_gles30 Not defined in OpenGL ES 2.0.
-@requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- @extension{EXT,texture_buffer}
+@requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ @gl_extension{EXT,texture_buffer}
@requires_gles Texture buffers are not available in WebGL.
*/
class MAGNUM_GL_EXPORT BufferTexture: public AbstractTexture {
@@ -89,7 +89,7 @@ class MAGNUM_GL_EXPORT BufferTexture: public AbstractTexture {
* @brief Max supported buffer texture size
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If @extension{ARB,texture_buffer_object} (part of
+ * OpenGL calls. If @gl_extension{ARB,texture_buffer_object} (part of
* OpenGL 3.1) is not available, returns @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_TEXTURE_BUFFER_SIZE}
*/
@@ -99,7 +99,7 @@ class MAGNUM_GL_EXPORT BufferTexture: public AbstractTexture {
* @brief Minimum required alignment for texture buffer offsets
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{ARB,texture_buffer_range}
+ * OpenGL calls. If extension @gl_extension{ARB,texture_buffer_range}
* (part of OpenGL 4.3) is not available, returns @cpp 1 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{TEXTURE_BUFFER_OFFSET_ALIGNMENT}
*/
@@ -123,7 +123,7 @@ class MAGNUM_GL_EXPORT BufferTexture: public AbstractTexture {
/**
* @brief Constructor
*
- * Creates new OpenGL texture object. If @extension{ARB,direct_state_access}
+ * Creates new OpenGL texture object. If @gl_extension{ARB,direct_state_access}
* (part of OpenGL 4.5) is not available, the texture is created on
* first use.
* @see @ref BufferTexture(NoCreateT), @ref wrap(),
@@ -158,7 +158,7 @@ class MAGNUM_GL_EXPORT BufferTexture: public AbstractTexture {
* @ref unbindImage(), @ref unbindImages(),
* @ref AbstractShaderProgram::maxImageUnits(),
* @fn_gl_keyword{BindImageTexture}
- * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
+ * @requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
* @requires_gles31 Shader image load/store is not available in OpenGL
* ES 3.0 and older.
* @requires_gles Shader image load/store is not available in WebGL.
@@ -175,8 +175,8 @@ class MAGNUM_GL_EXPORT BufferTexture: public AbstractTexture {
*
* Binds given buffer to this texture. The buffer itself can be then
* filled with data of proper format at any time using @ref Buffer "Buffer"'s
- * own data setting functions. If neither @extension{ARB,direct_state_access}
- * (part of OpenGL 4.5) nor @extension{EXT,direct_state_access} is
+ * own data setting functions. If neither @gl_extension{ARB,direct_state_access}
+ * (part of OpenGL 4.5) nor @gl_extension{EXT,direct_state_access} is
* available, the texture is bound before the operation (if not
* already).
* @see @ref maxSize(), @fn_gl2_keyword{TextureBuffer,TexBuffer},
@@ -196,15 +196,15 @@ class MAGNUM_GL_EXPORT BufferTexture: public AbstractTexture {
*
* Binds range of given buffer to this texture. The buffer itself can
* be then filled with data of proper format at any time using @ref Buffer "Buffer"'s
- * own data setting functions. If neither @extension{ARB,direct_state_access}
- * (part of OpenGL 4.5) nor @extension{EXT,direct_state_access} is
+ * own data setting functions. If neither @gl_extension{ARB,direct_state_access}
+ * (part of OpenGL 4.5) nor @gl_extension{EXT,direct_state_access} is
* available, the texture is bound before the operation (if not
* already).
* @see @ref maxSize(), @fn_gl2_keyword{TextureBufferRange,TexBufferRange},
* @fn_gl_extension_keyword{TextureBufferRange,EXT,direct_state_access},
* eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl_keyword{TexBufferRange}
- * @requires_gl43 Extension @extension{ARB,texture_buffer_range}
+ * @requires_gl43 Extension @gl_extension{ARB,texture_buffer_range}
*/
BufferTexture& setBuffer(BufferTextureFormat internalFormat, Buffer& buffer, GLintptr offset, GLsizeiptr size);
diff --git a/src/Magnum/GL/BufferTextureFormat.h b/src/Magnum/GL/BufferTextureFormat.h
index 8124040a6..4903b9ac4 100644
--- a/src/Magnum/GL/BufferTextureFormat.h
+++ b/src/Magnum/GL/BufferTextureFormat.h
@@ -41,10 +41,10 @@ namespace Magnum { namespace GL {
@see @ref BufferTexture
@m_enum_values_as_keywords
-@requires_gl31 Extension @extension{ARB,texture_buffer_object}
+@requires_gl31 Extension @gl_extension{ARB,texture_buffer_object}
@requires_gles30 Not defined in OpenGL ES 2.0.
-@requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- @extension{EXT,texture_buffer}
+@requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ @gl_extension{EXT,texture_buffer}
@requires_gles Texture buffers are not available in WebGL.
*/
enum class BufferTextureFormat: GLenum {
@@ -124,7 +124,7 @@ enum class BufferTextureFormat: GLenum {
/**
* RGB, each component non-normalized unsigned int.
- * @requires_gl40 Extension @extension{ARB,texture_buffer_object_rgb32}
+ * @requires_gl40 Extension @gl_extension{ARB,texture_buffer_object_rgb32}
*/
RGB32UI = GL_RGB32UI,
@@ -139,7 +139,7 @@ enum class BufferTextureFormat: GLenum {
/**
* RGB, each component non-normalized signed int.
- * @requires_gl40 Extension @extension{ARB,texture_buffer_object_rgb32}
+ * @requires_gl40 Extension @gl_extension{ARB,texture_buffer_object_rgb32}
*/
RGB32I = GL_RGB32I,
@@ -163,7 +163,7 @@ enum class BufferTextureFormat: GLenum {
/**
* RGB, each component float.
- * @requires_gl40 Extension @extension{ARB,texture_buffer_object_rgb32}
+ * @requires_gl40 Extension @gl_extension{ARB,texture_buffer_object_rgb32}
*/
RGB32F = GL_RGB32F,
diff --git a/src/Magnum/GL/Context.h b/src/Magnum/GL/Context.h
index 79338e0ec..cde0b36c7 100644
--- a/src/Magnum/GL/Context.h
+++ b/src/Magnum/GL/Context.h
@@ -151,9 +151,9 @@ class MAGNUM_GL_EXPORT Context {
enum class Flag: GLint {
/**
* Debug context
- * @requires_gl43 Extension @extension{KHR,debug}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,debug,debug}
+ * @requires_gl43 Extension @gl_extension{KHR,debug}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,debug,debug}
*/
#ifndef MAGNUM_TARGET_GLES2
Debug = GL_CONTEXT_FLAG_DEBUG_BIT,
@@ -163,8 +163,8 @@ class MAGNUM_GL_EXPORT Context {
/**
* Context without error reporting
- * @requires_gl46 Extension @extension{KHR,no_error}
- * @requires_es_extension Extension @extension2{KHR,no_error,no_error}
+ * @requires_gl46 Extension @gl_extension{KHR,no_error}
+ * @requires_es_extension Extension @gl_extension2{KHR,no_error,no_error}
*/
#ifndef MAGNUM_TARGET_GLES
NoError = GL_CONTEXT_FLAG_NO_ERROR_BIT,
@@ -175,10 +175,10 @@ class MAGNUM_GL_EXPORT Context {
#ifndef MAGNUM_TARGET_GLES2
/**
* Context with robust access
- * @requires_gl45 Extension @extension{KHR,robustness} or
- * @extension{ARB,robustness}
- * @requires_gles32 Extension @extension{KHR,robustness} or
- * @extension{EXT,robustness}
+ * @requires_gl45 Extension @gl_extension{KHR,robustness} or
+ * @gl_extension{ARB,robustness}
+ * @requires_gles32 Extension @gl_extension{KHR,robustness} or
+ * @gl_extension{EXT,robustness}
* @todo In ES2 available under glGetIntegerv(CONTEXT_ROBUST_ACCESS_EXT),
* how to make it compatible?
*/
diff --git a/src/Magnum/GL/CubeMapTexture.h b/src/Magnum/GL/CubeMapTexture.h
index dc62b93ec..0dee791e3 100644
--- a/src/Magnum/GL/CubeMapTexture.h
+++ b/src/Magnum/GL/CubeMapTexture.h
@@ -113,7 +113,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* @brief @copybrief Texture::compressedBlockSize()
*
* See @ref Texture::compressedBlockSize() for more information.
- * @requires_gl43 Extension @extension{ARB,internalformat_query2}
+ * @requires_gl43 Extension @gl_extension{ARB,internalformat_query2}
* @requires_gl Compressed texture queries are not available in OpenGL
* ES.
*/
@@ -125,7 +125,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* @brief @copybrief Texture::compressedBlockDataSize()
*
* See @ref Texture::compressedBlockDataSize() for more information.
- * @requires_gl43 Extension @extension{ARB,internalformat_query2}
+ * @requires_gl43 Extension @gl_extension{ARB,internalformat_query2}
* @requires_gl Compressed texture queries are not available in OpenGL
* ES.
* @see @ref compressedBlockSize(), @fn_gl_keyword{GetInternalformat}
@@ -154,7 +154,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
/**
* @brief Constructor
*
- * Creates new OpenGL texture object. If @extension{ARB,direct_state_access}
+ * Creates new OpenGL texture object. If @gl_extension{ARB,direct_state_access}
* (part of OpenGL 4.5) is not available, the texture is created on
* first use.
* @see @ref CubeMapTexture(NoCreateT), @ref wrap(),
@@ -192,7 +192,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* @ref bindImageLayered(), @ref unbindImage(), @ref unbindImages(),
* @ref AbstractShaderProgram::maxImageUnits(),
* @fn_gl_keyword{BindImageTexture}
- * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
+ * @requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
* @requires_gles31 Shader image load/store is not available in OpenGL
* ES 3.0 and older.
* @requires_gles Shader image load/store is not available in WebGL.
@@ -215,7 +215,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* @ref bindImage(), @ref unbindImage(), @ref unbindImages(),
* @ref AbstractShaderProgram::maxImageUnits(),
* @fn_gl_keyword{BindImageTexture}
- * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
+ * @requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
* @requires_gles31 Shader image load/store is not available in OpenGL
* ES 3.0 and older.
* @requires_gles Shader image load/store is not available in WebGL.
@@ -246,7 +246,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::setMaxLevel() for more information.
- * @requires_gles30 Extension @extension{APPLE,texture_max_level},
+ * @requires_gles30 Extension @gl_extension{APPLE,texture_max_level},
* otherwise the max level is always set to largest possible value
* in OpenGL ES 2.0.
* @requires_webgl20 Always set to largest possible value in WebGL 1.0.
@@ -359,9 +359,9 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
*
* See @ref Texture::setBorderColor(const Color4&) for more
* information.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,texture_border_clamp} or
- * @extension{NV,texture_border_clamp}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,texture_border_clamp} or
+ * @gl_extension{NV,texture_border_clamp}
* @requires_gles Border clamp is not available in WebGL.
*/
CubeMapTexture& setBorderColor(const Color4& color) {
@@ -376,10 +376,10 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
*
* See @ref Texture::setBorderColor(const Vector4ui&) for more
* information.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,texture_border_clamp}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,texture_border_clamp}
* @requires_gles Border clamp is not available in WebGL.
*/
CubeMapTexture& setBorderColor(const Vector4ui& color) {
@@ -388,10 +388,10 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
}
/** @overload
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,texture_border_clamp}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,texture_border_clamp}
* @requires_gles Border clamp is not available in WebGL.
*/
CubeMapTexture& setBorderColor(const Vector4i& color) {
@@ -418,11 +418,11 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::setSRGBDecode() for more information.
- * @requires_extension Extension @extension{EXT,texture_sRGB_decode}
+ * @requires_extension Extension @gl_extension{EXT,texture_sRGB_decode}
* @requires_es_extension OpenGL ES 3.0 or extension
- * @extension{EXT,sRGB} and
- * @extension{ANDROID,extension_pack_es31a} /
- * @extension2{EXT,texture_sRGB_decode,texture_sRGB_decode}
+ * @gl_extension{EXT,sRGB} and
+ * @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{EXT,texture_sRGB_decode,texture_sRGB_decode}
* @requires_gles SRGB decode is not available in WebGL.
*/
CubeMapTexture& setSRGBDecode(bool decode) {
@@ -437,7 +437,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::setSwizzle() for more information.
- * @requires_gl33 Extension @extension{ARB,texture_swizzle}
+ * @requires_gl33 Extension @gl_extension{ARB,texture_swizzle}
* @requires_gles30 Texture swizzle is not available in OpenGL ES 2.0.
* @requires_gles Texture swizzle is not available in WebGL.
*/
@@ -453,8 +453,8 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::setCompareMode() for more information.
- * @requires_gles30 Extension @extension{EXT,shadow_samplers} and
- * @extension{NV,shadow_samplers_cube} in OpenGL ES 2.0.
+ * @requires_gles30 Extension @gl_extension{EXT,shadow_samplers} and
+ * @gl_extension{NV,shadow_samplers_cube} in OpenGL ES 2.0.
* @requires_webgl20 Depth texture comparison is not available in WebGL
* 1.0.
*/
@@ -468,8 +468,8 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::setCompareFunction() for more information.
- * @requires_gles30 Extension @extension{EXT,shadow_samplers} and
- * @extension{NV,shadow_samplers_cube} in OpenGL ES 2.0.
+ * @requires_gles30 Extension @gl_extension{EXT,shadow_samplers} and
+ * @gl_extension{NV,shadow_samplers_cube} in OpenGL ES 2.0.
* @requires_webgl20 Depth texture comparison is not available in WebGL
* 1.0.
*/
@@ -485,7 +485,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::setDepthStencilMode() for more information.
- * @requires_gl43 Extension @extension{ARB,stencil_texturing}
+ * @requires_gl43 Extension @gl_extension{ARB,stencil_texturing}
* @requires_gles31 Stencil texturing is not available in OpenGL ES 3.0
* and older.
* @requires_gles Stencil texturing is not available in WebGL.
@@ -512,7 +512,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
/**
* @brief @copybrief Texture::imageSize()
*
- * If @extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
+ * If @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
* available, it is assumed that faces have the same size and just the
* size of @ref Coordinate::PositiveX face is queried. See
* @ref Texture::imageSize() for more information.
@@ -537,7 +537,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* @see @fn_gl2{GetTextureLevelParameter,GetTexLevelParameter} with
* @def_gl{TEXTURE_WIDTH}, @def_gl{TEXTURE_HEIGHT}, then
* @fn_gl{PixelStore}, then @fn_gl2_keyword{GetTextureImage,GetTexImage}
- * @requires_gl45 Extension @extension{ARB,direct_state_access}
+ * @requires_gl45 Extension @gl_extension{ARB,direct_state_access}
* @requires_gl Texture image queries are not available in OpenGL ES or
* WebGL. See @ref Framebuffer::read() or @ref DebugTools::textureSubImage()
* for possible workarounds.
@@ -558,7 +558,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* See @ref image(Int, Image3D&) for more information. The storage is
* not reallocated if it is large enough to contain the new data, which
* means that @p usage might get ignored.
- * @requires_gl45 Extension @extension{ARB,direct_state_access}
+ * @requires_gl45 Extension @gl_extension{ARB,direct_state_access}
* @requires_gl Texture image queries are not available in OpenGL ES or
* WebGL. See @ref Framebuffer::read() or @ref DebugTools::textureSubImage()
* for possible workarounds.
@@ -584,9 +584,9 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* @def_gl{TEXTURE_INTERNAL_FORMAT}, @def_gl{TEXTURE_WIDTH},
* @def_gl{TEXTURE_HEIGHT}, then
* @fn_gl2_keyword{GetCompressedTextureImage,GetCompressedTexImage}
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
- * @requires_gl45 Extension @extension{ARB,direct_state_access}
+ * @requires_gl45 Extension @gl_extension{ARB,direct_state_access}
* @requires_gl Texture image queries are not available in OpenGL ES or
* WebGL. See @ref Framebuffer::read() or @ref DebugTools::textureSubImage()
* for possible workarounds.
@@ -607,8 +607,8 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* See @ref compressedImage(Int, CompressedImage3D&) for more
* information. The storage is not reallocated if it is large enough to
* contain the new data, which means that @p usage might get ignored.
- * @requires_gl45 Extension @extension{ARB,direct_state_access}
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl45 Extension @gl_extension{ARB,direct_state_access}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Texture image queries are not available in OpenGL ES or
* WebGL. See @ref Framebuffer::read() or @ref DebugTools::textureSubImage()
@@ -632,14 +632,14 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* @ref imageSize(). The storage is not reallocated if it is large
* enough to contain the new data.
*
- * If neither @extension{ARB,get_texture_sub_image} (part of OpenGL
- * 4.5) nor @extension{EXT,direct_state_access} is available, the
+ * If neither @gl_extension{ARB,get_texture_sub_image} (part of OpenGL
+ * 4.5) nor @gl_extension{EXT,direct_state_access} is available, the
* texture is bound before the operation (if not already). If either
- * @extension{ARB,get_texture_sub_image} or @extension{ARB,robustness}
+ * @gl_extension{ARB,get_texture_sub_image} or @gl_extension{ARB,robustness}
* is available, the operation is protected from buffer overflow.
- * However, if @extension{ARB,get_texture_sub_image} is not available
- * and both @extension{EXT,direct_state_access} and
- * @extension{ARB,robustness} are available, the robust operation is
+ * However, if @gl_extension{ARB,get_texture_sub_image} is not available
+ * and both @gl_extension{EXT,direct_state_access} and
+ * @gl_extension{ARB,robustness} are available, the robust operation is
* preferred over DSA.
* @see @fn_gl2{GetTextureLevelParameter,GetTexLevelParameter},
* @fn_gl_extension{GetTextureLevelParameter,EXT,direct_state_access},
@@ -691,14 +691,14 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* size is taken using @ref imageSize(). The storage is not reallocated
* if it is large enough to contain the new data.
*
- * If neither @extension{ARB,get_texture_sub_image} (part of OpenGL
- * 4.5) nor @extension{EXT,direct_state_access} is available, the
+ * If neither @gl_extension{ARB,get_texture_sub_image} (part of OpenGL
+ * 4.5) nor @gl_extension{EXT,direct_state_access} is available, the
* texture is bound before the operation (if not already). If either
- * @extension{ARB,get_texture_sub_image} or @extension{ARB,robustness}
+ * @gl_extension{ARB,get_texture_sub_image} or @gl_extension{ARB,robustness}
* is available, the operation is protected from buffer overflow.
- * However, if @extension{ARB,get_texture_sub_image} is not available
- * and both @extension{EXT,direct_state_access} and
- * @extension{ARB,robustness} are available, the robust operation is
+ * However, if @gl_extension{ARB,get_texture_sub_image} is not available
+ * and both @gl_extension{EXT,direct_state_access} and
+ * @gl_extension{ARB,robustness} are available, the robust operation is
* preferred over DSA.
* @see @fn_gl2{GetTextureLevelParameter,GetTexLevelParameter},
* @fn_gl_extension{GetTextureLevelParameter,EXT,direct_state_access},
@@ -710,7 +710,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* @fn_gl_extension_keyword{GetnCompressedTexImage,ARB,robustness},
* @fn_gl_extension_keyword{GetCompressedTextureImage,EXT,direct_state_access},
* eventually @fn_gl_keyword{GetCompressedTexImage}
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Texture image queries are not available in OpenGL ES or
* WebGL. See @ref Framebuffer::read() or @ref DebugTools::textureSubImage()
@@ -733,7 +733,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* for more information. The storage is not reallocated if it is large
* enough to contain the new data, which means that @p usage might get
* ignored.
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Texture image queries are not available in OpenGL ES or
* WebGL. See @ref Framebuffer::read() or @ref DebugTools::textureSubImage()
@@ -754,7 +754,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
*
* See @ref Texture::subImage(Int, const RangeTypeFor&, Image&)
* for more information.
- * @requires_gl45 Extension @extension{ARB,get_texture_sub_image}
+ * @requires_gl45 Extension @gl_extension{ARB,get_texture_sub_image}
* @requires_gl Texture image queries are not available in OpenGL ES or
* WebGL. See @ref Framebuffer::read() or @ref DebugTools::textureSubImage()
* for possible workarounds.
@@ -776,7 +776,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
*
* See @ref Texture::subImage(Int, const RangeTypeFor&, BufferImage&, BufferUsage)
* for more information.
- * @requires_gl45 Extension @extension{ARB,get_texture_sub_image}
+ * @requires_gl45 Extension @gl_extension{ARB,get_texture_sub_image}
* @requires_gl Texture image queries are not available in OpenGL ES or
* WebGL. See @ref Framebuffer::read() or @ref DebugTools::textureSubImage()
* for possible workarounds.
@@ -798,10 +798,10 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
*
* See @ref Texture::compressedSubImage(Int, const RangeTypeFor&, CompressedImage&)
* for more information.
- * @requires_gl45 Extension @extension{ARB,get_texture_sub_image}
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl45 Extension @gl_extension{ARB,get_texture_sub_image}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
- * @requires_gl43 Extension @extension{ARB,internalformat_query2} if
+ * @requires_gl43 Extension @gl_extension{ARB,internalformat_query2} if
* @ref CompressedPixelStorage::compressedBlockSize() and
* @ref CompressedPixelStorage::compressedBlockDataSize() are not
* set to non-zero values
@@ -826,10 +826,10 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
*
* See @ref Texture::compressedSubImage(Int, const RangeTypeFor&, CompressedBufferImage&, BufferUsage)
* for more information.
- * @requires_gl45 Extension @extension{ARB,get_texture_sub_image}
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl45 Extension @gl_extension{ARB,get_texture_sub_image}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
- * @requires_gl43 Extension @extension{ARB,internalformat_query2} if
+ * @requires_gl43 Extension @gl_extension{ARB,internalformat_query2} if
* @ref CompressedPixelStorage::compressedBlockSize() and
* @ref CompressedPixelStorage::compressedBlockDataSize() are not
* set to non-zero values
@@ -856,8 +856,8 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
*
* See @ref Texture::setImage() for more information.
* @see @ref maxSize()
- * @requires_gles30 Extension @extension{EXT,unpack_subimage}/
- * @extension{NV,pack_subimage} in OpenGL ES 2.0 if
+ * @requires_gles30 Extension @gl_extension{EXT,unpack_subimage}/
+ * @gl_extension{NV,pack_subimage} in OpenGL ES 2.0 if
* @ref PixelStorage::rowLength() is set to a non-zero value.
* @requires_webgl20 Non-zero @ref PixelStorage::rowLength() is not
* supported in WebGL 1.0.
@@ -902,7 +902,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
*
* See @ref Texture::setCompressedImage() for more information.
* @see @ref maxSize()
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES and WebGL.
@@ -916,7 +916,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
#ifndef MAGNUM_TARGET_GLES2
/** @overload
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES and WebGL.
@@ -933,7 +933,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
}
/** @overload
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES and WebGL.
@@ -959,21 +959,21 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* @see @ref setStorage(), @fn_gl2{TextureSubImage3D,TexSubImage3D}
- * @requires_gl45 Extension @extension{ARB,direct_state_access}
+ * @requires_gl45 Extension @gl_extension{ARB,direct_state_access}
* @requires_gl In OpenGL ES and WebGL you need to set image for each
* face separately.
*/
CubeMapTexture& setSubImage(Int level, const Vector3i& offset, const ImageView3D& image);
/** @overload
- * @requires_gl45 Extension @extension{ARB,direct_state_access}
+ * @requires_gl45 Extension @gl_extension{ARB,direct_state_access}
* @requires_gl In OpenGL ES and WebGL you need to set image for each
* face separately.
*/
CubeMapTexture& setSubImage(Int level, const Vector3i& offset, BufferImage3D& image);
/** @overload
- * @requires_gl45 Extension @extension{ARB,direct_state_access}
+ * @requires_gl45 Extension @gl_extension{ARB,direct_state_access}
* @requires_gl In OpenGL ES and WebGL you need to set image for each
* face separately.
*/
@@ -990,8 +990,8 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* @see @ref setStorage(), @fn_gl2{CompressedTextureSubImage3D,CompressedTexSubImage3D}
- * @requires_gl45 Extension @extension{ARB,direct_state_access}
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl45 Extension @gl_extension{ARB,direct_state_access}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl In OpenGL ES and WebGL you need to set image for each
* face separately.
@@ -999,8 +999,8 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
CubeMapTexture& setCompressedSubImage(Int level, const Vector3i& offset, const CompressedImageView3D& image);
/** @overload
- * @requires_gl45 Extension @extension{ARB,direct_state_access}
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl45 Extension @gl_extension{ARB,direct_state_access}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl In OpenGL ES and WebGL you need to set image for each
* face separately.
@@ -1008,8 +1008,8 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
CubeMapTexture& setCompressedSubImage(Int level, const Vector3i& offset, CompressedBufferImage3D& image);
/** @overload
- * @requires_gl45 Extension @extension{ARB,direct_state_access}
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl45 Extension @gl_extension{ARB,direct_state_access}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl In OpenGL ES and WebGL you need to set image for each
* face separately.
@@ -1024,8 +1024,8 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::setSubImage() for more information.
- * @requires_gles30 Extension @extension{EXT,unpack_subimage}/
- * @extension{NV,pack_subimage} in OpenGL ES 2.0 if
+ * @requires_gles30 Extension @gl_extension{EXT,unpack_subimage}/
+ * @gl_extension{NV,pack_subimage} in OpenGL ES 2.0 if
* @ref PixelStorage::rowLength() is set to a non-zero value.
* @requires_webgl20 Non-zero @ref PixelStorage::rowLength() is not
* supported in WebGL 1.0.
@@ -1057,7 +1057,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::setCompressedSubImage() for more information.
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES and WebGL.
@@ -1066,7 +1066,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
#ifndef MAGNUM_TARGET_GLES2
/** @overload
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES and WebGL.
@@ -1078,7 +1078,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
CubeMapTexture& setCompressedSubImage(CubeMapCoordinate coordinate, Int level, const Vector2i& offset, CompressedBufferImage2D& image);
/** @overload
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES and WebGL.
@@ -1097,7 +1097,7 @@ class MAGNUM_GL_EXPORT CubeMapTexture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::generateMipmap() for more information.
- * @requires_gl30 Extension @extension{ARB,framebuffer_object}
+ * @requires_gl30 Extension @gl_extension{ARB,framebuffer_object}
*/
CubeMapTexture& generateMipmap() {
AbstractTexture::generateMipmap();
diff --git a/src/Magnum/GL/CubeMapTextureArray.h b/src/Magnum/GL/CubeMapTextureArray.h
index d402a7bc1..dcb61c5c4 100644
--- a/src/Magnum/GL/CubeMapTextureArray.h
+++ b/src/Magnum/GL/CubeMapTextureArray.h
@@ -68,10 +68,10 @@ more information about usage in shaders.
@ref Texture, @ref TextureArray, @ref RectangleTexture, @ref BufferTexture,
@ref MultisampleTexture
@m_keywords{GL_TEXTURE_CUBE_MAP_ARRAY}
-@requires_gl40 Extension @extension{ARB,texture_cube_map_array}
+@requires_gl40 Extension @gl_extension{ARB,texture_cube_map_array}
@requires_gles30 Not defined in OpenGL ES 2.0.
-@requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- @extension{EXT,texture_cube_map_array}
+@requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ @gl_extension{EXT,texture_cube_map_array}
@requires_gles Cube map texture arrays are not available in WebGL.
*/
class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
@@ -80,7 +80,7 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
* @brief Max supported size of one side of cube map texture array
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If @extension{ARB,texture_cube_map_array} (part of
+ * OpenGL calls. If @gl_extension{ARB,texture_cube_map_array} (part of
* OpenGL 4.0) is not available, returns zero vector.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_CUBE_MAP_TEXTURE_SIZE} and
* @def_gl_keyword{MAX_ARRAY_TEXTURE_LAYERS}
@@ -92,7 +92,7 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
* @brief @copybrief Texture::compressedBlockSize()
*
* See @ref Texture::compressedBlockSize() for more information.
- * @requires_gl43 Extension @extension{ARB,internalformat_query2}
+ * @requires_gl43 Extension @gl_extension{ARB,internalformat_query2}
* @requires_gl Compressed texture queries are not available in OpenGL
* ES.
*/
@@ -104,7 +104,7 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
* @brief @copybrief Texture::compressedBlockDataSize()
*
* See @ref Texture::compressedBlockDataSize() for more information.
- * @requires_gl43 Extension @extension{ARB,internalformat_query2}
+ * @requires_gl43 Extension @gl_extension{ARB,internalformat_query2}
* @requires_gl Compressed texture queries are not available in OpenGL
* ES.
* @see @ref compressedBlockSize(), @fn_gl_keyword{GetInternalformat}
@@ -133,7 +133,7 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
/**
* @brief Constructor
*
- * Creates new OpenGL texture object. If @extension{ARB,direct_state_access}
+ * Creates new OpenGL texture object. If @gl_extension{ARB,direct_state_access}
* (part of OpenGL 4.5) is not available, the texture is created on
* first use.
* @see @ref CubeMapTextureArray(NoCreateT), @ref wrap(),
@@ -172,7 +172,7 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
* @ref bindImageLayered(), @ref unbindImage(), @ref unbindImages(),
* @ref AbstractShaderProgram::maxImageUnits(),
* @fn_gl{BindImageTexture}
- * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
+ * @requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
* @requires_gles31 Shader image load/store is not available in OpenGL
* ES 3.0 and older.
*/
@@ -194,7 +194,7 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
* @ref bindImage(), @ref unbindImage(), @ref unbindImages(),
* @ref AbstractShaderProgram::maxImageUnits(),
* @fn_gl{BindImageTexture}
- * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
+ * @requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
* @requires_gles31 Shader image load/store is not available in OpenGL
* ES 3.0 and older.
*/
@@ -315,9 +315,9 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
*
* See @ref Texture::setBorderColor(const Color4&) for more
* information.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,texture_border_clamp} or
- * @extension{NV,texture_border_clamp}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,texture_border_clamp} or
+ * @gl_extension{NV,texture_border_clamp}
*/
CubeMapTextureArray& setBorderColor(const Color4& color) {
AbstractTexture::setBorderColor(color);
@@ -330,9 +330,9 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
*
* See @ref Texture::setBorderColor(const Vector4ui&) for more
* information.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,texture_border_clamp}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,texture_border_clamp}
*/
CubeMapTextureArray& setBorderColor(const Vector4ui& color) {
AbstractTexture::setBorderColor(color);
@@ -340,9 +340,9 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
}
/** @overload
- * @requires_gl30 Extension @extension{EXT,texture_integer}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,texture_border_clamp}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,texture_border_clamp}
*/
CubeMapTextureArray& setBorderColor(const Vector4i& color) {
AbstractTexture::setBorderColor(color);
@@ -365,9 +365,9 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::setSRGBDecode() for more information.
- * @requires_extension Extension @extension{EXT,texture_sRGB_decode}
- * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{EXT,texture_sRGB_decode,texture_sRGB_decode}
+ * @requires_extension Extension @gl_extension{EXT,texture_sRGB_decode}
+ * @requires_es_extension Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{EXT,texture_sRGB_decode,texture_sRGB_decode}
*/
CubeMapTextureArray& setSRGBDecode(bool decode) {
AbstractTexture::setSRGBDecode(decode);
@@ -379,7 +379,7 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::setSwizzle() for more information.
- * @requires_gl33 Extension @extension{ARB,texture_swizzle}
+ * @requires_gl33 Extension @gl_extension{ARB,texture_swizzle}
*/
template CubeMapTextureArray& setSwizzle() {
AbstractTexture::setSwizzle();
@@ -413,7 +413,7 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::setDepthStencilMode() for more information.
- * @requires_gl43 Extension @extension{ARB,stencil_texturing}
+ * @requires_gl43 Extension @gl_extension{ARB,stencil_texturing}
*/
CubeMapTextureArray& setDepthStencilMode(SamplerDepthStencilMode mode) {
AbstractTexture::setDepthStencilMode(mode);
@@ -490,7 +490,7 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
*
* See @ref Texture::compressedImage(Int, CompressedImage&) for more
* information.
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Texture image queries are not available in OpenGL ES.
* See @ref Framebuffer::read() or @ref DebugTools::textureSubImage()
@@ -513,7 +513,7 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
*
* See @ref Texture::compressedImage(Int, CompressedBufferImage&, BufferUsage)
* for more information.
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Texture image queries are not available in OpenGL ES.
* See @ref Framebuffer::read() or @ref DebugTools::textureSubImage()
@@ -536,7 +536,7 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
*
* See @ref Texture::subImage(Int, const RangeTypeFor&, Image&)
* for more information.
- * @requires_gl45 Extension @extension{ARB,get_texture_sub_image}
+ * @requires_gl45 Extension @gl_extension{ARB,get_texture_sub_image}
* @requires_gl Texture image queries are not available in OpenGL ES.
* See @ref Framebuffer::read() or @ref DebugTools::textureSubImage()
* for possible workarounds.
@@ -558,7 +558,7 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
*
* See @ref Texture::subImage(Int, const RangeTypeFor&, BufferImage&, BufferUsage)
* for more information.
- * @requires_gl45 Extension @extension{ARB,get_texture_sub_image}
+ * @requires_gl45 Extension @gl_extension{ARB,get_texture_sub_image}
* @requires_gl Texture image queries are not available in OpenGL ES.
* See @ref Framebuffer::read() or @ref DebugTools::textureSubImage()
* for possible workarounds.
@@ -580,10 +580,10 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
*
* See @ref Texture::compressedSubImage(Int, const RangeTypeFor&, CompressedImage&)
* for more information.
- * @requires_gl45 Extension @extension{ARB,get_texture_sub_image}
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl45 Extension @gl_extension{ARB,get_texture_sub_image}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
- * @requires_gl43 Extension @extension{ARB,internalformat_query2} if
+ * @requires_gl43 Extension @gl_extension{ARB,internalformat_query2} if
* @ref CompressedPixelStorage::compressedBlockSize() and
* @ref CompressedPixelStorage::compressedBlockDataSize() are not
* set to non-zero values
@@ -608,10 +608,10 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
*
* See @ref Texture::compressedSubImage(Int, const RangeTypeFor&, CompressedBufferImage&, BufferUsage)
* for more information.
- * @requires_gl45 Extension @extension{ARB,get_texture_sub_image}
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl45 Extension @gl_extension{ARB,get_texture_sub_image}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
- * @requires_gl43 Extension @extension{ARB,internalformat_query2} if
+ * @requires_gl43 Extension @gl_extension{ARB,internalformat_query2} if
* @ref CompressedPixelStorage::compressedBlockSize() and
* @ref CompressedPixelStorage::compressedBlockDataSize() are not
* set to non-zero values
@@ -679,7 +679,7 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
*
* See @ref Texture::setCompressedImage() for more information.
* @see @ref maxSize()
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES.
@@ -743,7 +743,7 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
* -Z).
*
* See @ref Texture::setCompressedSubImage() for more information.
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES.
@@ -754,7 +754,7 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
}
/** @overload
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES.
@@ -765,7 +765,7 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
}
/** @overload
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES.
@@ -779,7 +779,7 @@ class MAGNUM_GL_EXPORT CubeMapTextureArray: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::generateMipmap() for more information.
- * @requires_gl30 Extension @extension{ARB,framebuffer_object}
+ * @requires_gl30 Extension @gl_extension{ARB,framebuffer_object}
*/
CubeMapTextureArray& generateMipmap() {
AbstractTexture::generateMipmap();
diff --git a/src/Magnum/GL/DebugOutput.h b/src/Magnum/GL/DebugOutput.h
index 2ee407a53..f0b61a977 100644
--- a/src/Magnum/GL/DebugOutput.h
+++ b/src/Magnum/GL/DebugOutput.h
@@ -55,12 +55,12 @@ stream in various graphics debuggers, such as ApiTrace or gDEBugger.
@section GL-Magnum-DebugOutput-usage Basic usage
Support for debug output is provided by OpenGL 4.3 / OpenGL ES 3.2 or
-@extension{KHR,debug} (desktop/ES extension, covered also by
-@extension{ANDROID,extension_pack_es31a}). Subset of the functionality is
-provided also by @extension{EXT,debug_marker} (desktop/ES extensions) or
-@extension{GREMEDY,string_marker} (desktop only extension).
+@gl_extension{KHR,debug} (desktop/ES extension, covered also by
+@gl_extension{ANDROID,extension_pack_es31a}). Subset of the functionality is
+provided also by @gl_extension{EXT,debug_marker} (desktop/ES extensions) or
+@gl_extension{GREMEDY,string_marker} (desktop only extension).
-With OpenGL 4.3 / OpenGL ES 3.2 or @extension{KHR,debug} desktop/ES extension,
+With OpenGL 4.3 / OpenGL ES 3.2 or @gl_extension{KHR,debug} desktop/ES extension,
the debug output needs to be enabled first. It can be enabled globally using
@ref Platform::Sdl2Application::GLConfiguration::Flag::Debug "Platform::*Application::Configuration::Flag::Debug"
when creating context or only for some portions of the code using
@@ -86,12 +86,12 @@ Debug output: application marker (1337): Rendering transparent mesh
Debug output: application debug group leave (42): Scene rendering
@endcode
-If only @extension{EXT,debug_marker} or @extension{GREMEDY,string_marker} are
+If only @gl_extension{EXT,debug_marker} or @gl_extension{GREMEDY,string_marker} are
supported, only user-inserted messages and debug groups are supported and they
can be seen only through graphics debugger.
-If OpenGL 4.3 is not supported and neither @extension{KHR,debug} nor
-@extension{EXT,debug_marker} nor @extension{GREMEDY,string_marker} are
+If OpenGL 4.3 is not supported and neither @gl_extension{KHR,debug} nor
+@gl_extension{EXT,debug_marker} nor @gl_extension{GREMEDY,string_marker} are
available, all the functions are essentially a no-op.
Besides inserting messages into GL command stream you can also annotate OpenGL
@@ -282,8 +282,8 @@ class MAGNUM_GL_EXPORT DebugOutput {
*
* The result is cached, repeated queries don't result in repeated
* OpenGL calls. If OpenGL 4.3 / OpenGL ES 3.2 is not supported and
- * @extension{KHR,debug} desktop or ES extension (covered also by
- * @extension{ANDROID,extension_pack_es31a}) is not available, returns
+ * @gl_extension{KHR,debug} desktop or ES extension (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) is not available, returns
* @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_DEBUG_LOGGED_MESSAGES}
*/
@@ -294,8 +294,8 @@ class MAGNUM_GL_EXPORT DebugOutput {
*
* The result is cached, repeated queries don't result in repeated
* OpenGL calls. If OpenGL 4.3 / OpenGL ES 3.2 is not supported and
- * @extension{KHR,debug} desktop or ES extension (covered also by
- * @extension{ANDROID,extension_pack_es31a}) is not available, returns
+ * @gl_extension{KHR,debug} desktop or ES extension (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) is not available, returns
* @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_DEBUG_MESSAGE_LENGTH}
*/
@@ -310,9 +310,9 @@ class MAGNUM_GL_EXPORT DebugOutput {
* set in parent debug group. See @ref DebugGroup documentation
* for more information.
*
- * If OpenGL 4.3 / OpenGL ES 3.2 is not supported and @extension{KHR,debug}
+ * If OpenGL 4.3 / OpenGL ES 3.2 is not supported and @gl_extension{KHR,debug}
* desktop or ES extension (covered also by
- * @extension{ANDROID,extension_pack_es31a}) is not available, this
+ * @gl_extension{ANDROID,extension_pack_es31a}) is not available, this
* function does nothing.
* @see @ref Renderer::Feature::DebugOutput,
* @fn_gl_keyword{DebugMessageControl}
@@ -366,8 +366,8 @@ class MAGNUM_GL_EXPORT DebugOutput {
*
* The messages are sent to the callback only if
* @ref Renderer::Feature::DebugOutput is enabled. If OpenGL 4.3 /
- * OpenGL ES 3.2 is not supported and @extension{KHR,debug} desktop or
- * ES extension (covered also by @extension{ANDROID,extension_pack_es31a})
+ * OpenGL ES 3.2 is not supported and @gl_extension{KHR,debug} desktop or
+ * ES extension (covered also by @gl_extension{ANDROID,extension_pack_es31a})
* is not available, this function does nothing.
* @see @ref setDefaultCallback(),
* @ref Renderer::Feature::DebugOutputSynchronous,
@@ -432,8 +432,8 @@ gDEBugger.
See @ref DebugOutput for introduction.
-If OpenGL 4.3 / OpenGL ES 3.2 is supported or @extension{KHR,debug} desktop or
-ES extension (covered also by @extension{ANDROID,extension_pack_es31a}) is
+If OpenGL 4.3 / OpenGL ES 3.2 is supported or @gl_extension{KHR,debug} desktop or
+ES extension (covered also by @gl_extension{ANDROID,extension_pack_es31a}) is
available and default debug output callback is enabled for given kind of
messages, the inserted message will be printed on standard output in the
following form:
@@ -446,11 +446,11 @@ Debug output: application marker (1337): Hello from OpenGL command stream!
@endcode
-If only @extension{EXT,debug_marker} or @extension{GREMEDY,string_marker} are
+If only @gl_extension{EXT,debug_marker} or @gl_extension{GREMEDY,string_marker} are
available, the message can be seen only through graphics debugger.
-If OpenGL 4.3 is not supported and neither @extension{KHR,debug} nor
-@extension{EXT,debug_marker} nor @extension{GREMEDY,string_marker} are
+If OpenGL 4.3 is not supported and neither @gl_extension{KHR,debug} nor
+@gl_extension{EXT,debug_marker} nor @gl_extension{GREMEDY,string_marker} are
available, the function is essentially a no-op.
@section GL-DebugMessage-performance-notes Performance notes
@@ -555,13 +555,13 @@ class MAGNUM_GL_EXPORT DebugMessage {
* @param string The actual message
*
* If OpenGL 4.3 / OpenGL ES 3.2 is not supported and neither
- * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
- * nor @extension{EXT,debug_marker} (desktop or ES extensions) nor
- * @extension{GREMEDY,string_marker} (desktop only extension) are
+ * @gl_extension{KHR,debug} (covered also by @gl_extension{ANDROID,extension_pack_es31a})
+ * nor @gl_extension{EXT,debug_marker} (desktop or ES extensions) nor
+ * @gl_extension{GREMEDY,string_marker} (desktop only extension) are
* available, this function does nothing.
*
- * If @extension{KHR,debug} is not available and only @extension{EXT,debug_marker}
- * or @extension{GREMEDY,string_marker} are available, only @p string
+ * If @gl_extension{KHR,debug} is not available and only @gl_extension{EXT,debug_marker}
+ * or @gl_extension{GREMEDY,string_marker} are available, only @p string
* is used and all other parameters are ignored.
* @see @ref DebugOutput::maxMessageLength(),
* @fn_gl_keyword{DebugMessageInsert},
@@ -621,8 +621,8 @@ and @ref pop() manually:
@snippet MagnumGL.cpp DebugGroup-usage2
-If OpenGL 4.3 / OpenGL ES 3.2 is supported or @extension{KHR,debug} desktop or
-ES extension (covered also by @extension{ANDROID,extension_pack_es31a}) is
+If OpenGL 4.3 / OpenGL ES 3.2 is supported or @gl_extension{KHR,debug} desktop or
+ES extension (covered also by @gl_extension{ANDROID,extension_pack_es31a}) is
available and the default debug output callback is enabled for these kinds of
messages, the group entering and leaving will be printed on standard output in
the following form:
@@ -632,11 +632,11 @@ Debug output: application debug group enter (42): Scene rendering
Debug output: application debug group leave (42): Scene rendering
@endcode
-If only @extension{EXT,debug_marker} is available, the group can be seen only
+If only @gl_extension{EXT,debug_marker} is available, the group can be seen only
through graphics debugger.
-If OpenGL 4.3 / OpenGL ES 3.2 is not supported and neither @extension{KHR,debug}
-nor @extension{EXT,debug_marker} are available, the functions are essentially a
+If OpenGL 4.3 / OpenGL ES 3.2 is not supported and neither @gl_extension{KHR,debug}
+nor @gl_extension{EXT,debug_marker} are available, the functions are essentially a
no-op.
@attention To avoid accidental debug group stack overflow/underflow, you cannot
@@ -695,8 +695,8 @@ class MAGNUM_GL_EXPORT DebugGroup {
*
* The result is cached, repeated queries don't result in repeated
* OpenGL calls. If OpenGL 4.3 / OpenGL ES 3.2 is not supported and
- * @extension{KHR,debug} desktop or ES extension (covered also by
- * @extension{ANDROID,extension_pack_es31a}) is not available, returns
+ * @gl_extension{KHR,debug} desktop or ES extension (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) is not available, returns
* `0`.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_DEBUG_GROUP_STACK_DEPTH}
*/
@@ -740,10 +740,10 @@ class MAGNUM_GL_EXPORT DebugGroup {
* @ref DebugOutput::Severity::Notification.
*
* If OpenGL 4.3 / OpenGL ES 3.2 is not supported and neither
- * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
- * nor @extension{EXT,debug_marker} is available, this function does
- * nothing. If @extension{KHR,debug} is not available and only
- * @extension{EXT,debug_marker} is available, only @p message is used
+ * @gl_extension{KHR,debug} (covered also by @gl_extension{ANDROID,extension_pack_es31a})
+ * nor @gl_extension{EXT,debug_marker} is available, this function does
+ * nothing. If @gl_extension{KHR,debug} is not available and only
+ * @gl_extension{EXT,debug_marker} is available, only @p message is used
* and all other parameters are ignored.
* @see @ref pop(), @ref maxStackDepth(), @ref DebugOutput::maxMessageLength(),
* @ref Renderer::Error::StackOverflow, @fn_gl_keyword{PushDebugGroup}
@@ -769,8 +769,8 @@ class MAGNUM_GL_EXPORT DebugGroup {
* @ref DebugOutput::Severity::Notification.
*
* If OpenGL 4.3 / OpenGL ES 3.2 is not supported and neither
- * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
- * nor @extension{EXT,debug_marker} is available, this function does
+ * @gl_extension{KHR,debug} (covered also by @gl_extension{ANDROID,extension_pack_es31a})
+ * nor @gl_extension{EXT,debug_marker} is available, this function does
* nothing.
* @see @ref push(), @ref Renderer::Error::StackUnderflow,
* @fn_gl_keyword{PopDebugGroup} or
diff --git a/src/Magnum/GL/DefaultFramebuffer.h b/src/Magnum/GL/DefaultFramebuffer.h
index e698bedb2..9630b6cf3 100644
--- a/src/Magnum/GL/DefaultFramebuffer.h
+++ b/src/Magnum/GL/DefaultFramebuffer.h
@@ -66,8 +66,8 @@ for more involved usage, usage of non-default or multiple framebuffers.
See also @ref GL-AbstractFramebuffer-performance-optimization "relevant section in AbstractFramebuffer".
-If either @extension{ARB,direct_state_access} (part of OpenGL 4.5) or
-@extension{EXT,direct_state_access} desktop extension is available, functions
+If either @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) or
+@gl_extension{EXT,direct_state_access} desktop extension is available, functions
@ref checkStatus(), @ref mapForDraw(), @ref mapForRead() and @ref invalidate()
use DSA to avoid unnecessary calls to @fn_gl{BindFramebuffer}. See their
respective documentation for more information.
@@ -81,7 +81,7 @@ class MAGNUM_GL_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
*
* @see @ref checkStatus()
* @m_enum_values_as_keywords
- * @requires_gl30 Extension @extension{ARB,framebuffer_object}
+ * @requires_gl30 Extension @gl_extension{ARB,framebuffer_object}
*/
enum class Status: GLenum {
/** The framebuffer is complete */
@@ -90,7 +90,7 @@ class MAGNUM_GL_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
#ifndef MAGNUM_TARGET_WEBGL
/**
* The default framebuffer does not exist.
- * @requires_gles30 Extension @extension{OES,surfaceless_context}
+ * @requires_gles30 Extension @gl_extension{OES,surfaceless_context}
* in OpenGL ES 2.0.
* @requires_gles Surfaceless context is not available in WebGL.
*/
@@ -107,7 +107,7 @@ class MAGNUM_GL_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
*
* @see @ref mapForDraw()
* @m_enum_values_as_keywords
- * @requires_gles30 Extension @extension{EXT,draw_buffers} in OpenGL
+ * @requires_gles30 Extension @gl_extension{EXT,draw_buffers} in OpenGL
* ES 2.0.
* @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in
* WebGL 1.0.
@@ -164,7 +164,7 @@ class MAGNUM_GL_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
*
* @see @ref mapForRead()
* @m_enum_values_as_keywords
- * @requires_gles30 Extension @extension2{NV,read_buffer,GL_NV_read_buffer}
+ * @requires_gles30 Extension @gl_extension2{NV,read_buffer,GL_NV_read_buffer}
* in OpenGL ES 2.0.
* @requires_webgl20 Framebuffer read mapping is not available in WebGL
* 1.0.
@@ -222,7 +222,7 @@ class MAGNUM_GL_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
/**
* Read from front buffer.
- * @requires_es_extension Extension @extension2{NV,read_buffer_front,GL_NV_read_buffer}
+ * @requires_es_extension Extension @gl_extension2{NV,read_buffer_front,GL_NV_read_buffer}
* @requires_gles Reading from front buffer is not available in
* WebGL.
*/
@@ -246,8 +246,8 @@ class MAGNUM_GL_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
*
* @see @ref invalidate()
* @m_enum_values_as_keywords
- * @requires_gl43 Extension @extension{ARB,invalidate_subdata}
- * @requires_gles30 Extension @extension{EXT,discard_framebuffer} in
+ * @requires_gl43 Extension @gl_extension{ARB,invalidate_subdata}
+ * @requires_gles30 Extension @gl_extension{EXT,discard_framebuffer} in
* OpenGL ES 2.0.
* @requires_webgl20 Framebuffer invalidation is not available in WebGL
* 1.0.
@@ -324,19 +324,19 @@ class MAGNUM_GL_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
* @brief Check framebuffer status
* @param target Target for which to check the status
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the framebuffer is bound before the operation (if not
* already).
*
* The @p target parameter is ignored on OpenGL ES 2.0 if none of
- * @extension{APPLE,framebuffer_multisample}, @extension{ANGLE,framebuffer_blit}
- * or @extension{NV,framebuffer_blit} is available and also on WebGL
+ * @gl_extension{APPLE,framebuffer_multisample}, @gl_extension{ANGLE,framebuffer_blit}
+ * or @gl_extension{NV,framebuffer_blit} is available and also on WebGL
* 1.0.
* @see @fn_gl2_keyword{CheckNamedFramebufferStatus,CheckFramebufferStatus},
* @fn_gl_extension_keyword{CheckNamedFramebufferStatus,EXT,direct_state_access},
* eventually @fn_gl{BindFramebuffer} and @fn_gl_keyword{CheckFramebufferStatus}
- * @requires_gl30 Extension @extension{ARB,framebuffer_object}
+ * @requires_gl30 Extension @gl_extension{ARB,framebuffer_object}
*/
Status checkStatus(FramebufferTarget target);
@@ -373,15 +373,15 @@ class MAGNUM_GL_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
*
* @snippet MagnumGL.cpp DefaultFramebuffer-usage-map
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the framebuffer is bound before the operation (if not
* already).
* @see @ref maxDrawBuffers(), @ref maxDualSourceDrawBuffers(),
* @ref mapForRead(), @fn_gl2_keyword{NamedFramebufferDrawBuffers,DrawBuffers},
* @fn_gl_extension_keyword{FramebufferDrawBuffers,EXT,direct_state_access},
* eventually @fn_gl{BindFramebuffer} and @fn_gl_keyword{DrawBuffers}
- * @requires_gles30 Extension @extension{EXT,draw_buffers} in OpenGL
+ * @requires_gles30 Extension @gl_extension{EXT,draw_buffers} in OpenGL
* ES 2.0.
* @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in
* WebGL 1.0.
@@ -396,15 +396,15 @@ class MAGNUM_GL_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
* Similar to above function, can be used in cases when shader has
* only one (unnamed) output.
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the framebuffer is bound before the operation (if not
* already).
* @see @ref mapForRead(), @fn_gl2_keyword{NamedFramebufferDrawBuffer,DrawBuffer},
* @fn_gl_extension_keyword{FramebufferDrawBuffer,EXT,direct_state_access},
* eventually @fn_gl{BindFramebuffer} and @fn_gl_keyword{DrawBuffer}
* or @fn_gl{DrawBuffers} in OpenGL ES 3.0
- * @requires_gles30 Extension @extension{EXT,draw_buffers} in OpenGL
+ * @requires_gles30 Extension @gl_extension{EXT,draw_buffers} in OpenGL
* ES 2.0.
* @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in
* WebGL 1.0.
@@ -417,14 +417,14 @@ class MAGNUM_GL_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
* @param attachment Buffer attachment
* @return Reference to self (for method chaining)
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the framebuffer is bound before the operation (if not
* already).
* @see @ref mapForDraw(), @fn_gl2_keyword{NamedFramebufferReadBuffer,ReadBuffer},
* @fn_gl_extension_keyword{FramebufferReadBuffer,EXT,direct_state_access},
* eventually @fn_gl{BindFramebuffer} and @fn_gl_keyword{ReadBuffer}
- * @requires_gles30 Extension @extension2{NV,read_buffer,GL_NV_read_buffer}
+ * @requires_gles30 Extension @gl_extension2{NV,read_buffer,GL_NV_read_buffer}
* in OpenGL ES 2.0.
* @requires_webgl20 Framebuffer read mapping is not available in WebGL
* 1.0.
@@ -435,10 +435,10 @@ class MAGNUM_GL_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
* @brief Invalidate framebuffer
* @param attachments Attachments to invalidate
*
- * If extension @extension{ARB,invalidate_subdata} (part of OpenGL
- * 4.3), extension @extension{EXT,discard_framebuffer} in OpenGL ES
+ * If extension @gl_extension{ARB,invalidate_subdata} (part of OpenGL
+ * 4.3), extension @gl_extension{EXT,discard_framebuffer} in OpenGL ES
* 2.0 or OpenGL ES 3.0 is not available, this function does nothing.
- * If @extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
+ * If @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
* available, the framebuffer is bound before the operation (if not
* already).
* @see @fn_gl2_keyword{InvalidateNamedFramebufferData,InvalidateFramebuffer},
@@ -457,9 +457,9 @@ class MAGNUM_GL_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
* @param attachments Attachments to invalidate
* @param rectangle Rectangle to invalidate
*
- * If extension @extension{ARB,invalidate_subdata} (part of OpenGL
+ * If extension @gl_extension{ARB,invalidate_subdata} (part of OpenGL
* 4.3) is not available, this function does nothing. If
- * @extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
+ * @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
* available, the framebuffer is bound before the operation (if not
* already).
* @see @ref invalidate(std::initializer_list),
diff --git a/src/Magnum/GL/Framebuffer.h b/src/Magnum/GL/Framebuffer.h
index d1d6b3736..e418ddfea 100644
--- a/src/Magnum/GL/Framebuffer.h
+++ b/src/Magnum/GL/Framebuffer.h
@@ -73,15 +73,15 @@ framebuffer, then bind the default and render the textures on screen:
See also @ref GL-AbstractFramebuffer-performance-optimization "relevant section in AbstractFramebuffer".
-If either @extension{ARB,direct_state_access} (part of OpenGL 4.5) or
-@extension{EXT,direct_state_access} desktop extension is available, functions
+If either @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) or
+@gl_extension{EXT,direct_state_access} desktop extension is available, functions
@ref checkStatus(), @ref mapForDraw(), @ref mapForRead(), @ref invalidate(),
@ref attachRenderbuffer(), @ref attachTexture(), @ref attachCubeMapTexture(),
@ref attachTextureLayer() and @ref detach() use DSA to avoid unnecessary calls
to @fn_gl{BindFramebuffer}. See their respective documentation for more
information.
-@requires_gl30 Extension @extension{ARB,framebuffer_object}
+@requires_gl30 Extension @gl_extension{ARB,framebuffer_object}
*/
class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObject {
friend Implementation::FramebufferState;
@@ -94,9 +94,9 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @ref attachTexture(), @ref attachCubeMapTexture(),
* @ref attachTextureLayer()
* @m_keywords{GL_COLOR_ATTACHMENTn}
- * @requires_gles30 Extension @extension{EXT,draw_buffers} or
- * @extension{NV,draw_buffers} for @ref mapForDraw() and
- * extension @extension{NV,fbo_color_attachments} for `attach*()`
+ * @requires_gles30 Extension @gl_extension{EXT,draw_buffers} or
+ * @gl_extension{NV,draw_buffers} for @ref mapForDraw() and
+ * extension @gl_extension{NV,fbo_color_attachments} for `attach*()`
* in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in
* WebGL 1.0.
@@ -123,8 +123,8 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @brief Draw attachment
*
* @see @ref mapForDraw()
- * @requires_gles30 Extension @extension{EXT,draw_buffers} or
- * @extension{NV,draw_buffers} in OpenGL ES 2.0.
+ * @requires_gles30 Extension @gl_extension{EXT,draw_buffers} or
+ * @gl_extension{NV,draw_buffers} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in
* WebGL 1.0.
*/
@@ -155,8 +155,8 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
*
* @see @ref attachRenderbuffer(), @ref attachTexture(),
* @ref attachCubeMapTexture(), @ref attachTextureLayer()
- * @requires_gles30 Extension @extension{EXT,draw_buffers} or
- * @extension{NV,fbo_color_attachments} in OpenGL ES 2.0.
+ * @requires_gles30 Extension @gl_extension{EXT,draw_buffers} or
+ * @gl_extension{NV,fbo_color_attachments} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in
* WebGL 1.0.
*/
@@ -208,8 +208,8 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @brief Invalidation attachment
*
* @see @ref invalidate()
- * @requires_gl43 Extension @extension{ARB,invalidate_subdata}
- * @requires_gles30 Extension @extension{EXT,discard_framebuffer} in
+ * @requires_gl43 Extension @gl_extension{ARB,invalidate_subdata}
+ * @requires_gles30 Extension @gl_extension{EXT,discard_framebuffer} in
* OpenGL ES 2.0.
* @requires_webgl20 Framebuffer invalidation is not available in WebGL
* 1.0.
@@ -284,10 +284,10 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
/**
* Sample count or locations are not the same for all attached
* images.
- * @requires_gles30 Extension @extension{ANGLE,framebuffer_multisample},
- * @extension{APPLE,framebuffer_multisample},
- * @extension{EXT,multisampled_render_to_texture} or
- * @extension{NV,framebuffer_multisample} in OpenGL ES 2.0.
+ * @requires_gles30 Extension @gl_extension{ANGLE,framebuffer_multisample},
+ * @gl_extension{APPLE,framebuffer_multisample},
+ * @gl_extension{EXT,multisampled_render_to_texture} or
+ * @gl_extension{NV,framebuffer_multisample} in OpenGL ES 2.0.
* @requires_webgl20 Multisample framebuffers are not available in
* WebGL 1.0.
*/
@@ -307,14 +307,14 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
#endif
};
- /** @todo `GL_MAX_FRAMEBUFFER_WIDTH` etc. when @extension{ARB,framebuffer_no_attachments} is done */
+ /** @todo `GL_MAX_FRAMEBUFFER_WIDTH` etc. when @gl_extension{ARB,framebuffer_no_attachments} is done */
/**
* @brief Max supported color attachment count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither @extension{EXT,draw_buffers} nor
- * @extension{NV,fbo_color_attachments} extension is available in
+ * OpenGL calls. If neither @gl_extension{EXT,draw_buffers} nor
+ * @gl_extension{NV,fbo_color_attachments} extension is available in
* OpenGL ES 2.0 and @webgl_extension{WEBGL,draw_buffers} is not
* available in WebGL 1.0, returns `0`.
* @see @ref mapForDraw(), @fn_gl{Get} with
@@ -341,7 +341,7 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
/**
* @brief Constructor
*
- * Generates new OpenGL framebuffer object. If @extension{ARB,direct_state_access}
+ * Generates new OpenGL framebuffer object. If @gl_extension{ARB,direct_state_access}
* (part of OpenGL 4.5) is not available, the framebuffer is created on
* first use.
* @see @ref Framebuffer(NoCreateT), @ref wrap(), @ref setViewport(),
@@ -405,8 +405,8 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
*
* The result is *not* cached, repeated queries will result in repeated
* OpenGL calls. If OpenGL 4.3 / OpenGL ES 3.2 is not supported and
- * neither @extension{KHR,debug} (covered also by
- * @extension{ANDROID,extension_pack_es31a}) nor @extension{EXT,debug_label}
+ * neither @gl_extension{KHR,debug} (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) nor @gl_extension{EXT,debug_label}
* desktop or ES extension is available, this function returns empty
* string.
* @see @fn_gl_keyword{GetObjectLabel} or
@@ -421,8 +421,8 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @return Reference to self (for method chaining)
*
* Default is empty string. If OpenGL 4.3 / OpenGL ES 3.2 is not
- * supported and neither @extension{KHR,debug} (covered also by
- * @extension{ANDROID,extension_pack_es31a}) nor @extension{EXT,debug_label}
+ * supported and neither @gl_extension{KHR,debug} (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) nor @gl_extension{EXT,debug_label}
* desktop or ES extension is available, this function does nothing.
* @see @ref maxLabelLength(), @fn_gl_keyword{ObjectLabel} or
* @fn_gl_extension_keyword{LabelObject,EXT,debug_label} with
@@ -443,14 +443,14 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @brief Check framebuffer status
* @param target Target for which check the status
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the framebuffer is bound before the operation (if not
* already).
*
* The @p target parameter is ignored on OpenGL ES 2.0 if none of
- * @extension{APPLE,framebuffer_multisample}, @extension{ANGLE,framebuffer_blit}
- * or @extension{NV,framebuffer_blit} is available and also on WebGL
+ * @gl_extension{APPLE,framebuffer_multisample}, @gl_extension{ANGLE,framebuffer_blit}
+ * or @gl_extension{NV,framebuffer_blit} is available and also on WebGL
* 1.0.
* @see @fn_gl2_keyword{CheckNamedFramebufferStatus,CheckFramebufferStatus},
* @fn_gl_extension_keyword{CheckNamedFramebufferStatus,EXT,direct_state_access},
@@ -495,8 +495,8 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* {MyShader::NormalOutput, Framebuffer::DrawAttachment::None}});
* @endcode
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the framebuffer is bound before the operation (if not
* already).
* @see @ref maxDrawBuffers(), @ref maxDualSourceDrawBuffers(),
@@ -504,8 +504,8 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @fn_gl2_keyword{NamedFramebufferDrawBuffers,DrawBuffers},
* @fn_gl_extension_keyword{FramebufferDrawBuffers,EXT,direct_state_access},
* eventually @fn_gl{BindFramebuffer} and @fn_gl_keyword{DrawBuffers}
- * @requires_gles30 Extension @extension{EXT,draw_buffers} or
- * @extension{NV,draw_buffers} in OpenGL ES 2.0.
+ * @requires_gles30 Extension @gl_extension{EXT,draw_buffers} or
+ * @gl_extension{NV,draw_buffers} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in
* WebGL 1.0.
*/
@@ -519,8 +519,8 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* Similar to above function, can be used in cases when shader has
* only one (unnamed) output.
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the framebuffer is bound before the operation (if not
* already).
* @see @ref maxColorAttachments(), @ref mapForRead(),
@@ -528,8 +528,8 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @fn_gl_extension_keyword{FramebufferDrawBuffer,EXT,direct_state_access},
* eventually @fn_gl{BindFramebuffer} and @fn_gl_keyword{DrawBuffer}
* (or @fn_gl_keyword{DrawBuffers} in OpenGL ES)
- * @requires_gles30 Extension @extension{EXT,draw_buffers} or
- * @extension{NV,draw_buffers} in OpenGL ES 2.0.
+ * @requires_gles30 Extension @gl_extension{EXT,draw_buffers} or
+ * @gl_extension{NV,draw_buffers} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in
* WebGL 1.0.
*/
@@ -541,14 +541,14 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @param attachment Color attachment
* @return Reference to self (for method chaining)
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the framebuffer is bound before the operation (if not
* already).
* @see @ref mapForDraw(), @fn_gl2_keyword{NamedFramebufferReadBuffer,ReadBuffer},
* @fn_gl_extension_keyword{FramebufferReadBuffer,EXT,direct_state_access},
* eventually @fn_gl{BindFramebuffer} and @fn_gl_keyword{ReadBuffer}
- * @requires_gles30 Extension @extension2{NV,read_buffer,GL_NV_read_buffer}
+ * @requires_gles30 Extension @gl_extension2{NV,read_buffer,GL_NV_read_buffer}
* in OpenGL ES 2.0.
* @requires_webgl20 Framebuffer read mapping is not available in WebGL
* 1.0.
@@ -559,10 +559,10 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @brief Invalidate framebuffer
* @param attachments Attachments to invalidate
*
- * If extension @extension{ARB,invalidate_subdata} (part of OpenGL
- * 4.3), extension @extension{EXT,discard_framebuffer} in OpenGL ES
+ * If extension @gl_extension{ARB,invalidate_subdata} (part of OpenGL
+ * 4.3), extension @gl_extension{EXT,discard_framebuffer} in OpenGL ES
* 2.0 or OpenGL ES 3.0 is not available, this function does nothing.
- * If @extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
+ * If @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
* available, the framebuffer is bound before the operation (if not
* already).
* @see @fn_gl2_keyword{InvalidateNamedFramebufferData,InvalidateFramebuffer},
@@ -581,9 +581,9 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @param attachments Attachments to invalidate
* @param rectangle Rectangle to invalidate
*
- * If extension @extension{ARB,invalidate_subdata} (part of OpenGL
+ * If extension @gl_extension{ARB,invalidate_subdata} (part of OpenGL
* 4.3) is not available, this function does nothing. If
- * @extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
+ * @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
* available, the framebuffer is bound before the operation (if not
* already).
* @see @ref invalidate(std::initializer_list),
@@ -603,8 +603,8 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @param renderbuffer Renderbuffer
* @return Reference to self (for method chaining)
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the framebuffer is bound before the operation (if not
* already).
* @see @ref detach(), @fn_gl2_keyword{NamedFramebufferRenderbuffer,FramebufferRenderbuffer},
@@ -621,8 +621,8 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @param level Mip level
* @return Reference to self (for method chaining)
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the framebuffer is bound before the operation (if not
* already).
* @see @ref detach(), @ref attachCubeMapTexture(),
@@ -643,8 +643,8 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @param level Mip level
* @return Reference to self (for method chaining)
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the framebuffer is bound before the operation (if not
* already).
* @see @ref detach(), @ref attachCubeMapTexture(),
@@ -652,7 +652,7 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @fn_gl_extension_keyword{NamedFramebufferTexture2D,EXT,direct_state_access},
* eventually @fn_gl{BindFramebuffer} and
* @fn_gl2_keyword{FramebufferTexture2D,FramebufferTexture}
- * @requires_gles30 Extension @extension{OES,fbo_render_mipmap} to
+ * @requires_gles30 Extension @gl_extension{OES,fbo_render_mipmap} to
* render to @p level different than `0` in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{OES,fbo_render_mipmap}
* to render to @p level different than `0` in WebGL 1.0.
@@ -661,7 +661,7 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
#ifndef MAGNUM_TARGET_GLES
/** @overload
- * @requires_gl31 Extension @extension{ARB,texture_rectangle}
+ * @requires_gl31 Extension @gl_extension{ARB,texture_rectangle}
* @requires_gl Rectangle textures are not available in OpenGL ES and
* WebGL.
*/
@@ -670,7 +670,7 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
#if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
/** @overload
- * @requires_gl32 Extension @extension{ARB,texture_multisample}
+ * @requires_gl32 Extension @gl_extension{ARB,texture_multisample}
* @requires_gles31 Multisample textures are not available in OpenGL ES
* 3.0 and older.
* @requires_gles Multisample textures are not available in WebGL.
@@ -686,8 +686,8 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @param level Mip level
* @return Reference to self (for method chaining)
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the framebuffer is bound before the operation (if not
* already).
* @see @ref detach(), @ref attachTexture(),
@@ -695,7 +695,7 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @fn_gl_extension_keyword{NamedFramebufferTexture2D,EXT,direct_state_access},
* eventually @fn_gl{BindFramebuffer} and
* @fn_gl2_keyword{FramebufferTexture2D,FramebufferTexture}
- * @requires_gles30 Extension @extension{OES,fbo_render_mipmap} to
+ * @requires_gles30 Extension @gl_extension{OES,fbo_render_mipmap} to
* render to @p level different than `0` in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{OES,fbo_render_mipmap}
* to render to @p level different than `0` in WebGL 1.0.
@@ -711,8 +711,8 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @param layer Layer
* @return Reference to self (for method chaining)
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the framebuffer is bound before the operation (if not
* already).
* @see @ref detach(), @fn_gl2_keyword{NamedFramebufferTextureLayer,FramebufferTextureLayer},
@@ -721,9 +721,9 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @fn_gl2_keyword{FramebufferTextureLayer,FramebufferTexture}
* or @fn_gl_extension_keyword{FramebufferTexture3D,OES,texture_3D}
* in OpenGL ES 2.0
- * @requires_gles30 Extension @extension{OES,texture_3D} in OpenGL
+ * @requires_gles30 Extension @gl_extension{OES,texture_3D} in OpenGL
* ES 2.0.
- * @requires_gles30 Extension @extension{OES,fbo_render_mipmap} to
+ * @requires_gles30 Extension @gl_extension{OES,fbo_render_mipmap} to
* render to @p level different than `0` in OpenGL ES 2.0.
* @requires_webgl20 Only 2D textures are available in WebGL 1.0.
*/
@@ -732,7 +732,7 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
#ifndef MAGNUM_TARGET_GLES
/** @overload
- * @requires_gl30 Extension @extension{EXT,texture_array}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_array}
* @requires_gl Only 2D array textures are available in OpenGL ES and
* WebGL.
*/
@@ -741,7 +741,7 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
#ifndef MAGNUM_TARGET_GLES2
/** @overload
- * @requires_gl30 Extension @extension{EXT,texture_array}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_array}
* @requires_gles30 Array textures are not available in OpenGL ES 2.0.
* @requires_webgl20 Array textures are not available in WebGL 1.0.
*/
@@ -750,20 +750,20 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
#if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
/** @overload
- * @requires_gl40 Extension @extension{ARB,texture_cube_map_array}
+ * @requires_gl40 Extension @gl_extension{ARB,texture_cube_map_array}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,texture_cube_map_array}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,texture_cube_map_array}
* @requires_gles Cube map texture arrays are not available in WebGL.
*/
Framebuffer& attachTextureLayer(BufferAttachment attachment, CubeMapTextureArray& texture, Int level, Int layer);
/** @overload
- * @requires_gl32 Extension @extension{ARB,texture_multisample}
+ * @requires_gl32 Extension @gl_extension{ARB,texture_multisample}
* @requires_gles30 Multisample 2D array textures are not defined in
* OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{OES,texture_storage_multisample_2d_array}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{OES,texture_storage_multisample_2d_array}
* @requires_gles Multisample textures are not available in WebGL.
*/
Framebuffer& attachTextureLayer(BufferAttachment attachment, MultisampleTexture2DArray& texture, Int layer);
@@ -778,8 +778,8 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @return Reference to self (for method chaining)
*
* Attaches whole texture with all layers addressable using `gl_Layer`
- * in geometry shader. If neither @extension{ARB,direct_state_access}
- * (part of OpenGL 4.5) nor @extension{EXT,direct_state_access} desktop
+ * in geometry shader. If neither @gl_extension{ARB,direct_state_access}
+ * (part of OpenGL 4.5) nor @gl_extension{EXT,direct_state_access} desktop
* extension is available, the framebuffer is bound before the
* operation (if not already).
* @see @ref detach(), @ref attachTexture(),
@@ -787,17 +787,17 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @fn_gl_extension_keyword{NamedFramebufferTexture,EXT,direct_state_access},
* eventually @fn_gl{BindFramebuffer} and
* @fn_gl_keyword{FramebufferTexture}
- * @requires_gl32 Extension @extension{ARB,geometry_shader4}
+ * @requires_gl32 Extension @gl_extension{ARB,geometry_shader4}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,geometry_shader}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL.
*/
Framebuffer& attachLayeredTexture(BufferAttachment attachment, Texture3D& texture, Int level);
#ifndef MAGNUM_TARGET_GLES
/** @overload
- * @requires_gl32 Extension @extension{ARB,geometry_shader4}
+ * @requires_gl32 Extension @gl_extension{ARB,geometry_shader4}
* @requires_gl Only 2D array textures are available in OpenGL ES and
* WebGL.
*/
@@ -805,41 +805,41 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
#endif
/** @overload
- * @requires_gl32 Extension @extension{ARB,geometry_shader4}
+ * @requires_gl32 Extension @gl_extension{ARB,geometry_shader4}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,geometry_shader}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL.
*/
Framebuffer& attachLayeredTexture(BufferAttachment attachment, Texture2DArray& texture, Int level);
/**
* @overload
- * @requires_gl32 Extension @extension{ARB,geometry_shader4}
+ * @requires_gl32 Extension @gl_extension{ARB,geometry_shader4}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,geometry_shader}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL.
*/
Framebuffer& attachLayeredTexture(BufferAttachment attachment, CubeMapTexture& texture, Int level);
/** @overload
- * @requires_gl40 Extension @extension{ARB,texture_cube_map_array}
+ * @requires_gl40 Extension @gl_extension{ARB,texture_cube_map_array}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,geometry_shader} and
- * @extension{EXT,texture_cube_map_array}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,geometry_shader} and
+ * @gl_extension{EXT,texture_cube_map_array}
* @requires_gles Geometry shaders are not available in WebGL.
*/
Framebuffer& attachLayeredTexture(BufferAttachment attachment, CubeMapTextureArray& texture, Int level);
/** @overload
- * @requires_gl32 Extension @extension{ARB,geometry_shader4} and
- * @extension{ARB,texture_multisample}
+ * @requires_gl32 Extension @gl_extension{ARB,geometry_shader4} and
+ * @gl_extension{ARB,texture_multisample}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,geometry_shader} and
- * @extension{OES,texture_storage_multisample_2d_array}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,geometry_shader} and
+ * @gl_extension{OES,texture_storage_multisample_2d_array}
* @requires_gles Geometry shaders are not available in WebGL.
*/
Framebuffer& attachLayeredTexture(BufferAttachment attachment, MultisampleTexture2DArray& texture);
@@ -850,8 +850,8 @@ class MAGNUM_GL_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractO
* @param attachment Buffer attachment
* @return Reference to self (for method chaining)
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the framebuffer is bound before the operation (if not
* already).
* @see @ref attachRenderbuffer(), @ref attachTexture(),
diff --git a/src/Magnum/GL/ImageFormat.h b/src/Magnum/GL/ImageFormat.h
index eb37eb5ee..f559ee240 100644
--- a/src/Magnum/GL/ImageFormat.h
+++ b/src/Magnum/GL/ImageFormat.h
@@ -42,7 +42,7 @@ namespace Magnum { namespace GL {
@see @ref Texture::bindImage() "*Texture::bindImage()",
@ref Texture::bindImageLayered() "*Texture::bindImageLayered()"
@m_enum_values_as_keywords
-@requires_gl42 Extension @extension{ARB,shader_image_load_store}
+@requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
@requires_gles31 Shader image load/store is not available in OpenGL ES 3.0 and
older.
@requires_gles Shader image load/store is not available in WebGL.
@@ -59,7 +59,7 @@ enum class ImageAccess: GLenum {
@see @ref Texture::bindImage() "*Texture::bindImage()",
@ref Texture::bindImageLayered() "*Texture::bindImageLayered()"
@m_enum_values_as_keywords
-@requires_gl42 Extension @extension{ARB,shader_image_load_store}
+@requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
@requires_gles31 Shader image load/store is not available in OpenGL ES 3.0 and
older.
@requires_gles Shader image load/store is not available in WebGL.
@@ -302,7 +302,7 @@ enum class ImageFormat: GLenum {
/**
* RGBA, non-normalized unsigned, each RGB component 10bit, alpha 2bit.
- * @requires_gl33 Extension @extension{ARB,texture_rgb10_a2ui}
+ * @requires_gl33 Extension @gl_extension{ARB,texture_rgb10_a2ui}
* @requires_gl Packed image formats are not available in OpenGL ES.
*/
RGB10A2UI = GL_RGB10_A2UI,
diff --git a/src/Magnum/GL/Mesh.h b/src/Magnum/GL/Mesh.h
index 8891d847f..0720dd67b 100644
--- a/src/Magnum/GL/Mesh.h
+++ b/src/Magnum/GL/Mesh.h
@@ -69,20 +69,20 @@ enum class MeshPrimitive: GLenum {
#if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
/**
* Lines with adjacency information.
- * @requires_gl32 Extension @extension{ARB,geometry_shader4}
+ * @requires_gl32 Extension @gl_extension{ARB,geometry_shader4}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,geometry_shader}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL.
*/
LinesAdjacency = GL_LINES_ADJACENCY,
/**
* Line strip with adjacency information.
- * @requires_gl32 Extension @extension{ARB,geometry_shader4}
+ * @requires_gl32 Extension @gl_extension{ARB,geometry_shader4}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,geometry_shader}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL.
*/
LineStripAdjacency = GL_LINE_STRIP_ADJACENCY,
@@ -106,30 +106,30 @@ enum class MeshPrimitive: GLenum {
#if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
/**
* Triangles with adjacency information.
- * @requires_gl32 Extension @extension{ARB,geometry_shader4}
+ * @requires_gl32 Extension @gl_extension{ARB,geometry_shader4}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,geometry_shader}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL.
*/
TrianglesAdjacency = GL_TRIANGLES_ADJACENCY,
/**
* Triangle strip with adjacency information.
- * @requires_gl32 Extension @extension{ARB,geometry_shader4}
+ * @requires_gl32 Extension @gl_extension{ARB,geometry_shader4}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,geometry_shader}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL.
*/
TriangleStripAdjacency = GL_TRIANGLE_STRIP_ADJACENCY,
/**
* Patches.
- * @requires_gl40 Extension @extension{ARB,tessellation_shader}
+ * @requires_gl40 Extension @gl_extension{ARB,tessellation_shader}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,tessellation_shader}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,tessellation_shader}
* @requires_gles Tessellation shaders are not available in WebGL.
*/
Patches = GL_PATCHES
@@ -156,7 +156,7 @@ enum class MeshIndexType: GLenum {
/**
* Unsigned int
- * @requires_gles30 Extension @extension{OES,element_index_uint}
+ * @requires_gles30 Extension @gl_extension{OES,element_index_uint}
* in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{OES,element_index_uint}
* in WebGL 1.0.
@@ -252,8 +252,8 @@ layout, see @ref addVertexBuffer() documentation for details.
@section GL-Mesh-performance-optimization Performance optimizations
-If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL ES 3.0,
-WebGL 2.0, @extension{OES,vertex_array_object} in OpenGL ES 2.0 or
+If @gl_extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL ES 3.0,
+WebGL 2.0, @gl_extension{OES,vertex_array_object} in OpenGL ES 2.0 or
@webgl_extension{OES,vertex_array_object} in WebGL 1.0 is supported, VAOs are
used instead of binding the buffers and specifying vertex attribute pointers
in each @ref draw() call. The engine tracks currently bound VAO and currently
@@ -262,7 +262,7 @@ and @fn_gl_keyword{UseProgram}. Mesh limits and implementation-defined values
(such as @ref maxElementIndex()) are cached, so repeated queries don't result
in repeated @fn_gl{Get} calls.
-If @extension{EXT,direct_state_access} desktop extension and VAOs are
+If @gl_extension{EXT,direct_state_access} desktop extension and VAOs are
available, DSA functions are used for specifying attribute locations to avoid
unnecessary calls to @fn_gl{BindBuffer} and @fn_gl{BindVertexArray}. See
documentation of @ref addVertexBuffer() for more information.
@@ -289,7 +289,7 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
* @brief Max supported index value
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{ARB,ES3_compatibility} (part
+ * OpenGL calls. If extension @gl_extension{ARB,ES3_compatibility} (part
* of OpenGL 4.3) is not available, returns max representable 32-bit
* value (@cpp 0xffffffffu @ce).
* @see @ref setIndexBuffer(), @fn_gl{Get} with
@@ -350,8 +350,8 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
* object is by default not deleted on destruction, use @p flags for
* different behavior.
* @see @ref release()
- * @requires_gl30 Extension @extension{ARB,vertex_array_object}
- * @requires_gles30 Extension @extension{OES,vertex_array_object} in
+ * @requires_gl30 Extension @gl_extension{ARB,vertex_array_object}
+ * @requires_gles30 Extension @gl_extension{OES,vertex_array_object} in
* OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{OES,vertex_array_object}
* in WebGL 1.0.
@@ -369,11 +369,11 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
* @brief Constructor
* @param primitive Primitive type
*
- * If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL
- * ES 3.0, WebGL 2.0, @extension{OES,vertex_array_object} in OpenGL
+ * If @gl_extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL
+ * ES 3.0, WebGL 2.0, @gl_extension{OES,vertex_array_object} in OpenGL
* ES 2.0 or @webgl_extension{OES,vertex_array_object} in WebGL 1.0 is
* available, vertex array object is created. If
- * @extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
+ * @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
* available, the vertex array object is created on first use.
* @see @ref Mesh(NoCreateT), @ref wrap(), @ref setPrimitive(),
* @ref setCount(), @fn_gl_keyword{CreateVertexArrays}, eventually
@@ -406,8 +406,8 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
/**
* @brief Destructor
*
- * If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL
- * ES 3.0, WebGL 2.0, @extension{OES,vertex_array_object} in OpenGL
+ * If @gl_extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL
+ * ES 3.0, WebGL 2.0, @gl_extension{OES,vertex_array_object} in OpenGL
* ES 2.0 or @webgl_extension{OES,vertex_array_object} in WebGL 1.0 is
* available, associated vertex array object is deleted.
* @see @ref wrap(), @ref release(), @fn_gl_keyword{DeleteVertexArrays}
@@ -423,8 +423,8 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
/**
* @brief OpenGL vertex array ID
*
- * If neither @extension{ARB,vertex_array_object} (part of OpenGL 3.0)
- * nor OpenGL ES 3.0 / WebGL 2.0 nor @extension{OES,vertex_array_object}
+ * If neither @gl_extension{ARB,vertex_array_object} (part of OpenGL 3.0)
+ * nor OpenGL ES 3.0 / WebGL 2.0 nor @gl_extension{OES,vertex_array_object}
* in OpenGL ES 2.0 / @webgl_extension{OES,vertex_array_object} in
* WebGL 1.0 is available, returns `0`.
*/
@@ -437,8 +437,8 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
* so it is not deleted on destruction. The internal state is then
* equivalent to moved-from state.
* @see @ref wrap()
- * @requires_gl30 Extension @extension{ARB,vertex_array_object}
- * @requires_gles30 Extension @extension{OES,vertex_array_object} in
+ * @requires_gl30 Extension @gl_extension{ARB,vertex_array_object}
+ * @requires_gles30 Extension @gl_extension{OES,vertex_array_object} in
* OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{OES,vertex_array_object}
* in WebGL 1.0.
@@ -451,8 +451,8 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
*
* The result is *not* cached, repeated queries will result in repeated
* OpenGL calls. If OpenGL 4.3 / OpenGL ES 3.2 is not supported and
- * neither @extension{KHR,debug} (covered also by
- * @extension{ANDROID,extension_pack_es31a}) nor @extension{EXT,debug_label}
+ * neither @gl_extension{KHR,debug} (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) nor @gl_extension{EXT,debug_label}
* desktop or ES extension is available, this function returns empty
* string.
* @see @fn_gl_keyword{GetObjectLabel} with @def_gl{VERTEX_ARRAY} or
@@ -467,8 +467,8 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
* @return Reference to self (for method chaining)
*
* Default is empty string. If OpenGL 4.3 / OpenGL ES 3.2 is not
- * supported and neither @extension{KHR,debug} (covered also by
- * @extension{ANDROID,extension_pack_es31a}) nor @extension{EXT,debug_label}
+ * supported and neither @gl_extension{KHR,debug} (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) nor @gl_extension{EXT,debug_label}
* desktop or ES extension is available, this function does nothing.
* @see @ref maxLabelLength(), @fn_gl_keyword{ObjectLabel} with
* @def_gl_keyword{VERTEX_ARRAY} or @fn_gl_extension_keyword{LabelObject,EXT,debug_label}
@@ -566,7 +566,7 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
* @ref draw(AbstractShaderProgram&, TransformFeedback&, UnsignedInt).
* Default is @cpp 0 @ce.
* @see @ref setCount(), @ref setBaseInstance()
- * @requires_gl32 Extension @extension{ARB,draw_elements_base_vertex}
+ * @requires_gl32 Extension @gl_extension{ARB,draw_elements_base_vertex}
* for indexed meshes
* @requires_gles32 Base vertex cannot be specified for indexed meshes
* in OpenGL ES 3.1 or WebGL.
@@ -590,13 +590,13 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
* @cpp 1 @ce.
* @see @ref setBaseInstance(), @ref setCount(),
* @ref addVertexBufferInstanced()
- * @requires_gl31 Extension @extension{ARB,draw_instanced} if using
+ * @requires_gl31 Extension @gl_extension{ARB,draw_instanced} if using
* @ref draw(AbstractShaderProgram&)
- * @requires_gl42 Extension @extension{ARB,transform_feedback_instanced}
+ * @requires_gl42 Extension @gl_extension{ARB,transform_feedback_instanced}
* if using @ref draw(AbstractShaderProgram&, TransformFeedback&, UnsignedInt)
- * @requires_gles30 Extension @extension{ANGLE,instanced_arrays},
- * @extension2{EXT,draw_instanced,draw_instanced} or
- * @extension{NV,draw_instanced} in OpenGL ES 2.0.
+ * @requires_gles30 Extension @gl_extension{ANGLE,instanced_arrays},
+ * @gl_extension2{EXT,draw_instanced,draw_instanced} or
+ * @gl_extension{NV,draw_instanced} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{ANGLE,instanced_arrays}
* in WebGL 1.0.
*/
@@ -616,7 +616,7 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
* Ignored when calling @ref draw(AbstractShaderProgram&, TransformFeedback&, UnsignedInt).
* Default is @cpp 0 @ce.
* @see @ref setInstanceCount(), @ref setBaseVertex()
- * @requires_gl42 Extension @extension{ARB,base_instance}
+ * @requires_gl42 Extension @gl_extension{ARB,base_instance}
* @requires_gl Base instance cannot be specified in OpenGL ES or
* WebGL.
*/
@@ -661,8 +661,8 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
*
* @snippet MagnumGL.cpp Mesh-addVertexBuffer3
*
- * If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL
- * ES 3.0, WebGL 2.0, @extension{OES,vertex_array_object} in OpenGL
+ * If @gl_extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL
+ * ES 3.0, WebGL 2.0, @gl_extension{OES,vertex_array_object} in OpenGL
* ES 2.0 or @webgl_extension{OES,vertex_array_object} in WebGL 1.0 is
* available, the vertex array object is used to hold the parameters.
*
@@ -696,8 +696,8 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
* the buffer. Setting it to @cpp 0 @ce is equivalent to calling
* @ref addVertexBuffer().
*
- * If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL
- * ES 3.0, WebGL 2.0, @extension{OES,vertex_array_object} in OpenGL
+ * If @gl_extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL
+ * ES 3.0, WebGL 2.0, @gl_extension{OES,vertex_array_object} in OpenGL
* ES 2.0 or @webgl_extension{OES,vertex_array_object} in WebGL 1.0 is
* available, the vertex array object is used to hold the parameters.
*
@@ -709,10 +709,10 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
* @fn_gl_extension_keyword{EnableVertexArrayAttrib,EXT,direct_state_access},
* @fn_gl_extension_keyword{VertexArrayVertexAttribOffset,EXT,direct_state_access},
* @fn_gl_extension_keyword{VertexArrayVertexAttribDivisor,EXT,direct_state_access}
- * @requires_gl33 Extension @extension{ARB,instanced_arrays}
- * @requires_gles30 Extension @extension{ANGLE,instanced_arrays},
- * @extension{EXT,instanced_arrays} or
- * @extension{NV,instanced_arrays} in OpenGL ES 2.0.
+ * @requires_gl33 Extension @gl_extension{ARB,instanced_arrays}
+ * @requires_gles30 Extension @gl_extension{ANGLE,instanced_arrays},
+ * @gl_extension{EXT,instanced_arrays} or
+ * @gl_extension{NV,instanced_arrays} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{ANGLE,instanced_arrays}
* in WebGL 1.0.
*/
@@ -764,8 +764,8 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
* @ref setIndexBuffer(Buffer&, GLintptr, MeshIndexType), as this
* functionality is not available there.
*
- * If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL
- * ES 3.0, WebGL 2.0, @extension{OES,vertex_array_object} in OpenGL
+ * If @gl_extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL
+ * ES 3.0, WebGL 2.0, @gl_extension{OES,vertex_array_object} in OpenGL
* ES 2.0 or @webgl_extension{OES,vertex_array_object} in WebGL 1.0 is
* available, the vertex array object is used to hold the parameters.
*
@@ -810,8 +810,8 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
* set up. If vertex/index count or instance count is `0`, no draw
* commands are issued. See also
* @ref GL-AbstractShaderProgram-rendering-workflow "AbstractShaderProgram documentation"
- * for more information. If @extension{ARB,vertex_array_object} (part
- * of OpenGL 3.0), OpenGL ES 3.0, WebGL 2.0, @extension{OES,vertex_array_object}
+ * for more information. If @gl_extension{ARB,vertex_array_object} (part
+ * of OpenGL 3.0), OpenGL ES 3.0, WebGL 2.0, @gl_extension{OES,vertex_array_object}
* in OpenGL ES 2.0 or @webgl_extension{OES,vertex_array_object} in
* WebGL 1.0 is available, the associated vertex array object is bound
* instead of setting up the mesh from scratch.
@@ -829,15 +829,15 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
* @fn_gl_keyword{DrawElementsInstancedBaseInstance}/
* @fn_gl_keyword{DrawElementsInstancedBaseVertex}/
* @fn_gl_keyword{DrawElementsInstancedBaseVertexBaseInstance}
- * @requires_gl32 Extension @extension{ARB,draw_elements_base_vertex}
+ * @requires_gl32 Extension @gl_extension{ARB,draw_elements_base_vertex}
* if the mesh is indexed and @ref baseVertex() is not `0`.
- * @requires_gl33 Extension @extension{ARB,instanced_arrays} if
+ * @requires_gl33 Extension @gl_extension{ARB,instanced_arrays} if
* @ref instanceCount() is more than `1`.
- * @requires_gl42 Extension @extension{ARB,base_instance} if
+ * @requires_gl42 Extension @gl_extension{ARB,base_instance} if
* @ref baseInstance() is not `0`.
- * @requires_gles30 Extension @extension{ANGLE,instanced_arrays},
- * @extension{EXT,instanced_arrays} or
- * @extension{NV,instanced_arrays} in OpenGL ES 2.0 if
+ * @requires_gles30 Extension @gl_extension{ANGLE,instanced_arrays},
+ * @gl_extension{EXT,instanced_arrays} or
+ * @gl_extension{NV,instanced_arrays} in OpenGL ES 2.0 if
* @ref instanceCount() is more than `1`.
* @requires_webgl20 Extension @webgl_extension{ANGLE,instanced_arrays}
* in WebGL 1.0 if @ref instanceCount() is more than `1`.
@@ -860,7 +860,7 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
* @ref setBaseInstance(), @ref setBaseVertex() and @ref setIndexBuffer()
* is ignored, the mesh is drawn as non-indexed and the vertex count is
* taken from the @p xfb object. If @p stream is @cpp 0 @ce, non-stream
- * draw command is used. If @extension{ARB,vertex_array_object} (part
+ * draw command is used. If @gl_extension{ARB,vertex_array_object} (part
* of OpenGL 3.0) is available, the associated vertex array object is
* bound instead of setting up the mesh from scratch.
* @see @ref setInstanceCount(), @ref draw(AbstractShaderProgram&),
@@ -870,10 +870,10 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject {
* @fn_gl_keyword{DisableVertexAttribArray} or @fn_gl_keyword{BindVertexArray},
* @fn_gl_keyword{DrawTransformFeedback}/@fn_gl_keyword{DrawTransformFeedbackInstanced} or
* @fn_gl_keyword{DrawTransformFeedbackStream}/@fn_gl_keyword{DrawTransformFeedbackStreamInstanced}
- * @requires_gl40 Extension @extension{ARB,transform_feedback2}
- * @requires_gl40 Extension @extension{ARB,transform_feedback3} if
+ * @requires_gl40 Extension @gl_extension{ARB,transform_feedback2}
+ * @requires_gl40 Extension @gl_extension{ARB,transform_feedback3} if
* @p stream is not `0`
- * @requires_gl42 Extension @extension{ARB,transform_feedback_instanced}
+ * @requires_gl42 Extension @gl_extension{ARB,transform_feedback_instanced}
* if @ref instanceCount() is more than `1`.
*/
void draw(AbstractShaderProgram& shader, TransformFeedback& xfb, UnsignedInt stream = 0);
diff --git a/src/Magnum/GL/MeshView.h b/src/Magnum/GL/MeshView.h
index d3a6f5399..ef3c40318 100644
--- a/src/Magnum/GL/MeshView.h
+++ b/src/Magnum/GL/MeshView.h
@@ -67,12 +67,12 @@ class MAGNUM_GL_EXPORT MeshView {
/**
* @brief Draw multiple meshes at once
*
- * In OpenGL ES, if @extension2{EXT,multi_draw_arrays,multi_draw_arrays}
+ * In OpenGL ES, if @gl_extension2{EXT,multi_draw_arrays,multi_draw_arrays}
* is not present, the functionality is emulated using sequence of
* @ref draw(AbstractShaderProgram&) calls.
*
- * If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL
- * ES 3.0, WebGL 2.0, @extension{OES,vertex_array_object} in OpenGL
+ * If @gl_extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL
+ * ES 3.0, WebGL 2.0, @gl_extension{OES,vertex_array_object} in OpenGL
* ES 2.0 or @webgl_extension{OES,vertex_array_object} in WebGL 1.0 is
* available, the associated vertex array object is bound instead of
* setting up the mesh from scratch.
@@ -83,7 +83,7 @@ class MAGNUM_GL_EXPORT MeshView {
* @fn_gl_keyword{VertexAttribPointer}, @fn_gl_keyword{DisableVertexAttribArray}
* or @fn_gl{BindVertexArray}, @fn_gl_keyword{MultiDrawArrays} or
* @fn_gl_keyword{MultiDrawElements}/@fn_gl_keyword{MultiDrawElementsBaseVertex}
- * @requires_gl32 Extension @extension{ARB,draw_elements_base_vertex}
+ * @requires_gl32 Extension @gl_extension{ARB,draw_elements_base_vertex}
* if the mesh is indexed and @ref baseVertex() is not `0`.
* @requires_gl Specifying base vertex for indexed meshes is not
* available in OpenGL ES or WebGL.
@@ -142,7 +142,7 @@ class MAGNUM_GL_EXPORT MeshView {
* Sets number of vertices of which the vertex buffer will be offset
* when drawing. Ignored when calling @ref draw(AbstractShaderProgram&, TransformFeedback&, UnsignedInt).
* Default is @cpp 0 @ce.
- * @requires_gl32 Extension @extension{ARB,draw_elements_base_vertex}
+ * @requires_gl32 Extension @gl_extension{ARB,draw_elements_base_vertex}
* for indexed meshes
* @requires_gles32 Base vertex cannot be specified for indexed meshes
* in OpenGL ES 3.1 or WebGL.
@@ -194,13 +194,13 @@ class MAGNUM_GL_EXPORT MeshView {
* @return Reference to self (for method chaining)
*
* Default is @cpp 1 @ce.
- * @requires_gl31 Extension @extension{ARB,draw_instanced} if using
+ * @requires_gl31 Extension @gl_extension{ARB,draw_instanced} if using
* @ref draw(AbstractShaderProgram&)
- * @requires_gl42 Extension @extension{ARB,transform_feedback_instanced}
+ * @requires_gl42 Extension @gl_extension{ARB,transform_feedback_instanced}
* if using @ref draw(AbstractShaderProgram&, TransformFeedback&, UnsignedInt)
- * @requires_gles30 Extension @extension{ANGLE,instanced_arrays},
- * @extension2{EXT,draw_instanced,draw_instanced} or
- * @extension{NV,draw_instanced} in OpenGL ES 2.0.
+ * @requires_gles30 Extension @gl_extension{ANGLE,instanced_arrays},
+ * @gl_extension2{EXT,draw_instanced,draw_instanced} or
+ * @gl_extension{NV,draw_instanced} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{ANGLE,instanced_arrays}
* in WebGL 1.0.
*/
@@ -219,7 +219,7 @@ class MAGNUM_GL_EXPORT MeshView {
*
* Ignored when calling @ref draw(AbstractShaderProgram&, TransformFeedback&, UnsignedInt).
* Default is @cpp 0 @ce.
- * @requires_gl42 Extension @extension{ARB,base_instance}
+ * @requires_gl42 Extension @gl_extension{ARB,base_instance}
* @requires_gl Base instance cannot be specified in OpenGL ES or
* WebGL.
*/
@@ -235,15 +235,15 @@ class MAGNUM_GL_EXPORT MeshView {
* See @ref Mesh::draw(AbstractShaderProgram&) for more information.
* @see @ref draw(AbstractShaderProgram&, std::initializer_list>),
* @ref draw(AbstractShaderProgram&, TransformFeedback&, UnsignedInt)
- * @requires_gl32 Extension @extension{ARB,draw_elements_base_vertex}
+ * @requires_gl32 Extension @gl_extension{ARB,draw_elements_base_vertex}
* if the mesh is indexed and @ref baseVertex() is not `0`.
- * @requires_gl33 Extension @extension{ARB,instanced_arrays} if
+ * @requires_gl33 Extension @gl_extension{ARB,instanced_arrays} if
* @ref instanceCount() is more than `1`.
- * @requires_gl42 Extension @extension{ARB,base_instance} if
+ * @requires_gl42 Extension @gl_extension{ARB,base_instance} if
* @ref baseInstance() is not `0`.
- * @requires_gles30 Extension @extension{ANGLE,instanced_arrays},
- * @extension{EXT,instanced_arrays} or
- * @extension{NV,instanced_arrays} in OpenGL ES 2.0 if
+ * @requires_gles30 Extension @gl_extension{ANGLE,instanced_arrays},
+ * @gl_extension{EXT,instanced_arrays} or
+ * @gl_extension{NV,instanced_arrays} in OpenGL ES 2.0 if
* @ref instanceCount() is more than `1`.
* @requires_webgl20 Extension @webgl_extension{ANGLE,instanced_arrays}
* in WebGL 1.0 if @ref instanceCount() is more than `1`.
@@ -264,10 +264,10 @@ class MAGNUM_GL_EXPORT MeshView {
* @ref Mesh::draw(AbstractShaderProgram&, TransformFeedback&, UnsignedInt)
* for more information.
* @see @ref draw(AbstractShaderProgram&)
- * @requires_gl40 Extension @extension{ARB,transform_feedback2}
- * @requires_gl40 Extension @extension{ARB,transform_feedback3} if
+ * @requires_gl40 Extension @gl_extension{ARB,transform_feedback2}
+ * @requires_gl40 Extension @gl_extension{ARB,transform_feedback3} if
* @p stream is not `0`
- * @requires_gl42 Extension @extension{ARB,transform_feedback_instanced}
+ * @requires_gl42 Extension @gl_extension{ARB,transform_feedback_instanced}
* if @ref instanceCount() is more than `1`.
*/
void draw(AbstractShaderProgram& shader, TransformFeedback& xfb, UnsignedInt stream = 0);
diff --git a/src/Magnum/GL/MultisampleTexture.h b/src/Magnum/GL/MultisampleTexture.h
index 6a8051093..50e22cad5 100644
--- a/src/Magnum/GL/MultisampleTexture.h
+++ b/src/Magnum/GL/MultisampleTexture.h
@@ -90,13 +90,13 @@ Note that multisample textures don't support compressed formats.
@ref TextureArray, @ref CubeMapTexture, @ref CubeMapTextureArray,
@ref RectangleTexture, @ref BufferTexture
@m_keywords{GL_TEXTURE_2D_MULTISAMPLE GL_TEXTURE_2D_MULTISAMPLE_ARRAY}
-@requires_gl32 Extension @extension{ARB,texture_multisample}
+@requires_gl32 Extension @gl_extension{ARB,texture_multisample}
@requires_gles31 Multisample 2D textures are not available in OpenGL ES 3.0 and
older.
@requires_gles30 Multisample 2D array textures are not defined in OpenGL ES
2.0.
-@requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- @extension{OES,texture_storage_multisample_2d_array} for multisample 2D
+@requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ @gl_extension{OES,texture_storage_multisample_2d_array} for multisample 2D
array textures.
@requires_gles Multisample textures are not available in WebGL.
*/
@@ -110,7 +110,7 @@ template class MultisampleTexture: public AbstractTextur
* @brief Max supported multisample texture size
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,texture_multisample}
+ * OpenGL calls. If neither extension @gl_extension{ARB,texture_multisample}
* (part of OpenGL 3.2) nor OpenGL ES 3.1 is available, returns zero
* vector.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_TEXTURE_SIZE} and
@@ -140,7 +140,7 @@ template class MultisampleTexture: public AbstractTextur
/**
* @brief Constructor
*
- * Creates new OpenGL texture object. If @extension{ARB,direct_state_access}
+ * Creates new OpenGL texture object. If @gl_extension{ARB,direct_state_access}
* (part of OpenGL 4.5) is not available, the texture is created on
* first use.
* @see @ref MultisampleTexture(NoCreateT), @ref wrap(),
@@ -177,7 +177,7 @@ template class MultisampleTexture: public AbstractTextur
* @ref bindImageLayered(), @ref unbindImage(), @ref unbindImages(),
* @ref AbstractShaderProgram::maxImageUnits(),
* @fn_gl_keyword{BindImageTexture}
- * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
+ * @requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
*/
#ifndef DOXYGEN_GENERATING_OUTPUT
template::type>
@@ -201,9 +201,9 @@ template class MultisampleTexture: public AbstractTextur
* @ref bindImageLayered(), @ref unbindImage(), @ref unbindImages(),
* @ref AbstractShaderProgram::maxImageUnits(),
* @fn_gl_keyword{BindImageTexture}
- * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{OES,texture_storage_multisample_2d_array} for
+ * @requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{OES,texture_storage_multisample_2d_array} for
* multisample 2D array textures.
*/
#ifndef DOXYGEN_GENERATING_OUTPUT
@@ -227,9 +227,9 @@ template class MultisampleTexture: public AbstractTextur
* @ref bindImage(), @ref unbindImages(), @ref unbindImage(),
* @ref AbstractShaderProgram::maxImageUnits(),
* @fn_gl_keyword{BindImageTexture}
- * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{OES,texture_storage_multisample_2d_array} for
+ * @requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{OES,texture_storage_multisample_2d_array} for
* multisample 2D array textures.
*/
#ifndef DOXYGEN_GENERATING_OUTPUT
@@ -250,12 +250,12 @@ template class MultisampleTexture: public AbstractTextur
* After calling this function the texture is immutable and calling
* @ref setStorage() again is not allowed.
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the texture is bound before the operation (if not
- * already). If @extension{ARB,texture_storage_multisample} (part of
+ * already). If @gl_extension{ARB,texture_storage_multisample} (part of
* OpenGL 4.3) is not available, the texture is bound and the feature
- * is emulated using plain @extension{ARB,texture_multisample}
+ * is emulated using plain @gl_extension{ARB,texture_multisample}
* functionality.
* @see @ref maxSize(), @ref maxColorSamples(), @ref maxDepthSamples(),
* @ref maxIntegerSamples(), @fn_gl2_keyword{TextureStorage2DMultisample,TexStorage2DMultisample} /
@@ -320,7 +320,7 @@ template class MultisampleTexture: public AbstractTextur
/**
@brief Two-dimensional multisample texture
-@requires_gl32 Extension @extension{ARB,texture_multisample}
+@requires_gl32 Extension @gl_extension{ARB,texture_multisample}
@requires_gles31 Multisample textures are not available in OpenGL ES 3.0 and
older.
@requires_gles Multisample textures are not available in WebGL.
@@ -330,10 +330,10 @@ typedef MultisampleTexture<2> MultisampleTexture2D;
/**
@brief Two-dimensional multisample texture array
-@requires_gl32 Extension @extension{ARB,texture_multisample}
+@requires_gl32 Extension @gl_extension{ARB,texture_multisample}
@requires_gles30 Not defined in OpenGL ES 2.0.
-@requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- @extension{OES,texture_storage_multisample_2d_array}
+@requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ @gl_extension{OES,texture_storage_multisample_2d_array}
@requires_gles Multisample textures are not available in WebGL.
*/
typedef MultisampleTexture<3> MultisampleTexture2DArray;
diff --git a/src/Magnum/GL/PixelFormat.h b/src/Magnum/GL/PixelFormat.h
index 76c910e98..515db6dae 100644
--- a/src/Magnum/GL/PixelFormat.h
+++ b/src/Magnum/GL/PixelFormat.h
@@ -61,9 +61,9 @@ enum class PixelFormat: GLenum {
/**
* Floating-point red channel.
* @requires_gles30 For texture data only, extension
- * @extension{EXT,texture_rg} in OpenGL ES 2.0.
+ * @gl_extension{EXT,texture_rg} in OpenGL ES 2.0.
* @requires_es_extension For framebuffer reading, extension
- * @extension{EXT,texture_rg}
+ * @gl_extension{EXT,texture_rg}
* @requires_webgl20 For texture data only. Not available in WebGL 1.0, see
* @ref PixelFormat::Luminance for an alternative.
*/
@@ -105,11 +105,11 @@ enum class PixelFormat: GLenum {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* Floating-point red and green channel.
- * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg} and @gl_extension{EXT,texture_integer}
* @requires_gles30 For texture data only, extension
- * @extension{EXT,texture_rg} in OpenGL ES 2.0.
+ * @gl_extension{EXT,texture_rg} in OpenGL ES 2.0.
* @requires_es_extension For framebuffer reading, extension
- * @extension{EXT,texture_rg}
+ * @gl_extension{EXT,texture_rg}
* @requires_webgl20 For texture data only. Not available in WebGL 1.0, see
* @ref PixelFormat::LuminanceAlpha for and alternative.
*/
@@ -153,9 +153,9 @@ enum class PixelFormat: GLenum {
#ifndef MAGNUM_TARGET_WEBGL
/**
* Floating-point BGRA.
- * @requires_es_extension Extension @extension{EXT,read_format_bgra}
- * for framebuffer reading, extension @extension{APPLE,texture_format_BGRA8888}
- * or @extension{EXT,texture_format_BGRA8888} for texture data.
+ * @requires_es_extension Extension @gl_extension{EXT,read_format_bgra}
+ * for framebuffer reading, extension @gl_extension{APPLE,texture_format_BGRA8888}
+ * or @gl_extension{EXT,texture_format_BGRA8888} for texture data.
* @requires_gles Only RGBA component ordering is available in WebGL.
*/
#ifndef MAGNUM_TARGET_GLES
@@ -171,7 +171,7 @@ enum class PixelFormat: GLenum {
* @requires_gles20 Not available in ES 3.0, WebGL 2.0 or desktop OpenGL.
* Use @ref PixelFormat::RGB instead.
* @deprecated_gl Included only in order to make it possible to upload
- * sRGB image data with the @extension{EXT,sRGB} ES2 extension, use
+ * sRGB image data with the @gl_extension{EXT,sRGB} ES2 extension, use
* @ref PixelFormat::RGB elsewhere instead.
*/
SRGB = GL_SRGB_EXT,
@@ -181,7 +181,7 @@ enum class PixelFormat: GLenum {
* @requires_gles20 Not available in ES 3.0, WebGL 2.0 or desktop OpenGL.
* Use @ref PixelFormat::RGBA instead.
* @deprecated_gl Included only in order to make it possible to upload
- * sRGB image data with the @extension{EXT,sRGB} ES2 extension, use
+ * sRGB image data with the @gl_extension{EXT,sRGB} ES2 extension, use
* @ref PixelFormat::RGBA elsewhere instead.
*/
SRGBAlpha = GL_SRGB_ALPHA_EXT,
@@ -190,7 +190,7 @@ enum class PixelFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES2
/**
* Integer red channel.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only floating-point image data are available in OpenGL
* ES 2.0.
* @requires_webgl20 Only floating-point image data are available in WebGL
@@ -201,7 +201,7 @@ enum class PixelFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES
/**
* Integer green channel.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gl Only @ref PixelFormat::RedInteger is available in OpenGL ES
* 3.0 and WebGL 2.0, only floating-point image data are available in
* OpenGL ES 2.0 and WebGL 1.0.
@@ -210,7 +210,7 @@ enum class PixelFormat: GLenum {
/**
* Integer blue channel.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gl Only @ref PixelFormat::RedInteger is available in OpenGL ES
* 3.0 and WebGL 2.0, only floating-point image data are available in
* OpenGL ES 2.0 and WebGL 1.0.
@@ -220,7 +220,7 @@ enum class PixelFormat: GLenum {
/**
* Integer red and green channel.
- * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg} and @gl_extension{EXT,texture_integer}
* @requires_gl Can't be used for framebuffer reading in OpenGL ES or
* WebGL.
* @requires_gles30 For texture data only, only floating-point image data
@@ -232,7 +232,7 @@ enum class PixelFormat: GLenum {
/**
* Integer RGB.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gl Can't be used for framebuffer reading in OpenGL ES or
* WebGL.
* @requires_gles30 For texture data only, only floating-point image data
@@ -244,7 +244,7 @@ enum class PixelFormat: GLenum {
/**
* Integer RGBA.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only floating-point image data are available in OpenGL
* ES 2.0.
* @requires_webgl20 Only floating-point image data are available in WebGL
@@ -255,7 +255,7 @@ enum class PixelFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES
/**
* Integer BGR.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gl Only @ref PixelFormat::RGBInteger is available in OpenGL ES
* 3.0 and WebGL 2.0, only floating-point image data are available in
* OpenGL ES 2.0 and WebGL 1.0.
@@ -264,7 +264,7 @@ enum class PixelFormat: GLenum {
/**
* Integer BGRA.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gl Only @ref PixelFormat::RGBAInteger is available in OpenGL
* ES 3.0 and WebGL 2.0, only floating-point image data are available
* in OpenGL ES 2.0 and WebGL 1.0.
@@ -275,10 +275,10 @@ enum class PixelFormat: GLenum {
/**
* Depth component.
- * @requires_gles30 For texture data only, extension @extension{OES,depth_texture}
- * or @extension{ANGLE,depth_texture} in OpenGL ES 2.0.
+ * @requires_gles30 For texture data only, extension @gl_extension{OES,depth_texture}
+ * or @gl_extension{ANGLE,depth_texture} in OpenGL ES 2.0.
* @requires_es_extension For framebuffer reading only, extension
- * @extension2{NV,read_depth,GL_NV_read_depth_stencil}.
+ * @gl_extension2{NV,read_depth,GL_NV_read_depth_stencil}.
* @requires_webgl20 For texture data only, extension
* @webgl_extension{WEBGL,depth_texture} in WebGL 1.0.
*/
@@ -287,12 +287,12 @@ enum class PixelFormat: GLenum {
#ifndef MAGNUM_TARGET_WEBGL
/**
* Stencil index.
- * @requires_gl44 Extension @extension{ARB,texture_stencil8} for texture
+ * @requires_gl44 Extension @gl_extension{ARB,texture_stencil8} for texture
* data, otherwise for framebuffer reading only.
- * @requires_es_extension Extension @extension2{NV,read_stencil,GL_NV_read_depth_stencil},
+ * @requires_es_extension Extension @gl_extension2{NV,read_stencil,GL_NV_read_depth_stencil},
* for framebuffer reading only.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{OES,texture_stencil8}, for texture data only.
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{OES,texture_stencil8}, for texture data only.
* @requires_gles Stencil index is not available in WebGL.
*/
#ifndef MAGNUM_TARGET_GLES
@@ -304,11 +304,11 @@ enum class PixelFormat: GLenum {
/**
* Depth and stencil.
- * @requires_gl30 Extension @extension{ARB,framebuffer_object}
- * @requires_gles30 For texture data only, extension @extension{OES,packed_depth_stencil}
+ * @requires_gl30 Extension @gl_extension{ARB,framebuffer_object}
+ * @requires_gles30 For texture data only, extension @gl_extension{OES,packed_depth_stencil}
* in OpenGL ES 2.0.
* @requires_es_extension For framebuffer reading only, extension
- * @extension2{NV,read_depth_stencil,GL_NV_read_depth_stencil}
+ * @gl_extension2{NV,read_depth_stencil,GL_NV_read_depth_stencil}
* @requires_webgl20 For texture data only, extension
* @webgl_extension{WEBGL,depth_texture} in WebGL 1.0.
*/
@@ -359,8 +359,8 @@ enum class PixelType: GLenum {
/**
* Each component unsigned short.
- * @requires_gles30 For texture data only, extension @extension{OES,depth_texture}
- * or @extension{ANGLE,depth_texture} in OpenGL ES 2.0.
+ * @requires_gles30 For texture data only, extension @gl_extension{OES,depth_texture}
+ * or @gl_extension{ANGLE,depth_texture} in OpenGL ES 2.0.
* @requires_gl Can't be used for framebuffer reading in OpenGL ES or
* WebGL.
* @requires_webgl20 For texture data only, extension
@@ -384,7 +384,7 @@ enum class PixelType: GLenum {
/**
* Each component unsigned int.
* @requires_gles30 In OpenGL ES 2.0 for texture data only, using extension
- * @extension{OES,depth_texture} or @extension{ANGLE,depth_texture}
+ * @gl_extension{OES,depth_texture} or @gl_extension{ANGLE,depth_texture}
* @requires_webgl20 In WebGL 1.0 for texture data only, using extension
* @webgl_extension{WEBGL,depth_texture}
*/
@@ -404,12 +404,12 @@ enum class PixelType: GLenum {
/**
* Each component half float.
* @see @ref Half, @ref Math::packHalf(), @ref Math::unpackHalf()
- * @requires_gl30 Extension @extension{ARB,half_float_pixel}
- * @requires_gles30 Extension @extension2{OES,texture_half_float,OES_texture_float}
+ * @requires_gl30 Extension @gl_extension{ARB,half_float_pixel}
+ * @requires_gles30 Extension @gl_extension2{OES,texture_half_float,OES_texture_float}
* to use for texture reading in OpenGL ES 2.0.
- * @requires_gles30 Extension @extension2{OES,texture_half_float_linear,OES_texture_float_linear}
+ * @requires_gles30 Extension @gl_extension2{OES,texture_half_float_linear,OES_texture_float_linear}
* for filtering the texture using @ref SamplerFilter::Linear.
- * @requires_gles32 Extension @extension{EXT,color_buffer_half_float}
+ * @requires_gles32 Extension @gl_extension{EXT,color_buffer_half_float}
* to use the texture as a render target.
* @requires_webgl20 Extension @webgl_extension{OES,texture_half_float} to
* use for texture reading in WebGL 1.0.
@@ -426,11 +426,11 @@ enum class PixelType: GLenum {
/**
* Each component float.
- * @requires_gles30 Extension @extension{OES,texture_float} to use for
+ * @requires_gles30 Extension @gl_extension{OES,texture_float} to use for
* texture reading in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{EXT,color_half_float} to use the
+ * @requires_gles32 Extension @gl_extension{EXT,color_half_float} to use the
* texture as a render target.
- * @requires_es_extension Extension @extension{OES,texture_float_linear}
+ * @requires_es_extension Extension @gl_extension{OES,texture_float_linear}
* for filtering the texture using @ref SamplerFilter::Linear.
* @requires_webgl20 Extension @webgl_extension{OES,texture_float} to use
* for texture reading in WebGL 1.0.
@@ -481,7 +481,7 @@ enum class PixelType: GLenum {
/**
* ABGR, unsigned short, each component 4bit.
* @requires_es_extension For framebuffer reading only, extension
- * @extension{EXT,read_format_bgra}
+ * @gl_extension{EXT,read_format_bgra}
* @requires_gles Only RGBA component ordering is available in WebGL.
*/
#ifndef MAGNUM_TARGET_GLES
@@ -501,7 +501,7 @@ enum class PixelType: GLenum {
/**
* ABGR, unsigned short, each RGB component 5bit, alpha component 1bit.
* @requires_es_extension For framebuffer reading only, extension
- * @extension{EXT,read_format_bgra}
+ * @gl_extension{EXT,read_format_bgra}
* @requires_gles Not available in WebGL.
*/
#ifndef MAGNUM_TARGET_GLES
@@ -539,7 +539,7 @@ enum class PixelType: GLenum {
* ABGR, unsigned int, each RGB component 10bit, alpha component 2bit.
* @requires_gles30 Can't be used for framebuffer reading in OpenGL ES 2.0.
* @requires_gles30 For texture data only, extension
- * @extension{EXT,texture_type_2_10_10_10_REV} in OpenGL ES 2.0.
+ * @gl_extension{EXT,texture_type_2_10_10_10_REV} in OpenGL ES 2.0.
* Not available in WebGL 1.0.
* @requires_webgl20 Only RGBA component ordering is available in WebGL
* 1.0.
@@ -554,7 +554,7 @@ enum class PixelType: GLenum {
#ifndef MAGNUM_TARGET_GLES2
/**
* BGR, unsigned int, red and green 11bit float, blue 10bit float.
- * @requires_gl30 Extension @extension{EXT,packed_float}
+ * @requires_gl30 Extension @gl_extension{EXT,packed_float}
* @requires_gles30 Floating-point types are not available in OpenGL ES
* 2.0.
* @requires_webgl20 Floating-point types are not available in WebGL 1.0.
@@ -563,7 +563,7 @@ enum class PixelType: GLenum {
/**
* BGR, unsigned int, each component 9bit + 5bit exponent.
- * @requires_gl30 Extension @extension{EXT,texture_shared_exponent}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_shared_exponent}
* @requires_gles30 Only 8bit and 16bit types are available in OpenGL ES
* 2.0.
* @requires_webgl20 Only 8bit and 16bit types are available in WebGL 1.0.
@@ -573,9 +573,9 @@ enum class PixelType: GLenum {
/**
* Unsigned int, depth component 24bit, stencil index 8bit.
- * @requires_gl30 Extension @extension{ARB,framebuffer_object}
+ * @requires_gl30 Extension @gl_extension{ARB,framebuffer_object}
* @requires_gles30 For texture data only, extension
- * @extension{OES,packed_depth_stencil} in OpenGL ES 2.0.
+ * @gl_extension{OES,packed_depth_stencil} in OpenGL ES 2.0.
* @requires_webgl20 For texture data only, extension
* @webgl_extension{WEBGL,depth_texture} in WebGL 1.0.
*/
@@ -589,7 +589,7 @@ enum class PixelType: GLenum {
/**
* Float + unsigned int, depth component 32bit float, 24bit gap, stencil
* index 8bit.
- * @requires_gl30 Extension @extension{ARB,depth_buffer_float}
+ * @requires_gl30 Extension @gl_extension{ARB,depth_buffer_float}
* @requires_gles30 For texture data only, only @ref PixelType::UnsignedInt248
* is available in OpenGL ES 2.0.
* @requires_webgl20 For texture data only, only @ref PixelType::UnsignedInt248
@@ -633,7 +633,7 @@ to query availability of given format.
@note On OpenGL ES 2.0 and WebGL 1.0, one- and two-channel texture formats are
always translated to @ref PixelFormat::Luminance and
@ref PixelFormat::LuminanceAlpha, independently on the
- @extension{EXT,texture_rg} being present or not. If you wish to use @ref PixelFormat::Red and @ref PixelFormat::RG instead, specify the GL-specific
+ @gl_extension{EXT,texture_rg} being present or not. If you wish to use @ref PixelFormat::Red and @ref PixelFormat::RG instead, specify the GL-specific
pixel format directly instead of using the generic enum.
@see @ref pixelType()
@@ -693,7 +693,7 @@ enum class CompressedPixelFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES
/**
* Compressed red channel, normalized unsigned.
- * @requires_gl30 Extension @extension{ARB,texture_rg}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg}
* @requires_gl Generic texture compression is not available in OpenGL ES
* or WebGL.
*/
@@ -701,7 +701,7 @@ enum class CompressedPixelFormat: GLenum {
/**
* Compressed red and green channel, normalized unsigned.
- * @requires_gl30 Extension @extension{ARB,texture_rg}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg}
* @requires_gl Generic texture compression is not available in OpenGL ES
* or WebGL.
*/
@@ -724,7 +724,7 @@ enum class CompressedPixelFormat: GLenum {
/**
* RGTC compressed red channel, normalized unsigned. **Available only for
* 2D, 2D array, cube map and cube map array textures.**
- * @requires_gl30 Extension @extension{EXT,texture_compression_rgtc}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_compression_rgtc}
* @requires_gl RGTC texture compression is not available in OpenGL ES or
* WebGL.
*/
@@ -733,7 +733,7 @@ enum class CompressedPixelFormat: GLenum {
/**
* RGTC compressed red and green channel, normalized unsigned. **Available
* only for 2D, 2D array, cube map and cube map array textures.**
- * @requires_gl30 Extension @extension{EXT,texture_compression_rgtc}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_compression_rgtc}
* @requires_gl RGTC texture compression is not available in OpenGL ES or
* WebGL.
*/
@@ -742,7 +742,7 @@ enum class CompressedPixelFormat: GLenum {
/**
* RGTC compressed red channel, normalized signed. **Available only for 2D,
* 2D array, cube map and cube map array textures.**
- * @requires_gl30 Extension @extension{EXT,texture_compression_rgtc}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_compression_rgtc}
* @requires_gl RGTC texture compression is not available in OpenGL ES or
* WebGL.
*/
@@ -751,7 +751,7 @@ enum class CompressedPixelFormat: GLenum {
/**
* RGTC compressed red and green channel, normalized signed. **Available
* only for 2D, 2D array, cube map and cube map array textures.**
- * @requires_gl30 Extension @extension{EXT,texture_compression_rgtc}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_compression_rgtc}
* @requires_gl RGTC texture compression is not available in OpenGL ES or
* WebGL.
*/
@@ -760,7 +760,7 @@ enum class CompressedPixelFormat: GLenum {
/**
* BPTC compressed RGB, unsigned float. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_gl42 Extension @extension{ARB,texture_compression_bptc}
+ * @requires_gl42 Extension @gl_extension{ARB,texture_compression_bptc}
* @requires_gl BPTC texture compression is not available in OpenGL ES or
* WebGL.
*/
@@ -769,7 +769,7 @@ enum class CompressedPixelFormat: GLenum {
/**
* BPTC compressed RGB, signed float. **Available only on 2D, 3D, 2D array,
* cube map and cube map array textures.**
- * @requires_gl42 Extension @extension{ARB,texture_compression_bptc}
+ * @requires_gl42 Extension @gl_extension{ARB,texture_compression_bptc}
* @requires_gl BPTC texture compression is not available in OpenGL ES or
* WebGL.
*/
@@ -778,7 +778,7 @@ enum class CompressedPixelFormat: GLenum {
/**
* BPTC compressed RGBA, normalized unsigned. **Available only on 2D, 3D,
* 2D array, cube map and cube map array textures.**
- * @requires_gl42 Extension @extension{ARB,texture_compression_bptc}
+ * @requires_gl42 Extension @gl_extension{ARB,texture_compression_bptc}
* @requires_gl BPTC texture compression is not available in OpenGL ES or
* WebGL.
*/
@@ -787,7 +787,7 @@ enum class CompressedPixelFormat: GLenum {
/**
* BPTC compressed sRGBA, normalized unsigned. **Available only on 2D, 3D,
* 2D array, cube map and cube map array textures.**
- * @requires_gl42 Extension @extension{ARB,texture_compression_bptc}
+ * @requires_gl42 Extension @gl_extension{ARB,texture_compression_bptc}
* @requires_gl BPTC texture compression is not available in OpenGL ES or
* WebGL.
*/
@@ -798,7 +798,7 @@ enum class CompressedPixelFormat: GLenum {
/**
* ETC2 compressed RGB, normalized unsigned. **Available only on 2D, 2D
* array, cube map and cube map array textures.**
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
* @requires_gles30 ETC2 texture compression is not available in OpenGL ES
* 2.0.
*/
@@ -807,7 +807,7 @@ enum class CompressedPixelFormat: GLenum {
/**
* ETC2 compressed sRGB, normalized unsigned. **Available only on 2D, 2D
* array, cube map and cube map array textures.**
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
* @requires_gles30 ETC2 texture compression is not available in OpenGL ES
* 2.0.
*/
@@ -817,7 +817,7 @@ enum class CompressedPixelFormat: GLenum {
* ETC2 compressed RGB with punchthrough (single-bit) alpha, normalized
* unsigned. **Available only on 2D, 2D array, cube map and cube map array
* textures.**
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
* @requires_gles30 ETC2 texture compression is not available in OpenGL ES
* 2.0.
*/
@@ -827,7 +827,7 @@ enum class CompressedPixelFormat: GLenum {
* ETC2 compressed sRGB with punchthrough (single-bit) alpha, normalized
* unsigned. **Available only on 2D, 2D array, cube map and cube map array
* textures.**
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
* @requires_gles30 ETC2 texture compression is not available in OpenGL ES
* 2.0.
*/
@@ -836,7 +836,7 @@ enum class CompressedPixelFormat: GLenum {
/**
* ETC2/EAC compressed RGBA, normalized unsigned. **Available only on 2D,
* 2D array, cube map and cube map array textures.**
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
* @requires_gles30 ETC2 texture compression is not available in OpenGL ES
* 2.0.
*/
@@ -845,7 +845,7 @@ enum class CompressedPixelFormat: GLenum {
/**
* ETC2/EAC compressed sRGB with alpha, normalized unsigned. **Available
* only on 2D, 2D array, cube map and cube map array textures.**
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
* @requires_gles30 ETC2 texture compression is not available in OpenGL ES
* 2.0.
*/
@@ -854,7 +854,7 @@ enum class CompressedPixelFormat: GLenum {
/**
* EAC compressed red channel, normalized unsigned. **Available only on 2D,
* 2D array, cube map and cube map array textures.**
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
* @requires_gles30 ETC2 texture compression is not available in OpenGL ES
* 2.0.
*/
@@ -863,7 +863,7 @@ enum class CompressedPixelFormat: GLenum {
/**
* EAC compressed red channel, normalized signed. **Available only on 2D,
* 2D array, cube map and cube map array textures.**
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
* @requires_gles30 ETC2 texture compression is not available in OpenGL ES
* 2.0.
*/
@@ -872,7 +872,7 @@ enum class CompressedPixelFormat: GLenum {
/**
* EAC compressed red and green channel, normalized unsigned. **Available
* only on 2D, 2D array, cube map and cube map array textures.**
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
* @requires_gles30 ETC2 texture compression is not available in OpenGL ES
* 2.0.
*/
@@ -881,7 +881,7 @@ enum class CompressedPixelFormat: GLenum {
/**
* EAC compressed red and green channel, normalized signed. **Available
* only on 2D, 2D array, cube map and cube map array textures.**
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
* @requires_gles30 ETC2 texture compression is not available in OpenGL ES
* 2.0.
*/
@@ -891,8 +891,8 @@ enum class CompressedPixelFormat: GLenum {
/**
* S3TC DXT1 compressed RGB. **Available only for 2D, 2D array, cube map
* and cube map array textures.**
- * @requires_extension Extension @extension{EXT,texture_compression_s3tc}
- * @requires_es_extension Extension @extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
+ * @requires_extension Extension @gl_extension{EXT,texture_compression_s3tc}
+ * @requires_es_extension Extension @gl_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
* @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc}
*/
RGBS3tcDxt1 = GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
@@ -900,8 +900,8 @@ enum class CompressedPixelFormat: GLenum {
/**
* S3TC DXT1 compressed RGBA. **Available only for 2D, 2D array, cube map
* and cube map array textures.**
- * @requires_extension Extension @extension{EXT,texture_compression_s3tc}
- * @requires_es_extension Extension @extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
+ * @requires_extension Extension @gl_extension{EXT,texture_compression_s3tc}
+ * @requires_es_extension Extension @gl_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
* @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc}
*/
RGBAS3tcDxt1 = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,
@@ -909,8 +909,8 @@ enum class CompressedPixelFormat: GLenum {
/**
* S3TC DXT3 compressed RGBA. **Available only for 2D, 2D array, cube map
* and cube map array textures.**
- * @requires_extension Extension @extension{EXT,texture_compression_s3tc}
- * @requires_es_extension Extension @extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
+ * @requires_extension Extension @gl_extension{EXT,texture_compression_s3tc}
+ * @requires_es_extension Extension @gl_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
* @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc}
*/
RGBAS3tcDxt3 = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
@@ -918,8 +918,8 @@ enum class CompressedPixelFormat: GLenum {
/**
* S3TC DXT5 compressed RGBA. **Available only for 2D, 2D array, cube map
* and cube map array textures.**
- * @requires_extension Extension @extension{EXT,texture_compression_s3tc}
- * @requires_es_extension Extension @extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
+ * @requires_extension Extension @gl_extension{EXT,texture_compression_s3tc}
+ * @requires_es_extension Extension @gl_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
* @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc}
*/
RGBAS3tcDxt5 = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,
@@ -928,12 +928,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed RGBA with 4x4 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -942,12 +942,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 4x4 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -956,12 +956,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed RGBA with 5x4 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -970,12 +970,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 5x4 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -984,12 +984,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed RGBA with 5x5 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -998,12 +998,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 5x5 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1012,12 +1012,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed RGBA with 6x5 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1026,12 +1026,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 6x5 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1040,12 +1040,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed RGBA with 6x6 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1054,12 +1054,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 6x6 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1068,12 +1068,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed RGBA with 8x5 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1082,12 +1082,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 8x5 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1096,12 +1096,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed RGBA with 8x6 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1110,12 +1110,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 8x6 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1124,12 +1124,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed RGBA with 8x8 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1138,12 +1138,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 8x8 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1152,12 +1152,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed RGBA with 10x5 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1166,12 +1166,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 10x5 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1180,12 +1180,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed RGBA with 10x6 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1194,12 +1194,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 10x6 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1208,12 +1208,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed RGBA with 10x8 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1222,12 +1222,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 10x8 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1236,12 +1236,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed RGBA with 10x10 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1250,12 +1250,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 10x10 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1264,12 +1264,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed RGBA with 12x10 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1278,12 +1278,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 12x10 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1292,12 +1292,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed RGBA with 12x12 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1306,12 +1306,12 @@ enum class CompressedPixelFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 12x12 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
diff --git a/src/Magnum/GL/PrimitiveQuery.h b/src/Magnum/GL/PrimitiveQuery.h
index 1cdfdedd7..a16f8dbf5 100644
--- a/src/Magnum/GL/PrimitiveQuery.h
+++ b/src/Magnum/GL/PrimitiveQuery.h
@@ -45,7 +45,7 @@ transform feedback. Example usage:
@snippet MagnumGL.cpp PrimitiveQuery-usage
@see @ref SampleQuery, @ref TimeQuery, @ref TransformFeedback
-@requires_gl30 Extension @extension{EXT,transform_feedback}
+@requires_gl30 Extension @gl_extension{EXT,transform_feedback}
@requires_gles30 Only sample queries are available in OpenGL ES 2.0.
@requires_webgl20 Queries are not available in WebGL 1.0.
*/
@@ -66,8 +66,8 @@ class MAGNUM_GL_EXPORT PrimitiveQuery: public AbstractQuery {
* @ref result() or @ref result() to retrieve the
* result.
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,geometry_shader}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL.
*/
#ifndef MAGNUM_TARGET_GLES
@@ -91,7 +91,7 @@ class MAGNUM_GL_EXPORT PrimitiveQuery: public AbstractQuery {
* Transform feedback overflow. When used with @ref begin(UnsignedInt),
* the index must be `0`. Use @ref result() to retrieve the
* result.
- * @requires_gl46 Extension @extension{ARB,transform_feedback_overflow_query}
+ * @requires_gl46 Extension @gl_extension{ARB,transform_feedback_overflow_query}
* @requires_gl Transform feedback overflow query is not available
* in OpenGL ES or WebGL.
*/
@@ -102,7 +102,7 @@ class MAGNUM_GL_EXPORT PrimitiveQuery: public AbstractQuery {
* @ref begin(UnsignedInt), the index must be lower than
* @ref TransformFeedback::maxVertexStreams(). Use @ref result()
* to retrieve the result.
- * @requires_gl46 Extension @extension{ARB,transform_feedback_overflow_query}
+ * @requires_gl46 Extension @gl_extension{ARB,transform_feedback_overflow_query}
* @requires_gl Transform feedback overflow query is not available
* in OpenGL ES or WebGL.
*/
@@ -129,7 +129,7 @@ class MAGNUM_GL_EXPORT PrimitiveQuery: public AbstractQuery {
/**
* @brief Constructor
*
- * Creates new OpenGL query object. If @extension{ARB,direct_state_access}
+ * Creates new OpenGL query object. If @gl_extension{ARB,direct_state_access}
* (part of OpenGL 4.5) is not available, the query is created on first
* use.
* @see @ref PrimitiveQuery(NoCreateT), @ref wrap(),
@@ -166,7 +166,7 @@ class MAGNUM_GL_EXPORT PrimitiveQuery: public AbstractQuery {
*
* Begins counting until @ref end() is called.
* @see @fn_gl_keyword{BeginQueryIndexed}
- * @requires_gl40 Extension @extension{ARB,transform_feedback3}
+ * @requires_gl40 Extension @gl_extension{ARB,transform_feedback3}
* @requires_gl Indexed queries are not available in OpenGL ES or WebGL.
*/
void begin(UnsignedInt index);
@@ -179,7 +179,7 @@ class MAGNUM_GL_EXPORT PrimitiveQuery: public AbstractQuery {
* @ref begin(UnsignedInt). The result can be then retrieved by calling
* @ref result().
* @see @fn_gl_keyword{EndQuery}, @fn_gl2_keyword{EndQueryIndexed,BeginQueryIndexed}
- * @requires_gl40 Extension @extension{ARB,transform_feedback3} for
+ * @requires_gl40 Extension @gl_extension{ARB,transform_feedback3} for
* indexed queries
* @requires_gl Indexed queries are not available in OpenGL ES or
* WebGL.
diff --git a/src/Magnum/GL/RectangleTexture.h b/src/Magnum/GL/RectangleTexture.h
index d29ed0a53..020e6e039 100644
--- a/src/Magnum/GL/RectangleTexture.h
+++ b/src/Magnum/GL/RectangleTexture.h
@@ -60,7 +60,7 @@ in shaders.
@see @ref Texture, @ref TextureArray, @ref CubeMapTexture,
@ref CubeMapTextureArray, @ref BufferTexture, @ref MultisampleTexture
@m_keywords{GL_TEXTURE_RECTANGLE}
-@requires_gl31 Extension @extension{ARB,texture_rectangle}
+@requires_gl31 Extension @gl_extension{ARB,texture_rectangle}
@requires_gl Rectangle textures are not available in OpenGL ES and WebGL.
*/
class MAGNUM_GL_EXPORT RectangleTexture: public AbstractTexture {
@@ -69,7 +69,7 @@ class MAGNUM_GL_EXPORT RectangleTexture: public AbstractTexture {
* @brief Max supported rectangle texture size
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If @extension{ARB,texture_rectangle} (part of
+ * OpenGL calls. If @gl_extension{ARB,texture_rectangle} (part of
* OpenGL 3.1) is not available, returns zero vector.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_RECTANGLE_TEXTURE_SIZE}
*/
@@ -79,7 +79,7 @@ class MAGNUM_GL_EXPORT RectangleTexture: public AbstractTexture {
* @brief @copybrief Texture::compressedBlockSize()
*
* See @ref Texture::compressedBlockSize() for more information.
- * @requires_gl43 Extension @extension{ARB,internalformat_query2}
+ * @requires_gl43 Extension @gl_extension{ARB,internalformat_query2}
*/
static Vector2i compressedBlockSize(TextureFormat format) {
return DataHelper<2>::compressedBlockSize(GL_TEXTURE_RECTANGLE, format);
@@ -89,7 +89,7 @@ class MAGNUM_GL_EXPORT RectangleTexture: public AbstractTexture {
* @brief @copybrief Texture::compressedBlockDataSize()
*
* See @ref Texture::compressedBlockDataSize() for more information.
- * @requires_gl43 Extension @extension{ARB,internalformat_query2}
+ * @requires_gl43 Extension @gl_extension{ARB,internalformat_query2}
* @see @ref compressedBlockSize(), @fn_gl_keyword{GetInternalformat}
* with @def_gl{TEXTURE_COMPRESSED_BLOCK_SIZE}
*/
@@ -115,7 +115,7 @@ class MAGNUM_GL_EXPORT RectangleTexture: public AbstractTexture {
/**
* @brief Constructor
*
- * Creates new OpenGL texture object. If @extension{ARB,direct_state_access}
+ * Creates new OpenGL texture object. If @gl_extension{ARB,direct_state_access}
* (part of OpenGL 4.5) is not available, the texture is created on
* first use.
* @see @ref RectangleTexture(NoCreateT), @ref wrap(),
@@ -150,7 +150,7 @@ class MAGNUM_GL_EXPORT RectangleTexture: public AbstractTexture {
* @ref unbindImage(), @ref unbindImages(),
* @ref AbstractShaderProgram::maxImageUnits(),
* @fn_gl_keyword{BindImageTexture}
- * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
+ * @requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
*/
void bindImage(Int imageUnit, ImageAccess access, ImageFormat format) {
bindImageInternal(imageUnit, 0, false, 0, access, format);
@@ -228,7 +228,7 @@ class MAGNUM_GL_EXPORT RectangleTexture: public AbstractTexture {
*
* See @ref Texture::setBorderColor(const Vector4ui&) for more
* information.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
*/
RectangleTexture& setBorderColor(const Vector4ui& color) {
AbstractTexture::setBorderColor(color);
@@ -236,7 +236,7 @@ class MAGNUM_GL_EXPORT RectangleTexture: public AbstractTexture {
}
/** @overload
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
*/
RectangleTexture& setBorderColor(const Vector4i& color) {
AbstractTexture::setBorderColor(color);
@@ -259,7 +259,7 @@ class MAGNUM_GL_EXPORT RectangleTexture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::setSRGBDecode() for more information.
- * @requires_extension Extension @extension{EXT,texture_sRGB_decode}
+ * @requires_extension Extension @gl_extension{EXT,texture_sRGB_decode}
*/
RectangleTexture& setSRGBDecode(bool decode) {
AbstractTexture::setSRGBDecode(decode);
@@ -271,7 +271,7 @@ class MAGNUM_GL_EXPORT RectangleTexture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::setSwizzle() for more information.
- * @requires_gl33 Extension @extension{ARB,texture_swizzle}
+ * @requires_gl33 Extension @gl_extension{ARB,texture_swizzle}
*/
template RectangleTexture& setSwizzle() {
AbstractTexture::setSwizzle();
@@ -305,7 +305,7 @@ class MAGNUM_GL_EXPORT RectangleTexture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::setDepthStencilMode() for more information.
- * @requires_gl43 Extension @extension{ARB,stencil_texturing}
+ * @requires_gl43 Extension @gl_extension{ARB,stencil_texturing}
*/
RectangleTexture& setDepthStencilMode(SamplerDepthStencilMode mode) {
AbstractTexture::setDepthStencilMode(mode);
@@ -371,7 +371,7 @@ class MAGNUM_GL_EXPORT RectangleTexture: public AbstractTexture {
*
* See @ref Texture::compressedImage(Int, CompressedImage&) for more
* information.
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
*/
void compressedImage(CompressedImage2D& image) {
@@ -391,7 +391,7 @@ class MAGNUM_GL_EXPORT RectangleTexture: public AbstractTexture {
*
* See @ref Texture::compressedImage(Int, CompressedBufferImage&, BufferUsage)
* for more information.
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
*/
void compressedImage(CompressedBufferImage2D& image, BufferUsage usage) {
@@ -411,7 +411,7 @@ class MAGNUM_GL_EXPORT RectangleTexture: public AbstractTexture {
*
* See @ref Texture::subImage(Int, const RangeTypeFor&, Image&)
* for more information.
- * @requires_gl45 Extension @extension{ARB,get_texture_sub_image}
+ * @requires_gl45 Extension @gl_extension{ARB,get_texture_sub_image}
*/
void subImage(const Range2Di& range, Image2D& image) {
AbstractTexture::subImage<2>(0, range, image);
@@ -430,7 +430,7 @@ class MAGNUM_GL_EXPORT RectangleTexture: public AbstractTexture {
*
* See @ref Texture::subImage(Int, const RangeTypeFor&, BufferImage&, BufferUsage)
* for more information.
- * @requires_gl45 Extension @extension{ARB,get_texture_sub_image}
+ * @requires_gl45 Extension @gl_extension{ARB,get_texture_sub_image}
*/
void subImage(const Range2Di& range, BufferImage2D& image, BufferUsage usage) {
AbstractTexture::subImage<2>(0, range, image, usage);
@@ -449,10 +449,10 @@ class MAGNUM_GL_EXPORT RectangleTexture: public AbstractTexture {
*
* See @ref Texture::compressedSubImage(Int, const RangeTypeFor&, CompressedImage&)
* for more information.
- * @requires_gl45 Extension @extension{ARB,get_texture_sub_image}
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl45 Extension @gl_extension{ARB,get_texture_sub_image}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
- * @requires_gl43 Extension @extension{ARB,internalformat_query2} if
+ * @requires_gl43 Extension @gl_extension{ARB,internalformat_query2} if
* @ref CompressedPixelStorage::compressedBlockSize() and
* @ref CompressedPixelStorage::compressedBlockDataSize() are not
* set to non-zero values
@@ -474,10 +474,10 @@ class MAGNUM_GL_EXPORT RectangleTexture: public AbstractTexture {
*
* See @ref Texture::compressedSubImage(Int, const RangeTypeFor&, CompressedBufferImage&, BufferUsage)
* for more information.
- * @requires_gl45 Extension @extension{ARB,get_texture_sub_image}
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl45 Extension @gl_extension{ARB,get_texture_sub_image}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
- * @requires_gl43 Extension @extension{ARB,internalformat_query2} if
+ * @requires_gl43 Extension @gl_extension{ARB,internalformat_query2} if
* @ref CompressedPixelStorage::compressedBlockSize() and
* @ref CompressedPixelStorage::compressedBlockDataSize() are not
* set to non-zero values
@@ -531,7 +531,7 @@ class MAGNUM_GL_EXPORT RectangleTexture: public AbstractTexture {
*
* See @ref Texture::setCompressedImage() for more information.
* @see @ref maxSize()
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @deprecated_gl Prefer to use @ref setStorage() and
* @ref setCompressedSubImage() instead.
@@ -585,7 +585,7 @@ class MAGNUM_GL_EXPORT RectangleTexture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::setCompressedSubImage() for more information.
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
*/
RectangleTexture& setCompressedSubImage(const Vector2i& offset, const CompressedImageView2D& image) {
diff --git a/src/Magnum/GL/Renderbuffer.h b/src/Magnum/GL/Renderbuffer.h
index ac7ddb30c..611201838 100644
--- a/src/Magnum/GL/Renderbuffer.h
+++ b/src/Magnum/GL/Renderbuffer.h
@@ -52,13 +52,13 @@ The engine tracks currently bound renderbuffer to avoid unnecessary calls to
implementation-defined values (such as @ref maxSize()) are cached, so repeated
queries don't result in repeated @fn_gl{Get} calls.
-If either @extension{ARB,direct_state_access} (part of OpenGL 4.5) or
-@extension{EXT,direct_state_access} desktop extension is available, functions
+If either @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) or
+@gl_extension{EXT,direct_state_access} desktop extension is available, functions
@ref setStorage() and @ref setStorageMultisample() use DSA to avoid unnecessary
calls to @fn_gl{BindRenderbuffer}. See their respective documentation for more
information.
-@requires_gl30 Extension @extension{ARB,framebuffer_object}
+@requires_gl30 Extension @gl_extension{ARB,framebuffer_object}
*/
class MAGNUM_GL_EXPORT Renderbuffer: public AbstractObject {
friend Implementation::FramebufferState;
@@ -80,8 +80,8 @@ class MAGNUM_GL_EXPORT Renderbuffer: public AbstractObject {
*
* The result is cached, repeated queries don't result in repeated
* OpenGL calls. If neither OpenGL ES 3.0 nor ES extension
- * @extension{ANGLE,framebuffer_multisample} /
- * @extension{NV,framebuffer_multisample} is available, returns
+ * @gl_extension{ANGLE,framebuffer_multisample} /
+ * @gl_extension{NV,framebuffer_multisample} is available, returns
* @cpp 0 @ce.
* @see @ref setStorageMultisample(), @fn_gl{Get} with
* @def_gl_keyword{MAX_SAMPLES}
@@ -109,7 +109,7 @@ class MAGNUM_GL_EXPORT Renderbuffer: public AbstractObject {
/**
* @brief Constructor
*
- * Generates new OpenGL renderbuffer object. If @extension{ARB,direct_state_access}
+ * Generates new OpenGL renderbuffer object. If @gl_extension{ARB,direct_state_access}
* (part of OpenGL 4.5) is not available, the renderbuffer is created
* on first use.
* @see @ref Renderbuffer(NoCreateT), @ref wrap(),
@@ -173,8 +173,8 @@ class MAGNUM_GL_EXPORT Renderbuffer: public AbstractObject {
*
* The result is *not* cached, repeated queries will result in repeated
* OpenGL calls. If OpenGL 4.3 / OpenGL ES 3.2 is not supported and
- * neither @extension{KHR,debug} (covered also by
- * @extension{ANDROID,extension_pack_es31a}) nor @extension{EXT,debug_label}
+ * neither @gl_extension{KHR,debug} (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) nor @gl_extension{EXT,debug_label}
* desktop or ES extension is available, this function returns empty
* string.
* @see @fn_gl_keyword{GetObjectLabel} or
@@ -189,8 +189,8 @@ class MAGNUM_GL_EXPORT Renderbuffer: public AbstractObject {
* @return Reference to self (for method chaining)
*
* Default is empty string. If OpenGL 4.3 / OpenGL ES 3.2 is not
- * supported and neither @extension{KHR,debug} (covered also by
- * @extension{ANDROID,extension_pack_es31a}) nor @extension{EXT,debug_label}
+ * supported and neither @gl_extension{KHR,debug} (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) nor @gl_extension{EXT,debug_label}
* desktop or ES extension is available, this function does nothing.
* @see @ref maxLabelLength(), @fn_gl_keyword{ObjectLabel} or
* @fn_gl_extension_keyword{LabelObject,EXT,debug_label} with
@@ -212,8 +212,8 @@ class MAGNUM_GL_EXPORT Renderbuffer: public AbstractObject {
* @param internalFormat Internal format
* @param size Renderbuffer size
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the renderbuffer is bound before the operation (if not
* already).
* @see @ref maxSize(), @fn_gl2_keyword{NamedRenderbufferStorage,RenderbufferStorage},
@@ -230,8 +230,8 @@ class MAGNUM_GL_EXPORT Renderbuffer: public AbstractObject {
* @param internalFormat Internal format
* @param size Renderbuffer size
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the renderbuffer is bound before the operation (if not
* already).
* @see @ref maxSize(), @ref maxSamples(),
@@ -239,11 +239,11 @@ class MAGNUM_GL_EXPORT Renderbuffer: public AbstractObject {
* @fn_gl_extension_keyword{NamedRenderbufferStorageMultisample,EXT,direct_state_access},
* eventually @fn_gl{BindRenderbuffer} and
* @fn_gl_keyword{RenderbufferStorageMultisample}
- * @requires_gles30 Extension @extension{ANGLE,framebuffer_multisample}
- * or @extension{NV,framebuffer_multisample} in OpenGL ES 2.0.
+ * @requires_gles30 Extension @gl_extension{ANGLE,framebuffer_multisample}
+ * or @gl_extension{NV,framebuffer_multisample} in OpenGL ES 2.0.
* @requires_webgl20 Multisample framebuffers are not available in
* WebGL 1.0.
- * @todo How about @extension{APPLE,framebuffer_multisample}, @fn_gl_extension{RenderbufferStorageMultisample,EXT,multisampled_render_to_texture}?
+ * @todo How about @gl_extension{APPLE,framebuffer_multisample}, @fn_gl_extension{RenderbufferStorageMultisample,EXT,multisampled_render_to_texture}?
*/
void setStorageMultisample(Int samples, RenderbufferFormat internalFormat, const Vector2i& size);
#endif
diff --git a/src/Magnum/GL/RenderbufferFormat.h b/src/Magnum/GL/RenderbufferFormat.h
index 09e9d8a12..72c0b2d21 100644
--- a/src/Magnum/GL/RenderbufferFormat.h
+++ b/src/Magnum/GL/RenderbufferFormat.h
@@ -38,14 +38,14 @@ namespace Magnum { namespace GL {
@see @ref Renderbuffer
@m_enum_values_as_keywords
-@requires_gl30 Extension @extension{ARB,framebuffer_object}
-@todo RGB, RGB8 ES only (ES3 + @extension{OES,rgb8_rgba8})
+@requires_gl30 Extension @gl_extension{ARB,framebuffer_object}
+@todo RGB, RGB8 ES only (ES3 + @gl_extension{OES,rgb8_rgba8})
*/
enum class RenderbufferFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES
/**
* Red component, normalized unsigned, size implementation-dependent.
- * @requires_gl30 Extension @extension{ARB,texture_rg}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg}
* @requires_gl Use exactly specified format in OpenGL ES or WebGL instead.
* @deprecated_gl Prefer to use the exactly specified version of this
* format, e.g. @ref RenderbufferFormat::R8.
@@ -56,8 +56,8 @@ enum class RenderbufferFormat: GLenum {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* Red component, normalized unsigned byte.
- * @requires_gl30 Extension @extension{ARB,texture_rg}
- * @requires_gles30 Extension @extension{EXT,texture_rg} in OpenGL ES
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg}
+ * @requires_gles30 Extension @gl_extension{EXT,texture_rg} in OpenGL ES
* 2.0.
* @requires_webgl20 Not available in WebGL 1.0.
*/
@@ -72,7 +72,7 @@ enum class RenderbufferFormat: GLenum {
/**
* Red and green component, normalized unsigned, size
* implementation-dependent.
- * @requires_gl30 Extension @extension{ARB,texture_rg}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg}
* @requires_gl Use exactly specified format in OpenGL ES or WebGL instead.
* @deprecated_gl Prefer to use the exactly specified version of this
* format, e.g. @ref RenderbufferFormat::RG8.
@@ -83,8 +83,8 @@ enum class RenderbufferFormat: GLenum {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* Red and green component, each normalized unsigned byte.
- * @requires_gl30 Extension @extension{ARB,texture_rg}
- * @requires_gles30 Extension @extension{EXT,texture_rg} in OpenGL ES
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg}
+ * @requires_gles30 Extension @gl_extension{EXT,texture_rg} in OpenGL ES
* 2.0.
* @requires_webgl20 Not available in WebGL 1.0.
*/
@@ -108,7 +108,7 @@ enum class RenderbufferFormat: GLenum {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* RGBA, each component normalized unsigned byte.
- * @requires_gles30 Extension @extension{ARM,rgba8} or @extension{OES,rgb8_rgba8}
+ * @requires_gles30 Extension @gl_extension{ARM,rgba8} or @gl_extension{OES,rgb8_rgba8}
* in OpenGL ES 2.0.
* @requires_webgl20 Not available in WebGL 1.0.
*/
@@ -122,7 +122,7 @@ enum class RenderbufferFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES
/**
* Red component, normalized unsigned short.
- * @requires_gl30 Extension @extension{ARB,texture_rg}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg}
* @requires_gl Only byte-sized normalized formats are available in OpenGL
* ES and WebGL.
*/
@@ -130,7 +130,7 @@ enum class RenderbufferFormat: GLenum {
/**
* Red and green component, each normalized unsigned short.
- * @requires_gl30 Extension @extension{ARB,texture_rg}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg}
* @requires_gl Only byte-sized normalized formats are available in OpenGL
* ES and WebGL.
*/
@@ -154,7 +154,7 @@ enum class RenderbufferFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES2
/**
* Red component, non-normalized unsigned byte.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -164,7 +164,7 @@ enum class RenderbufferFormat: GLenum {
/**
* Red and green component, each non-normalized unsigned byte.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -174,7 +174,7 @@ enum class RenderbufferFormat: GLenum {
/**
* RGBA, each component non-normalized unsigned byte.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -184,7 +184,7 @@ enum class RenderbufferFormat: GLenum {
/**
* Red component, non-normalized signed byte.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -194,7 +194,7 @@ enum class RenderbufferFormat: GLenum {
/**
* Red and green component, each non-normalized signed byte.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -204,7 +204,7 @@ enum class RenderbufferFormat: GLenum {
/**
* RGBA, each component non-normalized signed byte.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -214,7 +214,7 @@ enum class RenderbufferFormat: GLenum {
/**
* Red component, non-normalized unsigned short.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -224,7 +224,7 @@ enum class RenderbufferFormat: GLenum {
/**
* Red and green component, each non-normalized unsigned short.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -234,7 +234,7 @@ enum class RenderbufferFormat: GLenum {
/**
* RGBA, each component non-normalized unsigned short.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -244,7 +244,7 @@ enum class RenderbufferFormat: GLenum {
/**
* Red component, non-normalized signed short.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -254,7 +254,7 @@ enum class RenderbufferFormat: GLenum {
/**
* Red and green component, each non-normalized signed short.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -264,7 +264,7 @@ enum class RenderbufferFormat: GLenum {
/**
* RGBA, each component non-normalized signed short.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -274,7 +274,7 @@ enum class RenderbufferFormat: GLenum {
/**
* Red component, non-normalized unsigned int.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -284,7 +284,7 @@ enum class RenderbufferFormat: GLenum {
/**
* Red and green component, each non-normalized unsigned int.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -294,7 +294,7 @@ enum class RenderbufferFormat: GLenum {
/**
* RGBA, each component non-normalized unsigned int.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -304,7 +304,7 @@ enum class RenderbufferFormat: GLenum {
/**
* Red component, non-normalized signed int.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -314,7 +314,7 @@ enum class RenderbufferFormat: GLenum {
/**
* Red and green component, each non-normalized signed int.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -324,7 +324,7 @@ enum class RenderbufferFormat: GLenum {
/**
* RGBA, each component non-normalized signed int.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -336,8 +336,8 @@ enum class RenderbufferFormat: GLenum {
#if !(defined(MAGNUM_TARGET_GLES2) && defined(MAGNUM_TARGET_WEBGL))
/**
* Red component, half float.
- * @requires_gl30 Extension @extension{ARB,texture_float}
- * @requires_gles32 Extension @extension{EXT,color_buffer_half_float}. Use
+ * @requires_gl30 Extension @gl_extension{ARB,texture_float}
+ * @requires_gles32 Extension @gl_extension{EXT,color_buffer_half_float}. Use
* @ref RenderbufferFormat::R16UI or @ref RenderbufferFormat::R16I
* instead if not available.
* @requires_webgl20 Not defined in WebGL 1.0 builds. Only four-component
@@ -355,8 +355,8 @@ enum class RenderbufferFormat: GLenum {
/**
* Red and green component, each half float.
- * @requires_gl30 Extension @extension{ARB,texture_float}
- * @requires_gles32 Extension @extension{EXT,color_buffer_half_float}. Use
+ * @requires_gl30 Extension @gl_extension{ARB,texture_float}
+ * @requires_gles32 Extension @gl_extension{EXT,color_buffer_half_float}. Use
* @ref RenderbufferFormat::RG16UI or @ref RenderbufferFormat::RG16I
* instead if not available.
* @requires_webgl20 Not defined in WebGL 1.0 builds. Only four-component
@@ -375,8 +375,8 @@ enum class RenderbufferFormat: GLenum {
/**
* RGBA, each component half float.
- * @requires_gl30 Extension @extension{ARB,texture_float}
- * @requires_gles32 Extension @extension{EXT,color_buffer_half_float}. Use
+ * @requires_gl30 Extension @gl_extension{ARB,texture_float}
+ * @requires_gles32 Extension @gl_extension{EXT,color_buffer_half_float}. Use
* @ref RenderbufferFormat::RGBA16UI or @ref RenderbufferFormat::RGBA16I
* instead if not available.
* @requires_webgl_extension Extension @webgl_extension{EXT,color_buffer_half_float}
@@ -393,9 +393,9 @@ enum class RenderbufferFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES2
/**
* Red component, float.
- * @requires_gl30 Extension @extension{ARB,texture_float}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_float}
* @requires_gles30 Not defined in OpenGL ES 2.0 builds.
- * @requires_gles32 Extension @extension{EXT,color_buffer_float} in OpenGL
+ * @requires_gles32 Extension @gl_extension{EXT,color_buffer_float} in OpenGL
* ES 3.0. Use @ref RenderbufferFormat::R32UI or @ref RenderbufferFormat::R32I
* instead if not available.
* @requires_webgl20 Not defined in WebGL 1.0 builds. Only four-component
@@ -409,9 +409,9 @@ enum class RenderbufferFormat: GLenum {
/**
* Red and green component, each float.
- * @requires_gl30 Extension @extension{ARB,texture_float}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_float}
* @requires_gles30 Not defined in OpenGL ES 2.0 builds.
- * @requires_gles32 Extension @extension{EXT,color_buffer_float} in OpenGL
+ * @requires_gles32 Extension @gl_extension{EXT,color_buffer_float} in OpenGL
* ES 3.0. Use @ref RenderbufferFormat::RG32UI or @ref RenderbufferFormat::RG32I
* instead if not available.
* @requires_webgl20 Not defined in WebGL 1.0 builds. Only four-component
@@ -427,9 +427,9 @@ enum class RenderbufferFormat: GLenum {
#if !defined(MAGNUM_TARGET_GLES2) || defined(MAGNUM_TARGET_WEBGL)
/**
* RGBA, each component float.
- * @requires_gl30 Extension @extension{ARB,texture_float}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_float}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{EXT,color_buffer_float}. Use
+ * @requires_gles32 Extension @gl_extension{EXT,color_buffer_float}. Use
* @ref RenderbufferFormat::RGBA32UI or @ref RenderbufferFormat::RGBA32I
* instead if not available.
* @requires_webgl_extension Extension @webgl_extension{WEBGL,color_buffer_float}
@@ -457,7 +457,7 @@ enum class RenderbufferFormat: GLenum {
/**
* RGBA, non-normalized unsigned, each RGB component 10bit, alpha 2bit.
- * @requires_gl33 Extension @extension{ARB,texture_rgb10_a2ui}
+ * @requires_gl33 Extension @gl_extension{ARB,texture_rgb10_a2ui}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -475,7 +475,7 @@ enum class RenderbufferFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES
/**
* RGB, float, red and green 11bit, blue 10bit.
- * @requires_gl30 Extension @extension{EXT,packed_float}
+ * @requires_gl30 Extension @gl_extension{EXT,packed_float}
* @requires_gl Usable only as internal texture format in OpenGL ES and
* WebGL, see @ref TextureFormat::R11FG11FB10F.
*/
@@ -487,7 +487,7 @@ enum class RenderbufferFormat: GLenum {
/**
* sRGBA, each component normalized unsigned byte.
- * @requires_gles30 Extension @extension{EXT,sRGB} in OpenGL ES 2.0.
+ * @requires_gles30 Extension @gl_extension{EXT,sRGB} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{EXT,sRGB} in WebGL 1.0.
*/
#ifndef MAGNUM_TARGET_GLES2
@@ -514,7 +514,7 @@ enum class RenderbufferFormat: GLenum {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* Depth component, 24bit.
- * @requires_gles30 Extension @extension{OES,depth24} in OpenGL ES 2.0.
+ * @requires_gles30 Extension @gl_extension{OES,depth24} in OpenGL ES 2.0.
* @requires_webgl20 Only 16bit depth component is available in WebGL.
*/
#ifndef MAGNUM_TARGET_GLES2
@@ -527,7 +527,7 @@ enum class RenderbufferFormat: GLenum {
#ifndef MAGNUM_TARGET_WEBGL
/**
* Depth component, 32bit.
- * @requires_es_extension Extension @extension{OES,depth32}
+ * @requires_es_extension Extension @gl_extension{OES,depth32}
* @requires_gles At most 24bit depth component is available in WebGL.
*/
#ifndef MAGNUM_TARGET_GLES
@@ -540,7 +540,7 @@ enum class RenderbufferFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES2
/**
* Depth component, 32bit float.
- * @requires_gl30 Extension @extension{ARB,depth_buffer_float}
+ * @requires_gl30 Extension @gl_extension{ARB,depth_buffer_float}
* @requires_gles30 Only integral depth textures are available in OpenGL ES
* 2.0.
* @requires_webgl20 Only integral depth textures are available in WebGL
@@ -563,7 +563,7 @@ enum class RenderbufferFormat: GLenum {
#ifndef MAGNUM_TARGET_WEBGL
/**
* 1-bit stencil index.
- * @requires_es_extension Extension @extension{OES,stencil1}
+ * @requires_es_extension Extension @gl_extension{OES,stencil1}
* @requires_gles Only 8bit stencil index is available in WebGL.
*/
#ifndef MAGNUM_TARGET_GLES
@@ -574,7 +574,7 @@ enum class RenderbufferFormat: GLenum {
/**
* 4-bit stencil index.
- * @requires_es_extension Extension @extension{OES,stencil4}
+ * @requires_es_extension Extension @gl_extension{OES,stencil4}
* @requires_gles Only 8bit stencil index is available in WebGL.
*/
#ifndef MAGNUM_TARGET_GLES
@@ -614,7 +614,7 @@ enum class RenderbufferFormat: GLenum {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* 24bit depth and 8bit stencil component.
- * @requires_gles30 Extension @extension{OES,packed_depth_stencil} in
+ * @requires_gles30 Extension @gl_extension{OES,packed_depth_stencil} in
* OpenGL ES 2.0.
* @requires_webgl20 Use @ref RenderbufferFormat::DepthStencil in WebGL
* 1.0 instead.
@@ -629,7 +629,7 @@ enum class RenderbufferFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES2
/**
* 32bit float depth component and 8bit stencil component.
- * @requires_gl30 Extension @extension{ARB,depth_buffer_float}
+ * @requires_gl30 Extension @gl_extension{ARB,depth_buffer_float}
* @requires_gles30 Only integral depth textures are available in OpenGL ES
* 2.0.
* @requires_webgl20 Only integral depth textures are available in WebGL
diff --git a/src/Magnum/GL/Renderer.h b/src/Magnum/GL/Renderer.h
index 365bc3866..5310bb799 100644
--- a/src/Magnum/GL/Renderer.h
+++ b/src/Magnum/GL/Renderer.h
@@ -43,7 +43,7 @@ namespace Implementation { struct RendererState; }
/** @nosubgrouping
@brief Global renderer configuration.
-@todo @extension{ARB,viewport_array}
+@todo @gl_extension{ARB,viewport_array}
@todo `GL_POINT_SIZE_GRANULARITY`, `GL_POINT_SIZE_RANGE` (?)
@todo `GL_STEREO`, `GL_DOUBLEBUFFER` (?)
@todo `GL_MAX_CLIP_DISTANCES`...
@@ -83,11 +83,11 @@ class MAGNUM_GL_EXPORT Renderer {
#ifndef MAGNUM_TARGET_WEBGL
/**
* Coherent advanced blending. Enabled by default if desktop/ES
- * extension @extension2{KHR,blend_equation_advanced_coherent,blend_equation_advanced}
+ * extension @gl_extension2{KHR,blend_equation_advanced_coherent,blend_equation_advanced}
* is available. See @ref blendBarrier() for more information.
- * @requires_extension Extension @extension{KHR,blend_equation_advanced}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
+ * @requires_extension Extension @gl_extension{KHR,blend_equation_advanced}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in WebGL.
*/
BlendAdvancedCoherent = GL_BLEND_ADVANCED_COHERENT_KHR,
@@ -106,9 +106,9 @@ class MAGNUM_GL_EXPORT Renderer {
* created with debug output enabled.
* @see @ref DebugOutput, @ref Feature::DebugOutputSynchronous,
* @ref Platform::Sdl2Application::GLConfiguration::Flag::Debug "Platform::*Application::GLConfiguration::Flag::Debug"
- * @requires_gl43 Extension @extension{KHR,debug}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,debug,debug}
+ * @requires_gl43 Extension @gl_extension{KHR,debug}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,debug,debug}
* @requires_gles Debug output is not available in WebGL.
*/
#ifndef MAGNUM_TARGET_GLES2
@@ -121,9 +121,9 @@ class MAGNUM_GL_EXPORT Renderer {
* Synchronous debug output. Has effect only if
* @ref Feature::DebugOutput is enabled.
* @see @ref DebugMessage
- * @requires_gl43 Extension @extension{KHR,debug}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,debug,debug}
+ * @requires_gl43 Extension @gl_extension{KHR,debug}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,debug,debug}
* @requires_gles Debug output is not available in WebGL.
*/
#ifndef MAGNUM_TARGET_GLES2
@@ -136,7 +136,7 @@ class MAGNUM_GL_EXPORT Renderer {
#ifndef MAGNUM_TARGET_GLES
/**
* Depth clamping. If enabled, ignores near and far clipping plane.
- * @requires_gl32 Extension @extension{ARB,depth_clamp}
+ * @requires_gl32 Extension @gl_extension{ARB,depth_clamp}
* @requires_gl Depth clamping is not available in OpenGL ES and
* WebGL.
*/
@@ -163,8 +163,8 @@ class MAGNUM_GL_EXPORT Renderer {
* Perform sRGB conversion of values written to sRGB framebuffers.
* Disabled by default on desktop GL, enabled by default on OpenGL
* ES.
- * @requires_gl30 Extension @extension{ARB,framebuffer_sRGB}
- * @requires_es_extension @extension{EXT,sRGB_write_control}. If
+ * @requires_gl30 Extension @gl_extension{ARB,framebuffer_sRGB}
+ * @requires_es_extension @gl_extension{EXT,sRGB_write_control}. If
* the extension is not present, there's no ability to turn
* the sRGB conversion off.
* @requires_gles WebGL has no ability to turn the sRGB conversion
@@ -207,7 +207,7 @@ class MAGNUM_GL_EXPORT Renderer {
* Offset lines
* @see @ref Feature::PolygonOffsetFill, @ref Feature::PolygonOffsetPoint,
* @ref setPolygonOffset()
- * @requires_es_extension Extension @extension{NV,polygon_offset}
+ * @requires_es_extension Extension @gl_extension{NV,polygon_offset}
* @requires_gles Only @ref Feature::PolygonOffsetFill is available
* in WebGL.
*/
@@ -221,7 +221,7 @@ class MAGNUM_GL_EXPORT Renderer {
* Offset points
* @see @ref Feature::PolygonOffsetFill, @ref Feature::PolygonOffsetLine,
* @ref setPolygonOffset()
- * @requires_es_extension Extension @extension{NV,polygon_offset}
+ * @requires_es_extension Extension @gl_extension{NV,polygon_offset}
* @requires_gles Only @ref Feature::PolygonOffsetFill is available
* in WebGL.
*/
@@ -245,7 +245,7 @@ class MAGNUM_GL_EXPORT Renderer {
#ifndef MAGNUM_TARGET_GLES2
/**
* Discard primitives before rasterization.
- * @requires_gl30 Extension @extension{EXT,transform_feedback}
+ * @requires_gl30 Extension @gl_extension{EXT,transform_feedback}
* @requires_gles30 Transform feedback is not available in OpenGL
* ES 2.0.
* @requires_webgl20 Transform feedback is not available in WebGL
@@ -264,7 +264,7 @@ class MAGNUM_GL_EXPORT Renderer {
/**
* Seamless cube map texture.
* @see @ref CubeMapTexture, @ref CubeMapTextureArray
- * @requires_gl32 Extension @extension{ARB,seamless_cube_map}
+ * @requires_gl32 Extension @gl_extension{ARB,seamless_cube_map}
* @requires_gl Not available in OpenGL ES 2.0 and WebGL 1.0,
* always enabled in OpenGL ES 3.0 and WebGL 2.0.
*/
@@ -317,7 +317,7 @@ class MAGNUM_GL_EXPORT Renderer {
enum class Hint: GLenum {
/**
* Accuracy of derivative calculation in fragment shader.
- * @requires_gles30 Extension @extension{OES,standard_derivatives}
+ * @requires_gles30 Extension @gl_extension{OES,standard_derivatives}
* in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{OES,standard_derivatives}
* in WebGL 1.0.
@@ -396,7 +396,7 @@ class MAGNUM_GL_EXPORT Renderer {
/**
* @overload
*
- * If OpenGL ES, OpenGL 4.1 or extension @extension{ARB,ES2_compatibility}
+ * If OpenGL ES, OpenGL 4.1 or extension @gl_extension{ARB,ES2_compatibility}
* is not available, this function behaves exactly as
* @ref setClearDepth(Double).
* @see @ref Feature::DepthTest, @ref AbstractFramebuffer::clearDepth(),
@@ -465,7 +465,7 @@ class MAGNUM_GL_EXPORT Renderer {
*
* @see @ref setProvokingVertex()
* @m_enum_values_as_keywords
- * @requires_gl32 Extension @extension{ARB,provoking_vertex}. Older
+ * @requires_gl32 Extension @gl_extension{ARB,provoking_vertex}. Older
* versions behave always like @ref ProvokingVertex::LastVertexConvention.
* @requires_gl OpenGL ES and WebGL behave always like
* @ref ProvokingVertex::LastVertexConvention.
@@ -483,7 +483,7 @@ class MAGNUM_GL_EXPORT Renderer {
*
* Initial value is @ref ProvokingVertex::LastVertexConvention.
* @see @fn_gl_keyword{ProvokingVertex}
- * @requires_gl32 Extension @extension{ARB,provoking_vertex}. Older
+ * @requires_gl32 Extension @gl_extension{ARB,provoking_vertex}. Older
* versions behave always like the default.
* @requires_gl OpenGL ES and WebGL behave always like the default.
*/
@@ -496,7 +496,7 @@ class MAGNUM_GL_EXPORT Renderer {
*
* @see @ref setPolygonMode()
* @m_enum_values_as_keywords
- * @requires_es_extension Extension @extension{NV,polygon_mode}.
+ * @requires_es_extension Extension @gl_extension{NV,polygon_mode}.
* Otherwise behaves always like @ref PolygonMode::Fill. See
* @ref Mesh::setPrimitive() for possible workaround.
* @requires_gles WebGL behaves always like @ref PolygonMode::Fill. See
@@ -537,7 +537,7 @@ class MAGNUM_GL_EXPORT Renderer {
*
* Initial value is @ref PolygonMode::Fill.
* @see @fn_gl_keyword{PolygonMode}
- * @requires_es_extension Extension @extension{NV,polygon_mode}.
+ * @requires_es_extension Extension @gl_extension{NV,polygon_mode}.
* Otherwise behaves always like the default. See
* @ref Mesh::setPrimitive() for possible workaround.
* @requires_gles WebGL behaves always like the default. See
@@ -794,7 +794,7 @@ class MAGNUM_GL_EXPORT Renderer {
/**
* `min(source, destination)`
- * @requires_gles30 Extension @extension2{EXT,blend_minmax,blend_minmax}
+ * @requires_gles30 Extension @gl_extension2{EXT,blend_minmax,blend_minmax}
* in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{EXT,blend_minmax}
* in WebGL 1.0.
@@ -807,7 +807,7 @@ class MAGNUM_GL_EXPORT Renderer {
/**
* `max(source, destination)`
- * @requires_gles30 Extension @extension2{EXT,blend_minmax,blend_minmax}
+ * @requires_gles30 Extension @gl_extension2{EXT,blend_minmax,blend_minmax}
* in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{EXT,blend_minmax}
* in WebGL 1.0.
@@ -824,9 +824,9 @@ class MAGNUM_GL_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation, BlendEquation), only in
* @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier()
- * @requires_extension Extension @extension{KHR,blend_equation_advanced}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
+ * @requires_extension Extension @gl_extension{KHR,blend_equation_advanced}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in
* WebGL.
*/
@@ -837,9 +837,9 @@ class MAGNUM_GL_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation, BlendEquation), only in
* @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier()
- * @requires_extension Extension @extension{KHR,blend_equation_advanced}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
+ * @requires_extension Extension @gl_extension{KHR,blend_equation_advanced}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in
* WebGL.
*/
@@ -850,9 +850,9 @@ class MAGNUM_GL_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation, BlendEquation), only in
* @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier()
- * @requires_extension Extension @extension{KHR,blend_equation_advanced}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
+ * @requires_extension Extension @gl_extension{KHR,blend_equation_advanced}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in
* WebGL.
*/
@@ -863,9 +863,9 @@ class MAGNUM_GL_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation, BlendEquation), only in
* @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier()
- * @requires_extension Extension @extension{KHR,blend_equation_advanced}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
+ * @requires_extension Extension @gl_extension{KHR,blend_equation_advanced}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in
* WebGL.
*/
@@ -876,9 +876,9 @@ class MAGNUM_GL_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation, BlendEquation), only in
* @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier()
- * @requires_extension Extension @extension{KHR,blend_equation_advanced}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
+ * @requires_extension Extension @gl_extension{KHR,blend_equation_advanced}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in
* WebGL.
*/
@@ -889,9 +889,9 @@ class MAGNUM_GL_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation, BlendEquation), only in
* @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier()
- * @requires_extension Extension @extension{KHR,blend_equation_advanced}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
+ * @requires_extension Extension @gl_extension{KHR,blend_equation_advanced}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in
* WebGL.
*/
@@ -902,9 +902,9 @@ class MAGNUM_GL_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation, BlendEquation), only in
* @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier()
- * @requires_extension Extension @extension{KHR,blend_equation_advanced}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
+ * @requires_extension Extension @gl_extension{KHR,blend_equation_advanced}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in
* WebGL.
*/
@@ -915,9 +915,9 @@ class MAGNUM_GL_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation, BlendEquation), only in
* @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier()
- * @requires_extension Extension @extension{KHR,blend_equation_advanced}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
+ * @requires_extension Extension @gl_extension{KHR,blend_equation_advanced}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in
* WebGL.
*/
@@ -928,9 +928,9 @@ class MAGNUM_GL_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation, BlendEquation), only in
* @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier()
- * @requires_extension Extension @extension{KHR,blend_equation_advanced}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
+ * @requires_extension Extension @gl_extension{KHR,blend_equation_advanced}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in
* WebGL.
*/
@@ -941,9 +941,9 @@ class MAGNUM_GL_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation, BlendEquation), only in
* @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier()
- * @requires_extension Extension @extension{KHR,blend_equation_advanced}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
+ * @requires_extension Extension @gl_extension{KHR,blend_equation_advanced}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in
* WebGL.
*/
@@ -954,9 +954,9 @@ class MAGNUM_GL_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation, BlendEquation), only in
* @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier()
- * @requires_extension Extension @extension{KHR,blend_equation_advanced}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
+ * @requires_extension Extension @gl_extension{KHR,blend_equation_advanced}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in
* WebGL.
*/
@@ -967,9 +967,9 @@ class MAGNUM_GL_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation, BlendEquation), only in
* @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier()
- * @requires_extension Extension @extension{KHR,blend_equation_advanced}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
+ * @requires_extension Extension @gl_extension{KHR,blend_equation_advanced}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in
* WebGL.
*/
@@ -980,9 +980,9 @@ class MAGNUM_GL_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation, BlendEquation), only in
* @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier()
- * @requires_extension Extension @extension{KHR,blend_equation_advanced}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
+ * @requires_extension Extension @gl_extension{KHR,blend_equation_advanced}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in
* WebGL.
*/
@@ -993,9 +993,9 @@ class MAGNUM_GL_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation, BlendEquation), only in
* @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier()
- * @requires_extension Extension @extension{KHR,blend_equation_advanced}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
+ * @requires_extension Extension @gl_extension{KHR,blend_equation_advanced}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in
* WebGL.
*/
@@ -1006,9 +1006,9 @@ class MAGNUM_GL_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation, BlendEquation), only in
* @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier()
- * @requires_extension Extension @extension{KHR,blend_equation_advanced}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
+ * @requires_extension Extension @gl_extension{KHR,blend_equation_advanced}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in
* WebGL.
*/
@@ -1065,7 +1065,7 @@ class MAGNUM_GL_EXPORT Renderer {
* Second source color (@f$ RGB = (R_{s1}, G_{s1}, B_{s1}); A = A_{s1} @f$)
*
* @see @ref AbstractShaderProgram::bindFragmentDataLocationIndexed()
- * @requires_gl33 Extension @extension{ARB,blend_func_extended}
+ * @requires_gl33 Extension @gl_extension{ARB,blend_func_extended}
* @requires_gl Multiple blending inputs are not available in
* OpenGL ES and WebGL.
*/
@@ -1082,7 +1082,7 @@ class MAGNUM_GL_EXPORT Renderer {
* One minus second source color (@f$ RGB = (1.0 - R_{s1}, 1.0 - G_{s1}, 1.0 - B_{s1}); A = 1.0 - A_{s1} @f$)
*
* @see @ref AbstractShaderProgram::bindFragmentDataLocationIndexed()
- * @requires_gl33 Extension @extension{ARB,blend_func_extended}
+ * @requires_gl33 Extension @gl_extension{ARB,blend_func_extended}
* @requires_gl Multiple blending inputs are not available in
* OpenGL ES and WebGL.
*/
@@ -1104,7 +1104,7 @@ class MAGNUM_GL_EXPORT Renderer {
* Second source alpha (@f$ RGB = (A_{s1}, A_{s1}, A_{s1}); A = A_{s1} @f$)
*
* @see @ref AbstractShaderProgram::bindFragmentDataLocationIndexed()
- * @requires_gl33 Extension @extension{ARB,blend_func_extended}
+ * @requires_gl33 Extension @gl_extension{ARB,blend_func_extended}
* @requires_gl Multiple blending inputs are not available in
* OpenGL ES and WebGL.
*/
@@ -1121,7 +1121,7 @@ class MAGNUM_GL_EXPORT Renderer {
* One minus second source alpha (@f$ RGB = (1.0 - A_{s1}, 1.0 - A_{s1}, 1.0 - A_{s1}); A = 1.0 - A_{s1} @f$)
*
* @see @ref AbstractShaderProgram::bindFragmentDataLocationIndexed()
- * @requires_gl33 Extension @extension{ARB,blend_func_extended}
+ * @requires_gl33 Extension @gl_extension{ARB,blend_func_extended}
* @requires_gl Multiple blending inputs are not available in
* OpenGL ES and WebGL.
*/
@@ -1210,13 +1210,13 @@ class MAGNUM_GL_EXPORT Renderer {
* touched more than once.
*
* This is needed either when desktop/ES extension
- * @extension2{KHR,blend_equation_advanced_coherent,blend_equation_advanced}
- * is not available or when @extension2{KHR,blend_equation_advanced_coherent,blend_equation_advanced}
+ * @gl_extension2{KHR,blend_equation_advanced_coherent,blend_equation_advanced}
+ * is not available or when @gl_extension2{KHR,blend_equation_advanced_coherent,blend_equation_advanced}
* is available and @ref Feature::BlendAdvancedCoherent is turned off.
* @see @ref BlendEquation, @fn_gl_extension_keyword{BlendBarrier,KHR,blend_equation_advanced}
- * @requires_extension Extension @extension{KHR,blend_equation_advanced}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
+ * @requires_extension Extension @gl_extension{KHR,blend_equation_advanced}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in WebGL.
*/
static void blendBarrier() { glBlendBarrierKHR(); }
@@ -1290,7 +1290,7 @@ class MAGNUM_GL_EXPORT Renderer {
* @see @ref MemoryBarriers, @ref setMemoryBarrier(),
* @ref setMemoryBarrierByRegion()
* @m_enum_values_as_keywords
- * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
+ * @requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
* @requires_gles31 Shader image load/store is not available in OpenGL
* ES 3.0 and older.
* @requires_gles Shader image load/store is not available in WebGL.
@@ -1334,7 +1334,7 @@ class MAGNUM_GL_EXPORT Renderer {
/**
* Shader storage data
- * @requires_gl43 Extension @extension{ARB,shader_storage_buffer_object}
+ * @requires_gl43 Extension @gl_extension{ARB,shader_storage_buffer_object}
* @requires_gles31 Shader storage is not available in OpenGL ES
* 3.0 and older.
* @requires_gles Shader storage is not available in WebGL.
@@ -1346,7 +1346,7 @@ class MAGNUM_GL_EXPORT Renderer {
* @brief Memory barriers
*
* @see @ref setMemoryBarrier(), @ref setMemoryBarrierByRegion()
- * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
+ * @requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
* @requires_gles31 Shader image load/store is not available in OpenGL
* ES 3.0 and older.
* @requires_gles Shader image load/store is not available in WebGL.
@@ -1364,7 +1364,7 @@ class MAGNUM_GL_EXPORT Renderer {
* after the barrier will reflect all data modifications before the
* barrier.
* @see @ref setMemoryBarrierByRegion(), @fn_gl_keyword{MemoryBarrier}
- * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
+ * @requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
* @requires_gles31 Shader load/store is not available in OpenGL ES 3.0 and older.
* @requires_gles Shader load/store is not available in WebGL.
*/
@@ -1387,7 +1387,7 @@ class MAGNUM_GL_EXPORT Renderer {
* - @ref MemoryBarrier::Uniform
*
* @see @fn_gl_keyword{MemoryBarrierByRegion}
- * @requires_gl45 Extension @extension{ARB,ES3_1_compatibility}
+ * @requires_gl45 Extension @gl_extension{ARB,ES3_1_compatibility}
* @requires_gles31 Shader load/store is not available in OpenGL ES 3.0
* and older.
* @requires_gles Shader load/store is not available in WebGL.
@@ -1405,7 +1405,7 @@ class MAGNUM_GL_EXPORT Renderer {
* operations after the barrier will reflect texel writes before the
* barrier.
* @see @fn_gl_keyword{TextureBarrier}
- * @requires_gl45 Extension @extension{ARB,texture_barrier}
+ * @requires_gl45 Extension @gl_extension{ARB,texture_barrier}
* @requires_gl Texture barrier is not available in OpenGL ES or WebGL.
*/
static void setTextureBarrier() {
@@ -1440,7 +1440,7 @@ class MAGNUM_GL_EXPORT Renderer {
* The framebuffer object is not complete.
* @see @ref DefaultFramebuffer::checkStatus(),
* @ref Framebuffer::checkStatus()
- * @requires_gl30 Extension @extension{ARB,framebuffer_object}
+ * @requires_gl30 Extension @gl_extension{ARB,framebuffer_object}
*/
InvalidFramebufferOperation = GL_INVALID_FRAMEBUFFER_OPERATION,
@@ -1451,9 +1451,9 @@ class MAGNUM_GL_EXPORT Renderer {
/**
* Given operation would cause an internal stack to underflow.
* @see @ref DebugGroup
- * @requires_gl43 Extension @extension{KHR,debug}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,debug,debug}
+ * @requires_gl43 Extension @gl_extension{KHR,debug}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,debug,debug}
* @requires_gles Debug output is not available in WebGL.
*/
#ifndef MAGNUM_TARGET_GLES2
@@ -1465,9 +1465,9 @@ class MAGNUM_GL_EXPORT Renderer {
/**
* Given operation would cause an internal stack to overflow.
* @see @ref DebugGroup
- * @requires_gl43 Extension @extension{KHR,debug}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,debug,debug}
+ * @requires_gl43 Extension @gl_extension{KHR,debug}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,debug,debug}
* @requires_gles Debug output is not available in WebGL.
*/
#ifndef MAGNUM_TARGET_GLES2
@@ -1511,8 +1511,8 @@ class MAGNUM_GL_EXPORT Renderer {
/**
* Graphics reset will result in context loss, cause of the reset
* can be queried with @ref graphicsResetStatus().
- * @requires_extension Extension @extension{ARB,robustness}
- * @requires_es_extension Extension @extension{EXT,robustness}
+ * @requires_extension Extension @gl_extension{ARB,robustness}
+ * @requires_es_extension Extension @gl_extension{EXT,robustness}
*/
#ifndef MAGNUM_TARGET_GLES
LoseContextOnReset = GL_LOSE_CONTEXT_ON_RESET_ARB
@@ -1525,8 +1525,8 @@ class MAGNUM_GL_EXPORT Renderer {
* @brief Graphics reset notification strategy
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If OpenGL extension @extension{ARB,robustness} or ES
- * extension @extension{EXT,robustness} is not available, this
+ * OpenGL calls. If OpenGL extension @gl_extension{ARB,robustness} or ES
+ * extension @gl_extension{EXT,robustness} is not available, this
* function always returns @ref ResetNotificationStrategy::NoResetNotification.
*
* For the reset notification to work, additionally to the extension
@@ -1555,8 +1555,8 @@ class MAGNUM_GL_EXPORT Renderer {
/**
* Reset attributable to the current context has been detected.
- * @requires_extension Extension @extension{ARB,robustness}
- * @requires_es_extension Extension @extension{EXT,robustness}
+ * @requires_extension Extension @gl_extension{ARB,robustness}
+ * @requires_es_extension Extension @gl_extension{EXT,robustness}
*/
#ifndef MAGNUM_TARGET_GLES
GuiltyContextReset = GL_GUILTY_CONTEXT_RESET_ARB,
@@ -1566,8 +1566,8 @@ class MAGNUM_GL_EXPORT Renderer {
/**
* Reset not attributable to the current context has been detected.
- * @requires_extension Extension @extension{ARB,robustness}
- * @requires_es_extension Extension @extension{EXT,robustness}
+ * @requires_extension Extension @gl_extension{ARB,robustness}
+ * @requires_es_extension Extension @gl_extension{EXT,robustness}
*/
#ifndef MAGNUM_TARGET_GLES
InnocentContextReset = GL_INNOCENT_CONTEXT_RESET_ARB,
@@ -1577,8 +1577,8 @@ class MAGNUM_GL_EXPORT Renderer {
/**
* Reset with unknown cause has been detected.
- * @requires_extension Extension @extension{ARB,robustness}
- * @requires_es_extension Extension @extension{EXT,robustness}
+ * @requires_extension Extension @gl_extension{ARB,robustness}
+ * @requires_es_extension Extension @gl_extension{EXT,robustness}
*/
#ifndef MAGNUM_TARGET_GLES
UnknownContextReset = GL_UNKNOWN_CONTEXT_RESET_ARB
@@ -1591,7 +1591,7 @@ class MAGNUM_GL_EXPORT Renderer {
* @brief Check graphics reset status
*
* Reset causes all context state to be lost. If OpenGL extension
- * @extension{ARB,robustness} or ES extension @extension{EXT,robustness}
+ * @gl_extension{ARB,robustness} or ES extension @gl_extension{EXT,robustness}
* is not available, this function always returns @ref GraphicsResetStatus::NoError.
*
* For the reset notification to work, additionally to the extension
@@ -1599,13 +1599,13 @@ class MAGNUM_GL_EXPORT Renderer {
* @ref Platform::Sdl2Application::GLConfiguration::Flag::RobustAccess "Platform::*Application::GLConfiguration::Flag::RobustAccess"
* flag.
*
- * If the reset occurs, @extension{ARB,robustness_isolation}
+ * If the reset occurs, @gl_extension{ARB,robustness_isolation}
* extension is supported and context is created with
* @ref Platform::Sdl2Application::GLConfiguration::Flag::ResetIsolation "Platform::*Application::GLConfiguration::Flag::ResetIsolation",
- * advertised support for @extension{ARB,robustness_application_isolation}
+ * advertised support for @gl_extension{ARB,robustness_application_isolation}
* indicates that no other application on the system will be affected
* by the graphics reset. Advertised support for
- * @extension{ARB,robustness_share_group_isolation} indicates that no
+ * @gl_extension{ARB,robustness_share_group_isolation} indicates that no
* other share group will be affected by the graphics reset.
* @see @ref resetNotificationStrategy(),
* @fn_gl_extension_keyword{GetGraphicsResetStatus,ARB,robustness}
diff --git a/src/Magnum/GL/SampleQuery.h b/src/Magnum/GL/SampleQuery.h
index 6fd26608f..bfe94c7ce 100644
--- a/src/Magnum/GL/SampleQuery.h
+++ b/src/Magnum/GL/SampleQuery.h
@@ -54,7 +54,7 @@ waiting for the result.
@snippet MagnumGL.cpp SampleQuery-conditional-render
@see @ref PrimitiveQuery, @ref TimeQuery
-@requires_gles30 Extension @extension{EXT,occlusion_query_boolean} in
+@requires_gles30 Extension @gl_extension{EXT,occlusion_query_boolean} in
OpenGL ES 2.0.
@requires_webgl20 Queries are not available in WebGL 1.0.
*/
@@ -80,7 +80,7 @@ class SampleQuery: public AbstractQuery {
/**
* Whether any samples passed from fragment shader. Use
* @ref result() to retrieve the result.
- * @requires_gl33 Extension @extension{ARB,occlusion_query2}
+ * @requires_gl33 Extension @gl_extension{ARB,occlusion_query2}
*/
#ifndef MAGNUM_TARGET_GLES2
AnySamplesPassed = GL_ANY_SAMPLES_PASSED,
@@ -93,7 +93,7 @@ class SampleQuery: public AbstractQuery {
* An implementation may choose a less precise version of the test
* at the expense of some false positives. Use @ref result()
* to retrieve the result.
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
*/
#ifndef MAGNUM_TARGET_GLES2
AnySamplesPassedConservative = GL_ANY_SAMPLES_PASSED_CONSERVATIVE
@@ -107,7 +107,7 @@ class SampleQuery: public AbstractQuery {
* @brief Conditional render mode
*
* @m_enum_values_as_keywords
- * @requires_gl30 Extension @extension{NV,conditional_render}
+ * @requires_gl30 Extension @gl_extension{NV,conditional_render}
* @requires_gl Conditional rendering is not available in OpenGL ES or
* WebGL.
*/
@@ -121,7 +121,7 @@ class SampleQuery: public AbstractQuery {
/**
* If query result is not yet available, waits for it and then
* begins rendering only if result is zero.
- * @requires_gl45 Extension @extension{ARB,conditional_render_inverted}
+ * @requires_gl45 Extension @gl_extension{ARB,conditional_render_inverted}
*/
WaitInverted = GL_QUERY_WAIT_INVERTED,
@@ -134,7 +134,7 @@ class SampleQuery: public AbstractQuery {
/**
* If query result is not yet available, begins rendering like if
* the result was zero.
- * @requires_gl45 Extension @extension{ARB,conditional_render_inverted}
+ * @requires_gl45 Extension @gl_extension{ARB,conditional_render_inverted}
*/
NoWaitInverted = GL_QUERY_NO_WAIT_INVERTED,
@@ -148,7 +148,7 @@ class SampleQuery: public AbstractQuery {
* The same as @ref ConditionalRenderMode::WaitInverted, but
* regions untouched by the sample query may not be rendered at
* all.
- * @requires_gl45 Extension @extension{ARB,conditional_render_inverted}
+ * @requires_gl45 Extension @gl_extension{ARB,conditional_render_inverted}
*/
ByRegionWaitInverted = GL_QUERY_BY_REGION_WAIT_INVERTED,
@@ -162,7 +162,7 @@ class SampleQuery: public AbstractQuery {
* The same as @ref ConditionalRenderMode::NoWaitInverted, but
* regions untouched by the sample query may not be rendered at
* all.
- * @requires_gl45 Extension @extension{ARB,conditional_render_inverted}
+ * @requires_gl45 Extension @gl_extension{ARB,conditional_render_inverted}
*/
ByRegionNoWaitInverted = GL_QUERY_BY_REGION_NO_WAIT_INVERTED
};
@@ -187,7 +187,7 @@ class SampleQuery: public AbstractQuery {
/**
* @brief Constructor
*
- * Creates new OpenGL query object. If @extension{ARB,direct_state_access}
+ * Creates new OpenGL query object. If @gl_extension{ARB,direct_state_access}
* (part of OpenGL 4.5) is not available, the query is created on first
* use.
* @see @ref SampleQuery(NoCreateT), @ref wrap(),
@@ -213,7 +213,7 @@ class SampleQuery: public AbstractQuery {
* @brief Begin conditional rendering based on result value
*
* @see @fn_gl_keyword{BeginConditionalRender}
- * @requires_gl30 Extension @extension{NV,conditional_render}
+ * @requires_gl30 Extension @gl_extension{NV,conditional_render}
* @requires_gl Conditional rendering is not available in OpenGL ES or
* WebGL.
*/
@@ -225,7 +225,7 @@ class SampleQuery: public AbstractQuery {
* @brief End conditional render
*
* @see @fn_gl_keyword{EndConditionalRender}
- * @requires_gl30 Extension @extension{NV,conditional_render}
+ * @requires_gl30 Extension @gl_extension{NV,conditional_render}
* @requires_gl Conditional rendering is not available in OpenGL ES or
* WebGL.
*/
diff --git a/src/Magnum/GL/Sampler.h b/src/Magnum/GL/Sampler.h
index 889a79217..9336767b5 100644
--- a/src/Magnum/GL/Sampler.h
+++ b/src/Magnum/GL/Sampler.h
@@ -49,13 +49,13 @@ enum class SamplerFilter: GLint {
/**
* Linear interpolation filtering. Can't be used with integer
* texture formats.
- * @requires_es_extension Extension @extension{OES,texture_float_linear}
+ * @requires_es_extension Extension @gl_extension{OES,texture_float_linear}
* for linear interpolation of textures with
* @ref TextureFormat::Float
* @requires_webgl_extension Extensiion @webgl_extension{OES,texture_float_linear}
* for linear interpolation of textures with
* @ref TextureFormat::Float
- * @requires_gles30 Extension @extension2{OES,texture_half_float_linear,OES_texture_float_linear}
+ * @requires_gles30 Extension @gl_extension2{OES,texture_half_float_linear,OES_texture_float_linear}
* for linear interpolation of textures with
* @ref TextureFormat::HalfFloat in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{OES,texture_half_float_linear}
@@ -98,13 +98,13 @@ enum class SamplerMipmap: GLint {
* Linear interpolation of nearest mip levels. **Unavailable on
* rectangle textures.**
* @m_keywords{GL_NEAREST_MIPMAP_LINEAR GL_LINEAR_MIPMAP_LINEAR}
- * @requires_es_extension Extension @extension{OES,texture_float_linear}
+ * @requires_es_extension Extension @gl_extension{OES,texture_float_linear}
* for linear interpolation of textures with
* @ref TextureFormat::Float
* @requires_webgl_extension Extensiion @webgl_extension{OES,texture_float_linear}
* for linear interpolation of textures with
* @ref TextureFormat::Float
- * @requires_gles30 Extension @extension2{OES,texture_half_float_linear,OES_texture_float_linear}
+ * @requires_gles30 Extension @gl_extension2{OES,texture_half_float_linear,OES_texture_float_linear}
* for linear interpolation of textures with
* @ref TextureFormat::HalfFloat in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{OES,texture_half_float_linear}
@@ -151,9 +151,9 @@ enum class SamplerWrapping: GLint {
* Clamp to border color. Coordinates out of range will be clamped
* to border color (set with
* @ref Texture::setBorderColor() "*Texture::setBorderColor()").
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,texture_border_clamp} or
- * @extension{NV,texture_border_clamp}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,texture_border_clamp} or
+ * @gl_extension{NV,texture_border_clamp}
* @requires_gles Border clamp is not available in WebGL.
*/
#ifndef MAGNUM_TARGET_GLES
@@ -167,8 +167,8 @@ enum class SamplerWrapping: GLint {
/**
* Mirror the texture once in negative coordinates and clamp to
* edge after that. **Unavailable on rectangle textures.**
- * @requires_gl44 Extension @extension{ARB,texture_mirror_clamp_to_edge},
- * @extension{ATI,texture_mirror_once} or @extension{EXT,texture_mirror_clamp}
+ * @requires_gl44 Extension @gl_extension{ARB,texture_mirror_clamp_to_edge},
+ * @gl_extension{ATI,texture_mirror_once} or @gl_extension{EXT,texture_mirror_clamp}
* @requires_gl Only separate @ref Wrapping::MirroredRepeat or
* @ref Wrapping::ClampToEdge is available in OpenGL ES and
* WebGL.
@@ -221,7 +221,7 @@ MAGNUM_GL_EXPORT Debug& operator<<(Debug& debug, SamplerWrapping value);
@see @ref SamplerCompareFunction,
@ref Texture::setCompareMode() "*Texture::setCompareMode()"
@m_enum_values_as_keywords
-@requires_gles30 Extension @extension{EXT,shadow_samplers} in
+@requires_gles30 Extension @gl_extension{EXT,shadow_samplers} in
OpenGL ES 2.0.
@requires_webgl20 Depth texture comparison is not available in WebGL
1.0.
@@ -250,7 +250,7 @@ Comparison operator used when comparison mode is set to
@see @ref Texture::setCompareFunction() "*Texture::setCompareFunction()",
@ref Texture::setCompareMode() "*Texture::setCompareMode()"
@m_enum_values_as_keywords
-@requires_gles30 Extension @extension{EXT,shadow_samplers} in
+@requires_gles30 Extension @gl_extension{EXT,shadow_samplers} in
OpenGL ES 2.0.
@requires_webgl20 Depth texture comparison is not available in WebGL
1.0.
@@ -306,7 +306,7 @@ MAGNUM_GL_EXPORT Debug& operator<<(Debug& debug, SamplerCompareFunction value);
@see @ref Texture::setDepthStencilMode() "*Texture::setDepthStencilMode()"
@m_enum_values_as_keywords
-@requires_gl43 Extension @extension{ARB,stencil_texturing}
+@requires_gl43 Extension @gl_extension{ARB,stencil_texturing}
@requires_gles31 Stencil texturing is not available in OpenGL ES 3.0
and older.
@requires_gles Stencil texturing is not available in WebGL.
@@ -335,8 +335,8 @@ class MAGNUM_GL_EXPORT Sampler {
* @brief Max supported max anisotropy
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{ARB,texture_filter_anisotropic}
- * (part of OpenGL 4.6) or @extension{EXT,texture_filter_anisotropic}
+ * OpenGL calls. If extension @gl_extension{ARB,texture_filter_anisotropic}
+ * (part of OpenGL 4.6) or @gl_extension{EXT,texture_filter_anisotropic}
* (desktop or ES) is not available, returns @cpp 0.0f @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_TEXTURE_MAX_ANISOTROPY}
* @m_keywords{GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT}
diff --git a/src/Magnum/GL/Shader.h b/src/Magnum/GL/Shader.h
index 4a182dd71..a1ed26b89 100644
--- a/src/Magnum/GL/Shader.h
+++ b/src/Magnum/GL/Shader.h
@@ -75,37 +75,37 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
#if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
/**
* Tessellation control shader
- * @requires_gl40 Extension @extension{ARB,tessellation_shader}
+ * @requires_gl40 Extension @gl_extension{ARB,tessellation_shader}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,tessellation_shader}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,tessellation_shader}
* @requires_gles Tessellation shaders are not available in WebGL.
*/
TessellationControl = GL_TESS_CONTROL_SHADER,
/**
* Tessellation evaluation shader
- * @requires_gl40 Extension @extension{ARB,tessellation_shader}
+ * @requires_gl40 Extension @gl_extension{ARB,tessellation_shader}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,tessellation_shader}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,tessellation_shader}
* @requires_gles Tessellation shaders are not available in WebGL.
*/
TessellationEvaluation = GL_TESS_EVALUATION_SHADER,
/**
* Geometry shader
- * @requires_gl32 Extension @extension{ARB,geometry_shader4}
+ * @requires_gl32 Extension @gl_extension{ARB,geometry_shader4}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,geometry_shader}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL.
*/
Geometry = GL_GEOMETRY_SHADER,
/**
* Compute shader
- * @requires_gl43 Extension @extension{ARB,compute_shader}
+ * @requires_gl43 Extension @gl_extension{ARB,compute_shader}
* @requires_gles31 Compute shaders are not available in OpenGL ES
* 3.0 and older.
* @requires_gles Compute shaders are not available in WebGL.
@@ -128,16 +128,16 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
*/
static Int maxVertexOutputComponents();
- /** @todo `GL_MAX_PATCH_VERTICES`, `GL_MAX_TESS_GEN_LEVEL`, `GL_MAX_TESS_PATCH_COMPONENTS` when @extension{ARB,tessellation_shader} is done */
+ /** @todo `GL_MAX_PATCH_VERTICES`, `GL_MAX_TESS_GEN_LEVEL`, `GL_MAX_TESS_PATCH_COMPONENTS` when @gl_extension{ARB,tessellation_shader} is done */
#if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
/**
* @brief Max supported component count of tessellation control shader input vertex
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither @extension{ARB,tessellation_shader} (part
- * of OpenGL 4.0) nor @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,tessellation_shader} ES extension is available,
+ * OpenGL calls. If neither @gl_extension{ARB,tessellation_shader} (part
+ * of OpenGL 4.0) nor @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,tessellation_shader} ES extension is available,
* returns @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_TESS_CONTROL_INPUT_COMPONENTS}
* @requires_gles30 Not defined in OpenGL ES 2.0.
@@ -149,9 +149,9 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
* @brief Max supported component count of tessellation control shader output vertex
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither @extension{ARB,tessellation_shader} (part
- * of OpenGL 4.0) nor @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,tessellation_shader} (part of OpenGL ES 3.2) is
+ * OpenGL calls. If neither @gl_extension{ARB,tessellation_shader} (part
+ * of OpenGL 4.0) nor @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,tessellation_shader} (part of OpenGL ES 3.2) is
* available, returns @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_TESS_CONTROL_OUTPUT_COMPONENTS}
* @requires_gles30 Not defined in OpenGL ES 2.0.
@@ -163,9 +163,9 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
* @brief Max supported component count of all tessellation control shader output vertices combined
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither @extension{ARB,tessellation_shader} (part
- * of OpenGL 4.0) nor @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,tessellation_shader} (part of OpenGL ES 3.2) is
+ * OpenGL calls. If neither @gl_extension{ARB,tessellation_shader} (part
+ * of OpenGL 4.0) nor @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,tessellation_shader} (part of OpenGL ES 3.2) is
* available, returns @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS}
* @requires_gles30 Not defined in OpenGL ES 2.0.
@@ -177,9 +177,9 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
* @brief Max supported component count of tessellation evaluation shader input vertex
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither @extension{ARB,tessellation_shader} (part
- * of OpenGL 4.0) nor @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,tessellation_shader} (part of OpenGL ES 3.2) is
+ * OpenGL calls. If neither @gl_extension{ARB,tessellation_shader} (part
+ * of OpenGL 4.0) nor @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,tessellation_shader} (part of OpenGL ES 3.2) is
* available, returns @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_TESS_EVALUATION_INPUT_COMPONENTS}
* @requires_gles30 Not defined in OpenGL ES 2.0.
@@ -191,9 +191,9 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
* @brief Max supported component count of tessellation evaluation shader output vertex
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither @extension{ARB,tessellation_shader} (part
- * of OpenGL 4.0) nor @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,tessellation_shader} (part of OpenGL ES 3.2) is
+ * OpenGL calls. If neither @gl_extension{ARB,tessellation_shader} (part
+ * of OpenGL 4.0) nor @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,tessellation_shader} (part of OpenGL ES 3.2) is
* available, returns @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl{MAX_TESS_EVALUATION_OUTPUT_COMPONENTS}
* @requires_gles30 Not defined in OpenGL ES 2.0.
@@ -205,9 +205,9 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
* @brief Max supported component count of geometry shader input vertex
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither @extension{ARB,geometry_shader4} (part of
- * OpenGL 3.2) nor @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,geometry_shader} (part of OpenGL ES 3.2) is not
+ * OpenGL calls. If neither @gl_extension{ARB,geometry_shader4} (part of
+ * OpenGL 3.2) nor @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,geometry_shader} (part of OpenGL ES 3.2) is not
* available, returns @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_GEOMETRY_INPUT_COMPONENTS}
* @requires_gles30 Not defined in OpenGL ES 2.0.
@@ -219,9 +219,9 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
* @brief Max supported component count of geometry shader output vertex
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither @extension{ARB,geometry_shader4} (part of
- * OpenGL 3.2) nor @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,geometry_shader} (part of OpenGL ES 3.2) is not
+ * OpenGL calls. If neither @gl_extension{ARB,geometry_shader4} (part of
+ * OpenGL 3.2) nor @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,geometry_shader} (part of OpenGL ES 3.2) is not
* available, returns @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_GEOMETRY_OUTPUT_COMPONENTS}
* @requires_gles30 Not defined in OpenGL ES 2.0.
@@ -233,9 +233,9 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
* @brief Max supported component count of all geometry shader output vertices combined
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither @extension{ARB,geometry_shader4} (part of
- * OpenGL 3.2) nor @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,geometry_shader} (part of OpenGL ES 3.2) is not
+ * OpenGL calls. If neither @gl_extension{ARB,geometry_shader4} (part of
+ * OpenGL 3.2) nor @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,geometry_shader} (part of OpenGL ES 3.2) is not
* available, returns @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS}
* @requires_gles30 Not defined in OpenGL ES 2.0.
@@ -280,7 +280,7 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
* @brief Max supported atomic counter buffer count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,shader_atomic_counters}
+ * OpenGL calls. If neither extension @gl_extension{ARB,shader_atomic_counters}
* (part of OpenGL 4.2) nor OpenGL ES 3.1 is available or if particular
* shader stage is not available, returns @cpp 0 @ce.
* @see @ref maxCombinedAtomicCounterBuffers(), @ref maxAtomicCounters(),
@@ -299,7 +299,7 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
* @brief Max supported atomic counter buffer count for all stages combined
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,shader_atomic_counters}
+ * OpenGL calls. If neither extension @gl_extension{ARB,shader_atomic_counters}
* (part of OpenGL 4.2) nor OpenGL ES 3.1 is available, returns @cpp 0 @ce.
* @see @ref maxAtomicCounterBuffers(), @ref maxCombinedAtomicCounters(),
* @fn_gl{Get} with @def_gl_keyword{MAX_COMBINED_ATOMIC_COUNTER_BUFFERS}
@@ -312,7 +312,7 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
* @brief Max supported atomic counter count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,shader_atomic_counters}
+ * OpenGL calls. If neither extension @gl_extension{ARB,shader_atomic_counters}
* (part of OpenGL 4.2) nor OpenGL ES 3.1 is available or if particular
* shader stage is not available, returns @cpp 0 @ce.
* @see @ref maxCombinedAtomicCounters(), @ref maxAtomicCounterBuffers(),
@@ -331,7 +331,7 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
* @brief Max supported atomic counter count for all stages combined
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,shader_atomic_counters}
+ * OpenGL calls. If neither extension @gl_extension{ARB,shader_atomic_counters}
* (part of OpenGL 4.2) nor OpenGL ES 3.1 is available, returns @cpp 0 @ce.
* @see @ref maxAtomicCounters(), @ref maxCombinedAtomicCounterBuffers(),
* @fn_gl{Get} with @def_gl_keyword{MAX_COMBINED_ATOMIC_COUNTERS}
@@ -344,7 +344,7 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
* @brief Max supported image uniform count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,shader_image_load_store}
+ * OpenGL calls. If neither extension @gl_extension{ARB,shader_image_load_store}
* (part of OpenGL 4.2) nor OpenGL ES 3.1 is available or if particular
* shader stage is not available, returns @cpp 0 @ce.
* @see @ref maxCombinedImageUniforms(),
@@ -363,7 +363,7 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
* @brief Max supported image uniform count for all stages combined
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,shader_image_load_store}
+ * OpenGL calls. If neither extension @gl_extension{ARB,shader_image_load_store}
* (part of OpenGL 4.2) nor OpenGL ES 3.1 is available, returns @cpp 0 @ce.
* @see @ref maxImageUniforms(),
* @fn_gl{Get} with @def_gl_keyword{MAX_COMBINED_IMAGE_UNIFORMS}
@@ -376,7 +376,7 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
* @brief Max supported shader storage block count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,shader_storage_buffer_object}
+ * OpenGL calls. If neither extension @gl_extension{ARB,shader_storage_buffer_object}
* (part of OpenGL 4.3) nor OpenGL ES 3.1 is available or if particular
* shader stage is not available, returns @cpp 0 @ce.
* @see @ref maxCombinedShaderStorageBlocks(),
@@ -395,7 +395,7 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
* @brief Max supported shader storage block count for all stages combined
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If neither extension @extension{ARB,shader_storage_buffer_object}
+ * OpenGL calls. If neither extension @gl_extension{ARB,shader_storage_buffer_object}
* (part of OpenGL 4.3) nor OpenGL ES 3.1 is available, returns @cpp 0 @ce.
* @see @ref maxShaderStorageBlocks(),
* @fn_gl{Get} with @def_gl_keyword{MAX_COMBINED_SHADER_STORAGE_BLOCKS}
@@ -436,7 +436,7 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
* @brief Max supported uniform block count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{ARB,uniform_buffer_objects}
+ * OpenGL calls. If extension @gl_extension{ARB,uniform_buffer_objects}
* (part of OpenGL 3.1) or particular shader stage is not available,
* returns @cpp 0 @ce.
* @see @ref maxCombinedUniformBlocks(), @ref maxUniformComponents(),
@@ -456,7 +456,7 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
* @brief Max supported uniform block count for all stages combined
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{ARB,uniform_buffer_objects}
+ * OpenGL calls. If extension @gl_extension{ARB,uniform_buffer_objects}
* (part of OpenGL 3.1) is not available, returns @cpp 0 @ce.
* @see @ref maxUniformBlocks(), @ref maxUniformComponents(),
* @ref maxCombinedUniformComponents(),
@@ -470,7 +470,7 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
* @brief Max supported uniform component count in all blocks combined
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{ARB,uniform_buffer_objects}
+ * OpenGL calls. If extension @gl_extension{ARB,uniform_buffer_objects}
* (part of OpenGL 3.1) or particular shader stage is not available,
* returns @cpp 0 @ce.
* @see @ref maxUniformComponents(), @ref maxUniformBlocks(),
@@ -542,8 +542,8 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
*
* The result is *not* cached, repeated queries will result in repeated
* OpenGL calls. If OpenGL 4.3 / OpenGL ES 3.2 is not supported and
- * neither @extension{KHR,debug} (covered also by
- * @extension{ANDROID,extension_pack_es31a}) nor @extension{EXT,debug_label}
+ * neither @gl_extension{KHR,debug} (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) nor @gl_extension{EXT,debug_label}
* desktop or ES extension is available, this function returns empty
* string.
* @see @fn_gl_keyword{GetObjectLabel} with @def_gl{SHADER} or
@@ -558,8 +558,8 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject {
* @return Reference to self (for method chaining)
*
* Default is empty string. If OpenGL 4.3 / OpenGL ES 3.2 is not
- * supported and neither @extension{KHR,debug} (covered also by
- * @extension{ANDROID,extension_pack_es31a}) nor @extension{EXT,debug_label}
+ * supported and neither @gl_extension{KHR,debug} (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) nor @gl_extension{EXT,debug_label}
* desktop or ES extension is available, this function does nothing.
* @see @ref maxLabelLength(), @fn_gl_keyword{ObjectLabel} with
* @def_gl{SHADER} or @fn_gl_extension_keyword{LabelObject,EXT,debug_label}
diff --git a/src/Magnum/GL/Texture.h b/src/Magnum/GL/Texture.h
index 2f89e3cbe..c0145fa3b 100644
--- a/src/Magnum/GL/Texture.h
+++ b/src/Magnum/GL/Texture.h
@@ -90,7 +90,7 @@ information about usage in shaders.
@ref CubeMapTexture, @ref CubeMapTextureArray, @ref RectangleTexture,
@ref BufferTexture, @ref MultisampleTexture
@m_keywords{GL_TEXTURE_1D GL_TEXTURE_2D GL_TEXTURE_3D}
-@requires_gles30 Extension @extension{OES,texture_3D} for 3D textures in
+@requires_gles30 Extension @gl_extension{OES,texture_3D} for 3D textures in
OpenGL ES 2.0.
@requires_webgl20 3D textures are not available in WebGL 1.0.
@requires_gl 1D textures are not available in OpenGL ES or WebGL.
@@ -106,7 +106,7 @@ template class Texture: public AbstractTexture {
*
* The result is cached, repeated queries don't result in repeated
* OpenGL calls. For 3D textures in OpenGL ES 2.0, if
- * @extension{OES,texture_3D} extension is not available, returns
+ * @gl_extension{OES,texture_3D} extension is not available, returns
* zero vector.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_TEXTURE_SIZE},
* @def_gl_keyword{MAX_3D_TEXTURE_SIZE}
@@ -124,7 +124,7 @@ template class Texture: public AbstractTexture {
* @see @ref compressedBlockDataSize(), @fn_gl_keyword{GetInternalformat}
* with @def_gl_keyword{TEXTURE_COMPRESSED_BLOCK_WIDTH},
* @def_gl_keyword{TEXTURE_COMPRESSED_BLOCK_HEIGHT}
- * @requires_gl43 Extension @extension{ARB,internalformat_query2}
+ * @requires_gl43 Extension @gl_extension{ARB,internalformat_query2}
* @requires_gl Compressed texture queries are not available in OpenGL
* ES.
*/
@@ -139,7 +139,7 @@ template class Texture: public AbstractTexture {
* bytes). For uncompressed formats returns zero.
* @see @ref compressedBlockSize(), @fn_gl_keyword{GetInternalformat}
* with @def_gl_keyword{TEXTURE_COMPRESSED_BLOCK_SIZE}
- * @requires_gl43 Extension @extension{ARB,internalformat_query2}
+ * @requires_gl43 Extension @gl_extension{ARB,internalformat_query2}
* @requires_gl Compressed texture queries are not available in OpenGL
* ES.
*/
@@ -167,7 +167,7 @@ template class Texture: public AbstractTexture {
/**
* @brief Constructor
*
- * Creates new OpenGL texture object. If @extension{ARB,direct_state_access}
+ * Creates new OpenGL texture object. If @gl_extension{ARB,direct_state_access}
* (part of OpenGL 4.5) is not available, the texture is created on
* first use.
* @see @ref Texture(NoCreateT), @ref wrap(), @fn_gl_keyword{CreateTextures}
@@ -205,7 +205,7 @@ template class Texture: public AbstractTexture {
* @ref bindImageLayered(), @ref unbindImage(), @ref unbindImages(),
* @ref AbstractShaderProgram::maxImageUnits(),
* @fn_gl_keyword{BindImageTexture}
- * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
+ * @requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
* @requires_gles31 Shader image load/store is not available in OpenGL
* ES 3.0 and older.
* @requires_gles Shader image load/store is not available in WebGL.
@@ -233,7 +233,7 @@ template class Texture: public AbstractTexture {
* @ref bindImageLayered(), @ref unbindImage(), @ref unbindImages(),
* @ref AbstractShaderProgram::maxImageUnits(),
* @fn_gl_keyword{BindImageTexture}
- * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
+ * @requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
* @requires_gles31 Shader image load/store is not available in OpenGL
* ES 3.0 and older.
* @requires_gles Shader image load/store is not available in WebGL.
@@ -260,7 +260,7 @@ template class Texture: public AbstractTexture {
* @ref bindImage(), @ref unbindImage(), @ref unbindImages(),
* @ref AbstractShaderProgram::maxImageUnits(),
* @fn_gl{BindImageTexture}
- * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
+ * @requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
* @requires_gles31 Shader image load/store is not available in OpenGL
* ES 3.0 and older.
* @requires_gles Shader image load/store is not available in WebGL.
@@ -280,8 +280,8 @@ template class Texture: public AbstractTexture {
*
* Taken into account when generating mipmap using @ref generateMipmap()
* and when considering texture completeness when using mipmap
- * filtering. If neither @extension{ARB,direct_state_access} (part of
- * OpenGL 4.5) nor @extension{EXT,direct_state_access} desktop
+ * filtering. If neither @gl_extension{ARB,direct_state_access} (part of
+ * OpenGL 4.5) nor @gl_extension{EXT,direct_state_access} desktop
* extension is available, the texture is bound before the operation
* (if not already). Initial value is @cpp 0 @ce.
* @see @ref setMaxLevel(), @ref setMinificationFilter(),
@@ -305,8 +305,8 @@ template class Texture: public AbstractTexture {
*
* Taken into account when generating mipmap using @ref generateMipmap()
* and when considering texture completeness when using mipmap
- * filtering. If neither @extension{ARB,direct_state_access} (part of
- * OpenGL 4.5) nor @extension{EXT,direct_state_access} desktop
+ * filtering. If neither @gl_extension{ARB,direct_state_access} (part of
+ * OpenGL 4.5) nor @gl_extension{EXT,direct_state_access} desktop
* extension is available, the texture is bound before the operation
* (if not already). Initial value is `1000`, which is clamped to count
* of levels specified when using @ref setStorage().
@@ -315,7 +315,7 @@ template class Texture: public AbstractTexture {
* @fn_gl_extension_keyword{TextureParameter,EXT,direct_state_access},
* eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl_keyword{TexParameter} with @def_gl_keyword{TEXTURE_MAX_LEVEL}
- * @requires_gles30 Extension @extension{APPLE,texture_max_level},
+ * @requires_gles30 Extension @gl_extension{APPLE,texture_max_level},
* otherwise the max level is always set to largest possible value
* in OpenGL ES 2.0.
* @requires_webgl20 Always set to largest possible value in WebGL 1.0.
@@ -335,8 +335,8 @@ template class Texture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* Sets filter used when the object pixel size is smaller than the
- * texture size. If neither @extension{ARB,direct_state_access} (part
- * of OpenGL 4.5) nor @extension{EXT,direct_state_access} desktop
+ * texture size. If neither @gl_extension{ARB,direct_state_access} (part
+ * of OpenGL 4.5) nor @gl_extension{EXT,direct_state_access} desktop
* extension is available, the texture is bound before the operation
* (if not already). Initial value is {@ref SamplerFilter::Nearest,
* @ref SamplerMipmap::Linear}.
@@ -362,8 +362,8 @@ template class Texture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* Sets filter used when the object pixel size is larger than largest
- * texture size. If neither @extension{ARB,direct_state_access} (part
- * of OpenGL 4.5) nor @extension{EXT,direct_state_access} desktop
+ * texture size. If neither @gl_extension{ARB,direct_state_access} (part
+ * of OpenGL 4.5) nor @gl_extension{EXT,direct_state_access} desktop
* extension is available, the texture is bound before the operation
* (if not already). Initial value is @ref SamplerFilter::Linear.
* @see @ref setMinificationFilter(), @fn_gl2_keyword{TextureParameter,TexParameter},
@@ -387,8 +387,8 @@ template class Texture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* Limits selection of highest resolution mipmap. If neither
- * @extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
- * @extension{EXT,direct_state_access} desktop extension is available,
+ * @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
+ * @gl_extension{EXT,direct_state_access} desktop extension is available,
* the texture is bound before the operation (if not already). Initial
* value is @cpp -1000.0f @ce.
* @see @ref setMaxLod(), @ref setLodBias(), @fn_gl2_keyword{TextureParameter,TexParameter},
@@ -410,8 +410,8 @@ template class Texture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* Limits selection of lowest resolution mipmap. If neither
- * @extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
- * @extension{EXT,direct_state_access} desktop extension is available,
+ * @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
+ * @gl_extension{EXT,direct_state_access} desktop extension is available,
* the texture is bound before the operation (if not already). Initial
* value is @cpp 1000.0f @ce.
* @see @ref setMinLod(), @ref setLodBias(), @fn_gl2_keyword{TextureParameter,TexParameter},
@@ -435,8 +435,8 @@ template class Texture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* Fixed bias value that is added to the level-of-detail parameter. If
- * neither @extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
- * @extension{EXT,direct_state_access} is available, the texture is
+ * neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
+ * @gl_extension{EXT,direct_state_access} is available, the texture is
* bound before the operation (if not already). Initial value is
* @cpp 0.0f @ce.
* @see @ref maxLodBias(), @ref setMinLod(), @ref setMaxLod(),
@@ -459,8 +459,8 @@ template class Texture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* Sets wrapping type for coordinates out of range @f$ [ 0.0, 1.0 ] @f$.
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the texture is bound before the operation (if not
* already). Initial value is @ref SamplerWrapping::Repeat.
* @see @ref setBorderColor(), @fn_gl2_keyword{TextureParameter,TexParameter},
@@ -485,17 +485,17 @@ template class Texture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* Border color when wrapping is set to @ref SamplerWrapping::ClampToBorder.
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} is available, the texture is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} is available, the texture is
* bound before the operation (if not already). Initial value is
* @cpp 0x00000000_rgbaf @ce.
* @see @ref setWrapping(), @fn_gl2_keyword{TextureParameter,TexParameter},
* @fn_gl_extension_keyword{TextureParameter,EXT,direct_state_access},
* eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl_keyword{TexParameter} with @def_gl_keyword{TEXTURE_BORDER_COLOR}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,texture_border_clamp} or
- * @extension{NV,texture_border_clamp}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,texture_border_clamp} or
+ * @gl_extension{NV,texture_border_clamp}
* @requires_gles Border clamp is not available in WebGL.
*/
Texture& setBorderColor(const Color4& color) {
@@ -510,18 +510,18 @@ template class Texture: public AbstractTexture {
*
* Border color for integer textures when wrapping is set to
* @ref SamplerWrapping::ClampToBorder. If neither
- * @extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
- * @extension{EXT,direct_state_access} is available, the texture is
+ * @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
+ * @gl_extension{EXT,direct_state_access} is available, the texture is
* bound before the operation (if not already). Initial value is
* @cpp {0, 0, 0, 0} @ce.
* @see @fn_gl2_keyword{TextureParameter,TexParameter},
* @fn_gl_extension_keyword{TextureParameter,EXT,direct_state_access},
* eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl_keyword{TexParameter} with @def_gl_keyword{TEXTURE_BORDER_COLOR}
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,texture_border_clamp}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,texture_border_clamp}
* @requires_gles Border clamp is not available in WebGL.
*/
Texture& setBorderColor(const Vector4ui& color) {
@@ -530,10 +530,10 @@ template class Texture: public AbstractTexture {
}
/** @overload
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,texture_border_clamp}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,texture_border_clamp}
* @requires_gles Border clamp is not available in WebGL.
*/
Texture& setBorderColor(const Vector4i& color) {
@@ -549,10 +549,10 @@ template class Texture: public AbstractTexture {
*
* Default value is @cpp 1.0f @ce, which means no anisotropy. Set to
* value greater than @cpp 1.0f @ce for anisotropic filtering. If
- * extension @extension{EXT,texture_filter_anisotropic} (desktop or ES)
+ * extension @gl_extension{EXT,texture_filter_anisotropic} (desktop or ES)
* is not available, this function does nothing. If neither
- * @extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
- * @extension{EXT,direct_state_access} desktop extension is available,
+ * @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
+ * @gl_extension{EXT,direct_state_access} desktop extension is available,
* the texture is bound before the operation (if not already).
* @see @ref Sampler::maxMaxAnisotropy(), @fn_gl2_keyword{TextureParameter,TexParameter},
* @fn_gl_extension_keyword{TextureParameter,EXT,direct_state_access},
@@ -571,19 +571,19 @@ template class Texture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* Disables or reenables decoding of sRGB values. If neither
- * @extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
- * @extension{EXT,direct_state_access} desktop extension is available,
+ * @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
+ * @gl_extension{EXT,direct_state_access} desktop extension is available,
* the texture is bound before the operation (if not already). Initial
* value is @cpp true @ce.
* @see @fn_gl2_keyword{TextureParameter,TexParameter},
* @fn_gl_extension_keyword{TextureParameter,EXT,direct_state_access},
* eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl_keyword{TexParameter} with @def_gl_keyword{TEXTURE_SRGB_DECODE_EXT}
- * @requires_extension Extension @extension{EXT,texture_sRGB_decode}
+ * @requires_extension Extension @gl_extension{EXT,texture_sRGB_decode}
* @requires_es_extension OpenGL ES 3.0 or extension
- * @extension{EXT,sRGB} and
- * @extension{ANDROID,extension_pack_es31a} /
- * @extension2{EXT,texture_sRGB_decode,texture_sRGB_decode}
+ * @gl_extension{EXT,sRGB} and
+ * @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{EXT,texture_sRGB_decode,texture_sRGB_decode}
* @requires_gles SRGB decode is not available in WebGL.
*/
Texture& setSRGBDecode(bool decode) {
@@ -604,8 +604,8 @@ template class Texture: public AbstractTexture {
*
* @snippet MagnumGL.cpp Texture-setSwizzle
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the texture is bound before the operation (if not
* already). Initial value is @cpp 'r', 'g', 'b', 'a' @ce.
* @see @fn_gl2_keyword{TextureParameter,TexParameter},
@@ -615,7 +615,7 @@ template class Texture: public AbstractTexture {
* @def_gl_keyword{TEXTURE_SWIZZLE_R}, @def_gl_keyword{TEXTURE_SWIZZLE_G},
* @def_gl_keyword{TEXTURE_SWIZZLE_B} and @def_gl_keyword{TEXTURE_SWIZZLE_A}
* separately in OpenGL ES)
- * @requires_gl33 Extension @extension{ARB,texture_swizzle}
+ * @requires_gl33 Extension @gl_extension{ARB,texture_swizzle}
* @requires_gles30 Texture swizzle is not available in OpenGL ES 2.0.
* @requires_gles Texture swizzle is not available in WebGL.
*/
@@ -630,8 +630,8 @@ template class Texture: public AbstractTexture {
* @brief Set depth texture comparison mode
* @return Reference to self (for method chaining)
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the texture is bound before the operation (if not
* already). Initial value is @ref SamplerCompareMode::None.
* @note Depth textures can be only 1D or 2D.
@@ -639,7 +639,7 @@ template class Texture: public AbstractTexture {
* @fn_gl_extension_keyword{TextureParameter,EXT,direct_state_access},
* eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl_keyword{TexParameter} with @def_gl_keyword{TEXTURE_COMPARE_MODE}
- * @requires_gles30 Extension @extension{EXT,shadow_samplers} in
+ * @requires_gles30 Extension @gl_extension{EXT,shadow_samplers} in
* OpenGL ES 2.0.
* @requires_webgl20 Depth texture comparison is not available in WebGL
* 1.0.
@@ -655,8 +655,8 @@ template class Texture: public AbstractTexture {
*
* Comparison operator used when comparison mode is set to
* @ref SamplerCompareMode::CompareRefToTexture. If neither
- * @extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
- * @extension{EXT,direct_state_access} desktop extension is available,
+ * @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
+ * @gl_extension{EXT,direct_state_access} desktop extension is available,
* the texture is bound before the operation (if not already). Initial
* value is @ref SamplerCompareFunction::LessOrEqual.
* @note Depth textures can be only 1D or 2D.
@@ -664,7 +664,7 @@ template class Texture: public AbstractTexture {
* @fn_gl_extension_keyword{TextureParameter,EXT,direct_state_access},
* eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl_keyword{TexParameter} with @def_gl_keyword{TEXTURE_COMPARE_FUNC}
- * @requires_gles30 Extension @extension{EXT,shadow_samplers} in
+ * @requires_gles30 Extension @gl_extension{EXT,shadow_samplers} in
* OpenGL ES 2.0.
* @requires_webgl20 Depth texture comparison is not available in WebGL
* 1.0.
@@ -681,8 +681,8 @@ template class Texture: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* Selects which component of packed depth/stencil texture is used for
- * texturing. If neither @extension{ARB,direct_state_access} (part of
- * OpenGL 4.5) nor @extension{EXT,direct_state_access} is available,
+ * texturing. If neither @gl_extension{ARB,direct_state_access} (part of
+ * OpenGL 4.5) nor @gl_extension{EXT,direct_state_access} is available,
* the texture is bound before the operation (if not already). Initial
* value is @ref SamplerDepthStencilMode::DepthComponent.
* @note Depth textures can be only 1D or 2D.
@@ -690,7 +690,7 @@ template class Texture: public AbstractTexture {
* @fn_gl_extension_keyword{TextureParameter,EXT,direct_state_access},
* eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl_keyword{TexParameter} with @def_gl_keyword{DEPTH_STENCIL_TEXTURE_MODE}
- * @requires_gl43 Extension @extension{ARB,stencil_texturing}
+ * @requires_gl43 Extension @gl_extension{ARB,stencil_texturing}
* @requires_gles31 Stencil texturing is not available in OpenGL ES 3.0
* and older.
* @requires_gles Stencil texturing is not available in WebGL.
@@ -711,11 +711,11 @@ template class Texture: public AbstractTexture {
* After calling this function the texture is immutable and calling
* @ref setStorage() or @ref setImage() is not allowed.
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the texture is bound before the operation (if not
- * already). If neither @extension{ARB,texture_storage} (part of OpenGL
- * 4.2), OpenGL ES 3.0 nor @extension{EXT,texture_storage} in OpenGL
+ * already). If neither @gl_extension{ARB,texture_storage} (part of OpenGL
+ * 4.2), OpenGL ES 3.0 nor @gl_extension{EXT,texture_storage} in OpenGL
* ES 2.0 is available, the feature is emulated with sequence of
* @ref setImage() calls.
* @see @ref maxSize(), @ref setMaxLevel(),
@@ -741,8 +741,8 @@ template class Texture: public AbstractTexture {
* @brief Image size in given mip level
*
* The result is not cached in any way. If neither
- * @extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
- * @extension{EXT,direct_state_access} desktop extension is available,
+ * @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) nor
+ * @gl_extension{EXT,direct_state_access} desktop extension is available,
* the texture is bound before the operation (if not already).
* @see @ref image(), @fn_gl2_keyword{GetTextureLevelParameter,GetTexLevelParameter},
* @fn_gl_extension{GetTextureLevelParameter,EXT,direct_state_access},
@@ -771,13 +771,13 @@ template class Texture: public AbstractTexture {
* @ref imageSize(). The storage is not reallocated if it is large
* enough to contain the new data.
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} is available, the texture is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} is available, the texture is
* bound before the operation (if not already). If either
- * @extension{ARB,direct_state_access} or @extension{ARB,robustness}
+ * @gl_extension{ARB,direct_state_access} or @gl_extension{ARB,robustness}
* is available, the operation is protected from buffer overflow.
- * However, if @extension{ARB,direct_state_access} is not available and
- * both @extension{EXT,direct_state_access} and @extension{ARB,robustness}
+ * However, if @gl_extension{ARB,direct_state_access} is not available and
+ * both @gl_extension{EXT,direct_state_access} and @gl_extension{ARB,robustness}
* are available, the robust operation is preferred over DSA.
* @see @fn_gl2{GetTextureLevelParameter,GetTexLevelParameter},
* @fn_gl_extension{GetTextureLevelParameter,EXT,direct_state_access},
@@ -817,7 +817,7 @@ template class Texture: public AbstractTexture {
* WebGL. See @ref Framebuffer::read() or @ref DebugTools::textureSubImage()
* for possible workarounds.
* @todo Make it more flexible (usable with
- * @extension{ARB,buffer_storage}, avoiding relocations...)
+ * @gl_extension{ARB,buffer_storage}, avoiding relocations...)
*/
void image(Int level, BufferImage& image, BufferUsage usage) {
AbstractTexture::image(level, image, usage);
@@ -840,13 +840,13 @@ template class Texture: public AbstractTexture {
* size is taken using @ref imageSize(). The storage is not reallocated
* if it is large enough to contain the new data.
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} is available, the texture is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} is available, the texture is
* bound before the operation (if not already). If either
- * @extension{ARB,direct_state_access} or @extension{ARB,robustness}
+ * @gl_extension{ARB,direct_state_access} or @gl_extension{ARB,robustness}
* is available, the operation is protected from buffer overflow.
- * However, if @extension{ARB,direct_state_access} is not available and
- * both @extension{EXT,direct_state_access} and @extension{ARB,robustness}
+ * However, if @gl_extension{ARB,direct_state_access} is not available and
+ * both @gl_extension{EXT,direct_state_access} and @gl_extension{ARB,robustness}
* are available, the robust operation is preferred over DSA.
* @see @fn_gl2{GetTextureLevelParameter,GetTexLevelParameter},
* @fn_gl_extension{GetTextureLevelParameter,EXT,direct_state_access},
@@ -859,7 +859,7 @@ template class Texture: public AbstractTexture {
* @fn_gl_extension_keyword{GetnCompressedTexImage,ARB,robustness},
* @fn_gl_extension_keyword{GetCompressedTextureImage,EXT,direct_state_access},
* eventually @fn_gl_keyword{GetCompressedTexImage}
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Texture image queries are not available in OpenGL ES or
* WebGL. See @ref Framebuffer::read() or @ref DebugTools::textureSubImage()
@@ -886,13 +886,13 @@ template class Texture: public AbstractTexture {
* See @ref compressedImage(Int, CompressedImage&) for more
* information. The storage is not reallocated if it is large enough to
* contain the new data, which means that @p usage might get ignored.
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Texture image queries are not available in OpenGL ES or
* WebGL. See @ref Framebuffer::read() or @ref DebugTools::textureSubImage()
* for possible workarounds.
* @todo Make it more flexible (usable with
- * @extension{ARB,buffer_storage}, avoiding relocations...)
+ * @gl_extension{ARB,buffer_storage}, avoiding relocations...)
*/
void compressedImage(Int level, CompressedBufferImage& image, BufferUsage usage) {
AbstractTexture::compressedImage(level, image, usage);
@@ -918,7 +918,7 @@ template class Texture: public AbstractTexture {
*
* The operation is protected from buffer overflow.
* @see @fn_gl_keyword{GetTextureSubImage}
- * @requires_gl45 Extension @extension{ARB,get_texture_sub_image}
+ * @requires_gl45 Extension @gl_extension{ARB,get_texture_sub_image}
* @requires_gl Texture image queries are not available in OpenGL ES or
* WebGL. See @ref Framebuffer::read() for possible workaround.
*/
@@ -945,7 +945,7 @@ template class Texture: public AbstractTexture {
* for more information. The storage is not reallocated if it is large
* enough to contain the new data, which means that @p usage might get
* ignored.
- * @requires_gl45 Extension @extension{ARB,get_texture_sub_image}
+ * @requires_gl45 Extension @gl_extension{ARB,get_texture_sub_image}
* @requires_gl Texture image queries are not available in OpenGL ES or
* WebGL. See @ref Framebuffer::read() for possible workaround.
*/
@@ -976,10 +976,10 @@ template class Texture: public AbstractTexture {
* @def_gl{TEXTURE_COMPRESSED_BLOCK_WIDTH} and
* @def_gl{TEXTURE_COMPRESSED_BLOCK_HEIGHT}, then
* @fn_gl_keyword{GetCompressedTextureSubImage}
- * @requires_gl45 Extension @extension{ARB,get_texture_sub_image}
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl45 Extension @gl_extension{ARB,get_texture_sub_image}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
- * @requires_gl43 Extension @extension{ARB,internalformat_query2} if
+ * @requires_gl43 Extension @gl_extension{ARB,internalformat_query2} if
* @ref CompressedPixelStorage::compressedBlockSize() and
* @ref CompressedPixelStorage::compressedBlockDataSize() are not
* set to non-zero values
@@ -1008,10 +1008,10 @@ template class Texture: public AbstractTexture {
*
* See @ref compressedSubImage(Int, const RangeTypeFor&, CompressedBufferImage&, BufferUsage)
* for more information.
- * @requires_gl45 Extension @extension{ARB,get_texture_sub_image}
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl45 Extension @gl_extension{ARB,get_texture_sub_image}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
- * @requires_gl43 Extension @extension{ARB,internalformat_query2} if
+ * @requires_gl43 Extension @gl_extension{ARB,internalformat_query2} if
* @ref CompressedPixelStorage::compressedBlockSize() and
* @ref CompressedPixelStorage::compressedBlockDataSize() are not
* set to non-zero values
@@ -1043,7 +1043,7 @@ template class Texture: public AbstractTexture {
* On platforms that support it prefer to use @ref setStorage() and
* @ref setSubImage() instead, as it avoids unnecessary reallocations
* and has better performance characteristics. This call also has no
- * equivalent in @extension{ARB,direct_state_access}, thus the texture
+ * equivalent in @gl_extension{ARB,direct_state_access}, thus the texture
* needs to be bound to some texture unit before the operation.
*
* On OpenGL ES 2.0 and WebGL 1.0, if @ref PixelStorage::skip() is set,
@@ -1052,8 +1052,8 @@ template class Texture: public AbstractTexture {
* then @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl_keyword{TexImage1D} / @fn_gl_keyword{TexImage2D} /
* @fn_gl_keyword{TexImage3D}
- * @requires_gles30 Extension @extension{EXT,unpack_subimage}/
- * @extension{NV,pack_subimage} in OpenGL ES 2.0 if
+ * @requires_gles30 Extension @gl_extension{EXT,unpack_subimage}/
+ * @gl_extension{NV,pack_subimage} in OpenGL ES 2.0 if
* @ref PixelStorage::rowLength() is set to a non-zero value.
* @requires_gles30 Non-zero @ref PixelStorage::imageHeight() for 3D
* images is not available in OpenGL ES 2.0.
@@ -1104,14 +1104,14 @@ template class Texture: public AbstractTexture {
* On platforms that support it prefer to use @ref setStorage() and
* @ref setCompressedSubImage() instead, as it avoids unnecessary
* reallocations and has better performance characteristics. This call
- * also has no equivalent in @extension{ARB,direct_state_access}, thus
+ * also has no equivalent in @gl_extension{ARB,direct_state_access}, thus
* the texture needs to be bound to some texture unit before the
* operation.
* @see @ref maxSize(), @fn_gl{PixelStore}, then @fn_gl{ActiveTexture},
* @fn_gl{BindTexture} and @fn_gl_keyword{CompressedTexImage1D} /
* @fn_gl_keyword{CompressedTexImage2D} /
* @fn_gl_keyword{CompressedTexImage3D}
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES and WebGL.
@@ -1125,7 +1125,7 @@ template class Texture: public AbstractTexture {
#ifndef MAGNUM_TARGET_GLES2
/** @overload
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES and WebGL.
@@ -1142,7 +1142,7 @@ template class Texture: public AbstractTexture {
}
/** @overload
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES and WebGL.
@@ -1166,8 +1166,8 @@ template class Texture: public AbstractTexture {
* @ref Trade::ImageData of the same dimension count
* @return Reference to self (for method chaining)
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the texture is bound before the operation (if not
* already).
*
@@ -1183,8 +1183,8 @@ template class Texture: public AbstractTexture {
* eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl_keyword{TexSubImage1D} / @fn_gl_keyword{TexSubImage2D} /
* @fn_gl_keyword{TexSubImage3D}
- * @requires_gles30 Extension @extension{EXT,unpack_subimage}/
- * @extension{NV,pack_subimage} in OpenGL ES 2.0 if
+ * @requires_gles30 Extension @gl_extension{EXT,unpack_subimage}/
+ * @gl_extension{NV,pack_subimage} in OpenGL ES 2.0 if
* @ref PixelStorage::rowLength() is set to a non-zero value.
* @requires_gles30 Non-zero @ref PixelStorage::imageHeight() for 3D
* images is not available in OpenGL ES 2.0.
@@ -1232,8 +1232,8 @@ template class Texture: public AbstractTexture {
* or compressed @ref Trade::ImageData of the same dimension count
* @return Reference to self (for method chaining)
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the texture is bound before the operation (if not
* already).
* @see @ref setStorage(), @fn_gl{PixelStore},
@@ -1247,7 +1247,7 @@ template class Texture: public AbstractTexture {
* @fn_gl_keyword{CompressedTexSubImage1D} /
* @fn_gl_keyword{CompressedTexSubImage2D} /
* @fn_gl_keyword{CompressedTexSubImage3D}
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES and WebGL.
@@ -1259,7 +1259,7 @@ template class Texture: public AbstractTexture {
#ifndef MAGNUM_TARGET_GLES2
/** @overload
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES and WebGL.
@@ -1274,7 +1274,7 @@ template class Texture: public AbstractTexture {
}
/** @overload
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES and WebGL.
@@ -1292,15 +1292,15 @@ template class Texture: public AbstractTexture {
* @brief Generate mipmap
* @return Reference to self (for method chaining)
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the texture is bound before the operation (if not
* already).
* @see @ref setMinificationFilter(), @fn_gl2_keyword{GenerateTextureMipmap,GenerateMipmap},
* @fn_gl_extension_keyword{GenerateTextureMipmap,EXT,direct_state_access},
* eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl_keyword{GenerateMipmap}
- * @requires_gl30 Extension @extension{ARB,framebuffer_object}
+ * @requires_gl30 Extension @gl_extension{ARB,framebuffer_object}
*/
Texture& generateMipmap() {
AbstractTexture::generateMipmap();
@@ -1311,7 +1311,7 @@ template class Texture: public AbstractTexture {
* @brief Invalidate texture image
* @param level Mip level
*
- * If running on OpenGL ES or extension @extension{ARB,invalidate_subdata}
+ * If running on OpenGL ES or extension @gl_extension{ARB,invalidate_subdata}
* (part of OpenGL 4.3) is not available, this function does nothing.
* @see @ref invalidateSubImage(), @fn_gl_keyword{InvalidateTexImage}
*/
@@ -1323,7 +1323,7 @@ template class Texture: public AbstractTexture {
* @param offset Offset into the texture
* @param size Size of invalidated data
*
- * If running on OpenGL ES or extension @extension{ARB,invalidate_subdata}
+ * If running on OpenGL ES or extension @gl_extension{ARB,invalidate_subdata}
* (part of OpenGL 4.3) is not available, this function does nothing.
* @see @ref invalidateImage(), @fn_gl_keyword{InvalidateTexSubImage}
*/
@@ -1363,7 +1363,7 @@ typedef Texture<2> Texture2D;
/**
@brief Three-dimensional texture
-@requires_gles30 Extension @extension{OES,texture_3D} in OpenGL ES 2.0
+@requires_gles30 Extension @gl_extension{OES,texture_3D} in OpenGL ES 2.0
@requires_webgl20 3D textures are not available in WebGL 1.0.
*/
typedef Texture<3> Texture3D;
diff --git a/src/Magnum/GL/TextureArray.h b/src/Magnum/GL/TextureArray.h
index 1bdf4a2a2..6bd4341af 100644
--- a/src/Magnum/GL/TextureArray.h
+++ b/src/Magnum/GL/TextureArray.h
@@ -80,12 +80,12 @@ in shaders.
@ref CubeMapTexture, @ref CubeMapTextureArray, @ref RectangleTexture,
@ref BufferTexture, @ref MultisampleTexture
@m_keywords{GL_TEXTURE_1D_ARRAY GL_TEXTURE_2D_ARRAY}
-@requires_gl30 Extension @extension{EXT,texture_array}
+@requires_gl30 Extension @gl_extension{EXT,texture_array}
@requires_gles30 Array textures are not available in OpenGL ES 2.0.
@requires_webgl20 Array textures are not available in WebGL 1.0.
@requires_gl 1D array textures are not available in OpenGL ES or WebGL, only
2D ones.
-@todo Fix this when @extension{NV,texture_array} is in ES2 extension headers
+@todo Fix this when @gl_extension{NV,texture_array} is in ES2 extension headers
*/
template class TextureArray: public AbstractTexture {
public:
@@ -97,7 +97,7 @@ template class TextureArray: public AbstractTexture {
* @brief Max supported texture array size
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{EXT,texture_array} (part of
+ * OpenGL calls. If extension @gl_extension{EXT,texture_array} (part of
* OpenGL 3.0) is not available, returns zero vector.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_TEXTURE_SIZE} and
* @def_gl_keyword{MAX_ARRAY_TEXTURE_LAYERS}
@@ -109,7 +109,7 @@ template class TextureArray: public AbstractTexture {
* @brief @copybrief Texture::compressedBlockSize()
*
* See @ref Texture::compressedBlockSize() for more information.
- * @requires_gl43 Extension @extension{ARB,internalformat_query2}
+ * @requires_gl43 Extension @gl_extension{ARB,internalformat_query2}
* @requires_gl Compressed texture queries are not available in OpenGL
* ES.
*/
@@ -121,7 +121,7 @@ template class TextureArray: public AbstractTexture {
* @brief @copybrief Texture::compressedBlockDataSize()
*
* See @ref Texture::compressedBlockDataSize() for more information.
- * @requires_gl43 Extension @extension{ARB,internalformat_query2}
+ * @requires_gl43 Extension @gl_extension{ARB,internalformat_query2}
* @requires_gl Compressed texture queries are not available in OpenGL
* ES.
* @see @ref compressedBlockSize(), @fn_gl{Getinternalformat} with
@@ -151,7 +151,7 @@ template class TextureArray: public AbstractTexture {
/**
* @brief Constructor
*
- * Creates new OpenGL texture object. If @extension{ARB,direct_state_access}
+ * Creates new OpenGL texture object. If @gl_extension{ARB,direct_state_access}
* (part of OpenGL 4.5) is not available, the texture is created on
* first use.
* @see @ref TextureArray(NoCreateT), @ref wrap(), @fn_gl_keyword{CreateTextures}
@@ -189,7 +189,7 @@ template class TextureArray: public AbstractTexture {
* @ref bindImageLayered(), @ref unbindImage(), @ref unbindImages(),
* @ref AbstractShaderProgram::maxImageUnits(),
* @fn_gl_keyword{BindImageTexture}
- * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
+ * @requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
* @requires_gles31 Shader image load/store is not available in OpenGL
* ES 3.0 and older.
* @requires_gles Shader image load/store is not available in WebGL.
@@ -212,7 +212,7 @@ template class TextureArray: public AbstractTexture {
* @ref bindImage(), @ref unbindImage(), @ref unbindImages(),
* @ref AbstractShaderProgram::maxImageUnits(),
* @fn_gl_keyword{BindImageTexture}
- * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
+ * @requires_gl42 Extension @gl_extension{ARB,shader_image_load_store}
* @requires_gles31 Shader image load/store is not available in OpenGL
* ES 3.0 and older.
* @requires_gles Shader image load/store is not available in WebGL.
@@ -336,9 +336,9 @@ template class TextureArray: public AbstractTexture {
*
* See @ref Texture::setBorderColor(const Color4&) for more
* information.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,texture_border_clamp} or
- * @extension{NV,texture_border_clamp}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,texture_border_clamp} or
+ * @gl_extension{NV,texture_border_clamp}
* @requires_gles Border clamp is not available in WebGL.
*/
TextureArray& setBorderColor(const Color4& color) {
@@ -352,9 +352,9 @@ template class TextureArray: public AbstractTexture {
*
* See @ref Texture::setBorderColor(const Vector4ui&) for more
* information.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,texture_border_clamp}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,texture_border_clamp}
* @requires_gles Border clamp is not available in WebGL.
*/
TextureArray& setBorderColor(const Vector4ui& color) {
@@ -363,9 +363,9 @@ template class TextureArray: public AbstractTexture {
}
/** @overload
- * @requires_gl30 Extension @extension{EXT,texture_integer}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,texture_border_clamp}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,texture_border_clamp}
* @requires_gles Border clamp is not available in WebGL.
*/
TextureArray& setBorderColor(const Vector4i& color) {
@@ -391,9 +391,9 @@ template class TextureArray: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::setSRGBDecode() for more information.
- * @requires_extension Extension @extension{EXT,texture_sRGB_decode}
- * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{EXT,texture_sRGB_decode,texture_sRGB_decode}
+ * @requires_extension Extension @gl_extension{EXT,texture_sRGB_decode}
+ * @requires_es_extension Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{EXT,texture_sRGB_decode,texture_sRGB_decode}
* @requires_gles SRGB decode is not available in WebGL.
*/
TextureArray& setSRGBDecode(bool decode) {
@@ -406,7 +406,7 @@ template class TextureArray: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::setSwizzle() for more information.
- * @requires_gl33 Extension @extension{ARB,texture_swizzle}
+ * @requires_gl33 Extension @gl_extension{ARB,texture_swizzle}
*/
template TextureArray& setSwizzle() {
AbstractTexture::setSwizzle();
@@ -442,7 +442,7 @@ template class TextureArray: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::setDepthStencilMode() for more information.
- * @requires_gl43 Extension @extension{ARB,stencil_texturing}
+ * @requires_gl43 Extension @gl_extension{ARB,stencil_texturing}
* @requires_gles31 Stencil texturing is not available in OpenGL ES 3.0
* and older.
* @requires_gles Stencil texturing is not available in WebGL.
@@ -527,7 +527,7 @@ template class TextureArray: public AbstractTexture {
*
* See @ref Texture::compressedImage(Int, CompressedImage&) for more
* information.
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Texture image queries are not available in OpenGL ES or
* WebGL. See @ref Framebuffer::read() or @ref DebugTools::textureSubImage()
@@ -550,7 +550,7 @@ template class TextureArray: public AbstractTexture {
*
* See @ref Texture::compressedImage(Int, CompressedBufferImage&, BufferUsage)
* for more information.
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Texture image queries are not available in OpenGL ES or
* WebGL. See @ref Framebuffer::read() or @ref DebugTools::textureSubImage()
@@ -573,7 +573,7 @@ template class TextureArray: public AbstractTexture {
*
* See @ref Texture::subImage(Int, const RangeTypeFor&, Image&)
* for more information.
- * @requires_gl45 Extension @extension{ARB,get_texture_sub_image}
+ * @requires_gl45 Extension @gl_extension{ARB,get_texture_sub_image}
* @requires_gl Texture image queries are not available in OpenGL ES or
* WebGL. See @ref Framebuffer::read() or @ref DebugTools::textureSubImage()
* for possible workarounds.
@@ -595,7 +595,7 @@ template class TextureArray: public AbstractTexture {
*
* See @ref Texture::subImage(Int, const RangeTypeFor&, BufferImage&, BufferUsage)
* for more information.
- * @requires_gl45 Extension @extension{ARB,get_texture_sub_image}
+ * @requires_gl45 Extension @gl_extension{ARB,get_texture_sub_image}
* @requires_gl Texture image queries are not available in OpenGL ES or
* WebGL. See @ref Framebuffer::read() or @ref DebugTools::textureSubImage()
* for possible workarounds.
@@ -617,10 +617,10 @@ template class TextureArray: public AbstractTexture {
*
* See @ref Texture::compressedSubImage(Int, const RangeTypeFor&, CompressedImage&)
* for more information.
- * @requires_gl45 Extension @extension{ARB,get_texture_sub_image}
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl45 Extension @gl_extension{ARB,get_texture_sub_image}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
- * @requires_gl43 Extension @extension{ARB,internalformat_query2} if
+ * @requires_gl43 Extension @gl_extension{ARB,internalformat_query2} if
* @ref CompressedPixelStorage::compressedBlockSize() and
* @ref CompressedPixelStorage::compressedBlockDataSize() are not
* set to non-zero values
@@ -645,10 +645,10 @@ template class TextureArray: public AbstractTexture {
*
* See @ref Texture::compressedSubImage(Int, const RangeTypeFor&, CompressedBufferImage&, BufferUsage)
* for more information.
- * @requires_gl45 Extension @extension{ARB,get_texture_sub_image}
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl45 Extension @gl_extension{ARB,get_texture_sub_image}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
- * @requires_gl43 Extension @extension{ARB,internalformat_query2} if
+ * @requires_gl43 Extension @gl_extension{ARB,internalformat_query2} if
* @ref CompressedPixelStorage::compressedBlockSize() and
* @ref CompressedPixelStorage::compressedBlockDataSize() are not
* set to non-zero values
@@ -706,7 +706,7 @@ template class TextureArray: public AbstractTexture {
*
* See @ref Texture::setCompressedImage() for more information.
* @see @ref maxSize()
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES and WebGL.
@@ -719,7 +719,7 @@ template class TextureArray: public AbstractTexture {
}
/** @overload
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES and WebGL.
@@ -732,7 +732,7 @@ template class TextureArray: public AbstractTexture {
}
/** @overload
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES and WebGL.
@@ -751,8 +751,8 @@ template class TextureArray: public AbstractTexture {
* @ref Trade::ImageData of the same dimension count
* @return Reference to self (for method chaining)
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the texture is bound before the operation (if not
* already).
* @see @ref setStorage(), @fn_gl{PixelStore}, then
@@ -787,8 +787,8 @@ template class TextureArray: public AbstractTexture {
* or compressed @ref Trade::ImageData of the same dimension count
* @return Reference to self (for method chaining)
*
- * If neither @extension{ARB,direct_state_access} (part of OpenGL 4.5)
- * nor @extension{EXT,direct_state_access} desktop extension is
+ * If neither @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5)
+ * nor @gl_extension{EXT,direct_state_access} desktop extension is
* available, the texture is bound before the operation (if not
* already).
* @see @ref setStorage(), @fn_gl{PixelStore}, then
@@ -798,7 +798,7 @@ template class TextureArray: public AbstractTexture {
* @fn_gl_extension_keyword{CompressedTextureSubImage3D,EXT,direct_state_access},
* eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl_keyword{CompressedTexSubImage2D} / @fn_gl_keyword{CompressedTexSubImage3D}
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES and WebGL.
@@ -809,7 +809,7 @@ template class TextureArray: public AbstractTexture {
}
/** @overload
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES and WebGL.
@@ -820,7 +820,7 @@ template class TextureArray: public AbstractTexture {
}
/** @overload
- * @requires_gl42 Extension @extension{ARB,compressed_texture_pixel_storage}
+ * @requires_gl42 Extension @gl_extension{ARB,compressed_texture_pixel_storage}
* for non-default @ref CompressedPixelStorage
* @requires_gl Non-default @ref CompressedPixelStorage is not
* available in OpenGL ES and WebGL.
@@ -834,7 +834,7 @@ template class TextureArray: public AbstractTexture {
* @return Reference to self (for method chaining)
*
* See @ref Texture::generateMipmap() for more information.
- * @requires_gl30 Extension @extension{ARB,framebuffer_object}
+ * @requires_gl30 Extension @gl_extension{ARB,framebuffer_object}
*/
TextureArray& generateMipmap() {
AbstractTexture::generateMipmap();
@@ -877,7 +877,7 @@ template class TextureArray: public AbstractTexture {
/**
@brief One-dimensional texture array
-@requires_gl30 Extension @extension{EXT,texture_array}
+@requires_gl30 Extension @gl_extension{EXT,texture_array}
@requires_gl Only @ref Texture2DArray is available in OpenGL ES and WebGL.
*/
typedef TextureArray<1> Texture1DArray;
@@ -886,7 +886,7 @@ typedef TextureArray<1> Texture1DArray;
/**
@brief Two-dimensional texture array
-@requires_gl30 Extension @extension{EXT,texture_array}
+@requires_gl30 Extension @gl_extension{EXT,texture_array}
@requires_gles30 Array textures are not available in OpenGL ES 2.0.
@requires_webgl20 Array textures are not available in WebGL 1.0.
*/
diff --git a/src/Magnum/GL/TextureFormat.h b/src/Magnum/GL/TextureFormat.h
index 33fdae167..c0ec551e1 100644
--- a/src/Magnum/GL/TextureFormat.h
+++ b/src/Magnum/GL/TextureFormat.h
@@ -53,8 +53,8 @@ enum class TextureFormat: GLenum {
* allowed in unemulated @ref Texture::setStorage() "*Texture::setStorage()"
* calls, in that case use @ref TextureFormat::R8 "TextureFormat::R8"
* instead.
- * @requires_gl30 Extension @extension{ARB,texture_rg}
- * @requires_gles30 Extension @extension{EXT,texture_rg} in OpenGL ES
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg}
+ * @requires_gles30 Extension @gl_extension{EXT,texture_rg} in OpenGL ES
* 2.0.
* @requires_webgl20 Not available in WebGL 1.0, see @ref TextureFormat::Luminance
* for an alternative.
@@ -69,9 +69,9 @@ enum class TextureFormat: GLenum {
/**
* Red component, normalized unsigned byte.
- * @requires_gl30 Extension @extension{ARB,texture_rg}
- * @requires_gles30 Extension @extension{EXT,texture_rg} and
- * @extension{EXT,texture_storage} in OpenGL ES 2.0. For texture
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg}
+ * @requires_gles30 Extension @gl_extension{EXT,texture_rg} and
+ * @gl_extension{EXT,texture_storage} in OpenGL ES 2.0. For texture
* storage only, for image specification use @ref TextureFormat::Red
* instead.
* @requires_webgl20 Not available in WebGL 1.0, see @ref TextureFormat::Luminance
@@ -90,8 +90,8 @@ enum class TextureFormat: GLenum {
* implementation-dependent. Not allowed in unemulated
* @ref Texture::setStorage() "*Texture::setStorage()" calls, in that case
* use @ref TextureFormat::RG8 "TextureFormat::RG8" instead.
- * @requires_gl30 Extension @extension{ARB,texture_rg}
- * @requires_gles30 Extension @extension{EXT,texture_rg} in OpenGL ES
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg}
+ * @requires_gles30 Extension @gl_extension{EXT,texture_rg} in OpenGL ES
* 2.0.
* @requires_webgl20 Not available in WebGL 1.0, see
* @ref TextureFormat::LuminanceAlpha for an alternative.
@@ -106,9 +106,9 @@ enum class TextureFormat: GLenum {
/**
* Red and green component, each normalized unsigned byte.
- * @requires_gl30 Extension @extension{ARB,texture_rg}
- * @requires_gles30 Extension @extension{EXT,texture_rg} and
- * @extension{EXT,texture_storage} in OpenGL ES 2.0. For texture
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg}
+ * @requires_gles30 Extension @gl_extension{EXT,texture_rg} and
+ * @gl_extension{EXT,texture_storage} in OpenGL ES 2.0. For texture
* storage only, for image specification use @ref TextureFormat::RG
* instead.
* @requires_webgl20 Not available in WebGL 1.0, see
@@ -135,8 +135,8 @@ enum class TextureFormat: GLenum {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* RGB, each component normalized unsigned byte.
- * @requires_gles30 Extension @extension{OES,required_internalformat}
- * (for image specification) or @extension{EXT,texture_storage}
+ * @requires_gles30 Extension @gl_extension{OES,required_internalformat}
+ * (for image specification) or @gl_extension{EXT,texture_storage}
* (for texture storage) in OpenGL ES 2.0. Use @ref TextureFormat::RGB
* otherwise.
* @requires_webgl20 Not available in WebGL 1.0, use
@@ -161,8 +161,8 @@ enum class TextureFormat: GLenum {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* RGBA, each component normalized unsigned byte.
- * @requires_gles30 Extension @extension{OES,required_internalformat}
- * (for image specification) or @extension{EXT,texture_storage}
+ * @requires_gles30 Extension @gl_extension{OES,required_internalformat}
+ * (for image specification) or @gl_extension{EXT,texture_storage}
* (for texture storage) in OpenGL ES 2.0. Use @ref TextureFormat::RGBA
* otherwise.
* @requires_webgl20 Not available in WebGL 1.0, use
@@ -178,7 +178,7 @@ enum class TextureFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES2
/**
* Red component, normalized signed byte.
- * @requires_gl31 Extension @extension{EXT,texture_snorm}
+ * @requires_gl31 Extension @gl_extension{EXT,texture_snorm}
* @requires_gl Can't be used as render target in OpenGL ES. Use
* @ref TextureFormat::RGB8I instead.
* @requires_gles30 Only unsigned formats are available in OpenGL ES 2.0.
@@ -188,7 +188,7 @@ enum class TextureFormat: GLenum {
/**
* Red and green component, each normalized signed byte.
- * @requires_gl31 Extension @extension{EXT,texture_snorm}
+ * @requires_gl31 Extension @gl_extension{EXT,texture_snorm}
* @requires_gl Can't be used as render target in OpenGL ES. Use
* @ref TextureFormat::RGB8I instead.
* @requires_gles30 Only unsigned formats are available in OpenGL ES 2.0.
@@ -198,7 +198,7 @@ enum class TextureFormat: GLenum {
/**
* RGB, each component normalized signed byte.
- * @requires_gl31 Extension @extension{EXT,texture_snorm}
+ * @requires_gl31 Extension @gl_extension{EXT,texture_snorm}
* @requires_gl Can't be used as render target in OpenGL ES. Use
* @ref TextureFormat::RGB8I instead.
* @requires_gles30 Only unsigned formats are available in OpenGL ES 2.0.
@@ -208,7 +208,7 @@ enum class TextureFormat: GLenum {
/**
* RGBA, each component normalized signed byte.
- * @requires_gl31 Extension @extension{EXT,texture_snorm}
+ * @requires_gl31 Extension @gl_extension{EXT,texture_snorm}
* @requires_gl Can't be used as render target in OpenGL ES. Use
* @ref TextureFormat::RGB8I instead.
* @requires_gles30 Only unsigned formats are available in OpenGL ES 2.0.
@@ -220,7 +220,7 @@ enum class TextureFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES
/**
* Red component, normalized unsigned short.
- * @requires_gl30 Extension @extension{ARB,texture_rg}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg}
* @requires_gl Only byte-sized normalized formats are available in OpenGL
* ES and WebGL.
*/
@@ -228,7 +228,7 @@ enum class TextureFormat: GLenum {
/**
* Red and green component, each normalized unsigned short.
- * @requires_gl30 Extension @extension{ARB,texture_rg}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg}
* @requires_gl Only byte-sized normalized formats are available in OpenGL
* ES and WebGL.
*/
@@ -250,7 +250,7 @@ enum class TextureFormat: GLenum {
/**
* Red component, normalized signed short.
- * @requires_gl31 Extension @extension{EXT,texture_snorm}
+ * @requires_gl31 Extension @gl_extension{EXT,texture_snorm}
* @requires_gl Only byte-sized normalized formats are available in OpenGL
* ES and WebGL.
*/
@@ -258,7 +258,7 @@ enum class TextureFormat: GLenum {
/**
* Red and green component, each normalized signed short.
- * @requires_gl31 Extension @extension{EXT,texture_snorm}
+ * @requires_gl31 Extension @gl_extension{EXT,texture_snorm}
* @requires_gl Only byte-sized normalized formats are available in OpenGL
* ES and WebGL.
*/
@@ -266,7 +266,7 @@ enum class TextureFormat: GLenum {
/**
* RGB, each component normalized signed short.
- * @requires_gl31 Extension @extension{EXT,texture_snorm}
+ * @requires_gl31 Extension @gl_extension{EXT,texture_snorm}
* @requires_gl Only byte-sized normalized formats are available in OpenGL
* ES and WebGL.
*/
@@ -274,7 +274,7 @@ enum class TextureFormat: GLenum {
/**
* RGBA, each component normalized signed short.
- * @requires_gl31 Extension @extension{EXT,texture_snorm}
+ * @requires_gl31 Extension @gl_extension{EXT,texture_snorm}
* @requires_gl Only byte-sized normalized formats are available in OpenGL
* ES and WebGL.
*/
@@ -285,7 +285,7 @@ enum class TextureFormat: GLenum {
/**
* Red component, non-normalized unsigned byte. Can't be filtered using
* @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg} and @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -296,7 +296,7 @@ enum class TextureFormat: GLenum {
/**
* Red and green component, each non-normalized unsigned byte. Can't be
* filtered using @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg} and @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -307,7 +307,7 @@ enum class TextureFormat: GLenum {
/**
* RGB, each component non-normalized unsigned byte. Can't be filtered
* using @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -318,7 +318,7 @@ enum class TextureFormat: GLenum {
/**
* RGBA, each component non-normalized unsigned byte. Can't be filtered
* using @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -329,7 +329,7 @@ enum class TextureFormat: GLenum {
/**
* Red component, non-normalized signed byte. Can't be filtered using
* @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg} and @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -340,7 +340,7 @@ enum class TextureFormat: GLenum {
/**
* Red and green component, each non-normalized signed byte. Can't be
* filtered using @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg} and @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -351,7 +351,7 @@ enum class TextureFormat: GLenum {
/**
* RGB, each component non-normalized signed byte. Can't be filtered using
* @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -362,7 +362,7 @@ enum class TextureFormat: GLenum {
/**
* RGBA, each component non-normalized signed byte. Can't be filtered using
* @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -373,7 +373,7 @@ enum class TextureFormat: GLenum {
/**
* Red component, non-normalized unsigned short. Can't be filtered using
* @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg} and @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -384,7 +384,7 @@ enum class TextureFormat: GLenum {
/**
* Red and green component, each non-normalized unsigned short. Can't be
* filtered using @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg} and @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -395,7 +395,7 @@ enum class TextureFormat: GLenum {
/**
* RGB, each component non-normalized unsigned short. Can't be filtered
* using @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -406,7 +406,7 @@ enum class TextureFormat: GLenum {
/**
* RGBA, each component non-normalized unsigned short. Can't be filtered
* using @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -417,7 +417,7 @@ enum class TextureFormat: GLenum {
/**
* Red component, non-normalized signed short. Can't be filtered using
* @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg} and @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -428,7 +428,7 @@ enum class TextureFormat: GLenum {
/**
* Red and green component, each non-normalized signed short. Can't be
* filtered using @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg} and @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -439,7 +439,7 @@ enum class TextureFormat: GLenum {
/**
* RGB, each component non-normalized signed short. Can't be filtered using
* @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -450,7 +450,7 @@ enum class TextureFormat: GLenum {
/**
* RGBA, each component non-normalized signed short. Can't be filtered
* using @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -461,7 +461,7 @@ enum class TextureFormat: GLenum {
/**
* Red component, non-normalized unsigned int. Can't be filtered using
* @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg} and @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -472,7 +472,7 @@ enum class TextureFormat: GLenum {
/**
* Red and green component, each non-normalized unsigned int. Can't be
* filtered using @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg} and @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -483,7 +483,7 @@ enum class TextureFormat: GLenum {
/**
* RGB, each component non-normalized unsigned int. Can't be filtered using
* @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -494,7 +494,7 @@ enum class TextureFormat: GLenum {
/**
* RGBA, each component non-normalized unsigned int. Can't be filtered
* using @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -505,7 +505,7 @@ enum class TextureFormat: GLenum {
/**
* Red component, non-normalized signed int. Can't be filtered using
* @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg} and @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -516,7 +516,7 @@ enum class TextureFormat: GLenum {
/**
* Red and green component, each non-normalized signed int. Can't be
* filtered using @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg} and @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -527,7 +527,7 @@ enum class TextureFormat: GLenum {
/**
* RGB, each component non-normalized signed int. Can't be filtered using
* @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -538,7 +538,7 @@ enum class TextureFormat: GLenum {
/**
* RGBA, each component non-normalized signed int. Can't be filtered using
* @ref SamplerFilter::Linear.
- * @requires_gl30 Extension @extension{EXT,texture_integer}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -549,14 +549,14 @@ enum class TextureFormat: GLenum {
/**
* Red component, half float.
* @see @ref Half, @ref Math::packHalf(), @ref Math::unpackHalf()
- * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{ARB,texture_float}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg} and @gl_extension{ARB,texture_float}
* @requires_gles30 Use @ref TextureFormat::Red / @ref TextureFormat::Luminance
* in combination with @ref PixelFormat::HalfFloat
- * (@extension2{OES,texture_half_float,OES_texture_float}) in OpenGL
+ * (@gl_extension2{OES,texture_half_float,OES_texture_float}) in OpenGL
* ES 2.0 instead.
- * @requires_gles30 Extension @extension2{OES,texture_half_float_linear,OES_texture_float_linear}
+ * @requires_gles30 Extension @gl_extension2{OES,texture_half_float_linear,OES_texture_float_linear}
* for filtering using @ref SamplerFilter::Linear in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{EXT,color_buffer_half_float} to
+ * @requires_gles32 Extension @gl_extension{EXT,color_buffer_half_float} to
* use as a render target. Use @ref TextureFormat::R16UI or
* @ref TextureFormat::R16I instead if not available.
* @requires_webgl20 Use @ref TextureFormat::Red / @ref TextureFormat::Luminance
@@ -576,14 +576,14 @@ enum class TextureFormat: GLenum {
/**
* Red and green component, each half float.
* @see @ref Half, @ref Math::packHalf(), @ref Math::unpackHalf()
- * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{ARB,texture_float}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg} and @gl_extension{ARB,texture_float}
* @requires_gles30 Use @ref TextureFormat::RG / @ref TextureFormat::LuminanceAlpha
* in combination with @ref PixelFormat::HalfFloat
- * (@extension2{OES,texture_half_float,OES_texture_float}) in OpenGL
+ * (@gl_extension2{OES,texture_half_float,OES_texture_float}) in OpenGL
* ES 2.0 instead.
- * @requires_gles30 Extension @extension2{OES,texture_half_float_linear,OES_texture_float_linear}
+ * @requires_gles30 Extension @gl_extension2{OES,texture_half_float_linear,OES_texture_float_linear}
* for filtering using @ref SamplerFilter::Linear in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{EXT,color_buffer_half_float} to
+ * @requires_gles32 Extension @gl_extension{EXT,color_buffer_half_float} to
* use as a render target in OpenGL ES. Use @ref TextureFormat::RG16UI
* or @ref TextureFormat::RG16I instead if not available.
* @requires_webgl20 Use @ref TextureFormat::RG / @ref TextureFormat::LuminanceAlpha
@@ -603,11 +603,11 @@ enum class TextureFormat: GLenum {
/**
* RGB, each component half float.
* @see @ref Half, @ref Math::packHalf(), @ref Math::unpackHalf()
- * @requires_gl30 Extension @extension{ARB,texture_float}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_float}
* @requires_gles30 Use @ref TextureFormat::RGB in combination with
- * @ref PixelFormat::HalfFloat (@extension2{OES,texture_half_float,OES_texture_float})
+ * @ref PixelFormat::HalfFloat (@gl_extension2{OES,texture_half_float,OES_texture_float})
* in OpenGL ES 2.0 instead.
- * @requires_gles30 Extension @extension2{OES,texture_half_float_linear,OES_texture_float_linear}
+ * @requires_gles30 Extension @gl_extension2{OES,texture_half_float_linear,OES_texture_float_linear}
* for filtering using @ref SamplerFilter::Linear in OpenGL ES 2.0.
* @requires_webgl20 Use @ref TextureFormat::RGB in combination with
* @ref PixelFormat::HalfFloat (@webgl_extension{OES,texture_half_float})
@@ -625,13 +625,13 @@ enum class TextureFormat: GLenum {
/**
* RGBA, each component half float.
* @see @ref Half, @ref Math::packHalf(), @ref Math::unpackHalf()
- * @requires_gl30 Extension @extension{ARB,texture_float}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_float}
* @requires_gles30 Use @ref TextureFormat::RGBA in combination with
- * @ref PixelFormat::HalfFloat (@extension2{OES,texture_half_float,OES_texture_float})
+ * @ref PixelFormat::HalfFloat (@gl_extension2{OES,texture_half_float,OES_texture_float})
* in OpenGL ES 2.0 instead.
- * @requires_gles30 Extension @extension2{OES,texture_half_float_linear,OES_texture_float_linear}
+ * @requires_gles30 Extension @gl_extension2{OES,texture_half_float_linear,OES_texture_float_linear}
* for filtering using @ref SamplerFilter::Linear.
- * @requires_gles32 Extension @extension{EXT,color_buffer_half_float} to
+ * @requires_gles32 Extension @gl_extension{EXT,color_buffer_half_float} to
* use as a render target in OpenGL ES. Use @ref TextureFormat::RGBA16UI
* or @ref TextureFormat::RGBA16I instead if not available.
* @requires_webgl20 Use @ref TextureFormat::RGBA in combination with
@@ -649,14 +649,14 @@ enum class TextureFormat: GLenum {
/**
* Red component, float.
- * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{ARB,texture_float}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg} and @gl_extension{ARB,texture_float}
* @requires_gles30 Use @ref TextureFormat::Red / @ref TextureFormat::Luminance
- * in combination with @ref PixelFormat::Float (@extension{OES,texture_float})
+ * in combination with @ref PixelFormat::Float (@gl_extension{OES,texture_float})
* in OpenGL ES 2.0 instead.
- * @requires_gles32 Extension @extension{EXT,color_buffer_float} to use as
+ * @requires_gles32 Extension @gl_extension{EXT,color_buffer_float} to use as
* a render target. Use @ref TextureFormat::R32UI or
* @ref TextureFormat::R32I instead if not available.
- * @requires_es_extension Extension @extension{OES,texture_float_linear}
+ * @requires_es_extension Extension @gl_extension{OES,texture_float_linear}
* for filtering using @ref SamplerFilter::Linear.
* @requires_webgl20 Use @ref TextureFormat::Red / @ref TextureFormat::Luminance
* in combination with @ref PixelFormat::Float (@webgl_extension{OES,texture_float})
@@ -674,14 +674,14 @@ enum class TextureFormat: GLenum {
/**
* Red and green component, each float.
- * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{ARB,texture_float}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg} and @gl_extension{ARB,texture_float}
* @requires_gles30 Use @ref TextureFormat::RG / @ref TextureFormat::LuminanceAlpha
- * in combination with @ref PixelFormat::Float (@extension{OES,texture_float})
+ * in combination with @ref PixelFormat::Float (@gl_extension{OES,texture_float})
* in OpenGL ES 2.0 instead.
- * @requires_gles32 Extension @extension{EXT,color_buffer_float} to use as
+ * @requires_gles32 Extension @gl_extension{EXT,color_buffer_float} to use as
* a render target. Use @ref TextureFormat::RG32UI or
* @ref TextureFormat::RG32I instead if not available.
- * @requires_es_extension Extension @extension{OES,texture_float_linear}
+ * @requires_es_extension Extension @gl_extension{OES,texture_float_linear}
* for filtering using @ref SamplerFilter::Linear.
* @requires_webgl20 Use @ref TextureFormat::RG / @ref TextureFormat::LuminanceAlpha
* in combination with @ref PixelFormat::Float (@webgl_extension{OES,texture_float})
@@ -699,11 +699,11 @@ enum class TextureFormat: GLenum {
/**
* RGB, each component float.
- * @requires_gl30 Extension @extension{ARB,texture_float}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_float}
* @requires_gles30 Use @ref TextureFormat::RGB in combination with
- * @ref PixelFormat::Float (@extension{OES,texture_float}) in OpenGL
+ * @ref PixelFormat::Float (@gl_extension{OES,texture_float}) in OpenGL
* ES 2.0 instead.
- * @requires_es_extension Extension @extension{OES,texture_float_linear}
+ * @requires_es_extension Extension @gl_extension{OES,texture_float_linear}
* for filtering using @ref SamplerFilter::Linear.
* @requires_webgl20 Use @ref TextureFormat::RGB in combination with
* @ref PixelFormat::Float (@webgl_extension{OES,texture_float}) in
@@ -719,13 +719,13 @@ enum class TextureFormat: GLenum {
/**
* RGBA, each component float.
- * @requires_gl30 Extension @extension{ARB,texture_float}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_float}
* @requires_gles30 Use @ref TextureFormat::RGBA in combination with
- * @ref PixelFormat::Float (@extension{OES,texture_float}) in OpenGL
+ * @ref PixelFormat::Float (@gl_extension{OES,texture_float}) in OpenGL
* ES 2.0 instead.
- * @requires_es_extension Extension @extension{OES,texture_float_linear}
+ * @requires_es_extension Extension @gl_extension{OES,texture_float_linear}
* for filtering using @ref SamplerFilter::Linear.
- * @requires_gles32 Extension @extension{EXT,color_buffer_float} to
+ * @requires_gles32 Extension @gl_extension{EXT,color_buffer_float} to
* use as a render target in OpenGL ES. Use @ref TextureFormat::RGBA32UI
* or @ref TextureFormat::RGBA32I instead if not available.
* @requires_webgl20 Use @ref TextureFormat::RGBA in combination with
@@ -790,8 +790,8 @@ enum class TextureFormat: GLenum {
/**
* RGB, normalized unsigned, red and blue component 5bit, green 6bit.
- * @requires_gles30 Extension @extension{OES,required_internalformat}
- * (for image specification) or @extension{EXT,texture_storage}
+ * @requires_gles30 Extension @gl_extension{OES,required_internalformat}
+ * (for image specification) or @gl_extension{EXT,texture_storage}
* (for texture storage) in OpenGL ES 2.0.
* @requires_webgl20 Not available in WebGL 1.0, see @ref TextureFormat::RGB
* for an alternative.
@@ -801,9 +801,9 @@ enum class TextureFormat: GLenum {
#if !defined(MAGNUM_TARGET_GLES) || (defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL))
/**
* RGB, each component normalized unsigned 10bit.
- * @requires_es_extension Extension @extension{EXT,texture_type_2_10_10_10_REV}
- * and either @extension{OES,required_internalformat} (for image
- * specification) or @extension{EXT,texture_storage} (for texture
+ * @requires_es_extension Extension @gl_extension{EXT,texture_type_2_10_10_10_REV}
+ * and either @gl_extension{OES,required_internalformat} (for image
+ * specification) or @gl_extension{EXT,texture_storage} (for texture
* storage) in OpenGL ES 2.0. Included for compatibility reasons only,
* use @ref TextureFormat::RGB10A2 in OpenGL ES 3.0 instead.
* @requires_gles Not available in WebGL, use @ref TextureFormat::RGB10A2
@@ -827,7 +827,7 @@ enum class TextureFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES2
/**
* RGB, float, red and green component 11bit, blue 10bit.
- * @requires_gl30 Extension @extension{EXT,packed_float}
+ * @requires_gl30 Extension @gl_extension{EXT,packed_float}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -837,7 +837,7 @@ enum class TextureFormat: GLenum {
/**
* RGB, unsigned with exponent, each RGB component 9bit, exponent 5bit.
- * @requires_gl30 Extension @extension{EXT,texture_shared_exponent}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_shared_exponent}
* @requires_gles30 Use @ref TextureFormat::RGB in OpenGL ES 2.0 instead.
* @requires_webgl20 Use @ref TextureFormat::RGB in WebGL 1.0 instead.
*/
@@ -849,7 +849,7 @@ enum class TextureFormat: GLenum {
* 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 @extension{EXT,sRGB} in OpenGL ES 2.0.
+ * @requires_es_extension Extension @gl_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.
@@ -866,8 +866,8 @@ enum class TextureFormat: GLenum {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* sRGB, each component normalized unsigned byte.
- * @requires_gles30 Extension @extension{EXT,sRGB} and
- * @extension{EXT,texture_storage}, only for
+ * @requires_gles30 Extension @gl_extension{EXT,sRGB} and
+ * @gl_extension{EXT,texture_storage}, only for
* @ref Texture::setStorage() "*Texture::setStorage()" calls,
* otherwise use @ref TextureFormat::SRGB in OpenGL ES 2.0 instead.
* @requires_gl Can't be used as render target in OpenGL ES. Use
@@ -891,8 +891,8 @@ enum class TextureFormat: GLenum {
/**
* RGBA, normalized unsigned, each component 4bit.
- * @requires_gles30 Extension @extension{OES,required_internalformat}
- * (for image specification) or @extension{EXT,texture_storage}
+ * @requires_gles30 Extension @gl_extension{OES,required_internalformat}
+ * (for image specification) or @gl_extension{EXT,texture_storage}
* (for texture storage) in OpenGL ES 2.0. Use @ref TextureFormat::RGBA
* otherwise.
* @requires_webgl20 Not available in WebGL 1.0, use @ref TextureFormat::RGBA
@@ -902,8 +902,8 @@ enum class TextureFormat: GLenum {
/**
* RGBA, normalized unsigned, each RGB component 5bit, alpha 1bit.
- * @requires_gles30 Extension @extension{OES,required_internalformat}
- * (for image specification) or @extension{EXT,texture_storage}
+ * @requires_gles30 Extension @gl_extension{OES,required_internalformat}
+ * (for image specification) or @gl_extension{EXT,texture_storage}
* (for texture storage) in OpenGL ES 2.0. Use @ref TextureFormat::RGBA
* otherwise.
* @requires_webgl20 Not available in WebGL 1.0, use @ref TextureFormat::RGBA
@@ -914,9 +914,9 @@ enum class TextureFormat: GLenum {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* RGBA, normalized unsigned, each RGB component 10bit, alpha 2bit.
- * @requires_gles30 Extension @extension{EXT,texture_type_2_10_10_10_REV}
- * and either @extension{OES,required_internalformat} (for image
- * specification) or @extension{EXT,texture_storage} (for texture
+ * @requires_gles30 Extension @gl_extension{EXT,texture_type_2_10_10_10_REV}
+ * and either @gl_extension{OES,required_internalformat} (for image
+ * specification) or @gl_extension{EXT,texture_storage} (for texture
* storage) in OpenGL ES 2.0.
* @requires_webgl20 Not available in WebGL 1.0.
*/
@@ -931,7 +931,7 @@ enum class TextureFormat: GLenum {
/**
* RGBA, non-normalized unsigned, each RGB component 10bit, alpha 2bit.
* Can't be filtered using @ref SamplerFilter::Linear.
- * @requires_gl33 Extension @extension{ARB,texture_rgb10_a2ui}
+ * @requires_gl33 Extension @gl_extension{ARB,texture_rgb10_a2ui}
* @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0.
* @requires_webgl20 Only normalized integral formats are available in
@@ -954,7 +954,7 @@ enum class TextureFormat: GLenum {
* Not allowed in unemulated @ref Texture::setStorage() "*Texture::setStorage()"
* calls, in that case use @ref TextureFormat::SRGB8Alpha8 "TextureFormat::SRGB8Alpha8"
* instead.
- * @requires_es_extension Extension @extension{EXT,sRGB} in OpenGL ES
+ * @requires_es_extension Extension @gl_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.
@@ -971,8 +971,8 @@ enum class TextureFormat: GLenum {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* sRGB + linear alpha, each component normalized unsigned byte.
- * @requires_gles30 Extension @extension{EXT,sRGB} and
- * @extension{EXT,texture_storage}, only for
+ * @requires_gles30 Extension @gl_extension{EXT,sRGB} and
+ * @gl_extension{EXT,texture_storage}, only for
* @ref Texture::setStorage() "*Texture::setStorage()" calls,
* otherwise use @ref TextureFormat::SRGBAlpha in OpenGL ES 2.0
* instead.
@@ -989,7 +989,7 @@ enum class TextureFormat: GLenum {
/**
* Compressed red channel, normalized unsigned. **Not available on
* multisample textures.**
- * @requires_gl30 Extension @extension{ARB,texture_rg}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg}
* @requires_gl Generic texture compression is not available in OpenGL ES
* or WebGL.
*/
@@ -998,7 +998,7 @@ enum class TextureFormat: GLenum {
/**
* Compressed red and green channel, normalized unsigned. **Not available
* on multisample textures.**
- * @requires_gl30 Extension @extension{ARB,texture_rg}
+ * @requires_gl30 Extension @gl_extension{ARB,texture_rg}
* @requires_gl Generic texture compression is not available in OpenGL ES
* or WebGL.
*/
@@ -1023,7 +1023,7 @@ enum class TextureFormat: GLenum {
/**
* RGTC compressed red channel, normalized unsigned. **Available only on
* 2D, 2D array, cube map and cube map array textures.**
- * @requires_gl30 Extension @extension{EXT,texture_compression_rgtc}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_compression_rgtc}
* @requires_gl Generic texture compression is not available in OpenGL ES
* or WebGL.
*/
@@ -1032,7 +1032,7 @@ enum class TextureFormat: GLenum {
/**
* RGTC compressed red and green channel, normalized unsigned. **Available
* only on 2D, 2D array, cube map and cube map array textures.**
- * @requires_gl30 Extension @extension{EXT,texture_compression_rgtc}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_compression_rgtc}
* @requires_gl RGTC texture compression is not available in OpenGL ES or
* WebGL.
*/
@@ -1041,7 +1041,7 @@ enum class TextureFormat: GLenum {
/**
* RGTC compressed red channel, normalized signed. **Available only on 2D,
* 2D array, cube map and cube map array textures.**
- * @requires_gl30 Extension @extension{EXT,texture_compression_rgtc}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_compression_rgtc}
* @requires_gl RGTC texture compression is not available in OpenGL ES or
* WebGL.
*/
@@ -1050,7 +1050,7 @@ enum class TextureFormat: GLenum {
/**
* RGTC compressed red and green channel, normalized signed. **Available
* only on 2D, 2D array, cube map and cube map array textures.**
- * @requires_gl30 Extension @extension{EXT,texture_compression_rgtc}
+ * @requires_gl30 Extension @gl_extension{EXT,texture_compression_rgtc}
* @requires_gl RGTC texture compression is not available in OpenGL ES or
* WebGL.
*/
@@ -1059,7 +1059,7 @@ enum class TextureFormat: GLenum {
/**
* BPTC compressed RGB, unsigned float. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_gl42 Extension @extension{ARB,texture_compression_bptc}
+ * @requires_gl42 Extension @gl_extension{ARB,texture_compression_bptc}
* @requires_gl BPTC texture compression is not available in OpenGL ES or
* WebGL.
*/
@@ -1068,7 +1068,7 @@ enum class TextureFormat: GLenum {
/**
* BPTC compressed RGB, signed float. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_gl42 Extension @extension{ARB,texture_compression_bptc}
+ * @requires_gl42 Extension @gl_extension{ARB,texture_compression_bptc}
* @requires_gl BPTC texture compression is not available in OpenGL ES or
* WebGL.
*/
@@ -1077,7 +1077,7 @@ enum class TextureFormat: GLenum {
/**
* BPTC compressed RGBA, normalized unsigned. **Available only on 2D, 3D,
* 2D array, cube map and cube map array textures.**
- * @requires_gl42 Extension @extension{ARB,texture_compression_bptc}
+ * @requires_gl42 Extension @gl_extension{ARB,texture_compression_bptc}
* @requires_gl BPTC texture compression is not available in OpenGL ES or
* WebGL.
*/
@@ -1086,7 +1086,7 @@ enum class TextureFormat: GLenum {
/**
* BPTC compressed sRGBA, normalized unsigned. **Available only on 2D, 3D,
* 2D array, cube map and cube map array textures.**
- * @requires_gl42 Extension @extension{ARB,texture_compression_bptc}
+ * @requires_gl42 Extension @gl_extension{ARB,texture_compression_bptc}
* @requires_gl BPTC texture compression is not available in OpenGL ES or
* WebGL.
*/
@@ -1097,7 +1097,7 @@ enum class TextureFormat: GLenum {
/**
* ETC2 compressed RGB, normalized unsigned. **Available only on 2D, 2D
* array, cube map and cube map array textures.**
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
* @requires_gles30 ETC2 texture compression is not available in OpenGL ES
* 2.0.
*/
@@ -1106,7 +1106,7 @@ enum class TextureFormat: GLenum {
/**
* ETC2 compressed sRGB, normalized unsigned. **Available only on 2D, 2D
* array, cube map and cube map array textures.**
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
* @requires_gles30 ETC2 texture compression is not available in OpenGL ES
* 2.0.
*/
@@ -1116,7 +1116,7 @@ enum class TextureFormat: GLenum {
* ETC2 compressed RGB with punchthrough (single-bit) alpha, normalized
* unsigned. **Available only on 2D, 2D array, cube map and cube map array
* textures.**
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
* @requires_gles30 ETC2 texture compression is not available in OpenGL ES
* 2.0.
*/
@@ -1126,7 +1126,7 @@ enum class TextureFormat: GLenum {
* ETC2 compressed sRGB with punchthrough (single-bit) alpha, normalized
* unsigned. **Available only on 2D, 2D array, cube map and cube map array
* textures.**
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
* @requires_gles30 ETC2 texture compression is not available in OpenGL ES
* 2.0.
*/
@@ -1135,7 +1135,7 @@ enum class TextureFormat: GLenum {
/**
* ETC2/EAC compressed RGBA, normalized unsigned. **Available only on 2D,
* 2D array, cube map and cube map array textures.**
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
* @requires_gles30 ETC2 texture compression is not available in OpenGL ES
* 2.0.
*/
@@ -1144,7 +1144,7 @@ enum class TextureFormat: GLenum {
/**
* ETC2/EAC compressed sRGB with alpha, normalized unsigned. **Available
* only on 2D, 2D array, cube map and cube map array textures.**
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
* @requires_gles30 ETC2 texture compression is not available in OpenGL ES
* 2.0.
*/
@@ -1153,7 +1153,7 @@ enum class TextureFormat: GLenum {
/**
* EAC compressed red channel, normalized unsigned. **Available only on 2D,
* 2D array, cube map and cube map array textures.**
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
* @requires_gles30 ETC2 texture compression is not available in OpenGL ES
* 2.0.
*/
@@ -1162,7 +1162,7 @@ enum class TextureFormat: GLenum {
/**
* EAC compressed red channel, normalized signed. **Available only on 2D,
* 2D array, cube map and cube map array textures.**
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
* @requires_gles30 ETC2 texture compression is not available in OpenGL ES
* 2.0.
*/
@@ -1171,7 +1171,7 @@ enum class TextureFormat: GLenum {
/**
* EAC compressed red and green channel, normalized unsigned. **Available
* only on 2D, 2D array, cube map and cube map array textures.**
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
* @requires_gles30 ETC2 texture compression is not available in OpenGL ES
* 2.0.
*/
@@ -1180,7 +1180,7 @@ enum class TextureFormat: GLenum {
/**
* EAC compressed red and green channel, normalized signed. **Available
* only on 2D, 2D array, cube map and cube map array textures.**
- * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
+ * @requires_gl43 Extension @gl_extension{ARB,ES3_compatibility}
* @requires_gles30 ETC2 texture compression is not available in OpenGL ES
* 2.0.
*/
@@ -1190,8 +1190,8 @@ enum class TextureFormat: GLenum {
/**
* S3TC DXT1 compressed RGB. **Available only on 2D, 2D array, cube map and
* cube map array textures.**
- * @requires_extension Extension @extension{EXT,texture_compression_s3tc}
- * @requires_es_extension Extension @extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
+ * @requires_extension Extension @gl_extension{EXT,texture_compression_s3tc}
+ * @requires_es_extension Extension @gl_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
* @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc}
*/
CompressedRGBS3tcDxt1 = GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
@@ -1199,8 +1199,8 @@ enum class TextureFormat: GLenum {
/**
* S3TC DXT1 compressed RGBA. **Available only on 2D, 2D array, cube map
* and cube map array textures.**
- * @requires_extension Extension @extension{EXT,texture_compression_s3tc}
- * @requires_es_extension Extension @extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
+ * @requires_extension Extension @gl_extension{EXT,texture_compression_s3tc}
+ * @requires_es_extension Extension @gl_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
* @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc}
*/
CompressedRGBAS3tcDxt1 = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,
@@ -1208,8 +1208,8 @@ enum class TextureFormat: GLenum {
/**
* S3TC DXT3 compressed RGBA. **Available only on 2D, 2D array, cube map
* and cube map array textures.**
- * @requires_extension Extension @extension{EXT,texture_compression_s3tc}
- * @requires_es_extension Extension @extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
+ * @requires_extension Extension @gl_extension{EXT,texture_compression_s3tc}
+ * @requires_es_extension Extension @gl_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
* @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc}
*/
CompressedRGBAS3tcDxt3 = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
@@ -1217,8 +1217,8 @@ enum class TextureFormat: GLenum {
/**
* S3TC DXT5 compressed RGBA. **Available only on 2D, 2D array, cube map
* and cube map array textures.**
- * @requires_extension Extension @extension{EXT,texture_compression_s3tc}
- * @requires_es_extension Extension @extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
+ * @requires_extension Extension @gl_extension{EXT,texture_compression_s3tc}
+ * @requires_es_extension Extension @gl_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
* @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc}
*/
CompressedRGBAS3tcDxt5 = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,
@@ -1227,12 +1227,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed RGBA with 4x4 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1241,12 +1241,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 4x4 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1255,12 +1255,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed RGBA with 5x4 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1269,12 +1269,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 5x4 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1283,12 +1283,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed RGBA with 5x5 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1297,12 +1297,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 5x5 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1311,12 +1311,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed RGBA with 6x5 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1325,12 +1325,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 6x5 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1339,12 +1339,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed RGBA with 6x6 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1353,12 +1353,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 6x6 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1367,12 +1367,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed RGBA with 8x5 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1381,12 +1381,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 8x5 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1395,12 +1395,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed RGBA with 8x6 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1409,12 +1409,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 8x6 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1423,12 +1423,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed RGBA with 8x8 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1437,12 +1437,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 8x8 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1451,12 +1451,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed RGBA with 10x5 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1465,12 +1465,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 10x5 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1479,12 +1479,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed RGBA with 10x6 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1493,12 +1493,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 10x6 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1507,12 +1507,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed RGBA with 10x8 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1521,12 +1521,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 10x8 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1535,12 +1535,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed RGBA with 10x10 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1549,12 +1549,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 10x10 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1563,12 +1563,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed RGBA with 12x10 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1577,12 +1577,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 12x10 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1591,12 +1591,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed RGBA with 12x12 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1605,12 +1605,12 @@ enum class TextureFormat: GLenum {
/**
* ASTC compressed sRGB with alpha with 12x12 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.**
- * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_extension Extension @gl_extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
- * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
+ * @requires_es_extension Extension @gl_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL.
*/
@@ -1622,8 +1622,8 @@ enum class TextureFormat: GLenum {
* textures. Not allowed in unemulated @ref Texture::setStorage()
* "*Texture::setStorage()" calls, in that case use e.g.
* @ref TextureFormat::DepthComponent24 "TextureFormat::DepthComponent24" instead.
- * @requires_gles30 Extension @extension{OES,depth_texture} or
- * @extension{ANGLE,depth_texture} in OpenGL ES 2.0.
+ * @requires_gles30 Extension @gl_extension{OES,depth_texture} or
+ * @gl_extension{ANGLE,depth_texture} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{WEBGL,depth_texture} in
* WebGL 1.0.
* @deprecated_gl Prefer to use the exactly specified version of this
@@ -1634,10 +1634,10 @@ enum class TextureFormat: GLenum {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* Depth component, 16bit. Not supported in 3D textures.
- * @requires_gles30 Extension @extension{OES,depth_texture} or
- * @extension{ANGLE,depth_texture} and either
- * @extension{OES,required_internalformat} (for image
- * specification) or @extension{EXT,texture_storage} (for texture
+ * @requires_gles30 Extension @gl_extension{OES,depth_texture} or
+ * @gl_extension{ANGLE,depth_texture} and either
+ * @gl_extension{OES,required_internalformat} (for image
+ * specification) or @gl_extension{EXT,texture_storage} (for texture
* storage) in OpenGL ES 2.0. Use @ref TextureFormat::DepthComponent
* otherwise.
* @requires_webgl20 Not available in WebGL 1.0, use
@@ -1647,8 +1647,8 @@ enum class TextureFormat: GLenum {
/**
* Depth component, 24bit. Not supported in 3D textures.
- * @requires_gles30 Extension @extension{OES,required_internalformat},
- * @extension{OES,depth_texture} and @extension{OES,depth24} in
+ * @requires_gles30 Extension @gl_extension{OES,required_internalformat},
+ * @gl_extension{OES,depth_texture} and @gl_extension{OES,depth24} in
* OpenGL ES 2.0. Use @ref TextureFormat::DepthComponent otherwise.
* @requires_webgl20 Not available in WebGL 1.0, use
* @ref TextureFormat::DepthComponent instead.
@@ -1663,10 +1663,10 @@ enum class TextureFormat: GLenum {
#ifndef MAGNUM_TARGET_WEBGL
/**
* Depth component, 32bit. Not supported in 3D textures.
- * @requires_es_extension Extension @extension{OES,depth_texture} or
- * @extension{ANGLE,depth_texture} and @extension{OES,depth32}
- * and @extension{OES,required_internalformat} (for image
- * specification) or @extension{EXT,texture_storage} (for texture
+ * @requires_es_extension Extension @gl_extension{OES,depth_texture} or
+ * @gl_extension{ANGLE,depth_texture} and @gl_extension{OES,depth32}
+ * and @gl_extension{OES,required_internalformat} (for image
+ * specification) or @gl_extension{EXT,texture_storage} (for texture
* storage) in OpenGL ES 2.0.
* @requires_gles Not available in WebGL.
*/
@@ -1680,7 +1680,7 @@ enum class TextureFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES2
/**
* Depth component, 32bit float. Not supported in 3D textures.
- * @requires_gl30 Extension @extension{ARB,depth_buffer_float}
+ * @requires_gl30 Extension @gl_extension{ARB,depth_buffer_float}
* @requires_gles30 Only integral depth textures are available in OpenGL ES
* 2.0.
* @requires_webgl20 Only integral depth textures are available in WebGL
@@ -1692,9 +1692,9 @@ enum class TextureFormat: GLenum {
#ifndef MAGNUM_TARGET_WEBGL
/**
* Stencil index, 8bit. Not supported in 3D textures.
- * @requires_gl44 Extension @extension{ARB,texture_stencil8}
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{OES,texture_stencil8}
+ * @requires_gl44 Extension @gl_extension{ARB,texture_stencil8}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{OES,texture_stencil8}
* @requires_gles Only available as renderbuffer format in WebGL.
*/
StencilIndex8 = GL_STENCIL_INDEX8,
@@ -1707,8 +1707,8 @@ enum class TextureFormat: GLenum {
* use e.g. @ref TextureFormat::Depth24Stencil8 "TextureFormat::Depth24Stencil8"
* instead.
* @see @ref Texture::setDepthStencilMode() "*Texture::setDepthStencilMode()"
- * @requires_gles30 Extension @extension{OES,packed_depth_stencil} or
- * @extension{ANGLE,depth_texture} in OpenGL ES 2.0.
+ * @requires_gles30 Extension @gl_extension{OES,packed_depth_stencil} or
+ * @gl_extension{ANGLE,depth_texture} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{WEBGL,depth_texture} in
* WebGL 1.0.
* @deprecated_gl Prefer to use exactly specified version of this format,
@@ -1726,11 +1726,11 @@ enum class TextureFormat: GLenum {
/**
* 24bit depth and 8bit stencil component. Not supported in 3D textures.
* @see @ref Texture::setDepthStencilMode() "*Texture::setDepthStencilMode()"
- * @requires_gl30 Extension @extension{ARB,framebuffer_object}
- * @requires_gles30 Extension @extension{OES,packed_depth_stencil} or
- * @extension{ANGLE,depth_texture} and either
- * @extension{OES,required_internalformat} (for image
- * specification) or @extension{EXT,texture_storage} (for texture
+ * @requires_gl30 Extension @gl_extension{ARB,framebuffer_object}
+ * @requires_gles30 Extension @gl_extension{OES,packed_depth_stencil} or
+ * @gl_extension{ANGLE,depth_texture} and either
+ * @gl_extension{OES,required_internalformat} (for image
+ * specification) or @gl_extension{EXT,texture_storage} (for texture
* storage) in OpenGL ES 2.0.
* @requires_webgl20 Use @ref TextureFormat::DepthStencil in WebGL 1.0
* instead.
@@ -1747,7 +1747,7 @@ enum class TextureFormat: GLenum {
* 32bit float depth component and 8bit stencil component. Not supported in
* 3D textures.
* @see @ref Texture::setDepthStencilMode() "*Texture::setDepthStencilMode()"
- * @requires_gl30 Extension @extension{ARB,depth_buffer_float}
+ * @requires_gl30 Extension @gl_extension{ARB,depth_buffer_float}
* @requires_gles30 Only integral depth textures are available in OpenGL ES
* 2.0.
* @requires_webgl20 Only integral depth textures are available in WebGL
diff --git a/src/Magnum/GL/TimeQuery.h b/src/Magnum/GL/TimeQuery.h
index 16f4a8c38..90d845055 100644
--- a/src/Magnum/GL/TimeQuery.h
+++ b/src/Magnum/GL/TimeQuery.h
@@ -49,13 +49,13 @@ usage of both methods:
Using the latter results in fewer OpenGL calls when doing more measures.
-@requires_gl33 Extension @extension{ARB,timer_query}
-@requires_es_extension Extension @extension{EXT,disjoint_timer_query}
+@requires_gl33 Extension @gl_extension{ARB,timer_query}
+@requires_es_extension Extension @gl_extension{EXT,disjoint_timer_query}
@requires_gles Time query is not available in WebGL.
@see @ref PrimitiveQuery, @ref SampleQuery
@todo timestamp with glGet + example usage
-@todo @extension{EXT,disjoint_timer_query} --- GL_GPU_DISJOINT_EXT support? where?
+@todo @gl_extension{EXT,disjoint_timer_query} --- GL_GPU_DISJOINT_EXT support? where?
*/
class TimeQuery: public AbstractQuery {
public:
@@ -107,7 +107,7 @@ class TimeQuery: public AbstractQuery {
/**
* @brief Constructor
*
- * Creates new OpenGL query object. If @extension{ARB,direct_state_access}
+ * Creates new OpenGL query object. If @gl_extension{ARB,direct_state_access}
* (part of OpenGL 4.5) is not available, the query is created on first
* use.
* @see @ref TimeQuery(NoCreateT), @ref wrap(), @fn_gl_keyword{CreateQueries},
diff --git a/src/Magnum/GL/TransformFeedback.h b/src/Magnum/GL/TransformFeedback.h
index f3dfa000f..261d8e1bc 100644
--- a/src/Magnum/GL/TransformFeedback.h
+++ b/src/Magnum/GL/TransformFeedback.h
@@ -53,16 +53,16 @@ implementation-defined values (such as @ref maxSeparateComponents()) are
cached, so repeated queries don't result in repeated @fn_gl{Get} calls. See
also @ref Context::resetState() and @ref Context::State::TransformFeedback.
-If @extension{ARB,direct_state_access} (part of OpenGL 4.5) is available,
+If @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) is available,
functions @ref attachBuffer() and @ref attachBuffers() use DSA to avoid
unnecessary calls to @fn_gl{BindTransformFeedback}. See their respective
documentation for more information.
@see @ref PrimitiveQuery
-@requires_gl40 Extension @extension{ARB,transform_feedback2}
+@requires_gl40 Extension @gl_extension{ARB,transform_feedback2}
@requires_gles30 Transform feedback is not available in OpenGL ES 2.0.
@requires_webgl20 Transform feedback is not available in WebGL 1.0.
-@todo @extension{AMD,transform_feedback3_lines_triangles}?
+@todo @gl_extension{AMD,transform_feedback3_lines_triangles}?
*/
class MAGNUM_GL_EXPORT TransformFeedback: public AbstractObject {
friend Implementation::TransformFeedbackState;
@@ -110,7 +110,7 @@ class MAGNUM_GL_EXPORT TransformFeedback: public AbstractObject {
* @brief Max supported interleaved component count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{EXT,transform_feedback}
+ * OpenGL calls. If extension @gl_extension{EXT,transform_feedback}
* (part of OpenGL 3.0) is not available, returns @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS}
*/
@@ -120,7 +120,7 @@ class MAGNUM_GL_EXPORT TransformFeedback: public AbstractObject {
* @brief Max supported separate attribute count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{EXT,transform_feedback}
+ * OpenGL calls. If extension @gl_extension{EXT,transform_feedback}
* (part of OpenGL 3.0) is not available, returns @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS}
*/
@@ -130,7 +130,7 @@ class MAGNUM_GL_EXPORT TransformFeedback: public AbstractObject {
* @brief Max supported separate component count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{EXT,transform_feedback}
+ * OpenGL calls. If extension @gl_extension{EXT,transform_feedback}
* (part of OpenGL 3.0) is not available, returns @cpp 0 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS}
*/
@@ -141,7 +141,7 @@ class MAGNUM_GL_EXPORT TransformFeedback: public AbstractObject {
* @brief Max supported buffer count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{ARB,transform_feedback3}
+ * OpenGL calls. If extension @gl_extension{ARB,transform_feedback3}
* (part of OpenGL 4.0) is not available, returns the same value as
* @ref maxSeparateAttributes().
* @see @fn_gl{Get} with @def_gl_keyword{MAX_TRANSFORM_FEEDBACK_BUFFERS}
@@ -154,7 +154,7 @@ class MAGNUM_GL_EXPORT TransformFeedback: public AbstractObject {
* @brief Max supported vertex stream count
*
* The result is cached, repeated queries don't result in repeated
- * OpenGL calls. If extension @extension{ARB,transform_feedback3} (part
+ * OpenGL calls. If extension @gl_extension{ARB,transform_feedback3} (part
* of OpenGL 4.0) is not available, returns @cpp 1 @ce.
* @see @fn_gl{Get} with @def_gl_keyword{MAX_VERTEX_STREAMS}
* @requires_gl Multiple vertex streams are not available in OpenGL ES
@@ -182,7 +182,7 @@ class MAGNUM_GL_EXPORT TransformFeedback: public AbstractObject {
* @brief Constructor
*
* Creates new OpenGL transform feedback object. If
- * @extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
+ * @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
* available, the transform feedback object is created on first use.
* @see @ref TransformFeedback(NoCreateT), @ref wrap(),
* @fn_gl_keyword{CreateTransformFeedbacks}, eventually
@@ -245,8 +245,8 @@ class MAGNUM_GL_EXPORT TransformFeedback: public AbstractObject {
*
* The result is *not* cached, repeated queries will result in repeated
* OpenGL calls. If OpenGL 4.3 / OpenGL ES 3.2 is not supported and
- * neither @extension{KHR,debug} (covered also by
- * @extension{ANDROID,extension_pack_es31a}) nor @extension{EXT,debug_label}
+ * neither @gl_extension{KHR,debug} (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) nor @gl_extension{EXT,debug_label}
* desktop or ES extension is available, this function returns empty
* string.
* @see @fn_gl_keyword{GetObjectLabel} or
@@ -261,8 +261,8 @@ class MAGNUM_GL_EXPORT TransformFeedback: public AbstractObject {
* @return Reference to self (for method chaining)
*
* Default is empty string. If OpenGL 4.3 / OpenGL ES 3.2 is not
- * supported and neither @extension{KHR,debug} (covered also by
- * @extension{ANDROID,extension_pack_es31a}) nor @extension{EXT,debug_label}
+ * supported and neither @gl_extension{KHR,debug} (covered also by
+ * @gl_extension{ANDROID,extension_pack_es31a}) nor @gl_extension{EXT,debug_label}
* desktop or ES extension is available, this function does nothing.
* @see @ref maxLabelLength(), @fn_gl_keyword{ObjectLabel} or
* @fn_gl_extension_keyword{LabelObject,EXT,debug_label} with
@@ -284,7 +284,7 @@ class MAGNUM_GL_EXPORT TransformFeedback: public AbstractObject {
* @return Reference to self (for method chaining)
*
* The @p offset parameter must be aligned to 4 bytes. If
- * @extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
+ * @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
* available, the transform feedback object is bound (if not already)
* and the operation is then done equivalently to
* @ref Buffer::bind(Buffer::Target, UnsignedInt, GLintptr, GLsizeiptr).
@@ -302,7 +302,7 @@ class MAGNUM_GL_EXPORT TransformFeedback: public AbstractObject {
* @brief Attach buffer
* @return Reference to self (for method chaining)
*
- * If @extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
+ * If @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
* available, the transform feedback object is bound (if not already)
* and the operation is then done equivalently to
* @ref Buffer::bind(Buffer::Target, UnsignedInt).
@@ -324,10 +324,10 @@ class MAGNUM_GL_EXPORT TransformFeedback: public AbstractObject {
* `firstIndex + 1` etc. Second parameter is offset, third is size. If
* any buffer is @cpp nullptr @ce, given attachment point is detached.
* The range of indices must respect @ref maxBuffers() (@ref maxSeparateComponents()
- * in OpenGL ES or if @extension{ARB,transform_feedback3} (part of
+ * in OpenGL ES or if @gl_extension{ARB,transform_feedback3} (part of
* OpenGL 4.0) is not available). The offsets must be aligned to 4
* bytes. All the buffers must have allocated data store. If
- * @extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
+ * @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
* available, the transform feedback object is bound (if not already)
* and the operation is then done equivalently to
* @ref Buffer::bind(Buffer::Target, UnsignedInt, std::initializer_list>).
@@ -348,9 +348,9 @@ class MAGNUM_GL_EXPORT TransformFeedback: public AbstractObject {
* `firstIndex + 1` etc. If any buffer is @cpp nullptr @ce, given index
* is detached. The range of indices must respect @ref maxBuffers()
* (@ref maxSeparateComponents() in OpenGL ES or if
- * @extension{ARB,transform_feedback3} (part of OpenGL 4.0) is not
+ * @gl_extension{ARB,transform_feedback3} (part of OpenGL 4.0) is not
* available). All the buffers must have allocated data store. If
- * @extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
+ * @gl_extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
* available, the transform feedback object is bound (if not already)
* and the operation then is done equivalently to
* @ref Buffer::bind(Buffer::Target, UnsignedInt, std::initializer_list).
diff --git a/src/Magnum/GL/Version.h b/src/Magnum/GL/Version.h
index 81e7c43be..e816c49d1 100644
--- a/src/Magnum/GL/Version.h
+++ b/src/Magnum/GL/Version.h
@@ -68,7 +68,7 @@ enum class Version: Int {
* OpenGL ES 2.0 or WebGL 1.0, GLSL ES 1.00.
*
* On desktop OpenGL, all related functionality is present in extension
- * @extension{ARB,ES2_compatibility} (OpenGL 4.1), so testing for this
+ * @gl_extension{ARB,ES2_compatibility} (OpenGL 4.1), so testing for this
* version using @ref Context::isVersionSupported() is equivalent to
* testing for availability of that extension.
*/
@@ -82,7 +82,7 @@ enum class Version: Int {
* OpenGL ES 3.0 or WebGL 2.0, GLSL ES 3.00.
*
* On desktop OpenGL, all related functionality is present in extension
- * @extension{ARB,ES3_compatibility} (OpenGL 4.3), so testing for this
+ * @gl_extension{ARB,ES3_compatibility} (OpenGL 4.3), so testing for this
* version using @ref Context::isVersionSupported() is equivalent to
* testing for availability of that extension.
*/
@@ -97,7 +97,7 @@ enum class Version: Int {
* OpenGL ES 3.1, GLSL ES 3.10.
*
* On desktop OpenGL, all related functionality is present in extension
- * @extension{ARB,ES3_1_compatibility} (OpenGL 4.5), so testing for this
+ * @gl_extension{ARB,ES3_1_compatibility} (OpenGL 4.5), so testing for this
* version using @ref Context::isVersionSupported() is equivalent to
* testing for availability of that extension.
*/
@@ -113,7 +113,7 @@ enum class Version: Int {
* OpenGL ES 3.2, GLSL ES 3.20.
*
* On desktop OpenGL, all related functionality is present in extension
- * @extension{ARB,ES3_2_compatibility}, so testing for this version using
+ * @gl_extension{ARB,ES3_2_compatibility}, so testing for this version using
* @ref Context::isVersionSupported() is equivalent to testing for
* availability of that extension.
*/
diff --git a/src/Magnum/Mesh.h b/src/Magnum/Mesh.h
index 350abdffb..4aeeeab81 100644
--- a/src/Magnum/Mesh.h
+++ b/src/Magnum/Mesh.h
@@ -104,40 +104,40 @@ enum class MeshPrimitive: UnsignedInt {
#if defined(MAGNUM_BUILD_DEPRECATED) && defined(MAGNUM_TARGET_GL) && !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
/**
* Lines with adjacency information.
- * @requires_gl32 Extension @extension{ARB,geometry_shader4}
+ * @requires_gl32 Extension @gl_extension{ARB,geometry_shader4}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,geometry_shader}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL.
*/
LinesAdjacency CORRADE_DEPRECATED_ENUM("use GL::MeshPrimitive::Patches instead") = UnsignedInt(GL::MeshPrimitive::LinesAdjacency),
/**
* Line strip with adjacency information.
- * @requires_gl32 Extension @extension{ARB,geometry_shader4}
+ * @requires_gl32 Extension @gl_extension{ARB,geometry_shader4}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,geometry_shader}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL.
*/
LineStripAdjacency CORRADE_DEPRECATED_ENUM("use GL::MeshPrimitive::Patches instead") = UnsignedInt(GL::MeshPrimitive::LineStripAdjacency),
/**
* Triangles with adjacency information.
- * @requires_gl32 Extension @extension{ARB,geometry_shader4}
+ * @requires_gl32 Extension @gl_extension{ARB,geometry_shader4}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,geometry_shader}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL.
*/
TrianglesAdjacency CORRADE_DEPRECATED_ENUM("use GL::MeshPrimitive::Patches instead") = UnsignedInt(GL::MeshPrimitive::TrianglesAdjacency),
/**
* Triangle strip with adjacency information.
- * @requires_gl32 Extension @extension{ARB,geometry_shader4}
+ * @requires_gl32 Extension @gl_extension{ARB,geometry_shader4}
* @requires_gles30 Not defined in OpenGL ES 2.0.
- * @requires_gles32 Extension @extension{ANDROID,extension_pack_es31a} /
- * @extension{EXT,geometry_shader}
+ * @requires_gles32 Extension @gl_extension{ANDROID,extension_pack_es31a} /
+ * @gl_extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL.
*/
TriangleStripAdjacency CORRADE_DEPRECATED_ENUM("use GL::MeshPrimitive::Patches instead") = UnsignedInt(GL::MeshPrimitive::TriangleStripAdjacency),
diff --git a/src/Magnum/Shaders/MeshVisualizer.h b/src/Magnum/Shaders/MeshVisualizer.h
index 1e38b14d9..62a603fa6 100644
--- a/src/Magnum/Shaders/MeshVisualizer.h
+++ b/src/Magnum/Shaders/MeshVisualizer.h
@@ -52,9 +52,9 @@ either using geometry shaders or with help of additional vertex information.
If you have geometry shaders available, you don't need to do anything else.
-@requires_gl32 Extension @extension{ARB,geometry_shader4} for wireframe
+@requires_gl32 Extension @gl_extension{ARB,geometry_shader4} for wireframe
rendering using geometry shaders.
-@requires_es_extension Extension @extension{EXT,geometry_shader} for
+@requires_es_extension Extension @gl_extension{EXT,geometry_shader} for
wireframe rendering using geometry shaders.
If you don't have geometry shaders, you need to set @ref Flag::NoGeometryShader
@@ -63,10 +63,10 @@ meshes (see @ref MeshTools::duplicate() for possible solution). Additionaly, if
you have OpenGL < 3.1 or OpenGL ES 2.0, you need to provide also
@ref VertexIndex attribute.
-@requires_gles30 Extension @extension{OES,standard_derivatives} for
+@requires_gles30 Extension @gl_extension{OES,standard_derivatives} for
wireframe rendering without geometry shaders.
-If using geometry shaders on OpenGL ES, @extension{NV,shader_noperspective_interpolation}
+If using geometry shaders on OpenGL ES, @gl_extension{NV,shader_noperspective_interpolation}
is optionally used for improving line appearance.
@section Shaders-MeshVisualizer-usage Example usage
diff --git a/src/Magnum/Text/DistanceFieldGlyphCache.h b/src/Magnum/Text/DistanceFieldGlyphCache.h
index 1a3842047..00dd2e99d 100644
--- a/src/Magnum/Text/DistanceFieldGlyphCache.h
+++ b/src/Magnum/Text/DistanceFieldGlyphCache.h
@@ -59,8 +59,8 @@ class MAGNUM_TEXT_EXPORT DistanceFieldGlyphCache: public GlyphCache {
*
* See @ref TextureTools::distanceField() for more information about
* the parameters. Sets internal texture format to red channel only. On
- * desktop OpenGL requires @extension{ARB,texture_rg} (also part of
- * OpenGL ES 3.0), in ES2 uses @extension{EXT,texture_rg} if
+ * desktop OpenGL requires @gl_extension{ARB,texture_rg} (also part of
+ * OpenGL ES 3.0), in ES2 uses @gl_extension{EXT,texture_rg} if
* available or @ref GL::TextureFormat::RGB as fallback.
* @todo Is Luminance format renderable anywhere? Also would it be
* possible to convert the RGB texture to Luminance after it has
diff --git a/src/Magnum/Text/GlyphCache.h b/src/Magnum/Text/GlyphCache.h
index 08ce21965..cc36eccbe 100644
--- a/src/Magnum/Text/GlyphCache.h
+++ b/src/Magnum/Text/GlyphCache.h
@@ -81,7 +81,7 @@ class MAGNUM_TEXT_EXPORT GlyphCache {
* @brief Constructor
*
* Sets internal texture format to red channel only. On desktop OpenGL
- * requires @extension{ARB,texture_rg} (also part of OpenGL ES 3.0 and
+ * requires @gl_extension{ARB,texture_rg} (also part of OpenGL ES 3.0 and
* WebGL 2), on ES2 unconditionally uses @ref GL::TextureFormat::Luminance.
* This is done for consistency with @ref GL::pixelFormat(), which
* unconditionally returns @ref GL::PixelFormat::Luminance for
diff --git a/src/Magnum/Text/Renderer.h b/src/Magnum/Text/Renderer.h
index b07d09872..4cb5f104c 100644
--- a/src/Magnum/Text/Renderer.h
+++ b/src/Magnum/Text/Renderer.h
@@ -192,9 +192,9 @@ that doesn't recreate everything on each text change:
@section Text-Renderer-required-opengl-functionality Required OpenGL functionality
-Mutable text rendering requires @extension{ARB,map_buffer_range} on desktop
-OpenGL (also part of OpenGL ES 3.0). If @extension{EXT,map_buffer_range} is not
-available in ES 2.0, at least @extension{OES,mapbuffer} must be supported for
+Mutable text rendering requires @gl_extension{ARB,map_buffer_range} on desktop
+OpenGL (also part of OpenGL ES 3.0). If @gl_extension{EXT,map_buffer_range} is not
+available in ES 2.0, at least @gl_extension{OES,mapbuffer} must be supported for
asynchronous buffer updates. There is no similar extension in WebGL, thus plain
(and slow) buffer updates are used there.
diff --git a/src/Magnum/TextureTools/DistanceField.h b/src/Magnum/TextureTools/DistanceField.h
index 983620c8d..a9adaf986 100644
--- a/src/Magnum/TextureTools/DistanceField.h
+++ b/src/Magnum/TextureTools/DistanceField.h
@@ -90,7 +90,7 @@ http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnifica
prints message to error output and does nothing. In desktop OpenGL and
OpenGL ES 3.0 it's common to render to @ref GL::TextureFormat::R8. In
OpenGL ES 2.0 you can use @ref GL::TextureFormat::Red if
- @extension{EXT,texture_rg} is available, if not, the smallest but still
+ @gl_extension{EXT,texture_rg} is available, if not, the smallest but still
inefficient supported format is in most cases @ref GL::TextureFormat::RGB,
rendering to @ref GL::TextureFormat::Luminance is not supported in most
cases.