Browse Source

Removed autolink-preventing % noise and unneeded HTML from root namespace.

pull/77/head
Vladimír Vondruš 12 years ago
parent
commit
a894904cab
  1. 38
      src/Magnum/AbstractFramebuffer.h
  2. 6
      src/Magnum/AbstractQuery.h
  3. 2
      src/Magnum/AbstractResourceLoader.h
  4. 64
      src/Magnum/AbstractShaderProgram.h
  5. 8
      src/Magnum/AbstractTexture.h
  6. 2
      src/Magnum/Array.h
  7. 12
      src/Magnum/Attribute.h
  8. 86
      src/Magnum/Buffer.h
  9. 20
      src/Magnum/BufferImage.h
  10. 18
      src/Magnum/BufferTexture.h
  11. 24
      src/Magnum/Color.h
  12. 36
      src/Magnum/ColorFormat.h
  13. 26
      src/Magnum/Context.h
  14. 20
      src/Magnum/CubeMapTexture.h
  15. 10
      src/Magnum/CubeMapTextureArray.h
  16. 4
      src/Magnum/DebugMessage.h
  17. 24
      src/Magnum/DefaultFramebuffer.h
  18. 4
      src/Magnum/DimensionTraits.h
  19. 2
      src/Magnum/Extensions.h
  20. 66
      src/Magnum/Framebuffer.h
  21. 14
      src/Magnum/Image.h
  22. 14
      src/Magnum/ImageReference.h
  23. 2
      src/Magnum/Magnum.h
  24. 36
      src/Magnum/Mesh.h
  25. 12
      src/Magnum/MeshView.h
  26. 12
      src/Magnum/MultisampleTexture.h
  27. 2
      src/Magnum/PrimitiveQuery.h
  28. 16
      src/Magnum/RectangleTexture.h
  29. 14
      src/Magnum/Renderbuffer.h
  30. 88
      src/Magnum/RenderbufferFormat.h
  31. 54
      src/Magnum/Renderer.h
  32. 8
      src/Magnum/Resource.h
  33. 10
      src/Magnum/ResourceManager.h
  34. 20
      src/Magnum/SampleQuery.h
  35. 20
      src/Magnum/Sampler.h
  36. 22
      src/Magnum/Shader.h
  37. 56
      src/Magnum/Texture.h
  38. 18
      src/Magnum/TextureArray.h
  39. 164
      src/Magnum/TextureFormat.h
  40. 4
      src/Magnum/TimeQuery.h
  41. 2
      src/Magnum/Timeline.h
  42. 4
      src/Magnum/TransformFeedback.h

38
src/Magnum/AbstractFramebuffer.h

@ -60,8 +60,8 @@ typedef Containers::EnumSet<FramebufferClear,
@brief Mask for framebuffer blitting @brief Mask for framebuffer blitting
@see @ref AbstractFramebuffer, @ref FramebufferBlitMask @see @ref AbstractFramebuffer, @ref FramebufferBlitMask
@requires_gl30 %Extension @extension{ARB,framebuffer_object} @requires_gl30 Extension @extension{ARB,framebuffer_object}
@requires_gles30 %Extension @es_extension{ANGLE,framebuffer_blit} or @requires_gles30 Extension @es_extension{ANGLE,framebuffer_blit} or
@es_extension{NV,framebuffer_blit} in OpenGL ES 2.0 @es_extension{NV,framebuffer_blit} in OpenGL ES 2.0
*/ */
enum class FramebufferBlit: GLbitfield { enum class FramebufferBlit: GLbitfield {
@ -91,19 +91,19 @@ enum class FramebufferBlit: GLbitfield {
@brief Mask for framebuffer blitting @brief Mask for framebuffer blitting
@see @ref AbstractFramebuffer::blit() @see @ref AbstractFramebuffer::blit()
@requires_gl30 %Extension @extension{ARB,framebuffer_object} @requires_gl30 Extension @extension{ARB,framebuffer_object}
@requires_gles30 %Extension @es_extension{ANGLE,framebuffer_blit} or @requires_gles30 Extension @es_extension{ANGLE,framebuffer_blit} or
@es_extension{NV,framebuffer_blit} in OpenGL ES 2.0 @es_extension{NV,framebuffer_blit} in OpenGL ES 2.0
*/ */
typedef Containers::EnumSet<FramebufferBlit, typedef Containers::EnumSet<FramebufferBlit,
GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT> FramebufferBlitMask; GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT> FramebufferBlitMask;
/** /**
@brief %Framebuffer blit filtering @brief Framebuffer blit filtering
@see @ref AbstractFramebuffer::blit() @see @ref AbstractFramebuffer::blit()
@requires_gl30 %Extension @extension{ARB,framebuffer_object} @requires_gl30 Extension @extension{ARB,framebuffer_object}
@requires_gles30 %Extension @es_extension{ANGLE,framebuffer_blit} or @requires_gles30 Extension @es_extension{ANGLE,framebuffer_blit} or
@es_extension{NV,framebuffer_blit} in OpenGL ES 2.0 @es_extension{NV,framebuffer_blit} in OpenGL ES 2.0
*/ */
enum class FramebufferBlitFilter: GLenum { enum class FramebufferBlitFilter: GLenum {
@ -115,12 +115,12 @@ enum class FramebufferBlitFilter: GLenum {
@brief Target for binding framebuffer @brief Target for binding framebuffer
@see @ref DefaultFramebuffer::bind(), @ref Framebuffer::bind() @see @ref DefaultFramebuffer::bind(), @ref Framebuffer::bind()
@requires_gl30 %Extension @extension{ARB,framebuffer_object} @requires_gl30 Extension @extension{ARB,framebuffer_object}
*/ */
enum class FramebufferTarget: GLenum { enum class FramebufferTarget: GLenum {
/** /**
* For reading only. * For reading only.
* @requires_gles30 %Extension @es_extension{APPLE,framebuffer_multisample}, * @requires_gles30 Extension @es_extension{APPLE,framebuffer_multisample},
* @es_extension{ANGLE,framebuffer_blit} or @es_extension{NV,framebuffer_blit} * @es_extension{ANGLE,framebuffer_blit} or @es_extension{NV,framebuffer_blit}
* in OpenGL ES 2.0 * in OpenGL ES 2.0
*/ */
@ -132,7 +132,7 @@ enum class FramebufferTarget: GLenum {
/** /**
* For drawing only. * For drawing only.
* @requires_gles30 %Extension @es_extension{APPLE,framebuffer_multisample}, * @requires_gles30 Extension @es_extension{APPLE,framebuffer_multisample},
* @es_extension{ANGLE,framebuffer_blit} or @es_extension{NV,framebuffer_blit} * @es_extension{ANGLE,framebuffer_blit} or @es_extension{NV,framebuffer_blit}
* in OpenGL ES 2.0 * in OpenGL ES 2.0
*/ */
@ -157,7 +157,7 @@ See @ref DefaultFramebuffer and @ref Framebuffer for more information.
The engine tracks currently bound framebuffer and current viewport to avoid The engine tracks currently bound framebuffer and current viewport to avoid
unnecessary calls to @fn_gl{BindFramebuffer} and @fn_gl{Viewport} when unnecessary calls to @fn_gl{BindFramebuffer} and @fn_gl{Viewport} when
switching framebuffers. %Framebuffer limits and implementation-defined values switching framebuffers. Framebuffer limits and implementation-defined values
(such as @ref maxViewportSize()) are cached, so repeated queries don't result (such as @ref maxViewportSize()) are cached, so repeated queries don't result
in repeated @fn_gl{Get} calls. in repeated @fn_gl{Get} calls.
@ -221,7 +221,7 @@ class MAGNUM_EXPORT AbstractFramebuffer {
* and @ref Framebuffer::mapForDraw() for specifying particular buffers * and @ref Framebuffer::mapForDraw() for specifying particular buffers
* for blitting operation. * for blitting operation.
* @see @fn_gl{BlitFramebuffer} * @see @fn_gl{BlitFramebuffer}
* @requires_gles30 %Extension @es_extension{ANGLE,framebuffer_blit} or * @requires_gles30 Extension @es_extension{ANGLE,framebuffer_blit} or
* @es_extension{NV,framebuffer_blit} in OpenGL ES 2.0 * @es_extension{NV,framebuffer_blit} in OpenGL ES 2.0
* @todo NaCl exports `BlitFramebufferEXT` (although no such extension * @todo NaCl exports `BlitFramebufferEXT` (although no such extension
* exists for ES) * exists for ES)
@ -240,7 +240,7 @@ class MAGNUM_EXPORT AbstractFramebuffer {
* pixel-by-pixel, no interpolation is needed and thus * pixel-by-pixel, no interpolation is needed and thus
* @ref FramebufferBlitFilter::Nearest filtering is used by default. * @ref FramebufferBlitFilter::Nearest filtering is used by default.
* @see @fn_gl{BlitFramebuffer} * @see @fn_gl{BlitFramebuffer}
* @requires_gles30 %Extension @es_extension{ANGLE,framebuffer_blit} or * @requires_gles30 Extension @es_extension{ANGLE,framebuffer_blit} or
* @es_extension{NV,framebuffer_blit} in OpenGL ES 2.0 * @es_extension{NV,framebuffer_blit} in OpenGL ES 2.0
*/ */
static void blit(AbstractFramebuffer& source, AbstractFramebuffer& destination, const Range2Di& rectangle, FramebufferBlitMask mask) { static void blit(AbstractFramebuffer& source, AbstractFramebuffer& destination, const Range2Di& rectangle, FramebufferBlitMask mask) {
@ -291,10 +291,10 @@ class MAGNUM_EXPORT AbstractFramebuffer {
/** /**
* @brief Read block of pixels from framebuffer to image * @brief Read block of pixels from framebuffer to image
* @param offset Offset in the framebuffer * @param offset Offset in the framebuffer
* @param size %Image size * @param size Image size
* @param image %Image where to put the data * @param image Image where to put the data
* *
* %Image parameters like format and type of pixel data are taken from * Image parameters like format and type of pixel data are taken from
* given image. * given image.
* *
* If @extension{ARB,robustness} is available, the operation is * If @extension{ARB,robustness} is available, the operation is
@ -308,9 +308,9 @@ class MAGNUM_EXPORT AbstractFramebuffer {
/** /**
* @brief Read block of pixels from framebuffer to buffer image * @brief Read block of pixels from framebuffer to buffer image
* @param offset Offset in the framebuffer * @param offset Offset in the framebuffer
* @param size %Image size * @param size Image size
* @param image %Buffer image where to put the data * @param image Buffer image where to put the data
* @param usage %Buffer usage * @param usage Buffer usage
* *
* See @ref read(const Vector2i&, const Vector2i&, Image2D&) for more * See @ref read(const Vector2i&, const Vector2i&, Image2D&) for more
* information. * information.

6
src/Magnum/AbstractQuery.h

@ -66,7 +66,7 @@ class MAGNUM_EXPORT AbstractQuery: public AbstractObject {
GLuint id() const { return _id; } GLuint id() const { return _id; }
/** /**
* @brief %Query label * @brief Query label
* *
* The result is *not* cached, repeated queries will result in repeated * The result is *not* cached, repeated queries will result in repeated
* OpenGL calls. If OpenGL 4.3 is not supported and neither * OpenGL calls. If OpenGL 4.3 is not supported and neither
@ -115,10 +115,10 @@ class MAGNUM_EXPORT AbstractQuery: public AbstractObject {
* @attention @ref Magnum::UnsignedLong "UnsignedLong" and @ref Magnum::Long "Long" * @attention @ref Magnum::UnsignedLong "UnsignedLong" and @ref Magnum::Long "Long"
* result type is not available in @ref MAGNUM_TARGET_WEBGL "WebGL". * result type is not available in @ref MAGNUM_TARGET_WEBGL "WebGL".
* @see @fn_gl{GetQueryObject} with @def_gl{QUERY_RESULT} * @see @fn_gl{GetQueryObject} with @def_gl{QUERY_RESULT}
* @requires_gl33 %Extension @extension{ARB,timer_query} for result * @requires_gl33 Extension @extension{ARB,timer_query} for result
* type @ref Magnum::UnsignedInt "UnsignedInt" and @ref Magnum::Long * type @ref Magnum::UnsignedInt "UnsignedInt" and @ref Magnum::Long
* "Long" * "Long"
* @requires_es_extension %Extension @es_extension{EXT,disjoint_timer_query} * @requires_es_extension Extension @es_extension{EXT,disjoint_timer_query}
* for result types @ref Magnum::Int "Int", @ref Magnum::UnsignedLong "UnsignedLong" * for result types @ref Magnum::Int "Int", @ref Magnum::UnsignedLong "UnsignedLong"
* @ref Magnum::Long "Long". * @ref Magnum::Long "Long".
*/ */

2
src/Magnum/AbstractResourceLoader.h

@ -132,7 +132,7 @@ template<class T> class AbstractResourceLoader {
std::size_t loadedCount() const { return _loadedCount; } std::size_t loadedCount() const { return _loadedCount; }
/** /**
* @brief %Resource name corresponding to given key * @brief Resource name corresponding to given key
* *
* If no such resource exists or the resource name is not available, * If no such resource exists or the resource name is not available,
* returns empty string. * returns empty string.

64
src/Magnum/AbstractShaderProgram.h

@ -48,7 +48,7 @@ namespace Implementation { struct ShaderProgramState; }
This class is designed to be used via subclassing. Subclasses define these This class is designed to be used via subclassing. Subclasses define these
functions and properties: functions and properties:
- <strong>%Attribute definitions</strong> with location and type for - **Attribute definitions** with location and type for
configuring meshes, for example: configuring meshes, for example:
@code @code
typedef Attribute<0, Vector3> Position; typedef Attribute<0, Vector3> Position;
@ -99,7 +99,7 @@ MyShader& setNormalMatrix(const Matrix3x3& matrix) {
return *this; return *this;
} }
@endcode @endcode
- <strong>%Texture setting functions</strong> in which you bind the textures - **Texture setting functions** in which you bind the textures
to particular texture units using @ref Texture::bind() "*Texture::bind()" to particular texture units using @ref Texture::bind() "*Texture::bind()"
and equivalents, for example: and equivalents, for example:
@code @code
@ -179,11 +179,11 @@ bindFragmentDataLocationIndexed(NormalOutput, 1, "normal");
@endcode @endcode
@see @ref Mesh::maxVertexAttributes(), @ref AbstractFramebuffer::maxDrawBuffers() @see @ref Mesh::maxVertexAttributes(), @ref AbstractFramebuffer::maxDrawBuffers()
@requires_gl30 %Extension @extension{EXT,gpu_shader4} for using @requires_gl30 Extension @extension{EXT,gpu_shader4} for using
@ref Magnum::AbstractShaderProgram::bindFragmentDataLocation() "bindFragmentDataLocation()". @ref Magnum::AbstractShaderProgram::bindFragmentDataLocation() "bindFragmentDataLocation()".
@requires_gl33 %Extension @extension{ARB,blend_func_extended} for using @requires_gl33 Extension @extension{ARB,blend_func_extended} for using
@ref Magnum::AbstractShaderProgram::bindFragmentDataLocationIndexed() "bindFragmentDataLocationIndexed()". @ref Magnum::AbstractShaderProgram::bindFragmentDataLocationIndexed() "bindFragmentDataLocationIndexed()".
@requires_gl33 %Extension @extension{ARB,explicit_attrib_location} for @requires_gl33 Extension @extension{ARB,explicit_attrib_location} for
explicit attribute location instead of using explicit attribute location instead of using
@ref Magnum::AbstractShaderProgram::bindAttributeLocation() "bindAttributeLocation()", @ref Magnum::AbstractShaderProgram::bindAttributeLocation() "bindAttributeLocation()",
@ref Magnum::AbstractShaderProgram::bindFragmentDataLocation() "bindFragmentDataLocation()" @ref Magnum::AbstractShaderProgram::bindFragmentDataLocation() "bindFragmentDataLocation()"
@ -227,7 +227,7 @@ Int normalMatrixUniform = uniformLocation("normalMatrix");
@endcode @endcode
@see @ref maxUniformLocations() @see @ref maxUniformLocations()
@requires_gl43 %Extension @extension{ARB,explicit_uniform_location} for @requires_gl43 Extension @extension{ARB,explicit_uniform_location} for
explicit uniform location instead of using explicit uniform location instead of using
@ref Magnum::AbstractShaderProgram::uniformLocation() "uniformLocation()". @ref Magnum::AbstractShaderProgram::uniformLocation() "uniformLocation()".
@requires_gles31 Explicit uniform location is not supported in OpenGL ES 3.0 @requires_gles31 Explicit uniform location is not supported in OpenGL ES 3.0
@ -260,7 +260,7 @@ setUniform(uniformLocation("specularTexture"), 1);
@endcode @endcode
@see @ref Shader::maxTextureImageUnits() @see @ref Shader::maxTextureImageUnits()
@requires_gl42 %Extension @extension{ARB,shading_language_420pack} for explicit @requires_gl42 Extension @extension{ARB,shading_language_420pack} for explicit
texture binding unit instead of using texture binding unit instead of using
@ref Magnum::AbstractShaderProgram::setUniform(Int, const T&) "setUniform(Int, Int)". @ref Magnum::AbstractShaderProgram::setUniform(Int, const T&) "setUniform(Int, Int)".
@requires_gles31 Explicit texture binding unit is not supported in OpenGL ES @requires_gles31 Explicit texture binding unit is not supported in OpenGL ES
@ -304,11 +304,11 @@ setTransformFeedbackOutputs({
@see @ref TransformFeedback::maxInterleavedComponents(), @see @ref TransformFeedback::maxInterleavedComponents(),
@ref TransformFeedback::maxSeparateAttributes(), @ref TransformFeedback::maxSeparateAttributes(),
@ref TransformFeedback::maxSeparateComponents() @ref TransformFeedback::maxSeparateComponents()
@requires_gl40 %Extension @extension{ARB,transform_feedback3} for using @requires_gl40 Extension @extension{ARB,transform_feedback3} for using
`gl_NextBuffer` or `gl_SkipComponents#` names in `gl_NextBuffer` or `gl_SkipComponents#` names in
@ref Magnum::AbstractShaderProgram::setTransformFeedbackOutputs() "setTransformFeedbackOutputs()" @ref Magnum::AbstractShaderProgram::setTransformFeedbackOutputs() "setTransformFeedbackOutputs()"
function function
@requires_gl44 %Extension @extension{ARB,enhanced_layouts} for explicit @requires_gl44 Extension @extension{ARB,enhanced_layouts} for explicit
transform feedback output specification instead of using transform feedback output specification instead of using
@ref Magnum::AbstractShaderProgram::setTransformFeedbackOutputs() "setTransformFeedbackOutputs()" @ref Magnum::AbstractShaderProgram::setTransformFeedbackOutputs() "setTransformFeedbackOutputs()"
@requires_gl Explicit transform feedback output specification is not available @requires_gl Explicit transform feedback output specification is not available
@ -317,7 +317,7 @@ setTransformFeedbackOutputs({
@anchor AbstractShaderProgram-rendering-workflow @anchor AbstractShaderProgram-rendering-workflow
## Rendering workflow ## Rendering workflow
Basic workflow with %AbstractShaderProgram subclasses is: instance shader Basic workflow with AbstractShaderProgram subclasses is: instance shader
class, configure attribute binding in meshes (see @ref Mesh-configuration "Mesh documentation" class, configure attribute binding in meshes (see @ref Mesh-configuration "Mesh documentation"
for more information) and map shader outputs to framebuffer attachments if for more information) and map shader outputs to framebuffer attachments if
needed (see @ref Framebuffer-usage "Framebuffer documentation" for more needed (see @ref Framebuffer-usage "Framebuffer documentation" for more
@ -333,13 +333,13 @@ mesh.draw(shader);
@endcode @endcode
@anchor AbstractShaderProgram-types @anchor AbstractShaderProgram-types
## Mapping between GLSL and %Magnum types ## Mapping between GLSL and Magnum types
See @ref types for more information, only types with GLSL equivalent can be used 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 (and their super- or subclasses with the same size and underlying type). See
also @ref Attribute::DataType enum for additional type options. also @ref Attribute::DataType enum for additional type options.
@requires_gl30 %Extension @extension{EXT,gpu_shader4} is required when using @requires_gl30 Extension @extension{EXT,gpu_shader4} is required when using
integer attributes (i.e. @ref Magnum::UnsignedInt "UnsignedInt", integer attributes (i.e. @ref Magnum::UnsignedInt "UnsignedInt",
@ref Magnum::Int "Int", @ref Magnum::Vector2ui "Vector2ui", @ref Magnum::Int "Int", @ref Magnum::Vector2ui "Vector2ui",
@ref Magnum::Vector2i "Vector2i", @ref Magnum::Vector3ui "Vector3ui", @ref Magnum::Vector2i "Vector2i", @ref Magnum::Vector3ui "Vector3ui",
@ -347,7 +347,7 @@ also @ref Attribute::DataType enum for additional type options.
@ref Magnum::Vector4i "Vector4i") or unsigned integer uniforms (i.e. @ref Magnum::Vector4i "Vector4i") or unsigned integer uniforms (i.e.
@ref Magnum::UnsignedInt "UnsignedInt", @ref Magnum::Vector2ui "Vector2ui", @ref Magnum::UnsignedInt "UnsignedInt", @ref Magnum::Vector2ui "Vector2ui",
@ref Magnum::Vector3ui "Vector3ui" and @ref Magnum::Vector4ui "Vector4ui"). @ref Magnum::Vector3ui "Vector3ui" and @ref Magnum::Vector4ui "Vector4ui").
@requires_gl40 %Extension @extension{ARB,gpu_shader_fp64} is required when @requires_gl40 Extension @extension{ARB,gpu_shader_fp64} is required when
using double uniforms (i.e. @ref Magnum::Double "Double", using double uniforms (i.e. @ref Magnum::Double "Double",
@ref Magnum::Vector2d "Vector2d", @ref Magnum::Vector3d "Vector3d", @ref Magnum::Vector2d "Vector2d", @ref Magnum::Vector3d "Vector3d",
@ref Magnum::Vector4d "Vector4d", @ref Magnum::Matrix2x2d "Matrix2x2d", @ref Magnum::Vector4d "Vector4d", @ref Magnum::Matrix2x2d "Matrix2x2d",
@ -355,7 +355,7 @@ also @ref Attribute::DataType enum for additional type options.
@ref Magnum::Matrix2x3d "Matrix2x3d", @ref Magnum::Matrix3x2d "Matrix3x2d", @ref Magnum::Matrix2x3d "Matrix2x3d", @ref Magnum::Matrix3x2d "Matrix3x2d",
@ref Magnum::Matrix2x4d "Matrix2x4d", @ref Magnum::Matrix4x2d "Matrix4x2d", @ref Magnum::Matrix2x4d "Matrix2x4d", @ref Magnum::Matrix4x2d "Matrix4x2d",
@ref Magnum::Matrix3x4d "Matrix3x4d" and @ref Magnum::Matrix4x3d "Matrix4x3d"). @ref Magnum::Matrix3x4d "Matrix3x4d" and @ref Magnum::Matrix4x3d "Matrix4x3d").
@requires_gl41 %Extension @extension{ARB,vertex_attrib_64bit} is required when @requires_gl41 Extension @extension{ARB,vertex_attrib_64bit} is required when
using double attributes (i.e. @ref Magnum::Double "Double", using double attributes (i.e. @ref Magnum::Double "Double",
@ref Magnum::Vector2d "Vector2d", @ref Magnum::Vector3d "Vector3d", @ref Magnum::Vector2d "Vector2d", @ref Magnum::Vector3d "Vector3d",
@ref Magnum::Vector4d "Vector4d", @ref Magnum::Matrix2x2d "Matrix2x2d", @ref Magnum::Vector4d "Vector4d", @ref Magnum::Matrix2x2d "Matrix2x2d",
@ -374,7 +374,7 @@ also @ref Attribute::DataType enum for additional type options.
@anchor AbstractShaderProgram-performance-optimization @anchor AbstractShaderProgram-performance-optimization
## Performance optimizations ## Performance optimizations
%Shader limits (such as @ref maxVertexAttributes()) are cached, so repeated Shader limits (such as @ref maxVertexAttributes()) are cached, so repeated
queries don't result in repeated @fn_gl{Get} calls. queries don't result in repeated @fn_gl{Get} calls.
If extension @extension{ARB,separate_shader_objects} (part of OpenGL 4.1), If extension @extension{ARB,separate_shader_objects} (part of OpenGL 4.1),
@ -400,10 +400,10 @@ class MAGNUM_EXPORT AbstractShaderProgram: public AbstractObject {
public: public:
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* @brief %Buffer mode for transform feedback * @brief Buffer mode for transform feedback
* *
* @see @ref setTransformFeedbackOutputs() * @see @ref setTransformFeedbackOutputs()
* @requires_gl30 %Extension @extension{EXT,transform_feedback} * @requires_gl30 Extension @extension{EXT,transform_feedback}
* @requires_gles30 Transform feedback is not available in OpenGL ES * @requires_gles30 Transform feedback is not available in OpenGL ES
* 2.0 * 2.0
*/ */
@ -541,7 +541,7 @@ class MAGNUM_EXPORT AbstractShaderProgram: public AbstractObject {
* OpenGL calls. If extension @extension{EXT,gpu_shader4} (part of * OpenGL calls. If extension @extension{EXT,gpu_shader4} (part of
* OpenGL 3.0) is not available, returns `0`. * OpenGL 3.0) is not available, returns `0`.
* @see @fn_gl{Get} with @def_gl{MIN_PROGRAM_TEXEL_OFFSET} * @see @fn_gl{Get} with @def_gl{MIN_PROGRAM_TEXEL_OFFSET}
* @requires_gles30 %Texture lookup with offset is not available in * @requires_gles30 Texture lookup with offset is not available in
* OpenGL ES 2.0 * OpenGL ES 2.0
*/ */
static Int minTexelOffset(); static Int minTexelOffset();
@ -553,7 +553,7 @@ class MAGNUM_EXPORT AbstractShaderProgram: public AbstractObject {
* OpenGL calls. If extension @extension{EXT,gpu_shader4} (part of * OpenGL calls. If extension @extension{EXT,gpu_shader4} (part of
* OpenGL 3.0) is not available, returns `0`. * OpenGL 3.0) is not available, returns `0`.
* @see @fn_gl{Get} with @def_gl{MAX_PROGRAM_TEXEL_OFFSET} * @see @fn_gl{Get} with @def_gl{MAX_PROGRAM_TEXEL_OFFSET}
* @requires_gles30 %Texture lookup with offset is not available in * @requires_gles30 Texture lookup with offset is not available in
* OpenGL ES 2.0 * OpenGL ES 2.0
*/ */
static Int maxTexelOffset(); static Int maxTexelOffset();
@ -591,7 +591,7 @@ class MAGNUM_EXPORT AbstractShaderProgram: public AbstractObject {
GLuint id() const { return _id; } GLuint id() const { return _id; }
/** /**
* @brief %Shader program label * @brief Shader program label
* *
* The result is *not* cached, repeated queries will result in repeated * The result is *not* cached, repeated queries will result in repeated
* OpenGL calls. If OpenGL 4.3 is not supported and neither * OpenGL calls. If OpenGL 4.3 is not supported and neither
@ -663,7 +663,7 @@ class MAGNUM_EXPORT AbstractShaderProgram: public AbstractObject {
* *
* Initially disabled. * Initially disabled.
* @see @fn_gl{ProgramParameter} with @def_gl{PROGRAM_BINARY_RETRIEVABLE_HINT} * @see @fn_gl{ProgramParameter} with @def_gl{PROGRAM_BINARY_RETRIEVABLE_HINT}
* @requires_gl41 %Extension @extension{ARB,get_program_binary} * @requires_gl41 Extension @extension{ARB,get_program_binary}
* @requires_gles30 Always allowed in OpenGL ES 2.0. * @requires_gles30 Always allowed in OpenGL ES 2.0.
*/ */
void setRetrievableBinary(bool enabled) { void setRetrievableBinary(bool enabled) {
@ -676,8 +676,8 @@ class MAGNUM_EXPORT AbstractShaderProgram: public AbstractObject {
* *
* Initially disabled. * Initially disabled.
* @see @fn_gl{ProgramParameter} with @def_gl{PROGRAM_SEPARABLE} * @see @fn_gl{ProgramParameter} with @def_gl{PROGRAM_SEPARABLE}
* @requires_gl41 %Extension @extension{ARB,separate_shader_objects} * @requires_gl41 Extension @extension{ARB,separate_shader_objects}
* @requires_es_extension %Extension @es_extension{EXT,separate_shader_objects} * @requires_es_extension Extension @es_extension{EXT,separate_shader_objects}
*/ */
void setSeparable(bool enabled) { void setSeparable(bool enabled) {
/** @todo Remove when extension wrangler is available for ES */ /** @todo Remove when extension wrangler is available for ES */
@ -707,7 +707,7 @@ class MAGNUM_EXPORT AbstractShaderProgram: public AbstractObject {
/** /**
* @brief Bind attribute to given location * @brief Bind attribute to given location
* @param location Location * @param location Location
* @param name %Attribute name * @param name Attribute name
* *
* Binds attribute to location which is used later for binding vertex * Binds attribute to location which is used later for binding vertex
* buffers. * buffers.
@ -741,7 +741,7 @@ class MAGNUM_EXPORT AbstractShaderProgram: public AbstractObject {
* explicitly in the shader instead of using this function. See * explicitly in the shader instead of using this function. See
* @ref AbstractShaderProgram-attribute-location "class documentation" * @ref AbstractShaderProgram-attribute-location "class documentation"
* for more information. * for more information.
* @requires_gl33 %Extension @extension{ARB,blend_func_extended} * @requires_gl33 Extension @extension{ARB,blend_func_extended}
* @requires_gl Multiple blend function inputs are not available in * @requires_gl Multiple blend function inputs are not available in
* OpenGL ES. * OpenGL ES.
*/ */
@ -766,7 +766,7 @@ class MAGNUM_EXPORT AbstractShaderProgram: public AbstractObject {
* explicitly in the shader instead of using this function. See * explicitly in the shader instead of using this function. See
* @ref AbstractShaderProgram-attribute-location "class documentation" * @ref AbstractShaderProgram-attribute-location "class documentation"
* for more information. * for more information.
* @requires_gl30 %Extension @extension{EXT,gpu_shader4} * @requires_gl30 Extension @extension{EXT,gpu_shader4}
* @requires_gl Use explicit location specification in OpenGL ES 3.0 * @requires_gl Use explicit location specification in OpenGL ES 3.0
* and `gl_FragData[n]` provided by @es_extension2{NV,draw_buffers,GL_NV_draw_buffers} * and `gl_FragData[n]` provided by @es_extension2{NV,draw_buffers,GL_NV_draw_buffers}
* in OpenGL ES 2.0. * in OpenGL ES 2.0.
@ -786,7 +786,7 @@ class MAGNUM_EXPORT AbstractShaderProgram: public AbstractObject {
/** /**
* @brief Specify shader outputs to be recorded in transform feedback * @brief Specify shader outputs to be recorded in transform feedback
* @param outputs Names of output variables * @param outputs Names of output variables
* @param bufferMode %Buffer mode * @param bufferMode Buffer mode
* *
* Binds given output variables from vertex, geometry or tessellation * Binds given output variables from vertex, geometry or tessellation
* shader to transform feedback buffer binding points. If * shader to transform feedback buffer binding points. If
@ -803,8 +803,8 @@ class MAGNUM_EXPORT AbstractShaderProgram: public AbstractObject {
* outputs explicitly in the shader instead of using this * outputs explicitly in the shader instead of using this
* function. See @ref AbstractShaderProgram-transform-feedback "class documentation" * function. See @ref AbstractShaderProgram-transform-feedback "class documentation"
* for more information. * for more information.
* @requires_gl30 %Extension @extension{EXT,transform_feedback} * @requires_gl30 Extension @extension{EXT,transform_feedback}
* @requires_gl40 %Extension @extension{ARB,transform_feedback3} for * @requires_gl40 Extension @extension{ARB,transform_feedback3} for
* using `gl_NextBuffer` or `gl_SkipComponents#` names in * using `gl_NextBuffer` or `gl_SkipComponents#` names in
* @p outputs array * @p outputs array
* @requires_gles30 Transform feedback is not available in OpenGL ES * @requires_gles30 Transform feedback is not available in OpenGL ES
@ -908,7 +908,7 @@ class MAGNUM_EXPORT AbstractShaderProgram: public AbstractObject {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* @copydoc setUniform(Int, UnsignedInt, const Float*) * @copydoc setUniform(Int, UnsignedInt, const Float*)
* @requires_gl30 %Extension @extension{EXT,gpu_shader4} * @requires_gl30 Extension @extension{EXT,gpu_shader4}
* @requires_gles30 Only signed integers are available in OpenGL ES 2.0. * @requires_gles30 Only signed integers are available in OpenGL ES 2.0.
*/ */
void setUniform(Int location, UnsignedInt count, const UnsignedInt* values); void setUniform(Int location, UnsignedInt count, const UnsignedInt* values);
@ -920,7 +920,7 @@ class MAGNUM_EXPORT AbstractShaderProgram: public AbstractObject {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* @copydoc setUniform(Int, UnsignedInt, const Float*) * @copydoc setUniform(Int, UnsignedInt, const Float*)
* @requires_gl40 %Extension @extension{ARB,gpu_shader_fp64} * @requires_gl40 Extension @extension{ARB,gpu_shader_fp64}
* @requires_gl Only floats are available in OpenGL ES. * @requires_gl Only floats are available in OpenGL ES.
*/ */
void setUniform(Int location, UnsignedInt count, const Double* values); void setUniform(Int location, UnsignedInt count, const Double* values);
@ -950,7 +950,7 @@ class MAGNUM_EXPORT AbstractShaderProgram: public AbstractObject {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* @copydoc setUniform(Int, UnsignedInt, const Float*) * @copydoc setUniform(Int, UnsignedInt, const Float*)
* @requires_gl40 %Extension @extension{ARB,gpu_shader_fp64} * @requires_gl40 Extension @extension{ARB,gpu_shader_fp64}
* @requires_gl Only floats are available in OpenGL ES. * @requires_gl Only floats are available in OpenGL ES.
*/ */
void setUniform(Int location, UnsignedInt count, const Math::RectangularMatrix<2, 2, Double>* values); void setUniform(Int location, UnsignedInt count, const Math::RectangularMatrix<2, 2, Double>* values);

8
src/Magnum/AbstractTexture.h

@ -69,8 +69,8 @@ documentation for details.
The engine tracks currently bound textures in all available texture units to The engine tracks currently bound textures in all available texture units to
avoid unnecessary calls to @fn_gl{ActiveTexture} and @fn_gl{BindTexture}. avoid unnecessary calls to @fn_gl{ActiveTexture} and @fn_gl{BindTexture}.
%Texture configuration functions use dedicated highest available texture unit Texture configuration functions use dedicated highest available texture unit
to not affect active bindings in user units. %Texture limits and to not affect active bindings in user units. Texture limits and
implementation-defined values (such as @ref maxColorSamples()) are cached, so implementation-defined values (such as @ref maxColorSamples()) are cached, so
repeated queries don't result in repeated @fn_gl{Get} calls. repeated queries don't result in repeated @fn_gl{Get} calls.
@ -147,7 +147,7 @@ class MAGNUM_EXPORT AbstractTexture: public AbstractObject {
* The result is cached, repeated queries don't result in repeated * The result is cached, repeated queries don't result in repeated
* OpenGL calls. * OpenGL calls.
* @see @fn_gl{Get} with @def_gl{MAX_TEXTURE_LOD_BIAS} * @see @fn_gl{Get} with @def_gl{MAX_TEXTURE_LOD_BIAS}
* @requires_gles30 %Texture LOD bias doesn't have * @requires_gles30 Texture LOD bias doesn't have
* implementation-defined range in OpenGL ES 2.0. * implementation-defined range in OpenGL ES 2.0.
*/ */
static Float maxLodBias(); static Float maxLodBias();
@ -256,7 +256,7 @@ class MAGNUM_EXPORT AbstractTexture: public AbstractObject {
AbstractTexture& operator=(AbstractTexture&& other) noexcept; AbstractTexture& operator=(AbstractTexture&& other) noexcept;
/** /**
* @brief %Texture label * @brief Texture label
* *
* The result is *not* cached, repeated queries will result in repeated * The result is *not* cached, repeated queries will result in repeated
* OpenGL calls. If OpenGL 4.3 is not supported and neither * OpenGL calls. If OpenGL 4.3 is not supported and neither

2
src/Magnum/Array.h

@ -37,7 +37,7 @@
namespace Magnum { namespace Magnum {
/** /**
@brief %Array @brief Array
@tparam dimensions Dimension count @tparam dimensions Dimension count
@tparam T Data type @tparam T Data type

12
src/Magnum/Attribute.h

@ -131,7 +131,7 @@ template<UnsignedInt location, class T> class Attribute {
* Four components with BGRA ordering. Only for four-component * Four components with BGRA ordering. Only for four-component
* float vector type. Must be used along with @ref DataType::UnsignedByte * float vector type. Must be used along with @ref DataType::UnsignedByte
* and @ref DataOption::Normalized. * and @ref DataOption::Normalized.
* @requires_gl32 %Extension @extension{ARB,vertex_array_bgra} * @requires_gl32 Extension @extension{ARB,vertex_array_bgra}
* @requires_gl Only RGBA component ordering is supported in OpenGL * @requires_gl Only RGBA component ordering is supported in OpenGL
* ES. * ES.
*/ */
@ -159,8 +159,8 @@ template<UnsignedInt location, class T> class Attribute {
/** /**
* Half float. Only for float attribute types. * Half float. Only for float attribute types.
* @requires_gl30 %Extension @extension{ARB,half_float_vertex} * @requires_gl30 Extension @extension{ARB,half_float_vertex}
* @requires_gles30 %Extension @es_extension{OES,vertex_half_float} * @requires_gles30 Extension @es_extension{OES,vertex_half_float}
* in OpenGL ES 2.0 * in OpenGL ES 2.0
*/ */
HalfFloat = GL_HALF_FLOAT, HalfFloat = GL_HALF_FLOAT,
@ -178,7 +178,7 @@ template<UnsignedInt location, class T> class Attribute {
/** /**
* Unsigned 10.11.11 packed float. Only for three-component float * Unsigned 10.11.11 packed float. Only for three-component float
* vector attribute type. * vector attribute type.
* @requires_gl44 %Extension @extension{ARB,vertex_type_10f_11f_11f_rev} * @requires_gl44 Extension @extension{ARB,vertex_type_10f_11f_11f_rev}
* @requires_gl Packed float attributes are not available in OpenGL * @requires_gl Packed float attributes are not available in OpenGL
* ES. * ES.
*/ */
@ -192,7 +192,7 @@ template<UnsignedInt location, class T> class Attribute {
* Unsigned 2.10.10.10 packed integer. Only for four-component * Unsigned 2.10.10.10 packed integer. Only for four-component
* float vector attribute type. * float vector attribute type.
* @todo How about (incompatible) @es_extension{OES,vertex_type_10_10_10_2}? * @todo How about (incompatible) @es_extension{OES,vertex_type_10_10_10_2}?
* @requires_gl33 %Extension @extension{ARB,vertex_type_2_10_10_10_rev} * @requires_gl33 Extension @extension{ARB,vertex_type_2_10_10_10_rev}
* @requires_gles30 Packed attributes are not available in OpenGL * @requires_gles30 Packed attributes are not available in OpenGL
* ES 2.0 * ES 2.0
*/ */
@ -201,7 +201,7 @@ template<UnsignedInt location, class T> class Attribute {
/** /**
* Signed 2.10.10.10 packed integer. Only for four-component float * Signed 2.10.10.10 packed integer. Only for four-component float
* vector attribute type. * vector attribute type.
* @requires_gl33 %Extension @extension{ARB,vertex_type_2_10_10_10_rev} * @requires_gl33 Extension @extension{ARB,vertex_type_2_10_10_10_rev}
* @requires_gles30 Packed attributes are not available in OpenGL * @requires_gles30 Packed attributes are not available in OpenGL
* ES 2.0 * ES 2.0
*/ */

86
src/Magnum/Buffer.h

@ -42,7 +42,7 @@
namespace Magnum { namespace Magnum {
/** /**
@brief %Buffer usage @brief Buffer usage
@see @ref Buffer, @ref Buffer::setData(Containers::ArrayReference<const void>, BufferUsage) @see @ref Buffer, @ref Buffer::setData(Containers::ArrayReference<const void>, BufferUsage)
*/ */
@ -117,7 +117,7 @@ enum class BufferUsage: GLenum {
namespace Implementation { struct BufferState; } namespace Implementation { struct BufferState; }
/** /**
@brief %Buffer @brief Buffer
Encapsulates one OpenGL buffer object and provides functions for convenient Encapsulates one OpenGL buffer object and provides functions for convenient
data updates. data updates.
@ -141,7 +141,7 @@ buffer.setData(data, BufferUsage::StaticDraw);
@anchor Buffer-data-mapping @anchor Buffer-data-mapping
## Memory mapping ## Memory mapping
%Buffer data can be also updated asynchronously. First you need to allocate Buffer data can be also updated asynchronously. First you need to allocate
the buffer to desired size by passing `nullptr` to @ref setData(), e.g.: the buffer to desired size by passing `nullptr` to @ref setData(), e.g.:
@code @code
buffer.setData({nullptr, 200*sizeof(Vector3)}, BufferUsage::StaticDraw); buffer.setData({nullptr, 200*sizeof(Vector3)}, BufferUsage::StaticDraw);
@ -172,7 +172,7 @@ CORRADE_INTERNAL_ASSERT_OUTPUT(buffer.unmap());
Buffers in @ref MAGNUM_TARGET_WEBGL "WebGL" and @ref CORRADE_TARGET_NACL "NaCl" Buffers in @ref MAGNUM_TARGET_WEBGL "WebGL" and @ref CORRADE_TARGET_NACL "NaCl"
need to be bound only to one unique target, i.e., @ref Buffer bound to need to be bound only to one unique target, i.e., @ref Buffer bound to
@ref Buffer::Target::Array cannot be later rebound to @ref Buffer::Target::Array cannot be later rebound to
@ref Buffer::Target::ElementArray. However, %Magnum by default uses any @ref Buffer::Target::ElementArray. However, Magnum by default uses any
sufficient target when binding the buffer internally (e.g. for setting data). sufficient target when binding the buffer internally (e.g. for setting data).
To avoid GL errors, set target hint to desired target, either in constructor or To avoid GL errors, set target hint to desired target, either in constructor or
using @ref Buffer::setTargetHint(): using @ref Buffer::setTargetHint():
@ -191,7 +191,7 @@ The engine tracks currently bound buffers to avoid unnecessary calls to
@ref copy(), @ref setData(), @ref setSubData(), @ref map(), @ref flushMappedRange() @ref copy(), @ref setData(), @ref setSubData(), @ref map(), @ref flushMappedRange()
and @ref unmap() use that target instead of binding the buffer to some specific and @ref unmap() use that target instead of binding the buffer to some specific
target. You can also use @ref setTargetHint() to possibly reduce unnecessary target. You can also use @ref setTargetHint() to possibly reduce unnecessary
rebinding. %Buffer limits and implementation-defined values (such as rebinding. Buffer limits and implementation-defined values (such as
@ref maxUniformBindings()) are cached, so repeated queries don't result in @ref maxUniformBindings()) are cached, so repeated queries don't result in
repeated @fn_gl{Get} calls. repeated @fn_gl{Get} calls.
@ -211,7 +211,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
public: public:
/** /**
* @brief %Buffer target * @brief Buffer target
* *
* @see @ref Buffer(), @ref setTargetHint() * @see @ref Buffer(), @ref setTargetHint()
*/ */
@ -222,7 +222,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* Used for storing atomic counters. * Used for storing atomic counters.
* @requires_gl42 %Extension @extension{ARB,shader_atomic_counters} * @requires_gl42 Extension @extension{ARB,shader_atomic_counters}
* @requires_gles31 Atomic counters are not available in OpenGL ES * @requires_gles31 Atomic counters are not available in OpenGL ES
* 3.0 and older. * 3.0 and older.
*/ */
@ -230,7 +230,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
/** /**
* Source for copies. See @ref copy(). * Source for copies. See @ref copy().
* @requires_gl31 %Extension @extension{ARB,copy_buffer} * @requires_gl31 Extension @extension{ARB,copy_buffer}
* @requires_gles30 Buffer copying is not available in OpenGL ES * @requires_gles30 Buffer copying is not available in OpenGL ES
* 2.0. * 2.0.
*/ */
@ -238,7 +238,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
/** /**
* Target for copies. See @ref copy(). * Target for copies. See @ref copy().
* @requires_gl31 %Extension @extension{ARB,copy_buffer} * @requires_gl31 Extension @extension{ARB,copy_buffer}
* @requires_gles30 Buffer copying is not available in OpenGL ES * @requires_gles30 Buffer copying is not available in OpenGL ES
* 2.0. * 2.0.
*/ */
@ -246,7 +246,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
/** /**
* Indirect compute dispatch commands. * Indirect compute dispatch commands.
* @requires_gl43 %Extension @extension{ARB,compute_shader} * @requires_gl43 Extension @extension{ARB,compute_shader}
* @requires_gles31 Compute shaders are not available in OpenGL ES * @requires_gles31 Compute shaders are not available in OpenGL ES
* 3.0 and older. * 3.0 and older.
*/ */
@ -254,7 +254,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
/** /**
* Used for supplying arguments for indirect drawing. * Used for supplying arguments for indirect drawing.
* @requires_gl40 %Extension @extension{ARB,draw_indirect} * @requires_gl40 Extension @extension{ARB,draw_indirect}
* @requires_gles31 Indirect drawing not available in OpenGL ES 3.0 * @requires_gles31 Indirect drawing not available in OpenGL ES 3.0
* and older. * and older.
*/ */
@ -281,7 +281,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
/** /**
* Used for shader storage. * Used for shader storage.
* @requires_gl43 %Extension @extension{ARB,shader_storage_buffer_object} * @requires_gl43 Extension @extension{ARB,shader_storage_buffer_object}
* @requires_gles31 Shader storage is not available in OpenGL ES * @requires_gles31 Shader storage is not available in OpenGL ES
* 3.0 and older. * 3.0 and older.
*/ */
@ -291,7 +291,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* Source for texel fetches. See @ref BufferTexture. * Source for texel fetches. See @ref BufferTexture.
* @requires_gl31 %Extension @extension{ARB,texture_buffer_object} * @requires_gl31 Extension @extension{ARB,texture_buffer_object}
* @requires_gl Texture buffers are not available in OpenGL ES. * @requires_gl Texture buffers are not available in OpenGL ES.
*/ */
Texture = GL_TEXTURE_BUFFER, Texture = GL_TEXTURE_BUFFER,
@ -300,7 +300,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* Target for transform feedback. * Target for transform feedback.
* @requires_gl30 %Extension @extension{EXT,transform_feedback} * @requires_gl30 Extension @extension{EXT,transform_feedback}
* @requires_gles30 Transform feedback is not available in OpenGL * @requires_gles30 Transform feedback is not available in OpenGL
* ES 2.0. * ES 2.0.
*/ */
@ -308,7 +308,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
/** /**
* Used for storing uniforms. * Used for storing uniforms.
* @requires_gl31 %Extension @extension{ARB,uniform_buffer_object} * @requires_gl31 Extension @extension{ARB,uniform_buffer_object}
* @requires_gles30 Uniform buffers are not available in OpenGL ES * @requires_gles30 Uniform buffers are not available in OpenGL ES
* 2.0. * 2.0.
*/ */
@ -318,7 +318,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
#if !defined(MAGNUM_TARGET_GLES2) || defined(MAGNUM_BUILD_DEPRECATED) #if !defined(MAGNUM_TARGET_GLES2) || defined(MAGNUM_BUILD_DEPRECATED)
/** /**
* @brief %Buffer binding target * @brief Buffer binding target
* *
* @see @ref bind(), @ref unbind() * @see @ref bind(), @ref unbind()
*/ */
@ -336,7 +336,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* Atomic counter binding * Atomic counter binding
* @requires_gl42 %Extension @extension{ARB,shader_atomic_counters} * @requires_gl42 Extension @extension{ARB,shader_atomic_counters}
* @requires_gles31 Atomic counters are not available in OpenGL ES * @requires_gles31 Atomic counters are not available in OpenGL ES
* 3.0 and older * 3.0 and older
*/ */
@ -410,7 +410,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* Shader storage binding * Shader storage binding
* @requires_gl43 %Extension @extension{ARB,shader_storage_buffer_object} * @requires_gl43 Extension @extension{ARB,shader_storage_buffer_object}
* @requires_gles31 Shader storage is not available in OpenGL ES * @requires_gles31 Shader storage is not available in OpenGL ES
* 3.0 and older * 3.0 and older
*/ */
@ -440,7 +440,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* Uniform binding * Uniform binding
* @requires_gl31 %Extension @extension{ARB,uniform_buffer_object} * @requires_gl31 Extension @extension{ARB,uniform_buffer_object}
* @requires_gles30 Uniform buffers are not available in OpenGL ES * @requires_gles30 Uniform buffers are not available in OpenGL ES
* 2.0 * 2.0
*/ */
@ -461,7 +461,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* @brief Memory mapping access * @brief Memory mapping access
* *
* @see @ref map(MapAccess), @ref mapSub() * @see @ref map(MapAccess), @ref mapSub()
* @requires_es_extension %Extension @es_extension{OES,mapbuffer} or * @requires_es_extension Extension @es_extension{OES,mapbuffer} or
* @es_extension{CHROMIUM,map_sub} * @es_extension{CHROMIUM,map_sub}
* @deprecated_gl Prefer to use @ref Magnum::Buffer::map(GLintptr, GLsizeiptr, MapFlags) "map(GLintptr, GLsizeiptr, MapFlags)" * @deprecated_gl Prefer to use @ref Magnum::Buffer::map(GLintptr, GLsizeiptr, MapFlags) "map(GLintptr, GLsizeiptr, MapFlags)"
* instead, as it has more complete set of features. * instead, as it has more complete set of features.
@ -495,8 +495,8 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* @brief Memory mapping flag * @brief Memory mapping flag
* *
* @see @ref MapFlags, @ref map(GLintptr, GLsizeiptr, MapFlags) * @see @ref MapFlags, @ref map(GLintptr, GLsizeiptr, MapFlags)
* @requires_gl30 %Extension @extension{ARB,map_buffer_range} * @requires_gl30 Extension @extension{ARB,map_buffer_range}
* @requires_gles30 %Extension @es_extension{EXT,map_buffer_range} in * @requires_gles30 Extension @es_extension{EXT,map_buffer_range} in
* OpenGL ES 2.0 * OpenGL ES 2.0
*/ */
enum class MapFlag: GLbitfield { enum class MapFlag: GLbitfield {
@ -562,8 +562,8 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* @brief Memory mapping flags * @brief Memory mapping flags
* *
* @see @ref map(GLintptr, GLsizeiptr, MapFlags) * @see @ref map(GLintptr, GLsizeiptr, MapFlags)
* @requires_gl30 %Extension @extension{ARB,map_buffer_range} * @requires_gl30 Extension @extension{ARB,map_buffer_range}
* @requires_gles30 %Extension @es_extension{EXT,map_buffer_range} in * @requires_gles30 Extension @es_extension{EXT,map_buffer_range} in
* OpenGL ES 2.0 * OpenGL ES 2.0
*/ */
typedef Containers::EnumSet<MapFlag> MapFlags; typedef Containers::EnumSet<MapFlag> MapFlags;
@ -740,8 +740,8 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
/** /**
* @brief Copy one buffer to another * @brief Copy one buffer to another
* @param read %Buffer from which to read * @param read Buffer from which to read
* @param write %Buffer to which to copy * @param write Buffer to which to copy
* @param readOffset Offset in the read buffer * @param readOffset Offset in the read buffer
* @param writeOffset Offset in the write buffer * @param writeOffset Offset in the write buffer
* @param size Data size * @param size Data size
@ -752,8 +752,8 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* performed. * performed.
* @see @fn_gl{BindBuffer} and @fn_gl{CopyBufferSubData} or * @see @fn_gl{BindBuffer} and @fn_gl{CopyBufferSubData} or
* @fn_gl_extension{NamedCopyBufferSubData,EXT,direct_state_access} * @fn_gl_extension{NamedCopyBufferSubData,EXT,direct_state_access}
* @requires_gl31 %Extension @extension{ARB,copy_buffer} * @requires_gl31 Extension @extension{ARB,copy_buffer}
* @requires_gles30 %Buffer copying is not available in OpenGL ES 2.0. * @requires_gles30 Buffer copying is not available in OpenGL ES 2.0.
*/ */
static void copy(Buffer& read, Buffer& write, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); static void copy(Buffer& read, Buffer& write, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
#endif #endif
@ -803,7 +803,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
GLuint id() const { return _id; } GLuint id() const { return _id; }
/** /**
* @brief %Buffer label * @brief Buffer label
* *
* The result is *not* cached, repeated queries will result in repeated * The result is *not* cached, repeated queries will result in repeated
* OpenGL calls. If OpenGL 4.3 is not supported and neither * OpenGL calls. If OpenGL 4.3 is not supported and neither
@ -918,7 +918,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
#endif #endif
/** /**
* @brief %Buffer size * @brief Buffer size
* *
* If @extension{EXT,direct_state_access} is not available and the * If @extension{EXT,direct_state_access} is not available and the
* buffer is not already bound somewhere, it is bound to hinted target * buffer is not already bound somewhere, it is bound to hinted target
@ -931,7 +931,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* @brief %Buffer data * @brief Buffer data
* *
* Returns data of whole buffer. If @extension{EXT,direct_state_access} * Returns data of whole buffer. If @extension{EXT,direct_state_access}
* is not available and the buffer is not already bound somewhere, it * is not available and the buffer is not already bound somewhere, it
@ -941,13 +941,13 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* @fn_gl_extension{GetNamedBufferParameter,EXT,direct_state_access} * @fn_gl_extension{GetNamedBufferParameter,EXT,direct_state_access}
* with @def_gl{BUFFER_SIZE}, @fn_gl{GetBufferSubData} or * with @def_gl{BUFFER_SIZE}, @fn_gl{GetBufferSubData} or
* @fn_gl_extension{GetNamedBufferSubData,EXT,direct_state_access} * @fn_gl_extension{GetNamedBufferSubData,EXT,direct_state_access}
* @requires_gl %Buffer data queries are not available in OpenGL ES. * @requires_gl Buffer data queries are not available in OpenGL ES.
* Use @ref Magnum::Buffer::map() "map()" instead. * Use @ref Magnum::Buffer::map() "map()" instead.
*/ */
template<class T = unsigned char> Containers::Array<T> data(); template<class T = unsigned char> Containers::Array<T> data();
/** /**
* @brief %Buffer subdata * @brief Buffer subdata
* @param offset Byte offset in the buffer * @param offset Byte offset in the buffer
* @param size Data size (count of @p T values) * @param size Data size (count of @p T values)
* *
@ -957,7 +957,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* @see @ref size(), @ref data(), @ref setSubData(), @fn_gl{BindBuffer} * @see @ref size(), @ref data(), @ref setSubData(), @fn_gl{BindBuffer}
* and @fn_gl{GetBufferSubData} or * and @fn_gl{GetBufferSubData} or
* @fn_gl_extension{GetNamedBufferSubData,EXT,direct_state_access} * @fn_gl_extension{GetNamedBufferSubData,EXT,direct_state_access}
* @requires_gl %Buffer data queries are not available in OpenGL ES. * @requires_gl Buffer data queries are not available in OpenGL ES.
* Use @ref Magnum::Buffer::map() "map()" instead. * Use @ref Magnum::Buffer::map() "map()" instead.
*/ */
template<class T = unsigned char> Containers::Array<T> subData(GLintptr offset, GLsizeiptr size); template<class T = unsigned char> Containers::Array<T> subData(GLintptr offset, GLsizeiptr size);
@ -966,7 +966,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
/** /**
* @brief Set buffer data * @brief Set buffer data
* @param data Data * @param data Data
* @param usage %Buffer usage * @param usage Buffer usage
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* If @extension{EXT,direct_state_access} is not available and the * If @extension{EXT,direct_state_access} is not available and the
@ -1048,7 +1048,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* @see @ref minMapAlignment(), @ref unmap(), @ref setTargetHint(), * @see @ref minMapAlignment(), @ref unmap(), @ref setTargetHint(),
* @fn_gl{BindBuffer} and @fn_gl{MapBuffer} or * @fn_gl{BindBuffer} and @fn_gl{MapBuffer} or
* @fn_gl_extension{MapNamedBuffer,EXT,direct_state_access} * @fn_gl_extension{MapNamedBuffer,EXT,direct_state_access}
* @requires_es_extension %Extension @es_extension{OES,mapbuffer} in * @requires_es_extension Extension @es_extension{OES,mapbuffer} in
* OpenGL ES 2.0, use @ref Magnum::Buffer::map(GLintptr, GLsizeiptr, MapFlags) "map(GLintptr, GLsizeiptr, MapFlags)" * OpenGL ES 2.0, use @ref Magnum::Buffer::map(GLintptr, GLsizeiptr, MapFlags) "map(GLintptr, GLsizeiptr, MapFlags)"
* in OpenGL ES 3.0 instead. * in OpenGL ES 3.0 instead.
* @deprecated_gl Prefer to use @ref Magnum::Buffer::map(GLintptr, GLsizeiptr, MapFlags) "map(GLintptr, GLsizeiptr, MapFlags)" * @deprecated_gl Prefer to use @ref Magnum::Buffer::map(GLintptr, GLsizeiptr, MapFlags) "map(GLintptr, GLsizeiptr, MapFlags)"
@ -1071,7 +1071,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* @requires_gles20 Not available in ES 3.0 or desktop OpenGL. Use * @requires_gles20 Not available in ES 3.0 or desktop OpenGL. Use
* @ref Magnum::Buffer::map(GLintptr, GLsizeiptr, MapFlags) "map(GLintptr, GLsizeiptr, MapFlags)" * @ref Magnum::Buffer::map(GLintptr, GLsizeiptr, MapFlags) "map(GLintptr, GLsizeiptr, MapFlags)"
* instead. * instead.
* @requires_es_extension %Extension @es_extension{CHROMIUM,map_sub} * @requires_es_extension Extension @es_extension{CHROMIUM,map_sub}
* @deprecated_gl Prefer to use @ref Magnum::Buffer::map(GLintptr, GLsizeiptr, MapFlags) "map(GLintptr, GLsizeiptr, MapFlags)" * @deprecated_gl Prefer to use @ref Magnum::Buffer::map(GLintptr, GLsizeiptr, MapFlags) "map(GLintptr, GLsizeiptr, MapFlags)"
* instead, as it has more complete set of features. * instead, as it has more complete set of features.
*/ */
@ -1092,8 +1092,8 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* @see @ref minMapAlignment(), @ref flushMappedRange(), @ref unmap(), * @see @ref minMapAlignment(), @ref flushMappedRange(), @ref unmap(),
* @ref map(MapAccess), @ref setTargetHint(), @fn_gl{BindBuffer} * @ref map(MapAccess), @ref setTargetHint(), @fn_gl{BindBuffer}
* and @fn_gl{MapBufferRange} or @fn_gl_extension{MapNamedBufferRange,EXT,direct_state_access} * and @fn_gl{MapBufferRange} or @fn_gl_extension{MapNamedBufferRange,EXT,direct_state_access}
* @requires_gl30 %Extension @extension{ARB,map_buffer_range} * @requires_gl30 Extension @extension{ARB,map_buffer_range}
* @requires_gles30 %Extension @es_extension{EXT,map_buffer_range} in * @requires_gles30 Extension @es_extension{EXT,map_buffer_range} in
* OpenGL ES 2.0 * OpenGL ES 2.0
*/ */
void* map(GLintptr offset, GLsizeiptr length, MapFlags flags); void* map(GLintptr offset, GLsizeiptr length, MapFlags flags);
@ -1113,8 +1113,8 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* before the operation. * before the operation.
* @see @ref setTargetHint(), @fn_gl{BindBuffer} and @fn_gl{FlushMappedBufferRange} * @see @ref setTargetHint(), @fn_gl{BindBuffer} and @fn_gl{FlushMappedBufferRange}
* or @fn_gl_extension{FlushMappedNamedBufferRange,EXT,direct_state_access} * or @fn_gl_extension{FlushMappedNamedBufferRange,EXT,direct_state_access}
* @requires_gl30 %Extension @extension{ARB,map_buffer_range} * @requires_gl30 Extension @extension{ARB,map_buffer_range}
* @requires_gles30 %Extension @es_extension{EXT,map_buffer_range} in * @requires_gles30 Extension @es_extension{EXT,map_buffer_range} in
* OpenGL ES 2.0 * OpenGL ES 2.0
*/ */
Buffer& flushMappedRange(GLintptr offset, GLsizeiptr length); Buffer& flushMappedRange(GLintptr offset, GLsizeiptr length);
@ -1131,7 +1131,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* is bound to hinted target before the operation. * is bound to hinted target before the operation.
* @see setTargetHint(), @fn_gl{BindBuffer} and @fn_gl{UnmapBuffer} or * @see setTargetHint(), @fn_gl{BindBuffer} and @fn_gl{UnmapBuffer} or
* @fn_gl_extension{UnmapNamedBuffer,EXT,direct_state_access} * @fn_gl_extension{UnmapNamedBuffer,EXT,direct_state_access}
* @requires_gles30 %Extension @es_extension{OES,mapbuffer} in OpenGL * @requires_gles30 Extension @es_extension{OES,mapbuffer} in OpenGL
* ES 2.0 * ES 2.0
*/ */
bool unmap(); bool unmap();
@ -1146,7 +1146,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* @requires_gles20 Not available in ES 3.0 or desktop OpenGL. Use * @requires_gles20 Not available in ES 3.0 or desktop OpenGL. Use
* @ref Magnum::Buffer::map(GLintptr, GLsizeiptr, MapFlags) "map(GLintptr, GLsizeiptr, MapFlags)" * @ref Magnum::Buffer::map(GLintptr, GLsizeiptr, MapFlags) "map(GLintptr, GLsizeiptr, MapFlags)"
* instead. * instead.
* @requires_es_extension %Extension @es_extension{CHROMIUM,map_sub} * @requires_es_extension Extension @es_extension{CHROMIUM,map_sub}
*/ */
void unmapSub(); void unmapSub();
#endif #endif

20
src/Magnum/BufferImage.h

@ -40,7 +40,7 @@ namespace Magnum {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
@brief %Buffer image @brief Buffer image
Stores image data in GPU memory. Interchangeable with @ref Image, Stores image data in GPU memory. Interchangeable with @ref Image,
@ref ImageReference or @ref Trade::ImageData. @ref ImageReference or @ref Trade::ImageData.
@ -49,15 +49,15 @@ Stores image data in GPU memory. Interchangeable with @ref Image,
*/ */
template<UnsignedInt dimensions> class BufferImage: public AbstractImage { template<UnsignedInt dimensions> class BufferImage: public AbstractImage {
public: public:
const static UnsignedInt Dimensions = dimensions; /**< @brief %Image dimension count */ const static UnsignedInt Dimensions = dimensions; /**< @brief Image dimension count */
/** /**
* @brief Constructor * @brief Constructor
* @param format Format of pixel data * @param format Format of pixel data
* @param type Data type of pixel data * @param type Data type of pixel data
* @param size %Image size * @param size Image size
* @param data %Image data * @param data Image data
* @param usage %Image buffer usage * @param usage Image buffer usage
* *
* Note that the image data are not copied on construction, but they * Note that the image data are not copied on construction, but they
* are deleted on class destruction. * are deleted on class destruction.
@ -88,7 +88,7 @@ template<UnsignedInt dimensions> class BufferImage: public AbstractImage {
/** @brief Move assignment */ /** @brief Move assignment */
BufferImage<dimensions>& operator=(BufferImage<dimensions>&& other) noexcept; BufferImage<dimensions>& operator=(BufferImage<dimensions>&& other) noexcept;
/** @brief %Image size */ /** @brief Image size */
VectorTypeFor<Dimensions, Int> size() const { return _size; } VectorTypeFor<Dimensions, Int> size() const { return _size; }
/** @copydoc Image::dataSize() */ /** @copydoc Image::dataSize() */
@ -96,16 +96,16 @@ template<UnsignedInt dimensions> class BufferImage: public AbstractImage {
return AbstractImage::dataSize<dimensions>(size); return AbstractImage::dataSize<dimensions>(size);
} }
/** @brief %Image buffer */ /** @brief Image buffer */
Buffer& buffer() { return _buffer; } Buffer& buffer() { return _buffer; }
/** /**
* @brief Set image data * @brief Set image data
* @param format Format of pixel data * @param format Format of pixel data
* @param type Data type of pixel data * @param type Data type of pixel data
* @param size %Image size * @param size Image size
* @param data %Image data * @param data Image data
* @param usage %Image buffer usage * @param usage Image buffer usage
* *
* Updates the image buffer with given data. The data are not deleted * Updates the image buffer with given data. The data are not deleted
* after filling the buffer. * after filling the buffer.

18
src/Magnum/BufferTexture.h

@ -104,7 +104,7 @@ enum class BufferTextureFormat: GLenum {
/** /**
* RGB, each component non-normalized unsigned int. * RGB, each component non-normalized unsigned int.
* @requires_gl40 %Extension @extension{ARB,texture_buffer_object_rgb32} * @requires_gl40 Extension @extension{ARB,texture_buffer_object_rgb32}
*/ */
RGB32UI = GL_RGB32UI, RGB32UI = GL_RGB32UI,
@ -119,7 +119,7 @@ enum class BufferTextureFormat: GLenum {
/** /**
* RGB, each component non-normalized signed int. * RGB, each component non-normalized signed int.
* @requires_gl40 %Extension @extension{ARB,texture_buffer_object_rgb32} * @requires_gl40 Extension @extension{ARB,texture_buffer_object_rgb32}
*/ */
RGB32I = GL_RGB32I, RGB32I = GL_RGB32I,
@ -143,7 +143,7 @@ enum class BufferTextureFormat: GLenum {
/** /**
* RGB, each component float. * RGB, each component float.
* @requires_gl40 %Extension @extension{ARB,texture_buffer_object_rgb32} * @requires_gl40 Extension @extension{ARB,texture_buffer_object_rgb32}
*/ */
RGB32F = GL_RGB32F, RGB32F = GL_RGB32F,
@ -152,14 +152,14 @@ enum class BufferTextureFormat: GLenum {
}; };
/** /**
@brief %Buffer texture @brief Buffer texture
This texture is, unlike classic textures such as @ref Texture used as simple This texture is, unlike classic textures such as @ref Texture used as simple
data source, without any unnecessary interpolation and wrapping methods. data source, without any unnecessary interpolation and wrapping methods.
## Usage ## Usage
%Texture data are stored in buffer and after binding the buffer to the texture Texture data are stored in buffer and after binding the buffer to the texture
using @ref setBuffer(), you can fill the buffer at any time using data setting using @ref setBuffer(), you can fill the buffer at any time using data setting
functions in Buffer itself. functions in Buffer itself.
@ -195,7 +195,7 @@ and respective function documentation for more information.
@see @ref Texture, @ref TextureArray, @ref CubeMapTexture, @see @ref Texture, @ref TextureArray, @ref CubeMapTexture,
@ref CubeMapTextureArray, @ref RectangleTexture, @ref MultisampleTexture @ref CubeMapTextureArray, @ref RectangleTexture, @ref MultisampleTexture
@requires_gl31 %Extension @extension{ARB,texture_buffer_object} @requires_gl31 Extension @extension{ARB,texture_buffer_object}
@requires_gl Texture buffers are not available in OpenGL ES. @requires_gl Texture buffers are not available in OpenGL ES.
*/ */
class MAGNUM_EXPORT BufferTexture: public AbstractTexture { class MAGNUM_EXPORT BufferTexture: public AbstractTexture {
@ -236,7 +236,7 @@ class MAGNUM_EXPORT BufferTexture: public AbstractTexture {
/** /**
* @brief Set texture buffer * @brief Set texture buffer
* @param internalFormat Internal format * @param internalFormat Internal format
* @param buffer %Buffer with data * @param buffer Buffer with data
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* Binds given buffer to this texture. The buffer itself can be then * Binds given buffer to this texture. The buffer itself can be then
@ -251,7 +251,7 @@ class MAGNUM_EXPORT BufferTexture: public AbstractTexture {
/** /**
* @brief Set texture buffer * @brief Set texture buffer
* @param internalFormat Internal format * @param internalFormat Internal format
* @param buffer %Buffer * @param buffer Buffer
* @param offset Offset * @param offset Offset
* @param size Data size * @param size Data size
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
@ -262,7 +262,7 @@ class MAGNUM_EXPORT BufferTexture: public AbstractTexture {
* @see @ref maxSize(), @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and * @see @ref maxSize(), @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl{TexBufferRange} or * @fn_gl{TexBufferRange} or
* @fn_gl_extension{TextureBufferRange,EXT,direct_state_access} * @fn_gl_extension{TextureBufferRange,EXT,direct_state_access}
* @requires_gl43 %Extension @extension{ARB,texture_buffer_range} * @requires_gl43 Extension @extension{ARB,texture_buffer_range}
*/ */
BufferTexture& setBuffer(BufferTextureFormat internalFormat, Buffer& buffer, GLintptr offset, GLsizeiptr size); BufferTexture& setBuffer(BufferTextureFormat internalFormat, Buffer& buffer, GLintptr offset, GLsizeiptr size);

24
src/Magnum/Color.h

@ -161,7 +161,7 @@ template<class T> class BasicColor3: public Math::Vector3<T> {
/** /**
* @brief Red color * @brief Red color
* *
* Convenience alternative to e.g. `%Color3(red, 0.0f, 0.0f)`. With * Convenience alternative to e.g. `Color3(red, 0.0f, 0.0f)`. With
* floating-point underlying type equivalent to @ref Vector3::xAxis(). * floating-point underlying type equivalent to @ref Vector3::xAxis().
* @see @ref green(), @ref blue(), @ref cyan() * @see @ref green(), @ref blue(), @ref cyan()
*/ */
@ -172,7 +172,7 @@ template<class T> class BasicColor3: public Math::Vector3<T> {
/** /**
* @brief Green color * @brief Green color
* *
* Convenience alternative to e.g. `%Color3(0.0f, green, 0.0f)`. With * Convenience alternative to e.g. `Color3(0.0f, green, 0.0f)`. With
* floating-point underlying type equivalent to @ref Vector3::yAxis(). * floating-point underlying type equivalent to @ref Vector3::yAxis().
* @see @ref red(), @ref blue(), @ref magenta() * @see @ref red(), @ref blue(), @ref magenta()
*/ */
@ -183,7 +183,7 @@ template<class T> class BasicColor3: public Math::Vector3<T> {
/** /**
* @brief Blue color * @brief Blue color
* *
* Convenience alternative to e.g. `%Color3(0.0f, 0.0f, blue)`. With * Convenience alternative to e.g. `Color3(0.0f, 0.0f, blue)`. With
* floating-point underlying type equivalent to @ref Vector3::zAxis(). * floating-point underlying type equivalent to @ref Vector3::zAxis().
* @see @ref red(), @ref green(), @ref yellow() * @see @ref red(), @ref green(), @ref yellow()
*/ */
@ -194,7 +194,7 @@ template<class T> class BasicColor3: public Math::Vector3<T> {
/** /**
* @brief Cyan color * @brief Cyan color
* *
* Convenience alternative to e.g. `%Color3(red, 1.0f, 1.0f)`. With * Convenience alternative to e.g. `Color3(red, 1.0f, 1.0f)`. With
* floating-point underlying type equivalent to @ref Vector3::xScale(). * floating-point underlying type equivalent to @ref Vector3::xScale().
* @see @ref magenta(), @ref yellow(), @ref red() * @see @ref magenta(), @ref yellow(), @ref red()
*/ */
@ -205,7 +205,7 @@ template<class T> class BasicColor3: public Math::Vector3<T> {
/** /**
* @brief Magenta color * @brief Magenta color
* *
* Convenience alternative to e.g. `%Color3(0.0f, green, 0.0f)`. With * Convenience alternative to e.g. `Color3(0.0f, green, 0.0f)`. With
* floating-point underlying type equivalent to @ref Vector3::yScale(). * floating-point underlying type equivalent to @ref Vector3::yScale().
* @see @ref cyan(), @ref yellow(), @ref green() * @see @ref cyan(), @ref yellow(), @ref green()
*/ */
@ -216,7 +216,7 @@ template<class T> class BasicColor3: public Math::Vector3<T> {
/** /**
* @brief Yellow color * @brief Yellow color
* *
* Convenience alternative to `%Color3(0.0f, 0.0f, yellow)`. With * Convenience alternative to `Color3(0.0f, 0.0f, yellow)`. With
* floating-point underlying type equivalent to @ref Vector3::zScale(). * floating-point underlying type equivalent to @ref Vector3::zScale().
* @see @ref cyan(), @ref magenta(), @ref red() * @see @ref cyan(), @ref magenta(), @ref red()
*/ */
@ -364,7 +364,7 @@ class BasicColor4: public Math::Vector4<T> {
/** /**
* @brief Red color * @brief Red color
* *
* Convenience alternative to e.g. `%Color4(red, 0.0f, 0.0f, alpha)`. * Convenience alternative to e.g. `Color4(red, 0.0f, 0.0f, alpha)`.
* @see @ref green(), @ref blue(), @ref cyan() * @see @ref green(), @ref blue(), @ref cyan()
*/ */
constexpr static BasicColor4<T> red(T red = Implementation::fullChannel<T>(), T alpha = Implementation::fullChannel<T>()) { constexpr static BasicColor4<T> red(T red = Implementation::fullChannel<T>(), T alpha = Implementation::fullChannel<T>()) {
@ -374,7 +374,7 @@ class BasicColor4: public Math::Vector4<T> {
/** /**
* @brief Green color * @brief Green color
* *
* Convenience alternative to e.g. `%Color4(0.0f, green, 0.0f, alpha)`. * Convenience alternative to e.g. `Color4(0.0f, green, 0.0f, alpha)`.
* @see @ref red(), @ref blue(), @ref magenta() * @see @ref red(), @ref blue(), @ref magenta()
*/ */
constexpr static BasicColor4<T> green(T green = Implementation::fullChannel<T>(), T alpha = Implementation::fullChannel<T>()) { constexpr static BasicColor4<T> green(T green = Implementation::fullChannel<T>(), T alpha = Implementation::fullChannel<T>()) {
@ -384,7 +384,7 @@ class BasicColor4: public Math::Vector4<T> {
/** /**
* @brief Blue color * @brief Blue color
* *
* Convenience alternative to e.g. `%Color4(0.0f, 0.0f, blue, alpha)`. * Convenience alternative to e.g. `Color4(0.0f, 0.0f, blue, alpha)`.
* @see @ref red(), @ref green(), @ref yellow() * @see @ref red(), @ref green(), @ref yellow()
*/ */
constexpr static BasicColor4<T> blue(T blue = Implementation::fullChannel<T>(), T alpha = Implementation::fullChannel<T>()) { constexpr static BasicColor4<T> blue(T blue = Implementation::fullChannel<T>(), T alpha = Implementation::fullChannel<T>()) {
@ -394,7 +394,7 @@ class BasicColor4: public Math::Vector4<T> {
/** /**
* @brief Cyan color * @brief Cyan color
* *
* Convenience alternative to e.g. `%Color4(red, 1.0f, 1.0f, alpha)`. * Convenience alternative to e.g. `Color4(red, 1.0f, 1.0f, alpha)`.
* @see @ref magenta(), @ref yellow(), @ref red() * @see @ref magenta(), @ref yellow(), @ref red()
*/ */
constexpr static BasicColor4<T> cyan(T red = T(0), T alpha = Implementation::fullChannel<T>()) { constexpr static BasicColor4<T> cyan(T red = T(0), T alpha = Implementation::fullChannel<T>()) {
@ -404,7 +404,7 @@ class BasicColor4: public Math::Vector4<T> {
/** /**
* @brief Magenta color * @brief Magenta color
* *
* Convenience alternative to e.g. `%Color4(1.0f, green, 1.0f, alpha)`. * Convenience alternative to e.g. `Color4(1.0f, green, 1.0f, alpha)`.
* @see @ref cyan(), @ref yellow(), @ref green() * @see @ref cyan(), @ref yellow(), @ref green()
*/ */
constexpr static BasicColor4<T> magenta(T green = T(0), T alpha = Implementation::fullChannel<T>()) { constexpr static BasicColor4<T> magenta(T green = T(0), T alpha = Implementation::fullChannel<T>()) {
@ -414,7 +414,7 @@ class BasicColor4: public Math::Vector4<T> {
/** /**
* @brief Yellow color * @brief Yellow color
* *
* Convenience alternative to e.g. `%Color4(1.0f, 1.0f, blue, alpha)`. * Convenience alternative to e.g. `Color4(1.0f, 1.0f, blue, alpha)`.
* @see @ref cyan(), @ref magenta(), @ref red() * @see @ref cyan(), @ref magenta(), @ref red()
*/ */
constexpr static BasicColor4<T> yellow(T blue = T(0), T alpha = Implementation::fullChannel<T>()) { constexpr static BasicColor4<T> yellow(T blue = T(0), T alpha = Implementation::fullChannel<T>()) {

36
src/Magnum/ColorFormat.h

@ -95,7 +95,7 @@ enum class ColorFormat: GLenum {
/** /**
* Floating-point red and green channel. * Floating-point red and green channel.
* @requires_gl30 %Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
* @requires_gles30 For texture data only, extension @es_extension{EXT,texture_rg} * @requires_gles30 For texture data only, extension @es_extension{EXT,texture_rg}
* in OpenGL ES 2.0 * in OpenGL ES 2.0
* @requires_es_extension For framebuffer reading, extension @es_extension{EXT,texture_rg}. * @requires_es_extension For framebuffer reading, extension @es_extension{EXT,texture_rg}.
@ -137,7 +137,7 @@ enum class ColorFormat: GLenum {
/** /**
* Floating-point BGRA. * Floating-point BGRA.
* @requires_es_extension %Extension @es_extension{EXT,read_format_bgra} * @requires_es_extension Extension @es_extension{EXT,read_format_bgra}
* for framebuffer reading, extension @es_extension{APPLE,texture_format_BGRA8888} * for framebuffer reading, extension @es_extension{APPLE,texture_format_BGRA8888}
* or @es_extension{EXT,texture_format_BGRA8888} for texture data. * or @es_extension{EXT,texture_format_BGRA8888} for texture data.
*/ */
@ -150,7 +150,7 @@ enum class ColorFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* Integer red channel. * Integer red channel.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only floating-point image data are available in OpenGL * @requires_gles30 Only floating-point image data are available in OpenGL
* ES 2.0. * ES 2.0.
*/ */
@ -159,7 +159,7 @@ enum class ColorFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* Integer green channel. * Integer green channel.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gl Only @ref Magnum::ColorFormat::RedInteger "ColorFormat::RedInteger" * @requires_gl Only @ref Magnum::ColorFormat::RedInteger "ColorFormat::RedInteger"
* is available in OpenGL ES 3.0, only floating-point image data are * is available in OpenGL ES 3.0, only floating-point image data are
* available in OpenGL ES 2.0. * available in OpenGL ES 2.0.
@ -168,7 +168,7 @@ enum class ColorFormat: GLenum {
/** /**
* Integer blue channel. * Integer blue channel.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gl Only @ref Magnum::ColorFormat::RedInteger "ColorFormat::RedInteger" * @requires_gl Only @ref Magnum::ColorFormat::RedInteger "ColorFormat::RedInteger"
* is available in OpenGL ES 3.0, only floating-point image data are * is available in OpenGL ES 3.0, only floating-point image data are
* available in OpenGL ES 2.0. * available in OpenGL ES 2.0.
@ -178,7 +178,7 @@ enum class ColorFormat: GLenum {
/** /**
* Integer red and green channel. * Integer red and green channel.
* @requires_gl30 %Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
* @requires_gl Can't be used for framebuffer reading in OpenGL ES. * @requires_gl Can't be used for framebuffer reading in OpenGL ES.
* @requires_gles30 For texture data only, only floating-point image data * @requires_gles30 For texture data only, only floating-point image data
* are available in OpenGL ES 2.0. * are available in OpenGL ES 2.0.
@ -187,7 +187,7 @@ enum class ColorFormat: GLenum {
/** /**
* Integer RGB. * Integer RGB.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gl Can't be used for framebuffer reading in OpenGL ES. * @requires_gl Can't be used for framebuffer reading in OpenGL ES.
* @requires_gles30 For texture data only, only floating-point image data * @requires_gles30 For texture data only, only floating-point image data
* are available in OpenGL ES 2.0. * are available in OpenGL ES 2.0.
@ -196,7 +196,7 @@ enum class ColorFormat: GLenum {
/** /**
* Integer RGBA. * Integer RGBA.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only floating-point image data are available in OpenGL * @requires_gles30 Only floating-point image data are available in OpenGL
* ES 2.0. * ES 2.0.
*/ */
@ -205,7 +205,7 @@ enum class ColorFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* Integer BGR. * Integer BGR.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gl Only @ref Magnum::ColorFormat::RGBInteger "ColorFormat::RGBInteger" * @requires_gl Only @ref Magnum::ColorFormat::RGBInteger "ColorFormat::RGBInteger"
* is available in OpenGL ES 3.0, only floating-point image data are * is available in OpenGL ES 3.0, only floating-point image data are
* available in OpenGL ES 2.0. * available in OpenGL ES 2.0.
@ -214,7 +214,7 @@ enum class ColorFormat: GLenum {
/** /**
* Integer BGRA. * Integer BGRA.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gl Only @ref Magnum::ColorFormat::RGBAInteger "ColorFormat::RGBAInteger" * @requires_gl Only @ref Magnum::ColorFormat::RGBAInteger "ColorFormat::RGBAInteger"
* is available in OpenGL ES 3.0, only floating-point image data are * is available in OpenGL ES 3.0, only floating-point image data are
* available in OpenGL ES 2.0. * available in OpenGL ES 2.0.
@ -234,9 +234,9 @@ enum class ColorFormat: GLenum {
/** /**
* Stencil index. * Stencil index.
* @requires_gl44 %Extension @extension{ARB,texture_stencil8} for texture * @requires_gl44 Extension @extension{ARB,texture_stencil8} for texture
* data, otherwise for framebuffer reading only. * data, otherwise for framebuffer reading only.
* @requires_es_extension %Extension @es_extension2{NV,read_stencil,GL_NV_read_depth_stencil}, * @requires_es_extension Extension @es_extension2{NV,read_stencil,GL_NV_read_depth_stencil},
* for framebuffer reading only. * for framebuffer reading only.
* @todo Where to get GL_STENCIL_INDEX in ES? * @todo Where to get GL_STENCIL_INDEX in ES?
*/ */
@ -248,7 +248,7 @@ enum class ColorFormat: GLenum {
/** /**
* Depth and stencil. * Depth and stencil.
* @requires_gl30 %Extension @extension{ARB,framebuffer_object} * @requires_gl30 Extension @extension{ARB,framebuffer_object}
* @requires_gles30 For texture data only, extension @es_extension{OES,packed_depth_stencil} * @requires_gles30 For texture data only, extension @es_extension{OES,packed_depth_stencil}
* in OpenGL ES 2.0 * in OpenGL ES 2.0
* @requires_es_extension For framebuffer reading only, extension * @requires_es_extension For framebuffer reading only, extension
@ -331,7 +331,7 @@ enum class ColorType: GLenum {
/** /**
* Each component half float. * Each component half float.
* @requires_gl30 %Extension @extension{ARB,half_float_pixel} * @requires_gl30 Extension @extension{ARB,half_float_pixel}
* @requires_gles30 For texture data only, extension * @requires_gles30 For texture data only, extension
* @es_extension2{OES,texture_half_float,OES_texture_float} in OpenGL * @es_extension2{OES,texture_half_float,OES_texture_float} in OpenGL
* ES 2.0 * ES 2.0
@ -451,7 +451,7 @@ enum class ColorType: GLenum {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* BGR, unsigned int, red and green 11bit float, blue 10bit float. * BGR, unsigned int, red and green 11bit float, blue 10bit float.
* @requires_gl30 %Extension @extension{EXT,packed_float} * @requires_gl30 Extension @extension{EXT,packed_float}
* @requires_gles30 Floating-point types are not available in OpenGL ES * @requires_gles30 Floating-point types are not available in OpenGL ES
* 2.0. * 2.0.
*/ */
@ -459,7 +459,7 @@ enum class ColorType: GLenum {
/** /**
* BGR, unsigned int, each component 9bit + 5bit exponent. * BGR, unsigned int, each component 9bit + 5bit exponent.
* @requires_gl30 %Extension @extension{EXT,texture_shared_exponent} * @requires_gl30 Extension @extension{EXT,texture_shared_exponent}
* @requires_gles30 Only 8bit and 16bit types are available in OpenGL ES * @requires_gles30 Only 8bit and 16bit types are available in OpenGL ES
* 2.0. * 2.0.
*/ */
@ -468,7 +468,7 @@ enum class ColorType: GLenum {
/** /**
* Unsigned int, depth component 24bit, stencil index 8bit. * Unsigned int, depth component 24bit, stencil index 8bit.
* @requires_gl30 %Extension @extension{ARB,framebuffer_object} * @requires_gl30 Extension @extension{ARB,framebuffer_object}
* @requires_gles30 For texture data only, extension @es_extension{OES,packed_depth_stencil} * @requires_gles30 For texture data only, extension @es_extension{OES,packed_depth_stencil}
* in OpenGL ES 2.0 * in OpenGL ES 2.0
*/ */
@ -482,7 +482,7 @@ enum class ColorType: GLenum {
/** /**
* Float + unsigned int, depth component 32bit float, 24bit gap, stencil * Float + unsigned int, depth component 32bit float, 24bit gap, stencil
* index 8bit. * index 8bit.
* @requires_gl30 %Extension @extension{ARB,depth_buffer_float} * @requires_gl30 Extension @extension{ARB,depth_buffer_float}
* @requires_gles30 For texture data only, only * @requires_gles30 For texture data only, only
* @ref Magnum::ColorType::UnsignedInt248 "ColorType::UnsignedInt248" * @ref Magnum::ColorType::UnsignedInt248 "ColorType::UnsignedInt248"
* is available in OpenGL ES 2.0. * is available in OpenGL ES 2.0.

26
src/Magnum/Context.h

@ -68,7 +68,7 @@ class MAGNUM_EXPORT Extension {
/** @brief Version in which this extension was adopted to core */ /** @brief Version in which this extension was adopted to core */
constexpr Version coreVersion() const { return _coreVersion; } constexpr Version coreVersion() const { return _coreVersion; }
/** @brief %Extension string */ /** @brief Extension string */
constexpr const char* string() const { return _string; } constexpr const char* string() const { return _string; }
private: private:
@ -83,7 +83,7 @@ class MAGNUM_EXPORT Extension {
}; };
/** /**
@brief %Magnum context @brief Magnum context
Provides access to version and extension information. Instance available Provides access to version and extension information. Instance available
through @ref Context::current() is automatically created during construction of through @ref Context::current() is automatically created during construction of
@ -98,15 +98,15 @@ class MAGNUM_EXPORT Context {
public: public:
/** /**
* @brief %Context flag * @brief Context flag
* *
* @see @ref Flags, @ref flags(), @ref Platform::Sdl2Application::Configuration::setFlags() "Platform::*Application::Configuration::setFlags()" * @see @ref Flags, @ref flags(), @ref Platform::Sdl2Application::Configuration::setFlags() "Platform::*Application::Configuration::setFlags()"
*/ */
enum class Flag: GLint { enum class Flag: GLint {
/** /**
* Debug context * Debug context
* @requires_gl43 %Extension @es_extension{KHR,debug} * @requires_gl43 Extension @es_extension{KHR,debug}
* @requires_es_extension %Extension @es_extension{KHR,debug} * @requires_es_extension Extension @es_extension{KHR,debug}
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
Debug = GL_CONTEXT_FLAG_DEBUG_BIT, Debug = GL_CONTEXT_FLAG_DEBUG_BIT,
@ -117,8 +117,8 @@ class MAGNUM_EXPORT Context {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* Context with robust access * Context with robust access
* @requires_extension %Extension @extension{ARB,robustness} * @requires_extension Extension @extension{ARB,robustness}
* @requires_es_extension %Extension @es_extension{EXT,robustness} * @requires_es_extension Extension @es_extension{EXT,robustness}
* @todo In ES available under glGetIntegerv(CONTEXT_ROBUST_ACCESS_EXT), * @todo In ES available under glGetIntegerv(CONTEXT_ROBUST_ACCESS_EXT),
* how to make it compatible? * how to make it compatible?
*/ */
@ -135,7 +135,7 @@ class MAGNUM_EXPORT Context {
}; };
/** /**
* @brief %Context flags * @brief Context flags
* *
* @see @ref flags() * @see @ref flags()
*/ */
@ -263,7 +263,7 @@ class MAGNUM_EXPORT Context {
} }
/** /**
* @brief %Renderer string * @brief Renderer string
* *
* The result is *not* cached, repeated queries will result in repeated * The result is *not* cached, repeated queries will result in repeated
* OpenGL calls. * OpenGL calls.
@ -309,11 +309,11 @@ class MAGNUM_EXPORT Context {
std::vector<std::string> shadingLanguageVersionStrings() const; std::vector<std::string> shadingLanguageVersionStrings() const;
/** /**
* @brief %Extension strings * @brief Extension strings
* *
* The result is *not* cached, repeated queries will result in repeated * The result is *not* cached, repeated queries will result in repeated
* OpenGL calls. Note that this function returns list of all extensions * OpenGL calls. Note that this function returns list of all extensions
* reported by the driver (even those not supported by %Magnum), see * reported by the driver (even those not supported by Magnum), see
* @ref supportedExtensions(), @ref Extension::extensions() or * @ref supportedExtensions(), @ref Extension::extensions() or
* @ref isExtensionSupported() for alternatives. * @ref isExtensionSupported() for alternatives.
* @see @fn_gl{Get} with @def_gl{NUM_EXTENSIONS}, @fn_gl{GetString} * @see @fn_gl{Get} with @def_gl{NUM_EXTENSIONS}, @fn_gl{GetString}
@ -321,7 +321,7 @@ class MAGNUM_EXPORT Context {
*/ */
std::vector<std::string> extensionStrings() const; std::vector<std::string> extensionStrings() const;
/** @brief %Context flags */ /** @brief Context flags */
Flags flags() const { return _flags; } Flags flags() const { return _flags; }
/** /**
@ -365,7 +365,7 @@ class MAGNUM_EXPORT Context {
/** /**
* @brief Whether given extension is supported * @brief Whether given extension is supported
* *
* %Extensions usable with this function are listed in @ref Extensions * Extensions usable with this function are listed in @ref Extensions
* namespace in header @ref Extensions.h. Example usage: * namespace in header @ref Extensions.h. Example usage:
* @code * @code
* if(Context::current()->isExtensionSupported<Extensions::GL::ARB::tessellation_shader>()) { * if(Context::current()->isExtensionSupported<Extensions::GL::ARB::tessellation_shader>()) {

20
src/Magnum/CubeMapTexture.h

@ -38,7 +38,7 @@ namespace Magnum {
/** /**
@brief Cube map texture @brief Cube map texture
%Texture used mainly for environment maps. It consists of 6 square textures Texture used mainly for environment maps. It consists of 6 square textures
generating 6 faces of the cube as following. Note that all images must be generating 6 faces of the cube as following. Note that all images must be
turned upside down (+Y is top): turned upside down (+Y is top):
@ -210,7 +210,7 @@ class MAGNUM_EXPORT CubeMapTexture: public AbstractTexture {
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* See @ref Texture::setCompareMode() for more information. * See @ref Texture::setCompareMode() for more information.
* @requires_gles30 %Extension @es_extension{EXT,shadow_samplers} and * @requires_gles30 Extension @es_extension{EXT,shadow_samplers} and
* @es_extension{NV,shadow_samplers_cube} * @es_extension{NV,shadow_samplers_cube}
*/ */
CubeMapTexture& setCompareMode(Sampler::CompareMode mode) { CubeMapTexture& setCompareMode(Sampler::CompareMode mode) {
@ -223,7 +223,7 @@ class MAGNUM_EXPORT CubeMapTexture: public AbstractTexture {
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* See @ref Texture::setCompareFunction() for more information. * See @ref Texture::setCompareFunction() for more information.
* @requires_gles30 %Extension @es_extension{EXT,shadow_samplers} and * @requires_gles30 Extension @es_extension{EXT,shadow_samplers} and
* @es_extension{NV,shadow_samplers_cube} * @es_extension{NV,shadow_samplers_cube}
*/ */
CubeMapTexture& setCompareFunction(Sampler::CompareFunction function) { CubeMapTexture& setCompareFunction(Sampler::CompareFunction function) {
@ -241,12 +241,12 @@ class MAGNUM_EXPORT CubeMapTexture: public AbstractTexture {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* @brief %Image size in given mip level * @brief Image size in given mip level
* @param coordinate Coordinate * @param coordinate Coordinate
* @param level Mip level * @param level Mip level
* *
* See @ref Texture::imageSize() for more information. * See @ref Texture::imageSize() for more information.
* @requires_gles31 %Texture image size queries are not available in * @requires_gles31 Texture image size queries are not available in
* OpenGL ES 3.0 and older. * OpenGL ES 3.0 and older.
*/ */
Vector2i imageSize(Coordinate coordinate, Int level) { Vector2i imageSize(Coordinate coordinate, Int level) {
@ -270,10 +270,10 @@ class MAGNUM_EXPORT CubeMapTexture: public AbstractTexture {
* @brief Read given mip level of texture to image * @brief Read given mip level of texture to image
* @param coordinate Coordinate * @param coordinate Coordinate
* @param level Mip level * @param level Mip level
* @param image %Image where to put the data * @param image Image where to put the data
* *
* See @ref Texture::image(Int, Image&) for more information. * See @ref Texture::image(Int, Image&) for more information.
* @requires_gl %Texture image queries are not available in OpenGL ES. * @requires_gl Texture image queries are not available in OpenGL ES.
*/ */
void image(Coordinate coordinate, Int level, Image2D& image) { void image(Coordinate coordinate, Int level, Image2D& image) {
AbstractTexture::image<2>(GLenum(coordinate), level, image); AbstractTexture::image<2>(GLenum(coordinate), level, image);
@ -283,12 +283,12 @@ class MAGNUM_EXPORT CubeMapTexture: public AbstractTexture {
* @brief Read given mip level of texture to buffer image * @brief Read given mip level of texture to buffer image
* @param coordinate Coordinate * @param coordinate Coordinate
* @param level Mip level * @param level Mip level
* @param image %Buffer image where to put the data * @param image Buffer image where to put the data
* @param usage %Buffer usage * @param usage Buffer usage
* *
* See @ref Texture::image(Int, BufferImage&, BufferUsage) for more * See @ref Texture::image(Int, BufferImage&, BufferUsage) for more
* information. * information.
* @requires_gl %Texture image queries are not available in OpenGL ES. * @requires_gl Texture image queries are not available in OpenGL ES.
*/ */
void image(Coordinate coordinate, Int level, BufferImage2D& image, BufferUsage usage) { void image(Coordinate coordinate, Int level, BufferImage2D& image, BufferUsage usage) {
AbstractTexture::image<2>(GLenum(coordinate), level, image, usage); AbstractTexture::image<2>(GLenum(coordinate), level, image, usage);

10
src/Magnum/CubeMapTextureArray.h

@ -79,7 +79,7 @@ the six sides of the cube map, fourth part is layer in the array. See
@see @ref Renderer::Feature::SeamlessCubeMapTexture, @ref CubeMapTexture, @see @ref Renderer::Feature::SeamlessCubeMapTexture, @ref CubeMapTexture,
@ref Texture, @ref TextureArray, @ref RectangleTexture, @ref BufferTexture, @ref Texture, @ref TextureArray, @ref RectangleTexture, @ref BufferTexture,
@ref MultisampleTexture @ref MultisampleTexture
@requires_gl40 %Extension @extension{ARB,texture_cube_map_array} @requires_gl40 Extension @extension{ARB,texture_cube_map_array}
@requires_gl Cube map texture arrays are not available in OpenGL ES. @requires_gl Cube map texture arrays are not available in OpenGL ES.
*/ */
class CubeMapTextureArray: public AbstractTexture { class CubeMapTextureArray: public AbstractTexture {
@ -272,7 +272,7 @@ class CubeMapTextureArray: public AbstractTexture {
} }
/** /**
* @brief %Image size in given mip level * @brief Image size in given mip level
* @param level Mip level * @param level Mip level
* *
* See @ref Texture::imageSize() for more information. * See @ref Texture::imageSize() for more information.
@ -296,7 +296,7 @@ class CubeMapTextureArray: public AbstractTexture {
/** /**
* @brief Read given mip level of texture to image * @brief Read given mip level of texture to image
* @param level Mip level * @param level Mip level
* @param image %Image where to put the data * @param image Image where to put the data
* *
* See @ref Texture::image(Int, Image&) for more information. * See @ref Texture::image(Int, Image&) for more information.
*/ */
@ -307,8 +307,8 @@ class CubeMapTextureArray: public AbstractTexture {
/** /**
* @brief Read given mip level of texture to buffer image * @brief Read given mip level of texture to buffer image
* @param level Mip level * @param level Mip level
* @param image %Buffer image where to put the data * @param image Buffer image where to put the data
* @param usage %Buffer usage * @param usage Buffer usage
* *
* See @ref Texture::image(Int, BufferImage&, BufferUsage) for more * See @ref Texture::image(Int, BufferImage&, BufferUsage) for more
* information. * information.

4
src/Magnum/DebugMessage.h

@ -94,7 +94,7 @@ class MAGNUM_EXPORT DebugMessage {
WindowSystem = GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR, WindowSystem = GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR,
#endif #endif
/** %Shader compiler */ /** Shader compiler */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
ShaderCompiler = GL_DEBUG_SOURCE_SHADER_COMPILER, ShaderCompiler = GL_DEBUG_SOURCE_SHADER_COMPILER,
#else #else
@ -355,7 +355,7 @@ class MAGNUM_EXPORT DebugMessage {
* DebugMessage::Type::Marker, 1337, DebugMessage::Severity::Notification, "Hello from OpenGL command stream!"); * DebugMessage::Type::Marker, 1337, DebugMessage::Severity::Notification, "Hello from OpenGL command stream!");
* @endcode * @endcode
* *
* > %DebugMessage::Source::Application %DebugMessage::Type::Marker -1 %DebugMessage::Severity::Notification\n * > DebugMessage::Source::Application DebugMessage::Type::Marker -1 DebugMessage::Severity::Notification\n
* > &nbsp;&nbsp;&nbsp;&nbsp;Hello from OpenGL command stream! * > &nbsp;&nbsp;&nbsp;&nbsp;Hello from OpenGL command stream!
*/ */
static void setDefaultCallback(); static void setDefaultCallback();

24
src/Magnum/DefaultFramebuffer.h

@ -87,7 +87,7 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
* @brief Status * @brief Status
* *
* @see @ref checkStatus() * @see @ref checkStatus()
* @requires_gl30 %Extension @extension{ARB,framebuffer_object} * @requires_gl30 Extension @extension{ARB,framebuffer_object}
*/ */
enum class Status: GLenum { enum class Status: GLenum {
/** The framebuffer is complete */ /** The framebuffer is complete */
@ -95,7 +95,7 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
/** /**
* The default framebuffer does not exist. * The default framebuffer does not exist.
* @requires_gles30 %Extension @es_extension{OES,surfaceless_context} * @requires_gles30 Extension @es_extension{OES,surfaceless_context}
* in OpenGL ES 2.0 * in OpenGL ES 2.0
*/ */
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
@ -173,7 +173,7 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
* @brief Read attachment * @brief Read attachment
* *
* @see @ref mapForRead() * @see @ref mapForRead()
* @requires_gles30 %Extension @es_extension2{NV,read_buffer,GL_NV_read_buffer} * @requires_gles30 Extension @es_extension2{NV,read_buffer,GL_NV_read_buffer}
* in OpenGL ES 2.0 * in OpenGL ES 2.0
*/ */
enum class ReadAttachment: GLenum { enum class ReadAttachment: GLenum {
@ -223,7 +223,7 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
/** /**
* Read from front buffer. * Read from front buffer.
* @requires_es_extension %Extension @es_extension2{NV,read_buffer_front,GL_NV_read_buffer} * @requires_es_extension Extension @es_extension2{NV,read_buffer_front,GL_NV_read_buffer}
*/ */
Front = GL_FRONT Front = GL_FRONT
@ -244,8 +244,8 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
* @brief Invalidation attachment * @brief Invalidation attachment
* *
* @see @ref invalidate() * @see @ref invalidate()
* @requires_gl43 %Extension @extension{ARB,invalidate_subdata} * @requires_gl43 Extension @extension{ARB,invalidate_subdata}
* @requires_gles30 %Extension @es_extension{EXT,discard_framebuffer} * @requires_gles30 Extension @es_extension{EXT,discard_framebuffer}
* in OpenGL ES 2.0 * in OpenGL ES 2.0
*/ */
enum class InvalidationAttachment: GLenum { enum class InvalidationAttachment: GLenum {
@ -320,7 +320,7 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
* operation. * operation.
* @see @fn_gl{BindFramebuffer}, @fn_gl{CheckFramebufferStatus} or * @see @fn_gl{BindFramebuffer}, @fn_gl{CheckFramebufferStatus} or
* @fn_gl_extension{CheckNamedFramebufferStatus,EXT,direct_state_access} * @fn_gl_extension{CheckNamedFramebufferStatus,EXT,direct_state_access}
* @requires_gl30 %Extension @extension{ARB,framebuffer_object} * @requires_gl30 Extension @extension{ARB,framebuffer_object}
*/ */
Status checkStatus(FramebufferTarget target); Status checkStatus(FramebufferTarget target);
@ -330,7 +330,7 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* @p attachments is list of shader outputs mapped to buffer * @p attachments is list of shader outputs mapped to buffer
* attachments. %Shader outputs which are not listed are not used, you * attachments. Shader outputs which are not listed are not used, you
* can achieve the same by passing @ref DrawAttachment::None as * can achieve the same by passing @ref DrawAttachment::None as
* attachment. Example usage: * attachment. Example usage:
* @code * @code
@ -351,7 +351,7 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
/** /**
* @brief Map shader output to buffer attachment * @brief Map shader output to buffer attachment
* @param attachment %Buffer attachment * @param attachment Buffer attachment
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* Similar to above function, can be used in cases when shader has * Similar to above function, can be used in cases when shader has
@ -371,7 +371,7 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
/** /**
* @brief Map given attachment for reading * @brief Map given attachment for reading
* @param attachment %Buffer attachment * @param attachment Buffer attachment
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* If @extension{EXT,direct_state_access} is not available and the * If @extension{EXT,direct_state_access} is not available and the
@ -379,7 +379,7 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
* operation. * operation.
* @see mapForDraw(), @fn_gl{BindFramebuffer}, @fn_gl{ReadBuffer} or * @see mapForDraw(), @fn_gl{BindFramebuffer}, @fn_gl{ReadBuffer} or
* @fn_gl_extension{FramebufferReadBuffer,EXT,direct_state_access} * @fn_gl_extension{FramebufferReadBuffer,EXT,direct_state_access}
* @requires_gles30 %Extension @es_extension2{NV,read_buffer,GL_NV_read_buffer} * @requires_gles30 Extension @es_extension2{NV,read_buffer,GL_NV_read_buffer}
* in OpenGL ES 2.0 * in OpenGL ES 2.0
*/ */
DefaultFramebuffer& mapForRead(ReadAttachment attachment); DefaultFramebuffer& mapForRead(ReadAttachment attachment);
@ -401,7 +401,7 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
/** /**
* @brief Invalidate framebuffer rectangle * @brief Invalidate framebuffer rectangle
* @param attachments Attachments to invalidate * @param attachments Attachments to invalidate
* @param rectangle %Rectangle to invalidate * @param rectangle Rectangle to invalidate
* *
* If extension @extension{ARB,invalidate_subdata} (part of OpenGL * If extension @extension{ARB,invalidate_subdata} (part of OpenGL
* 4.3) or OpenGL ES 3.0 is not available, this function does nothing. * 4.3) or OpenGL ES 3.0 is not available, this function does nothing.

4
src/Magnum/DimensionTraits.h

@ -64,7 +64,7 @@ template<UnsignedInt dimensions, class T> struct DimensionTraits {
/** /**
@brief Vector type for given dimension count and type @brief Vector type for given dimension count and type
Convenience alternative to <tt>typename %DimensionTraits<dimensions, T>::%VectorType</tt>. Convenience alternative to `typename DimensionTraits<dimensions, T>::VectorType`.
See @ref DimensionTraits::VectorType for more information. See @ref DimensionTraits::VectorType for more information.
*/ */
template<UnsignedInt dimensions, class T> using VectorTypeFor = typename DimensionTraits<dimensions, T>::VectorType; template<UnsignedInt dimensions, class T> using VectorTypeFor = typename DimensionTraits<dimensions, T>::VectorType;
@ -72,7 +72,7 @@ template<UnsignedInt dimensions, class T> using VectorTypeFor = typename Dimensi
/** /**
@brief Matrix type for given dimension count and type @brief Matrix type for given dimension count and type
Convenience alternative to <tt>typename %DimensionTraits<dimensions, T>::%MatrixType</tt>. Convenience alternative to `typename DimensionTraits<dimensions, T>::MatrixType`.
See @ref DimensionTraits::MatrixType for more information. See @ref DimensionTraits::MatrixType for more information.
*/ */
template<UnsignedInt dimensions, class T> using MatrixTypeFor = typename DimensionTraits<dimensions, T>::MatrixType; template<UnsignedInt dimensions, class T> using MatrixTypeFor = typename DimensionTraits<dimensions, T>::MatrixType;

2
src/Magnum/Extensions.h

@ -45,7 +45,7 @@ extensions are available only on @ref MAGNUM_TARGET_GLES "OpenGL ES builds".
Each struct has the same public methods as Extension class (requiredVersion(), Each struct has the same public methods as Extension class (requiredVersion(),
coreVersion() and string(), but these structs are better suited for coreVersion() and string(), but these structs are better suited for
compile-time decisions rather than %Extension instances. See compile-time decisions rather than Extension instances. See
@ref Context::isExtensionSupported() for example usage. @ref Context::isExtensionSupported() for example usage.
This namespace is built by default. To use it, you need to add `${MAGNUM_INCLUDE_DIRS}` This namespace is built by default. To use it, you need to add `${MAGNUM_INCLUDE_DIRS}`

66
src/Magnum/Framebuffer.h

@ -39,7 +39,7 @@
namespace Magnum { namespace Magnum {
/** /**
@brief %Framebuffer @brief Framebuffer
Unlike @ref DefaultFramebuffer, which is used for on-screen rendering, this Unlike @ref DefaultFramebuffer, which is used for on-screen rendering, this
class is used for off-screen rendering, usable either in windowless class is used for off-screen rendering, usable either in windowless
@ -99,7 +99,7 @@ If extension @extension{EXT,direct_state_access} is available, functions
@ref attachTexture3D() use DSA to avoid unnecessary calls to @fn_gl{BindFramebuffer}. @ref attachTexture3D() use DSA to avoid unnecessary calls to @fn_gl{BindFramebuffer}.
See their respective documentation for more information. See their respective documentation for more information.
@requires_gl30 %Extension @extension{ARB,framebuffer_object} @requires_gl30 Extension @extension{ARB,framebuffer_object}
@todo `MAX_COLOR_ATTACHMENTS` @todo `MAX_COLOR_ATTACHMENTS`
*/ */
class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObject { class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObject {
@ -121,7 +121,7 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* @brief Constructor * @brief Constructor
* @param id Color attachment ID * @param id Color attachment ID
* *
* @requires_gles30 %Extension @es_extension{NV,fbo_color_attachments} * @requires_gles30 Extension @es_extension{NV,fbo_color_attachments}
* is required for @p id greater than 0 in OpenGL ES 2.0 * is required for @p id greater than 0 in OpenGL ES 2.0
*/ */
constexpr explicit ColorAttachment(UnsignedInt id): attachment(GL_COLOR_ATTACHMENT0 + id) {} constexpr explicit ColorAttachment(UnsignedInt id): attachment(GL_COLOR_ATTACHMENT0 + id) {}
@ -158,7 +158,7 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
}; };
/** /**
* @brief %Buffer attachment * @brief Buffer attachment
* *
* @see @ref attachRenderbuffer(), @ref attachTexture1D(), * @see @ref attachRenderbuffer(), @ref attachTexture1D(),
* @ref attachTexture2D(), @ref attachCubeMapTexture(), * @ref attachTexture2D(), @ref attachCubeMapTexture(),
@ -203,8 +203,8 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* @brief Invalidation attachment * @brief Invalidation attachment
* *
* @see @ref invalidate() * @see @ref invalidate()
* @requires_gl43 %Extension @extension{ARB,invalidate_subdata} * @requires_gl43 Extension @extension{ARB,invalidate_subdata}
* @requires_gles30 %Extension @es_extension{EXT,discard_framebuffer} * @requires_gles30 Extension @es_extension{EXT,discard_framebuffer}
* in OpenGL ES 2.0 * in OpenGL ES 2.0
*/ */
class InvalidationAttachment { class InvalidationAttachment {
@ -267,7 +267,7 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
/** /**
* Sample count or locations are not the same for all attached * Sample count or locations are not the same for all attached
* images. * images.
* @requires_gles30 %Extension @es_extension{ANGLE,framebuffer_multisample}, * @requires_gles30 Extension @es_extension{ANGLE,framebuffer_multisample},
* @es_extension{APPLE,framebuffer_multisample}, * @es_extension{APPLE,framebuffer_multisample},
* @es_extension{EXT,multisampled_render_to_texture} or * @es_extension{EXT,multisampled_render_to_texture} or
* @es_extension{NV,framebuffer_multisample} in OpenGL ES 2.0 * @es_extension{NV,framebuffer_multisample} in OpenGL ES 2.0
@ -334,7 +334,7 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
GLuint id() const { return _id; } GLuint id() const { return _id; }
/** /**
* @brief %Framebuffer label * @brief Framebuffer label
* *
* The result is *not* cached, repeated queries will result in repeated * The result is *not* cached, repeated queries will result in repeated
* OpenGL calls. If OpenGL 4.3 is not supported and neither * OpenGL calls. If OpenGL 4.3 is not supported and neither
@ -383,7 +383,7 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* @p attachments is list of shader outputs mapped to framebuffer * @p attachments is list of shader outputs mapped to framebuffer
* color attachment IDs. %Shader outputs which are not listed are not * color attachment IDs. Shader outputs which are not listed are not
* used, you can achieve the same by passing @ref Framebuffer::DrawAttachment::None * used, you can achieve the same by passing @ref Framebuffer::DrawAttachment::None
* as color attachment ID. Example usage: * as color attachment ID. Example usage:
* @code * @code
@ -398,7 +398,7 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* @ref maxColorAttachments(), @ref mapForRead(), * @ref maxColorAttachments(), @ref mapForRead(),
* @fn_gl{BindFramebuffer}, @fn_gl{DrawBuffers} or * @fn_gl{BindFramebuffer}, @fn_gl{DrawBuffers} or
* @fn_gl_extension{FramebufferDrawBuffers,EXT,direct_state_access} * @fn_gl_extension{FramebufferDrawBuffers,EXT,direct_state_access}
* @requires_gles30 %Extension @es_extension2{NV,draw_buffers,GL_NV_draw_buffers} * @requires_gles30 Extension @es_extension2{NV,draw_buffers,GL_NV_draw_buffers}
* in OpenGL ES 2.0 * in OpenGL ES 2.0
*/ */
Framebuffer& mapForDraw(std::initializer_list<std::pair<UnsignedInt, DrawAttachment>> attachments); Framebuffer& mapForDraw(std::initializer_list<std::pair<UnsignedInt, DrawAttachment>> attachments);
@ -418,7 +418,7 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* @fn_gl{BindFramebuffer}, @fn_gl{DrawBuffer} or * @fn_gl{BindFramebuffer}, @fn_gl{DrawBuffer} or
* @fn_gl_extension{FramebufferDrawBuffer,EXT,direct_state_access}, * @fn_gl_extension{FramebufferDrawBuffer,EXT,direct_state_access},
* @fn_gl{DrawBuffers} in OpenGL ES 3.0 * @fn_gl{DrawBuffers} in OpenGL ES 3.0
* @requires_gles30 %Extension @es_extension2{NV,draw_buffers,GL_NV_draw_buffers} * @requires_gles30 Extension @es_extension2{NV,draw_buffers,GL_NV_draw_buffers}
* in OpenGL ES 2.0 * in OpenGL ES 2.0
*/ */
Framebuffer& mapForDraw(DrawAttachment attachment); Framebuffer& mapForDraw(DrawAttachment attachment);
@ -433,7 +433,7 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* operation. * operation.
* @see @ref mapForDraw(), @fn_gl{BindFramebuffer}, @fn_gl{ReadBuffer} * @see @ref mapForDraw(), @fn_gl{BindFramebuffer}, @fn_gl{ReadBuffer}
* or @fn_gl_extension{FramebufferReadBuffer,EXT,direct_state_access} * or @fn_gl_extension{FramebufferReadBuffer,EXT,direct_state_access}
* @requires_gles30 %Extension @es_extension2{NV,read_buffer,GL_NV_read_buffer} * @requires_gles30 Extension @es_extension2{NV,read_buffer,GL_NV_read_buffer}
* in OpenGL ES 2.0 * in OpenGL ES 2.0
*/ */
Framebuffer& mapForRead(ColorAttachment attachment); Framebuffer& mapForRead(ColorAttachment attachment);
@ -446,10 +446,10 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* not already. * not already.
* @see @fn_gl{InvalidateFramebuffer} or @fn_gles_extension{DiscardFramebuffer,EXT,discard_framebuffer} * @see @fn_gl{InvalidateFramebuffer} or @fn_gles_extension{DiscardFramebuffer,EXT,discard_framebuffer}
* on OpenGL ES 2.0 * on OpenGL ES 2.0
* @requires_gl43 %Extension @extension{ARB,invalidate_subdata}. Use * @requires_gl43 Extension @extension{ARB,invalidate_subdata}. Use
* @ref Magnum::Framebuffer::clear() "clear()" instead where the * @ref Magnum::Framebuffer::clear() "clear()" instead where the
* extension is not supported. * extension is not supported.
* @requires_gles30 %Extension @es_extension{EXT,discard_framebuffer} * @requires_gles30 Extension @es_extension{EXT,discard_framebuffer}
* in OpenGL ES 2.0. Use @ref Magnum::Framebuffer::clear() "clear()" * in OpenGL ES 2.0. Use @ref Magnum::Framebuffer::clear() "clear()"
* instead where the extension is not supported. * instead where the extension is not supported.
*/ */
@ -458,7 +458,7 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
/** /**
* @brief Invalidate framebuffer rectangle * @brief Invalidate framebuffer rectangle
* @param attachments Attachments to invalidate * @param attachments Attachments to invalidate
* @param rectangle %Rectangle to invalidate * @param rectangle Rectangle to invalidate
* *
* If extension @extension{ARB,invalidate_subdata} (part of OpenGL * If extension @extension{ARB,invalidate_subdata} (part of OpenGL
* 4.3) or OpenGL ES 3.0 is not available, this function does nothing. * 4.3) or OpenGL ES 3.0 is not available, this function does nothing.
@ -471,8 +471,8 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
/** /**
* @brief Attach renderbuffer to given buffer * @brief Attach renderbuffer to given buffer
* @param attachment %Buffer attachment * @param attachment Buffer attachment
* @param renderbuffer %Renderbuffer * @param renderbuffer Renderbuffer
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* If extension @extension{ARB,invalidate_subdata} (part of OpenGL * If extension @extension{ARB,invalidate_subdata} (part of OpenGL
@ -488,8 +488,8 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* @brief Attach texture to given buffer * @brief Attach texture to given buffer
* @param attachment %Buffer attachment * @param attachment Buffer attachment
* @param texture %Texture * @param texture Texture
* @param level Mip level * @param level Mip level
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
@ -506,8 +506,8 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
/** /**
* @brief Attach texture to given buffer * @brief Attach texture to given buffer
* @param attachment %Buffer attachment * @param attachment Buffer attachment
* @param texture %Texture * @param texture Texture
* @param level Mip level * @param level Mip level
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
@ -522,7 +522,7 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** @overload /** @overload
* @requires_gl31 %Extension @extension{ARB,texture_rectangle} * @requires_gl31 Extension @extension{ARB,texture_rectangle}
* @requires_gl Rectangle textures are not available in OpenGL ES. * @requires_gl Rectangle textures are not available in OpenGL ES.
*/ */
Framebuffer& attachTexture(BufferAttachment attachment, RectangleTexture& texture); Framebuffer& attachTexture(BufferAttachment attachment, RectangleTexture& texture);
@ -530,7 +530,7 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** @overload /** @overload
* @requires_gl32 %Extension @extension{ARB,texture_multisample} * @requires_gl32 Extension @extension{ARB,texture_multisample}
* @requires_gles31 Multisample textures are not available in OpenGL ES * @requires_gles31 Multisample textures are not available in OpenGL ES
* 3.0 and older. * 3.0 and older.
*/ */
@ -539,8 +539,8 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
/** /**
* @brief Attach cube map texture to given buffer * @brief Attach cube map texture to given buffer
* @param attachment %Buffer attachment * @param attachment Buffer attachment
* @param texture %Texture * @param texture Texture
* @param coordinate Cube map coordinate * @param coordinate Cube map coordinate
* @param level Mip level * @param level Mip level
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
@ -556,8 +556,8 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
/** /**
* @brief Attach texture layer to given buffer * @brief Attach texture layer to given buffer
* @param attachment %Buffer attachment * @param attachment Buffer attachment
* @param texture %Texture * @param texture Texture
* @param level Mip level * @param level Mip level
* @param layer Layer * @param layer Layer
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
@ -568,14 +568,14 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* @see @fn_gl{BindFramebuffer}, @fn_gl2{FramebufferTextureLayer,FramebufferTexture} * @see @fn_gl{BindFramebuffer}, @fn_gl2{FramebufferTextureLayer,FramebufferTexture}
* or @fn_gl_extension{NamedFramebufferTextureLayer,EXT,direct_state_access}, * or @fn_gl_extension{NamedFramebufferTextureLayer,EXT,direct_state_access},
* @fn_gles_extension{FramebufferTexture3D,OES,texture_3D} in OpenGL ES 2.0 * @fn_gles_extension{FramebufferTexture3D,OES,texture_3D} in OpenGL ES 2.0
* @requires_gles30 %Extension @es_extension{OES,texture_3D} in OpenGL * @requires_gles30 Extension @es_extension{OES,texture_3D} in OpenGL
* ES 2.0 * ES 2.0
*/ */
Framebuffer& attachTextureLayer(BufferAttachment attachment, Texture3D& texture, Int level, Int layer); Framebuffer& attachTextureLayer(BufferAttachment attachment, Texture3D& texture, Int level, Int layer);
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** @overload /** @overload
* @requires_gl30 %Extension @extension{EXT,texture_array} * @requires_gl30 Extension @extension{EXT,texture_array}
* @requires_gl Only 2D array textures are available in OpenGL ES. * @requires_gl Only 2D array textures are available in OpenGL ES.
*/ */
Framebuffer& attachTextureLayer(BufferAttachment attachment, Texture1DArray& texture, Int level, Int layer); Framebuffer& attachTextureLayer(BufferAttachment attachment, Texture1DArray& texture, Int level, Int layer);
@ -583,21 +583,21 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** @overload /** @overload
* @requires_gl30 %Extension @extension{EXT,texture_array} * @requires_gl30 Extension @extension{EXT,texture_array}
* @requires_gles30 %Array textures are not available in OpenGL ES 2.0 * @requires_gles30 Array textures are not available in OpenGL ES 2.0
*/ */
Framebuffer& attachTextureLayer(BufferAttachment attachment, Texture2DArray& texture, Int level, Int layer); Framebuffer& attachTextureLayer(BufferAttachment attachment, Texture2DArray& texture, Int level, Int layer);
#endif #endif
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** @overload /** @overload
* @requires_gl40 %Extension @extension{ARB,texture_cube_map_array} * @requires_gl40 Extension @extension{ARB,texture_cube_map_array}
* @requires_gl Cube map texture arrays are not available in OpenGL ES. * @requires_gl Cube map texture arrays are not available in OpenGL ES.
*/ */
Framebuffer& attachTextureLayer(BufferAttachment attachment, CubeMapTextureArray& texture, Int level, Int layer); Framebuffer& attachTextureLayer(BufferAttachment attachment, CubeMapTextureArray& texture, Int level, Int layer);
/** @overload /** @overload
* @requires_gl32 %Extension @extension{ARB,texture_multisample} * @requires_gl32 Extension @extension{ARB,texture_multisample}
* @requires_gl Multisample array textures are not available in OpenGL ES. * @requires_gl Multisample array textures are not available in OpenGL ES.
*/ */
Framebuffer& attachTextureLayer(BufferAttachment attachment, MultisampleTexture2DArray& texture, Int layer); Framebuffer& attachTextureLayer(BufferAttachment attachment, MultisampleTexture2DArray& texture, Int layer);

14
src/Magnum/Image.h

@ -34,7 +34,7 @@
namespace Magnum { namespace Magnum {
/** /**
@brief %Image @brief Image
Stores image data on client memory. Interchangeable with @ref ImageReference, Stores image data on client memory. Interchangeable with @ref ImageReference,
@ref BufferImage or @ref Trade::ImageData. @ref BufferImage or @ref Trade::ImageData.
@ -42,14 +42,14 @@ Stores image data on client memory. Interchangeable with @ref ImageReference,
*/ */
template<UnsignedInt dimensions> class Image: public AbstractImage { template<UnsignedInt dimensions> class Image: public AbstractImage {
public: public:
const static UnsignedInt Dimensions = dimensions; /**< @brief %Image dimension count */ const static UnsignedInt Dimensions = dimensions; /**< @brief Image dimension count */
/** /**
* @brief Constructor * @brief Constructor
* @param format Format of pixel data * @param format Format of pixel data
* @param type Data type of pixel data * @param type Data type of pixel data
* @param size %Image size * @param size Image size
* @param data %Image data * @param data Image data
* *
* Note that the image data are not copied on construction, but they * Note that the image data are not copied on construction, but they
* are deleted on class destruction. * are deleted on class destruction.
@ -94,7 +94,7 @@ template<UnsignedInt dimensions> class Image: public AbstractImage {
/*implicit*/ operator ImageReference<dimensions>() const && = delete; /*implicit*/ operator ImageReference<dimensions>() const && = delete;
#endif #endif
/** @brief %Image size */ /** @brief Image size */
VectorTypeFor<dimensions, Int> size() const { return _size; } VectorTypeFor<dimensions, Int> size() const { return _size; }
/** /**
@ -126,8 +126,8 @@ template<UnsignedInt dimensions> class Image: public AbstractImage {
* @brief Set image data * @brief Set image data
* @param format Format of pixel data * @param format Format of pixel data
* @param type Data type of pixel data * @param type Data type of pixel data
* @param size %Image size * @param size Image size
* @param data %Image data * @param data Image data
* *
* Deletes previous data and replaces them with new. Note that the * Deletes previous data and replaces them with new. Note that the
* data are not copied, but they are deleted on destruction. * data are not copied, but they are deleted on destruction.

14
src/Magnum/ImageReference.h

@ -36,7 +36,7 @@
namespace Magnum { namespace Magnum {
/** /**
@brief %Image reference @brief Image reference
Adds information about dimensions, color components and component type to some Adds information about dimensions, color components and component type to some
data in memory. data in memory.
@ -52,14 +52,14 @@ Interchangeable with @ref Image, @ref BufferImage or @ref Trade::ImageData.
*/ */
template<UnsignedInt dimensions> class ImageReference: public AbstractImage { template<UnsignedInt dimensions> class ImageReference: public AbstractImage {
public: public:
const static UnsignedInt Dimensions = dimensions; /**< @brief %Image dimension count */ const static UnsignedInt Dimensions = dimensions; /**< @brief Image dimension count */
/** /**
* @brief Constructor * @brief Constructor
* @param format Format of pixel data * @param format Format of pixel data
* @param type Data type of pixel data * @param type Data type of pixel data
* @param size %Image size * @param size Image size
* @param data %Image data * @param data Image data
*/ */
constexpr explicit ImageReference(ColorFormat format, ColorType type, const VectorTypeFor<dimensions, Int>& size, const void* data): AbstractImage(format, type), _size(size), _data(reinterpret_cast<const unsigned char*>(data)) {} constexpr explicit ImageReference(ColorFormat format, ColorType type, const VectorTypeFor<dimensions, Int>& size, const void* data): AbstractImage(format, type), _size(size), _data(reinterpret_cast<const unsigned char*>(data)) {}
@ -67,14 +67,14 @@ template<UnsignedInt dimensions> class ImageReference: public AbstractImage {
* @brief Constructor * @brief Constructor
* @param format Format of pixel data * @param format Format of pixel data
* @param type Data type of pixel data * @param type Data type of pixel data
* @param size %Image size * @param size Image size
* *
* Data pointer is set to `nullptr`, call @ref setData() to fill the * Data pointer is set to `nullptr`, call @ref setData() to fill the
* image with data. * image with data.
*/ */
constexpr explicit ImageReference(ColorFormat format, ColorType type, const VectorTypeFor<dimensions, Int>& size): AbstractImage(format, type), _size(size), _data(nullptr) {} constexpr explicit ImageReference(ColorFormat format, ColorType type, const VectorTypeFor<dimensions, Int>& size): AbstractImage(format, type), _size(size), _data(nullptr) {}
/** @brief %Image size */ /** @brief Image size */
constexpr VectorTypeFor<dimensions, Int> size() const { return _size; } constexpr VectorTypeFor<dimensions, Int> size() const { return _size; }
/** @copydoc Image::dataSize() */ /** @copydoc Image::dataSize() */
@ -92,7 +92,7 @@ template<UnsignedInt dimensions> class ImageReference: public AbstractImage {
/** /**
* @brief Set image data * @brief Set image data
* @param data %Image data * @param data Image data
* *
* Dimensions, color compnents and data type remains the same as * Dimensions, color compnents and data type remains the same as
* passed in constructor. The data are not copied nor deleted on * passed in constructor. The data are not copied nor deleted on

2
src/Magnum/Magnum.h

@ -70,7 +70,7 @@ using Corrade::Utility::Error;
@brief Build with deprecated API included @brief Build with deprecated API included
Defined if the library contains deprecated API (which will be removed in the Defined if the library contains deprecated API (which will be removed in the
future). To preserve backward compatibility, %Magnum is by default built with future). To preserve backward compatibility, Magnum is by default built with
deprecated API included. deprecated API included.
@see @ref building, @ref cmake @see @ref building, @ref cmake
*/ */

36
src/Magnum/Mesh.h

@ -39,7 +39,7 @@
namespace Magnum { namespace Magnum {
/** /**
* @brief %Mesh primitive type * @brief Mesh primitive type
* *
* @see @ref Mesh::primitive(), @ref Mesh::setPrimitive() * @see @ref Mesh::primitive(), @ref Mesh::setPrimitive()
*/ */
@ -65,14 +65,14 @@ enum class MeshPrimitive: GLenum {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* Line strip with adjacency information. * Line strip with adjacency information.
* @requires_gl32 %Extension @extension{ARB,geometry_shader4} * @requires_gl32 Extension @extension{ARB,geometry_shader4}
* @requires_gl Geometry shaders are not available in OpenGL ES. * @requires_gl Geometry shaders are not available in OpenGL ES.
*/ */
LineStripAdjacency = GL_LINE_STRIP_ADJACENCY, LineStripAdjacency = GL_LINE_STRIP_ADJACENCY,
/** /**
* Lines with adjacency information. * Lines with adjacency information.
* @requires_gl32 %Extension @extension{ARB,geometry_shader4} * @requires_gl32 Extension @extension{ARB,geometry_shader4}
* @requires_gl Geometry shaders are not available in OpenGL ES. * @requires_gl Geometry shaders are not available in OpenGL ES.
*/ */
LinesAdjacency = GL_LINES_ADJACENCY, LinesAdjacency = GL_LINES_ADJACENCY,
@ -96,21 +96,21 @@ enum class MeshPrimitive: GLenum {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* Triangle strip with adjacency information. * Triangle strip with adjacency information.
* @requires_gl32 %Extension @extension{ARB,geometry_shader4} * @requires_gl32 Extension @extension{ARB,geometry_shader4}
* @requires_gl Geometry shaders are not available in OpenGL ES. * @requires_gl Geometry shaders are not available in OpenGL ES.
*/ */
TriangleStripAdjacency = GL_TRIANGLE_STRIP_ADJACENCY, TriangleStripAdjacency = GL_TRIANGLE_STRIP_ADJACENCY,
/** /**
* Triangles with adjacency information. * Triangles with adjacency information.
* @requires_gl32 %Extension @extension{ARB,geometry_shader4} * @requires_gl32 Extension @extension{ARB,geometry_shader4}
* @requires_gl Geometry shaders are not available in OpenGL ES. * @requires_gl Geometry shaders are not available in OpenGL ES.
*/ */
TrianglesAdjacency = GL_TRIANGLES_ADJACENCY, TrianglesAdjacency = GL_TRIANGLES_ADJACENCY,
/** /**
* Patches. * Patches.
* @requires_gl40 %Extension @extension{ARB,tessellation_shader} * @requires_gl40 Extension @extension{ARB,tessellation_shader}
* @requires_gl Tessellation shaders are not available in OpenGL ES. * @requires_gl Tessellation shaders are not available in OpenGL ES.
*/ */
Patches = GL_PATCHES Patches = GL_PATCHES
@ -120,10 +120,10 @@ enum class MeshPrimitive: GLenum {
namespace Implementation { struct MeshState; } namespace Implementation { struct MeshState; }
/** /**
@brief %Mesh @brief Mesh
@anchor Mesh-configuration @anchor Mesh-configuration
## %Mesh configuration ## Mesh configuration
You have to specify at least primitive and vertex/index count using You have to specify at least primitive and vertex/index count using
@ref setPrimitive() and @ref setCount(). Then fill your vertex buffers with @ref setPrimitive() and @ref setCount(). Then fill your vertex buffers with
@ -322,7 +322,7 @@ If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL ES 3.0 or
used instead of binding the buffers and specifying vertex attribute pointers used instead of binding the buffers and specifying vertex attribute pointers
in each @ref draw() call. The engine tracks currently bound VAO and currently in each @ref draw() call. The engine tracks currently bound VAO and currently
active shader program to avoid unnecessary calls to @fn_gl{BindVertexArray} and active shader program to avoid unnecessary calls to @fn_gl{BindVertexArray} and
@fn_gl{UseProgram}. %Mesh limits and implementation-defined values (such as @fn_gl{UseProgram}. Mesh limits and implementation-defined values (such as
@ref maxVertexAttributes()) are cached, so repeated queries don't result in @ref maxVertexAttributes()) are cached, so repeated queries don't result in
repeated @fn_gl{Get} calls. repeated @fn_gl{Get} calls.
@ -359,7 +359,7 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
/** /**
* Unsigned int * Unsigned int
* @requires_gles30 %Extension @es_extension{OES,element_index_uint} * @requires_gles30 Extension @es_extension{OES,element_index_uint}
* in OpenGL ES 2.0 * in OpenGL ES 2.0
*/ */
UnsignedInt = GL_UNSIGNED_INT UnsignedInt = GL_UNSIGNED_INT
@ -465,7 +465,7 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
GLuint id() const { return _id; } GLuint id() const { return _id; }
/** /**
* @brief %Mesh label * @brief Mesh label
* *
* The result is *not* cached, repeated queries will result in repeated * The result is *not* cached, repeated queries will result in repeated
* OpenGL calls. If OpenGL 4.3 is not supported and neither * OpenGL calls. If OpenGL 4.3 is not supported and neither
@ -552,7 +552,7 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
* Sets number of vertices of which the vertex buffer will be offset * Sets number of vertices of which the vertex buffer will be offset
* when drawing. Default is `0`. * when drawing. Default is `0`.
* @see @ref setCount(), @ref setBaseInstance() * @see @ref setCount(), @ref setBaseInstance()
* @requires_gl32 %Extension @extension{ARB,draw_elements_base_vertex} * @requires_gl32 Extension @extension{ARB,draw_elements_base_vertex}
* for indexed meshes * for indexed meshes
* @requires_gl Base vertex cannot be specified for indexed meshes in * @requires_gl Base vertex cannot be specified for indexed meshes in
* OpenGL ES. * OpenGL ES.
@ -607,8 +607,8 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
* Default is `1`. * Default is `1`.
* @see @ref setBaseInstance(), @ref setCount(), * @see @ref setBaseInstance(), @ref setCount(),
* @ref addVertexBufferInstanced() * @ref addVertexBufferInstanced()
* @requires_gl31 %Extension @extension{ARB,draw_instanced} * @requires_gl31 Extension @extension{ARB,draw_instanced}
* @requires_gles30 %Extension @es_extension{ANGLE,instanced_arrays}, * @requires_gles30 Extension @es_extension{ANGLE,instanced_arrays},
* @es_extension2{EXT,draw_instanced,draw_instanced} or * @es_extension2{EXT,draw_instanced,draw_instanced} or
* @es_extension{NV,draw_instanced} in OpenGL ES 2.0. * @es_extension{NV,draw_instanced} in OpenGL ES 2.0.
*/ */
@ -627,7 +627,7 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
* *
* Default is `0`. * Default is `0`.
* @see @ref setInstanceCount(), @ref setBaseVertex() * @see @ref setInstanceCount(), @ref setBaseVertex()
* @requires_gl42 %Extension @extension{ARB,base_instance} * @requires_gl42 Extension @extension{ARB,base_instance}
* @requires_gl Base instance cannot be specified in OpenGL ES. * @requires_gl Base instance cannot be specified in OpenGL ES.
*/ */
Mesh& setBaseInstance(UnsignedInt baseInstance) { Mesh& setBaseInstance(UnsignedInt baseInstance) {
@ -730,8 +730,8 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
* @fn_gl_extension{EnableVertexArrayAttrib,EXT,direct_state_access}, * @fn_gl_extension{EnableVertexArrayAttrib,EXT,direct_state_access},
* @fn_gl_extension{VertexArrayVertexAttribOffset,EXT,direct_state_access}, * @fn_gl_extension{VertexArrayVertexAttribOffset,EXT,direct_state_access},
* @fn_gl_extension{VertexArrayVertexAttribDivisor,EXT,direct_state_access} * @fn_gl_extension{VertexArrayVertexAttribDivisor,EXT,direct_state_access}
* @requires_gl33 %Extension @extension{ARB,instanced_arrays} * @requires_gl33 Extension @extension{ARB,instanced_arrays}
* @requires_gles30 %Extension @es_extension{ANGLE,instanced_arrays}, * @requires_gles30 Extension @es_extension{ANGLE,instanced_arrays},
* @es_extension{EXT,instanced_arrays} or * @es_extension{EXT,instanced_arrays} or
* @es_extension{NV,instanced_arrays} in OpenGL ES 2.0. * @es_extension{NV,instanced_arrays} in OpenGL ES 2.0.
*/ */
@ -784,7 +784,7 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
/** /**
* @brief Draw the mesh * @brief Draw the mesh
* @param shader %Shader to use for drawing * @param shader Shader to use for drawing
* *
* Expects that the shader is compatible with this mesh and is fully * Expects that the shader is compatible with this mesh and is fully
* set up. If vertex/index count or instance count is `0`, no draw * set up. If vertex/index count or instance count is `0`, no draw

12
src/Magnum/MeshView.h

@ -41,11 +41,11 @@ namespace Magnum {
namespace Implementation { struct MeshState; } namespace Implementation { struct MeshState; }
/** /**
@brief %Mesh view @brief Mesh view
Allows different interpretation of given @ref Mesh data via different vertex or Allows different interpretation of given @ref Mesh data via different vertex or
index count and offset. It is then possible to reuse one mesh buffer index count and offset. It is then possible to reuse one mesh buffer
configuration for different views. %Mesh primitive, index type, attribute configuration for different views. Mesh primitive, index type, attribute
bindings and attached buffers are reused from original mesh. bindings and attached buffers are reused from original mesh.
The same rules as in @ref Mesh apply, i.e. if the view has non-zero index The same rules as in @ref Mesh apply, i.e. if the view has non-zero index
@ -121,7 +121,7 @@ class MAGNUM_EXPORT MeshView {
* *
* Sets number of vertices of which the vertex buffer will be offset * Sets number of vertices of which the vertex buffer will be offset
* when drawing. Default is `0`. * when drawing. Default is `0`.
* @requires_gl32 %Extension @extension{ARB,draw_elements_base_vertex} * @requires_gl32 Extension @extension{ARB,draw_elements_base_vertex}
* for indexed meshes * for indexed meshes
* @requires_gl Base vertex cannot be specified for indexed meshes in * @requires_gl Base vertex cannot be specified for indexed meshes in
* OpenGL ES. * OpenGL ES.
@ -213,8 +213,8 @@ class MAGNUM_EXPORT MeshView {
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* Default is `1`. * Default is `1`.
* @requires_gl31 %Extension @extension{ARB,draw_instanced} * @requires_gl31 Extension @extension{ARB,draw_instanced}
* @requires_gles30 %Extension @es_extension{ANGLE,instanced_arrays}, * @requires_gles30 Extension @es_extension{ANGLE,instanced_arrays},
* @es_extension2{EXT,draw_instanced,draw_instanced} or * @es_extension2{EXT,draw_instanced,draw_instanced} or
* @es_extension{NV,draw_instanced} in OpenGL ES 2.0. * @es_extension{NV,draw_instanced} in OpenGL ES 2.0.
*/ */
@ -232,7 +232,7 @@ class MAGNUM_EXPORT MeshView {
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* Default is `0`. * Default is `0`.
* @requires_gl42 %Extension @extension{ARB,base_instance} * @requires_gl42 Extension @extension{ARB,base_instance}
* @requires_gl Base instance cannot be specified in OpenGL ES. * @requires_gl Base instance cannot be specified in OpenGL ES.
*/ */
MeshView& setBaseInstance(UnsignedInt baseInstance) { MeshView& setBaseInstance(UnsignedInt baseInstance) {

12
src/Magnum/MultisampleTexture.h

@ -86,7 +86,7 @@ shaders.
@see @ref MultisampleTexture2D, @ref MultisampleTexture2DArray, @ref Texture, @see @ref MultisampleTexture2D, @ref MultisampleTexture2DArray, @ref Texture,
@ref TextureArray, @ref CubeMapTexture, @ref CubeMapTextureArray, @ref TextureArray, @ref CubeMapTexture, @ref CubeMapTextureArray,
@ref RectangleTexture, @ref BufferTexture @ref RectangleTexture, @ref BufferTexture
@requires_gl32 %Extension @extension{ARB,texture_multisample} @requires_gl32 Extension @extension{ARB,texture_multisample}
@requires_gles31 Multisample textures are not available in OpenGL ES 3.0 and @requires_gles31 Multisample textures are not available in OpenGL ES 3.0 and
older. older.
@requires_gl 2D array multisample textures are not available in OpenGL ES, only @requires_gl 2D array multisample textures are not available in OpenGL ES, only
@ -94,7 +94,7 @@ shaders.
*/ */
template<UnsignedInt dimensions> class MultisampleTexture: public AbstractTexture { template<UnsignedInt dimensions> class MultisampleTexture: public AbstractTexture {
public: public:
static const UnsignedInt Dimensions = dimensions; /**< @brief %Texture dimension count */ static const UnsignedInt Dimensions = dimensions; /**< @brief Texture dimension count */
/** /**
* @brief Max supported multisample texture size * @brief Max supported multisample texture size
@ -123,7 +123,7 @@ template<UnsignedInt dimensions> class MultisampleTexture: public AbstractTextur
explicit MultisampleTexture(): AbstractTexture(Implementation::multisampleTextureTarget<dimensions>()) {} explicit MultisampleTexture(): AbstractTexture(Implementation::multisampleTextureTarget<dimensions>()) {}
/** /**
* @brief %Image size * @brief Image size
* *
* The result is not cached in any way. If * The result is not cached in any way. If
* @extension{EXT,direct_state_access} is not available, the texture * @extension{EXT,direct_state_access} is not available, the texture
@ -141,7 +141,7 @@ template<UnsignedInt dimensions> class MultisampleTexture: public AbstractTextur
* @brief Set storage * @brief Set storage
* @param samples Sample count * @param samples Sample count
* @param internalFormat Internal format * @param internalFormat Internal format
* @param size %Texture size * @param size Texture size
* @param sampleLocations Whether to use fixed sample locations * @param sampleLocations Whether to use fixed sample locations
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
@ -201,7 +201,7 @@ template<UnsignedInt dimensions> class MultisampleTexture: public AbstractTextur
/** /**
@brief Two-dimensional multisample texture @brief Two-dimensional multisample texture
@requires_gl32 %Extension @extension{ARB,texture_multisample} @requires_gl32 Extension @extension{ARB,texture_multisample}
@requires_gles31 Multisample textures are not available in OpenGL ES 3.0 and @requires_gles31 Multisample textures are not available in OpenGL ES 3.0 and
older. older.
*/ */
@ -211,7 +211,7 @@ typedef MultisampleTexture<2> MultisampleTexture2D;
/** /**
@brief Two-dimensional multisample texture array @brief Two-dimensional multisample texture array
@requires_gl32 %Extension @extension{ARB,texture_multisample} @requires_gl32 Extension @extension{ARB,texture_multisample}
@requires_gl Only @ref Magnum::MultisampleTexture2D "MultisampleTexture2D" is @requires_gl Only @ref Magnum::MultisampleTexture2D "MultisampleTexture2D" is
available in OpenGL ES. available in OpenGL ES.
*/ */

2
src/Magnum/PrimitiveQuery.h

@ -55,7 +55,7 @@ if(!q.resultAvailable()) {
// ...or block until the result is available // ...or block until the result is available
UnsignedInt primitiveCount = q.result<UnsignedInt>(); UnsignedInt primitiveCount = q.result<UnsignedInt>();
@endcode @endcode
@requires_gl30 %Extension @extension{EXT,transform_feedback} @requires_gl30 Extension @extension{EXT,transform_feedback}
@requires_gles30 Only sample queries are available on OpenGL ES 2.0. @requires_gles30 Only sample queries are available on OpenGL ES 2.0.
@see @ref SampleQuery, @ref TimeQuery, @ref TransformFeedback @see @ref SampleQuery, @ref TimeQuery, @ref TransformFeedback

16
src/Magnum/RectangleTexture.h

@ -65,7 +65,7 @@ documentation for more information about usage in shaders.
@see @ref Texture, @ref TextureArray, @ref CubeMapTexture, @see @ref Texture, @ref TextureArray, @ref CubeMapTexture,
@ref CubeMapTextureArray, @ref BufferTexture, @ref MultisampleTexture @ref CubeMapTextureArray, @ref BufferTexture, @ref MultisampleTexture
@requires_gl31 %Extension @extension{ARB,texture_rectangle} @requires_gl31 Extension @extension{ARB,texture_rectangle}
@requires_gl Rectangle textures are not available in OpenGL ES. @requires_gl Rectangle textures are not available in OpenGL ES.
*/ */
class MAGNUM_EXPORT RectangleTexture: public AbstractTexture { class MAGNUM_EXPORT RectangleTexture: public AbstractTexture {
@ -117,7 +117,7 @@ class MAGNUM_EXPORT RectangleTexture: public AbstractTexture {
} }
/** /**
* @brief %Image size * @brief Image size
* *
* The result is not cached in any way. If * The result is not cached in any way. If
* @extension{EXT,direct_state_access} is not available, the texture * @extension{EXT,direct_state_access} is not available, the texture
@ -203,7 +203,7 @@ class MAGNUM_EXPORT RectangleTexture: public AbstractTexture {
* @fn_gl{TexParameter} or * @fn_gl{TexParameter} or
* @fn_gl_extension{TextureParameter,EXT,direct_state_access} with * @fn_gl_extension{TextureParameter,EXT,direct_state_access} with
* @def_gl{TEXTURE_SRGB_DECODE_EXT} * @def_gl{TEXTURE_SRGB_DECODE_EXT}
* @requires_extension %Extension @extension{EXT,texture_sRGB_decode} * @requires_extension Extension @extension{EXT,texture_sRGB_decode}
*/ */
RectangleTexture& setSRGBDecode(bool decode) { RectangleTexture& setSRGBDecode(bool decode) {
AbstractTexture::setSRGBDecode(decode); AbstractTexture::setSRGBDecode(decode);
@ -257,7 +257,7 @@ class MAGNUM_EXPORT RectangleTexture: public AbstractTexture {
/** /**
* @brief Set storage * @brief Set storage
* @param internalFormat Internal format * @param internalFormat Internal format
* @param size %Texture size * @param size Texture size
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* Specifies entire structure of a texture at once, removing the need * Specifies entire structure of a texture at once, removing the need
@ -284,9 +284,9 @@ class MAGNUM_EXPORT RectangleTexture: public AbstractTexture {
/** /**
* @brief Read texture to image * @brief Read texture to image
* @param image %Image where to put the data * @param image Image where to put the data
* *
* %Image parameters like format and type of pixel data are taken from * Image parameters like format and type of pixel data are taken from
* given image, image size is taken from the texture using * given image, image size is taken from the texture using
* @ref imageSize(). * @ref imageSize().
* *
@ -309,8 +309,8 @@ class MAGNUM_EXPORT RectangleTexture: public AbstractTexture {
/** /**
* @brief Read given mip level of texture to buffer image * @brief Read given mip level of texture to buffer image
* @param image %Buffer image where to put the data * @param image Buffer image where to put the data
* @param usage %Buffer usage * @param usage Buffer usage
* *
* See @ref image(Image2D&) for more information. * See @ref image(Image2D&) for more information.
*/ */

14
src/Magnum/Renderbuffer.h

@ -39,7 +39,7 @@ namespace Magnum {
namespace Implementation { struct FramebufferState; } namespace Implementation { struct FramebufferState; }
/** /**
@brief %Renderbuffer @brief Renderbuffer
Attachable to framebuffer as render target, see @ref Framebuffer documentation Attachable to framebuffer as render target, see @ref Framebuffer documentation
for more information. for more information.
@ -47,7 +47,7 @@ for more information.
## Performance optimizations ## Performance optimizations
The engine tracks currently bound renderbuffer to avoid unnecessary calls to The engine tracks currently bound renderbuffer to avoid unnecessary calls to
@fn_gl{BindRenderbuffer} in @ref setStorage(). %Renderbuffer limits and @fn_gl{BindRenderbuffer} in @ref setStorage(). Renderbuffer limits and
implementation-defined values (such as @ref maxSize()) are cached, so repeated implementation-defined values (such as @ref maxSize()) are cached, so repeated
queries don't result in repeated @fn_gl{Get} calls. queries don't result in repeated @fn_gl{Get} calls.
@ -55,7 +55,7 @@ If extension @extension{EXT,direct_state_access} is available, function
@ref setStorage() uses DSA to avoid unnecessary calls to @fn_gl{BindRenderbuffer}. @ref setStorage() uses DSA to avoid unnecessary calls to @fn_gl{BindRenderbuffer}.
See its documentation for more information. See its documentation for more information.
@requires_gl30 %Extension @extension{ARB,framebuffer_object} @requires_gl30 Extension @extension{ARB,framebuffer_object}
*/ */
class MAGNUM_EXPORT Renderbuffer: public AbstractObject { class MAGNUM_EXPORT Renderbuffer: public AbstractObject {
friend struct Implementation::FramebufferState; friend struct Implementation::FramebufferState;
@ -116,7 +116,7 @@ class MAGNUM_EXPORT Renderbuffer: public AbstractObject {
GLuint id() const { return _id; } GLuint id() const { return _id; }
/** /**
* @brief %Renderbuffer label * @brief Renderbuffer label
* *
* The result is *not* cached, repeated queries will result in repeated * The result is *not* cached, repeated queries will result in repeated
* OpenGL calls. If OpenGL 4.3 is not supported and neither * OpenGL calls. If OpenGL 4.3 is not supported and neither
@ -151,7 +151,7 @@ class MAGNUM_EXPORT Renderbuffer: public AbstractObject {
/** /**
* @brief Set renderbuffer storage * @brief Set renderbuffer storage
* @param internalFormat Internal format * @param internalFormat Internal format
* @param size %Renderbuffer size * @param size Renderbuffer size
* *
* If @extension{EXT,direct_state_access} is not available and the * If @extension{EXT,direct_state_access} is not available and the
* framebufferbuffer is not currently bound, it is bound before the * framebufferbuffer is not currently bound, it is bound before the
@ -165,14 +165,14 @@ class MAGNUM_EXPORT Renderbuffer: public AbstractObject {
* @brief Set multisample renderbuffer storage * @brief Set multisample renderbuffer storage
* @param samples Sample count * @param samples Sample count
* @param internalFormat Internal format * @param internalFormat Internal format
* @param size %Renderbuffer size * @param size Renderbuffer size
* *
* If @extension{EXT,direct_state_access} is not available and the * If @extension{EXT,direct_state_access} is not available and the
* framebufferbuffer is not currently bound, it is bound before the * framebufferbuffer is not currently bound, it is bound before the
* operation. * operation.
* @see @ref maxSize(), @ref maxSamples(), @fn_gl{BindRenderbuffer}, * @see @ref maxSize(), @ref maxSamples(), @fn_gl{BindRenderbuffer},
* @fn_gl{RenderbufferStorageMultisample} or @fn_gl_extension{NamedRenderbufferStorageMultisample,EXT,direct_state_access} * @fn_gl{RenderbufferStorageMultisample} or @fn_gl_extension{NamedRenderbufferStorageMultisample,EXT,direct_state_access}
* @requires_gles30 %Extension @es_extension{ANGLE,framebuffer_multisample} * @requires_gles30 Extension @es_extension{ANGLE,framebuffer_multisample}
* or @es_extension{NV,framebuffer_multisample} in OpenGL ES 2.0 * or @es_extension{NV,framebuffer_multisample} in OpenGL ES 2.0
* @todo How about @es_extension{APPLE,framebuffer_multisample}? * @todo How about @es_extension{APPLE,framebuffer_multisample}?
* @todo NaCl has @fn_gl_extension{RenderbufferStorageMultisample,EXT,multisampled_render_to_texture} * @todo NaCl has @fn_gl_extension{RenderbufferStorageMultisample,EXT,multisampled_render_to_texture}

88
src/Magnum/RenderbufferFormat.h

@ -37,14 +37,14 @@ namespace Magnum {
@brief Internal renderbuffer format @brief Internal renderbuffer format
@see @ref Renderbuffer @see @ref Renderbuffer
@requires_gl30 %Extension @extension{ARB,framebuffer_object} @requires_gl30 Extension @extension{ARB,framebuffer_object}
@todo RGB, RGB8 ES only (ES3 + @es_extension{OES,rgb8_rgba8}) @todo RGB, RGB8 ES only (ES3 + @es_extension{OES,rgb8_rgba8})
*/ */
enum class RenderbufferFormat: GLenum { enum class RenderbufferFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* Red component, normalized unsigned, size implementation-dependent. * Red component, normalized unsigned, size implementation-dependent.
* @requires_gl30 %Extension @extension{ARB,texture_rg} * @requires_gl30 Extension @extension{ARB,texture_rg}
* @requires_gl Use exactly specified format in OpenGL ES instead. * @requires_gl Use exactly specified format in OpenGL ES instead.
* @deprecated_gl Prefer to use the exactly specified version of this * @deprecated_gl Prefer to use the exactly specified version of this
* format, e.g. @ref Magnum::RenderbufferFormat "RenderbufferFormat::R8". * format, e.g. @ref Magnum::RenderbufferFormat "RenderbufferFormat::R8".
@ -54,8 +54,8 @@ enum class RenderbufferFormat: GLenum {
/** /**
* Red component, normalized unsigned byte. * Red component, normalized unsigned byte.
* @requires_gl30 %Extension @extension{ARB,texture_rg} * @requires_gl30 Extension @extension{ARB,texture_rg}
* @requires_gles30 %Extension @es_extension{EXT,texture_rg} in OpenGL ES * @requires_gles30 Extension @es_extension{EXT,texture_rg} in OpenGL ES
* 2.0 * 2.0
*/ */
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
@ -68,7 +68,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* Red and green component, normalized unsigned, size * Red and green component, normalized unsigned, size
* implementation-dependent. * implementation-dependent.
* @requires_gl30 %Extension @extension{ARB,texture_rg} * @requires_gl30 Extension @extension{ARB,texture_rg}
* @requires_gl Use exactly specified format in OpenGL ES instead. * @requires_gl Use exactly specified format in OpenGL ES instead.
* @deprecated_gl Prefer to use the exactly specified version of this * @deprecated_gl Prefer to use the exactly specified version of this
* format, e.g. @ref Magnum::RenderbufferFormat "RenderbufferFormat::RG8". * format, e.g. @ref Magnum::RenderbufferFormat "RenderbufferFormat::RG8".
@ -78,8 +78,8 @@ enum class RenderbufferFormat: GLenum {
/** /**
* Red and green component, each normalized unsigned byte. * Red and green component, each normalized unsigned byte.
* @requires_gl30 %Extension @extension{ARB,texture_rg} * @requires_gl30 Extension @extension{ARB,texture_rg}
* @requires_gles30 %Extension @es_extension{EXT,texture_rg} in OpenGL ES * @requires_gles30 Extension @es_extension{EXT,texture_rg} in OpenGL ES
* 2.0 * 2.0
*/ */
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
@ -100,7 +100,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* RGBA, each component normalized unsigned byte. * RGBA, each component normalized unsigned byte.
* @requires_gles30 %Extension @es_extension{ARM,rgba8} or @es_extension{OES,rgb8_rgba8} * @requires_gles30 Extension @es_extension{ARM,rgba8} or @es_extension{OES,rgb8_rgba8}
* in OpenGL ES 2.0 * in OpenGL ES 2.0
*/ */
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
@ -112,7 +112,7 @@ enum class RenderbufferFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* Red component, normalized unsigned short. * Red component, normalized unsigned short.
* @requires_gl30 %Extension @extension{ARB,texture_rg} * @requires_gl30 Extension @extension{ARB,texture_rg}
* @requires_gl Only byte-sized normalized formats are available in OpenGL * @requires_gl Only byte-sized normalized formats are available in OpenGL
* ES. * ES.
*/ */
@ -120,7 +120,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* Red and green component, each normalized unsigned short. * Red and green component, each normalized unsigned short.
* @requires_gl30 %Extension @extension{ARB,texture_rg} * @requires_gl30 Extension @extension{ARB,texture_rg}
* @requires_gl Only byte-sized normalized formats are available in OpenGL * @requires_gl Only byte-sized normalized formats are available in OpenGL
* ES. * ES.
*/ */
@ -144,7 +144,7 @@ enum class RenderbufferFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* Red component, non-normalized unsigned byte. * Red component, non-normalized unsigned byte.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -152,7 +152,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* Red and green component, each non-normalized unsigned byte. * Red and green component, each non-normalized unsigned byte.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -160,7 +160,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* RGBA, each component non-normalized unsigned byte. * RGBA, each component non-normalized unsigned byte.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -168,7 +168,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* Red component, non-normalized signed byte. * Red component, non-normalized signed byte.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -176,7 +176,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* Red and green component, each non-normalized signed byte. * Red and green component, each non-normalized signed byte.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -184,7 +184,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* RGBA, each component non-normalized signed byte. * RGBA, each component non-normalized signed byte.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -192,7 +192,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* Red component, non-normalized unsigned short. * Red component, non-normalized unsigned short.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -200,7 +200,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* Red and green component, each non-normalized unsigned short. * Red and green component, each non-normalized unsigned short.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -208,7 +208,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* RGBA, each component non-normalized unsigned short. * RGBA, each component non-normalized unsigned short.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -216,7 +216,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* Red component, non-normalized signed short. * Red component, non-normalized signed short.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -224,7 +224,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* Red and green component, each non-normalized signed short. * Red and green component, each non-normalized signed short.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -232,7 +232,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* RGBA, each component non-normalized signed short. * RGBA, each component non-normalized signed short.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -240,7 +240,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* Red component, non-normalized unsigned int. * Red component, non-normalized unsigned int.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -248,7 +248,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* Red and green component, each non-normalized unsigned int. * Red and green component, each non-normalized unsigned int.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -256,7 +256,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* RGBA, each component non-normalized unsigned int. * RGBA, each component non-normalized unsigned int.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -264,7 +264,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* Red component, non-normalized signed int. * Red component, non-normalized signed int.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -272,7 +272,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* Red and green component, each non-normalized signed int. * Red and green component, each non-normalized signed int.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -280,7 +280,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* RGBA, each component non-normalized signed int. * RGBA, each component non-normalized signed int.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -290,7 +290,7 @@ enum class RenderbufferFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* Red component, half float. * Red component, half float.
* @requires_gl30 %Extension @extension{ARB,texture_float} * @requires_gl30 Extension @extension{ARB,texture_float}
* @requires_gl Only (non)normalized integral formats are available in * @requires_gl Only (non)normalized integral formats are available in
* OpenGL ES. * OpenGL ES.
*/ */
@ -298,7 +298,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* Red and green component, each half float. * Red and green component, each half float.
* @requires_gl30 %Extension @extension{ARB,texture_float} * @requires_gl30 Extension @extension{ARB,texture_float}
* @requires_gl Only (non)normalized integral formats are available in * @requires_gl Only (non)normalized integral formats are available in
* OpenGL ES. * OpenGL ES.
*/ */
@ -306,7 +306,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* RGBA, each component half float. * RGBA, each component half float.
* @requires_gl30 %Extension @extension{ARB,texture_float} * @requires_gl30 Extension @extension{ARB,texture_float}
* @requires_gl Only (non)normalized integral formats are available in * @requires_gl Only (non)normalized integral formats are available in
* OpenGL ES. * OpenGL ES.
*/ */
@ -314,7 +314,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* Red component, float. * Red component, float.
* @requires_gl30 %Extension @extension{ARB,texture_float} * @requires_gl30 Extension @extension{ARB,texture_float}
* @requires_gl Only (non)normalized integral formats are available in * @requires_gl Only (non)normalized integral formats are available in
* OpenGL ES. * OpenGL ES.
*/ */
@ -322,7 +322,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* Red and green component, each float. * Red and green component, each float.
* @requires_gl30 %Extension @extension{ARB,texture_float} * @requires_gl30 Extension @extension{ARB,texture_float}
* @requires_gl Only (non)normalized integral formats are available in * @requires_gl Only (non)normalized integral formats are available in
* OpenGL ES. * OpenGL ES.
*/ */
@ -330,7 +330,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* RGBA, each component float. * RGBA, each component float.
* @requires_gl30 %Extension @extension{ARB,texture_float} * @requires_gl30 Extension @extension{ARB,texture_float}
* @requires_gl Only (non)normalized integral formats are available in * @requires_gl Only (non)normalized integral formats are available in
* OpenGL ES. * OpenGL ES.
*/ */
@ -347,7 +347,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* RGBA, non-normalized unsigned, each RGB component 10bit, alpha 2bit. * RGBA, non-normalized unsigned, each RGB component 10bit, alpha 2bit.
* @requires_gl33 %Extension @extension{ARB,texture_rgb10_a2ui} * @requires_gl33 Extension @extension{ARB,texture_rgb10_a2ui}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -363,7 +363,7 @@ enum class RenderbufferFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* RGB, float, red and green 11bit, blue 10bit. * RGB, float, red and green 11bit, blue 10bit.
* @requires_gl30 %Extension @extension{EXT,packed_float} * @requires_gl30 Extension @extension{EXT,packed_float}
* @requires_gl Usable only as internal texture format in OpenGL ES, see * @requires_gl Usable only as internal texture format in OpenGL ES, see
* @ref Magnum::TextureFormat "TextureFormat::R11FG11FB10F". * @ref Magnum::TextureFormat "TextureFormat::R11FG11FB10F".
*/ */
@ -375,7 +375,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* sRGBA, each component normalized unsigned byte. * sRGBA, each component normalized unsigned byte.
* @requires_gles30 %Extension @es_extension{EXT,sRGB} in OpenGL ES 2.0 * @requires_gles30 Extension @es_extension{EXT,sRGB} in OpenGL ES 2.0
*/ */
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
SRGB8Alpha8 = GL_SRGB8_ALPHA8, SRGB8Alpha8 = GL_SRGB8_ALPHA8,
@ -399,7 +399,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* Depth component, 24bit. * Depth component, 24bit.
* @requires_gles30 %Extension @es_extension{OES,depth24} in OpenGL ES 2.0 * @requires_gles30 Extension @es_extension{OES,depth24} in OpenGL ES 2.0
*/ */
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
DepthComponent24 = GL_DEPTH_COMPONENT24, DepthComponent24 = GL_DEPTH_COMPONENT24,
@ -409,7 +409,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* Depth component, 32bit. * Depth component, 32bit.
* @requires_es_extension %Extension @es_extension{OES,depth32} * @requires_es_extension Extension @es_extension{OES,depth32}
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
DepthComponent32 = GL_DEPTH_COMPONENT32, DepthComponent32 = GL_DEPTH_COMPONENT32,
@ -420,7 +420,7 @@ enum class RenderbufferFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* Depth component, 32bit float. * Depth component, 32bit float.
* @requires_gl30 %Extension @extension{ARB,depth_buffer_float} * @requires_gl30 Extension @extension{ARB,depth_buffer_float}
* @requires_gles30 Only integral depth textures are available in OpenGL ES * @requires_gles30 Only integral depth textures are available in OpenGL ES
* 2.0. * 2.0.
*/ */
@ -439,7 +439,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* 1-bit stencil index. * 1-bit stencil index.
* @requires_es_extension %Extension @es_extension{OES,stencil1} * @requires_es_extension Extension @es_extension{OES,stencil1}
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
StencilIndex1 = GL_STENCIL_INDEX1, StencilIndex1 = GL_STENCIL_INDEX1,
@ -449,7 +449,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* 4-bit stencil index. * 4-bit stencil index.
* @requires_es_extension %Extension @es_extension{OES,stencil4} * @requires_es_extension Extension @es_extension{OES,stencil4}
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
StencilIndex4 = GL_STENCIL_INDEX4, StencilIndex4 = GL_STENCIL_INDEX4,
@ -478,7 +478,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* 24bit depth and 8bit stencil component. * 24bit depth and 8bit stencil component.
* @requires_gles30 %Extension @es_extension{OES,packed_depth_stencil} in * @requires_gles30 Extension @es_extension{OES,packed_depth_stencil} in
* OpenGL ES 2.0 * OpenGL ES 2.0
*/ */
#ifdef MAGNUM_TARGET_GLES2 #ifdef MAGNUM_TARGET_GLES2
@ -488,7 +488,7 @@ enum class RenderbufferFormat: GLenum {
/** /**
* 32bit float depth component and 8bit stencil component. * 32bit float depth component and 8bit stencil component.
* @requires_gl30 %Extension @extension{ARB,depth_buffer_float} * @requires_gl30 Extension @extension{ARB,depth_buffer_float}
* @requires_gles30 Only integral depth textures are available in OpenGL ES * @requires_gles30 Only integral depth textures are available in OpenGL ES
* 2.0. * 2.0.
*/ */

54
src/Magnum/Renderer.h

@ -88,8 +88,8 @@ class MAGNUM_EXPORT Renderer {
* Debug output * Debug output
* @see @ref DebugMessage, @ref DebugMessage::setEnabled(), * @see @ref DebugMessage, @ref DebugMessage::setEnabled(),
* @ref Feature::DebugOutputSynchronous * @ref Feature::DebugOutputSynchronous
* @requires_gl43 %Extension @extension{KHR,debug} * @requires_gl43 Extension @extension{KHR,debug}
* @requires_es_extension %Extension @es_extension{KHR,debug} * @requires_es_extension Extension @es_extension{KHR,debug}
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
DebugOutput = GL_DEBUG_OUTPUT, DebugOutput = GL_DEBUG_OUTPUT,
@ -101,8 +101,8 @@ class MAGNUM_EXPORT Renderer {
* Synchronous debug output. Has effect only if * Synchronous debug output. Has effect only if
* @ref Feature::DebugOutput is enabled. * @ref Feature::DebugOutput is enabled.
* @see @ref DebugMessage * @see @ref DebugMessage
* @requires_gl43 %Extension @extension{KHR,debug} * @requires_gl43 Extension @extension{KHR,debug}
* @requires_es_extension %Extension @es_extension{KHR,debug} * @requires_es_extension Extension @es_extension{KHR,debug}
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
DebugOutputSynchronous = GL_DEBUG_OUTPUT_SYNCHRONOUS, DebugOutputSynchronous = GL_DEBUG_OUTPUT_SYNCHRONOUS,
@ -113,7 +113,7 @@ class MAGNUM_EXPORT Renderer {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* Depth clamping. If enabled, ignores near and far clipping plane. * Depth clamping. If enabled, ignores near and far clipping plane.
* @requires_gl32 %Extension @extension{ARB,depth_clamp} * @requires_gl32 Extension @extension{ARB,depth_clamp}
* @requires_gl Depth clamping is not available in OpenGL ES. * @requires_gl Depth clamping is not available in OpenGL ES.
*/ */
DepthClamp = GL_DEPTH_CLAMP, DepthClamp = GL_DEPTH_CLAMP,
@ -137,7 +137,7 @@ class MAGNUM_EXPORT Renderer {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* sRGB encoding of the default framebuffer * sRGB encoding of the default framebuffer
* @requires_gl30 %Extension @extension{ARB,framebuffer_sRGB} * @requires_gl30 Extension @extension{ARB,framebuffer_sRGB}
* @requires_gl sRGB encoding of the default framebuffer is * @requires_gl sRGB encoding of the default framebuffer is
* implementation-defined in OpenGL ES. * implementation-defined in OpenGL ES.
*/ */
@ -205,7 +205,7 @@ class MAGNUM_EXPORT Renderer {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* Discard primitives before rasterization. * Discard primitives before rasterization.
* @requires_gl30 %Extension @extension{EXT,transform_feedback} * @requires_gl30 Extension @extension{EXT,transform_feedback}
* @requires_gles30 Transform feedback is not available in OpenGL * @requires_gles30 Transform feedback is not available in OpenGL
* ES 2.0. * ES 2.0.
*/ */
@ -222,7 +222,7 @@ class MAGNUM_EXPORT Renderer {
/** /**
* Seamless cube map texture. * Seamless cube map texture.
* @see @ref CubeMapTexture, @ref CubeMapTextureArray * @see @ref CubeMapTexture, @ref CubeMapTextureArray
* @requires_gl32 %Extension @extension{ARB,seamless_cube_map} * @requires_gl32 Extension @extension{ARB,seamless_cube_map}
* @requires_gl Not available in OpenGL ES 2.0, always enabled in * @requires_gl Not available in OpenGL ES 2.0, always enabled in
* OpenGL ES 3.0. * OpenGL ES 3.0.
*/ */
@ -272,7 +272,7 @@ class MAGNUM_EXPORT Renderer {
enum class Hint: GLenum { enum class Hint: GLenum {
/** /**
* Accuracy of derivative calculation in fragment shader. * Accuracy of derivative calculation in fragment shader.
* @requires_gles30 %Extension @es_extension{OES,standard_derivatives} * @requires_gles30 Extension @es_extension{OES,standard_derivatives}
* in OpenGL ES 2.0 * in OpenGL ES 2.0
*/ */
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
@ -363,7 +363,7 @@ class MAGNUM_EXPORT Renderer {
/** /**
* @brief Set front-facing polygon winding * @brief Set front-facing polygon winding
* *
* Initial value is `FrontFace::%CounterClockWise`. * Initial value is `FrontFace::CounterClockWise`.
* @see @ref setFaceCullingMode(), @fn_gl{FrontFace} * @see @ref setFaceCullingMode(), @fn_gl{FrontFace}
*/ */
static void setFrontFace(FrontFace mode); static void setFrontFace(FrontFace mode);
@ -383,7 +383,7 @@ class MAGNUM_EXPORT Renderer {
* @brief Provoking vertex * @brief Provoking vertex
* *
* @see @ref setProvokingVertex() * @see @ref setProvokingVertex()
* @requires_gl32 %Extension @extension{ARB,provoking_vertex}. Older * @requires_gl32 Extension @extension{ARB,provoking_vertex}. Older
* versions behave always like * versions behave always like
* @ref Magnum::Renderer::ProvokingVertex "ProvokingVertex::LastVertexConvention". * @ref Magnum::Renderer::ProvokingVertex "ProvokingVertex::LastVertexConvention".
* @requires_gl OpenGL ES behaves always like * @requires_gl OpenGL ES behaves always like
@ -402,7 +402,7 @@ class MAGNUM_EXPORT Renderer {
* *
* Initial value is @ref ProvokingVertex::LastVertexConvention. * Initial value is @ref ProvokingVertex::LastVertexConvention.
* @see @fn_gl{ProvokingVertex} * @see @fn_gl{ProvokingVertex}
* @requires_gl32 %Extension @extension{ARB,provoking_vertex}. Older * @requires_gl32 Extension @extension{ARB,provoking_vertex}. Older
* versions behave always like the default. * versions behave always like the default.
* @requires_gl OpenGL ES behaves always like the default. * @requires_gl OpenGL ES behaves always like the default.
*/ */
@ -691,14 +691,14 @@ class MAGNUM_EXPORT Renderer {
, ,
/** /**
* `min(source, destination)` * `min(source, destination)`
* @requires_gles30 %Extension @es_extension2{EXT,blend_minmax,blend_minmax} * @requires_gles30 Extension @es_extension2{EXT,blend_minmax,blend_minmax}
* in OpenGL ES 2.0 * in OpenGL ES 2.0
*/ */
Min = GL_MIN, Min = GL_MIN,
/** /**
* `max(source, destination)` * `max(source, destination)`
* @requires_gles30 %Extension @es_extension2{EXT,blend_minmax,blend_minmax} * @requires_gles30 Extension @es_extension2{EXT,blend_minmax,blend_minmax}
* in OpenGL ES 2.0 * in OpenGL ES 2.0
*/ */
Max = GL_MAX Max = GL_MAX
@ -753,7 +753,7 @@ class MAGNUM_EXPORT Renderer {
* Second source color (@f$ RGB = (R_{s1}, G_{s1}, B_{s1}); A = A_{s1} @f$) * Second source color (@f$ RGB = (R_{s1}, G_{s1}, B_{s1}); A = A_{s1} @f$)
* *
* @see @ref AbstractShaderProgram::bindFragmentDataLocationIndexed() * @see @ref AbstractShaderProgram::bindFragmentDataLocationIndexed()
* @requires_gl33 %Extension @extension{ARB,blend_func_extended} * @requires_gl33 Extension @extension{ARB,blend_func_extended}
* @requires_gl Multiple blending inputs are not available in * @requires_gl Multiple blending inputs are not available in
* OpenGL ES. * OpenGL ES.
*/ */
@ -770,7 +770,7 @@ class MAGNUM_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$) * 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() * @see @ref AbstractShaderProgram::bindFragmentDataLocationIndexed()
* @requires_gl33 %Extension @extension{ARB,blend_func_extended} * @requires_gl33 Extension @extension{ARB,blend_func_extended}
* @requires_gl Multiple blending inputs are not available in * @requires_gl Multiple blending inputs are not available in
* OpenGL ES. * OpenGL ES.
*/ */
@ -792,7 +792,7 @@ class MAGNUM_EXPORT Renderer {
* Second source alpha (@f$ RGB = (A_{s1}, A_{s1}, A_{s1}); A = A_{s1} @f$) * Second source alpha (@f$ RGB = (A_{s1}, A_{s1}, A_{s1}); A = A_{s1} @f$)
* *
* @see @ref AbstractShaderProgram::bindFragmentDataLocationIndexed() * @see @ref AbstractShaderProgram::bindFragmentDataLocationIndexed()
* @requires_gl33 %Extension @extension{ARB,blend_func_extended} * @requires_gl33 Extension @extension{ARB,blend_func_extended}
* @requires_gl Multiple blending inputs are not available in * @requires_gl Multiple blending inputs are not available in
* OpenGL ES. * OpenGL ES.
*/ */
@ -809,7 +809,7 @@ class MAGNUM_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$) * 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() * @see @ref AbstractShaderProgram::bindFragmentDataLocationIndexed()
* @requires_gl33 %Extension @extension{ARB,blend_func_extended} * @requires_gl33 Extension @extension{ARB,blend_func_extended}
* @requires_gl Multiple blending inputs are not available in * @requires_gl Multiple blending inputs are not available in
* OpenGL ES. * OpenGL ES.
*/ */
@ -971,7 +971,7 @@ class MAGNUM_EXPORT Renderer {
/** /**
* The framebuffer object is not complete. * The framebuffer object is not complete.
* @see AbstractFramebuffer::checkStatus() * @see AbstractFramebuffer::checkStatus()
* @requires_gl30 %Extension @extension{ARB,framebuffer_object} * @requires_gl30 Extension @extension{ARB,framebuffer_object}
*/ */
InvalidFramebufferOperation = GL_INVALID_FRAMEBUFFER_OPERATION, InvalidFramebufferOperation = GL_INVALID_FRAMEBUFFER_OPERATION,
@ -980,8 +980,8 @@ class MAGNUM_EXPORT Renderer {
/** /**
* Given operation would cause an internal stack to underflow. * Given operation would cause an internal stack to underflow.
* @requires_gl43 %Extension @extension{KHR,debug} * @requires_gl43 Extension @extension{KHR,debug}
* @requires_es_extension %Extension @es_extension2{KHR,debug,debug} * @requires_es_extension Extension @es_extension2{KHR,debug,debug}
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
StackUnderflow = GL_STACK_UNDERFLOW, StackUnderflow = GL_STACK_UNDERFLOW,
@ -991,8 +991,8 @@ class MAGNUM_EXPORT Renderer {
/** /**
* Given operation would cause an internal stack to overflow. * Given operation would cause an internal stack to overflow.
* @requires_gl43 %Extension @extension{KHR,debug} * @requires_gl43 Extension @extension{KHR,debug}
* @requires_es_extension %Extension @es_extension2{KHR,debug,debug} * @requires_es_extension Extension @es_extension2{KHR,debug,debug}
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
StackOverflow = GL_STACK_OVERFLOW StackOverflow = GL_STACK_OVERFLOW
@ -1015,8 +1015,8 @@ class MAGNUM_EXPORT Renderer {
* @brief Graphics reset notification strategy * @brief Graphics reset notification strategy
* *
* @see @ref resetNotificationStrategy() * @see @ref resetNotificationStrategy()
* @requires_extension %Extension @extension{ARB,robustness} * @requires_extension Extension @extension{ARB,robustness}
* @requires_es_extension %Extension @es_extension{EXT,robustness} * @requires_es_extension Extension @es_extension{EXT,robustness}
*/ */
enum class ResetNotificationStrategy: GLint { enum class ResetNotificationStrategy: GLint {
/** /**
@ -1063,8 +1063,8 @@ class MAGNUM_EXPORT Renderer {
* @brief Graphics reset status * @brief Graphics reset status
* *
* @see @ref resetNotificationStrategy(), @ref graphicsResetStatus() * @see @ref resetNotificationStrategy(), @ref graphicsResetStatus()
* @requires_extension %Extension @extension{ARB,robustness} * @requires_extension Extension @extension{ARB,robustness}
* @requires_es_extension %Extension @es_extension{EXT,robustness} * @requires_es_extension Extension @es_extension{EXT,robustness}
*/ */
enum class GraphicsResetStatus: GLenum { enum class GraphicsResetStatus: GLenum {
/** No reset occured since last call. */ /** No reset occured since last call. */

8
src/Magnum/Resource.h

@ -38,7 +38,7 @@
namespace Magnum { namespace Magnum {
/** /**
@brief %Resource state @brief Resource state
@see @ref Resource::state(), @ref ResourceManager::state() @see @ref Resource::state(), @ref ResourceManager::state()
*/ */
@ -106,7 +106,7 @@ namespace Implementation {
} }
/** /**
@brief %Resource reference @brief Resource reference
See @ref ResourceManager for more information. See @ref ResourceManager for more information.
*/ */
@ -149,11 +149,11 @@ class Resource {
/** @brief Move assignment */ /** @brief Move assignment */
Resource<T, U>& operator=(Resource<T, U>&& other); Resource<T, U>& operator=(Resource<T, U>&& other);
/** @brief %Resource key */ /** @brief Resource key */
ResourceKey key() const { return _key; } ResourceKey key() const { return _key; }
/** /**
* @brief %Resource state * @brief Resource state
* *
* @see @ref Resource::operator bool() "operator bool()", @ref ResourceManager::state() * @see @ref Resource::operator bool() "operator bool()", @ref ResourceManager::state()
* @todoc Remove workaround when Doxygen can handle unscoped conversion operators * @todoc Remove workaround when Doxygen can handle unscoped conversion operators

10
src/Magnum/ResourceManager.h

@ -36,7 +36,7 @@
namespace Magnum { namespace Magnum {
/** /**
@brief %Resource data state @brief Resource data state
@see @ref ResourceManager::set(), @ref ResourceState @see @ref ResourceManager::set(), @ref ResourceState
*/ */
@ -70,7 +70,7 @@ enum class ResourceDataState: UnsignedByte {
}; };
/** /**
@brief %Resource policy @brief Resource policy
@see @ref ResourceManager::set(), @ref ResourceManager::free() @see @ref ResourceManager::set(), @ref ResourceManager::free()
*/ */
@ -158,7 +158,7 @@ template<class T> class ResourceManagerData {
} }
/** /**
@brief %Resource manager @brief Resource manager
Provides storage for arbitrary set of types, accessible globally using Provides storage for arbitrary set of types, accessible globally using
@ref instance(). @ref instance().
@ -184,7 +184,7 @@ can be deleted by calling @ref free() if nothing references them anymore, and
reference counted resources, which are deleted as soon as the last reference reference counted resources, which are deleted as soon as the last reference
to them is removed. to them is removed.
%Resource state and policy is configured when setting the resource data in Resource state and policy is configured when setting the resource data in
@ref set() and can be changed each time the data are updated, although already @ref set() and can be changed each time the data are updated, although already
final resources cannot obviously be set as mutable again. final resources cannot obviously be set as mutable again.
@ -282,7 +282,7 @@ template<class... Types> class ResourceManager: private Implementation::Resource
} }
/** /**
* @brief %Resource state * @brief Resource state
* *
* @see @ref set(), @ref Resource::state() * @see @ref set(), @ref Resource::state()
*/ */

20
src/Magnum/SampleQuery.h

@ -69,7 +69,7 @@ q.endConditionalRender();
@endcode @endcode
@see @ref PrimitiveQuery, @ref TimeQuery @see @ref PrimitiveQuery, @ref TimeQuery
@requires_gles30 %Extension @es_extension{EXT,occlusion_query_boolean} in @requires_gles30 Extension @es_extension{EXT,occlusion_query_boolean} in
OpenGL ES 2.0 OpenGL ES 2.0
*/ */
class SampleQuery: public AbstractQuery { class SampleQuery: public AbstractQuery {
@ -86,7 +86,7 @@ class SampleQuery: public AbstractQuery {
/** /**
* Whether any samples passed from fragment shader * Whether any samples passed from fragment shader
* @requires_gl33 %Extension @extension{ARB,occlusion_query2} * @requires_gl33 Extension @extension{ARB,occlusion_query2}
*/ */
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
AnySamplesPassed = GL_ANY_SAMPLES_PASSED, AnySamplesPassed = GL_ANY_SAMPLES_PASSED,
@ -99,7 +99,7 @@ class SampleQuery: public AbstractQuery {
* *
* An implementation may choose a less precise version of the * An implementation may choose a less precise version of the
* test at the expense of some false positives. * test at the expense of some false positives.
* @requires_gl43 %Extension @extension{ARB,ES3_compatibility} * @requires_gl43 Extension @extension{ARB,ES3_compatibility}
*/ */
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
AnySamplesPassedConservative = GL_ANY_SAMPLES_PASSED_CONSERVATIVE AnySamplesPassedConservative = GL_ANY_SAMPLES_PASSED_CONSERVATIVE
@ -112,7 +112,7 @@ class SampleQuery: public AbstractQuery {
/** /**
* @brief Conditional render mode * @brief Conditional render mode
* *
* @requires_gl30 %Extension @extension{NV,conditional_render} * @requires_gl30 Extension @extension{NV,conditional_render}
* @requires_gl Conditional rendering is not available in OpenGL ES. * @requires_gl Conditional rendering is not available in OpenGL ES.
*/ */
enum class ConditionalRenderMode: GLenum { enum class ConditionalRenderMode: GLenum {
@ -125,7 +125,7 @@ class SampleQuery: public AbstractQuery {
/** /**
* If query result is not yet available, waits for it and then * If query result is not yet available, waits for it and then
* begins rendering only if result is zero. * begins rendering only if result is zero.
* @requires_gl45 %Extension @extension{ARB,conditional_render_inverted} * @requires_gl45 Extension @extension{ARB,conditional_render_inverted}
*/ */
WaitInverted = GL_QUERY_WAIT_INVERTED, WaitInverted = GL_QUERY_WAIT_INVERTED,
@ -138,7 +138,7 @@ class SampleQuery: public AbstractQuery {
/** /**
* If query result is not yet available, begins rendering like if * If query result is not yet available, begins rendering like if
* the result was zero. * the result was zero.
* @requires_gl45 %Extension @extension{ARB,conditional_render_inverted} * @requires_gl45 Extension @extension{ARB,conditional_render_inverted}
*/ */
NoWaitInverted = GL_QUERY_NO_WAIT_INVERTED, NoWaitInverted = GL_QUERY_NO_WAIT_INVERTED,
@ -152,7 +152,7 @@ class SampleQuery: public AbstractQuery {
* The same as @ref ConditionalRenderMode::WaitInverted, but * The same as @ref ConditionalRenderMode::WaitInverted, but
* regions untouched by the sample query may not be rendered at * regions untouched by the sample query may not be rendered at
* all. * all.
* @requires_gl45 %Extension @extension{ARB,conditional_render_inverted} * @requires_gl45 Extension @extension{ARB,conditional_render_inverted}
*/ */
ByRegionWaitInverted = GL_QUERY_BY_REGION_WAIT_INVERTED, ByRegionWaitInverted = GL_QUERY_BY_REGION_WAIT_INVERTED,
@ -166,7 +166,7 @@ class SampleQuery: public AbstractQuery {
* The same as @ref ConditionalRenderMode::NoWaitInverted, but * The same as @ref ConditionalRenderMode::NoWaitInverted, but
* regions untouched by the sample query may not be rendered at * regions untouched by the sample query may not be rendered at
* all. * all.
* @requires_gl45 %Extension @extension{ARB,conditional_render_inverted} * @requires_gl45 Extension @extension{ARB,conditional_render_inverted}
*/ */
ByRegionNoWaitInverted = GL_QUERY_BY_REGION_NO_WAIT_INVERTED ByRegionNoWaitInverted = GL_QUERY_BY_REGION_NO_WAIT_INVERTED
}; };
@ -210,7 +210,7 @@ class SampleQuery: public AbstractQuery {
* @brief Begin conditional rendering based on result value * @brief Begin conditional rendering based on result value
* *
* @see @fn_gl{BeginConditionalRender} * @see @fn_gl{BeginConditionalRender}
* @requires_gl30 %Extension @extension{NV,conditional_render} * @requires_gl30 Extension @extension{NV,conditional_render}
* @requires_gl Conditional rendering is not available in OpenGL ES. * @requires_gl Conditional rendering is not available in OpenGL ES.
*/ */
void beginConditionalRender(ConditionalRenderMode mode) { void beginConditionalRender(ConditionalRenderMode mode) {
@ -221,7 +221,7 @@ class SampleQuery: public AbstractQuery {
* @brief End conditional render * @brief End conditional render
* *
* @see @fn_gl{EndConditionalRender} * @see @fn_gl{EndConditionalRender}
* @requires_gl30 %Extension @extension{NV,conditional_render} * @requires_gl30 Extension @extension{NV,conditional_render}
* @requires_gl Conditional rendering is not available in OpenGL ES. * @requires_gl Conditional rendering is not available in OpenGL ES.
*/ */
void endConditionalRender() { void endConditionalRender() {

20
src/Magnum/Sampler.h

@ -36,7 +36,7 @@
namespace Magnum { namespace Magnum {
/** /**
@brief %Texture sampler @brief Texture sampler
@see @ref Texture, @ref TextureArray, @ref CubeMapTexture, @see @ref Texture, @ref TextureArray, @ref CubeMapTexture,
@ref CubeMapTextureArray, @ref RectangleTexture @ref CubeMapTextureArray, @ref RectangleTexture
@ -44,7 +44,7 @@ namespace Magnum {
class MAGNUM_EXPORT Sampler { class MAGNUM_EXPORT Sampler {
public: public:
/** /**
* @brief %Texture filtering * @brief Texture filtering
* *
* @see @ref Texture::setMinificationFilter() "*Texture::setMinificationFilter()", * @see @ref Texture::setMinificationFilter() "*Texture::setMinificationFilter()",
* @ref Texture::setMagnificationFilter() "*Texture::setMagnificationFilter()" * @ref Texture::setMagnificationFilter() "*Texture::setMagnificationFilter()"
@ -54,7 +54,7 @@ class MAGNUM_EXPORT Sampler {
/** /**
* Linear interpolation filtering. * Linear interpolation filtering.
* @requires_gles30 %Extension @es_extension{OES,texture_float_linear} / * @requires_gles30 Extension @es_extension{OES,texture_float_linear} /
* @es_extension2{OES,texture_half_float_linear,OES_texture_float_linear} * @es_extension2{OES,texture_half_float_linear,OES_texture_float_linear}
* for linear interpolation of textures with * for linear interpolation of textures with
* @ref Magnum::TextureFormat "TextureFormat::HalfFloat" / * @ref Magnum::TextureFormat "TextureFormat::HalfFloat" /
@ -80,7 +80,7 @@ class MAGNUM_EXPORT Sampler {
/** /**
* Linear interpolation of nearest mip levels. **Unavailable on * Linear interpolation of nearest mip levels. **Unavailable on
* rectangle textures.** * rectangle textures.**
* @requires_gles30 %Extension @es_extension{OES,texture_float_linear} / * @requires_gles30 Extension @es_extension{OES,texture_float_linear} /
* @es_extension2{OES,texture_half_float_linear,OES_texture_float_linear} * @es_extension2{OES,texture_half_float_linear,OES_texture_float_linear}
* for linear interpolation of textures with * for linear interpolation of textures with
* @ref Magnum::TextureFormat "TextureFormat::HalfFloat" / * @ref Magnum::TextureFormat "TextureFormat::HalfFloat" /
@ -91,7 +91,7 @@ class MAGNUM_EXPORT Sampler {
}; };
/** /**
* @brief %Texture wrapping * @brief Texture wrapping
* *
* @see @ref Texture::setWrapping() "*Texture::setWrapping()" * @see @ref Texture::setWrapping() "*Texture::setWrapping()"
*/ */
@ -114,7 +114,7 @@ class MAGNUM_EXPORT Sampler {
* Clamp to border color. Coordinates out of range will be clamped * Clamp to border color. Coordinates out of range will be clamped
* to border color (set with * to border color (set with
* @ref Texture::setBorderColor() "*Texture::setBorderColor()"). * @ref Texture::setBorderColor() "*Texture::setBorderColor()").
* @requires_es_extension %Extension @es_extension{NV,texture_border_clamp} * @requires_es_extension Extension @es_extension{NV,texture_border_clamp}
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
ClampToBorder = GL_CLAMP_TO_BORDER, ClampToBorder = GL_CLAMP_TO_BORDER,
@ -126,7 +126,7 @@ class MAGNUM_EXPORT Sampler {
/** /**
* Mirror the texture once in negative coordinates and clamp to * Mirror the texture once in negative coordinates and clamp to
* edge after that. **Unavailable on rectangle textures.** * edge after that. **Unavailable on rectangle textures.**
* @requires_gl44 %Extension @extension{ARB,texture_mirror_clamp_to_edge}, * @requires_gl44 Extension @extension{ARB,texture_mirror_clamp_to_edge},
* @extension{ATI,texture_mirror_once} or @extension{EXT,texture_mirror_clamp} * @extension{ATI,texture_mirror_once} or @extension{EXT,texture_mirror_clamp}
* @requires_gl Only separate @ref Magnum::Sampler::Wrapping "Wrapping::MirroredRepeat" * @requires_gl Only separate @ref Magnum::Sampler::Wrapping "Wrapping::MirroredRepeat"
* or @ref Magnum::Sampler::Wrapping "Wrapping::ClampToEdge" * or @ref Magnum::Sampler::Wrapping "Wrapping::ClampToEdge"
@ -141,7 +141,7 @@ class MAGNUM_EXPORT Sampler {
* *
* @see @ref CompareFunction, * @see @ref CompareFunction,
* @ref Texture::setCompareMode() "*Texture::setCompareMode()" * @ref Texture::setCompareMode() "*Texture::setCompareMode()"
* @requires_gles30 %Extension @es_extension{EXT,shadow_samplers} * @requires_gles30 Extension @es_extension{EXT,shadow_samplers}
*/ */
enum class CompareMode: GLenum { enum class CompareMode: GLenum {
/** Directly output the depth value */ /** Directly output the depth value */
@ -163,7 +163,7 @@ class MAGNUM_EXPORT Sampler {
* @ref CompareMode::CompareRefToTexture. * @ref CompareMode::CompareRefToTexture.
* @see @ref Texture::setCompareFunction() "*Texture::setCompareFunction()", * @see @ref Texture::setCompareFunction() "*Texture::setCompareFunction()",
* @ref Texture::setCompareMode() "*Texture::setCompareMode()" * @ref Texture::setCompareMode() "*Texture::setCompareMode()"
* @requires_gles30 %Extension @es_extension{EXT,shadow_samplers} * @requires_gles30 Extension @es_extension{EXT,shadow_samplers}
*/ */
enum class CompareFunction: GLenum { enum class CompareFunction: GLenum {
Never = GL_NEVER, /**< Always `0.0` */ Never = GL_NEVER, /**< Always `0.0` */
@ -211,7 +211,7 @@ class MAGNUM_EXPORT Sampler {
* @brief Depth/stencil texture mode * @brief Depth/stencil texture mode
* *
* @see @ref Texture::setDepthStencilMode() "*Texture::setDepthStencilMode()" * @see @ref Texture::setDepthStencilMode() "*Texture::setDepthStencilMode()"
* @requires_gl43 %Extension @extension{ARB,stencil_texturing} * @requires_gl43 Extension @extension{ARB,stencil_texturing}
* @requires_gles31 Stencil texturing is not available in OpenGL ES 3.0 * @requires_gles31 Stencil texturing is not available in OpenGL ES 3.0
* and older * and older
*/ */

22
src/Magnum/Shader.h

@ -40,19 +40,19 @@
namespace Magnum { namespace Magnum {
/** /**
@brief %Shader @brief Shader
See @ref AbstractShaderProgram for usage information. See @ref AbstractShaderProgram for usage information.
## Performance optimizations ## Performance optimizations
%Shader limits and implementation-defined values (such as @ref maxUniformComponents()) Shader limits and implementation-defined values (such as @ref maxUniformComponents())
are cached, so repeated queries don't result in repeated @fn_gl{Get} calls. are cached, so repeated queries don't result in repeated @fn_gl{Get} calls.
*/ */
class MAGNUM_EXPORT Shader: public AbstractObject { class MAGNUM_EXPORT Shader: public AbstractObject {
public: public:
/** /**
* @brief %Shader type * @brief Shader type
* *
* @see @ref Shader(Version, Type), * @see @ref Shader(Version, Type),
* @ref maxAtomicCounterBuffers(), * @ref maxAtomicCounterBuffers(),
@ -70,21 +70,21 @@ class MAGNUM_EXPORT Shader: public AbstractObject {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* Tessellation control shader * Tessellation control shader
* @requires_gl40 %Extension @extension{ARB,tessellation_shader} * @requires_gl40 Extension @extension{ARB,tessellation_shader}
* @requires_gl Tessellation shaders are not available in OpenGL ES. * @requires_gl Tessellation shaders are not available in OpenGL ES.
*/ */
TessellationControl = GL_TESS_CONTROL_SHADER, TessellationControl = GL_TESS_CONTROL_SHADER,
/** /**
* Tessellation evaluation shader * Tessellation evaluation shader
* @requires_gl40 %Extension @extension{ARB,tessellation_shader} * @requires_gl40 Extension @extension{ARB,tessellation_shader}
* @requires_gl Tessellation shaders are not available in OpenGL ES. * @requires_gl Tessellation shaders are not available in OpenGL ES.
*/ */
TessellationEvaluation = GL_TESS_EVALUATION_SHADER, TessellationEvaluation = GL_TESS_EVALUATION_SHADER,
/** /**
* Geometry shader * Geometry shader
* @requires_gl32 %Extension @extension{ARB,geometry_shader4} * @requires_gl32 Extension @extension{ARB,geometry_shader4}
* @requires_gl Geometry shaders are not available in OpenGL ES. * @requires_gl Geometry shaders are not available in OpenGL ES.
*/ */
Geometry = GL_GEOMETRY_SHADER, Geometry = GL_GEOMETRY_SHADER,
@ -93,7 +93,7 @@ class MAGNUM_EXPORT Shader: public AbstractObject {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* Compute shader * Compute shader
* @requires_gl43 %Extension @extension{ARB,compute_shader} * @requires_gl43 Extension @extension{ARB,compute_shader}
* @requires_gles31 Compute shaders are not available in OpenGL ES * @requires_gles31 Compute shaders are not available in OpenGL ES
* 3.0 and older * 3.0 and older
*/ */
@ -455,7 +455,7 @@ class MAGNUM_EXPORT Shader: public AbstractObject {
/** /**
* @brief Constructor * @brief Constructor
* @param version Target version * @param version Target version
* @param type %Shader type * @param type Shader type
* *
* Creates empty OpenGL shader and adds @c \#version directive * Creates empty OpenGL shader and adds @c \#version directive
* corresponding to @p version parameter at the beginning. If * corresponding to @p version parameter at the beginning. If
@ -489,7 +489,7 @@ class MAGNUM_EXPORT Shader: public AbstractObject {
GLuint id() const { return _id; } GLuint id() const { return _id; }
/** /**
* @brief %Shader label * @brief Shader label
* *
* The result is *not* cached, repeated queries will result in repeated * The result is *not* cached, repeated queries will result in repeated
* OpenGL calls. If OpenGL 4.3 is not supported and neither * OpenGL calls. If OpenGL 4.3 is not supported and neither
@ -521,10 +521,10 @@ class MAGNUM_EXPORT Shader: public AbstractObject {
return setLabelInternal(label); return setLabelInternal(label);
} }
/** @brief %Shader type */ /** @brief Shader type */
Type type() const { return _type; } Type type() const { return _type; }
/** @brief %Shader sources */ /** @brief Shader sources */
std::vector<std::string> sources() const; std::vector<std::string> sources() const;
/** /**

56
src/Magnum/Texture.h

@ -57,7 +57,7 @@ namespace Implementation {
} }
/** /**
@brief %Texture @brief Texture
Template class for one- to three-dimensional textures. See also Template class for one- to three-dimensional textures. See also
@ref AbstractTexture documentation for more information. @ref AbstractTexture documentation for more information.
@ -96,17 +96,17 @@ in shaders.
@see @ref Texture1D, @ref Texture2D, @ref Texture3D, @ref TextureArray, @see @ref Texture1D, @ref Texture2D, @ref Texture3D, @ref TextureArray,
@ref CubeMapTexture, @ref CubeMapTextureArray, @ref RectangleTexture, @ref CubeMapTexture, @ref CubeMapTextureArray, @ref RectangleTexture,
@ref BufferTexture, @ref MultisampleTexture @ref BufferTexture, @ref MultisampleTexture
@requires_gles30 %Extension @es_extension{OES,texture_3D} for 3D textures in @requires_gles30 Extension @es_extension{OES,texture_3D} for 3D textures in
OpenGL ES 2.0 OpenGL ES 2.0
@requires_gl 1D textures are not available in OpenGL ES, only 2D and 3D ones. @requires_gl 1D textures are not available in OpenGL ES, only 2D and 3D ones.
*/ */
template<UnsignedInt dimensions> class Texture: public AbstractTexture { template<UnsignedInt dimensions> class Texture: public AbstractTexture {
public: public:
static const UnsignedInt Dimensions = dimensions; /**< @brief %Texture dimension count */ static const UnsignedInt Dimensions = dimensions; /**< @brief Texture dimension count */
#ifdef MAGNUM_BUILD_DEPRECATED #ifdef MAGNUM_BUILD_DEPRECATED
/** /**
* @brief %Texture target * @brief Texture target
* *
* @deprecated Use dedicated classes instead, see documentation of * @deprecated Use dedicated classes instead, see documentation of
* particular enum value for more information. * particular enum value for more information.
@ -178,7 +178,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
*/ */
explicit CORRADE_DEPRECATED("use the parameterless constructor or dedicated TextureArray, MultisampleTexture, RectangleTexture classes instead") Texture(Target target): AbstractTexture(GLenum(target)) {} explicit CORRADE_DEPRECATED("use the parameterless constructor or dedicated TextureArray, MultisampleTexture, RectangleTexture classes instead") Texture(Target target): AbstractTexture(GLenum(target)) {}
/** @brief %Texture target /** @brief Texture target
* @deprecated Use dedicated @ref Magnum::Texture "Texture", * @deprecated Use dedicated @ref Magnum::Texture "Texture",
* @ref Magnum::TextureArray "TextureArray", * @ref Magnum::TextureArray "TextureArray",
* @ref Magnum::MultisampleTexture "MultisampleTexture", * @ref Magnum::MultisampleTexture "MultisampleTexture",
@ -190,7 +190,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* @brief %Image size in given mip level * @brief Image size in given mip level
* *
* The result is not cached in any way. If * The result is not cached in any way. If
* @extension{EXT,direct_state_access} is not available, the texture * @extension{EXT,direct_state_access} is not available, the texture
@ -199,7 +199,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* @fn_gl{GetTexLevelParameter} or @fn_gl_extension{GetTextureLevelParameter,EXT,direct_state_access} * @fn_gl{GetTexLevelParameter} or @fn_gl_extension{GetTextureLevelParameter,EXT,direct_state_access}
* with @def_gl{TEXTURE_WIDTH}, @def_gl{TEXTURE_HEIGHT} or * with @def_gl{TEXTURE_WIDTH}, @def_gl{TEXTURE_HEIGHT} or
* @def_gl{TEXTURE_DEPTH} * @def_gl{TEXTURE_DEPTH}
* @requires_gles31 %Texture image size queries are not available in * @requires_gles31 Texture image size queries are not available in
* OpenGL ES 3.0 and older. * OpenGL ES 3.0 and older.
*/ */
VectorTypeFor<dimensions, Int> imageSize(Int level) { VectorTypeFor<dimensions, Int> imageSize(Int level) {
@ -239,7 +239,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and @fn_gl{TexParameter} * @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and @fn_gl{TexParameter}
* or @fn_gl_extension{TextureParameter,EXT,direct_state_access} * or @fn_gl_extension{TextureParameter,EXT,direct_state_access}
* with @def_gl{TEXTURE_MAX_LEVEL} * with @def_gl{TEXTURE_MAX_LEVEL}
* @requires_gles30 %Extension @es_extension{APPLE,texture_max_level}, * @requires_gles30 Extension @es_extension{APPLE,texture_max_level},
* otherwise the max level is always set to largest possible value * otherwise the max level is always set to largest possible value
* in OpenGL ES 2.0. * in OpenGL ES 2.0.
*/ */
@ -304,7 +304,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* @fn_gl{BindTexture} and @fn_gl{TexParameter} or * @fn_gl{BindTexture} and @fn_gl{TexParameter} or
* @fn_gl_extension{TextureParameter,EXT,direct_state_access} with * @fn_gl_extension{TextureParameter,EXT,direct_state_access} with
* @def_gl{TEXTURE_MIN_LOD} * @def_gl{TEXTURE_MIN_LOD}
* @requires_gles30 %Texture LOD parameters are not available in OpenGL * @requires_gles30 Texture LOD parameters are not available in OpenGL
* ES 2.0. * ES 2.0.
*/ */
Texture<dimensions>& setMinLod(Float lod) { Texture<dimensions>& setMinLod(Float lod) {
@ -324,7 +324,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* @fn_gl{BindTexture} and @fn_gl{TexParameter} or * @fn_gl{BindTexture} and @fn_gl{TexParameter} or
* @fn_gl_extension{TextureParameter,EXT,direct_state_access} with * @fn_gl_extension{TextureParameter,EXT,direct_state_access} with
* @def_gl{TEXTURE_MAX_LOD} * @def_gl{TEXTURE_MAX_LOD}
* @requires_gles30 %Texture LOD parameters are not available in OpenGL * @requires_gles30 Texture LOD parameters are not available in OpenGL
* ES 2.0. * ES 2.0.
*/ */
Texture<dimensions>& setMaxLod(Float lod) { Texture<dimensions>& setMaxLod(Float lod) {
@ -346,7 +346,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and @fn_gl{TexParameter} * @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and @fn_gl{TexParameter}
* or @fn_gl_extension{TextureParameter,EXT,direct_state_access} * or @fn_gl_extension{TextureParameter,EXT,direct_state_access}
* with @def_gl{TEXTURE_LOD_BIAS} * with @def_gl{TEXTURE_LOD_BIAS}
* @requires_gl %Texture LOD bias can be specified only directly in * @requires_gl Texture LOD bias can be specified only directly in
* fragment shader in OpenGL ES. * fragment shader in OpenGL ES.
*/ */
Texture<dimensions>& setLodBias(Float bias) { Texture<dimensions>& setLodBias(Float bias) {
@ -387,7 +387,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* and @fn_gl{TexParameter} or * and @fn_gl{TexParameter} or
* @fn_gl_extension{TextureParameter,EXT,direct_state_access} with * @fn_gl_extension{TextureParameter,EXT,direct_state_access} with
* @def_gl{TEXTURE_BORDER_COLOR} * @def_gl{TEXTURE_BORDER_COLOR}
* @requires_es_extension %Extension @es_extension{NV,texture_border_clamp} * @requires_es_extension Extension @es_extension{NV,texture_border_clamp}
*/ */
Texture<dimensions>& setBorderColor(const Color4& color) { Texture<dimensions>& setBorderColor(const Color4& color) {
AbstractTexture::setBorderColor(color); AbstractTexture::setBorderColor(color);
@ -406,7 +406,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* @see @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and @fn_gl{TexParameter} * @see @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and @fn_gl{TexParameter}
* or @fn_gl_extension{TextureParameter,EXT,direct_state_access} * or @fn_gl_extension{TextureParameter,EXT,direct_state_access}
* with @def_gl{TEXTURE_BORDER_COLOR} * with @def_gl{TEXTURE_BORDER_COLOR}
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gl Border is available only for float textures in OpenGL * @requires_gl Border is available only for float textures in OpenGL
* ES. * ES.
*/ */
@ -416,7 +416,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
} }
/** @overload /** @overload
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gl Border is available only for float textures in OpenGL * @requires_gl Border is available only for float textures in OpenGL
* ES. * ES.
*/ */
@ -456,7 +456,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* @fn_gl{TexParameter} or * @fn_gl{TexParameter} or
* @fn_gl_extension{TextureParameter,EXT,direct_state_access} with * @fn_gl_extension{TextureParameter,EXT,direct_state_access} with
* @def_gl{TEXTURE_SRGB_DECODE_EXT} * @def_gl{TEXTURE_SRGB_DECODE_EXT}
* @requires_extension %Extension @extension{EXT,texture_sRGB_decode} * @requires_extension Extension @extension{EXT,texture_sRGB_decode}
* @requires_es_extension OpenGL ES 3.0 or extension * @requires_es_extension OpenGL ES 3.0 or extension
* @es_extension{EXT,sRGB} and * @es_extension{EXT,sRGB} and
* @es_extension2{EXT,texture_sRGB_decode,texture_sRGB_decode} * @es_extension2{EXT,texture_sRGB_decode,texture_sRGB_decode}
@ -486,8 +486,8 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* @def_gl{TEXTURE_SWIZZLE_RGBA} (or @def_gl{TEXTURE_SWIZZLE_R}, * @def_gl{TEXTURE_SWIZZLE_RGBA} (or @def_gl{TEXTURE_SWIZZLE_R},
* @def_gl{TEXTURE_SWIZZLE_G}, @def_gl{TEXTURE_SWIZZLE_B} and * @def_gl{TEXTURE_SWIZZLE_G}, @def_gl{TEXTURE_SWIZZLE_B} and
* @def_gl{TEXTURE_SWIZZLE_A} separately in OpenGL ES) * @def_gl{TEXTURE_SWIZZLE_A} separately in OpenGL ES)
* @requires_gl33 %Extension @extension{ARB,texture_swizzle} * @requires_gl33 Extension @extension{ARB,texture_swizzle}
* @requires_gles30 %Texture swizzle is not available in OpenGL ES 2.0. * @requires_gles30 Texture swizzle is not available in OpenGL ES 2.0.
*/ */
template<char r, char g, char b, char a> Texture<dimensions>& setSwizzle() { template<char r, char g, char b, char a> Texture<dimensions>& setSwizzle() {
AbstractTexture::setSwizzle<r, g, b, a>(); AbstractTexture::setSwizzle<r, g, b, a>();
@ -507,7 +507,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* @fn_gl{BindTexture} and @fn_gl{TexParameter} or * @fn_gl{BindTexture} and @fn_gl{TexParameter} or
* @fn_gl_extension{TextureParameter,EXT,direct_state_access} with * @fn_gl_extension{TextureParameter,EXT,direct_state_access} with
* @def_gl{TEXTURE_COMPARE_MODE} * @def_gl{TEXTURE_COMPARE_MODE}
* @requires_gles30 %Extension @es_extension{EXT,shadow_samplers} * @requires_gles30 Extension @es_extension{EXT,shadow_samplers}
*/ */
Texture<dimensions>& setCompareMode(Sampler::CompareMode mode) { Texture<dimensions>& setCompareMode(Sampler::CompareMode mode) {
AbstractTexture::setCompareMode(mode); AbstractTexture::setCompareMode(mode);
@ -528,7 +528,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* @fn_gl{BindTexture} and @fn_gl{TexParameter} or * @fn_gl{BindTexture} and @fn_gl{TexParameter} or
* @fn_gl_extension{TextureParameter,EXT,direct_state_access} with * @fn_gl_extension{TextureParameter,EXT,direct_state_access} with
* @def_gl{TEXTURE_COMPARE_FUNC} * @def_gl{TEXTURE_COMPARE_FUNC}
* @requires_gles30 %Extension @es_extension{EXT,shadow_samplers} * @requires_gles30 Extension @es_extension{EXT,shadow_samplers}
*/ */
Texture<dimensions>& setCompareFunction(Sampler::CompareFunction function) { Texture<dimensions>& setCompareFunction(Sampler::CompareFunction function) {
AbstractTexture::setCompareFunction(function); AbstractTexture::setCompareFunction(function);
@ -548,7 +548,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* @see @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and @fn_gl{TexParameter} * @see @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and @fn_gl{TexParameter}
* or @fn_gl_extension{TextureParameter,EXT,direct_state_access} * or @fn_gl_extension{TextureParameter,EXT,direct_state_access}
* with @def_gl{DEPTH_STENCIL_TEXTURE_MODE} * with @def_gl{DEPTH_STENCIL_TEXTURE_MODE}
* @requires_gl43 %Extension @extension{ARB,stencil_texturing} * @requires_gl43 Extension @extension{ARB,stencil_texturing}
* @requires_gles31 Stencil texturing is not available in OpenGL ES 3.0 * @requires_gles31 Stencil texturing is not available in OpenGL ES 3.0
* and older. * and older.
*/ */
@ -599,9 +599,9 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
/** /**
* @brief Read given mip level of texture to image * @brief Read given mip level of texture to image
* @param level Mip level * @param level Mip level
* @param image %Image where to put the data * @param image Image where to put the data
* *
* %Image parameters like format and type of pixel data are taken from * Image parameters like format and type of pixel data are taken from
* given image, image size is taken from the texture using * given image, image size is taken from the texture using
* @ref imageSize(). * @ref imageSize().
* *
@ -617,7 +617,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* with @def_gl{TEXTURE_WIDTH}, @def_gl{TEXTURE_HEIGHT} or @def_gl{TEXTURE_DEPTH}, * with @def_gl{TEXTURE_WIDTH}, @def_gl{TEXTURE_HEIGHT} or @def_gl{TEXTURE_DEPTH},
* then @fn_gl{GetTexImage}, @fn_gl_extension{GetTextureImage,EXT,direct_state_access} * then @fn_gl{GetTexImage}, @fn_gl_extension{GetTextureImage,EXT,direct_state_access}
* or @fn_gl_extension{GetnTexImage,ARB,robustness} * or @fn_gl_extension{GetnTexImage,ARB,robustness}
* @requires_gl %Texture image queries are not available in OpenGL ES. * @requires_gl Texture image queries are not available in OpenGL ES.
*/ */
void image(Int level, Image<dimensions>& image) { void image(Int level, Image<dimensions>& image) {
AbstractTexture::image<dimensions>(_target, level, image); AbstractTexture::image<dimensions>(_target, level, image);
@ -626,11 +626,11 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
/** /**
* @brief Read given mip level of texture to buffer image * @brief Read given mip level of texture to buffer image
* @param level Mip level * @param level Mip level
* @param image %Buffer image where to put the data * @param image Buffer image where to put the data
* @param usage %Buffer usage * @param usage Buffer usage
* *
* See @ref image(Int, Image&) for more information. * See @ref image(Int, Image&) for more information.
* @requires_gl %Texture image queries are not available in OpenGL ES. * @requires_gl Texture image queries are not available in OpenGL ES.
* @todo Make it more flexible (usable with * @todo Make it more flexible (usable with
* @extension{ARB,buffer_storage}, avoiding relocations...) * @extension{ARB,buffer_storage}, avoiding relocations...)
*/ */
@ -727,7 +727,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* @see @ref setMinificationFilter(), @fn_gl{ActiveTexture}, * @see @ref setMinificationFilter(), @fn_gl{ActiveTexture},
* @fn_gl{BindTexture} and @fn_gl{GenerateMipmap} or * @fn_gl{BindTexture} and @fn_gl{GenerateMipmap} or
* @fn_gl_extension{GenerateTextureMipmap,EXT,direct_state_access} * @fn_gl_extension{GenerateTextureMipmap,EXT,direct_state_access}
* @requires_gl30 %Extension @extension{ARB,framebuffer_object} * @requires_gl30 Extension @extension{ARB,framebuffer_object}
*/ */
Texture<dimensions>& generateMipmap() { Texture<dimensions>& generateMipmap() {
AbstractTexture::generateMipmap(); AbstractTexture::generateMipmap();
@ -786,7 +786,7 @@ typedef Texture<2> Texture2D;
/** /**
@brief Three-dimensional texture @brief Three-dimensional texture
@requires_gles30 %Extension @es_extension{OES,texture_3D} in OpenGL ES 2.0 @requires_gles30 Extension @es_extension{OES,texture_3D} in OpenGL ES 2.0
*/ */
typedef Texture<3> Texture3D; typedef Texture<3> Texture3D;

18
src/Magnum/TextureArray.h

@ -48,7 +48,7 @@ namespace Implementation {
} }
/** /**
@brief %Texture array @brief Texture array
Template class for one- and two-dimensional texture arrays. See also Template class for one- and two-dimensional texture arrays. See also
@ref AbstractTexture documentation for more information. @ref AbstractTexture documentation for more information.
@ -87,14 +87,14 @@ documentation for more information about usage in shaders.
@see @ref Texture1DArray, @ref Texture2DArray, @ref Texture, @see @ref Texture1DArray, @ref Texture2DArray, @ref Texture,
@ref CubeMapTexture, @ref CubeMapTextureArray, @ref RectangleTexture, @ref CubeMapTexture, @ref CubeMapTextureArray, @ref RectangleTexture,
@ref BufferTexture, @ref MultisampleTexture @ref BufferTexture, @ref MultisampleTexture
@requires_gl30 %Extension @extension{EXT,texture_array} @requires_gl30 Extension @extension{EXT,texture_array}
@requires_gles30 %Array textures are not available in OpenGL ES 2.0. @requires_gles30 Array textures are not available in OpenGL ES 2.0.
@requires_gl 1D array textures are not available in OpenGL ES, only 2D ones. @requires_gl 1D array textures are not available in OpenGL ES, only 2D ones.
@todo Fix this when @es_extension{NV,texture_array} is in ES2 extension headers @todo Fix this when @es_extension{NV,texture_array} is in ES2 extension headers
*/ */
template<UnsignedInt dimensions> class TextureArray: public AbstractTexture { template<UnsignedInt dimensions> class TextureArray: public AbstractTexture {
public: public:
static const UnsignedInt Dimensions = dimensions; /**< @brief %Texture dimension count */ static const UnsignedInt Dimensions = dimensions; /**< @brief Texture dimension count */
/** /**
* @brief Max supported texture array size * @brief Max supported texture array size
@ -217,7 +217,7 @@ template<UnsignedInt dimensions> class TextureArray: public AbstractTexture {
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* See @ref Texture::setCompareMode() for more information. * See @ref Texture::setCompareMode() for more information.
* @requires_gles30 %Extension @es_extension{EXT,shadow_samplers} and * @requires_gles30 Extension @es_extension{EXT,shadow_samplers} and
* @es_extension{NV,shadow_samplers_array} * @es_extension{NV,shadow_samplers_array}
*/ */
TextureArray<dimensions>& setCompareMode(Sampler::CompareMode mode) { TextureArray<dimensions>& setCompareMode(Sampler::CompareMode mode) {
@ -230,7 +230,7 @@ template<UnsignedInt dimensions> class TextureArray: public AbstractTexture {
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* See @ref Texture::setCompareFunction() for more information. * See @ref Texture::setCompareFunction() for more information.
* @requires_gles30 %Extension @es_extension{EXT,shadow_samplers} and * @requires_gles30 Extension @es_extension{EXT,shadow_samplers} and
* @es_extension{NV,shadow_samplers_array} * @es_extension{NV,shadow_samplers_array}
*/ */
TextureArray<dimensions>& setCompareFunction(Sampler::CompareFunction function) { TextureArray<dimensions>& setCompareFunction(Sampler::CompareFunction function) {
@ -402,7 +402,7 @@ template<UnsignedInt dimensions> class TextureArray: public AbstractTexture {
/** /**
@brief One-dimensional texture array @brief One-dimensional texture array
@requires_gl30 %Extension @extension{EXT,texture_array} @requires_gl30 Extension @extension{EXT,texture_array}
@requires_gl Only @ref Magnum::Texture2DArray "Texture2DArray" is available in @requires_gl Only @ref Magnum::Texture2DArray "Texture2DArray" is available in
OpenGL ES. OpenGL ES.
*/ */
@ -412,8 +412,8 @@ typedef TextureArray<1> Texture1DArray;
/** /**
@brief Two-dimensional texture array @brief Two-dimensional texture array
@requires_gl30 %Extension @extension{EXT,texture_array} @requires_gl30 Extension @extension{EXT,texture_array}
@requires_gles30 %Array textures are not available in OpenGL ES 2.0. @requires_gles30 Array textures are not available in OpenGL ES 2.0.
*/ */
typedef TextureArray<2> Texture2DArray; typedef TextureArray<2> Texture2DArray;

164
src/Magnum/TextureFormat.h

@ -51,8 +51,8 @@ enum class TextureFormat: GLenum {
* allowed in unemulated @ref Texture::setStorage() "*Texture::setStorage()" * allowed in unemulated @ref Texture::setStorage() "*Texture::setStorage()"
* calls, in that case use @ref TextureFormat::R8 "TextureFormat::R8" * calls, in that case use @ref TextureFormat::R8 "TextureFormat::R8"
* instead. * instead.
* @requires_gl30 %Extension @extension{ARB,texture_rg} * @requires_gl30 Extension @extension{ARB,texture_rg}
* @requires_gles30 %Extension @es_extension{EXT,texture_rg} in OpenGL ES * @requires_gles30 Extension @es_extension{EXT,texture_rg} in OpenGL ES
* 2.0 * 2.0
* @deprecated_gl Prefer to use the exactly specified version of this * @deprecated_gl Prefer to use the exactly specified version of this
* format, e.g. @ref Magnum::TextureFormat::R8 "TextureFormat::R8". * format, e.g. @ref Magnum::TextureFormat::R8 "TextureFormat::R8".
@ -65,8 +65,8 @@ enum class TextureFormat: GLenum {
/** /**
* Red component, normalized unsigned byte. * Red component, normalized unsigned byte.
* @requires_gl30 %Extension @extension{ARB,texture_rg} * @requires_gl30 Extension @extension{ARB,texture_rg}
* @requires_gles30 %Extension @es_extension{EXT,texture_rg} and * @requires_gles30 Extension @es_extension{EXT,texture_rg} and
* @es_extension{EXT,texture_storage} in OpenGL ES 2.0. For texture * @es_extension{EXT,texture_storage} in OpenGL ES 2.0. For texture
* storage only, for image specification use * storage only, for image specification use
* @ref Magnum::TextureFormat::Red "TextureFormat::Red" instead. * @ref Magnum::TextureFormat::Red "TextureFormat::Red" instead.
@ -82,8 +82,8 @@ enum class TextureFormat: GLenum {
* implementation-dependent. Not allowed in unemulated * implementation-dependent. Not allowed in unemulated
* @ref Texture::setStorage() "*Texture::setStorage()" calls, in that case * @ref Texture::setStorage() "*Texture::setStorage()" calls, in that case
* use @ref TextureFormat::RG8 "TextureFormat::RG8" instead. * use @ref TextureFormat::RG8 "TextureFormat::RG8" instead.
* @requires_gl30 %Extension @extension{ARB,texture_rg} * @requires_gl30 Extension @extension{ARB,texture_rg}
* @requires_gles30 %Extension @es_extension{EXT,texture_rg} in OpenGL ES * @requires_gles30 Extension @es_extension{EXT,texture_rg} in OpenGL ES
* 2.0 * 2.0
* @deprecated_gl Prefer to use the exactly specified version of this * @deprecated_gl Prefer to use the exactly specified version of this
* format, e.g. @ref Magnum::TextureFormat::RG8 "TextureFormat::RG8". * format, e.g. @ref Magnum::TextureFormat::RG8 "TextureFormat::RG8".
@ -96,8 +96,8 @@ enum class TextureFormat: GLenum {
/** /**
* Red and green component, each normalized unsigned byte. * Red and green component, each normalized unsigned byte.
* @requires_gl30 %Extension @extension{ARB,texture_rg} * @requires_gl30 Extension @extension{ARB,texture_rg}
* @requires_gles30 %Extension @es_extension{EXT,texture_rg} and * @requires_gles30 Extension @es_extension{EXT,texture_rg} and
* @es_extension{EXT,texture_storage} in OpenGL ES 2.0. For texture * @es_extension{EXT,texture_storage} in OpenGL ES 2.0. For texture
* storage only, for image specification use * storage only, for image specification use
* @ref Magnum::TextureFormat::RG "TextureFormat::RG" instead. * @ref Magnum::TextureFormat::RG "TextureFormat::RG" instead.
@ -119,7 +119,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGB, each component normalized unsigned byte. * RGB, each component normalized unsigned byte.
* @requires_gles30 %Extension @es_extension{OES,required_internalformat} * @requires_gles30 Extension @es_extension{OES,required_internalformat}
* (for image specification) or @es_extension{EXT,texture_storage} * (for image specification) or @es_extension{EXT,texture_storage}
* (for texture storage) in OpenGL ES 2.0 * (for texture storage) in OpenGL ES 2.0
*/ */
@ -140,7 +140,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGBA, each component normalized unsigned byte. * RGBA, each component normalized unsigned byte.
* @requires_gles30 %Extension @es_extension{OES,required_internalformat} * @requires_gles30 Extension @es_extension{OES,required_internalformat}
* (for image specification) or @es_extension{EXT,texture_storage} * (for image specification) or @es_extension{EXT,texture_storage}
* (for texture storage) in OpenGL ES 2.0 * (for texture storage) in OpenGL ES 2.0
*/ */
@ -153,28 +153,28 @@ enum class TextureFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* Red component, normalized signed byte. * Red component, normalized signed byte.
* @requires_gl31 %Extension @extension{EXT,texture_snorm} * @requires_gl31 Extension @extension{EXT,texture_snorm}
* @requires_gles30 Only unsigned formats are available in OpenGL ES 2.0. * @requires_gles30 Only unsigned formats are available in OpenGL ES 2.0.
*/ */
R8Snorm = GL_R8_SNORM, R8Snorm = GL_R8_SNORM,
/** /**
* Red and green component, each normalized signed byte. * Red and green component, each normalized signed byte.
* @requires_gl31 %Extension @extension{EXT,texture_snorm} * @requires_gl31 Extension @extension{EXT,texture_snorm}
* @requires_gles30 Only unsigned formats are available in OpenGL ES 2.0. * @requires_gles30 Only unsigned formats are available in OpenGL ES 2.0.
*/ */
RG8Snorm = GL_RG8_SNORM, RG8Snorm = GL_RG8_SNORM,
/** /**
* RGB, each component normalized signed byte. * RGB, each component normalized signed byte.
* @requires_gl31 %Extension @extension{EXT,texture_snorm} * @requires_gl31 Extension @extension{EXT,texture_snorm}
* @requires_gles30 Only unsigned formats are available in OpenGL ES 2.0. * @requires_gles30 Only unsigned formats are available in OpenGL ES 2.0.
*/ */
RGB8Snorm = GL_RGB8_SNORM, RGB8Snorm = GL_RGB8_SNORM,
/** /**
* RGBA, each component normalized signed byte. * RGBA, each component normalized signed byte.
* @requires_gl31 %Extension @extension{EXT,texture_snorm} * @requires_gl31 Extension @extension{EXT,texture_snorm}
* @requires_gles30 Only unsigned formats are available in OpenGL ES 2.0. * @requires_gles30 Only unsigned formats are available in OpenGL ES 2.0.
*/ */
RGBA8Snorm = GL_RGBA8_SNORM, RGBA8Snorm = GL_RGBA8_SNORM,
@ -183,7 +183,7 @@ enum class TextureFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* Red component, normalized unsigned short. * Red component, normalized unsigned short.
* @requires_gl30 %Extension @extension{ARB,texture_rg} * @requires_gl30 Extension @extension{ARB,texture_rg}
* @requires_gl Only byte-sized normalized formats are available in OpenGL * @requires_gl Only byte-sized normalized formats are available in OpenGL
* ES. * ES.
*/ */
@ -191,7 +191,7 @@ enum class TextureFormat: GLenum {
/** /**
* Red and green component, each normalized unsigned short. * Red and green component, each normalized unsigned short.
* @requires_gl30 %Extension @extension{ARB,texture_rg} * @requires_gl30 Extension @extension{ARB,texture_rg}
* @requires_gl Only byte-sized normalized formats are available in OpenGL * @requires_gl Only byte-sized normalized formats are available in OpenGL
* ES. * ES.
*/ */
@ -213,7 +213,7 @@ enum class TextureFormat: GLenum {
/** /**
* Red component, normalized signed short. * Red component, normalized signed short.
* @requires_gl31 %Extension @extension{EXT,texture_snorm} * @requires_gl31 Extension @extension{EXT,texture_snorm}
* @requires_gl Only byte-sized normalized formats are available in OpenGL * @requires_gl Only byte-sized normalized formats are available in OpenGL
* ES. * ES.
*/ */
@ -221,7 +221,7 @@ enum class TextureFormat: GLenum {
/** /**
* Red and green component, each normalized signed short. * Red and green component, each normalized signed short.
* @requires_gl31 %Extension @extension{EXT,texture_snorm} * @requires_gl31 Extension @extension{EXT,texture_snorm}
* @requires_gl Only byte-sized normalized formats are available in OpenGL * @requires_gl Only byte-sized normalized formats are available in OpenGL
* ES. * ES.
*/ */
@ -229,7 +229,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGB, each component normalized signed short. * RGB, each component normalized signed short.
* @requires_gl31 %Extension @extension{EXT,texture_snorm} * @requires_gl31 Extension @extension{EXT,texture_snorm}
* @requires_gl Only byte-sized normalized formats are available in OpenGL * @requires_gl Only byte-sized normalized formats are available in OpenGL
* ES. * ES.
*/ */
@ -237,7 +237,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGBA, each component normalized signed short. * RGBA, each component normalized signed short.
* @requires_gl31 %Extension @extension{EXT,texture_snorm} * @requires_gl31 Extension @extension{EXT,texture_snorm}
* @requires_gl Only byte-sized normalized formats are available in OpenGL * @requires_gl Only byte-sized normalized formats are available in OpenGL
* ES. * ES.
*/ */
@ -247,7 +247,7 @@ enum class TextureFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* Red component, non-normalized unsigned byte. * Red component, non-normalized unsigned byte.
* @requires_gl30 %Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -255,7 +255,7 @@ enum class TextureFormat: GLenum {
/** /**
* Red and green component, each non-normalized unsigned byte. * Red and green component, each non-normalized unsigned byte.
* @requires_gl30 %Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -263,7 +263,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGB, each component non-normalized unsigned byte. * RGB, each component non-normalized unsigned byte.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -271,7 +271,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGBA, each component non-normalized unsigned byte. * RGBA, each component non-normalized unsigned byte.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -279,7 +279,7 @@ enum class TextureFormat: GLenum {
/** /**
* Red component, non-normalized signed byte. * Red component, non-normalized signed byte.
* @requires_gl30 %Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -287,7 +287,7 @@ enum class TextureFormat: GLenum {
/** /**
* Red and green component, each non-normalized signed byte. * Red and green component, each non-normalized signed byte.
* @requires_gl30 %Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -295,7 +295,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGB, each component non-normalized signed byte. * RGB, each component non-normalized signed byte.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -303,7 +303,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGBA, each component non-normalized signed byte. * RGBA, each component non-normalized signed byte.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -311,7 +311,7 @@ enum class TextureFormat: GLenum {
/** /**
* Red component, non-normalized unsigned short. * Red component, non-normalized unsigned short.
* @requires_gl30 %Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -319,7 +319,7 @@ enum class TextureFormat: GLenum {
/** /**
* Red and green component, each non-normalized unsigned short. * Red and green component, each non-normalized unsigned short.
* @requires_gl30 %Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -327,7 +327,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGB, each component non-normalized unsigned short. * RGB, each component non-normalized unsigned short.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -335,7 +335,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGBA, each component non-normalized unsigned short. * RGBA, each component non-normalized unsigned short.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -343,7 +343,7 @@ enum class TextureFormat: GLenum {
/** /**
* Red component, non-normalized signed short. * Red component, non-normalized signed short.
* @requires_gl30 %Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -351,7 +351,7 @@ enum class TextureFormat: GLenum {
/** /**
* Red and green component, each non-normalized signed short. * Red and green component, each non-normalized signed short.
* @requires_gl30 %Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -359,7 +359,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGB, each component non-normalized signed short. * RGB, each component non-normalized signed short.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -367,7 +367,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGBA, each component non-normalized signed short. * RGBA, each component non-normalized signed short.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -375,7 +375,7 @@ enum class TextureFormat: GLenum {
/** /**
* Red component, non-normalized unsigned int. * Red component, non-normalized unsigned int.
* @requires_gl30 %Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -383,7 +383,7 @@ enum class TextureFormat: GLenum {
/** /**
* Red and green component, each non-normalized unsigned int. * Red and green component, each non-normalized unsigned int.
* @requires_gl30 %Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -391,7 +391,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGB, each component non-normalized unsigned int. * RGB, each component non-normalized unsigned int.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -399,7 +399,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGBA, each component non-normalized unsigned int. * RGBA, each component non-normalized unsigned int.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -407,7 +407,7 @@ enum class TextureFormat: GLenum {
/** /**
* Red component, non-normalized signed int. * Red component, non-normalized signed int.
* @requires_gl30 %Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -415,7 +415,7 @@ enum class TextureFormat: GLenum {
/** /**
* Red and green component, each non-normalized signed int. * Red and green component, each non-normalized signed int.
* @requires_gl30 %Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -423,7 +423,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGB, each component non-normalized signed int. * RGB, each component non-normalized signed int.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -431,7 +431,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGBA, each component non-normalized signed int. * RGBA, each component non-normalized signed int.
* @requires_gl30 %Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -439,7 +439,7 @@ enum class TextureFormat: GLenum {
/** /**
* Red component, half float. * Red component, half float.
* @requires_gl30 %Extension @extension{ARB,texture_rg} and @extension{ARB,texture_float} * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{ARB,texture_float}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -447,7 +447,7 @@ enum class TextureFormat: GLenum {
/** /**
* Red and green component, each half float. * Red and green component, each half float.
* @requires_gl30 %Extension @extension{ARB,texture_rg} and @extension{ARB,texture_float} * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{ARB,texture_float}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -455,7 +455,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGB, each component half float. * RGB, each component half float.
* @requires_gl30 %Extension @extension{ARB,texture_float} * @requires_gl30 Extension @extension{ARB,texture_float}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -463,7 +463,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGBA, each component half float. * RGBA, each component half float.
* @requires_gl30 %Extension @extension{ARB,texture_float} * @requires_gl30 Extension @extension{ARB,texture_float}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -471,7 +471,7 @@ enum class TextureFormat: GLenum {
/** /**
* Red component, float. * Red component, float.
* @requires_gl30 %Extension @extension{ARB,texture_rg} and @extension{ARB,texture_float} * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{ARB,texture_float}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -479,7 +479,7 @@ enum class TextureFormat: GLenum {
/** /**
* Red and green component, each float. * Red and green component, each float.
* @requires_gl30 %Extension @extension{ARB,texture_rg} and @extension{ARB,texture_float} * @requires_gl30 Extension @extension{ARB,texture_rg} and @extension{ARB,texture_float}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -487,7 +487,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGB, each component float. * RGB, each component float.
* @requires_gl30 %Extension @extension{ARB,texture_float} * @requires_gl30 Extension @extension{ARB,texture_float}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -495,7 +495,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGBA, each component float. * RGBA, each component float.
* @requires_gl30 %Extension @extension{ARB,texture_float} * @requires_gl30 Extension @extension{ARB,texture_float}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -551,7 +551,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGB, normalized unsigned, red and blue component 5bit, green 6bit. * RGB, normalized unsigned, red and blue component 5bit, green 6bit.
* @requires_gles30 %Extension @es_extension{OES,required_internalformat} * @requires_gles30 Extension @es_extension{OES,required_internalformat}
* (for image specification) or @es_extension{EXT,texture_storage} * (for image specification) or @es_extension{EXT,texture_storage}
* (for texture storage) in OpenGL ES 2.0 * (for texture storage) in OpenGL ES 2.0
*/ */
@ -560,7 +560,7 @@ enum class TextureFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES3 #ifndef MAGNUM_TARGET_GLES3
/** /**
* RGB, each component normalized unsigned 10bit. * RGB, each component normalized unsigned 10bit.
* @requires_es_extension %Extension @es_extension{EXT,texture_type_2_10_10_10_REV} * @requires_es_extension Extension @es_extension{EXT,texture_type_2_10_10_10_REV}
* and either @es_extension{OES,required_internalformat} (for image * and either @es_extension{OES,required_internalformat} (for image
* specification) or @es_extension{EXT,texture_storage} (for texture * specification) or @es_extension{EXT,texture_storage} (for texture
* storage) in OpenGL ES 2.0. Included for compatibility reasons only, * storage) in OpenGL ES 2.0. Included for compatibility reasons only,
@ -585,7 +585,7 @@ enum class TextureFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* RGB, float, red and green component 11bit, blue 10bit. * RGB, float, red and green component 11bit, blue 10bit.
* @requires_gl30 %Extension @extension{EXT,packed_float} * @requires_gl30 Extension @extension{EXT,packed_float}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -593,7 +593,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGB, unsigned with exponent, each RGB component 9bit, exponent 5bit. * RGB, unsigned with exponent, each RGB component 9bit, exponent 5bit.
* @requires_gl30 %Extension @extension{EXT,texture_shared_exponent} * @requires_gl30 Extension @extension{EXT,texture_shared_exponent}
* @requires_gles30 Use @ref Magnum::TextureFormat::RGB "TextureFormat::RGB" * @requires_gles30 Use @ref Magnum::TextureFormat::RGB "TextureFormat::RGB"
* in OpenGL ES 2.0 instead. * in OpenGL ES 2.0 instead.
*/ */
@ -604,7 +604,7 @@ enum class TextureFormat: GLenum {
* sRGB, normalized unsigned, size implementation-dependent. Not allowed in * sRGB, normalized unsigned, size implementation-dependent. Not allowed in
* unemulated @ref Texture::setStorage() "*Texture::setStorage()" calls, in * unemulated @ref Texture::setStorage() "*Texture::setStorage()" calls, in
* that case use @ref TextureFormat::SRGB8 "TextureFormat::SRGB8" instead. * that case use @ref TextureFormat::SRGB8 "TextureFormat::SRGB8" instead.
* @requires_es_extension %Extension @es_extension{EXT,sRGB} * @requires_es_extension Extension @es_extension{EXT,sRGB}
* @deprecated_gl Prefer to use the exactly specified version of this * @deprecated_gl Prefer to use the exactly specified version of this
* format, i.e. @ref Magnum::TextureFormat::SRGB8 "TextureFormat::SRGB8". * format, i.e. @ref Magnum::TextureFormat::SRGB8 "TextureFormat::SRGB8".
* @todo is this allowed in core? * @todo is this allowed in core?
@ -634,7 +634,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGBA, normalized unsigned, each component 4bit. * RGBA, normalized unsigned, each component 4bit.
* @requires_gles30 %Extension @es_extension{OES,required_internalformat} * @requires_gles30 Extension @es_extension{OES,required_internalformat}
* (for image specification) or @es_extension{EXT,texture_storage} * (for image specification) or @es_extension{EXT,texture_storage}
* (for texture storage) in OpenGL ES 2.0 * (for texture storage) in OpenGL ES 2.0
*/ */
@ -642,7 +642,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGBA, normalized unsigned, each RGB component 5bit, alpha 1bit. * RGBA, normalized unsigned, each RGB component 5bit, alpha 1bit.
* @requires_gles30 %Extension @es_extension{OES,required_internalformat} * @requires_gles30 Extension @es_extension{OES,required_internalformat}
* (for image specification) or @es_extension{EXT,texture_storage} * (for image specification) or @es_extension{EXT,texture_storage}
* (for texture storage) in OpenGL ES 2.0 * (for texture storage) in OpenGL ES 2.0
*/ */
@ -650,7 +650,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGBA, normalized unsigned, each RGB component 10bit, alpha 2bit. * RGBA, normalized unsigned, each RGB component 10bit, alpha 2bit.
* @requires_gles30 %Extension @es_extension{EXT,texture_type_2_10_10_10_REV} * @requires_gles30 Extension @es_extension{EXT,texture_type_2_10_10_10_REV}
* and either @es_extension{OES,required_internalformat} (for image * and either @es_extension{OES,required_internalformat} (for image
* specification) or @es_extension{EXT,texture_storage} (for texture * specification) or @es_extension{EXT,texture_storage} (for texture
* storage) in OpenGL ES 2.0 * storage) in OpenGL ES 2.0
@ -664,7 +664,7 @@ enum class TextureFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* RGBA, non-normalized unsigned, each RGB component 10bit, alpha 2bit. * RGBA, non-normalized unsigned, each RGB component 10bit, alpha 2bit.
* @requires_gl33 %Extension @extension{ARB,texture_rgb10_a2ui} * @requires_gl33 Extension @extension{ARB,texture_rgb10_a2ui}
* @requires_gles30 Only normalized integral formats are available in * @requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0. * OpenGL ES 2.0.
*/ */
@ -683,7 +683,7 @@ enum class TextureFormat: GLenum {
* sRGBA, normalized unsigned, size implementation-dependent. Not allowed in * sRGBA, normalized unsigned, size implementation-dependent. Not allowed in
* unemulated @ref Texture::setStorage() "*Texture::setStorage()" calls, in * unemulated @ref Texture::setStorage() "*Texture::setStorage()" calls, in
* that case use @ref TextureFormat::SRGB8Alpha8 "TextureFormat::SRGB8Alpha8" instead. * that case use @ref TextureFormat::SRGB8Alpha8 "TextureFormat::SRGB8Alpha8" instead.
* @requires_es_extension %Extension @es_extension{EXT,sRGB} * @requires_es_extension Extension @es_extension{EXT,sRGB}
* @deprecated_gl Prefer to use the exactly specified version of this * @deprecated_gl Prefer to use the exactly specified version of this
* format, i.e. @ref Magnum::TextureFormat::SRGB8Alpha8 "TextureFormat::SRGB8Alpha8". * format, i.e. @ref Magnum::TextureFormat::SRGB8Alpha8 "TextureFormat::SRGB8Alpha8".
* @todo is this allowed in core? * @todo is this allowed in core?
@ -707,7 +707,7 @@ enum class TextureFormat: GLenum {
/** /**
* Compressed red channel, normalized unsigned. **Not available on * Compressed red channel, normalized unsigned. **Not available on
* multisample textures.** * multisample textures.**
* @requires_gl30 %Extension @extension{ARB,texture_rg} * @requires_gl30 Extension @extension{ARB,texture_rg}
* @requires_gl Generic texture compression is not available in OpenGL ES. * @requires_gl Generic texture compression is not available in OpenGL ES.
*/ */
CompressedRed = GL_COMPRESSED_RED, CompressedRed = GL_COMPRESSED_RED,
@ -715,7 +715,7 @@ enum class TextureFormat: GLenum {
/** /**
* Compressed red and green channel, normalized unsigned. **Not available * Compressed red and green channel, normalized unsigned. **Not available
* on multisample textures.** * on multisample textures.**
* @requires_gl30 %Extension @extension{ARB,texture_rg} * @requires_gl30 Extension @extension{ARB,texture_rg}
* @requires_gl Generic texture compression is not available in OpenGL ES. * @requires_gl Generic texture compression is not available in OpenGL ES.
*/ */
CompressedRG = GL_COMPRESSED_RG, CompressedRG = GL_COMPRESSED_RG,
@ -737,7 +737,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGTC compressed red channel, normalized unsigned. **Not available on * RGTC compressed red channel, normalized unsigned. **Not available on
* multisample textures.** * multisample textures.**
* @requires_gl30 %Extension @extension{EXT,texture_compression_rgtc} * @requires_gl30 Extension @extension{EXT,texture_compression_rgtc}
* @requires_gl RGTC texture compression is not available in OpenGL ES. * @requires_gl RGTC texture compression is not available in OpenGL ES.
*/ */
CompressedRedRgtc1 = GL_COMPRESSED_RED_RGTC1, CompressedRedRgtc1 = GL_COMPRESSED_RED_RGTC1,
@ -745,7 +745,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGTC compressed red and green channel, normalized unsigned. **Not * RGTC compressed red and green channel, normalized unsigned. **Not
* available on multisample textures.** * available on multisample textures.**
* @requires_gl30 %Extension @extension{EXT,texture_compression_rgtc} * @requires_gl30 Extension @extension{EXT,texture_compression_rgtc}
* @requires_gl RGTC texture compression is not available in OpenGL ES. * @requires_gl RGTC texture compression is not available in OpenGL ES.
*/ */
CompressedRGRgtc2 = GL_COMPRESSED_RG_RGTC2, CompressedRGRgtc2 = GL_COMPRESSED_RG_RGTC2,
@ -753,7 +753,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGTC compressed red channel, normalized signed. **Not available on * RGTC compressed red channel, normalized signed. **Not available on
* multisample textures.** * multisample textures.**
* @requires_gl30 %Extension @extension{EXT,texture_compression_rgtc} * @requires_gl30 Extension @extension{EXT,texture_compression_rgtc}
* @requires_gl RGTC texture compression is not available in OpenGL ES. * @requires_gl RGTC texture compression is not available in OpenGL ES.
*/ */
CompressedSignedRedRgtc1 = GL_COMPRESSED_SIGNED_RED_RGTC1, CompressedSignedRedRgtc1 = GL_COMPRESSED_SIGNED_RED_RGTC1,
@ -761,7 +761,7 @@ enum class TextureFormat: GLenum {
/** /**
* RGTC compressed red and green channel, normalized signed. **Not * RGTC compressed red and green channel, normalized signed. **Not
* available on multisample textures.** * available on multisample textures.**
* @requires_gl30 %Extension @extension{EXT,texture_compression_rgtc} * @requires_gl30 Extension @extension{EXT,texture_compression_rgtc}
* @requires_gl RGTC texture compression is not available in OpenGL ES. * @requires_gl RGTC texture compression is not available in OpenGL ES.
*/ */
CompressedSignedRGRgtc2 = GL_COMPRESSED_SIGNED_RG_RGTC2, CompressedSignedRGRgtc2 = GL_COMPRESSED_SIGNED_RG_RGTC2,
@ -769,7 +769,7 @@ enum class TextureFormat: GLenum {
/** /**
* BPTC compressed RGB, unsigned float. **Not available on multisample * BPTC compressed RGB, unsigned float. **Not available on multisample
* textures.** * textures.**
* @requires_gl42 %Extension @extension{ARB,texture_compression_bptc} * @requires_gl42 Extension @extension{ARB,texture_compression_bptc}
* @requires_gl BPTC texture compression is not available in OpenGL ES. * @requires_gl BPTC texture compression is not available in OpenGL ES.
*/ */
CompressedRGBBptcUnsignedFloat = GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT, CompressedRGBBptcUnsignedFloat = GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT,
@ -777,7 +777,7 @@ enum class TextureFormat: GLenum {
/** /**
* BPTC compressed RGB, signed float. **Not available on multisample * BPTC compressed RGB, signed float. **Not available on multisample
* textures.** * textures.**
* @requires_gl42 %Extension @extension{ARB,texture_compression_bptc} * @requires_gl42 Extension @extension{ARB,texture_compression_bptc}
* @requires_gl BPTC texture compression is not available in OpenGL ES. * @requires_gl BPTC texture compression is not available in OpenGL ES.
*/ */
CompressedRGBBptcSignedFloat = GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT, CompressedRGBBptcSignedFloat = GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT,
@ -785,7 +785,7 @@ enum class TextureFormat: GLenum {
/** /**
* BPTC compressed RGBA, normalized unsigned. **Not available on * BPTC compressed RGBA, normalized unsigned. **Not available on
* multisample textures.** * multisample textures.**
* @requires_gl42 %Extension @extension{ARB,texture_compression_bptc} * @requires_gl42 Extension @extension{ARB,texture_compression_bptc}
* @requires_gl BPTC texture compression is not available in OpenGL ES. * @requires_gl BPTC texture compression is not available in OpenGL ES.
*/ */
CompressedRGBABptcUnorm = GL_COMPRESSED_RGBA_BPTC_UNORM, CompressedRGBABptcUnorm = GL_COMPRESSED_RGBA_BPTC_UNORM,
@ -793,7 +793,7 @@ enum class TextureFormat: GLenum {
/** /**
* BPTC compressed sRGBA, normalized unsigned. **Not available on * BPTC compressed sRGBA, normalized unsigned. **Not available on
* multisample textures.** * multisample textures.**
* @requires_gl42 %Extension @extension{ARB,texture_compression_bptc} * @requires_gl42 Extension @extension{ARB,texture_compression_bptc}
* @requires_gl BPTC texture compression is not available in OpenGL ES. * @requires_gl BPTC texture compression is not available in OpenGL ES.
*/ */
CompressedSRGBAlphaBptcUnorm = GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM, CompressedSRGBAlphaBptcUnorm = GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM,
@ -804,7 +804,7 @@ enum class TextureFormat: GLenum {
* textures. Not allowed in unemulated @ref Texture::setStorage() * textures. Not allowed in unemulated @ref Texture::setStorage()
* "*Texture::setStorage()" calls, in that case use e.g. * "*Texture::setStorage()" calls, in that case use e.g.
* @ref TextureFormat::DepthComponent24 "TextureFormat::DepthComponent24" instead. * @ref TextureFormat::DepthComponent24 "TextureFormat::DepthComponent24" instead.
* @requires_gles30 %Extension @es_extension{OES,depth_texture} or * @requires_gles30 Extension @es_extension{OES,depth_texture} or
* @es_extension{ANGLE,depth_texture} in OpenGL ES 2.0 * @es_extension{ANGLE,depth_texture} in OpenGL ES 2.0
* @deprecated_gl Prefer to use the exactly specified version of this * @deprecated_gl Prefer to use the exactly specified version of this
* format, e.g. @ref Magnum::TextureFormat::DepthComponent24 "TextureFormat::DepthComponent24". * format, e.g. @ref Magnum::TextureFormat::DepthComponent24 "TextureFormat::DepthComponent24".
@ -813,7 +813,7 @@ enum class TextureFormat: GLenum {
/** /**
* Depth component, 16bit. Not supported in 3D textures. * Depth component, 16bit. Not supported in 3D textures.
* @requires_gles30 %Extension @es_extension{OES,depth_texture} or * @requires_gles30 Extension @es_extension{OES,depth_texture} or
* @es_extension{ANGLE,depth_texture} and either * @es_extension{ANGLE,depth_texture} and either
* @es_extension{OES,required_internalformat} (for image * @es_extension{OES,required_internalformat} (for image
* specification) or @es_extension{EXT,texture_storage} (for texture * specification) or @es_extension{EXT,texture_storage} (for texture
@ -823,7 +823,7 @@ enum class TextureFormat: GLenum {
/** /**
* Depth component, 24bit. Not supported in 3D textures. * Depth component, 24bit. Not supported in 3D textures.
* @requires_gles30 %Extension @es_extension{OES,required_internalformat}, * @requires_gles30 Extension @es_extension{OES,required_internalformat},
* @es_extension{OES,depth_texture} and @es_extension{OES,depth24} in * @es_extension{OES,depth_texture} and @es_extension{OES,depth24} in
* OpenGL ES 2.0 * OpenGL ES 2.0
*/ */
@ -835,7 +835,7 @@ enum class TextureFormat: GLenum {
/** /**
* Depth component, 32bit. Not supported in 3D textures. * Depth component, 32bit. Not supported in 3D textures.
* @requires_es_extension %Extension @es_extension{OES,depth_texture} or * @requires_es_extension Extension @es_extension{OES,depth_texture} or
* @es_extension{ANGLE,depth_texture} and @es_extension{OES,depth32} * @es_extension{ANGLE,depth_texture} and @es_extension{OES,depth32}
* and @es_extension{OES,required_internalformat} (for image * and @es_extension{OES,required_internalformat} (for image
* specification) or @es_extension{EXT,texture_storage} (for texture * specification) or @es_extension{EXT,texture_storage} (for texture
@ -850,7 +850,7 @@ enum class TextureFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* Depth component, 32bit float. Not supported in 3D textures. * Depth component, 32bit float. Not supported in 3D textures.
* @requires_gl30 %Extension @extension{ARB,depth_buffer_float} * @requires_gl30 Extension @extension{ARB,depth_buffer_float}
* @requires_gles30 Only integral depth textures are available in OpenGL ES * @requires_gles30 Only integral depth textures are available in OpenGL ES
* 2.0. * 2.0.
*/ */
@ -860,7 +860,7 @@ enum class TextureFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* Stencil index, 8bit. Not supported in 3D textures. * Stencil index, 8bit. Not supported in 3D textures.
* @requires_gl44 %Extension @extension{ARB,texture_stencil8} * @requires_gl44 Extension @extension{ARB,texture_stencil8}
* @requires_gl Only available as renderbuffer format in OpenGL ES. * @requires_gl Only available as renderbuffer format in OpenGL ES.
*/ */
StencilIndex8 = GL_STENCIL_INDEX8, StencilIndex8 = GL_STENCIL_INDEX8,
@ -873,7 +873,7 @@ enum class TextureFormat: GLenum {
* use e.g. @ref TextureFormat::Depth24Stencil8 "TextureFormat::Depth24Stencil8" * use e.g. @ref TextureFormat::Depth24Stencil8 "TextureFormat::Depth24Stencil8"
* instead. * instead.
* @see @ref Texture::setDepthStencilMode() "*Texture::setDepthStencilMode()" * @see @ref Texture::setDepthStencilMode() "*Texture::setDepthStencilMode()"
* @requires_gles30 %Extension @es_extension{OES,packed_depth_stencil} or * @requires_gles30 Extension @es_extension{OES,packed_depth_stencil} or
* @es_extension{ANGLE,depth_texture} in OpenGL ES 2.0 * @es_extension{ANGLE,depth_texture} in OpenGL ES 2.0
* @deprecated_gl Prefer to use exactly specified version of this format, * @deprecated_gl Prefer to use exactly specified version of this format,
* e.g. @ref Magnum::TextureFormat::Depth24Stencil8 "TextureFormat::Depth24Stencil8". * e.g. @ref Magnum::TextureFormat::Depth24Stencil8 "TextureFormat::Depth24Stencil8".
@ -887,8 +887,8 @@ enum class TextureFormat: GLenum {
/** /**
* 24bit depth and 8bit stencil component. Not supported in 3D textures. * 24bit depth and 8bit stencil component. Not supported in 3D textures.
* @see @ref Texture::setDepthStencilMode() "*Texture::setDepthStencilMode()" * @see @ref Texture::setDepthStencilMode() "*Texture::setDepthStencilMode()"
* @requires_gl30 %Extension @extension{ARB,framebuffer_object} * @requires_gl30 Extension @extension{ARB,framebuffer_object}
* @requires_gles30 %Extension @es_extension{OES,packed_depth_stencil} or * @requires_gles30 Extension @es_extension{OES,packed_depth_stencil} or
* @es_extension{ANGLE,depth_texture} and either * @es_extension{ANGLE,depth_texture} and either
* @es_extension{OES,required_internalformat} (for image * @es_extension{OES,required_internalformat} (for image
* specification) or @es_extension{EXT,texture_storage} (for texture * specification) or @es_extension{EXT,texture_storage} (for texture
@ -905,7 +905,7 @@ enum class TextureFormat: GLenum {
* 32bit float depth component and 8bit stencil component. Not supported in * 32bit float depth component and 8bit stencil component. Not supported in
* 3D textures. * 3D textures.
* @see @ref Texture::setDepthStencilMode() "*Texture::setDepthStencilMode()" * @see @ref Texture::setDepthStencilMode() "*Texture::setDepthStencilMode()"
* @requires_gl30 %Extension @extension{ARB,depth_buffer_float} * @requires_gl30 Extension @extension{ARB,depth_buffer_float}
* @requires_gles30 Only integral depth textures are available in OpenGL ES * @requires_gles30 Only integral depth textures are available in OpenGL ES
* 2.0. * 2.0.
*/ */

4
src/Magnum/TimeQuery.h

@ -62,8 +62,8 @@ UnsignedInt timeElapsed1 = tmp-q1.result<UnsignedInt>();
UnsignedInt timeElapsed2 = q3.result<UnsignedInt>()-tmp; UnsignedInt timeElapsed2 = q3.result<UnsignedInt>()-tmp;
@endcode @endcode
Using the latter results in fewer OpenGL calls when doing more measures. Using the latter results in fewer OpenGL calls when doing more measures.
@requires_gl33 %Extension @extension{ARB,timer_query} @requires_gl33 Extension @extension{ARB,timer_query}
@requires_es_extension %Extension @es_extension{EXT,disjoint_timer_query} @requires_es_extension Extension @es_extension{EXT,disjoint_timer_query}
@see @ref PrimitiveQuery, @ref SampleQuery @see @ref PrimitiveQuery, @ref SampleQuery
@todo timestamp with glGet + example usage @todo timestamp with glGet + example usage

2
src/Magnum/Timeline.h

@ -37,7 +37,7 @@
namespace Magnum { namespace Magnum {
/** /**
@brief %Timeline @brief Timeline
Keeps track of time delta between frames and allows FPS limiting. Can be used Keeps track of time delta between frames and allows FPS limiting. Can be used
as source for animation speed computations. as source for animation speed computations.

4
src/Magnum/TransformFeedback.h

@ -44,7 +44,7 @@ namespace Implementation { struct TransformFeedbackState; }
@brief Transform feedback @brief Transform feedback
@see @ref PrimitiveQuery @see @ref PrimitiveQuery
@requires_gl40 %Extension @extension{ARB,transform_feedback2} @requires_gl40 Extension @extension{ARB,transform_feedback2}
@requires_gles30 Transform feedback is not available in OpenGL ES 2.0 @requires_gles30 Transform feedback is not available in OpenGL ES 2.0
@todo @extension{AMD,transform_feedback3_lines_triangles}? @todo @extension{AMD,transform_feedback3_lines_triangles}?
*/ */
@ -169,7 +169,7 @@ class MAGNUM_EXPORT TransformFeedback: public AbstractObject {
GLuint id() const { return _id; } GLuint id() const { return _id; }
/** /**
* @brief %Buffer label * @brief Buffer label
* *
* The result is *not* cached, repeated queries will result in repeated * The result is *not* cached, repeated queries will result in repeated
* OpenGL calls. If OpenGL 4.3 is not supported and neither * OpenGL calls. If OpenGL 4.3 is not supported and neither

Loading…
Cancel
Save