Browse Source

doc: adapted GL function/extension to Khronos domain move.

Followup to previous commit -- links to opengl.org are now redirected to
khronos.org and the extension links have the same format for both GL and
GLES. That allows me to remove some of the Doxygen aliases and use just
a single set of the functions for both GL and GLES.
pull/197/head
Vladimír Vondruš 9 years ago
parent
commit
3b3f71faa9
  1. 13
      Doxyfile
  2. 9
      doc/coding-style.dox
  3. 12
      doc/opengl-mapping.dox
  4. 218
      doc/opengl-support.dox
  5. 26
      src/Magnum/AbstractFramebuffer.h
  6. 4
      src/Magnum/AbstractObject.cpp
  7. 4
      src/Magnum/AbstractObject.h
  8. 14
      src/Magnum/AbstractQuery.h
  9. 24
      src/Magnum/AbstractShaderProgram.h
  10. 14
      src/Magnum/AbstractTexture.h
  11. 4
      src/Magnum/Attribute.h
  12. 32
      src/Magnum/Buffer.h
  13. 4
      src/Magnum/BufferTexture.h
  14. 4
      src/Magnum/BufferTextureFormat.h
  15. 8
      src/Magnum/Context.h
  16. 30
      src/Magnum/CubeMapTexture.h
  17. 22
      src/Magnum/CubeMapTextureArray.h
  18. 52
      src/Magnum/DebugOutput.h
  19. 4
      src/Magnum/DebugTools/BufferData.h
  20. 24
      src/Magnum/DefaultFramebuffer.h
  21. 100
      src/Magnum/Framebuffer.h
  22. 52
      src/Magnum/Mesh.h
  23. 16
      src/Magnum/MeshView.h
  24. 16
      src/Magnum/MultisampleTexture.h
  25. 280
      src/Magnum/PixelFormat.h
  26. 8
      src/Magnum/PixelStorage.h
  27. 4
      src/Magnum/PrimitiveQuery.h
  28. 22
      src/Magnum/Renderbuffer.h
  29. 20
      src/Magnum/RenderbufferFormat.h
  30. 84
      src/Magnum/Renderer.h
  31. 2
      src/Magnum/SampleQuery.h
  32. 18
      src/Magnum/Sampler.h
  33. 56
      src/Magnum/Shader.h
  34. 6
      src/Magnum/Shaders/MeshVisualizer.h
  35. 2
      src/Magnum/Text/DistanceFieldGlyphCache.h
  36. 2
      src/Magnum/Text/GlyphCache.h
  37. 6
      src/Magnum/Text/Renderer.h
  38. 34
      src/Magnum/Texture.h
  39. 20
      src/Magnum/TextureArray.h
  40. 320
      src/Magnum/TextureFormat.h
  41. 2
      src/Magnum/TextureTools/DistanceField.h
  42. 4
      src/Magnum/TimeQuery.h
  43. 12
      src/Magnum/TransformFeedback.h
  44. 2
      src/MagnumPlugins/TgaImporter/TgaImporter.h

13
Doxyfile

@ -245,11 +245,9 @@ ALIASES = \
"todoc=@xrefitem todoc \"Documentation todo\" \"Documentation-related todo list\"" \ "todoc=@xrefitem todoc \"Documentation todo\" \"Documentation-related todo list\"" \
"fn_gl{1}=<a href=\"http://www.khronos.org/registry/OpenGL-Refpages/gl4/html/gl\1.xhtml\">gl\1()</a>" \ "fn_gl{1}=<a href=\"http://www.khronos.org/registry/OpenGL-Refpages/gl4/html/gl\1.xhtml\">gl\1()</a>" \
"fn_gl2{2}=<a href=\"http://www.khronos.org/registry/OpenGL-Refpages/gl4/html/gl\2.xhtml\">gl\1()</a>" \ "fn_gl2{2}=<a href=\"http://www.khronos.org/registry/OpenGL-Refpages/gl4/html/gl\2.xhtml\">gl\1()</a>" \
"fn_gl_extension{3}=<a href=\"http://www.opengl.org/registry/specs/\2/\3.txt\">gl\1<b></b>\2()</a>" \ "fn_gl_extension{3}=<a href=\"https://www.khronos.org/registry/OpenGL/extensions/\2/\2_\3.txt\">gl\1<b></b>\2()</a>" \
"fn_gl_extension2{3}=<a href=\"http://www.opengl.org/registry/specs/\2/\2_\3.txt\">gl\1<b></b>\2()</a>" \
"fn_gles_extension{3}=<a href=\"http://www.khronos.org/registry/gles/extensions/\2/\2_\3.txt\">gl\1<b></b>\2()</a>" \
"def_gl{1}=`GL_\1`" \ "def_gl{1}=`GL_\1`" \
"def_gl_extension{3}=<a href=\"http://www.opengl.org/registry/specs/\2/\3.txt\">GL_\1_\2</a>" \ "def_gl_extension{3}=<a href=\"https://www.khronos.org/registry/OpenGL/extensions/\2/\2_\3.txt\">GL_\1_\2</a>" \
"deprecated_gl=@xrefitem opengl-deprecated \"Deprecated OpenGL API\" \"Deprecated OpenGL API list\"" \ "deprecated_gl=@xrefitem opengl-deprecated \"Deprecated OpenGL API\" \"Deprecated OpenGL API list\"" \
"requires_gl30=@xrefitem requires-gl30 \"Requires OpenGL 3.0\" \"Functionality requiring OpenGL 3.0\"" \ "requires_gl30=@xrefitem requires-gl30 \"Requires OpenGL 3.0\" \"Functionality requiring OpenGL 3.0\"" \
"requires_gl31=@xrefitem requires-gl31 \"Requires OpenGL 3.1\" \"Functionality requiring OpenGL 3.1\"" \ "requires_gl31=@xrefitem requires-gl31 \"Requires OpenGL 3.1\" \"Functionality requiring OpenGL 3.1\"" \
@ -263,9 +261,8 @@ ALIASES = \
"requires_gl45=@xrefitem requires-gl45 \"Requires OpenGL 4.5\" \"Functionality requiring OpenGL 4.5\"" \ "requires_gl45=@xrefitem requires-gl45 \"Requires OpenGL 4.5\" \"Functionality requiring OpenGL 4.5\"" \
"requires_extension=@xrefitem requires-extension \"Requires OpenGL extension\" \"Functionality requiring specific OpenGL extension\"" \ "requires_extension=@xrefitem requires-extension \"Requires OpenGL extension\" \"Functionality requiring specific OpenGL extension\"" \
"requires_gl=@xrefitem requires-gl \"Requires desktop OpenGL\" \"Functionality requiring desktop OpenGL\"" \ "requires_gl=@xrefitem requires-gl \"Requires desktop OpenGL\" \"Functionality requiring desktop OpenGL\"" \
"extension{2}=<a href=\"http://www.opengl.org/registry/specs/\1/\2.txt\"><tt>\1_\2</tt></a>" \ "extension{2}=<a href=\"https://www.khronos.org/registry/OpenGL/extensions/\1/\1_\2.txt\"><tt>\1_\2</tt></a>" \
"extension2{2}=<a href=\"http://www.opengl.org/registry/specs/\1/\1_\2.txt\"><tt>\1_\2</tt></a>" \ "extension2{3}=<a href=\"https://www.khronos.org/registry/OpenGL/extensions/\1/\3.txt\"><tt>\1_\2</tt></a>" \
"extension3{3}=<a href=\"http://www.opengl.org/registry/specs/\1/\3.txt\"><tt>\1_\2</tt></a>" \
"requires_gles20=@xrefitem requires-gles20 \"Requires OpenGL ES 2.0 / WebGL 1.0\" \"Functionality requiring OpenGL ES 2.0 or WebGL 1.0\"" \ "requires_gles20=@xrefitem requires-gles20 \"Requires OpenGL ES 2.0 / WebGL 1.0\" \"Functionality requiring OpenGL ES 2.0 or WebGL 1.0\"" \
"requires_gles30=@xrefitem requires-gles30 \"Requires OpenGL ES 3.0\" \"Functionality requiring OpenGL ES 3.0\"" \ "requires_gles30=@xrefitem requires-gles30 \"Requires OpenGL ES 3.0\" \"Functionality requiring OpenGL ES 3.0\"" \
"requires_gles31=@xrefitem requires-gles31 \"Requires OpenGL ES 3.1\" \"Functionality requiring OpenGL ES 3.1\"" \ "requires_gles31=@xrefitem requires-gles31 \"Requires OpenGL ES 3.1\" \"Functionality requiring OpenGL ES 3.1\"" \
@ -273,8 +270,6 @@ ALIASES = \
"requires_gles=@xrefitem requires-gles \"Requires OpenGL ES or desktop OpenGL\" \"Functionality requiring OpenGL ES or desktop OpenGL\"" \ "requires_gles=@xrefitem requires-gles \"Requires OpenGL ES or desktop OpenGL\" \"Functionality requiring OpenGL ES or desktop OpenGL\"" \
"requires_webgl20=@xrefitem requires-webgl20 \"Requires WebGL 2.0\" \"Functionality requiring WebGL 2.0\"" \ "requires_webgl20=@xrefitem requires-webgl20 \"Requires WebGL 2.0\" \"Functionality requiring WebGL 2.0\"" \
"requires_webgl_extension=@xrefitem requires-webgl-extension \"Requires WebGL extension\" \"Functionality requiring specific WebGL extension\"" \ "requires_webgl_extension=@xrefitem requires-webgl-extension \"Requires WebGL extension\" \"Functionality requiring specific WebGL extension\"" \
"es_extension{2}=<a href=\"http://www.khronos.org/registry/gles/extensions/\1/\1_\2.txt\"><tt>\1_\2</tt></a>" \
"es_extension2{3}=<a href=\"http://www.khronos.org/registry/gles/extensions/\1/\3.txt\"><tt>\1_\2</tt></a>" \
"webgl_extension{2}=<a href=\"https://www.khronos.org/registry/webgl/extensions/\1_\2/\"><tt>\1_\2</tt></a>" \ "webgl_extension{2}=<a href=\"https://www.khronos.org/registry/webgl/extensions/\1_\2/\"><tt>\1_\2</tt></a>" \
"fn_al{1}=`al\1()`" \ "fn_al{1}=`al\1()`" \
"fn_alc{1}=`alc\1()`" \ "fn_alc{1}=`alc\1()`" \

9
doc/coding-style.dox

@ -129,14 +129,13 @@ with @c \@extension command:
It produces link to the specification of the extension in OpenGL registry: It produces link to the specification of the extension in OpenGL registry:
> @extension{ARB,timer_query} > @extension{ARB,timer_query}
Similarly for OpenGL ES extensions there is @c \@es_extension command. Some With command @c \@extension2 you can specify extension filename, if the
extensions have slightly different URL, with command @c \@es_extension2 you can previous command gives 404 error. For example
specify extension filename, if the previous command gives 404 error. For example
@code @code
@es_extension2{NV,read_buffer_front,GL_NV_read_buffer} @extension2{NV,read_buffer_front,GL_NV_read_buffer}
@endcode @endcode
produces this link: produces this link:
> @es_extension2{NV,read_buffer_front,GL_NV_read_buffer} > @extension2{NV,read_buffer_front,GL_NV_read_buffer}
@subsubsection coding-style-documentation-commands-ref_gl Links to related OpenGL functions and definitions @subsubsection coding-style-documentation-commands-ref_gl Links to related OpenGL functions and definitions

12
doc/opengl-mapping.dox

@ -114,7 +114,7 @@ OpenGL function | Matching API
--------------------------------------- | ------------ --------------------------------------- | ------------
@fn_gl{DebugMessageCallback} | @ref DebugOutput::setCallback() @fn_gl{DebugMessageCallback} | @ref DebugOutput::setCallback()
@fn_gl{DebugMessageControl} | @ref DebugOutput::setEnabled() @fn_gl{DebugMessageControl} | @ref DebugOutput::setEnabled()
@fn_gl{DebugMessageInsert}, \n @fn_gl_extension2{InsertEventMarker,EXT,debug_marker}, \n @fn_gl_extension{StringMarker,GREMEDY,string_marker} | @ref DebugMessage::insert() @fn_gl{DebugMessageInsert}, \n @fn_gl_extension{InsertEventMarker,EXT,debug_marker}, \n @fn_gl_extension{StringMarker,GREMEDY,string_marker} | @ref DebugMessage::insert()
@fn_gl{DepthFunc} | @ref Renderer::setDepthFunction() @fn_gl{DepthFunc} | @ref Renderer::setDepthFunction()
@fn_gl{DepthMask} | @ref Renderer::setDepthMask() @fn_gl{DepthMask} | @ref Renderer::setDepthMask()
@fn_gl{DepthRange} | | @fn_gl{DepthRange} | |
@ -237,7 +237,7 @@ OpenGL function | Matching API
--------------------------------------- | ------------ --------------------------------------- | ------------
@fn_gl{InvalidateBufferData} | @ref Buffer::invalidateData() @fn_gl{InvalidateBufferData} | @ref Buffer::invalidateData()
@fn_gl{InvalidateBufferSubData} | @ref Buffer::invalidateSubData() @fn_gl{InvalidateBufferSubData} | @ref Buffer::invalidateSubData()
@fn_gl{InvalidateFramebuffer}, \n `glInvalidateNamedFramebufferData()`, \n @fn_gles_extension{DiscardFramebuffer,EXT,discard_framebuffer} | @ref DefaultFramebuffer::invalidate(), \n @ref Framebuffer::invalidate() @fn_gl{InvalidateFramebuffer}, \n `glInvalidateNamedFramebufferData()`, \n @fn_gl_extension{DiscardFramebuffer,EXT,discard_framebuffer} | @ref DefaultFramebuffer::invalidate(), \n @ref Framebuffer::invalidate()
@fn_gl{InvalidateSubFramebuffer}, \n `glInvalidateNamedFramebufferSubData()` | @ref DefaultFramebuffer::invalidate(), \n @ref Framebuffer::invalidate() @fn_gl{InvalidateSubFramebuffer}, \n `glInvalidateNamedFramebufferSubData()` | @ref DefaultFramebuffer::invalidate(), \n @ref Framebuffer::invalidate()
@fn_gl{InvalidateTexImage} | @ref Texture::invalidateImage(), \n @ref TextureArray::invalidateImage(), \n @ref CubeMapTexture::invalidateImage(), \n @ref CubeMapTextureArray::invalidateImage(), \n @ref RectangleTexture::invalidateImage(), \n @ref MultisampleTexture::invalidateImage() @fn_gl{InvalidateTexImage} | @ref Texture::invalidateImage(), \n @ref TextureArray::invalidateImage(), \n @ref CubeMapTexture::invalidateImage(), \n @ref CubeMapTextureArray::invalidateImage(), \n @ref RectangleTexture::invalidateImage(), \n @ref MultisampleTexture::invalidateImage()
@fn_gl{InvalidateTexSubImage} | @ref Texture::invalidateSubImage(), \n @ref TextureArray::invalidateSubImage(), \n @ref CubeMapTexture::invalidateSubImage(), \n @ref CubeMapTextureArray::invalidateSubImage(), \n @ref RectangleTexture::invalidateSubImage(), \n @ref MultisampleTexture::invalidateSubImage() @fn_gl{InvalidateTexSubImage} | @ref Texture::invalidateSubImage(), \n @ref TextureArray::invalidateSubImage(), \n @ref CubeMapTexture::invalidateSubImage(), \n @ref CubeMapTextureArray::invalidateSubImage(), \n @ref RectangleTexture::invalidateSubImage(), \n @ref MultisampleTexture::invalidateSubImage()
@ -273,7 +273,7 @@ OpenGL function | Matching API
OpenGL function | Matching API OpenGL function | Matching API
--------------------------------------- | ------------ --------------------------------------- | ------------
@fn_gl{ObjectLabel}, \n @fn_gl{ObjectPtrLabel}, \n @fn_gl_extension2{LabelObject,EXT,debug_label} | @ref AbstractShaderProgram::setLabel(), \n @ref AbstractQuery::setLabel(), \n @ref AbstractTexture::setLabel(), \n @ref Buffer::setLabel(), \n @ref Framebuffer::setLabel(), \n @ref Mesh::setLabel(), \n @ref Renderbuffer::setLabel(), \n @ref Shader::setLabel() @fn_gl{ObjectLabel}, \n @fn_gl{ObjectPtrLabel}, \n @fn_gl_extension{LabelObject,EXT,debug_label} | @ref AbstractShaderProgram::setLabel(), \n @ref AbstractQuery::setLabel(), \n @ref AbstractTexture::setLabel(), \n @ref Buffer::setLabel(), \n @ref Framebuffer::setLabel(), \n @ref Mesh::setLabel(), \n @ref Renderbuffer::setLabel(), \n @ref Shader::setLabel()
@subsection opengl-mapping-functions-p P @subsection opengl-mapping-functions-p P
@ -286,13 +286,13 @@ OpenGL function | Matching API
@fn_gl{PointSize} | @ref Renderer::setPointSize() @fn_gl{PointSize} | @ref Renderer::setPointSize()
@fn_gl{PolygonMode} | @ref Renderer::setPolygonMode() @fn_gl{PolygonMode} | @ref Renderer::setPolygonMode()
@fn_gl{PolygonOffset} | @ref Renderer::setPolygonOffset() @fn_gl{PolygonOffset} | @ref Renderer::setPolygonOffset()
@fn_gles_extension{PrimitiveBoundingBox,EXT,primitive_bounding_box} | | @fn_gl_extension{PrimitiveBoundingBox,EXT,primitive_bounding_box} | |
@fn_gl{PrimitiveRestartIndex} | | @fn_gl{PrimitiveRestartIndex} | |
@fn_gl{ProgramBinary} | | @fn_gl{ProgramBinary} | |
@fn_gl{ProgramParameter} | @ref AbstractShaderProgram::setRetrievableBinary(), \n @ref AbstractShaderProgram::setSeparable() @fn_gl{ProgramParameter} | @ref AbstractShaderProgram::setRetrievableBinary(), \n @ref AbstractShaderProgram::setSeparable()
@fn_gl{ProvokingVertex} | @ref Renderer::setProvokingVertex() @fn_gl{ProvokingVertex} | @ref Renderer::setProvokingVertex()
@fn_gl{PushDebugGroup}, \n @fn_gl_extension2{PushGroupMarker,EXT,debug_marker} | @ref DebugGroup::push() @fn_gl{PushDebugGroup}, \n @fn_gl_extension{PushGroupMarker,EXT,debug_marker} | @ref DebugGroup::push()
@fn_gl{PopDebugGroup}, \n @fn_gl_extension2{PopGroupMarker,EXT,debug_marker} | @ref DebugGroup::pop() @fn_gl{PopDebugGroup}, \n @fn_gl_extension{PopGroupMarker,EXT,debug_marker} | @ref DebugGroup::pop()
@subsection opengl-mapping-functions-q Q @subsection opengl-mapping-functions-q Q

218
doc/opengl-support.dox

@ -232,7 +232,7 @@ GLSL 4.50 | done
Extension | Status Extension | Status
------------------------------------------- | ------ ------------------------------------------- | ------
@extension{ARB,robustness} | done @extension{ARB,robustness} | done
@extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} | done @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} | done
@extension{KHR,texture_compression_astc_hdr} | done @extension{KHR,texture_compression_astc_hdr} | done
@extension{ARB,robustness_isolation} | done @extension{ARB,robustness_isolation} | done
@extension{ARB,bindless_texture} | | @extension{ARB,bindless_texture} | |
@ -246,7 +246,7 @@ Extension | Status
@extension{ARB,sparse_buffer} | | @extension{ARB,sparse_buffer} | |
@extension{ARB,transform_feedback_overflow_query} | done @extension{ARB,transform_feedback_overflow_query} | done
@extension{KHR,blend_equation_advanced} | done @extension{KHR,blend_equation_advanced} | done
@extension3{KHR,blend_equation_advanced_coherent,blend_equation_advanced} | done @extension2{KHR,blend_equation_advanced_coherent,blend_equation_advanced} | done
@extension{KHR,no_error} | done @extension{KHR,no_error} | done
@subsection opengl-support-extensions-vendor Vendor OpenGL extensions @subsection opengl-support-extensions-vendor Vendor OpenGL extensions
@ -267,8 +267,8 @@ Extension | Status
@extension{EXT,direct_state_access} | done for implemented functionality @extension{EXT,direct_state_access} | done for implemented functionality
@extension{EXT,texture_sRGB_decode} | done @extension{EXT,texture_sRGB_decode} | done
@extension{EXT,shader_integer_mix} | done (shading language only) @extension{EXT,shader_integer_mix} | done (shading language only)
@extension2{EXT,debug_label} | missing pipeline and sampler label @extension{EXT,debug_label} | missing pipeline and sampler label
@extension2{EXT,debug_marker} | done @extension{EXT,debug_marker} | done
@extension{GREMEDY,string_marker} | done @extension{GREMEDY,string_marker} | done
@subsection opengl-support-es20 OpenGL ES 2.0 @subsection opengl-support-es20 OpenGL ES 2.0
@ -290,119 +290,119 @@ supported. ESSL 3.10 is supported.
Extension | Status Extension | Status
------------------------------------------- | ------ ------------------------------------------- | ------
@es_extension{ANGLE,framebuffer_blit} | done @extension{ANGLE,framebuffer_blit} | done
@es_extension{ANGLE,framebuffer_multisample} | done @extension{ANGLE,framebuffer_multisample} | done
@es_extension{ANGLE,instanced_arrays} | done @extension{ANGLE,instanced_arrays} | done
@es_extension{ANGLE,depth_texture} | done @extension{ANGLE,depth_texture} | done
@es_extension{APPLE,framebuffer_multisample} | done (ES 3.0 subset) @extension{APPLE,framebuffer_multisample} | done (ES 3.0 subset)
@es_extension{APPLE,texture_max_level} | done @extension{APPLE,texture_max_level} | done
@es_extension{ARM,rgba8} | done @extension{ARM,rgba8} | done
@es_extension{EXT,texture_type_2_10_10_10_REV} | done @extension{EXT,texture_type_2_10_10_10_REV} | done
@es_extension{EXT,discard_framebuffer} | done @extension{EXT,discard_framebuffer} | done
@es_extension2{EXT,blend_minmax,blend_minmax} | done @extension2{EXT,blend_minmax,blend_minmax} | done
@es_extension{EXT,shader_texture_lod} | done (shading language only) @extension{EXT,shader_texture_lod} | done (shading language only)
@es_extension{EXT,unpack_subimage} | done @extension{EXT,unpack_subimage} | done
@es_extension{EXT,occlusion_query_boolean} | done @extension{EXT,occlusion_query_boolean} | done
@es_extension{EXT,shadow_samplers} | done @extension{EXT,shadow_samplers} | done
@es_extension{EXT,texture_rg} | done @extension{EXT,texture_rg} | done
@es_extension{EXT,sRGB} | done @extension{EXT,sRGB} | done
@es_extension{EXT,texture_storage} | done @extension{EXT,texture_storage} | done
@es_extension{EXT,map_buffer_range} | done @extension{EXT,map_buffer_range} | done
@es_extension{EXT,draw_buffers} | done @extension{EXT,draw_buffers} | done
@es_extension{EXT,instanced_arrays} | done @extension{EXT,instanced_arrays} | done
@es_extension2{EXT,draw_instanced,draw_instanced} | done @extension2{EXT,draw_instanced,draw_instanced} | done
@es_extension{NV,draw_buffers} | done @extension{NV,draw_buffers} | done
@es_extension{NV,fbo_color_attachments} | done @extension{NV,fbo_color_attachments} | done
@es_extension{NV,read_buffer} | done @extension{NV,read_buffer} | done
@es_extension{NV,pack_subimage} | done @extension{NV,pack_subimage} | done
@es_extension{NV,draw_instanced} | done @extension{NV,draw_instanced} | done
@es_extension{NV,framebuffer_blit} | done @extension{NV,framebuffer_blit} | done
@es_extension{NV,framebuffer_multisample} | done @extension{NV,framebuffer_multisample} | done
@es_extension{NV,instanced_arrays} | done @extension{NV,instanced_arrays} | done
@es_extension{NV,shadow_samplers_array} | done (shading language only) @extension{NV,shadow_samplers_array} | done (shading language only)
@es_extension{NV,shadow_samplers_cube} | done (shading language only) @extension{NV,shadow_samplers_cube} | done (shading language only)
@es_extension{OES,depth24} | done @extension{OES,depth24} | done
@es_extension{OES,element_index_uint} | done @extension{OES,element_index_uint} | done
@es_extension{OES,fbo_render_mipmap} | done @extension{OES,fbo_render_mipmap} | done
@es_extension{OES,rgb8_rgba8} | done (desktop-compatible subset) @extension{OES,rgb8_rgba8} | done (desktop-compatible subset)
@es_extension{OES,texture_3D} | done @extension{OES,texture_3D} | done
@es_extension2{OES,texture_half_float_linear,OES_texture_float_linear} | done @extension2{OES,texture_half_float_linear,OES_texture_float_linear} | done
@es_extension{OES,texture_float_linear} | done @extension{OES,texture_float_linear} | done
@es_extension2{OES,texture_half_float,OES_texture_float} | done @extension2{OES,texture_half_float,OES_texture_float} | done
@es_extension{OES,texture_float} | done @extension{OES,texture_float} | done
@es_extension{OES,texture_npot} | done (nothing to do) @extension{OES,texture_npot} | done (nothing to do)
@es_extension{OES,vertex_half_float} | done @extension{OES,vertex_half_float} | done
@es_extension{OES,packed_depth_stencil} | done @extension{OES,packed_depth_stencil} | done
@es_extension{OES,depth_texture} | done @extension{OES,depth_texture} | done
@es_extension{OES,standard_derivatives} | done @extension{OES,standard_derivatives} | done
@es_extension{OES,vertex_array_object} | done @extension{OES,vertex_array_object} | done
@es_extension{OES,required_internalformat} | done (desktop-compatible subset) @extension{OES,required_internalformat} | done (desktop-compatible subset)
@es_extension{OES,surfaceless_context} | done @extension{OES,surfaceless_context} | done
@subsection opengl-support-es-extensions OpenGL ES extensions @subsection opengl-support-es-extensions OpenGL ES extensions
@todo @es_extension{NV,non_square_matrices} @todo @extension{NV,non_square_matrices}
@todo Support also IMG_multisampled_render_to_texture? It has different enum @todo Support also IMG_multisampled_render_to_texture? It has different enum
values (!) values (!)
Extension | Status Extension | Status
------------------------------------------- | ------ ------------------------------------------- | ------
@es_extension{ANDROID,extension_pack_es31a} | done (nothing to do) @extension{ANDROID,extension_pack_es31a} | done (nothing to do)
@es_extension{APPLE,texture_format_BGRA8888} | done @extension{APPLE,texture_format_BGRA8888} | done
@es_extension{ARM,shader_framebuffer_fetch} | missing renderer setup and limit query @extension{ARM,shader_framebuffer_fetch} | missing renderer setup and limit query
@es_extension{ARM,shader_framebuffer_fetch_depth_stencil} | done (shading language only) @extension{ARM,shader_framebuffer_fetch_depth_stencil} | done (shading language only)
@es_extension{CHROMIUM,map_sub} (NaCl only) | only buffer mapping @extension{CHROMIUM,map_sub} (NaCl only) | only buffer mapping
@es_extension{EXT,texture_filter_anisotropic} | done @extension{EXT,texture_filter_anisotropic} | done
@es_extension{EXT,texture_format_BGRA8888} | done @extension{EXT,texture_format_BGRA8888} | done
@es_extension{EXT,read_format_bgra} | done @extension{EXT,read_format_bgra} | done
@es_extension2{EXT,multi_draw_arrays,multi_draw_arrays} | done @extension2{EXT,multi_draw_arrays,multi_draw_arrays} | done
@es_extension{EXT,debug_label} | see above @extension{EXT,debug_label} | see above
@es_extension{EXT,debug_marker} | done @extension{EXT,debug_marker} | done
@es_extension{EXT,separate_shader_objects} | only direct uniform binding @extension{EXT,separate_shader_objects} | only direct uniform binding
@es_extension{EXT,multisampled_render_to_texture} | only renderbuffer storage @extension{EXT,multisampled_render_to_texture} | only renderbuffer storage
@es_extension{EXT,robustness} | done @extension{EXT,robustness} | done
@es_extension{EXT,shader_framebuffer_fetch} | missing limit query @extension{EXT,shader_framebuffer_fetch} | missing limit query
@es_extension{EXT,disjoint_timer_query} | only time elapsed query @extension{EXT,disjoint_timer_query} | only time elapsed query
@es_extension{EXT,texture_sRGB_decode} | done @extension{EXT,texture_sRGB_decode} | done
@es_extension{EXT,sRGB_write_control} | done @extension{EXT,sRGB_write_control} | done
@es_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} | done @extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} | done
@es_extension{EXT,shader_integer_mix} | done (shading language only) @extension{EXT,shader_integer_mix} | done (shading language only)
@es_extension{EXT,copy_image} | | @extension{EXT,copy_image} | |
@es_extension{EXT,draw_buffers_indexed} | | @extension{EXT,draw_buffers_indexed} | |
@es_extension{EXT,geometry_shader} | missing some ES-specific limit queries @extension{EXT,geometry_shader} | missing some ES-specific limit queries
@es_extension{EXT,gpu_shader5} | done (shading language only) @extension{EXT,gpu_shader5} | done (shading language only)
@es_extension{EXT,shader_io_blocks} | done (shading language only) @extension{EXT,shader_io_blocks} | done (shading language only)
@es_extension{EXT,tessellation_shader} | see above @extension{EXT,tessellation_shader} | see above
@es_extension{EXT,texture_border_clamp} | done @extension{EXT,texture_border_clamp} | done
@es_extension{EXT,texture_buffer} | done @extension{EXT,texture_buffer} | done
@es_extension{EXT,texture_cube_map_array} | done @extension{EXT,texture_cube_map_array} | done
@es_extension{EXT,primitive_bounding_box} | | @extension{EXT,primitive_bounding_box} | |
@es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} | done @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} | done
@es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} | done @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} | done
@es_extension{KHR,debug} | see above @extension{KHR,debug} | see above
@es_extension2{KHR,blend_equation_advanced,blend_equation_advanced} | done @extension2{KHR,blend_equation_advanced,blend_equation_advanced} | done
@es_extension2{KHR,blend_equation_advanced_coherent,blend_equation_advanced} | done @extension2{KHR,blend_equation_advanced_coherent,blend_equation_advanced} | done
@es_extension{KHR,robustness} | | @extension{KHR,robustness} | |
@es_extension{KHR,robust_buffer_access_behavior} | done (nothing to do) @extension{KHR,robust_buffer_access_behavior} | done (nothing to do)
@es_extension{KHR,context_flush_control} | | @extension{KHR,context_flush_control} | |
@es_extension2{KHR,no_error,no_error} | done @extension2{KHR,no_error,no_error} | done
@es_extension2{NV,read_buffer_front,NV_read_buffer} | done @extension2{NV,read_buffer_front,NV_read_buffer} | done
@es_extension2{NV,read_depth,NV_read_depth_stencil} | done @extension2{NV,read_depth,NV_read_depth_stencil} | done
@es_extension2{NV,read_stencil,NV_read_depth_stencil} | done @extension2{NV,read_stencil,NV_read_depth_stencil} | done
@es_extension{NV,read_depth_stencil} | done @extension{NV,read_depth_stencil} | done
@es_extension{NV,texture_border_clamp} | done @extension{NV,texture_border_clamp} | done
@es_extension{NV,shader_noperspective_interpolation} | done (shading language only) @extension{NV,shader_noperspective_interpolation} | done (shading language only)
@es_extension{NV,polygon_mode} | done @extension{NV,polygon_mode} | done
@es_extension{OES,depth32} | done @extension{OES,depth32} | done
@es_extension{OES,mapbuffer} | done @extension{OES,mapbuffer} | done
@es_extension{OES,stencil1} | done @extension{OES,stencil1} | done
@es_extension{OES,stencil4} | done @extension{OES,stencil4} | done
@es_extension{OES,sample_shading} | | @extension{OES,sample_shading} | |
@es_extension{OES,sample_variables} | done (shading language only) @extension{OES,sample_variables} | done (shading language only)
@es_extension{OES,shader_image_atomic} | done (shading language only) @extension{OES,shader_image_atomic} | done (shading language only)
@es_extension{OES,shader_multisample_interpolation} | | @extension{OES,shader_multisample_interpolation} | |
@es_extension{OES,texture_stencil8} | done @extension{OES,texture_stencil8} | done
@es_extension{OES,texture_storage_multisample_2d_array} | done @extension{OES,texture_storage_multisample_2d_array} | done
@subsection opengl-support-webgl10 WebGL 1.0 @subsection opengl-support-webgl10 WebGL 1.0

26
src/Magnum/AbstractFramebuffer.h

@ -66,8 +66,8 @@ typedef Containers::EnumSet<FramebufferClear> FramebufferClearMask;
@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 @extension{ANGLE,framebuffer_blit} or
@es_extension{NV,framebuffer_blit} in OpenGL ES 2.0. @extension{NV,framebuffer_blit} in OpenGL ES 2.0.
@requires_webgl20 Framebuffer blit is not available in WebGL 1.0. @requires_webgl20 Framebuffer blit is not available in WebGL 1.0.
*/ */
enum class FramebufferBlit: GLbitfield { enum class FramebufferBlit: GLbitfield {
@ -81,8 +81,8 @@ enum class FramebufferBlit: GLbitfield {
@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 @extension{ANGLE,framebuffer_blit} or
@es_extension{NV,framebuffer_blit} in OpenGL ES 2.0. @extension{NV,framebuffer_blit} in OpenGL ES 2.0.
@requires_webgl20 Framebuffer blit is not available in WebGL 1.0. @requires_webgl20 Framebuffer blit is not available in WebGL 1.0.
*/ */
#ifndef DOXYGEN_GENERATING_OUTPUT #ifndef DOXYGEN_GENERATING_OUTPUT
@ -97,8 +97,8 @@ typedef Containers::EnumSet<FramebufferBlit> FramebufferBlitMask;
@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 @extension{ANGLE,framebuffer_blit} or
@es_extension{NV,framebuffer_blit} in OpenGL ES 2.0. @extension{NV,framebuffer_blit} in OpenGL ES 2.0.
@requires_webgl20 Framebuffer blit is not available in WebGL 1.0. @requires_webgl20 Framebuffer blit is not available in WebGL 1.0.
*/ */
enum class FramebufferBlitFilter: GLenum { enum class FramebufferBlitFilter: GLenum {
@ -191,8 +191,8 @@ class MAGNUM_EXPORT AbstractFramebuffer {
* @brief Max supported draw buffer count * @brief Max supported draw buffer count
* *
* The result is cached, repeated queries don't result in repeated * The result is cached, repeated queries don't result in repeated
* OpenGL calls. If neither @es_extension{EXT,draw_buffers} nor * OpenGL calls. If neither @extension{EXT,draw_buffers} nor
* @es_extension{NV,draw_buffers} is available in OpenGL ES 2.0 and * @extension{NV,draw_buffers} is available in OpenGL ES 2.0 and
* @webgl_extension{WEBGL,draw_buffers} is not available in WebGL 1.0, * @webgl_extension{WEBGL,draw_buffers} is not available in WebGL 1.0,
* returns `0`. * returns `0`.
* @see @ref DefaultFramebuffer::mapForDraw(), @ref Framebuffer::mapForDraw(), * @see @ref DefaultFramebuffer::mapForDraw(), @ref Framebuffer::mapForDraw(),
@ -234,8 +234,8 @@ class MAGNUM_EXPORT AbstractFramebuffer {
* before the operation (if not already). * before the operation (if not already).
* @see @fn_gl2{BlitNamedFramebuffer,BlitFramebuffer}, eventually * @see @fn_gl2{BlitNamedFramebuffer,BlitFramebuffer}, eventually
* @fn_gl{BlitFramebuffer} * @fn_gl{BlitFramebuffer}
* @requires_gles30 Extension @es_extension{ANGLE,framebuffer_blit} or * @requires_gles30 Extension @extension{ANGLE,framebuffer_blit} or
* @es_extension{NV,framebuffer_blit} in OpenGL ES 2.0. * @extension{NV,framebuffer_blit} in OpenGL ES 2.0.
* @requires_webgl20 Framebuffer blit is not available in WebGL 1.0. * @requires_webgl20 Framebuffer blit is not available in WebGL 1.0.
* @todo NaCl exports `BlitFramebufferEXT` (although no such extension * @todo NaCl exports `BlitFramebufferEXT` (although no such extension
* exists for ES) * exists for ES)
@ -602,7 +602,7 @@ class MAGNUM_EXPORT AbstractFramebuffer {
* @fn_gl_extension{CopyTextureSubImage3D,EXT,direct_state_access}, * @fn_gl_extension{CopyTextureSubImage3D,EXT,direct_state_access},
* eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and * eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl{CopyTexSubImage3D} * @fn_gl{CopyTexSubImage3D}
* @requires_gles30 Extension @es_extension{OES,texture_3D} in OpenGL * @requires_gles30 Extension @extension{OES,texture_3D} in OpenGL
* ES 2.0. * ES 2.0.
* @requires_webgl20 Only 2D textures are available in WebGL 1.0. * @requires_webgl20 Only 2D textures are available in WebGL 1.0.
*/ */
@ -677,8 +677,8 @@ class MAGNUM_EXPORT AbstractFramebuffer {
* @fn_gl{CopyTexSubImage3D} * @fn_gl{CopyTexSubImage3D}
* @requires_gl40 Extension @extension{ARB,texture_cube_map_array} * @requires_gl40 Extension @extension{ARB,texture_cube_map_array}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,texture_cube_map_array} * @extension{EXT,texture_cube_map_array}
* @requires_gles Cube map texture arrays are not available in WebGL. * @requires_gles Cube map texture arrays are not available in WebGL.
*/ */
void copySubImage(const Range2Di& rectangle, CubeMapTextureArray& texture, Int level, const Vector3i& offset); void copySubImage(const Range2Di& rectangle, CubeMapTextureArray& texture, Int level, const Vector3i& offset);

4
src/Magnum/AbstractObject.cpp

@ -90,8 +90,8 @@ namespace {
* @todo Shouldn't ES2's KHR_debug have `GL_TRANSFORM_FEEDBACK_KHR` * @todo Shouldn't ES2's KHR_debug have `GL_TRANSFORM_FEEDBACK_KHR`
* instead of `GL_TRANSFORM_FEEDBACK`? (it's a new enum in 2.0) * instead of `GL_TRANSFORM_FEEDBACK`? (it's a new enum in 2.0)
* NaCl extension header doesn't have it at all. Also the * NaCl extension header doesn't have it at all. Also the
* original @es_extension{EXT,debug_label} mentions it only * original @extension{EXT,debug_label} mentions it only
* for ES3 (i.e. no mention of @es_extension{EXT,transform_feedback}) * for ES3 (i.e. no mention of @extension{EXT,transform_feedback})
*/ */
#ifndef CORRADE_TARGET_NACL #ifndef CORRADE_TARGET_NACL
case GL_TRANSFORM_FEEDBACK: case GL_TRANSFORM_FEEDBACK:

4
src/Magnum/AbstractObject.h

@ -89,8 +89,8 @@ class MAGNUM_EXPORT 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. If OpenGL 4.3 is not supported and @extension{KHR,debug} * OpenGL calls. If OpenGL 4.3 is not supported and @extension{KHR,debug}
* desktop or ES extension (covered also by @es_extension{ANDROID,extension_pack_es31a}) * desktop or ES extension (covered also by @extension{ANDROID,extension_pack_es31a})
* is not available, returns `0`. Note that @extension2{EXT,debug_label} * is not available, returns `0`. Note that @extension{EXT,debug_label}
* has no such limit. * has no such limit.
* @see @ref AbstractQuery::setLabel(), @ref AbstractShaderProgram::setLabel(), * @see @ref AbstractQuery::setLabel(), @ref AbstractShaderProgram::setLabel(),
* @ref AbstractTexture::setLabel(), @ref Buffer::setLabel(), * @ref AbstractTexture::setLabel(), @ref Buffer::setLabel(),

14
src/Magnum/AbstractQuery.h

@ -87,11 +87,11 @@ class MAGNUM_EXPORT AbstractQuery: public AbstractObject {
* *
* 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
* @extension{KHR,debug} (covered also by @es_extension{ANDROID,extension_pack_es31a}) * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
* nor @extension2{EXT,debug_label} desktop or ES extension is * nor @extension{EXT,debug_label} desktop or ES extension is
* available, this function returns empty string. * available, this function returns empty string.
* @see @fn_gl{GetObjectLabel} with @def_gl{QUERY} or * @see @fn_gl{GetObjectLabel} with @def_gl{QUERY} or
* @fn_gl_extension2{GetObjectLabel,EXT,debug_label} with * @fn_gl_extension{GetObjectLabel,EXT,debug_label} with
* @def_gl{QUERY_OBJECT_EXT} * @def_gl{QUERY_OBJECT_EXT}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */
@ -102,11 +102,11 @@ class MAGNUM_EXPORT AbstractQuery: public AbstractObject {
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* Default is empty string. If OpenGL 4.3 is not supported and neither * Default is empty string. If OpenGL 4.3 is not supported and neither
* @extension{KHR,debug} (covered also by @es_extension{ANDROID,extension_pack_es31a}) * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
* nor @extension2{EXT,debug_label} desktop or ES extension is * nor @extension{EXT,debug_label} desktop or ES extension is
* available, this function does nothing. * available, this function does nothing.
* @see @ref maxLabelLength(), @fn_gl{ObjectLabel} with * @see @ref maxLabelLength(), @fn_gl{ObjectLabel} with
* @def_gl{QUERY} or @fn_gl_extension2{LabelObject,EXT,debug_label} * @def_gl{QUERY} or @fn_gl_extension{LabelObject,EXT,debug_label}
* with @def_gl{QUERY_OBJECT_EXT} * with @def_gl{QUERY_OBJECT_EXT}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */
@ -137,7 +137,7 @@ class MAGNUM_EXPORT AbstractQuery: public AbstractObject {
* @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::UnsignedLong "UnsignedLong" and @ref Magnum::Long "Long" * type @ref Magnum::UnsignedLong "UnsignedLong" and @ref Magnum::Long "Long"
* @requires_es_extension Extension @es_extension{EXT,disjoint_timer_query} * @requires_es_extension Extension @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"
* and @ref Magnum::Long "Long". * and @ref Magnum::Long "Long".
* @requires_gles Only @ref Magnum::UnsignedInt "UnsignedInt" result * @requires_gles Only @ref Magnum::UnsignedInt "UnsignedInt" result

24
src/Magnum/AbstractShaderProgram.h

@ -198,14 +198,14 @@ bindFragmentDataLocationIndexed(NormalOutput, 1, "normal");
instead. instead.
@requires_gles30 Multiple fragment shader outputs are not available in OpenGL @requires_gles30 Multiple fragment shader outputs are not available in OpenGL
ES 2.0, similar functionality is available in extension ES 2.0, similar functionality is available in extension
@es_extension{EXT,draw_buffers} or @es_extension{NV,draw_buffers}. @extension{EXT,draw_buffers} or @extension{NV,draw_buffers}.
@requires_webgl20 Explicit location specification of input attributes is not @requires_webgl20 Explicit location specification of input attributes is not
supported in WebGL 1.0, use @ref bindAttributeLocation() instead. supported in WebGL 1.0, use @ref bindAttributeLocation() instead.
@requires_webgl20 Multiple fragment shader outputs are not available in WebGL @requires_webgl20 Multiple fragment shader outputs are not available in WebGL
1.0, similar functionality is available in extension 1.0, similar functionality is available in extension
@webgl_extension{WEBGL,draw_buffers}. @webgl_extension{WEBGL,draw_buffers}.
@todo @es_extension{EXT,separate_shader_objects} supports explicit attrib @todo @extension{EXT,separate_shader_objects} supports explicit attrib
location location
@anchor AbstractShaderProgram-uniform-location @anchor AbstractShaderProgram-uniform-location
@ -467,7 +467,7 @@ cached, so repeated queries don't result in repeated @fn_gl{Get} calls. See
also @ref Context::resetState() and @ref Context::State::Shaders. also @ref Context::resetState() and @ref Context::State::Shaders.
If extension @extension{ARB,separate_shader_objects} (part of OpenGL 4.1), If extension @extension{ARB,separate_shader_objects} (part of OpenGL 4.1),
@extension{EXT,direct_state_access} desktop extension, @es_extension{EXT,separate_shader_objects} @extension{EXT,direct_state_access} desktop extension, @extension{EXT,separate_shader_objects}
OpenGL ES extension or OpenGL ES 3.1 is available, uniform setting functions OpenGL ES extension or OpenGL ES 3.1 is available, uniform setting functions
use DSA functions to avoid unnecessary calls to @fn_gl{UseProgram}. See use DSA functions to avoid unnecessary calls to @fn_gl{UseProgram}. See
@ref setUniform() documentation for more information. @ref setUniform() documentation for more information.
@ -738,11 +738,11 @@ class MAGNUM_EXPORT AbstractShaderProgram: public AbstractObject {
* *
* 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
* @extension{KHR,debug} (covered also by @es_extension{ANDROID,extension_pack_es31a}) * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
* nor @extension2{EXT,debug_label} desktop or ES extension is * nor @extension{EXT,debug_label} desktop or ES extension is
* available, this function returns empty string. * available, this function returns empty string.
* @see @fn_gl{GetObjectLabel} with @def_gl{PROGRAM} or * @see @fn_gl{GetObjectLabel} with @def_gl{PROGRAM} or
* @fn_gl_extension2{GetObjectLabel,EXT,debug_label} with * @fn_gl_extension{GetObjectLabel,EXT,debug_label} with
* @def_gl{PROGRAM_OBJECT_EXT} * @def_gl{PROGRAM_OBJECT_EXT}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */
@ -753,11 +753,11 @@ class MAGNUM_EXPORT AbstractShaderProgram: public AbstractObject {
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* Default is empty string. If OpenGL 4.3 is not supported and neither * Default is empty string. If OpenGL 4.3 is not supported and neither
* @extension{KHR,debug} (covered also by @es_extension{ANDROID,extension_pack_es31a}) * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
* nor @extension2{EXT,debug_label} desktop or ES extension is * nor @extension{EXT,debug_label} desktop or ES extension is
* available, this function does nothing. * available, this function does nothing.
* @see @ref maxLabelLength(), @fn_gl{ObjectLabel} with * @see @ref maxLabelLength(), @fn_gl{ObjectLabel} with
* @def_gl{PROGRAM} or @fn_gl_extension2{LabelObject,EXT,debug_label} * @def_gl{PROGRAM} or @fn_gl_extension{LabelObject,EXT,debug_label}
* with @def_gl{PROGRAM_OBJECT_EXT} * with @def_gl{PROGRAM_OBJECT_EXT}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */
@ -843,7 +843,7 @@ 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 @extension{EXT,separate_shader_objects}
* @requires_gles Separate shader objects are not supported in WebGL. * @requires_gles Separate shader objects are not supported in WebGL.
*/ */
void setSeparable(bool enabled) { void setSeparable(bool enabled) {
@ -935,7 +935,7 @@ class MAGNUM_EXPORT AbstractShaderProgram: public AbstractObject {
* 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 or * @requires_gl Use explicit location specification in OpenGL ES 3.0 or
* WebGL 2.0 and `gl_FragData[n]` provided by @es_extension{NV,draw_buffers} * WebGL 2.0 and `gl_FragData[n]` provided by @extension{NV,draw_buffers}
* in OpenGL ES 2.0 and @webgl_extension{WEBGL,draw_buffers} in * in OpenGL ES 2.0 and @webgl_extension{WEBGL,draw_buffers} in
* WebGL 1.0. * WebGL 1.0.
*/ */
@ -1085,7 +1085,7 @@ class MAGNUM_EXPORT AbstractShaderProgram: public AbstractObject {
* *
* If neither @extension{ARB,separate_shader_objects} (part of OpenGL * If neither @extension{ARB,separate_shader_objects} (part of OpenGL
* 4.1) nor @extension{EXT,direct_state_access} desktop extension nor * 4.1) nor @extension{EXT,direct_state_access} desktop extension nor
* @es_extension{EXT,separate_shader_objects} OpenGL ES extension nor * @extension{EXT,separate_shader_objects} OpenGL ES extension nor
* OpenGL ES 3.1 is available, the shader is marked for use before the * OpenGL ES 3.1 is available, the shader is marked for use before the
* operation. * operation.
* @see @ref setUniform(Int, const T&), @ref uniformLocation(), * @see @ref setUniform(Int, const T&), @ref uniformLocation(),

14
src/Magnum/AbstractTexture.h

@ -115,7 +115,7 @@ and then set data using @ref Texture::setSubImage() "setSubImage()".
Function @ref Texture::setStorage() "setStorage()" creates immutable texture Function @ref Texture::setStorage() "setStorage()" creates immutable texture
storage, removing the need for additional consistency checks and memory storage, removing the need for additional consistency checks and memory
reallocations when updating the data later. If OpenGL 4.2, @extension{ARB,texture_storage}, reallocations when updating the data later. If OpenGL 4.2, @extension{ARB,texture_storage},
OpenGL ES 3.0 or @es_extension{EXT,texture_storage} in OpenGL ES 2.0 is not OpenGL ES 3.0 or @extension{EXT,texture_storage} in OpenGL ES 2.0 is not
available, the feature is emulated with sequence of @ref Texture::setImage() "setImage()" available, the feature is emulated with sequence of @ref Texture::setImage() "setImage()"
calls. calls.
@ -347,11 +347,11 @@ class MAGNUM_EXPORT AbstractTexture: public AbstractObject {
* *
* 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
* @extension{KHR,debug} (covered also by @es_extension{ANDROID,extension_pack_es31a}) * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
* nor @extension2{EXT,debug_label} desktop or ES extension is * nor @extension{EXT,debug_label} desktop or ES extension is
* available, this function returns empty string. * available, this function returns empty string.
* @see @fn_gl{GetObjectLabel} or * @see @fn_gl{GetObjectLabel} or
* @fn_gl_extension2{GetObjectLabel,EXT,debug_label} with * @fn_gl_extension{GetObjectLabel,EXT,debug_label} with
* @def_gl{TEXTURE} * @def_gl{TEXTURE}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */
@ -362,11 +362,11 @@ class MAGNUM_EXPORT AbstractTexture: public AbstractObject {
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* Default is empty string. If OpenGL 4.3 is not supported and neither * Default is empty string. If OpenGL 4.3 is not supported and neither
* @extension{KHR,debug} (covered also by @es_extension{ANDROID,extension_pack_es31a}) * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
* nor @extension2{EXT,debug_label} desktop or ES extension is * nor @extension{EXT,debug_label} desktop or ES extension is
* available, this function does nothing. * available, this function does nothing.
* @see @ref maxLabelLength(), @fn_gl{ObjectLabel} or * @see @ref maxLabelLength(), @fn_gl{ObjectLabel} or
* @fn_gl_extension2{LabelObject,EXT,debug_label} with * @fn_gl_extension{LabelObject,EXT,debug_label} with
* @def_gl{TEXTURE} * @def_gl{TEXTURE}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */

4
src/Magnum/Attribute.h

@ -166,7 +166,7 @@ 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 @extension{OES,vertex_half_float}
* in OpenGL ES 2.0 * in OpenGL ES 2.0
* @requires_webgl20 Half float vertex attributes are not available * @requires_webgl20 Half float vertex attributes are not available
* in WebGL 1.0. * in WebGL 1.0.
@ -204,7 +204,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) @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.

32
src/Magnum/Buffer.h

@ -497,8 +497,8 @@ 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 @extension{OES,mapbuffer} or
* @es_extension{CHROMIUM,map_sub} * @extension{CHROMIUM,map_sub}
* @requires_gles Buffer mapping is not available in WebGL. * @requires_gles Buffer mapping is not available in WebGL.
* @deprecated_gl Prefer to use @ref map(GLintptr, GLsizeiptr, MapFlags) * @deprecated_gl Prefer to use @ref map(GLintptr, GLsizeiptr, MapFlags)
* instead, as it has more complete set of features. * instead, as it has more complete set of features.
@ -533,7 +533,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* *
* @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 @extension{EXT,map_buffer_range} in
* OpenGL ES 2.0. * OpenGL ES 2.0.
* @requires_gles Buffer mapping is not available in WebGL. * @requires_gles Buffer mapping is not available in WebGL.
*/ */
@ -601,7 +601,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* *
* @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 @extension{EXT,map_buffer_range} in
* OpenGL ES 2.0. * OpenGL ES 2.0.
* @requires_gles Buffer mapping is not available in WebGL. * @requires_gles Buffer mapping is not available in WebGL.
*/ */
@ -920,11 +920,11 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* *
* 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
* @extension{KHR,debug} (covered also by @es_extension{ANDROID,extension_pack_es31a}) * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
* nor @extension2{EXT,debug_label} desktop or ES extension is * nor @extension{EXT,debug_label} desktop or ES extension is
* available, this function returns empty string. * available, this function returns empty string.
* @see @fn_gl{GetObjectLabel} with @def_gl{BUFFER} or * @see @fn_gl{GetObjectLabel} with @def_gl{BUFFER} or
* @fn_gl_extension2{GetObjectLabel,EXT,debug_label} with * @fn_gl_extension{GetObjectLabel,EXT,debug_label} with
* @def_gl{BUFFER_OBJECT_EXT} * @def_gl{BUFFER_OBJECT_EXT}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */
@ -935,11 +935,11 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* Default is empty string. If OpenGL 4.3 is not supported and neither * Default is empty string. If OpenGL 4.3 is not supported and neither
* @extension{KHR,debug} (covered also by @es_extension{ANDROID,extension_pack_es31a}) * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
* nor @extension2{EXT,debug_label} desktop or ES extension is * nor @extension{EXT,debug_label} desktop or ES extension is
* available, this function does nothing. * available, this function does nothing.
* @see @ref maxLabelLength(), @fn_gl{ObjectLabel} with @def_gl{BUFFER} * @see @ref maxLabelLength(), @fn_gl{ObjectLabel} with @def_gl{BUFFER}
* or @fn_gl_extension2{LabelObject,EXT,debug_label} with * or @fn_gl_extension{LabelObject,EXT,debug_label} with
* @def_gl{BUFFER_OBJECT_EXT} * @def_gl{BUFFER_OBJECT_EXT}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */
@ -1188,7 +1188,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* @fn_gl2{MapNamedBuffer,MapBuffer}, * @fn_gl2{MapNamedBuffer,MapBuffer},
* @fn_gl_extension{MapNamedBuffer,EXT,direct_state_access}, * @fn_gl_extension{MapNamedBuffer,EXT,direct_state_access},
* eventually @fn_gl{BindBuffer} and @fn_gl{MapBuffer} * eventually @fn_gl{BindBuffer} and @fn_gl{MapBuffer}
* @requires_es_extension Extension @es_extension{OES,mapbuffer} in * @requires_es_extension Extension @extension{OES,mapbuffer} in
* OpenGL ES 2.0, use @ref map(GLintptr, GLsizeiptr, MapFlags) in * OpenGL ES 2.0, use @ref map(GLintptr, GLsizeiptr, MapFlags) in
* OpenGL ES 3.0 instead. * OpenGL ES 3.0 instead.
* @requires_gles Buffer mapping is not available in WebGL. * @requires_gles Buffer mapping is not available in WebGL.
@ -1216,7 +1216,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* @fn_gl_extension{MapBufferSubData,CHROMIUM,map_sub} * @fn_gl_extension{MapBufferSubData,CHROMIUM,map_sub}
* @requires_gles20 Available only in NaCl build. Use * @requires_gles20 Available only in NaCl build. Use
* @ref map(GLintptr, GLsizeiptr, MapFlags) elsewhere. * @ref map(GLintptr, GLsizeiptr, MapFlags) elsewhere.
* @requires_es_extension Extension @es_extension{CHROMIUM,map_sub} * @requires_es_extension Extension @extension{CHROMIUM,map_sub}
* @requires_gles Buffer mapping is not available in WebGL. * @requires_gles Buffer mapping is not available in WebGL.
* @deprecated_gl Prefer to use @ref map(GLintptr, GLsizeiptr, MapFlags) * @deprecated_gl Prefer to use @ref map(GLintptr, GLsizeiptr, MapFlags)
* instead, as it has more complete set of features. * instead, as it has more complete set of features.
@ -1247,7 +1247,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* @fn_gl_extension{MapNamedBufferRange,EXT,direct_state_access}, * @fn_gl_extension{MapNamedBufferRange,EXT,direct_state_access},
* eventually @fn_gl{BindBuffer} and @fn_gl{MapBufferRange} * eventually @fn_gl{BindBuffer} and @fn_gl{MapBufferRange}
* @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 @extension{EXT,map_buffer_range} in
* OpenGL ES 2.0. * OpenGL ES 2.0.
* @requires_gles Buffer mapping is not available in WebGL. * @requires_gles Buffer mapping is not available in WebGL.
*/ */
@ -1276,7 +1276,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* @fn_gl_extension{FlushMappedNamedBufferRange,EXT,direct_state_access}, * @fn_gl_extension{FlushMappedNamedBufferRange,EXT,direct_state_access},
* eventually @fn_gl{BindBuffer} and @fn_gl{FlushMappedBufferRange} * eventually @fn_gl{BindBuffer} and @fn_gl{FlushMappedBufferRange}
* @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 @extension{EXT,map_buffer_range} in
* OpenGL ES 2.0. * OpenGL ES 2.0.
* @requires_gles Buffer mapping is not available in WebGL. * @requires_gles Buffer mapping is not available in WebGL.
*/ */
@ -1297,7 +1297,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* @see @ref setTargetHint(), @fn_gl2{UnmapNamedBuffer,UnmapBuffer}, * @see @ref setTargetHint(), @fn_gl2{UnmapNamedBuffer,UnmapBuffer},
* @fn_gl_extension{UnmapNamedBuffer,EXT,direct_state_access}, * @fn_gl_extension{UnmapNamedBuffer,EXT,direct_state_access},
* eventually @fn_gl{BindBuffer} and @fn_gl{UnmapBuffer} * eventually @fn_gl{BindBuffer} and @fn_gl{UnmapBuffer}
* @requires_gles30 Extension @es_extension{OES,mapbuffer} in OpenGL * @requires_gles30 Extension @extension{OES,mapbuffer} in OpenGL
* ES 2.0. * ES 2.0.
* @requires_gles Buffer mapping is not available in WebGL. * @requires_gles Buffer mapping is not available in WebGL.
*/ */
@ -1312,7 +1312,7 @@ class MAGNUM_EXPORT Buffer: public AbstractObject {
* @see @fn_gl_extension{UnmapBufferSubData,CHROMIUM,map_sub} * @see @fn_gl_extension{UnmapBufferSubData,CHROMIUM,map_sub}
* @requires_gles20 Available only in NaCl build. Use * @requires_gles20 Available only in NaCl build. Use
* @ref map(GLintptr, GLsizeiptr, MapFlags) elsewhere. * @ref map(GLintptr, GLsizeiptr, MapFlags) elsewhere.
* @requires_es_extension Extension @es_extension{CHROMIUM,map_sub} * @requires_es_extension Extension @extension{CHROMIUM,map_sub}
* @requires_gles Buffer mapping is not available in WebGL. * @requires_gles Buffer mapping is not available in WebGL.
*/ */
void unmapSub(); void unmapSub();

4
src/Magnum/BufferTexture.h

@ -83,8 +83,8 @@ and respective function documentation for more information.
@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_gles30 Not defined in OpenGL ES 2.0. @requires_gles30 Not defined in OpenGL ES 2.0.
@requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
@es_extension{EXT,texture_buffer} @extension{EXT,texture_buffer}
@requires_gles Texture buffers are not available in WebGL. @requires_gles Texture buffers are not available in WebGL.
*/ */
class MAGNUM_EXPORT BufferTexture: public AbstractTexture { class MAGNUM_EXPORT BufferTexture: public AbstractTexture {

4
src/Magnum/BufferTextureFormat.h

@ -42,8 +42,8 @@ namespace Magnum {
@see @ref BufferTexture @see @ref BufferTexture
@requires_gl31 Extension @extension{ARB,texture_buffer_object} @requires_gl31 Extension @extension{ARB,texture_buffer_object}
@requires_gles30 Not defined in OpenGL ES 2.0. @requires_gles30 Not defined in OpenGL ES 2.0.
@requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
@es_extension{EXT,texture_buffer} @extension{EXT,texture_buffer}
@requires_gles Texture buffers are not available in WebGL. @requires_gles Texture buffers are not available in WebGL.
*/ */
enum class BufferTextureFormat: GLenum { enum class BufferTextureFormat: GLenum {

8
src/Magnum/Context.h

@ -127,8 +127,8 @@ class MAGNUM_EXPORT Context {
/** /**
* Debug context * Debug context
* @requires_gl43 Extension @extension{KHR,debug} * @requires_gl43 Extension @extension{KHR,debug}
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,debug,debug} * @extension2{KHR,debug,debug}
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
Debug = GL_CONTEXT_FLAG_DEBUG_BIT, Debug = GL_CONTEXT_FLAG_DEBUG_BIT,
@ -139,7 +139,7 @@ class MAGNUM_EXPORT Context {
/** /**
* Context without error reporting * Context without error reporting
* @requires_extension Extension @extension{KHR,no_error} * @requires_extension Extension @extension{KHR,no_error}
* @requires_es_extension Extension @es_extension2{KHR,no_error,no_error} * @requires_es_extension Extension @extension2{KHR,no_error,no_error}
*/ */
NoError = GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR, NoError = GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR,
@ -147,7 +147,7 @@ class MAGNUM_EXPORT Context {
/** /**
* 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 @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?
*/ */

30
src/Magnum/CubeMapTexture.h

@ -251,7 +251,7 @@ class MAGNUM_EXPORT CubeMapTexture: public AbstractTexture {
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* See @ref Texture::setMaxLevel() for more information. * See @ref Texture::setMaxLevel() for more information.
* @requires_gles30 Extension @es_extension{APPLE,texture_max_level}, * @requires_gles30 Extension @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.
* @requires_webgl20 Always set to largest possible value in WebGL 1.0. * @requires_webgl20 Always set to largest possible value in WebGL 1.0.
@ -349,9 +349,9 @@ class MAGNUM_EXPORT CubeMapTexture: public AbstractTexture {
* *
* See @ref Texture::setBorderColor(const Color4&) for more * See @ref Texture::setBorderColor(const Color4&) for more
* information. * information.
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,texture_border_clamp} or * @extension{EXT,texture_border_clamp} or
* @es_extension{NV,texture_border_clamp} * @extension{NV,texture_border_clamp}
* @requires_gles Border clamp is not available in WebGL. * @requires_gles Border clamp is not available in WebGL.
*/ */
CubeMapTexture& setBorderColor(const Color4& color) { CubeMapTexture& setBorderColor(const Color4& color) {
@ -369,8 +369,8 @@ class MAGNUM_EXPORT CubeMapTexture: public AbstractTexture {
* @requires_gl30 Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
* @requires_es_extension Extension * @requires_es_extension Extension
* @es_extension{ANDROID,extension_pack_es31a}/ * @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,texture_border_clamp} * @extension{EXT,texture_border_clamp}
* @requires_gles Border clamp is not available in WebGL. * @requires_gles Border clamp is not available in WebGL.
*/ */
CubeMapTexture& setBorderColor(const Vector4ui& color) { CubeMapTexture& setBorderColor(const Vector4ui& color) {
@ -382,8 +382,8 @@ class MAGNUM_EXPORT CubeMapTexture: public AbstractTexture {
* @requires_gl30 Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
* @requires_es_extension Extension * @requires_es_extension Extension
* @es_extension{ANDROID,extension_pack_es31a}/ * @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,texture_border_clamp} * @extension{EXT,texture_border_clamp}
* @requires_gles Border clamp is not available in WebGL. * @requires_gles Border clamp is not available in WebGL.
*/ */
CubeMapTexture& setBorderColor(const Vector4i& color) { CubeMapTexture& setBorderColor(const Vector4i& color) {
@ -412,9 +412,9 @@ class MAGNUM_EXPORT CubeMapTexture: public AbstractTexture {
* See @ref Texture::setSRGBDecode() for more information. * See @ref Texture::setSRGBDecode() for more information.
* @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 * @extension{EXT,sRGB} and
* @es_extension{ANDROID,extension_pack_es31a}/ * @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{EXT,texture_sRGB_decode,texture_sRGB_decode} * @extension2{EXT,texture_sRGB_decode,texture_sRGB_decode}
* @requires_gles SRGB decode is not available in WebGL. * @requires_gles SRGB decode is not available in WebGL.
*/ */
CubeMapTexture& setSRGBDecode(bool decode) { CubeMapTexture& setSRGBDecode(bool decode) {
@ -445,8 +445,8 @@ 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 @extension{EXT,shadow_samplers} and
* @es_extension{NV,shadow_samplers_cube} in OpenGL ES 2.0. * @extension{NV,shadow_samplers_cube} in OpenGL ES 2.0.
* @requires_webgl20 Depth texture comparison is not available in WebGL * @requires_webgl20 Depth texture comparison is not available in WebGL
* 1.0. * 1.0.
*/ */
@ -460,8 +460,8 @@ 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 @extension{EXT,shadow_samplers} and
* @es_extension{NV,shadow_samplers_cube} in OpenGL ES 2.0. * @extension{NV,shadow_samplers_cube} in OpenGL ES 2.0.
* @requires_webgl20 Depth texture comparison is not available in WebGL * @requires_webgl20 Depth texture comparison is not available in WebGL
* 1.0. * 1.0.
*/ */

22
src/Magnum/CubeMapTextureArray.h

@ -81,8 +81,8 @@ the six sides of the cube map, fourth part is layer in the array. See
@ref MultisampleTexture @ref MultisampleTexture
@requires_gl40 Extension @extension{ARB,texture_cube_map_array} @requires_gl40 Extension @extension{ARB,texture_cube_map_array}
@requires_gles30 Not defined in OpenGL ES 2.0. @requires_gles30 Not defined in OpenGL ES 2.0.
@requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
@es_extension{EXT,texture_cube_map_array} @extension{EXT,texture_cube_map_array}
@requires_gles Cube map texture arrays are not available in WebGL. @requires_gles Cube map texture arrays are not available in WebGL.
*/ */
class MAGNUM_EXPORT CubeMapTextureArray: public AbstractTexture { class MAGNUM_EXPORT CubeMapTextureArray: public AbstractTexture {
@ -321,9 +321,9 @@ class MAGNUM_EXPORT CubeMapTextureArray: public AbstractTexture {
* *
* See @ref Texture::setBorderColor(const Color4&) for more * See @ref Texture::setBorderColor(const Color4&) for more
* information. * information.
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,texture_border_clamp} or * @extension{EXT,texture_border_clamp} or
* @es_extension{NV,texture_border_clamp} * @extension{NV,texture_border_clamp}
*/ */
CubeMapTextureArray& setBorderColor(const Color4& color) { CubeMapTextureArray& setBorderColor(const Color4& color) {
AbstractTexture::setBorderColor(color); AbstractTexture::setBorderColor(color);
@ -337,8 +337,8 @@ class MAGNUM_EXPORT CubeMapTextureArray: public AbstractTexture {
* See @ref Texture::setBorderColor(const Vector4ui&) for more * See @ref Texture::setBorderColor(const Vector4ui&) for more
* information. * information.
* @requires_gl30 Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,texture_border_clamp} * @extension{EXT,texture_border_clamp}
*/ */
CubeMapTextureArray& setBorderColor(const Vector4ui& color) { CubeMapTextureArray& setBorderColor(const Vector4ui& color) {
AbstractTexture::setBorderColor(color); AbstractTexture::setBorderColor(color);
@ -347,8 +347,8 @@ class MAGNUM_EXPORT CubeMapTextureArray: public AbstractTexture {
/** @overload /** @overload
* @requires_gl30 Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,texture_border_clamp} * @extension{EXT,texture_border_clamp}
*/ */
CubeMapTextureArray& setBorderColor(const Vector4i& color) { CubeMapTextureArray& setBorderColor(const Vector4i& color) {
AbstractTexture::setBorderColor(color); AbstractTexture::setBorderColor(color);
@ -372,8 +372,8 @@ class MAGNUM_EXPORT CubeMapTextureArray: public AbstractTexture {
* *
* See @ref Texture::setSRGBDecode() for more information. * See @ref Texture::setSRGBDecode() for more information.
* @requires_extension Extension @extension{EXT,texture_sRGB_decode} * @requires_extension Extension @extension{EXT,texture_sRGB_decode}
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{EXT,texture_sRGB_decode,texture_sRGB_decode} * @extension2{EXT,texture_sRGB_decode,texture_sRGB_decode}
*/ */
CubeMapTextureArray& setSRGBDecode(bool decode) { CubeMapTextureArray& setSRGBDecode(bool decode) {
AbstractTexture::setSRGBDecode(decode); AbstractTexture::setSRGBDecode(decode);

52
src/Magnum/DebugOutput.h

@ -59,8 +59,8 @@ stream in various graphics debuggers, such as Apitrace or gDEBugger.
## Basic usage ## Basic usage
Support for debug output is provided by OpenGL 4.3 or @extension{KHR,debug} Support for debug output is provided by OpenGL 4.3 or @extension{KHR,debug}
(desktop/ES extension, covered also by @es_extension{ANDROID,extension_pack_es31a}). (desktop/ES extension, covered also by @extension{ANDROID,extension_pack_es31a}).
Subset of the functionality is provided also by @extension2{EXT,debug_marker} Subset of the functionality is provided also by @extension{EXT,debug_marker}
(desktop/ES extensions) or @extension{GREMEDY,string_marker} (desktop only (desktop/ES extensions) or @extension{GREMEDY,string_marker} (desktop only
extension). extension).
@ -108,12 +108,12 @@ possibly also other messages) will be printed on standard output:
> ...\n > ...\n
> Debug output: application debug group leave (42): Scene rendering > Debug output: application debug group leave (42): Scene rendering
If only @extension2{EXT,debug_marker} or @extension{GREMEDY,string_marker} are If only @extension{EXT,debug_marker} or @extension{GREMEDY,string_marker} are
supported, only user-inserted messages and debug groups are supported and they supported, only user-inserted messages and debug groups are supported and they
can be seen only through graphics debugger. can be seen only through graphics debugger.
If OpenGL 4.3 is not supported and neither @extension{KHR,debug} nor If OpenGL 4.3 is not supported and neither @extension{KHR,debug} nor
@extension2{EXT,debug_marker} nor @extension{GREMEDY,string_marker} are @extension{EXT,debug_marker} nor @extension{GREMEDY,string_marker} are
available, all the functions are essentially a no-op. available, all the functions are essentially a no-op.
Besides inserting messages into GL command stream you can also annotate OpenGL Besides inserting messages into GL command stream you can also annotate OpenGL
@ -301,7 +301,7 @@ class MAGNUM_EXPORT DebugOutput {
* *
* The result is cached, repeated queries don't result in repeated * The result is cached, repeated queries don't result in repeated
* OpenGL calls. If OpenGL 4.3 is not supported and @extension{KHR,debug} * OpenGL calls. If OpenGL 4.3 is not supported and @extension{KHR,debug}
* desktop or ES extension (covered also by @es_extension{ANDROID,extension_pack_es31a}) * desktop or ES extension (covered also by @extension{ANDROID,extension_pack_es31a})
* is not available, returns `0`. * is not available, returns `0`.
* @see @fn_gl{Get} with @def_gl{MAX_DEBUG_LOGGED_MESSAGES} * @see @fn_gl{Get} with @def_gl{MAX_DEBUG_LOGGED_MESSAGES}
*/ */
@ -312,7 +312,7 @@ class MAGNUM_EXPORT DebugOutput {
* *
* The result is cached, repeated queries don't result in repeated * The result is cached, repeated queries don't result in repeated
* OpenGL calls. If OpenGL 4.3 is not supported and @extension{KHR,debug} * OpenGL calls. If OpenGL 4.3 is not supported and @extension{KHR,debug}
* desktop or ES extension (covered also by @es_extension{ANDROID,extension_pack_es31a}) * desktop or ES extension (covered also by @extension{ANDROID,extension_pack_es31a})
* is not available, returns `0`. * is not available, returns `0`.
* @see @fn_gl{Get} with @def_gl{MAX_DEBUG_MESSAGE_LENGTH} * @see @fn_gl{Get} with @def_gl{MAX_DEBUG_MESSAGE_LENGTH}
*/ */
@ -328,7 +328,7 @@ class MAGNUM_EXPORT DebugOutput {
* for more information. * for more information.
* *
* If OpenGL 4.3 is not supported and @extension{KHR,debug} desktop or * If OpenGL 4.3 is not supported and @extension{KHR,debug} desktop or
* ES extension (covered also by @es_extension{ANDROID,extension_pack_es31a}) * ES extension (covered also by @extension{ANDROID,extension_pack_es31a})
* is not available, this function does nothing. * is not available, this function does nothing.
* @see @ref Renderer::Feature::DebugOutput, @fn_gl{DebugMessageControl} * @see @ref Renderer::Feature::DebugOutput, @fn_gl{DebugMessageControl}
*/ */
@ -382,7 +382,7 @@ class MAGNUM_EXPORT DebugOutput {
* The messages are sent to the callback only if * The messages are sent to the callback only if
* @ref Renderer::Feature::DebugOutput is enabled. If OpenGL 4.3 is not * @ref Renderer::Feature::DebugOutput is enabled. If OpenGL 4.3 is not
* supported and @extension{KHR,debug} desktop or ES extension (covered * supported and @extension{KHR,debug} desktop or ES extension (covered
* also by @es_extension{ANDROID,extension_pack_es31a}) is not * also by @extension{ANDROID,extension_pack_es31a}) is not
* available, this function does nothing. * available, this function does nothing.
* @see @ref setDefaultCallback(), * @see @ref setDefaultCallback(),
* @ref Renderer::Feature::DebugOutputSynchronous, * @ref Renderer::Feature::DebugOutputSynchronous,
@ -438,7 +438,7 @@ gDEBugger.
See @ref DebugOutput for introduction. See @ref DebugOutput for introduction.
If OpenGL 4.3 is supported or @extension{KHR,debug} desktop or ES extension If OpenGL 4.3 is supported or @extension{KHR,debug} desktop or ES extension
(covered also by @es_extension{ANDROID,extension_pack_es31a}) is available and (covered also by @extension{ANDROID,extension_pack_es31a}) is available and
default debug output callback is enabled for given kind of messages, the default debug output callback is enabled for given kind of messages, the
inserted message will be printed on standard output in the following form: inserted message will be printed on standard output in the following form:
@ -449,11 +449,11 @@ DebugMessage::insert(DebugMessage::Source::Application, DebugMessage::Type::Mark
> Debug output: application marker (1337): Hello from OpenGL command stream! > Debug output: application marker (1337): Hello from OpenGL command stream!
If only @extension2{EXT,debug_marker} or @extension{GREMEDY,string_marker} are If only @extension{EXT,debug_marker} or @extension{GREMEDY,string_marker} are
available, the message can be seen only through graphics debugger. available, the message can be seen only through graphics debugger.
If OpenGL 4.3 is not supported and neither @extension{KHR,debug} nor If OpenGL 4.3 is not supported and neither @extension{KHR,debug} nor
@extension2{EXT,debug_marker} nor @extension{GREMEDY,string_marker} are @extension{EXT,debug_marker} nor @extension{GREMEDY,string_marker} are
available, the function is essentially a no-op. available, the function is essentially a no-op.
## Performance notes ## Performance notes
@ -656,16 +656,16 @@ class MAGNUM_EXPORT DebugMessage {
* @param string The actual message * @param string The actual message
* *
* If OpenGL 4.3 is not supported and neither @extension{KHR,debug} * If OpenGL 4.3 is not supported and neither @extension{KHR,debug}
* (covered also by @es_extension{ANDROID,extension_pack_es31a}) nor * (covered also by @extension{ANDROID,extension_pack_es31a}) nor
* @extension2{EXT,debug_marker} (desktop or ES extensions) nor * @extension{EXT,debug_marker} (desktop or ES extensions) nor
* @extension{GREMEDY,string_marker} (desktop only extension) are * @extension{GREMEDY,string_marker} (desktop only extension) are
* available, this function does nothing. * available, this function does nothing.
* *
* If @extension{KHR,debug} is not available and only @extension2{EXT,debug_marker} * If @extension{KHR,debug} is not available and only @extension{EXT,debug_marker}
* or @extension{GREMEDY,string_marker} are available, only @p string * or @extension{GREMEDY,string_marker} are available, only @p string
* is used and all other parameters are ignored. * is used and all other parameters are ignored.
* @see @ref DebugOutput::maxMessageLength(), @fn_gl{DebugMessageInsert}, * @see @ref DebugOutput::maxMessageLength(), @fn_gl{DebugMessageInsert},
* @fn_gl_extension2{InsertEventMarker,EXT,debug_marker} or * @fn_gl_extension{InsertEventMarker,EXT,debug_marker} or
* @fn_gl_extension{StringMarker,GREMEDY,string_marker} * @fn_gl_extension{StringMarker,GREMEDY,string_marker}
*/ */
static void insert(Source source, Type type, UnsignedInt id, DebugOutput::Severity severity, const std::string& string) { static void insert(Source source, Type type, UnsignedInt id, DebugOutput::Severity severity, const std::string& string) {
@ -736,7 +736,7 @@ group.pop();
@endcode @endcode
If OpenGL 4.3 is supported or @extension{KHR,debug} desktop or ES extension If OpenGL 4.3 is supported or @extension{KHR,debug} desktop or ES extension
(covered also by @es_extension{ANDROID,extension_pack_es31a}) is available and (covered also by @extension{ANDROID,extension_pack_es31a}) is available and
the default debug output callback is enabled for these kinds of messages, the the default debug output callback is enabled for these kinds of messages, the
group entering and leaving will be printed on standard output in the following group entering and leaving will be printed on standard output in the following
form: form:
@ -744,11 +744,11 @@ form:
> Debug output: application debug group enter (42): Scene rendering\n > Debug output: application debug group enter (42): Scene rendering\n
> Debug output: application debug group leave (42): Scene rendering > Debug output: application debug group leave (42): Scene rendering
If only @extension2{EXT,debug_marker} is available, the group can be seen only If only @extension{EXT,debug_marker} is available, the group can be seen only
through graphics debugger. through graphics debugger.
If OpenGL 4.3 is not supported and neither @extension{KHR,debug} nor If OpenGL 4.3 is not supported and neither @extension{KHR,debug} nor
@extension2{EXT,debug_marker} are available, the functions are essentially a @extension{EXT,debug_marker} are available, the functions are essentially a
no-op. no-op.
@attention To avoid accidental debug group stack overflow/underflow, you cannot @attention To avoid accidental debug group stack overflow/underflow, you cannot
@ -807,7 +807,7 @@ class MAGNUM_EXPORT DebugGroup {
* *
* The result is cached, repeated queries don't result in repeated * The result is cached, repeated queries don't result in repeated
* OpenGL calls. If OpenGL 4.3 is not supported and @extension{KHR,debug} * OpenGL calls. If OpenGL 4.3 is not supported and @extension{KHR,debug}
* desktop or ES extension (covered also by @es_extension{ANDROID,extension_pack_es31a}) * desktop or ES extension (covered also by @extension{ANDROID,extension_pack_es31a})
* is not available, returns `0`. * is not available, returns `0`.
* @see @fn_gl{Get} with @def_gl{MAX_DEBUG_GROUP_STACK_DEPTH} * @see @fn_gl{Get} with @def_gl{MAX_DEBUG_GROUP_STACK_DEPTH}
*/ */
@ -851,14 +851,14 @@ class MAGNUM_EXPORT DebugGroup {
* @ref DebugOutput::Severity::Notification. * @ref DebugOutput::Severity::Notification.
* *
* If OpenGL 4.3 is not supported and neither @extension{KHR,debug} * If OpenGL 4.3 is not supported and neither @extension{KHR,debug}
* (covered also by @es_extension{ANDROID,extension_pack_es31a}) nor * (covered also by @extension{ANDROID,extension_pack_es31a}) nor
* @extension2{EXT,debug_marker} is available, this function does * @extension{EXT,debug_marker} is available, this function does
* nothing. If @extension{KHR,debug} is not available and only * nothing. If @extension{KHR,debug} is not available and only
* @extension2{EXT,debug_marker} is available, only @p message is used * @extension{EXT,debug_marker} is available, only @p message is used
* and all other parameters are ignored. * and all other parameters are ignored.
* @see @ref pop(), @ref maxStackDepth(), @ref DebugOutput::maxMessageLength(), * @see @ref pop(), @ref maxStackDepth(), @ref DebugOutput::maxMessageLength(),
* @ref Renderer::Error::StackOverflow, @fn_gl{PushDebugGroup} or * @ref Renderer::Error::StackOverflow, @fn_gl{PushDebugGroup} or
* @fn_gl_extension2{PushGroupMarker,EXT,debug_marker} * @fn_gl_extension{PushGroupMarker,EXT,debug_marker}
*/ */
void push(Source source, UnsignedInt id, const std::string& message) { void push(Source source, UnsignedInt id, const std::string& message) {
pushInternal(source, id, {message.data(), message.size()}); pushInternal(source, id, {message.data(), message.size()});
@ -880,12 +880,12 @@ class MAGNUM_EXPORT DebugGroup {
* @ref DebugOutput::Severity::Notification. * @ref DebugOutput::Severity::Notification.
* *
* If OpenGL 4.3 is not supported and neither @extension{KHR,debug} * If OpenGL 4.3 is not supported and neither @extension{KHR,debug}
* (covered also by @es_extension{ANDROID,extension_pack_es31a}) nor * (covered also by @extension{ANDROID,extension_pack_es31a}) nor
* @extension2{EXT,debug_marker} is available, this function does * @extension{EXT,debug_marker} is available, this function does
* nothing. * nothing.
* @see @ref push(), @ref Renderer::Error::StackUnderflow, * @see @ref push(), @ref Renderer::Error::StackUnderflow,
* @fn_gl{PopDebugGroup} or * @fn_gl{PopDebugGroup} or
* @fn_gl_extension2{PopGroupMarker,EXT,debug_marker} * @fn_gl_extension{PopGroupMarker,EXT,debug_marker}
*/ */
void pop(); void pop();

4
src/Magnum/DebugTools/BufferData.h

@ -48,7 +48,7 @@ namespace Implementation {
Emulates @ref Buffer::subData() call on platforms that don't support it (such Emulates @ref Buffer::subData() call on platforms that don't support it (such
as OpenGL ES) by using @ref Buffer::map(). as OpenGL ES) by using @ref Buffer::map().
@requires_gles30 Extension @es_extension{EXT,map_buffer_range} in OpenGL ES @requires_gles30 Extension @extension{EXT,map_buffer_range} in OpenGL ES
2.0. 2.0.
@requires_gles Buffer mapping is not available in WebGL. @requires_gles Buffer mapping is not available in WebGL.
*/ */
@ -63,7 +63,7 @@ template<class T> Containers::Array<T> inline bufferSubData(Buffer& buffer, GLin
Emulates @ref Buffer::data() call on platforms that don't support it (such as Emulates @ref Buffer::data() call on platforms that don't support it (such as
OpenGL ES) by using @ref Buffer::map(). OpenGL ES) by using @ref Buffer::map().
@requires_gles30 Extension @es_extension{EXT,map_buffer_range} in OpenGL ES @requires_gles30 Extension @extension{EXT,map_buffer_range} in OpenGL ES
2.0. 2.0.
@requires_gles Buffer mapping is not available in WebGL. @requires_gles Buffer mapping is not available in WebGL.
*/ */

24
src/Magnum/DefaultFramebuffer.h

@ -96,7 +96,7 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
#ifndef MAGNUM_TARGET_WEBGL #ifndef MAGNUM_TARGET_WEBGL
/** /**
* The default framebuffer does not exist. * The default framebuffer does not exist.
* @requires_gles30 Extension @es_extension{OES,surfaceless_context} * @requires_gles30 Extension @extension{OES,surfaceless_context}
* in OpenGL ES 2.0. * in OpenGL ES 2.0.
* @requires_gles Surfaceless context is not available in WebGL. * @requires_gles Surfaceless context is not available in WebGL.
*/ */
@ -112,7 +112,7 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
* @brief Draw attachment * @brief Draw attachment
* *
* @see @ref mapForDraw() * @see @ref mapForDraw()
* @requires_gles30 Extension @es_extension{EXT,draw_buffers} in OpenGL * @requires_gles30 Extension @extension{EXT,draw_buffers} in OpenGL
* ES 2.0. * ES 2.0.
* @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in * @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in
* WebGL 1.0. * WebGL 1.0.
@ -168,7 +168,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 @extension2{NV,read_buffer,GL_NV_read_buffer}
* in OpenGL ES 2.0. * in OpenGL ES 2.0.
* @requires_webgl20 Framebuffer read mapping is not available in WebGL * @requires_webgl20 Framebuffer read mapping is not available in WebGL
* 1.0. * 1.0.
@ -226,7 +226,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 @extension2{NV,read_buffer_front,GL_NV_read_buffer}
* @requires_gles Reading from front buffer is not available in * @requires_gles Reading from front buffer is not available in
* WebGL. * WebGL.
*/ */
@ -250,7 +250,7 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
* *
* @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} in * @requires_gles30 Extension @extension{EXT,discard_framebuffer} in
* OpenGL ES 2.0. * OpenGL ES 2.0.
* @requires_webgl20 Framebuffer invalidation is not available in WebGL * @requires_webgl20 Framebuffer invalidation is not available in WebGL
* 1.0. * 1.0.
@ -333,8 +333,8 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
* already). * already).
* *
* The @p target parameter is ignored on OpenGL ES 2.0 if none of * The @p target parameter is ignored on OpenGL ES 2.0 if none of
* @es_extension{APPLE,framebuffer_multisample}, @es_extension{ANGLE,framebuffer_blit} * @extension{APPLE,framebuffer_multisample}, @extension{ANGLE,framebuffer_blit}
* or @es_extension{NV,framebuffer_blit} is available and also on WebGL * or @extension{NV,framebuffer_blit} is available and also on WebGL
* 1.0. * 1.0.
* @see @fn_gl2{CheckNamedFramebufferStatus,CheckFramebufferStatus}, * @see @fn_gl2{CheckNamedFramebufferStatus,CheckFramebufferStatus},
* @fn_gl_extension{CheckNamedFramebufferStatus,EXT,direct_state_access}, * @fn_gl_extension{CheckNamedFramebufferStatus,EXT,direct_state_access},
@ -364,7 +364,7 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
* @ref mapForRead(), @fn_gl2{NamedFramebufferDrawBuffers,DrawBuffers}, * @ref mapForRead(), @fn_gl2{NamedFramebufferDrawBuffers,DrawBuffers},
* @fn_gl_extension{FramebufferDrawBuffers,EXT,direct_state_access}, * @fn_gl_extension{FramebufferDrawBuffers,EXT,direct_state_access},
* eventually @fn_gl{BindFramebuffer} and @fn_gl{DrawBuffers} * eventually @fn_gl{BindFramebuffer} and @fn_gl{DrawBuffers}
* @requires_gles30 Extension @es_extension{EXT,draw_buffers} in OpenGL * @requires_gles30 Extension @extension{EXT,draw_buffers} in OpenGL
* ES 2.0. * ES 2.0.
* @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in * @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in
* WebGL 1.0. * WebGL 1.0.
@ -387,7 +387,7 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
* @fn_gl_extension{FramebufferDrawBuffer,EXT,direct_state_access}, * @fn_gl_extension{FramebufferDrawBuffer,EXT,direct_state_access},
* eventually @fn_gl{BindFramebuffer} and @fn_gl{DrawBuffer} or * eventually @fn_gl{BindFramebuffer} and @fn_gl{DrawBuffer} or
* @fn_gl{DrawBuffers} in OpenGL ES 3.0 * @fn_gl{DrawBuffers} in OpenGL ES 3.0
* @requires_gles30 Extension @es_extension{EXT,draw_buffers} in OpenGL * @requires_gles30 Extension @extension{EXT,draw_buffers} in OpenGL
* ES 2.0. * ES 2.0.
* @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in * @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in
* WebGL 1.0. * WebGL 1.0.
@ -407,7 +407,7 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
* @see @ref mapForDraw(), @fn_gl2{NamedFramebufferReadBuffer,ReadBuffer}, * @see @ref mapForDraw(), @fn_gl2{NamedFramebufferReadBuffer,ReadBuffer},
* @fn_gl_extension{FramebufferReadBuffer,EXT,direct_state_access}, * @fn_gl_extension{FramebufferReadBuffer,EXT,direct_state_access},
* eventually @fn_gl{BindFramebuffer} and @fn_gl{ReadBuffer} * eventually @fn_gl{BindFramebuffer} and @fn_gl{ReadBuffer}
* @requires_gles30 Extension @es_extension2{NV,read_buffer,GL_NV_read_buffer} * @requires_gles30 Extension @extension2{NV,read_buffer,GL_NV_read_buffer}
* in OpenGL ES 2.0. * in OpenGL ES 2.0.
* @requires_webgl20 Framebuffer read mapping is not available in WebGL * @requires_webgl20 Framebuffer read mapping is not available in WebGL
* 1.0. * 1.0.
@ -419,14 +419,14 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
* @param attachments Attachments to invalidate * @param attachments Attachments to invalidate
* *
* If extension @extension{ARB,invalidate_subdata} (part of OpenGL * If extension @extension{ARB,invalidate_subdata} (part of OpenGL
* 4.3), extension @es_extension{EXT,discard_framebuffer} in OpenGL ES * 4.3), extension @extension{EXT,discard_framebuffer} in OpenGL ES
* 2.0 or OpenGL ES 3.0 is not available, this function does nothing. * 2.0 or OpenGL ES 3.0 is not available, this function does nothing.
* If @extension{ARB,direct_state_access} (part of OpenGL 4.5) is not * If @extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
* available, the framebuffer is bound before the operation (if not * available, the framebuffer is bound before the operation (if not
* already). * already).
* @see @fn_gl2{InvalidateNamedFramebufferData,InvalidateFramebuffer}, * @see @fn_gl2{InvalidateNamedFramebufferData,InvalidateFramebuffer},
* eventually @fn_gl{InvalidateFramebuffer} or * eventually @fn_gl{InvalidateFramebuffer} or
* @fn_gles_extension{DiscardFramebuffer,EXT,discard_framebuffer} * @fn_gl_extension{DiscardFramebuffer,EXT,discard_framebuffer}
* on OpenGL ES 2.0 * on OpenGL ES 2.0
* @requires_webgl20 Framebuffer invalidation is not available in WebGL * @requires_webgl20 Framebuffer invalidation is not available in WebGL
* 1.0. * 1.0.

100
src/Magnum/Framebuffer.h

@ -115,9 +115,9 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* @see @ref mapForDraw(), @ref attachRenderbuffer(), * @see @ref mapForDraw(), @ref attachRenderbuffer(),
* @ref attachTexture(), @ref attachCubeMapTexture(), * @ref attachTexture(), @ref attachCubeMapTexture(),
* @ref attachTextureLayer() * @ref attachTextureLayer()
* @requires_gles30 Extension @es_extension{EXT,draw_buffers} or * @requires_gles30 Extension @extension{EXT,draw_buffers} or
* @es_extension{NV,draw_buffers} for @ref mapForDraw() and * @extension{NV,draw_buffers} for @ref mapForDraw() and
* extension @es_extension{NV,fbo_color_attachments} for `attach*()` * extension @extension{NV,fbo_color_attachments} for `attach*()`
* in OpenGL ES 2.0. * in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in * @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in
* WebGL 1.0. * WebGL 1.0.
@ -144,8 +144,8 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* @brief Draw attachment * @brief Draw attachment
* *
* @see @ref mapForDraw() * @see @ref mapForDraw()
* @requires_gles30 Extension @es_extension{EXT,draw_buffers} or * @requires_gles30 Extension @extension{EXT,draw_buffers} or
* @es_extension{NV,draw_buffers} in OpenGL ES 2.0. * @extension{NV,draw_buffers} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in * @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in
* WebGL 1.0. * WebGL 1.0.
*/ */
@ -172,8 +172,8 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* *
* @see @ref attachRenderbuffer(), @ref attachTexture(), * @see @ref attachRenderbuffer(), @ref attachTexture(),
* @ref attachCubeMapTexture(), @ref attachTextureLayer() * @ref attachCubeMapTexture(), @ref attachTextureLayer()
* @requires_gles30 Extension @es_extension{EXT,draw_buffers} or * @requires_gles30 Extension @extension{EXT,draw_buffers} or
* @es_extension{NV,fbo_color_attachments} in OpenGL ES 2.0. * @extension{NV,fbo_color_attachments} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in * @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in
* WebGL 1.0. * WebGL 1.0.
*/ */
@ -217,7 +217,7 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* *
* @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} in * @requires_gles30 Extension @extension{EXT,discard_framebuffer} in
* OpenGL ES 2.0. * OpenGL ES 2.0.
* @requires_webgl20 Framebuffer invalidation is not available in WebGL * @requires_webgl20 Framebuffer invalidation is not available in WebGL
* 1.0. * 1.0.
@ -283,10 +283,10 @@ 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 @extension{ANGLE,framebuffer_multisample},
* @es_extension{APPLE,framebuffer_multisample}, * @extension{APPLE,framebuffer_multisample},
* @es_extension{EXT,multisampled_render_to_texture} or * @extension{EXT,multisampled_render_to_texture} or
* @es_extension{NV,framebuffer_multisample} in OpenGL ES 2.0. * @extension{NV,framebuffer_multisample} in OpenGL ES 2.0.
* @requires_webgl20 Multisample framebuffers are not available in * @requires_webgl20 Multisample framebuffers are not available in
* WebGL 1.0. * WebGL 1.0.
*/ */
@ -312,8 +312,8 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* @brief Max supported color attachment count * @brief Max supported color attachment count
* *
* The result is cached, repeated queries don't result in repeated * The result is cached, repeated queries don't result in repeated
* OpenGL calls. If neither @es_extension{EXT,draw_buffers} nor * OpenGL calls. If neither @extension{EXT,draw_buffers} nor
* @es_extension{NV,fbo_color_attachments} extension is available in * @extension{NV,fbo_color_attachments} extension is available in
* OpenGL ES 2.0 and @webgl_extension{WEBGL,draw_buffers} is not * OpenGL ES 2.0 and @webgl_extension{WEBGL,draw_buffers} is not
* available in WebGL 1.0, returns `0`. * available in WebGL 1.0, returns `0`.
* @see @ref mapForDraw(), @fn_gl{Get} with @def_gl{MAX_COLOR_ATTACHMENTS} * @see @ref mapForDraw(), @fn_gl{Get} with @def_gl{MAX_COLOR_ATTACHMENTS}
@ -402,11 +402,11 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* *
* 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
* @extension{KHR,debug} (covered also by @es_extension{ANDROID,extension_pack_es31a}) * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
* nor @extension2{EXT,debug_label} desktop or ES extension is * nor @extension{EXT,debug_label} desktop or ES extension is
* available, this function returns empty string. * available, this function returns empty string.
* @see @fn_gl{GetObjectLabel} or * @see @fn_gl{GetObjectLabel} or
* @fn_gl_extension2{GetObjectLabel,EXT,debug_label} with * @fn_gl_extension{GetObjectLabel,EXT,debug_label} with
* @def_gl{FRAMEBUFFER} * @def_gl{FRAMEBUFFER}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */
@ -417,11 +417,11 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* Default is empty string. If OpenGL 4.3 is not supported and neither * Default is empty string. If OpenGL 4.3 is not supported and neither
* @extension{KHR,debug} (covered also by @es_extension{ANDROID,extension_pack_es31a}) * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
* nor @extension2{EXT,debug_label} desktop or ES extension is * nor @extension{EXT,debug_label} desktop or ES extension is
* available, this function does nothing. * available, this function does nothing.
* @see @ref maxLabelLength(), @fn_gl{ObjectLabel} or * @see @ref maxLabelLength(), @fn_gl{ObjectLabel} or
* @fn_gl_extension2{LabelObject,EXT,debug_label} with * @fn_gl_extension{LabelObject,EXT,debug_label} with
* @def_gl{FRAMEBUFFER} * @def_gl{FRAMEBUFFER}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */
@ -445,8 +445,8 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* already). * already).
* *
* The @p target parameter is ignored on OpenGL ES 2.0 if none of * The @p target parameter is ignored on OpenGL ES 2.0 if none of
* @es_extension{APPLE,framebuffer_multisample}, @es_extension{ANGLE,framebuffer_blit} * @extension{APPLE,framebuffer_multisample}, @extension{ANGLE,framebuffer_blit}
* or @es_extension{NV,framebuffer_blit} is available and also on WebGL * or @extension{NV,framebuffer_blit} is available and also on WebGL
* 1.0. * 1.0.
* @see @fn_gl2{CheckNamedFramebufferStatus,CheckFramebufferStatus}, * @see @fn_gl2{CheckNamedFramebufferStatus,CheckFramebufferStatus},
* @fn_gl_extension{CheckNamedFramebufferStatus,EXT,direct_state_access}, * @fn_gl_extension{CheckNamedFramebufferStatus,EXT,direct_state_access},
@ -476,8 +476,8 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* @fn_gl2{NamedFramebufferDrawBuffers,DrawBuffers}, * @fn_gl2{NamedFramebufferDrawBuffers,DrawBuffers},
* @fn_gl_extension{FramebufferDrawBuffers,EXT,direct_state_access}, * @fn_gl_extension{FramebufferDrawBuffers,EXT,direct_state_access},
* eventually @fn_gl{BindFramebuffer} and @fn_gl{DrawBuffers} * eventually @fn_gl{BindFramebuffer} and @fn_gl{DrawBuffers}
* @requires_gles30 Extension @es_extension{EXT,draw_buffers} or * @requires_gles30 Extension @extension{EXT,draw_buffers} or
* @es_extension{NV,draw_buffers} in OpenGL ES 2.0. * @extension{NV,draw_buffers} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in * @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in
* WebGL 1.0. * WebGL 1.0.
*/ */
@ -500,8 +500,8 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* @fn_gl_extension{FramebufferDrawBuffer,EXT,direct_state_access}, * @fn_gl_extension{FramebufferDrawBuffer,EXT,direct_state_access},
* eventually @fn_gl{BindFramebuffer} and @fn_gl{DrawBuffer} (or * eventually @fn_gl{BindFramebuffer} and @fn_gl{DrawBuffer} (or
* @fn_gl{DrawBuffers} in OpenGL ES) * @fn_gl{DrawBuffers} in OpenGL ES)
* @requires_gles30 Extension @es_extension{EXT,draw_buffers} or * @requires_gles30 Extension @extension{EXT,draw_buffers} or
* @es_extension{NV,draw_buffers} in OpenGL ES 2.0. * @extension{NV,draw_buffers} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in * @requires_webgl20 Extension @webgl_extension{WEBGL,draw_buffers} in
* WebGL 1.0. * WebGL 1.0.
*/ */
@ -520,7 +520,7 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* @see @ref mapForDraw(), @fn_gl2{NamedFramebufferReadBuffer,ReadBuffer}, * @see @ref mapForDraw(), @fn_gl2{NamedFramebufferReadBuffer,ReadBuffer},
* @fn_gl_extension{FramebufferReadBuffer,EXT,direct_state_access}, * @fn_gl_extension{FramebufferReadBuffer,EXT,direct_state_access},
* eventually @fn_gl{BindFramebuffer} and @fn_gl{ReadBuffer} * eventually @fn_gl{BindFramebuffer} and @fn_gl{ReadBuffer}
* @requires_gles30 Extension @es_extension2{NV,read_buffer,GL_NV_read_buffer} * @requires_gles30 Extension @extension2{NV,read_buffer,GL_NV_read_buffer}
* in OpenGL ES 2.0. * in OpenGL ES 2.0.
* @requires_webgl20 Framebuffer read mapping is not available in WebGL * @requires_webgl20 Framebuffer read mapping is not available in WebGL
* 1.0. * 1.0.
@ -532,14 +532,14 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* @param attachments Attachments to invalidate * @param attachments Attachments to invalidate
* *
* If extension @extension{ARB,invalidate_subdata} (part of OpenGL * If extension @extension{ARB,invalidate_subdata} (part of OpenGL
* 4.3), extension @es_extension{EXT,discard_framebuffer} in OpenGL ES * 4.3), extension @extension{EXT,discard_framebuffer} in OpenGL ES
* 2.0 or OpenGL ES 3.0 is not available, this function does nothing. * 2.0 or OpenGL ES 3.0 is not available, this function does nothing.
* If @extension{ARB,direct_state_access} (part of OpenGL 4.5) is not * If @extension{ARB,direct_state_access} (part of OpenGL 4.5) is not
* available, the framebuffer is bound before the operation (if not * available, the framebuffer is bound before the operation (if not
* already). * already).
* @see @fn_gl2{InvalidateNamedFramebufferData,InvalidateFramebuffer}, * @see @fn_gl2{InvalidateNamedFramebufferData,InvalidateFramebuffer},
* eventually @fn_gl{InvalidateFramebuffer} or * eventually @fn_gl{InvalidateFramebuffer} or
* @fn_gles_extension{DiscardFramebuffer,EXT,discard_framebuffer} * @fn_gl_extension{DiscardFramebuffer,EXT,discard_framebuffer}
* on OpenGL ES 2.0 * on OpenGL ES 2.0
* @requires_webgl20 Framebuffer invalidation is not available in WebGL * @requires_webgl20 Framebuffer invalidation is not available in WebGL
* 1.0. * 1.0.
@ -624,7 +624,7 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* @fn_gl_extension{NamedFramebufferTexture2D,EXT,direct_state_access}, * @fn_gl_extension{NamedFramebufferTexture2D,EXT,direct_state_access},
* eventually @fn_gl{BindFramebuffer} and * eventually @fn_gl{BindFramebuffer} and
* @fn_gl2{FramebufferTexture2D,FramebufferTexture} * @fn_gl2{FramebufferTexture2D,FramebufferTexture}
* @requires_gles30 Extension @es_extension{OES,fbo_render_mipmap} to * @requires_gles30 Extension @extension{OES,fbo_render_mipmap} to
* render to @p level different than `0` in OpenGL ES 2.0. * render to @p level different than `0` in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{OES,fbo_render_mipmap} * @requires_webgl20 Extension @webgl_extension{OES,fbo_render_mipmap}
* to render to @p level different than `0` in WebGL 1.0. * to render to @p level different than `0` in WebGL 1.0.
@ -666,7 +666,7 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* @fn_gl2{NamedFramebufferTextureLayer,FramebufferTextureLayer}, * @fn_gl2{NamedFramebufferTextureLayer,FramebufferTextureLayer},
* @fn_gl_extension{NamedFramebufferTexture2D,EXT,direct_state_access}, * @fn_gl_extension{NamedFramebufferTexture2D,EXT,direct_state_access},
* eventually @fn_gl{BindFramebuffer} and @fn_gl2{FramebufferTexture2D,FramebufferTexture} * eventually @fn_gl{BindFramebuffer} and @fn_gl2{FramebufferTexture2D,FramebufferTexture}
* @requires_gles30 Extension @es_extension{OES,fbo_render_mipmap} to * @requires_gles30 Extension @extension{OES,fbo_render_mipmap} to
* render to @p level different than `0` in OpenGL ES 2.0. * render to @p level different than `0` in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{OES,fbo_render_mipmap} * @requires_webgl20 Extension @webgl_extension{OES,fbo_render_mipmap}
* to render to @p level different than `0` in WebGL 1.0. * to render to @p level different than `0` in WebGL 1.0.
@ -689,11 +689,11 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* @see @ref detach(), @fn_gl2{NamedFramebufferTextureLayer,FramebufferTextureLayer}, * @see @ref detach(), @fn_gl2{NamedFramebufferTextureLayer,FramebufferTextureLayer},
* @fn_gl_extension{NamedFramebufferTextureLayer,EXT,direct_state_access}, * @fn_gl_extension{NamedFramebufferTextureLayer,EXT,direct_state_access},
* eventually @fn_gl{BindFramebuffer} and @fn_gl2{FramebufferTextureLayer,FramebufferTexture} * eventually @fn_gl{BindFramebuffer} and @fn_gl2{FramebufferTextureLayer,FramebufferTexture}
* or @fn_gles_extension{FramebufferTexture3D,OES,texture_3D} in * or @fn_gl_extension{FramebufferTexture3D,OES,texture_3D} in
* OpenGL ES 2.0 * OpenGL ES 2.0
* @requires_gles30 Extension @es_extension{OES,texture_3D} in OpenGL * @requires_gles30 Extension @extension{OES,texture_3D} in OpenGL
* ES 2.0. * ES 2.0.
* @requires_gles30 Extension @es_extension{OES,fbo_render_mipmap} to * @requires_gles30 Extension @extension{OES,fbo_render_mipmap} to
* render to @p level different than `0` in OpenGL ES 2.0. * render to @p level different than `0` in OpenGL ES 2.0.
* @requires_webgl20 Only 2D textures are available in WebGL 1.0. * @requires_webgl20 Only 2D textures are available in WebGL 1.0.
*/ */
@ -722,8 +722,8 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
/** @overload /** @overload
* @requires_gl40 Extension @extension{ARB,texture_cube_map_array} * @requires_gl40 Extension @extension{ARB,texture_cube_map_array}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,texture_cube_map_array} * @extension{EXT,texture_cube_map_array}
* @requires_gles Cube map texture arrays are not available in WebGL. * @requires_gles Cube map texture arrays are not available in WebGL.
*/ */
Framebuffer& attachTextureLayer(BufferAttachment attachment, CubeMapTextureArray& texture, Int level, Int layer); Framebuffer& attachTextureLayer(BufferAttachment attachment, CubeMapTextureArray& texture, Int level, Int layer);
@ -732,8 +732,8 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* @requires_gl32 Extension @extension{ARB,texture_multisample} * @requires_gl32 Extension @extension{ARB,texture_multisample}
* @requires_gles30 Multisample 2D array textures are not defined in * @requires_gles30 Multisample 2D array textures are not defined in
* OpenGL ES 2.0. * OpenGL ES 2.0.
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{OES,texture_storage_multisample_2d_array} * @extension{OES,texture_storage_multisample_2d_array}
* @requires_gles Multisample textures are not available in WebGL. * @requires_gles Multisample textures are not available in WebGL.
*/ */
Framebuffer& attachTextureLayer(BufferAttachment attachment, MultisampleTexture2DArray& texture, Int layer); Framebuffer& attachTextureLayer(BufferAttachment attachment, MultisampleTexture2DArray& texture, Int layer);
@ -758,8 +758,8 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* eventually @fn_gl{BindFramebuffer} and @fn_gl{FramebufferTexture} * eventually @fn_gl{BindFramebuffer} and @fn_gl{FramebufferTexture}
* @requires_gl32 Extension @extension{ARB,geometry_shader4} * @requires_gl32 Extension @extension{ARB,geometry_shader4}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,geometry_shader} * @extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL. * @requires_gles Geometry shaders are not available in WebGL.
*/ */
Framebuffer& attachLayeredTexture(BufferAttachment attachment, Texture3D& texture, Int level); Framebuffer& attachLayeredTexture(BufferAttachment attachment, Texture3D& texture, Int level);
@ -776,8 +776,8 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
/** @overload /** @overload
* @requires_gl32 Extension @extension{ARB,geometry_shader4} * @requires_gl32 Extension @extension{ARB,geometry_shader4}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,geometry_shader} * @extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL. * @requires_gles Geometry shaders are not available in WebGL.
*/ */
Framebuffer& attachLayeredTexture(BufferAttachment attachment, Texture2DArray& texture, Int level); Framebuffer& attachLayeredTexture(BufferAttachment attachment, Texture2DArray& texture, Int level);
@ -786,8 +786,8 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* @overload * @overload
* @requires_gl32 Extension @extension{ARB,geometry_shader4} * @requires_gl32 Extension @extension{ARB,geometry_shader4}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,geometry_shader} * @extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL. * @requires_gles Geometry shaders are not available in WebGL.
*/ */
Framebuffer& attachLayeredTexture(BufferAttachment attachment, CubeMapTexture& texture, Int level); Framebuffer& attachLayeredTexture(BufferAttachment attachment, CubeMapTexture& texture, Int level);
@ -795,9 +795,9 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
/** @overload /** @overload
* @requires_gl40 Extension @extension{ARB,texture_cube_map_array} * @requires_gl40 Extension @extension{ARB,texture_cube_map_array}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,geometry_shader} and * @extension{EXT,geometry_shader} and
* @es_extension{EXT,texture_cube_map_array} * @extension{EXT,texture_cube_map_array}
* @requires_gles Geometry shaders are not available in WebGL. * @requires_gles Geometry shaders are not available in WebGL.
*/ */
Framebuffer& attachLayeredTexture(BufferAttachment attachment, CubeMapTextureArray& texture, Int level); Framebuffer& attachLayeredTexture(BufferAttachment attachment, CubeMapTextureArray& texture, Int level);
@ -806,9 +806,9 @@ class MAGNUM_EXPORT Framebuffer: public AbstractFramebuffer, public AbstractObje
* @requires_gl32 Extension @extension{ARB,geometry_shader4} and * @requires_gl32 Extension @extension{ARB,geometry_shader4} and
* @extension{ARB,texture_multisample} * @extension{ARB,texture_multisample}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,geometry_shader} and * @extension{EXT,geometry_shader} and
* @es_extension{OES,texture_storage_multisample_2d_array} * @extension{OES,texture_storage_multisample_2d_array}
* @requires_gles Geometry shaders are not available in WebGL. * @requires_gles Geometry shaders are not available in WebGL.
*/ */
Framebuffer& attachLayeredTexture(BufferAttachment attachment, MultisampleTexture2DArray& texture); Framebuffer& attachLayeredTexture(BufferAttachment attachment, MultisampleTexture2DArray& texture);

52
src/Magnum/Mesh.h

@ -324,7 +324,7 @@ layout, see @ref addVertexBuffer() documentation for details.
## Performance optimizations ## Performance optimizations
If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL ES 3.0, If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL ES 3.0,
WebGL 2.0, @es_extension{OES,vertex_array_object} in OpenGL ES 2.0 or WebGL 2.0, @extension{OES,vertex_array_object} in OpenGL ES 2.0 or
@webgl_extension{OES,vertex_array_object} in WebGL 1.0 is supported, VAOs are @webgl_extension{OES,vertex_array_object} in WebGL 1.0 is supported, VAOs are
used instead of binding the buffers and specifying vertex attribute pointers 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
@ -358,7 +358,7 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
/** /**
* Unsigned int * Unsigned int
* @requires_gles30 Extension @es_extension{OES,element_index_uint} * @requires_gles30 Extension @extension{OES,element_index_uint}
* in OpenGL ES 2.0. * in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{OES,element_index_uint} * @requires_webgl20 Extension @webgl_extension{OES,element_index_uint}
* in WebGL 1.0. * in WebGL 1.0.
@ -438,7 +438,7 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
* different behavior. * different behavior.
* @see @ref release() * @see @ref release()
* @requires_gl30 Extension @extension{ARB,vertex_array_object} * @requires_gl30 Extension @extension{ARB,vertex_array_object}
* @requires_gles30 Extension @es_extension{OES,vertex_array_object} in * @requires_gles30 Extension @extension{OES,vertex_array_object} in
* OpenGL ES 2.0. * OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{OES,vertex_array_object} * @requires_webgl20 Extension @webgl_extension{OES,vertex_array_object}
* in WebGL 1.0. * in WebGL 1.0.
@ -457,7 +457,7 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
* @param primitive Primitive type * @param primitive Primitive type
* *
* If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL * If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL
* ES 3.0, WebGL 2.0, @es_extension{OES,vertex_array_object} in OpenGL * ES 3.0, WebGL 2.0, @extension{OES,vertex_array_object} in OpenGL
* ES 2.0 or @webgl_extension{OES,vertex_array_object} in WebGL 1.0 is * ES 2.0 or @webgl_extension{OES,vertex_array_object} in WebGL 1.0 is
* available, vertex array object is created. If @extension{ARB,direct_state_access} * available, vertex array object is created. If @extension{ARB,direct_state_access}
* (part of OpenGL 4.5) is not available, the vertex array object is * (part of OpenGL 4.5) is not available, the vertex array object is
@ -491,7 +491,7 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
* @brief Destructor * @brief Destructor
* *
* If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL * If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL
* ES 3.0, WebGL 2.0, @es_extension{OES,vertex_array_object} in OpenGL * ES 3.0, WebGL 2.0, @extension{OES,vertex_array_object} in OpenGL
* ES 2.0 or @webgl_extension{OES,vertex_array_object} in WebGL 1.0 is * ES 2.0 or @webgl_extension{OES,vertex_array_object} in WebGL 1.0 is
* available, associated vertex array object is deleted. * available, associated vertex array object is deleted.
* @see @ref wrap(), @ref release(), @fn_gl{DeleteVertexArrays} * @see @ref wrap(), @ref release(), @fn_gl{DeleteVertexArrays}
@ -508,7 +508,7 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
* @brief OpenGL vertex array ID * @brief OpenGL vertex array ID
* *
* If neither @extension{ARB,vertex_array_object} (part of OpenGL 3.0) * If neither @extension{ARB,vertex_array_object} (part of OpenGL 3.0)
* nor OpenGL ES 3.0 / WebGL 2.0 nor @es_extension{OES,vertex_array_object} * nor OpenGL ES 3.0 / WebGL 2.0 nor @extension{OES,vertex_array_object}
* in OpenGL ES 2.0 / @webgl_extension{OES,vertex_array_object} in * in OpenGL ES 2.0 / @webgl_extension{OES,vertex_array_object} in
* WebGL 1.0 is available, returns `0`. * WebGL 1.0 is available, returns `0`.
*/ */
@ -522,7 +522,7 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
* equivalent to moved-from state. * equivalent to moved-from state.
* @see @ref wrap() * @see @ref wrap()
* @requires_gl30 Extension @extension{ARB,vertex_array_object} * @requires_gl30 Extension @extension{ARB,vertex_array_object}
* @requires_gles30 Extension @es_extension{OES,vertex_array_object} in * @requires_gles30 Extension @extension{OES,vertex_array_object} in
* OpenGL ES 2.0. * OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{OES,vertex_array_object} * @requires_webgl20 Extension @webgl_extension{OES,vertex_array_object}
* in WebGL 1.0. * in WebGL 1.0.
@ -535,11 +535,11 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
* *
* 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
* @extension{KHR,debug} (covered also by @es_extension{ANDROID,extension_pack_es31a}) * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
* nor @extension2{EXT,debug_label} desktop or ES extension is * nor @extension{EXT,debug_label} desktop or ES extension is
* available, this function returns empty string. * available, this function returns empty string.
* @see @fn_gl{GetObjectLabel} with @def_gl{VERTEX_ARRAY} or * @see @fn_gl{GetObjectLabel} with @def_gl{VERTEX_ARRAY} or
* @fn_gl_extension2{GetObjectLabel,EXT,debug_label} with * @fn_gl_extension{GetObjectLabel,EXT,debug_label} with
* @def_gl{VERTEX_ARRAY_OBJECT_EXT} * @def_gl{VERTEX_ARRAY_OBJECT_EXT}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */
@ -550,11 +550,11 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* Default is empty string. If OpenGL 4.3 is not supported and neither * Default is empty string. If OpenGL 4.3 is not supported and neither
* @extension{KHR,debug} (covered also by @es_extension{ANDROID,extension_pack_es31a}) * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
* nor @extension2{EXT,debug_label} desktop or ES extension is * nor @extension{EXT,debug_label} desktop or ES extension is
* available, this function does nothing. * available, this function does nothing.
* @see @ref maxLabelLength(), @fn_gl{ObjectLabel} with * @see @ref maxLabelLength(), @fn_gl{ObjectLabel} with
* @def_gl{VERTEX_ARRAY} or @fn_gl_extension2{LabelObject,EXT,debug_label} * @def_gl{VERTEX_ARRAY} or @fn_gl_extension{LabelObject,EXT,debug_label}
* with @def_gl{VERTEX_ARRAY_OBJECT_EXT} * with @def_gl{VERTEX_ARRAY_OBJECT_EXT}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */
@ -655,9 +655,9 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
* @ref draw(AbstractShaderProgram&) * @ref draw(AbstractShaderProgram&)
* @requires_gl42 Extension @extension{ARB,transform_feedback_instanced} * @requires_gl42 Extension @extension{ARB,transform_feedback_instanced}
* if using @ref draw(AbstractShaderProgram&, TransformFeedback&, UnsignedInt) * if using @ref draw(AbstractShaderProgram&, TransformFeedback&, UnsignedInt)
* @requires_gles30 Extension @es_extension{ANGLE,instanced_arrays}, * @requires_gles30 Extension @extension{ANGLE,instanced_arrays},
* @es_extension2{EXT,draw_instanced,draw_instanced} or * @extension2{EXT,draw_instanced,draw_instanced} or
* @es_extension{NV,draw_instanced} in OpenGL ES 2.0. * @extension{NV,draw_instanced} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{ANGLE,instanced_arrays} * @requires_webgl20 Extension @webgl_extension{ANGLE,instanced_arrays}
* in WebGL 1.0. * in WebGL 1.0.
*/ */
@ -735,7 +735,7 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
* @endcode * @endcode
* *
* If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL * If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL
* ES 3.0, WebGL 2.0, @es_extension{OES,vertex_array_object} in OpenGL * ES 3.0, WebGL 2.0, @extension{OES,vertex_array_object} in OpenGL
* ES 2.0 or @webgl_extension{OES,vertex_array_object} in WebGL 1.0 is * ES 2.0 or @webgl_extension{OES,vertex_array_object} in WebGL 1.0 is
* available, the vertex array object is used to hold the parameters. * available, the vertex array object is used to hold the parameters.
* *
@ -770,7 +770,7 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
* @ref addVertexBuffer(). * @ref addVertexBuffer().
* *
* If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL * If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL
* ES 3.0, WebGL 2.0, @es_extension{OES,vertex_array_object} in OpenGL * ES 3.0, WebGL 2.0, @extension{OES,vertex_array_object} in OpenGL
* ES 2.0 or @webgl_extension{OES,vertex_array_object} in WebGL 1.0 is * ES 2.0 or @webgl_extension{OES,vertex_array_object} in WebGL 1.0 is
* available, the vertex array object is used to hold the parameters. * available, the vertex array object is used to hold the parameters.
* *
@ -783,9 +783,9 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
* @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 @extension{ANGLE,instanced_arrays},
* @es_extension{EXT,instanced_arrays} or * @extension{EXT,instanced_arrays} or
* @es_extension{NV,instanced_arrays} in OpenGL ES 2.0. * @extension{NV,instanced_arrays} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{ANGLE,instanced_arrays} * @requires_webgl20 Extension @webgl_extension{ANGLE,instanced_arrays}
* in WebGL 1.0. * in WebGL 1.0.
*/ */
@ -812,7 +812,7 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
* functionality is not available there. * functionality is not available there.
* *
* If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL * If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL
* ES 3.0, WebGL 2.0, @es_extension{OES,vertex_array_object} in OpenGL * ES 3.0, WebGL 2.0, @extension{OES,vertex_array_object} in OpenGL
* ES 2.0 or @webgl_extension{OES,vertex_array_object} in WebGL 1.0 is * ES 2.0 or @webgl_extension{OES,vertex_array_object} in WebGL 1.0 is
* available, the vertex array object is used to hold the parameters. * available, the vertex array object is used to hold the parameters.
* *
@ -848,7 +848,7 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
* commands are issued. See also * commands are issued. See also
* @ref AbstractShaderProgram-rendering-workflow "AbstractShaderProgram documentation" * @ref AbstractShaderProgram-rendering-workflow "AbstractShaderProgram documentation"
* for more information. If @extension{ARB,vertex_array_object} (part * for more information. If @extension{ARB,vertex_array_object} (part
* of OpenGL 3.0), OpenGL ES 3.0, WebGL 2.0, @es_extension{OES,vertex_array_object} * of OpenGL 3.0), OpenGL ES 3.0, WebGL 2.0, @extension{OES,vertex_array_object}
* in OpenGL ES 2.0 or @webgl_extension{OES,vertex_array_object} in * in OpenGL ES 2.0 or @webgl_extension{OES,vertex_array_object} in
* WebGL 1.0 is available, the associated vertex array object is bound * WebGL 1.0 is available, the associated vertex array object is bound
* instead of setting up the mesh from scratch. * instead of setting up the mesh from scratch.
@ -872,9 +872,9 @@ class MAGNUM_EXPORT Mesh: public AbstractObject {
* @ref instanceCount() is more than `1`. * @ref instanceCount() is more than `1`.
* @requires_gl42 Extension @extension{ARB,base_instance} if * @requires_gl42 Extension @extension{ARB,base_instance} if
* @ref baseInstance() is not `0`. * @ref baseInstance() is not `0`.
* @requires_gles30 Extension @es_extension{ANGLE,instanced_arrays}, * @requires_gles30 Extension @extension{ANGLE,instanced_arrays},
* @es_extension{EXT,instanced_arrays} or * @extension{EXT,instanced_arrays} or
* @es_extension{NV,instanced_arrays} in OpenGL ES 2.0 if * @extension{NV,instanced_arrays} in OpenGL ES 2.0 if
* @ref instanceCount() is more than `1`. * @ref instanceCount() is more than `1`.
* @requires_webgl20 Extension @webgl_extension{ANGLE,instanced_arrays} * @requires_webgl20 Extension @webgl_extension{ANGLE,instanced_arrays}
* in WebGL 1.0 if @ref instanceCount() is more than `1`. * in WebGL 1.0 if @ref instanceCount() is more than `1`.

16
src/Magnum/MeshView.h

@ -63,12 +63,12 @@ class MAGNUM_EXPORT MeshView {
/** /**
* @brief Draw multiple meshes at once * @brief Draw multiple meshes at once
* *
* In OpenGL ES, if @es_extension2{EXT,multi_draw_arrays,multi_draw_arrays} * In OpenGL ES, if @extension2{EXT,multi_draw_arrays,multi_draw_arrays}
* is not present, the functionality is emulated using sequence of * is not present, the functionality is emulated using sequence of
* @ref draw(AbstractShaderProgram&) calls. * @ref draw(AbstractShaderProgram&) calls.
* *
* If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL * If @extension{ARB,vertex_array_object} (part of OpenGL 3.0), OpenGL
* ES 3.0, WebGL 2.0, @es_extension{OES,vertex_array_object} in OpenGL * ES 3.0, WebGL 2.0, @extension{OES,vertex_array_object} in OpenGL
* ES 2.0 or @webgl_extension{OES,vertex_array_object} in WebGL 1.0 is * ES 2.0 or @webgl_extension{OES,vertex_array_object} in WebGL 1.0 is
* available, the associated vertex array object is bound instead of * available, the associated vertex array object is bound instead of
* setting up the mesh from scratch. * setting up the mesh from scratch.
@ -186,9 +186,9 @@ class MAGNUM_EXPORT MeshView {
* @ref draw(AbstractShaderProgram&) * @ref draw(AbstractShaderProgram&)
* @requires_gl42 Extension @extension{ARB,transform_feedback_instanced} * @requires_gl42 Extension @extension{ARB,transform_feedback_instanced}
* if using @ref draw(AbstractShaderProgram&, TransformFeedback&, UnsignedInt) * if using @ref draw(AbstractShaderProgram&, TransformFeedback&, UnsignedInt)
* @requires_gles30 Extension @es_extension{ANGLE,instanced_arrays}, * @requires_gles30 Extension @extension{ANGLE,instanced_arrays},
* @es_extension2{EXT,draw_instanced,draw_instanced} or * @extension2{EXT,draw_instanced,draw_instanced} or
* @es_extension{NV,draw_instanced} in OpenGL ES 2.0. * @extension{NV,draw_instanced} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{ANGLE,instanced_arrays} * @requires_webgl20 Extension @webgl_extension{ANGLE,instanced_arrays}
* in WebGL 1.0. * in WebGL 1.0.
*/ */
@ -229,9 +229,9 @@ class MAGNUM_EXPORT MeshView {
* @ref instanceCount() is more than `1`. * @ref instanceCount() is more than `1`.
* @requires_gl42 Extension @extension{ARB,base_instance} if * @requires_gl42 Extension @extension{ARB,base_instance} if
* @ref baseInstance() is not `0`. * @ref baseInstance() is not `0`.
* @requires_gles30 Extension @es_extension{ANGLE,instanced_arrays}, * @requires_gles30 Extension @extension{ANGLE,instanced_arrays},
* @es_extension{EXT,instanced_arrays} or * @extension{EXT,instanced_arrays} or
* @es_extension{NV,instanced_arrays} in OpenGL ES 2.0 if * @extension{NV,instanced_arrays} in OpenGL ES 2.0 if
* @ref instanceCount() is more than `1`. * @ref instanceCount() is more than `1`.
* @requires_webgl20 Extension @webgl_extension{ANGLE,instanced_arrays} * @requires_webgl20 Extension @webgl_extension{ANGLE,instanced_arrays}
* in WebGL 1.0 if @ref instanceCount() is more than `1`. * in WebGL 1.0 if @ref instanceCount() is more than `1`.

16
src/Magnum/MultisampleTexture.h

@ -95,8 +95,8 @@ Note that multisample textures don't support compressed formats.
older. older.
@requires_gles30 Multisample 2D array textures are not defined in OpenGL ES @requires_gles30 Multisample 2D array textures are not defined in OpenGL ES
2.0. 2.0.
@requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
@es_extension{OES,texture_storage_multisample_2d_array} for multisample 2D @extension{OES,texture_storage_multisample_2d_array} for multisample 2D
array textures. array textures.
@requires_gles Multisample textures are not available in WebGL. @requires_gles Multisample textures are not available in WebGL.
*/ */
@ -202,8 +202,8 @@ template<UnsignedInt dimensions> class MultisampleTexture: public AbstractTextur
* @ref AbstractShaderProgram::maxImageUnits(), * @ref AbstractShaderProgram::maxImageUnits(),
* @fn_gl{BindImageTexture} * @fn_gl{BindImageTexture}
* @requires_gl42 Extension @extension{ARB,shader_image_load_store} * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{OES,texture_storage_multisample_2d_array} for * @extension{OES,texture_storage_multisample_2d_array} for
* multisample 2D array textures. * multisample 2D array textures.
*/ */
#ifndef DOXYGEN_GENERATING_OUTPUT #ifndef DOXYGEN_GENERATING_OUTPUT
@ -228,8 +228,8 @@ template<UnsignedInt dimensions> class MultisampleTexture: public AbstractTextur
* @ref AbstractShaderProgram::maxImageUnits(), * @ref AbstractShaderProgram::maxImageUnits(),
* @fn_gl{BindImageTexture} * @fn_gl{BindImageTexture}
* @requires_gl42 Extension @extension{ARB,shader_image_load_store} * @requires_gl42 Extension @extension{ARB,shader_image_load_store}
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{OES,texture_storage_multisample_2d_array} for * @extension{OES,texture_storage_multisample_2d_array} for
* multisample 2D array textures. * multisample 2D array textures.
*/ */
#ifndef DOXYGEN_GENERATING_OUTPUT #ifndef DOXYGEN_GENERATING_OUTPUT
@ -339,8 +339,8 @@ typedef MultisampleTexture<2> MultisampleTexture2D;
@requires_gl32 Extension @extension{ARB,texture_multisample} @requires_gl32 Extension @extension{ARB,texture_multisample}
@requires_gles30 Not defined in OpenGL ES 2.0. @requires_gles30 Not defined in OpenGL ES 2.0.
@requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
@es_extension{OES,texture_storage_multisample_2d_array} @extension{OES,texture_storage_multisample_2d_array}
@requires_gles Multisample textures are not available in WebGL. @requires_gles Multisample textures are not available in WebGL.
*/ */
typedef MultisampleTexture<3> MultisampleTexture2DArray; typedef MultisampleTexture<3> MultisampleTexture2DArray;

280
src/Magnum/PixelFormat.h

@ -57,9 +57,9 @@ enum class PixelFormat: GLenum {
/** /**
* Floating-point red channel. * Floating-point red channel.
* @requires_gles30 For texture data only, extension * @requires_gles30 For texture data only, extension
* @es_extension{EXT,texture_rg} in OpenGL ES 2.0. * @extension{EXT,texture_rg} in OpenGL ES 2.0.
* @requires_es_extension For framebuffer reading, extension * @requires_es_extension For framebuffer reading, extension
* @es_extension{EXT,texture_rg} * @extension{EXT,texture_rg}
* @requires_webgl20 For texture data only. Not available in WebGL 1.0, see * @requires_webgl20 For texture data only. Not available in WebGL 1.0, see
* @ref PixelFormat::Luminance for an alternative. * @ref PixelFormat::Luminance for an alternative.
*/ */
@ -103,9 +103,9 @@ enum class PixelFormat: 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 * @requires_gles30 For texture data only, extension
* @es_extension{EXT,texture_rg} in OpenGL ES 2.0. * @extension{EXT,texture_rg} in OpenGL ES 2.0.
* @requires_es_extension For framebuffer reading, extension * @requires_es_extension For framebuffer reading, extension
* @es_extension{EXT,texture_rg} * @extension{EXT,texture_rg}
* @requires_webgl20 For texture data only. Not available in WebGL 1.0, see * @requires_webgl20 For texture data only. Not available in WebGL 1.0, see
* @ref PixelFormat::LuminanceAlpha for and alternative. * @ref PixelFormat::LuminanceAlpha for and alternative.
*/ */
@ -149,9 +149,9 @@ enum class PixelFormat: GLenum {
#ifndef MAGNUM_TARGET_WEBGL #ifndef MAGNUM_TARGET_WEBGL
/** /**
* Floating-point BGRA. * Floating-point BGRA.
* @requires_es_extension Extension @es_extension{EXT,read_format_bgra} * @requires_es_extension Extension @extension{EXT,read_format_bgra}
* for framebuffer reading, extension @es_extension{APPLE,texture_format_BGRA8888} * for framebuffer reading, extension @extension{APPLE,texture_format_BGRA8888}
* or @es_extension{EXT,texture_format_BGRA8888} for texture data. * or @extension{EXT,texture_format_BGRA8888} for texture data.
* @requires_gles Only RGBA component ordering is available in WebGL. * @requires_gles Only RGBA component ordering is available in WebGL.
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
@ -249,10 +249,10 @@ enum class PixelFormat: GLenum {
/** /**
* Depth component. * Depth component.
* @requires_gles30 For texture data only, extension @es_extension{OES,depth_texture} * @requires_gles30 For texture data only, extension @extension{OES,depth_texture}
* or @es_extension{ANGLE,depth_texture} in OpenGL ES 2.0. * or @extension{ANGLE,depth_texture} in OpenGL ES 2.0.
* @requires_es_extension For framebuffer reading only, extension * @requires_es_extension For framebuffer reading only, extension
* @es_extension2{NV,read_depth,GL_NV_read_depth_stencil}. * @extension2{NV,read_depth,GL_NV_read_depth_stencil}.
* @requires_webgl20 For texture data only, extension * @requires_webgl20 For texture data only, extension
* @webgl_extension{WEBGL,depth_texture} in WebGL 1.0. * @webgl_extension{WEBGL,depth_texture} in WebGL 1.0.
*/ */
@ -263,10 +263,10 @@ enum class PixelFormat: 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 @extension2{NV,read_stencil,GL_NV_read_depth_stencil},
* for framebuffer reading only. * for framebuffer reading only.
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{OES,texture_stencil8}, for texture data only. * @extension{OES,texture_stencil8}, for texture data only.
* @requires_gles Stencil index is not available in WebGL. * @requires_gles Stencil index is not available in WebGL.
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
@ -279,10 +279,10 @@ enum class PixelFormat: 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 @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
* @es_extension2{NV,read_depth_stencil,GL_NV_read_depth_stencil} * @extension2{NV,read_depth_stencil,GL_NV_read_depth_stencil}
* @requires_webgl20 For texture data only, extension * @requires_webgl20 For texture data only, extension
* @webgl_extension{WEBGL,depth_texture} in WebGL 1.0. * @webgl_extension{WEBGL,depth_texture} in WebGL 1.0.
*/ */
@ -331,8 +331,8 @@ enum class PixelType: GLenum {
/** /**
* Each component unsigned short. * Each component unsigned short.
* @requires_gles30 For texture data only, extension @es_extension{OES,depth_texture} * @requires_gles30 For texture data only, extension @extension{OES,depth_texture}
* or @es_extension{ANGLE,depth_texture} in OpenGL ES 2.0. * or @extension{ANGLE,depth_texture} in OpenGL ES 2.0.
* @requires_gl Can't be used for framebuffer reading in OpenGL ES or * @requires_gl Can't be used for framebuffer reading in OpenGL ES or
* WebGL. * WebGL.
* @requires_webgl20 For texture data only, extension * @requires_webgl20 For texture data only, extension
@ -356,7 +356,7 @@ enum class PixelType: GLenum {
/** /**
* Each component unsigned int. * Each component unsigned int.
* @requires_gles30 In OpenGL ES 2.0 for texture data only, using extension * @requires_gles30 In OpenGL ES 2.0 for texture data only, using extension
* @es_extension{OES,depth_texture} or @es_extension{ANGLE,depth_texture} * @extension{OES,depth_texture} or @extension{ANGLE,depth_texture}
* @requires_webgl20 In WebGL 1.0 for texture data only, using extension * @requires_webgl20 In WebGL 1.0 for texture data only, using extension
* @webgl_extension{WEBGL,depth_texture} * @webgl_extension{WEBGL,depth_texture}
*/ */
@ -378,7 +378,7 @@ enum class PixelType: GLenum {
* @see @ref Half, @ref Math::packHalf(), @ref Math::unpackHalf() * @see @ref Half, @ref Math::packHalf(), @ref Math::unpackHalf()
* @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 * @extension2{OES,texture_half_float,OES_texture_float} in OpenGL
* ES 2.0. * ES 2.0.
* @requires_webgl20 For texture data only, extension * @requires_webgl20 For texture data only, extension
* @webgl_extension{OES,texture_half_float} in WebGL 1.0. * @webgl_extension{OES,texture_half_float} in WebGL 1.0.
@ -391,7 +391,7 @@ enum class PixelType: GLenum {
/** /**
* Each component float. * Each component float.
* @requires_gles30 For texture data only, extension @es_extension{OES,texture_float} * @requires_gles30 For texture data only, extension @extension{OES,texture_float}
* in OpenGL ES 2.0. * in OpenGL ES 2.0.
* @requires_webgl20 For texture data only, extension @webgl_extension{OES,texture_float} * @requires_webgl20 For texture data only, extension @webgl_extension{OES,texture_float}
* in WebGL 1.0. * in WebGL 1.0.
@ -437,7 +437,7 @@ enum class PixelType: GLenum {
/** /**
* ABGR, unsigned short, each component 4bit. * ABGR, unsigned short, each component 4bit.
* @requires_es_extension For framebuffer reading only, extension * @requires_es_extension For framebuffer reading only, extension
* @es_extension{EXT,read_format_bgra} * @extension{EXT,read_format_bgra}
* @requires_gles Only RGBA component ordering is available in WebGL. * @requires_gles Only RGBA component ordering is available in WebGL.
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
@ -457,7 +457,7 @@ enum class PixelType: GLenum {
/** /**
* ABGR, unsigned short, each RGB component 5bit, alpha component 1bit. * ABGR, unsigned short, each RGB component 5bit, alpha component 1bit.
* @requires_es_extension For framebuffer reading only, extension * @requires_es_extension For framebuffer reading only, extension
* @es_extension{EXT,read_format_bgra} * @extension{EXT,read_format_bgra}
* @requires_gles Not available in WebGL. * @requires_gles Not available in WebGL.
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
@ -495,7 +495,7 @@ enum class PixelType: GLenum {
* ABGR, unsigned int, each RGB component 10bit, alpha component 2bit. * ABGR, unsigned int, each RGB component 10bit, alpha component 2bit.
* @requires_gles30 Can't be used for framebuffer reading in OpenGL ES 2.0. * @requires_gles30 Can't be used for framebuffer reading in OpenGL ES 2.0.
* @requires_gles30 For texture data only, extension * @requires_gles30 For texture data only, extension
* @es_extension{EXT,texture_type_2_10_10_10_REV} in OpenGL ES 2.0. * @extension{EXT,texture_type_2_10_10_10_REV} in OpenGL ES 2.0.
* Not available in WebGL 1.0. * Not available in WebGL 1.0.
* @requires_webgl20 Only RGBA component ordering is available in WebGL * @requires_webgl20 Only RGBA component ordering is available in WebGL
* 1.0. * 1.0.
@ -531,7 +531,7 @@ enum class PixelType: 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 * @requires_gles30 For texture data only, extension
* @es_extension{OES,packed_depth_stencil} in OpenGL ES 2.0. * @extension{OES,packed_depth_stencil} in OpenGL ES 2.0.
* @requires_webgl20 For texture data only, extension * @requires_webgl20 For texture data only, extension
* @webgl_extension{WEBGL,depth_texture} in WebGL 1.0. * @webgl_extension{WEBGL,depth_texture} in WebGL 1.0.
*/ */
@ -766,7 +766,7 @@ enum class CompressedPixelFormat: GLenum {
* S3TC DXT1 compressed RGB. **Available only for 2D, 2D array, cube map * S3TC DXT1 compressed RGB. **Available only for 2D, 2D array, cube map
* and cube map array textures.** * and cube map array textures.**
* @requires_extension Extension @extension{EXT,texture_compression_s3tc} * @requires_extension Extension @extension{EXT,texture_compression_s3tc}
* @requires_es_extension Extension @es_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} * @requires_es_extension Extension @extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
* @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc} * @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc}
*/ */
RGBS3tcDxt1 = GL_COMPRESSED_RGB_S3TC_DXT1_EXT, RGBS3tcDxt1 = GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
@ -775,7 +775,7 @@ enum class CompressedPixelFormat: GLenum {
* S3TC DXT1 compressed RGBA. **Available only for 2D, 2D array, cube map * S3TC DXT1 compressed RGBA. **Available only for 2D, 2D array, cube map
* and cube map array textures.** * and cube map array textures.**
* @requires_extension Extension @extension{EXT,texture_compression_s3tc} * @requires_extension Extension @extension{EXT,texture_compression_s3tc}
* @requires_es_extension Extension @es_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} * @requires_es_extension Extension @extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
* @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc} * @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc}
*/ */
RGBAS3tcDxt1 = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, RGBAS3tcDxt1 = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,
@ -784,7 +784,7 @@ enum class CompressedPixelFormat: GLenum {
* S3TC DXT3 compressed RGBA. **Available only for 2D, 2D array, cube map * S3TC DXT3 compressed RGBA. **Available only for 2D, 2D array, cube map
* and cube map array textures.** * and cube map array textures.**
* @requires_extension Extension @extension{EXT,texture_compression_s3tc} * @requires_extension Extension @extension{EXT,texture_compression_s3tc}
* @requires_es_extension Extension @es_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} * @requires_es_extension Extension @extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
* @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc} * @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc}
*/ */
RGBAS3tcDxt3 = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT, RGBAS3tcDxt3 = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
@ -793,7 +793,7 @@ enum class CompressedPixelFormat: GLenum {
* S3TC DXT5 compressed RGBA. **Available only for 2D, 2D array, cube map * S3TC DXT5 compressed RGBA. **Available only for 2D, 2D array, cube map
* and cube map array textures.** * and cube map array textures.**
* @requires_extension Extension @extension{EXT,texture_compression_s3tc} * @requires_extension Extension @extension{EXT,texture_compression_s3tc}
* @requires_es_extension Extension @es_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} * @requires_es_extension Extension @extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
* @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc} * @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc}
*/ */
RGBAS3tcDxt5 = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, RGBAS3tcDxt5 = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,
@ -802,12 +802,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed RGBA with 4x4 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 4x4 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -816,12 +816,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 4x4 blocks. **Available only on 2D, * ASTC compressed sRGB with alpha with 4x4 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.** * 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -830,12 +830,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed RGBA with 5x4 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 5x4 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -844,12 +844,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 5x4 blocks. **Available only on 2D, * ASTC compressed sRGB with alpha with 5x4 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.** * 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -858,12 +858,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed RGBA with 5x5 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 5x5 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -872,12 +872,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 5x5 blocks. **Available only on 2D, * ASTC compressed sRGB with alpha with 5x5 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.** * 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -886,12 +886,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed RGBA with 6x5 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 6x5 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -900,12 +900,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 6x5 blocks. **Available only on 2D, * ASTC compressed sRGB with alpha with 6x5 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.** * 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -914,12 +914,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed RGBA with 6x6 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 6x6 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -928,12 +928,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 6x6 blocks. **Available only on 2D, * ASTC compressed sRGB with alpha with 6x6 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.** * 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -942,12 +942,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed RGBA with 8x5 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 8x5 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -956,12 +956,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 8x5 blocks. **Available only on 2D, * ASTC compressed sRGB with alpha with 8x5 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.** * 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -970,12 +970,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed RGBA with 8x6 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 8x6 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -984,12 +984,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 8x6 blocks. **Available only on 2D, * ASTC compressed sRGB with alpha with 8x6 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.** * 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -998,12 +998,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed RGBA with 8x8 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 8x8 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1012,12 +1012,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 8x8 blocks. **Available only on 2D, * ASTC compressed sRGB with alpha with 8x8 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.** * 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1026,12 +1026,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed RGBA with 10x5 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 10x5 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1040,12 +1040,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 10x5 blocks. **Available only on * ASTC compressed sRGB with alpha with 10x5 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.** * 2D, 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1054,12 +1054,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed RGBA with 10x6 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 10x6 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1068,12 +1068,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 10x6 blocks. **Available only on * ASTC compressed sRGB with alpha with 10x6 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.** * 2D, 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1082,12 +1082,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed RGBA with 10x8 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 10x8 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1096,12 +1096,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 10x8 blocks. **Available only on * ASTC compressed sRGB with alpha with 10x8 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.** * 2D, 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1110,12 +1110,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed RGBA with 10x10 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 10x10 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1124,12 +1124,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 10x10 blocks. **Available only on * ASTC compressed sRGB with alpha with 10x10 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.** * 2D, 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1138,12 +1138,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed RGBA with 12x10 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 12x10 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1152,12 +1152,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 12x10 blocks. **Available only on * ASTC compressed sRGB with alpha with 12x10 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.** * 2D, 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1166,12 +1166,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed RGBA with 12x12 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 12x12 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1180,12 +1180,12 @@ enum class CompressedPixelFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 12x12 blocks. **Available only on * ASTC compressed sRGB with alpha with 12x12 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.** * 2D, 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */

8
src/Magnum/PixelStorage.h

@ -131,8 +131,8 @@ class MAGNUM_EXPORT PixelStorage {
/** /**
* @brief Row length * @brief Row length
* *
* @requires_gles30 Extension @es_extension{EXT,unpack_subimage}/ * @requires_gles30 Extension @extension{EXT,unpack_subimage}/
* @es_extension{NV,pack_subimage} in OpenGL ES 2.0. * @extension{NV,pack_subimage} in OpenGL ES 2.0.
* @requires_webgl20 Row length specification is not available in WebGL * @requires_webgl20 Row length specification is not available in WebGL
* 1.0. * 1.0.
*/ */
@ -145,8 +145,8 @@ class MAGNUM_EXPORT PixelStorage {
* actual image is used. Default is `0`. * actual image is used. Default is `0`.
* @see @fn_gl{PixelStore} with @def_gl{UNPACK_ROW_LENGTH}/ * @see @fn_gl{PixelStore} with @def_gl{UNPACK_ROW_LENGTH}/
* @def_gl{PACK_ROW_LENGTH} * @def_gl{PACK_ROW_LENGTH}
* @requires_gles30 Extension @es_extension{EXT,unpack_subimage}/ * @requires_gles30 Extension @extension{EXT,unpack_subimage}/
* @es_extension{NV,pack_subimage} in OpenGL ES 2.0. * @extension{NV,pack_subimage} in OpenGL ES 2.0.
* @requires_webgl20 Row length specification is not available in WebGL * @requires_webgl20 Row length specification is not available in WebGL
* 1.0. * 1.0.
*/ */

4
src/Magnum/PrimitiveQuery.h

@ -76,8 +76,8 @@ class MAGNUM_EXPORT PrimitiveQuery: public AbstractQuery {
* @ref result<UnsignedInt>() or @ref result<Int>() to retrieve the * @ref result<UnsignedInt>() or @ref result<Int>() to retrieve the
* result. * result.
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,geometry_shader} * @extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL. * @requires_gles Geometry shaders are not available in WebGL.
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES

22
src/Magnum/Renderbuffer.h

@ -80,8 +80,8 @@ class MAGNUM_EXPORT Renderbuffer: 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. If neither OpenGL ES 3.0 nor ES extension * OpenGL calls. If neither OpenGL ES 3.0 nor ES extension
* @es_extension{ANGLE,framebuffer_multisample} / * @extension{ANGLE,framebuffer_multisample} /
* @es_extension{NV,framebuffer_multisample} is available, returns `0`. * @extension{NV,framebuffer_multisample} is available, returns `0`.
* @see @ref setStorageMultisample(), @fn_gl{Get} with @def_gl{MAX_SAMPLES} * @see @ref setStorageMultisample(), @fn_gl{Get} with @def_gl{MAX_SAMPLES}
* @requires_webgl20 Multisample framebuffers are not available in * @requires_webgl20 Multisample framebuffers are not available in
* WebGL 1.0. * WebGL 1.0.
@ -170,11 +170,11 @@ class MAGNUM_EXPORT Renderbuffer: public AbstractObject {
* *
* 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
* @extension{KHR,debug} (covered also by @es_extension{ANDROID,extension_pack_es31a}) * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
* nor @extension2{EXT,debug_label} desktop or ES extension is * nor @extension{EXT,debug_label} desktop or ES extension is
* available, this function returns empty string. * available, this function returns empty string.
* @see @fn_gl{GetObjectLabel} or * @see @fn_gl{GetObjectLabel} or
* @fn_gl_extension2{GetObjectLabel,EXT,debug_label} with * @fn_gl_extension{GetObjectLabel,EXT,debug_label} with
* @def_gl{RENDERBUFFER} * @def_gl{RENDERBUFFER}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */
@ -185,11 +185,11 @@ class MAGNUM_EXPORT Renderbuffer: public AbstractObject {
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* Default is empty string. If OpenGL 4.3 is not supported and neither * Default is empty string. If OpenGL 4.3 is not supported and neither
* @extension{KHR,debug} (covered also by @es_extension{ANDROID,extension_pack_es31a}) * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
* nor @extension2{EXT,debug_label} desktop or ES extension is * nor @extension{EXT,debug_label} desktop or ES extension is
* available, this function does nothing. * available, this function does nothing.
* @see @ref maxLabelLength(), @fn_gl{ObjectLabel} or * @see @ref maxLabelLength(), @fn_gl{ObjectLabel} or
* @fn_gl_extension2{LabelObject,EXT,debug_label} with * @fn_gl_extension{LabelObject,EXT,debug_label} with
* @def_gl{RENDERBUFFER} * @def_gl{RENDERBUFFER}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */
@ -233,11 +233,11 @@ class MAGNUM_EXPORT Renderbuffer: public AbstractObject {
* @fn_gl2{NamedRenderbufferStorageMultisample,RenderbufferStorageMultisample}, * @fn_gl2{NamedRenderbufferStorageMultisample,RenderbufferStorageMultisample},
* @fn_gl_extension{NamedRenderbufferStorageMultisample,EXT,direct_state_access}, * @fn_gl_extension{NamedRenderbufferStorageMultisample,EXT,direct_state_access},
* eventually @fn_gl{BindRenderbuffer} and @fn_gl{RenderbufferStorageMultisample} * eventually @fn_gl{BindRenderbuffer} and @fn_gl{RenderbufferStorageMultisample}
* @requires_gles30 Extension @es_extension{ANGLE,framebuffer_multisample} * @requires_gles30 Extension @extension{ANGLE,framebuffer_multisample}
* or @es_extension{NV,framebuffer_multisample} in OpenGL ES 2.0. * or @extension{NV,framebuffer_multisample} in OpenGL ES 2.0.
* @requires_webgl20 Multisample framebuffers are not available in * @requires_webgl20 Multisample framebuffers are not available in
* WebGL 1.0. * WebGL 1.0.
* @todo How about @es_extension{APPLE,framebuffer_multisample}? * @todo How about @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}
*/ */
void setStorageMultisample(Int samples, RenderbufferFormat internalFormat, const Vector2i& size); void setStorageMultisample(Int samples, RenderbufferFormat internalFormat, const Vector2i& size);

20
src/Magnum/RenderbufferFormat.h

@ -38,7 +38,7 @@ namespace Magnum {
@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 + @extension{OES,rgb8_rgba8})
*/ */
enum class RenderbufferFormat: GLenum { enum class RenderbufferFormat: GLenum {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
@ -56,7 +56,7 @@ 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 @extension{EXT,texture_rg} in OpenGL ES
* 2.0. * 2.0.
* @requires_webgl20 Not available in WebGL 1.0. * @requires_webgl20 Not available in WebGL 1.0.
*/ */
@ -83,7 +83,7 @@ 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 @extension{EXT,texture_rg} in OpenGL ES
* 2.0. * 2.0.
* @requires_webgl20 Not available in WebGL 1.0. * @requires_webgl20 Not available in WebGL 1.0.
*/ */
@ -107,7 +107,7 @@ enum class RenderbufferFormat: GLenum {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2)) #if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/** /**
* 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 @extension{ARM,rgba8} or @extension{OES,rgb8_rgba8}
* in OpenGL ES 2.0. * in OpenGL ES 2.0.
* @requires_webgl20 Not available in WebGL 1.0. * @requires_webgl20 Not available in WebGL 1.0.
*/ */
@ -423,7 +423,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 @extension{EXT,sRGB} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{EXT,sRGB} in WebGL 1.0. * @requires_webgl20 Extension @webgl_extension{EXT,sRGB} in WebGL 1.0.
*/ */
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
@ -450,7 +450,7 @@ enum class RenderbufferFormat: GLenum {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2)) #if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/** /**
* Depth component, 24bit. * Depth component, 24bit.
* @requires_gles30 Extension @es_extension{OES,depth24} in OpenGL ES 2.0. * @requires_gles30 Extension @extension{OES,depth24} in OpenGL ES 2.0.
* @requires_webgl20 Only 16bit depth component is available in WebGL. * @requires_webgl20 Only 16bit depth component is available in WebGL.
*/ */
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
@ -463,7 +463,7 @@ enum class RenderbufferFormat: GLenum {
#ifndef MAGNUM_TARGET_WEBGL #ifndef MAGNUM_TARGET_WEBGL
/** /**
* Depth component, 32bit. * Depth component, 32bit.
* @requires_es_extension Extension @es_extension{OES,depth32} * @requires_es_extension Extension @extension{OES,depth32}
* @requires_gles At most 24bit depth component is available in WebGL. * @requires_gles At most 24bit depth component is available in WebGL.
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
@ -499,7 +499,7 @@ enum class RenderbufferFormat: GLenum {
#ifndef MAGNUM_TARGET_WEBGL #ifndef MAGNUM_TARGET_WEBGL
/** /**
* 1-bit stencil index. * 1-bit stencil index.
* @requires_es_extension Extension @es_extension{OES,stencil1} * @requires_es_extension Extension @extension{OES,stencil1}
* @requires_gles Only 8bit stencil index is available in WebGL. * @requires_gles Only 8bit stencil index is available in WebGL.
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
@ -510,7 +510,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 @extension{OES,stencil4}
* @requires_gles Only 8bit stencil index is available in WebGL. * @requires_gles Only 8bit stencil index is available in WebGL.
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
@ -550,7 +550,7 @@ enum class RenderbufferFormat: GLenum {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2)) #if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/** /**
* 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 @extension{OES,packed_depth_stencil} in
* OpenGL ES 2.0. * OpenGL ES 2.0.
* @requires_webgl20 Use @ref RenderbufferFormat::DepthStencil in WebGL * @requires_webgl20 Use @ref RenderbufferFormat::DepthStencil in WebGL
* 1.0 instead. * 1.0 instead.

84
src/Magnum/Renderer.h

@ -80,10 +80,10 @@ class MAGNUM_EXPORT Renderer {
#ifndef MAGNUM_TARGET_WEBGL #ifndef MAGNUM_TARGET_WEBGL
/** /**
* Coherent advanced blending. Enabled by default if desktop/ES * Coherent advanced blending. Enabled by default if desktop/ES
* extension @extension3{KHR,blend_equation_advanced_coherent,blend_equation_advanced} * extension @extension2{KHR,blend_equation_advanced_coherent,blend_equation_advanced}
* is available. See @ref blendBarrier() for more information. * is available. See @ref blendBarrier() for more information.
* @requires_extension Extension @extension{KHR,blend_equation_advanced} * @requires_extension Extension @extension{KHR,blend_equation_advanced}
* @requires_es_extension Extension @es_extension2{KHR,blend_equation_advanced,blend_equation_advanced} * @requires_es_extension Extension @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in WebGL. * @requires_gles Advanced blend equations are not available in WebGL.
*/ */
BlendAdvancedCoherent = GL_BLEND_ADVANCED_COHERENT_KHR, BlendAdvancedCoherent = GL_BLEND_ADVANCED_COHERENT_KHR,
@ -103,8 +103,8 @@ class MAGNUM_EXPORT Renderer {
* @see @ref DebugOutput, @ref Feature::DebugOutputSynchronous, * @see @ref DebugOutput, @ref Feature::DebugOutputSynchronous,
* @ref Platform::Sdl2Application::Configuration::Flag::Debug "Platform::*Application::Configuration::Flag::Debug" * @ref Platform::Sdl2Application::Configuration::Flag::Debug "Platform::*Application::Configuration::Flag::Debug"
* @requires_gl43 Extension @extension{KHR,debug} * @requires_gl43 Extension @extension{KHR,debug}
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,debug,debug} * @extension2{KHR,debug,debug}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
@ -118,8 +118,8 @@ class MAGNUM_EXPORT Renderer {
* @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{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,debug,debug} * @extension2{KHR,debug,debug}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
@ -160,7 +160,7 @@ class MAGNUM_EXPORT Renderer {
* Disabled by default on desktop GL, enabled by default on OpenGL * Disabled by default on desktop GL, enabled by default on OpenGL
* ES. * ES.
* @requires_gl30 Extension @extension{ARB,framebuffer_sRGB} * @requires_gl30 Extension @extension{ARB,framebuffer_sRGB}
* @requires_es_extension @es_extension{EXT,sRGB_write_control}. If * @requires_es_extension @extension{EXT,sRGB_write_control}. If
* the extension is not present, there's no ability to turn * the extension is not present, there's no ability to turn
* the sRGB conversion off. * the sRGB conversion off.
* @requires_gles WebGL has no ability to turn the sRGB conversion * @requires_gles WebGL has no ability to turn the sRGB conversion
@ -203,7 +203,7 @@ class MAGNUM_EXPORT Renderer {
* Offset lines * Offset lines
* @see @ref Feature::PolygonOffsetFill, @ref Feature::PolygonOffsetPoint, * @see @ref Feature::PolygonOffsetFill, @ref Feature::PolygonOffsetPoint,
* @ref setPolygonOffset() * @ref setPolygonOffset()
* @requires_es_extension Extension @es_extension{NV,polygon_offset} * @requires_es_extension Extension @extension{NV,polygon_offset}
* @requires_gles Only @ref Feature::PolygonOffsetFill is available * @requires_gles Only @ref Feature::PolygonOffsetFill is available
* in WebGL. * in WebGL.
*/ */
@ -217,7 +217,7 @@ class MAGNUM_EXPORT Renderer {
* Offset points * Offset points
* @see @ref Feature::PolygonOffsetFill, @ref Feature::PolygonOffsetLine, * @see @ref Feature::PolygonOffsetFill, @ref Feature::PolygonOffsetLine,
* @ref setPolygonOffset() * @ref setPolygonOffset()
* @requires_es_extension Extension @es_extension{NV,polygon_offset} * @requires_es_extension Extension @extension{NV,polygon_offset}
* @requires_gles Only @ref Feature::PolygonOffsetFill is available * @requires_gles Only @ref Feature::PolygonOffsetFill is available
* in WebGL. * in WebGL.
*/ */
@ -310,7 +310,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 @extension{OES,standard_derivatives}
* in OpenGL ES 2.0. * in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{OES,standard_derivatives} * @requires_webgl20 Extension @webgl_extension{OES,standard_derivatives}
* in WebGL 1.0. * in WebGL 1.0.
@ -462,7 +462,7 @@ class MAGNUM_EXPORT Renderer {
* @brief Polygon mode * @brief Polygon mode
* *
* @see @ref setPolygonMode() * @see @ref setPolygonMode()
* @requires_es_extension Extension @es_extension{NV,polygon_mode}. * @requires_es_extension Extension @extension{NV,polygon_mode}.
* Otherwise behaves always like @ref PolygonMode::Fill. See * Otherwise behaves always like @ref PolygonMode::Fill. See
* @ref Mesh::setPrimitive() for possible workaround. * @ref Mesh::setPrimitive() for possible workaround.
* @requires_gles WebGL behaves always like @ref PolygonMode::Fill. See * @requires_gles WebGL behaves always like @ref PolygonMode::Fill. See
@ -503,7 +503,7 @@ class MAGNUM_EXPORT Renderer {
* *
* Initial value is @ref PolygonMode::Fill. * Initial value is @ref PolygonMode::Fill.
* @see @fn_gl{PolygonMode} * @see @fn_gl{PolygonMode}
* @requires_es_extension Extension @es_extension{NV,polygon_mode}. * @requires_es_extension Extension @extension{NV,polygon_mode}.
* Otherwise behaves always like the default. See * Otherwise behaves always like the default. See
* @ref Mesh::setPrimitive() for possible workaround. * @ref Mesh::setPrimitive() for possible workaround.
* @requires_gles WebGL behaves always like the default. See * @requires_gles WebGL behaves always like the default. See
@ -755,7 +755,7 @@ class MAGNUM_EXPORT Renderer {
/** /**
* `min(source, destination)` * `min(source, destination)`
* @requires_gles30 Extension @es_extension2{EXT,blend_minmax,blend_minmax} * @requires_gles30 Extension @extension2{EXT,blend_minmax,blend_minmax}
* in OpenGL ES 2.0. * in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{EXT,blend_minmax} * @requires_webgl20 Extension @webgl_extension{EXT,blend_minmax}
* in WebGL 1.0. * in WebGL 1.0.
@ -768,7 +768,7 @@ class MAGNUM_EXPORT Renderer {
/** /**
* `max(source, destination)` * `max(source, destination)`
* @requires_gles30 Extension @es_extension2{EXT,blend_minmax,blend_minmax} * @requires_gles30 Extension @extension2{EXT,blend_minmax,blend_minmax}
* in OpenGL ES 2.0. * in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{EXT,blend_minmax} * @requires_webgl20 Extension @webgl_extension{EXT,blend_minmax}
* in WebGL 1.0. * in WebGL 1.0.
@ -786,7 +786,7 @@ class MAGNUM_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation). * @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier() * @see @ref blendBarrier()
* @requires_extension Extension @extension{KHR,blend_equation_advanced} * @requires_extension Extension @extension{KHR,blend_equation_advanced}
* @requires_es_extension Extension @es_extension2{KHR,blend_equation_advanced,blend_equation_advanced} * @requires_es_extension Extension @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in * @requires_gles Advanced blend equations are not available in
* WebGL. * WebGL.
*/ */
@ -798,7 +798,7 @@ class MAGNUM_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation). * @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier() * @see @ref blendBarrier()
* @requires_extension Extension @extension{KHR,blend_equation_advanced} * @requires_extension Extension @extension{KHR,blend_equation_advanced}
* @requires_es_extension Extension @es_extension2{KHR,blend_equation_advanced,blend_equation_advanced} * @requires_es_extension Extension @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in * @requires_gles Advanced blend equations are not available in
* WebGL. * WebGL.
*/ */
@ -810,7 +810,7 @@ class MAGNUM_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation). * @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier() * @see @ref blendBarrier()
* @requires_extension Extension @extension{KHR,blend_equation_advanced} * @requires_extension Extension @extension{KHR,blend_equation_advanced}
* @requires_es_extension Extension @es_extension2{KHR,blend_equation_advanced,blend_equation_advanced} * @requires_es_extension Extension @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in * @requires_gles Advanced blend equations are not available in
* WebGL. * WebGL.
*/ */
@ -822,7 +822,7 @@ class MAGNUM_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation). * @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier() * @see @ref blendBarrier()
* @requires_extension Extension @extension{KHR,blend_equation_advanced} * @requires_extension Extension @extension{KHR,blend_equation_advanced}
* @requires_es_extension Extension @es_extension2{KHR,blend_equation_advanced,blend_equation_advanced} * @requires_es_extension Extension @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in * @requires_gles Advanced blend equations are not available in
* WebGL. * WebGL.
*/ */
@ -834,7 +834,7 @@ class MAGNUM_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation). * @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier() * @see @ref blendBarrier()
* @requires_extension Extension @extension{KHR,blend_equation_advanced} * @requires_extension Extension @extension{KHR,blend_equation_advanced}
* @requires_es_extension Extension @es_extension2{KHR,blend_equation_advanced,blend_equation_advanced} * @requires_es_extension Extension @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in * @requires_gles Advanced blend equations are not available in
* WebGL. * WebGL.
*/ */
@ -846,7 +846,7 @@ class MAGNUM_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation). * @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier() * @see @ref blendBarrier()
* @requires_extension Extension @extension{KHR,blend_equation_advanced} * @requires_extension Extension @extension{KHR,blend_equation_advanced}
* @requires_es_extension Extension @es_extension2{KHR,blend_equation_advanced,blend_equation_advanced} * @requires_es_extension Extension @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in * @requires_gles Advanced blend equations are not available in
* WebGL. * WebGL.
*/ */
@ -858,7 +858,7 @@ class MAGNUM_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation). * @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier() * @see @ref blendBarrier()
* @requires_extension Extension @extension{KHR,blend_equation_advanced} * @requires_extension Extension @extension{KHR,blend_equation_advanced}
* @requires_es_extension Extension @es_extension2{KHR,blend_equation_advanced,blend_equation_advanced} * @requires_es_extension Extension @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in * @requires_gles Advanced blend equations are not available in
* WebGL. * WebGL.
*/ */
@ -870,7 +870,7 @@ class MAGNUM_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation). * @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier() * @see @ref blendBarrier()
* @requires_extension Extension @extension{KHR,blend_equation_advanced} * @requires_extension Extension @extension{KHR,blend_equation_advanced}
* @requires_es_extension Extension @es_extension2{KHR,blend_equation_advanced,blend_equation_advanced} * @requires_es_extension Extension @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in * @requires_gles Advanced blend equations are not available in
* WebGL. * WebGL.
*/ */
@ -882,7 +882,7 @@ class MAGNUM_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation). * @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier() * @see @ref blendBarrier()
* @requires_extension Extension @extension{KHR,blend_equation_advanced} * @requires_extension Extension @extension{KHR,blend_equation_advanced}
* @requires_es_extension Extension @es_extension2{KHR,blend_equation_advanced,blend_equation_advanced} * @requires_es_extension Extension @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in * @requires_gles Advanced blend equations are not available in
* WebGL. * WebGL.
*/ */
@ -894,7 +894,7 @@ class MAGNUM_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation). * @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier() * @see @ref blendBarrier()
* @requires_extension Extension @extension{KHR,blend_equation_advanced} * @requires_extension Extension @extension{KHR,blend_equation_advanced}
* @requires_es_extension Extension @es_extension2{KHR,blend_equation_advanced,blend_equation_advanced} * @requires_es_extension Extension @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in * @requires_gles Advanced blend equations are not available in
* WebGL. * WebGL.
*/ */
@ -906,7 +906,7 @@ class MAGNUM_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation). * @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier() * @see @ref blendBarrier()
* @requires_extension Extension @extension{KHR,blend_equation_advanced} * @requires_extension Extension @extension{KHR,blend_equation_advanced}
* @requires_es_extension Extension @es_extension2{KHR,blend_equation_advanced,blend_equation_advanced} * @requires_es_extension Extension @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in * @requires_gles Advanced blend equations are not available in
* WebGL. * WebGL.
*/ */
@ -918,7 +918,7 @@ class MAGNUM_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation). * @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier() * @see @ref blendBarrier()
* @requires_extension Extension @extension{KHR,blend_equation_advanced} * @requires_extension Extension @extension{KHR,blend_equation_advanced}
* @requires_es_extension Extension @es_extension2{KHR,blend_equation_advanced,blend_equation_advanced} * @requires_es_extension Extension @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in * @requires_gles Advanced blend equations are not available in
* WebGL. * WebGL.
*/ */
@ -930,7 +930,7 @@ class MAGNUM_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation). * @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier() * @see @ref blendBarrier()
* @requires_extension Extension @extension{KHR,blend_equation_advanced} * @requires_extension Extension @extension{KHR,blend_equation_advanced}
* @requires_es_extension Extension @es_extension2{KHR,blend_equation_advanced,blend_equation_advanced} * @requires_es_extension Extension @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in * @requires_gles Advanced blend equations are not available in
* WebGL. * WebGL.
*/ */
@ -942,7 +942,7 @@ class MAGNUM_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation). * @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier() * @see @ref blendBarrier()
* @requires_extension Extension @extension{KHR,blend_equation_advanced} * @requires_extension Extension @extension{KHR,blend_equation_advanced}
* @requires_es_extension Extension @es_extension2{KHR,blend_equation_advanced,blend_equation_advanced} * @requires_es_extension Extension @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in * @requires_gles Advanced blend equations are not available in
* WebGL. * WebGL.
*/ */
@ -954,7 +954,7 @@ class MAGNUM_EXPORT Renderer {
* @ref setBlendEquation(BlendEquation). * @ref setBlendEquation(BlendEquation).
* @see @ref blendBarrier() * @see @ref blendBarrier()
* @requires_extension Extension @extension{KHR,blend_equation_advanced} * @requires_extension Extension @extension{KHR,blend_equation_advanced}
* @requires_es_extension Extension @es_extension2{KHR,blend_equation_advanced,blend_equation_advanced} * @requires_es_extension Extension @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in * @requires_gles Advanced blend equations are not available in
* WebGL. * WebGL.
*/ */
@ -1155,12 +1155,12 @@ class MAGNUM_EXPORT Renderer {
* touched more than once. * touched more than once.
* *
* This is needed either when desktop/ES extension * This is needed either when desktop/ES extension
* @extension3{KHR,blend_equation_advanced_coherent,blend_equation_advanced} * @extension2{KHR,blend_equation_advanced_coherent,blend_equation_advanced}
* is not available or when @extension3{KHR,blend_equation_advanced_coherent,blend_equation_advanced} * is not available or when @extension2{KHR,blend_equation_advanced_coherent,blend_equation_advanced}
* is available and @ref Feature::BlendAdvancedCoherent is turned off. * is available and @ref Feature::BlendAdvancedCoherent is turned off.
* @see @ref BlendEquation, @fn_gl_extension{BlendBarrier,KHR,blend_equation_advanced} * @see @ref BlendEquation, @fn_gl_extension{BlendBarrier,KHR,blend_equation_advanced}
* @requires_extension Extension @extension{KHR,blend_equation_advanced} * @requires_extension Extension @extension{KHR,blend_equation_advanced}
* @requires_es_extension Extension @es_extension2{KHR,blend_equation_advanced,blend_equation_advanced} * @requires_es_extension Extension @extension2{KHR,blend_equation_advanced,blend_equation_advanced}
* @requires_gles Advanced blend equations are not available in WebGL. * @requires_gles Advanced blend equations are not available in WebGL.
*/ */
static void blendBarrier() { glBlendBarrierKHR(); } static void blendBarrier() { glBlendBarrierKHR(); }
@ -1392,8 +1392,8 @@ class MAGNUM_EXPORT Renderer {
* Given operation would cause an internal stack to underflow. * Given operation would cause an internal stack to underflow.
* @see @ref DebugGroup * @see @ref DebugGroup
* @requires_gl43 Extension @extension{KHR,debug} * @requires_gl43 Extension @extension{KHR,debug}
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,debug,debug} * @extension2{KHR,debug,debug}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
@ -1406,8 +1406,8 @@ class MAGNUM_EXPORT Renderer {
* Given operation would cause an internal stack to overflow. * Given operation would cause an internal stack to overflow.
* @see @ref DebugGroup * @see @ref DebugGroup
* @requires_gl43 Extension @extension{KHR,debug} * @requires_gl43 Extension @extension{KHR,debug}
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,debug,debug} * @extension2{KHR,debug,debug}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
@ -1452,7 +1452,7 @@ class MAGNUM_EXPORT Renderer {
* Graphics reset will result in context loss, cause of the reset * Graphics reset will result in context loss, cause of the reset
* can be queried with @ref graphicsResetStatus(). * can be queried with @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 @extension{EXT,robustness}
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
LoseContextOnReset = GL_LOSE_CONTEXT_ON_RESET_ARB LoseContextOnReset = GL_LOSE_CONTEXT_ON_RESET_ARB
@ -1466,7 +1466,7 @@ class MAGNUM_EXPORT Renderer {
* *
* The result is cached, repeated queries don't result in repeated * The result is cached, repeated queries don't result in repeated
* OpenGL calls. If OpenGL extension @extension{ARB,robustness} or ES * OpenGL calls. If OpenGL extension @extension{ARB,robustness} or ES
* extension @es_extension{EXT,robustness} is not available, this * extension @extension{EXT,robustness} is not available, this
* function always returns @ref ResetNotificationStrategy::NoResetNotification. * function always returns @ref ResetNotificationStrategy::NoResetNotification.
* *
* For the reset notification to work, additionally to the extension * For the reset notification to work, additionally to the extension
@ -1495,7 +1495,7 @@ class MAGNUM_EXPORT Renderer {
/** /**
* Reset attributable to the current context has been detected. * Reset attributable to the current context has been detected.
* @requires_extension Extension @extension{ARB,robustness} * @requires_extension Extension @extension{ARB,robustness}
* @requires_es_extension Extension @es_extension{EXT,robustness} * @requires_es_extension Extension @extension{EXT,robustness}
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
GuiltyContextReset = GL_GUILTY_CONTEXT_RESET_ARB, GuiltyContextReset = GL_GUILTY_CONTEXT_RESET_ARB,
@ -1506,7 +1506,7 @@ class MAGNUM_EXPORT Renderer {
/** /**
* Reset not attributable to the current context has been detected. * Reset not attributable to the current context has been detected.
* @requires_extension Extension @extension{ARB,robustness} * @requires_extension Extension @extension{ARB,robustness}
* @requires_es_extension Extension @es_extension{EXT,robustness} * @requires_es_extension Extension @extension{EXT,robustness}
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
InnocentContextReset = GL_INNOCENT_CONTEXT_RESET_ARB, InnocentContextReset = GL_INNOCENT_CONTEXT_RESET_ARB,
@ -1517,7 +1517,7 @@ class MAGNUM_EXPORT Renderer {
/** /**
* Reset with unknown cause has been detected. * Reset with unknown cause has been detected.
* @requires_extension Extension @extension{ARB,robustness} * @requires_extension Extension @extension{ARB,robustness}
* @requires_es_extension Extension @es_extension{EXT,robustness} * @requires_es_extension Extension @extension{EXT,robustness}
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
UnknownContextReset = GL_UNKNOWN_CONTEXT_RESET_ARB UnknownContextReset = GL_UNKNOWN_CONTEXT_RESET_ARB
@ -1530,7 +1530,7 @@ class MAGNUM_EXPORT Renderer {
* @brief Check graphics reset status * @brief Check graphics reset status
* *
* Reset causes all context state to be lost. If OpenGL extension * Reset causes all context state to be lost. If OpenGL extension
* @extension{ARB,robustness} or ES extension @es_extension{EXT,robustness} * @extension{ARB,robustness} or ES extension @extension{EXT,robustness}
* is not available, this function always returns @ref GraphicsResetStatus::NoError. * is not available, this function always returns @ref GraphicsResetStatus::NoError.
* *
* For the reset notification to work, additionally to the extension * For the reset notification to work, additionally to the extension

2
src/Magnum/SampleQuery.h

@ -76,7 +76,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 @extension{EXT,occlusion_query_boolean} in
OpenGL ES 2.0. OpenGL ES 2.0.
@requires_webgl20 Queries are not available in WebGL 1.0. @requires_webgl20 Queries are not available in WebGL 1.0.
*/ */

18
src/Magnum/Sampler.h

@ -54,8 +54,8 @@ class MAGNUM_EXPORT Sampler {
/** /**
* Linear interpolation filtering. * Linear interpolation filtering.
* @requires_gles30 Extension @es_extension{OES,texture_float_linear} / * @requires_gles30 Extension @extension{OES,texture_float_linear} /
* @es_extension2{OES,texture_half_float_linear,OES_texture_float_linear} * @extension2{OES,texture_half_float_linear,OES_texture_float_linear}
* for linear interpolation of textures with * for linear interpolation of textures with
* @ref TextureFormat::HalfFloat / @ref TextureFormat::Float * @ref TextureFormat::HalfFloat / @ref TextureFormat::Float
* in OpenGL ES 2.0. * in OpenGL ES 2.0.
@ -83,8 +83,8 @@ 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 @extension{OES,texture_float_linear} /
* @es_extension2{OES,texture_half_float_linear,OES_texture_float_linear} * @extension2{OES,texture_half_float_linear,OES_texture_float_linear}
* for linear interpolation of textures with * for linear interpolation of textures with
* @ref TextureFormat::HalfFloat / @ref TextureFormat::Float * @ref TextureFormat::HalfFloat / @ref TextureFormat::Float
* in OpenGL ES 2.0. * in OpenGL ES 2.0.
@ -121,9 +121,9 @@ 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{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,texture_border_clamp} or * @extension{EXT,texture_border_clamp} or
* @es_extension{NV,texture_border_clamp} * @extension{NV,texture_border_clamp}
* @requires_gles Border clamp is not available in WebGL. * @requires_gles Border clamp is not available in WebGL.
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
@ -153,7 +153,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} in * @requires_gles30 Extension @extension{EXT,shadow_samplers} in
* OpenGL ES 2.0. * OpenGL ES 2.0.
* @requires_webgl20 Depth texture comparison is not available in WebGL * @requires_webgl20 Depth texture comparison is not available in WebGL
* 1.0. * 1.0.
@ -178,7 +178,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} in * @requires_gles30 Extension @extension{EXT,shadow_samplers} in
* OpenGL ES 2.0. * OpenGL ES 2.0.
* @requires_webgl20 Depth texture comparison is not available in WebGL * @requires_webgl20 Depth texture comparison is not available in WebGL
* 1.0. * 1.0.

56
src/Magnum/Shader.h

@ -72,8 +72,8 @@ class MAGNUM_EXPORT Shader: public AbstractObject {
* Tessellation control shader * Tessellation control shader
* @requires_gl40 Extension @extension{ARB,tessellation_shader} * @requires_gl40 Extension @extension{ARB,tessellation_shader}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,tessellation_shader} * @extension{EXT,tessellation_shader}
* @requires_gles Tessellation shaders are not available in WebGL. * @requires_gles Tessellation shaders are not available in WebGL.
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
@ -86,8 +86,8 @@ class MAGNUM_EXPORT Shader: public AbstractObject {
* Tessellation evaluation shader * Tessellation evaluation shader
* @requires_gl40 Extension @extension{ARB,tessellation_shader} * @requires_gl40 Extension @extension{ARB,tessellation_shader}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,tessellation_shader} * @extension{EXT,tessellation_shader}
* @requires_gles Tessellation shaders are not available in WebGL. * @requires_gles Tessellation shaders are not available in WebGL.
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
@ -100,8 +100,8 @@ class MAGNUM_EXPORT Shader: public AbstractObject {
* Geometry shader * Geometry shader
* @requires_gl32 Extension @extension{ARB,geometry_shader4} * @requires_gl32 Extension @extension{ARB,geometry_shader4}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,geometry_shader} * @extension{EXT,geometry_shader}
* @requires_gles Geometry shaders are not available in WebGL. * @requires_gles Geometry shaders are not available in WebGL.
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
@ -143,8 +143,8 @@ class MAGNUM_EXPORT Shader: 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. If neither @extension{ARB,tessellation_shader} (part * OpenGL calls. If neither @extension{ARB,tessellation_shader} (part
* of OpenGL 4.0) nor @es_extension{ANDROID,extension_pack_es31a}/ * of OpenGL 4.0) nor @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,tessellation_shader} ES extension is available, * @extension{EXT,tessellation_shader} ES extension is available,
* returns `0`. * returns `0`.
* @see @fn_gl{Get} with @def_gl{MAX_TESS_CONTROL_INPUT_COMPONENTS} * @see @fn_gl{Get} with @def_gl{MAX_TESS_CONTROL_INPUT_COMPONENTS}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
@ -157,8 +157,8 @@ class MAGNUM_EXPORT Shader: 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. If neither @extension{ARB,tessellation_shader} (part * OpenGL calls. If neither @extension{ARB,tessellation_shader} (part
* of OpenGL 4.0) nor @es_extension{ANDROID,extension_pack_es31a}/ * of OpenGL 4.0) nor @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,tessellation_shader} ES extension is available, * @extension{EXT,tessellation_shader} ES extension is available,
* returns `0`. * returns `0`.
* @see @fn_gl{Get} with @def_gl{MAX_TESS_CONTROL_OUTPUT_COMPONENTS} * @see @fn_gl{Get} with @def_gl{MAX_TESS_CONTROL_OUTPUT_COMPONENTS}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
@ -171,8 +171,8 @@ class MAGNUM_EXPORT Shader: 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. If neither @extension{ARB,tessellation_shader} (part * OpenGL calls. If neither @extension{ARB,tessellation_shader} (part
* of OpenGL 4.0) nor @es_extension{ANDROID,extension_pack_es31a}/ * of OpenGL 4.0) nor @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,tessellation_shader} ES extension is available, * @extension{EXT,tessellation_shader} ES extension is available,
* returns `0`. * returns `0`.
* @see @fn_gl{Get} with @def_gl{MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS} * @see @fn_gl{Get} with @def_gl{MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
@ -185,8 +185,8 @@ class MAGNUM_EXPORT Shader: 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. If neither @extension{ARB,tessellation_shader} (part * OpenGL calls. If neither @extension{ARB,tessellation_shader} (part
* of OpenGL 4.0) nor @es_extension{ANDROID,extension_pack_es31a}/ * of OpenGL 4.0) nor @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,tessellation_shader} ES extension is available, * @extension{EXT,tessellation_shader} ES extension is available,
* returns `0`. * returns `0`.
* @see @fn_gl{Get} with @def_gl{MAX_TESS_EVALUATION_INPUT_COMPONENTS} * @see @fn_gl{Get} with @def_gl{MAX_TESS_EVALUATION_INPUT_COMPONENTS}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
@ -199,8 +199,8 @@ class MAGNUM_EXPORT Shader: 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. If neither @extension{ARB,tessellation_shader} (part * OpenGL calls. If neither @extension{ARB,tessellation_shader} (part
* of OpenGL 4.0) nor @es_extension{ANDROID,extension_pack_es31a}/ * of OpenGL 4.0) nor @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,tessellation_shader} ES extension is available, * @extension{EXT,tessellation_shader} ES extension is available,
* returns `0`. * returns `0`.
* @see @fn_gl{Get} with @def_gl{MAX_TESS_EVALUATION_OUTPUT_COMPONENTS} * @see @fn_gl{Get} with @def_gl{MAX_TESS_EVALUATION_OUTPUT_COMPONENTS}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
@ -213,8 +213,8 @@ class MAGNUM_EXPORT Shader: 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. If neither @extension{ARB,geometry_shader4} (part of * OpenGL calls. If neither @extension{ARB,geometry_shader4} (part of
* OpenGL 3.2) nor @es_extension{ANDROID,extension_pack_es31a}/ * OpenGL 3.2) nor @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,geometry_shader} ES extension is not available, * @extension{EXT,geometry_shader} ES extension is not available,
* returns `0`. * returns `0`.
* @see @fn_gl{Get} with @def_gl{MAX_GEOMETRY_INPUT_COMPONENTS} * @see @fn_gl{Get} with @def_gl{MAX_GEOMETRY_INPUT_COMPONENTS}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
@ -227,8 +227,8 @@ class MAGNUM_EXPORT Shader: 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. If neither @extension{ARB,geometry_shader4} (part of * OpenGL calls. If neither @extension{ARB,geometry_shader4} (part of
* OpenGL 3.2) nor @es_extension{ANDROID,extension_pack_es31a}/ * OpenGL 3.2) nor @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,geometry_shader} ES extension is not available, * @extension{EXT,geometry_shader} ES extension is not available,
* returns `0`. * returns `0`.
* @see @fn_gl{Get} with @def_gl{MAX_GEOMETRY_OUTPUT_COMPONENTS} * @see @fn_gl{Get} with @def_gl{MAX_GEOMETRY_OUTPUT_COMPONENTS}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
@ -241,8 +241,8 @@ class MAGNUM_EXPORT Shader: 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. If neither @extension{ARB,geometry_shader4} (part of * OpenGL calls. If neither @extension{ARB,geometry_shader4} (part of
* OpenGL 3.2) nor @es_extension{ANDROID,extension_pack_es31a}/ * OpenGL 3.2) nor @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,geometry_shader} ES extension is not available, * @extension{EXT,geometry_shader} ES extension is not available,
* returns `0`. * returns `0`.
* @see @fn_gl{Get} with @def_gl{MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS} * @see @fn_gl{Get} with @def_gl{MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
@ -549,11 +549,11 @@ class MAGNUM_EXPORT Shader: public AbstractObject {
* *
* 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
* @extension{KHR,debug} (covered also by @es_extension{ANDROID,extension_pack_es31a}) * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
* nor @extension2{EXT,debug_label} desktop or ES extension is * nor @extension{EXT,debug_label} desktop or ES extension is
* available, this function returns empty string. * available, this function returns empty string.
* @see @fn_gl{GetObjectLabel} with @def_gl{SHADER} or * @see @fn_gl{GetObjectLabel} with @def_gl{SHADER} or
* @fn_gl_extension2{GetObjectLabel,EXT,debug_label} with * @fn_gl_extension{GetObjectLabel,EXT,debug_label} with
* @def_gl{SHADER_OBJECT_EXT} * @def_gl{SHADER_OBJECT_EXT}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */
@ -564,11 +564,11 @@ class MAGNUM_EXPORT Shader: public AbstractObject {
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* Default is empty string. If OpenGL 4.3 is not supported and neither * Default is empty string. If OpenGL 4.3 is not supported and neither
* @extension{KHR,debug} (covered also by @es_extension{ANDROID,extension_pack_es31a}) * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
* nor @extension2{EXT,debug_label} desktop or ES extension is * nor @extension{EXT,debug_label} desktop or ES extension is
* available, this function does nothing. * available, this function does nothing.
* @see @ref maxLabelLength(), @fn_gl{ObjectLabel} with * @see @ref maxLabelLength(), @fn_gl{ObjectLabel} with
* @def_gl{SHADER} or @fn_gl_extension2{LabelObject,EXT,debug_label} * @def_gl{SHADER} or @fn_gl_extension{LabelObject,EXT,debug_label}
* with @def_gl{SHADER_OBJECT_EXT} * with @def_gl{SHADER_OBJECT_EXT}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */

6
src/Magnum/Shaders/MeshVisualizer.h

@ -56,7 +56,7 @@ If you have geometry shaders available, you don't need to do anything else.
@requires_gl32 Extension @extension{ARB,geometry_shader4} for wireframe @requires_gl32 Extension @extension{ARB,geometry_shader4} for wireframe
rendering using geometry shaders. rendering using geometry shaders.
@requires_es_extension Extension @es_extension{EXT,geometry_shader} for @requires_es_extension Extension @extension{EXT,geometry_shader} for
wireframe rendering using geometry shaders. wireframe rendering using geometry shaders.
If you don't have geometry shaders, you need to set @ref Flag::NoGeometryShader If you don't have geometry shaders, you need to set @ref Flag::NoGeometryShader
@ -65,10 +65,10 @@ meshes (see @ref MeshTools::duplicate() for possible solution). Additionaly, if
you have OpenGL < 3.1 or OpenGL ES 2.0, you need to provide also you have OpenGL < 3.1 or OpenGL ES 2.0, you need to provide also
@ref VertexIndex attribute. @ref VertexIndex attribute.
@requires_gles30 Extension @es_extension{OES,standard_derivatives} for @requires_gles30 Extension @extension{OES,standard_derivatives} for
wireframe rendering without geometry shaders. wireframe rendering without geometry shaders.
If using geometry shaders on OpenGL ES, @es_extension{NV,shader_noperspective_interpolation} If using geometry shaders on OpenGL ES, @extension{NV,shader_noperspective_interpolation}
is optionally used for improving line appearance. is optionally used for improving line appearance.
## Example usage ## Example usage

2
src/Magnum/Text/DistanceFieldGlyphCache.h

@ -65,7 +65,7 @@ class MAGNUM_TEXT_EXPORT DistanceFieldGlyphCache: public GlyphCache {
* See @ref TextureTools::distanceField() for more information about * See @ref TextureTools::distanceField() for more information about
* the parameters. Sets internal texture format to red channel only. On * the parameters. Sets internal texture format to red channel only. On
* desktop OpenGL requires @extension{ARB,texture_rg} (also part of * desktop OpenGL requires @extension{ARB,texture_rg} (also part of
* OpenGL ES 3.0), in ES2 uses @es_extension{EXT,texture_rg} if * OpenGL ES 3.0), in ES2 uses @extension{EXT,texture_rg} if
* available or @ref TextureFormat::RGB as fallback. * available or @ref TextureFormat::RGB as fallback.
* @todo Is Luminance format renderable anywhere? Also would it be * @todo Is Luminance format renderable anywhere? Also would it be
* possible to convert the RGB texture to Luminance after it has * possible to convert the RGB texture to Luminance after it has

2
src/Magnum/Text/GlyphCache.h

@ -87,7 +87,7 @@ class MAGNUM_TEXT_EXPORT GlyphCache {
* *
* Sets internal texture format to red channel only. On desktop OpenGL * Sets internal texture format to red channel only. On desktop OpenGL
* requires @extension{ARB,texture_rg} (also part of OpenGL ES 3.0), in * requires @extension{ARB,texture_rg} (also part of OpenGL ES 3.0), in
* ES2 uses @es_extension{EXT,texture_rg}, if available, or * ES2 uses @extension{EXT,texture_rg}, if available, or
* @ref TextureFormat::Luminance as fallback. * @ref TextureFormat::Luminance as fallback.
*/ */
explicit GlyphCache(const Vector2i& originalSize, const Vector2i& size, const Vector2i& padding = Vector2i()); explicit GlyphCache(const Vector2i& originalSize, const Vector2i& size, const Vector2i& padding = Vector2i());

6
src/Magnum/Text/Renderer.h

@ -229,9 +229,9 @@ renderer.mesh().draw(shader);
## Required OpenGL functionality ## Required OpenGL functionality
Mutable text rendering requires @extension{ARB,map_buffer_range} on desktop Mutable text rendering requires @extension{ARB,map_buffer_range} on desktop
OpenGL (also part of OpenGL ES 3.0). If neither @es_extension{EXT,map_buffer_range} OpenGL (also part of OpenGL ES 3.0). If neither @extension{EXT,map_buffer_range}
nor @es_extension{CHROMIUM,map_sub} is not available in ES 2.0, at least nor @extension{CHROMIUM,map_sub} is not available in ES 2.0, at least
@es_extension{OES,mapbuffer} must be supported for asynchronous buffer updates. @extension{OES,mapbuffer} must be supported for asynchronous buffer updates.
There is no similar extension in WebGL, thus plain (and slow) buffer updates There is no similar extension in WebGL, thus plain (and slow) buffer updates
are used there. are used there.

34
src/Magnum/Texture.h

@ -98,7 +98,7 @@ 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 @extension{OES,texture_3D} for 3D textures in
OpenGL ES 2.0. OpenGL ES 2.0.
@requires_webgl20 3D textures are not available in WebGL 1.0. @requires_webgl20 3D textures are not available in WebGL 1.0.
@requires_gl 1D textures are not available in OpenGL ES or WebGL. @requires_gl 1D textures are not available in OpenGL ES or WebGL.
@ -114,7 +114,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* *
* The result is cached, repeated queries don't result in repeated * The result is cached, repeated queries don't result in repeated
* OpenGL calls. For 3D textures in OpenGL ES 2.0, if * OpenGL calls. For 3D textures in OpenGL ES 2.0, if
* @es_extension{OES,texture_3D} extension is not available, returns * @extension{OES,texture_3D} extension is not available, returns
* zero vector. * zero vector.
* @see @fn_gl{Get} with @def_gl{MAX_TEXTURE_SIZE}, * @see @fn_gl{Get} with @def_gl{MAX_TEXTURE_SIZE},
* @def_gl{MAX_3D_TEXTURE_SIZE} * @def_gl{MAX_3D_TEXTURE_SIZE}
@ -323,7 +323,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* @fn_gl_extension{TextureParameter,EXT,direct_state_access}, * @fn_gl_extension{TextureParameter,EXT,direct_state_access},
* eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and * eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl{TexParameter} with @def_gl{TEXTURE_MAX_LEVEL} * @fn_gl{TexParameter} with @def_gl{TEXTURE_MAX_LEVEL}
* @requires_gles30 Extension @es_extension{APPLE,texture_max_level}, * @requires_gles30 Extension @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.
* @requires_webgl20 Always set to largest possible value in WebGL 1.0. * @requires_webgl20 Always set to largest possible value in WebGL 1.0.
@ -486,9 +486,9 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* @fn_gl_extension{TextureParameter,EXT,direct_state_access}, * @fn_gl_extension{TextureParameter,EXT,direct_state_access},
* eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and * eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl{TexParameter} with @def_gl{TEXTURE_BORDER_COLOR} * @fn_gl{TexParameter} with @def_gl{TEXTURE_BORDER_COLOR}
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,texture_border_clamp} or * @extension{EXT,texture_border_clamp} or
* @es_extension{NV,texture_border_clamp} * @extension{NV,texture_border_clamp}
* @requires_gles Border clamp is not available in WebGL. * @requires_gles Border clamp is not available in WebGL.
*/ */
Texture<dimensions>& setBorderColor(const Color4& color) { Texture<dimensions>& setBorderColor(const Color4& color) {
@ -514,8 +514,8 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* @requires_gl30 Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
* @requires_es_extension Extension * @requires_es_extension Extension
* @es_extension{ANDROID,extension_pack_es31a}/ * @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,texture_border_clamp} * @extension{EXT,texture_border_clamp}
* @requires_gles Border clamp is not available in WebGL. * @requires_gles Border clamp is not available in WebGL.
*/ */
Texture<dimensions>& setBorderColor(const Vector4ui& color) { Texture<dimensions>& setBorderColor(const Vector4ui& color) {
@ -527,8 +527,8 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* @requires_gl30 Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_gles30 Not defined in OpenGL ES 2.0. * @requires_gles30 Not defined in OpenGL ES 2.0.
* @requires_es_extension Extension * @requires_es_extension Extension
* @es_extension{ANDROID,extension_pack_es31a}/ * @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,texture_border_clamp} * @extension{EXT,texture_border_clamp}
* @requires_gles Border clamp is not available in WebGL. * @requires_gles Border clamp is not available in WebGL.
*/ */
Texture<dimensions>& setBorderColor(const Vector4i& color) { Texture<dimensions>& setBorderColor(const Vector4i& color) {
@ -575,9 +575,9 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* @fn_gl{TexParameter} with @def_gl{TEXTURE_SRGB_DECODE_EXT} * @fn_gl{TexParameter} with @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 * @extension{EXT,sRGB} and
* @es_extension{ANDROID,extension_pack_es31a}/ * @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{EXT,texture_sRGB_decode,texture_sRGB_decode} * @extension2{EXT,texture_sRGB_decode,texture_sRGB_decode}
* @requires_gles SRGB decode is not available in WebGL. * @requires_gles SRGB decode is not available in WebGL.
*/ */
Texture<dimensions>& setSRGBDecode(bool decode) { Texture<dimensions>& setSRGBDecode(bool decode) {
@ -632,7 +632,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* @fn_gl_extension{TextureParameter,EXT,direct_state_access}, * @fn_gl_extension{TextureParameter,EXT,direct_state_access},
* eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and * eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl{TexParameter} with @def_gl{TEXTURE_COMPARE_MODE} * @fn_gl{TexParameter} with @def_gl{TEXTURE_COMPARE_MODE}
* @requires_gles30 Extension @es_extension{EXT,shadow_samplers} in * @requires_gles30 Extension @extension{EXT,shadow_samplers} in
* OpenGL ES 2.0. * OpenGL ES 2.0.
* @requires_webgl20 Depth texture comparison is not available in WebGL * @requires_webgl20 Depth texture comparison is not available in WebGL
* 1.0. * 1.0.
@ -657,7 +657,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* @fn_gl_extension{TextureParameter,EXT,direct_state_access}, * @fn_gl_extension{TextureParameter,EXT,direct_state_access},
* eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and * eventually @fn_gl{ActiveTexture}, @fn_gl{BindTexture} and
* @fn_gl{TexParameter} with @def_gl{TEXTURE_COMPARE_FUNC} * @fn_gl{TexParameter} with @def_gl{TEXTURE_COMPARE_FUNC}
* @requires_gles30 Extension @es_extension{EXT,shadow_samplers} in * @requires_gles30 Extension @extension{EXT,shadow_samplers} in
* OpenGL ES 2.0. * OpenGL ES 2.0.
* @requires_webgl20 Depth texture comparison is not available in WebGL * @requires_webgl20 Depth texture comparison is not available in WebGL
* 1.0. * 1.0.
@ -708,7 +708,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
* nor @extension{EXT,direct_state_access} desktop extension is * nor @extension{EXT,direct_state_access} desktop extension is
* available, the texture is bound before the operation (if not * available, the texture is bound before the operation (if not
* already). If neither @extension{ARB,texture_storage} (part of OpenGL * already). If neither @extension{ARB,texture_storage} (part of OpenGL
* 4.2), OpenGL ES 3.0 nor @es_extension{EXT,texture_storage} in OpenGL * 4.2), OpenGL ES 3.0 nor @extension{EXT,texture_storage} in OpenGL
* ES 2.0 is available, the feature is emulated with sequence of * ES 2.0 is available, the feature is emulated with sequence of
* @ref setImage() calls. * @ref setImage() calls.
* @see @ref maxSize(), @ref setMaxLevel(), @fn_gl2{TextureStorage1D,TexStorage1D} / * @see @ref maxSize(), @ref setMaxLevel(), @fn_gl2{TextureStorage1D,TexStorage1D} /
@ -1286,7 +1286,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 @extension{OES,texture_3D} in OpenGL ES 2.0
@requires_webgl20 3D textures are not available in WebGL 1.0. @requires_webgl20 3D textures are not available in WebGL 1.0.
*/ */
typedef Texture<3> Texture3D; typedef Texture<3> Texture3D;

20
src/Magnum/TextureArray.h

@ -92,7 +92,7 @@ documentation for more information about usage in shaders.
@requires_webgl20 Array textures are not available in WebGL 1.0. @requires_webgl20 Array textures are not available in WebGL 1.0.
@requires_gl 1D array textures are not available in OpenGL ES or WebGL, only @requires_gl 1D array textures are not available in OpenGL ES or WebGL, only
2D ones. 2D ones.
@todo Fix this when @es_extension{NV,texture_array} is in ES2 extension headers @todo Fix this when @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:
@ -328,9 +328,9 @@ template<UnsignedInt dimensions> class TextureArray: public AbstractTexture {
* *
* See @ref Texture::setBorderColor(const Color4&) for more * See @ref Texture::setBorderColor(const Color4&) for more
* information. * information.
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,texture_border_clamp} or * @extension{EXT,texture_border_clamp} or
* @es_extension{NV,texture_border_clamp} * @extension{NV,texture_border_clamp}
* @requires_gles Border clamp is not available in WebGL. * @requires_gles Border clamp is not available in WebGL.
*/ */
TextureArray<dimensions>& setBorderColor(const Color4& color) { TextureArray<dimensions>& setBorderColor(const Color4& color) {
@ -345,8 +345,8 @@ template<UnsignedInt dimensions> class TextureArray: public AbstractTexture {
* See @ref Texture::setBorderColor(const Vector4ui&) for more * See @ref Texture::setBorderColor(const Vector4ui&) for more
* information. * information.
* @requires_gl30 Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,texture_border_clamp} * @extension{EXT,texture_border_clamp}
* @requires_gles Border clamp is not available in WebGL. * @requires_gles Border clamp is not available in WebGL.
*/ */
TextureArray<dimensions>& setBorderColor(const Vector4ui& color) { TextureArray<dimensions>& setBorderColor(const Vector4ui& color) {
@ -356,8 +356,8 @@ template<UnsignedInt dimensions> class TextureArray: public AbstractTexture {
/** @overload /** @overload
* @requires_gl30 Extension @extension{EXT,texture_integer} * @requires_gl30 Extension @extension{EXT,texture_integer}
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{EXT,texture_border_clamp} * @extension{EXT,texture_border_clamp}
* @requires_gles Border clamp is not available in WebGL. * @requires_gles Border clamp is not available in WebGL.
*/ */
TextureArray<dimensions>& setBorderColor(const Vector4i& color) { TextureArray<dimensions>& setBorderColor(const Vector4i& color) {
@ -384,8 +384,8 @@ template<UnsignedInt dimensions> class TextureArray: public AbstractTexture {
* *
* See @ref Texture::setSRGBDecode() for more information. * See @ref Texture::setSRGBDecode() for more information.
* @requires_extension Extension @extension{EXT,texture_sRGB_decode} * @requires_extension Extension @extension{EXT,texture_sRGB_decode}
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{EXT,texture_sRGB_decode,texture_sRGB_decode} * @extension2{EXT,texture_sRGB_decode,texture_sRGB_decode}
* @requires_gles SRGB decode is not available in WebGL. * @requires_gles SRGB decode is not available in WebGL.
*/ */
TextureArray<dimensions>& setSRGBDecode(bool decode) { TextureArray<dimensions>& setSRGBDecode(bool decode) {

320
src/Magnum/TextureFormat.h

@ -53,7 +53,7 @@ enum class TextureFormat: GLenum {
* 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 @extension{EXT,texture_rg} in OpenGL ES
* 2.0. * 2.0.
* @requires_webgl20 Not available in WebGL 1.0, see @ref TextureFormat::Luminance * @requires_webgl20 Not available in WebGL 1.0, see @ref TextureFormat::Luminance
* for an alternative. * for an alternative.
@ -69,8 +69,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 @extension{EXT,texture_rg} and
* @es_extension{EXT,texture_storage} in OpenGL ES 2.0. For texture * @extension{EXT,texture_storage} in OpenGL ES 2.0. For texture
* storage only, for image specification use @ref TextureFormat::Red * storage only, for image specification use @ref TextureFormat::Red
* instead. * instead.
* @requires_webgl20 Not available in WebGL 1.0, see @ref TextureFormat::Luminance * @requires_webgl20 Not available in WebGL 1.0, see @ref TextureFormat::Luminance
@ -90,7 +90,7 @@ enum class TextureFormat: GLenum {
* @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 @extension{EXT,texture_rg} in OpenGL ES
* 2.0. * 2.0.
* @requires_webgl20 Not available in WebGL 1.0, see * @requires_webgl20 Not available in WebGL 1.0, see
* @ref TextureFormat::LuminanceAlpha for an alternative. * @ref TextureFormat::LuminanceAlpha for an alternative.
@ -106,8 +106,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 @extension{EXT,texture_rg} and
* @es_extension{EXT,texture_storage} in OpenGL ES 2.0. For texture * @extension{EXT,texture_storage} in OpenGL ES 2.0. For texture
* storage only, for image specification use @ref TextureFormat::RG * storage only, for image specification use @ref TextureFormat::RG
* instead. * instead.
* @requires_webgl20 Not available in WebGL 1.0, see * @requires_webgl20 Not available in WebGL 1.0, see
@ -132,8 +132,8 @@ enum class TextureFormat: GLenum {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2)) #if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/** /**
* RGB, each component normalized unsigned byte. * RGB, each component normalized unsigned byte.
* @requires_gles30 Extension @es_extension{OES,required_internalformat} * @requires_gles30 Extension @extension{OES,required_internalformat}
* (for image specification) or @es_extension{EXT,texture_storage} * (for image specification) or @extension{EXT,texture_storage}
* (for texture storage) in OpenGL ES 2.0. Use @ref TextureFormat::RGB * (for texture storage) in OpenGL ES 2.0. Use @ref TextureFormat::RGB
* otherwise. * otherwise.
* @requires_webgl20 Not available in WebGL 1.0, use * @requires_webgl20 Not available in WebGL 1.0, use
@ -158,8 +158,8 @@ enum class TextureFormat: GLenum {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2)) #if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/** /**
* RGBA, each component normalized unsigned byte. * RGBA, each component normalized unsigned byte.
* @requires_gles30 Extension @es_extension{OES,required_internalformat} * @requires_gles30 Extension @extension{OES,required_internalformat}
* (for image specification) or @es_extension{EXT,texture_storage} * (for image specification) or @extension{EXT,texture_storage}
* (for texture storage) in OpenGL ES 2.0. Use @ref TextureFormat::RGBA * (for texture storage) in OpenGL ES 2.0. Use @ref TextureFormat::RGBA
* otherwise. * otherwise.
* @requires_webgl20 Not available in WebGL 1.0, use * @requires_webgl20 Not available in WebGL 1.0, use
@ -644,8 +644,8 @@ 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 @extension{OES,required_internalformat}
* (for image specification) or @es_extension{EXT,texture_storage} * (for image specification) or @extension{EXT,texture_storage}
* (for texture storage) in OpenGL ES 2.0. * (for texture storage) in OpenGL ES 2.0.
* @requires_webgl20 Not available in WebGL 1.0, see @ref TextureFormat::RGB * @requires_webgl20 Not available in WebGL 1.0, see @ref TextureFormat::RGB
* for an alternative. * for an alternative.
@ -655,9 +655,9 @@ enum class TextureFormat: GLenum {
#if !defined(MAGNUM_TARGET_GLES) || (defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)) #if !defined(MAGNUM_TARGET_GLES) || (defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL))
/** /**
* 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 @extension{EXT,texture_type_2_10_10_10_REV}
* and either @es_extension{OES,required_internalformat} (for image * and either @extension{OES,required_internalformat} (for image
* specification) or @es_extension{EXT,texture_storage} (for texture * specification) or @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,
* use @ref TextureFormat::RGB10A2 in OpenGL ES 3.0 instead. * use @ref TextureFormat::RGB10A2 in OpenGL ES 3.0 instead.
* @requires_gles Not available in WebGL, use @ref TextureFormat::RGB10A2 * @requires_gles Not available in WebGL, use @ref TextureFormat::RGB10A2
@ -703,7 +703,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} in OpenGL ES 2.0. * @requires_es_extension Extension @extension{EXT,sRGB} in OpenGL ES 2.0.
* Use @ref TextureFormat::SRGB8 in OpenGL ES 3.0 instead. * Use @ref TextureFormat::SRGB8 in OpenGL ES 3.0 instead.
* @requires_webgl_extension Extension @webgl_extension{EXT,sRGB} in WebGL * @requires_webgl_extension Extension @webgl_extension{EXT,sRGB} in WebGL
* 1.0. Use @ref TextureFormat::SRGB8 in WebGL 2.0 instead. * 1.0. Use @ref TextureFormat::SRGB8 in WebGL 2.0 instead.
@ -736,8 +736,8 @@ 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 @extension{OES,required_internalformat}
* (for image specification) or @es_extension{EXT,texture_storage} * (for image specification) or @extension{EXT,texture_storage}
* (for texture storage) in OpenGL ES 2.0. Use @ref TextureFormat::RGBA * (for texture storage) in OpenGL ES 2.0. Use @ref TextureFormat::RGBA
* otherwise. * otherwise.
* @requires_webgl20 Not available in WebGL 1.0, use @ref TextureFormat::RGBA * @requires_webgl20 Not available in WebGL 1.0, use @ref TextureFormat::RGBA
@ -747,8 +747,8 @@ 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 @extension{OES,required_internalformat}
* (for image specification) or @es_extension{EXT,texture_storage} * (for image specification) or @extension{EXT,texture_storage}
* (for texture storage) in OpenGL ES 2.0. Use @ref TextureFormat::RGBA * (for texture storage) in OpenGL ES 2.0. Use @ref TextureFormat::RGBA
* otherwise. * otherwise.
* @requires_webgl20 Not available in WebGL 1.0, use @ref TextureFormat::RGBA * @requires_webgl20 Not available in WebGL 1.0, use @ref TextureFormat::RGBA
@ -759,9 +759,9 @@ enum class TextureFormat: GLenum {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2)) #if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/** /**
* 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 @extension{EXT,texture_type_2_10_10_10_REV}
* and either @es_extension{OES,required_internalformat} (for image * and either @extension{OES,required_internalformat} (for image
* specification) or @es_extension{EXT,texture_storage} (for texture * specification) or @extension{EXT,texture_storage} (for texture
* storage) in OpenGL ES 2.0. * storage) in OpenGL ES 2.0.
* @requires_webgl20 Not available in WebGL 1.0. * @requires_webgl20 Not available in WebGL 1.0.
*/ */
@ -797,7 +797,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} in OpenGL ES * @requires_es_extension Extension @extension{EXT,sRGB} in OpenGL ES
* 2.0. Use @ref TextureFormat::SRGB8Alpha8 in OpenGL ES 3.0 instead. * 2.0. Use @ref TextureFormat::SRGB8Alpha8 in OpenGL ES 3.0 instead.
* @requires_webgl_extension Extension @webgl_extension{EXT,sRGB} in WebGL * @requires_webgl_extension Extension @webgl_extension{EXT,sRGB} in WebGL
* 1.0. Use @ref TextureFormat::SRGB8Alpha8 in WebGL 2.0 instead. * 1.0. Use @ref TextureFormat::SRGB8Alpha8 in WebGL 2.0 instead.
@ -1028,7 +1028,7 @@ enum class TextureFormat: GLenum {
* S3TC DXT1 compressed RGB. **Available only on 2D, 2D array, cube map and * S3TC DXT1 compressed RGB. **Available only on 2D, 2D array, cube map and
* cube map array textures.** * cube map array textures.**
* @requires_extension Extension @extension{EXT,texture_compression_s3tc} * @requires_extension Extension @extension{EXT,texture_compression_s3tc}
* @requires_es_extension Extension @es_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} * @requires_es_extension Extension @extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
* @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc} * @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc}
*/ */
CompressedRGBS3tcDxt1 = GL_COMPRESSED_RGB_S3TC_DXT1_EXT, CompressedRGBS3tcDxt1 = GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
@ -1037,7 +1037,7 @@ enum class TextureFormat: GLenum {
* S3TC DXT1 compressed RGBA. **Available only on 2D, 2D array, cube map * S3TC DXT1 compressed RGBA. **Available only on 2D, 2D array, cube map
* and cube map array textures.** * and cube map array textures.**
* @requires_extension Extension @extension{EXT,texture_compression_s3tc} * @requires_extension Extension @extension{EXT,texture_compression_s3tc}
* @requires_es_extension Extension @es_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} * @requires_es_extension Extension @extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
* @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc} * @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc}
*/ */
CompressedRGBAS3tcDxt1 = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, CompressedRGBAS3tcDxt1 = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,
@ -1046,7 +1046,7 @@ enum class TextureFormat: GLenum {
* S3TC DXT3 compressed RGBA. **Available only on 2D, 2D array, cube map * S3TC DXT3 compressed RGBA. **Available only on 2D, 2D array, cube map
* and cube map array textures.** * and cube map array textures.**
* @requires_extension Extension @extension{EXT,texture_compression_s3tc} * @requires_extension Extension @extension{EXT,texture_compression_s3tc}
* @requires_es_extension Extension @es_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} * @requires_es_extension Extension @extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
* @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc} * @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc}
*/ */
CompressedRGBAS3tcDxt3 = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT, CompressedRGBAS3tcDxt3 = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
@ -1055,7 +1055,7 @@ enum class TextureFormat: GLenum {
* S3TC DXT5 compressed RGBA. **Available only on 2D, 2D array, cube map * S3TC DXT5 compressed RGBA. **Available only on 2D, 2D array, cube map
* and cube map array textures.** * and cube map array textures.**
* @requires_extension Extension @extension{EXT,texture_compression_s3tc} * @requires_extension Extension @extension{EXT,texture_compression_s3tc}
* @requires_es_extension Extension @es_extension2{EXT,texture_compression_s3tc,texture_compression_s3tc} * @requires_es_extension Extension @extension2{EXT,texture_compression_s3tc,texture_compression_s3tc}
* @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc} * @requires_webgl_extension Extension @webgl_extension{WEBGL,compressed_texture_s3tc}
*/ */
CompressedRGBAS3tcDxt5 = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, CompressedRGBAS3tcDxt5 = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,
@ -1064,12 +1064,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed RGBA with 4x4 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 4x4 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1078,12 +1078,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 4x4 blocks. **Available only on 2D, * ASTC compressed sRGB with alpha with 4x4 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.** * 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1092,12 +1092,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed RGBA with 5x4 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 5x4 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1106,12 +1106,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 5x4 blocks. **Available only on 2D, * ASTC compressed sRGB with alpha with 5x4 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.** * 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1120,12 +1120,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed RGBA with 5x5 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 5x5 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1134,12 +1134,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 5x5 blocks. **Available only on 2D, * ASTC compressed sRGB with alpha with 5x5 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.** * 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1148,12 +1148,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed RGBA with 6x5 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 6x5 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1162,12 +1162,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 6x5 blocks. **Available only on 2D, * ASTC compressed sRGB with alpha with 6x5 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.** * 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1176,12 +1176,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed RGBA with 6x6 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 6x6 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1190,12 +1190,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 6x6 blocks. **Available only on 2D, * ASTC compressed sRGB with alpha with 6x6 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.** * 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1204,12 +1204,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed RGBA with 8x5 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 8x5 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1218,12 +1218,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 8x5 blocks. **Available only on 2D, * ASTC compressed sRGB with alpha with 8x5 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.** * 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1232,12 +1232,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed RGBA with 8x6 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 8x6 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1246,12 +1246,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 8x6 blocks. **Available only on 2D, * ASTC compressed sRGB with alpha with 8x6 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.** * 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1260,12 +1260,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed RGBA with 8x8 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 8x8 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1274,12 +1274,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 8x8 blocks. **Available only on 2D, * ASTC compressed sRGB with alpha with 8x8 blocks. **Available only on 2D,
* 3D, 2D array, cube map and cube map array textures.** * 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1288,12 +1288,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed RGBA with 10x5 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 10x5 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1302,12 +1302,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 10x5 blocks. **Available only on * ASTC compressed sRGB with alpha with 10x5 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.** * 2D, 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1316,12 +1316,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed RGBA with 10x6 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 10x6 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1330,12 +1330,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 10x6 blocks. **Available only on * ASTC compressed sRGB with alpha with 10x6 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.** * 2D, 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1344,12 +1344,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed RGBA with 10x8 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 10x8 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1358,12 +1358,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 10x8 blocks. **Available only on * ASTC compressed sRGB with alpha with 10x8 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.** * 2D, 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1372,12 +1372,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed RGBA with 10x10 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 10x10 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1386,12 +1386,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 10x10 blocks. **Available only on * ASTC compressed sRGB with alpha with 10x10 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.** * 2D, 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1400,12 +1400,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed RGBA with 12x10 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 12x10 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1414,12 +1414,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 12x10 blocks. **Available only on * ASTC compressed sRGB with alpha with 12x10 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.** * 2D, 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1428,12 +1428,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed RGBA with 12x12 blocks. **Available only on 2D, 3D, 2D * ASTC compressed RGBA with 12x12 blocks. **Available only on 2D, 3D, 2D
* array, cube map and cube map array textures.** * array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1442,12 +1442,12 @@ enum class TextureFormat: GLenum {
/** /**
* ASTC compressed sRGB with alpha with 12x12 blocks. **Available only on * ASTC compressed sRGB with alpha with 12x12 blocks. **Available only on
* 2D, 3D, 2D array, cube map and cube map array textures.** * 2D, 3D, 2D array, cube map and cube map array textures.**
* @requires_extension Extension @extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @requires_extension Extension @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_extension Extension @extension{KHR,texture_compression_astc_hdr} * @requires_extension Extension @extension{KHR,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} * @extension2{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr}
* @requires_es_extension Extension @es_extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr} * @requires_es_extension Extension @extension2{KHR,texture_compression_astc_hdr,texture_compression_astc_hdr}
* for 3D textures and HDR profile * for 3D textures and HDR profile
* @requires_gles ASTC texture compression is not available in WebGL. * @requires_gles ASTC texture compression is not available in WebGL.
*/ */
@ -1459,8 +1459,8 @@ 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 @extension{OES,depth_texture} or
* @es_extension{ANGLE,depth_texture} in OpenGL ES 2.0. * @extension{ANGLE,depth_texture} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{WEBGL,depth_texture} in * @requires_webgl20 Extension @webgl_extension{WEBGL,depth_texture} in
* WebGL 1.0. * WebGL 1.0.
* @deprecated_gl Prefer to use the exactly specified version of this * @deprecated_gl Prefer to use the exactly specified version of this
@ -1471,10 +1471,10 @@ enum class TextureFormat: GLenum {
#if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2)) #if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/** /**
* 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 @extension{OES,depth_texture} or
* @es_extension{ANGLE,depth_texture} and either * @extension{ANGLE,depth_texture} and either
* @es_extension{OES,required_internalformat} (for image * @extension{OES,required_internalformat} (for image
* specification) or @es_extension{EXT,texture_storage} (for texture * specification) or @extension{EXT,texture_storage} (for texture
* storage) in OpenGL ES 2.0. Use @ref TextureFormat::DepthComponent * storage) in OpenGL ES 2.0. Use @ref TextureFormat::DepthComponent
* otherwise. * otherwise.
* @requires_webgl20 Not available in WebGL 1.0, use * @requires_webgl20 Not available in WebGL 1.0, use
@ -1484,8 +1484,8 @@ 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 @extension{OES,required_internalformat},
* @es_extension{OES,depth_texture} and @es_extension{OES,depth24} in * @extension{OES,depth_texture} and @extension{OES,depth24} in
* OpenGL ES 2.0. Use @ref TextureFormat::DepthComponent otherwise. * OpenGL ES 2.0. Use @ref TextureFormat::DepthComponent otherwise.
* @requires_webgl20 Not available in WebGL 1.0, use * @requires_webgl20 Not available in WebGL 1.0, use
* @ref TextureFormat::DepthComponent instead. * @ref TextureFormat::DepthComponent instead.
@ -1500,10 +1500,10 @@ enum class TextureFormat: GLenum {
#ifndef MAGNUM_TARGET_WEBGL #ifndef MAGNUM_TARGET_WEBGL
/** /**
* 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 @extension{OES,depth_texture} or
* @es_extension{ANGLE,depth_texture} and @es_extension{OES,depth32} * @extension{ANGLE,depth_texture} and @extension{OES,depth32}
* and @es_extension{OES,required_internalformat} (for image * and @extension{OES,required_internalformat} (for image
* specification) or @es_extension{EXT,texture_storage} (for texture * specification) or @extension{EXT,texture_storage} (for texture
* storage) in OpenGL ES 2.0. * storage) in OpenGL ES 2.0.
* @requires_gles Not available in WebGL. * @requires_gles Not available in WebGL.
*/ */
@ -1530,8 +1530,8 @@ enum class TextureFormat: GLenum {
/** /**
* 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_es_extension Extension @es_extension{ANDROID,extension_pack_es31a}/ * @requires_es_extension Extension @extension{ANDROID,extension_pack_es31a}/
* @es_extension{OES,texture_stencil8} * @extension{OES,texture_stencil8}
* @requires_gles Only available as renderbuffer format in WebGL. * @requires_gles Only available as renderbuffer format in WebGL.
*/ */
StencilIndex8 = GL_STENCIL_INDEX8, StencilIndex8 = GL_STENCIL_INDEX8,
@ -1544,8 +1544,8 @@ 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 @extension{OES,packed_depth_stencil} or
* @es_extension{ANGLE,depth_texture} in OpenGL ES 2.0. * @extension{ANGLE,depth_texture} in OpenGL ES 2.0.
* @requires_webgl20 Extension @webgl_extension{WEBGL,depth_texture} in * @requires_webgl20 Extension @webgl_extension{WEBGL,depth_texture} in
* WebGL 1.0. * WebGL 1.0.
* @deprecated_gl Prefer to use exactly specified version of this format, * @deprecated_gl Prefer to use exactly specified version of this format,
@ -1564,10 +1564,10 @@ 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 @extension{OES,packed_depth_stencil} or
* @es_extension{ANGLE,depth_texture} and either * @extension{ANGLE,depth_texture} and either
* @es_extension{OES,required_internalformat} (for image * @extension{OES,required_internalformat} (for image
* specification) or @es_extension{EXT,texture_storage} (for texture * specification) or @extension{EXT,texture_storage} (for texture
* storage) in OpenGL ES 2.0. * storage) in OpenGL ES 2.0.
* @requires_webgl20 Use @ref TextureFormat::DepthStencil in WebGL 1.0 * @requires_webgl20 Use @ref TextureFormat::DepthStencil in WebGL 1.0
* instead. * instead.

2
src/Magnum/TextureTools/DistanceField.h

@ -85,7 +85,7 @@ http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnifica
@note If internal format of @p output texture is not renderable, this function @note If internal format of @p output texture is not renderable, this function
prints message to error output and does nothing. In desktop OpenGL and prints message to error output and does nothing. In desktop OpenGL and
OpenGL ES 3.0 it's common to render to @ref TextureFormat::R8. In OpenGL ES OpenGL ES 3.0 it's common to render to @ref TextureFormat::R8. In OpenGL ES
2.0 you can use @ref TextureFormat::Red if @es_extension{EXT,texture_rg} is 2.0 you can use @ref TextureFormat::Red if @extension{EXT,texture_rg} is
available, if not, the smallest but still inefficient supported format is available, if not, the smallest but still inefficient supported format is
in most cases @ref TextureFormat::RGB, rendering to @ref TextureFormat::Luminance in most cases @ref TextureFormat::RGB, rendering to @ref TextureFormat::Luminance
is not supported in most cases. is not supported in most cases.

4
src/Magnum/TimeQuery.h

@ -70,12 +70,12 @@ 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 @extension{EXT,disjoint_timer_query}
@requires_gles Time query is not available in WebGL. @requires_gles Time query is not available in WebGL.
@see @ref PrimitiveQuery, @ref SampleQuery @see @ref PrimitiveQuery, @ref SampleQuery
@todo timestamp with glGet + example usage @todo timestamp with glGet + example usage
@todo @es_extension{EXT,disjoint_timer_query} -- GL_GPU_DISJOINT_EXT support? where? @todo @extension{EXT,disjoint_timer_query} -- GL_GPU_DISJOINT_EXT support? where?
*/ */
class TimeQuery: public AbstractQuery { class TimeQuery: public AbstractQuery {
public: public:

12
src/Magnum/TransformFeedback.h

@ -243,10 +243,10 @@ class MAGNUM_EXPORT TransformFeedback: public AbstractObject {
* *
* 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
* @extension{KHR,debug} (covered also by @es_extension{ANDROID,extension_pack_es31a}) * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
* nor @extension2{EXT,debug_label} desktop or ES extension is * nor @extension{EXT,debug_label} desktop or ES extension is
* available, this function returns empty string. * available, this function returns empty string.
* @see @fn_gl{GetObjectLabel} or @fn_gl_extension2{GetObjectLabel,EXT,debug_label} * @see @fn_gl{GetObjectLabel} or @fn_gl_extension{GetObjectLabel,EXT,debug_label}
* with @def_gl{TRANSFORM_FEEDBACK} * with @def_gl{TRANSFORM_FEEDBACK}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */
@ -257,11 +257,11 @@ class MAGNUM_EXPORT TransformFeedback: public AbstractObject {
* @return Reference to self (for method chaining) * @return Reference to self (for method chaining)
* *
* Default is empty string. If OpenGL 4.3 is not supported and neither * Default is empty string. If OpenGL 4.3 is not supported and neither
* @extension{KHR,debug} (covered also by @es_extension{ANDROID,extension_pack_es31a}) * @extension{KHR,debug} (covered also by @extension{ANDROID,extension_pack_es31a})
* nor @extension2{EXT,debug_label} desktop or ES extension is * nor @extension{EXT,debug_label} desktop or ES extension is
* available, this function does nothing. * available, this function does nothing.
* @see @ref maxLabelLength(), @fn_gl{ObjectLabel} or * @see @ref maxLabelLength(), @fn_gl{ObjectLabel} or
* @fn_gl_extension2{LabelObject,EXT,debug_label} with * @fn_gl_extension{LabelObject,EXT,debug_label} with
* @def_gl{TRANSFORM_FEEDBACK} * @def_gl{TRANSFORM_FEEDBACK}
* @requires_gles Debug output is not available in WebGL. * @requires_gles Debug output is not available in WebGL.
*/ */

2
src/MagnumPlugins/TgaImporter/TgaImporter.h

@ -70,7 +70,7 @@ require extension @extension{ARB,texture_rg}. Imported images are imported with
default @ref PixelStorage parameters except for alignment, which may be changed default @ref PixelStorage parameters except for alignment, which may be changed
to `1` if the data require it. to `1` if the data require it.
In OpenGL ES 2.0, if @es_extension{EXT,texture_rg} is not supported and in In OpenGL ES 2.0, if @extension{EXT,texture_rg} is not supported and in
WebGL 1.0, grayscale images use @ref PixelFormat::Luminance instead of WebGL 1.0, grayscale images use @ref PixelFormat::Luminance instead of
@ref PixelFormat::Red. @ref PixelFormat::Red.
*/ */

Loading…
Cancel
Save