Browse Source

Doc++

pull/7/head
Vladimír Vondruš 14 years ago
parent
commit
dc1ab80cda
  1. 46
      src/AbstractShaderProgram.h
  2. 20
      src/Buffer.h
  3. 8
      src/BufferTexture.h
  4. 3
      src/Context.h
  5. 2
      src/CubeMapTexture.h
  6. 2
      src/CubeMapTextureArray.h
  7. 2
      src/Extensions.h
  8. 10
      src/Mesh.h
  9. 2
      src/Platform/ExtensionWrangler.h
  10. 19
      src/Query.h
  11. 12
      src/Renderer.h
  12. 8
      src/Shader.h
  13. 9
      src/Texture.h

46
src/AbstractShaderProgram.h

@ -168,7 +168,7 @@ GLint transformationUniform = uniformLocation("transformation");
GLint projectionUniform = uniformLocation("projection"); GLint projectionUniform = uniformLocation("projection");
@endcode @endcode
@requires_gl43 Extension @extension{ARB,explicit_uniform_location} for @requires_gl43 %Extension @extension{ARB,explicit_uniform_location} for
explicit uniform location instead of using uniformLocation(). explicit uniform location instead of using uniformLocation().
@requires_gl Explicit uniform location is not supported in OpenGL ES. Use @requires_gl Explicit uniform location is not supported in OpenGL ES. Use
uniformLocation() instead. uniformLocation() instead.
@ -191,7 +191,7 @@ setUniform(DiffuseTextureUniform, DiffuseTextureLayer);
setUniform(SpecularTextureUniform, SpecularTextureLayer); setUniform(SpecularTextureUniform, SpecularTextureLayer);
@endcode @endcode
@requires_gl42 Extension @extension{ARB,shading_language_420pack} for explicit @requires_gl42 %Extension @extension{ARB,shading_language_420pack} for explicit
texture layer binding instead of using setUniform(GLint, GLint). texture layer binding instead of using setUniform(GLint, GLint).
@requires_gl Explicit texture layer binding is not supported in OpenGL ES. Use @requires_gl Explicit texture layer binding is not supported in OpenGL ES. Use
setUniform(GLint, GLint) instead. setUniform(GLint, GLint) instead.
@ -485,7 +485,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
* @note This function should be called after attachShader() calls and * @note This function should be called after attachShader() calls and
* before link(). * before link().
* @see @fn_gl{ProgramParameter} with @def_gl{PROGRAM_BINARY_RETRIEVABLE_HINT} * @see @fn_gl{ProgramParameter} with @def_gl{PROGRAM_BINARY_RETRIEVABLE_HINT}
* @requires_gl41 Extension @extension{ARB,get_program_binary} * @requires_gl41 %Extension @extension{ARB,get_program_binary}
* @requires_gles30 Always allowed in OpenGL ES 2.0. * @requires_gles30 Always allowed in OpenGL ES 2.0.
*/ */
inline void setRetrievableBinary(bool enabled) { inline void setRetrievableBinary(bool enabled) {
@ -500,7 +500,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
* @note This function should be called after attachShader() calls and * @note This function should be called after attachShader() calls and
* before link(). * before link().
* @see @fn_gl{ProgramParameter} with @def_gl{PROGRAM_SEPARABLE} * @see @fn_gl{ProgramParameter} with @def_gl{PROGRAM_SEPARABLE}
* @requires_gl41 Extension @extension{ARB,separate_shader_objects} * @requires_gl41 %Extension @extension{ARB,separate_shader_objects}
* @requires_es_extension %Extension @es_extension{EXT,separate_shader_objects} * @requires_es_extension %Extension @es_extension{EXT,separate_shader_objects}
*/ */
inline void setSeparable(bool enabled) { inline void setSeparable(bool enabled) {
@ -562,7 +562,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
* @ref AbstractShaderProgram-attribute-location "class documentation" * @ref AbstractShaderProgram-attribute-location "class documentation"
* for more information. * for more information.
* @see @fn_gl{BindFragDataLocationIndexed} * @see @fn_gl{BindFragDataLocationIndexed}
* @requires_gl33 Extension @extension{ARB,blend_func_extended} * @requires_gl33 %Extension @extension{ARB,blend_func_extended}
* @requires_gl Multiple blend function inputs are not available in * @requires_gl Multiple blend function inputs are not available in
* OpenGL ES. * OpenGL ES.
*/ */
@ -576,7 +576,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
* The same as bindFragmentDataLocationIndexed(), but with `index` set * The same as bindFragmentDataLocationIndexed(), but with `index` set
* to `0`. * to `0`.
* @see @fn_gl{BindFragDataLocation} * @see @fn_gl{BindFragDataLocation}
* @requires_gl30 Extension @extension{EXT,gpu_shader4} * @requires_gl30 %Extension @extension{EXT,gpu_shader4}
* @requires_gl Use explicit location specification in OpenGL ES 3.0 * @requires_gl Use explicit location specification in OpenGL ES 3.0
* instead. * instead.
*/ */
@ -659,7 +659,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* @copydoc setUniform(GLint, GLfloat) * @copydoc setUniform(GLint, GLfloat)
* @requires_gl30 Extension @extension{EXT,gpu_shader4} * @requires_gl30 %Extension @extension{EXT,gpu_shader4}
* @requires_gles30 Only signed integers are available in OpenGL ES 2.0. * @requires_gles30 Only signed integers are available in OpenGL ES 2.0.
*/ */
inline void setUniform(GLint location, GLuint value) { inline void setUniform(GLint location, GLuint value) {
@ -668,7 +668,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
/** /**
* @copydoc setUniform(GLint, GLfloat) * @copydoc setUniform(GLint, GLfloat)
* @requires_gl30 Extension @extension{EXT,gpu_shader4} * @requires_gl30 %Extension @extension{EXT,gpu_shader4}
* @requires_gles30 Only signed integers are available in OpenGL ES 2.0. * @requires_gles30 Only signed integers are available in OpenGL ES 2.0.
*/ */
inline void setUniform(GLint location, const Math::Vector<2, GLuint>& value) { inline void setUniform(GLint location, const Math::Vector<2, GLuint>& value) {
@ -677,7 +677,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
/** /**
* @copydoc setUniform(GLint, GLfloat) * @copydoc setUniform(GLint, GLfloat)
* @requires_gl30 Extension @extension{EXT,gpu_shader4} * @requires_gl30 %Extension @extension{EXT,gpu_shader4}
* @requires_gles30 Only signed integers are available in OpenGL ES 2.0. * @requires_gles30 Only signed integers are available in OpenGL ES 2.0.
*/ */
inline void setUniform(GLint location, const Math::Vector<3, GLuint>& value) { inline void setUniform(GLint location, const Math::Vector<3, GLuint>& value) {
@ -686,7 +686,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
/** /**
* @copydoc setUniform(GLint, GLfloat) * @copydoc setUniform(GLint, GLfloat)
* @requires_gl30 Extension @extension{EXT,gpu_shader4} * @requires_gl30 %Extension @extension{EXT,gpu_shader4}
* @requires_gles30 Only signed integers are available in OpenGL ES 2.0. * @requires_gles30 Only signed integers are available in OpenGL ES 2.0.
*/ */
inline void setUniform(GLint location, const Math::Vector<4, GLuint>& value) { inline void setUniform(GLint location, const Math::Vector<4, GLuint>& value) {
@ -697,7 +697,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* @copydoc setUniform(GLint, GLfloat) * @copydoc setUniform(GLint, GLfloat)
* @requires_gl40 Extension @extension{ARB,gpu_shader_fp64} * @requires_gl40 %Extension @extension{ARB,gpu_shader_fp64}
* @requires_gl Only floats are available in OpenGL ES. * @requires_gl Only floats are available in OpenGL ES.
*/ */
inline void setUniform(GLint location, GLdouble value) { inline void setUniform(GLint location, GLdouble value) {
@ -706,7 +706,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
/** /**
* @copydoc setUniform(GLint, GLfloat) * @copydoc setUniform(GLint, GLfloat)
* @requires_gl40 Extension @extension{ARB,gpu_shader_fp64} * @requires_gl40 %Extension @extension{ARB,gpu_shader_fp64}
* @requires_gl Only floats are available in OpenGL ES. * @requires_gl Only floats are available in OpenGL ES.
*/ */
inline void setUniform(GLint location, const Math::Vector<2, GLdouble>& value) { inline void setUniform(GLint location, const Math::Vector<2, GLdouble>& value) {
@ -715,7 +715,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
/** /**
* @copydoc setUniform(GLint, GLfloat) * @copydoc setUniform(GLint, GLfloat)
* @requires_gl40 Extension @extension{ARB,gpu_shader_fp64} * @requires_gl40 %Extension @extension{ARB,gpu_shader_fp64}
* @requires_gl Only floats are available in OpenGL ES. * @requires_gl Only floats are available in OpenGL ES.
*/ */
inline void setUniform(GLint location, const Math::Vector<3, GLdouble>& value) { inline void setUniform(GLint location, const Math::Vector<3, GLdouble>& value) {
@ -724,7 +724,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
/** /**
* @copydoc setUniform(GLint, GLfloat) * @copydoc setUniform(GLint, GLfloat)
* @requires_gl40 Extension @extension{ARB,gpu_shader_fp64} * @requires_gl40 %Extension @extension{ARB,gpu_shader_fp64}
* @requires_gl Only floats are available in OpenGL ES. * @requires_gl Only floats are available in OpenGL ES.
*/ */
inline void setUniform(GLint location, const Math::Vector<4, GLdouble>& value) { inline void setUniform(GLint location, const Math::Vector<4, GLdouble>& value) {
@ -800,7 +800,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* @copydoc setUniform(GLint, GLfloat) * @copydoc setUniform(GLint, GLfloat)
* @requires_gl40 Extension @extension{ARB,gpu_shader_fp64} * @requires_gl40 %Extension @extension{ARB,gpu_shader_fp64}
* @requires_gl Only floats are available in OpenGL ES. * @requires_gl Only floats are available in OpenGL ES.
*/ */
inline void setUniform(GLint location, const Math::Matrix<2, GLdouble>& value) { inline void setUniform(GLint location, const Math::Matrix<2, GLdouble>& value) {
@ -809,7 +809,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
/** /**
* @copydoc setUniform(GLint, GLfloat) * @copydoc setUniform(GLint, GLfloat)
* @requires_gl40 Extension @extension{ARB,gpu_shader_fp64} * @requires_gl40 %Extension @extension{ARB,gpu_shader_fp64}
* @requires_gl Only floats are available in OpenGL ES. * @requires_gl Only floats are available in OpenGL ES.
*/ */
inline void setUniform(GLint location, const Math::Matrix<3, GLdouble>& value) { inline void setUniform(GLint location, const Math::Matrix<3, GLdouble>& value) {
@ -818,7 +818,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
/** /**
* @copydoc setUniform(GLint, GLfloat) * @copydoc setUniform(GLint, GLfloat)
* @requires_gl40 Extension @extension{ARB,gpu_shader_fp64} * @requires_gl40 %Extension @extension{ARB,gpu_shader_fp64}
* @requires_gl Only floats are available in OpenGL ES. * @requires_gl Only floats are available in OpenGL ES.
*/ */
inline void setUniform(GLint location, const Math::Matrix<4, GLdouble>& value) { inline void setUniform(GLint location, const Math::Matrix<4, GLdouble>& value) {
@ -827,7 +827,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
/** /**
* @copydoc setUniform(GLint, GLfloat) * @copydoc setUniform(GLint, GLfloat)
* @requires_gl40 Extension @extension{ARB,gpu_shader_fp64} * @requires_gl40 %Extension @extension{ARB,gpu_shader_fp64}
* @requires_gl Only floats are available in OpenGL ES. * @requires_gl Only floats are available in OpenGL ES.
*/ */
inline void setUniform(GLint location, const Math::RectangularMatrix<2, 3, GLdouble>& value) { inline void setUniform(GLint location, const Math::RectangularMatrix<2, 3, GLdouble>& value) {
@ -836,7 +836,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
/** /**
* @copydoc setUniform(GLint, GLfloat) * @copydoc setUniform(GLint, GLfloat)
* @requires_gl40 Extension @extension{ARB,gpu_shader_fp64} * @requires_gl40 %Extension @extension{ARB,gpu_shader_fp64}
* @requires_gl Only floats are available in OpenGL ES. * @requires_gl Only floats are available in OpenGL ES.
*/ */
inline void setUniform(GLint location, const Math::RectangularMatrix<3, 2, GLdouble>& value) { inline void setUniform(GLint location, const Math::RectangularMatrix<3, 2, GLdouble>& value) {
@ -845,7 +845,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
/** /**
* @copydoc setUniform(GLint, GLfloat) * @copydoc setUniform(GLint, GLfloat)
* @requires_gl40 Extension @extension{ARB,gpu_shader_fp64} * @requires_gl40 %Extension @extension{ARB,gpu_shader_fp64}
* @requires_gl Only floats are available in OpenGL ES. * @requires_gl Only floats are available in OpenGL ES.
*/ */
inline void setUniform(GLint location, const Math::RectangularMatrix<2, 4, GLdouble>& value) { inline void setUniform(GLint location, const Math::RectangularMatrix<2, 4, GLdouble>& value) {
@ -854,7 +854,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
/** /**
* @copydoc setUniform(GLint, GLfloat) * @copydoc setUniform(GLint, GLfloat)
* @requires_gl40 Extension @extension{ARB,gpu_shader_fp64} * @requires_gl40 %Extension @extension{ARB,gpu_shader_fp64}
* @requires_gl Only floats are available in OpenGL ES. * @requires_gl Only floats are available in OpenGL ES.
*/ */
inline void setUniform(GLint location, const Math::RectangularMatrix<4, 2, GLdouble>& value) { inline void setUniform(GLint location, const Math::RectangularMatrix<4, 2, GLdouble>& value) {
@ -863,7 +863,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
/** /**
* @copydoc setUniform(GLint, GLfloat) * @copydoc setUniform(GLint, GLfloat)
* @requires_gl40 Extension @extension{ARB,gpu_shader_fp64} * @requires_gl40 %Extension @extension{ARB,gpu_shader_fp64}
* @requires_gl Only floats are available in OpenGL ES. * @requires_gl Only floats are available in OpenGL ES.
*/ */
inline void setUniform(GLint location, const Math::RectangularMatrix<3, 4, GLdouble>& value) { inline void setUniform(GLint location, const Math::RectangularMatrix<3, 4, GLdouble>& value) {
@ -872,7 +872,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
/** /**
* @copydoc setUniform(GLint, GLfloat) * @copydoc setUniform(GLint, GLfloat)
* @requires_gl40 Extension @extension{ARB,gpu_shader_fp64} * @requires_gl40 %Extension @extension{ARB,gpu_shader_fp64}
* @requires_gl Only floats are available in OpenGL ES. * @requires_gl Only floats are available in OpenGL ES.
*/ */
inline void setUniform(GLint location, const Math::RectangularMatrix<4, 3, GLdouble>& value) { inline void setUniform(GLint location, const Math::RectangularMatrix<4, 3, GLdouble>& value) {

20
src/Buffer.h

@ -97,7 +97,7 @@ class MAGNUM_EXPORT Buffer {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* Used for storing atomic counters. * Used for storing atomic counters.
* @requires_gl42 Extension @extension{ARB,shader_atomic_counters} * @requires_gl42 %Extension @extension{ARB,shader_atomic_counters}
* @requires_gl Atomic counters are not available in OpenGL ES. * @requires_gl Atomic counters are not available in OpenGL ES.
*/ */
AtomicCounter = GL_ATOMIC_COUNTER_BUFFER, AtomicCounter = GL_ATOMIC_COUNTER_BUFFER,
@ -106,7 +106,7 @@ class MAGNUM_EXPORT Buffer {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* Source for copies. See copy(). * Source for copies. See copy().
* @requires_gl31 Extension @extension{ARB,copy_buffer} * @requires_gl31 %Extension @extension{ARB,copy_buffer}
* @requires_gles30 Buffer copying is not available in OpenGL ES * @requires_gles30 Buffer copying is not available in OpenGL ES
* 2.0. * 2.0.
*/ */
@ -114,7 +114,7 @@ class MAGNUM_EXPORT Buffer {
/** /**
* Target for copies. See copy(). * Target for copies. See copy().
* @requires_gl31 Extension @extension{ARB,copy_buffer} * @requires_gl31 %Extension @extension{ARB,copy_buffer}
* @requires_gles30 Buffer copying is not available in OpenGL ES * @requires_gles30 Buffer copying is not available in OpenGL ES
* 2.0. * 2.0.
*/ */
@ -124,14 +124,14 @@ class MAGNUM_EXPORT Buffer {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* Indirect compute dispatch commands. * Indirect compute dispatch commands.
* @requires_gl43 Extension @extension{ARB,compute_shader} * @requires_gl43 %Extension @extension{ARB,compute_shader}
* @requires_gl Compute shaders are not available in OpenGL ES. * @requires_gl Compute shaders are not available in OpenGL ES.
*/ */
DispatchIndirect = GL_DISPATCH_INDIRECT_BUFFER, DispatchIndirect = GL_DISPATCH_INDIRECT_BUFFER,
/** /**
* Used for supplying arguments for indirect drawing. * Used for supplying arguments for indirect drawing.
* @requires_gl40 Extension @extension{ARB,draw_indirect} * @requires_gl40 %Extension @extension{ARB,draw_indirect}
* @requires_gl Indirect drawing not available in OpenGL ES. * @requires_gl Indirect drawing not available in OpenGL ES.
*/ */
DrawIndirect = GL_DRAW_INDIRECT_BUFFER, DrawIndirect = GL_DRAW_INDIRECT_BUFFER,
@ -161,14 +161,14 @@ class MAGNUM_EXPORT Buffer {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* Used for shader storage. * Used for shader storage.
* @requires_gl43 Extension @extension{ARB,shader_storage_buffer_object} * @requires_gl43 %Extension @extension{ARB,shader_storage_buffer_object}
* @requires_gl Shader storage is not available in OpenGL ES. * @requires_gl Shader storage is not available in OpenGL ES.
*/ */
ShaderStorage = GL_SHADER_STORAGE_BUFFER, ShaderStorage = GL_SHADER_STORAGE_BUFFER,
/** /**
* Source for texel fetches. See BufferTexture. * Source for texel fetches. See BufferTexture.
* @requires_gl31 Extension @extension{ARB,texture_buffer_object} * @requires_gl31 %Extension @extension{ARB,texture_buffer_object}
* @requires_gl Texture buffers are not available in OpenGL ES. * @requires_gl Texture buffers are not available in OpenGL ES.
*/ */
Texture = GL_TEXTURE_BUFFER, Texture = GL_TEXTURE_BUFFER,
@ -177,7 +177,7 @@ class MAGNUM_EXPORT Buffer {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
/** /**
* Target for transform feedback. * Target for transform feedback.
* @requires_gl30 Extension @extension{EXT,transform_feedback} * @requires_gl30 %Extension @extension{EXT,transform_feedback}
* @requires_gles30 Transform feedback is not available in OpenGL * @requires_gles30 Transform feedback is not available in OpenGL
* ES 2.0. * ES 2.0.
*/ */
@ -185,7 +185,7 @@ class MAGNUM_EXPORT Buffer {
/** /**
* Used for storing uniforms. * Used for storing uniforms.
* @requires_gl31 Extension @extension{ARB,uniform_buffer_object} * @requires_gl31 %Extension @extension{ARB,uniform_buffer_object}
* @requires_gles30 Uniform buffers are not available in OpenGL ES * @requires_gles30 Uniform buffers are not available in OpenGL ES
* 2.0. * 2.0.
*/ */
@ -293,7 +293,7 @@ class MAGNUM_EXPORT Buffer {
* buffers aren't already bound somewhere, they are bound to * buffers aren't already bound somewhere, they are bound to
* `Target::CopyRead` and `Target::CopyWrite` before the copy is * `Target::CopyRead` and `Target::CopyWrite` before the copy is
* performed. * performed.
* @requires_gl31 Extension @extension{ARB,copy_buffer} * @requires_gl31 %Extension @extension{ARB,copy_buffer}
* @requires_gles30 Buffer copying is not available in OpenGL ES 2.0. * @requires_gles30 Buffer copying is not available in OpenGL ES 2.0.
* @see @fn_gl{BindBuffer} and @fn_gl{CopyBufferSubData} or * @see @fn_gl{BindBuffer} and @fn_gl{CopyBufferSubData} or
* @fn_gl_extension{NamedCopyBufferSubData,EXT,direct_state_access} * @fn_gl_extension{NamedCopyBufferSubData,EXT,direct_state_access}

8
src/BufferTexture.h

@ -67,7 +67,7 @@ uses DSA function to avoid unnecessary calls to @fn_gl{ActiveTexture} and
"relevant section in AbstractTexture documentation" and respective function "relevant section in AbstractTexture documentation" and respective function
documentation for more information. documentation for more information.
@requires_gl31 Extension @extension{ARB,texture_buffer_object} @requires_gl31 %Extension @extension{ARB,texture_buffer_object}
@requires_gl Texture buffers are not available in OpenGL ES. @requires_gl Texture buffers are not available in OpenGL ES.
*/ */
class MAGNUM_EXPORT BufferTexture: private AbstractTexture { class MAGNUM_EXPORT BufferTexture: private AbstractTexture {
@ -147,7 +147,7 @@ class MAGNUM_EXPORT BufferTexture: private AbstractTexture {
/** /**
* RGB, each component non-normalized unsigned int. * RGB, each component non-normalized unsigned int.
* @requires_gl40 Extension @extension{ARB,texture_buffer_object_rgb32} * @requires_gl40 %Extension @extension{ARB,texture_buffer_object_rgb32}
*/ */
RGB32UI = GL_RGB32UI, RGB32UI = GL_RGB32UI,
@ -162,7 +162,7 @@ class MAGNUM_EXPORT BufferTexture: private AbstractTexture {
/** /**
* RGB, each component non-normalized signed int. * RGB, each component non-normalized signed int.
* @requires_gl40 Extension @extension{ARB,texture_buffer_object_rgb32} * @requires_gl40 %Extension @extension{ARB,texture_buffer_object_rgb32}
*/ */
RGB32I = GL_RGB32I, RGB32I = GL_RGB32I,
@ -186,7 +186,7 @@ class MAGNUM_EXPORT BufferTexture: private AbstractTexture {
/** /**
* RGB, each component float. * RGB, each component float.
* @requires_gl40 Extension @extension{ARB,texture_buffer_object_rgb32} * @requires_gl40 %Extension @extension{ARB,texture_buffer_object_rgb32}
*/ */
RGB32F = GL_RGB32F, RGB32F = GL_RGB32F,

3
src/Context.h

@ -138,10 +138,13 @@ class MAGNUM_EXPORT Context {
/** /**
* @brief Constructor * @brief Constructor
* *
* Constructed automatically, see class documentation for more
* information.
* @see @fn_gl{Get} with @def_gl{MAJOR_VERSION}, @def_gl{MINOR_VERSION}, * @see @fn_gl{Get} with @def_gl{MAJOR_VERSION}, @def_gl{MINOR_VERSION},
* @fn_gl{GetString} with @def_gl{EXTENSIONS} * @fn_gl{GetString} with @def_gl{EXTENSIONS}
*/ */
Context(); Context();
~Context(); ~Context();
/** @brief Current context */ /** @brief Current context */

2
src/CubeMapTexture.h

@ -82,7 +82,7 @@ class CubeMapTexture: public AbstractTexture {
* *
* Initially disabled on desktop OpenGL. * Initially disabled on desktop OpenGL.
* @see @fn_gl{Enable}/@fn_gl{Disable} with @def_gl{TEXTURE_CUBE_MAP_SEAMLESS} * @see @fn_gl{Enable}/@fn_gl{Disable} with @def_gl{TEXTURE_CUBE_MAP_SEAMLESS}
* @requires_gl32 Extension @extension{ARB,seamless_cube_map} * @requires_gl32 %Extension @extension{ARB,seamless_cube_map}
* @requires_gl Not available in OpenGL ES 2.0, always enabled in * @requires_gl Not available in OpenGL ES 2.0, always enabled in
* OpenGL ES 3.0. * OpenGL ES 3.0.
*/ */

2
src/CubeMapTextureArray.h

@ -66,7 +66,7 @@ one of the six sides of the cube map, fourth part is layer in the array. See
also AbstractShaderProgram for more information. also AbstractShaderProgram for more information.
@see CubeMapTexture::setSeamless() @see CubeMapTexture::setSeamless()
@requires_gl40 Extension @extension{ARB,texture_cube_map_array} @requires_gl40 %Extension @extension{ARB,texture_cube_map_array}
@requires_gl Cube map texture arrays are not available in OpenGL ES. @requires_gl Cube map texture arrays are not available in OpenGL ES.
*/ */
class CubeMapTextureArray: public AbstractTexture { class CubeMapTextureArray: public AbstractTexture {

2
src/Extensions.h

@ -30,7 +30,7 @@ Each extension is `struct` named hierarchically by prefix, vendor and
extension name, for example `GL::APPLE::vertex_array_object`. Each struct has extension name, for example `GL::APPLE::vertex_array_object`. Each struct has
the same public methods as Extension class (requiredVersion(), coreVersion() the same public methods as Extension class (requiredVersion(), coreVersion()
and string(), but these structs are better suited for compile-time decisions and string(), but these structs are better suited for compile-time decisions
rather than Extension instances. See Context::isExtensionSupported() for rather than %Extension instances. See Context::isExtensionSupported() for
example usage. example usage.
@see MAGNUM_ASSERT_EXTENSION_SUPPORTED() @see MAGNUM_ASSERT_EXTENSION_SUPPORTED()

10
src/Mesh.h

@ -155,11 +155,11 @@ class MAGNUM_EXPORT Mesh {
* @brief Provoking vertex * @brief Provoking vertex
* *
* @see setProvokingVertex() * @see setProvokingVertex()
* @requires_gl OpenGL ES behaves always like * @requires_gl32 %Extension @extension{ARB,provoking_vertex}. Older
* <tt>ProvokingMode::%LastVertexConvention</tt>.
* @requires_gl32 Extension @extension{ARB,provoking_vertex}. Older
* versions behave always like * versions behave always like
* <tt>ProvokingMode::%LastVertexConvention</tt>. * <tt>ProvokingMode::%LastVertexConvention</tt>.
* @requires_gl OpenGL ES behaves always like
* <tt>ProvokingMode::%LastVertexConvention</tt>.
*/ */
enum class ProvokingVertex: GLenum { enum class ProvokingVertex: GLenum {
/** @brief Use first vertex of each polygon. */ /** @brief Use first vertex of each polygon. */
@ -174,9 +174,9 @@ class MAGNUM_EXPORT Mesh {
* *
* Initial value is <tt>ProvokingMode::%LastVertexConvention</tt>. * Initial value is <tt>ProvokingMode::%LastVertexConvention</tt>.
* @see @fn_gl{ProvokingVertex} * @see @fn_gl{ProvokingVertex}
* @requires_gl OpenGL ES behaves always like the default. * @requires_gl32 %Extension @extension{ARB,provoking_vertex}. Older
* @requires_gl32 Extension @extension{ARB,provoking_vertex}. Older
* versions behave always like the default. * versions behave always like the default.
* @requires_gl OpenGL ES behaves always like the default.
*/ */
inline static void setProvokingVertex(ProvokingVertex mode) { inline static void setProvokingVertex(ProvokingVertex mode) {
glProvokingVertex(static_cast<GLenum>(mode)); glProvokingVertex(static_cast<GLenum>(mode));

2
src/Platform/ExtensionWrangler.h

@ -21,7 +21,7 @@
namespace Magnum { namespace Platform { namespace Magnum { namespace Platform {
/** @brief Extension wrangler interface */ /** @brief %Extension wrangler interface */
class ExtensionWrangler { class ExtensionWrangler {
public: public:
/** @brief Whether to enable or disable experimental features */ /** @brief Whether to enable or disable experimental features */

19
src/Query.h

@ -78,7 +78,8 @@ class MAGNUM_EXPORT AbstractQuery {
* Note that this function is blocking until the result is available. * Note that this function is blocking until the result is available.
* See resultAvailable(). * See resultAvailable().
* @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} (result type `GLuint64` and `GLint64`) * @requires_gl33 %Extension @extension{ARB,timer_query} (result
* type `GLuint64` and `GLint64`)
* @requires_gl Result types @c GLint, @c GLuint64 and @c GLint64 are * @requires_gl Result types @c GLint, @c GLuint64 and @c GLint64 are
* not available in OpenGL ES. * not available in OpenGL ES.
*/ */
@ -119,7 +120,7 @@ if(!q.resultAvailable()) {
// ...or block until the result is available // ...or block until the result is available
GLuint primitiveCount = q.result<GLuint>(); GLuint primitiveCount = q.result<GLuint>();
@endcode @endcode
@requires_gl30 Extension @extension{EXT,transform_feedback} @requires_gl30 %Extension @extension{EXT,transform_feedback}
@requires_gles30 Only sample queries are available on OpenGL ES 2.0. @requires_gles30 Only sample queries are available on OpenGL ES 2.0.
*/ */
class MAGNUM_EXPORT Query: public AbstractQuery { class MAGNUM_EXPORT Query: public AbstractQuery {
@ -144,7 +145,7 @@ class MAGNUM_EXPORT Query: public AbstractQuery {
/** /**
* Elapsed time * Elapsed time
* @requires_gl33 Extension @extension{ARB,timer_query} * @requires_gl33 %Extension @extension{ARB,timer_query}
* @requires_gl Only transform feedback query is available in * @requires_gl Only transform feedback query is available in
* OpenGL ES. * OpenGL ES.
*/ */
@ -227,7 +228,7 @@ class MAGNUM_EXPORT SampleQuery: public AbstractQuery {
/** /**
* Whether any samples passed from fragment shader * Whether any samples passed from fragment shader
* @requires_gl33 Extension @extension{ARB,occlusion_query2} * @requires_gl33 %Extension @extension{ARB,occlusion_query2}
*/ */
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
AnySamplesPassed = GL_ANY_SAMPLES_PASSED, AnySamplesPassed = GL_ANY_SAMPLES_PASSED,
@ -240,7 +241,7 @@ class MAGNUM_EXPORT SampleQuery: public AbstractQuery {
* *
* An implementation may choose a less precise version of the * An implementation may choose a less precise version of the
* test at the expense of some false positives. * test at the expense of some false positives.
* @requires_gl43 Extension @extension{ARB,ES3_compatibility} * @requires_gl43 %Extension @extension{ARB,ES3_compatibility}
*/ */
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
AnySamplesPassedConservative = GL_ANY_SAMPLES_PASSED_CONSERVATIVE AnySamplesPassedConservative = GL_ANY_SAMPLES_PASSED_CONSERVATIVE
@ -253,7 +254,7 @@ class MAGNUM_EXPORT SampleQuery: public AbstractQuery {
/** /**
* @brief Conditional render mode * @brief Conditional render mode
* *
* @requires_gl30 Extension @extension{NV,conditional_render} * @requires_gl30 %Extension @extension{NV,conditional_render}
* @requires_gl Conditional rendering is not available in OpenGL ES. * @requires_gl Conditional rendering is not available in OpenGL ES.
*/ */
enum class ConditionalRenderMode: GLenum { enum class ConditionalRenderMode: GLenum {
@ -298,7 +299,7 @@ class MAGNUM_EXPORT SampleQuery: public AbstractQuery {
* @brief Begin conditional rendering based on result value * @brief Begin conditional rendering based on result value
* *
* @see @fn_gl{BeginConditionalRender} * @see @fn_gl{BeginConditionalRender}
* @requires_gl30 Extension @extension{NV,conditional_render} * @requires_gl30 %Extension @extension{NV,conditional_render}
* @requires_gl Conditional rendering is not available in OpenGL ES. * @requires_gl Conditional rendering is not available in OpenGL ES.
*/ */
inline void beginConditionalRender(ConditionalRenderMode mode) { inline void beginConditionalRender(ConditionalRenderMode mode) {
@ -309,7 +310,7 @@ class MAGNUM_EXPORT SampleQuery: public AbstractQuery {
* @brief End conditional render * @brief End conditional render
* *
* @see @fn_gl{EndConditionalRender} * @see @fn_gl{EndConditionalRender}
* @requires_gl30 Extension @extension{NV,conditional_render} * @requires_gl30 %Extension @extension{NV,conditional_render}
* @requires_gl Conditional rendering is not available in OpenGL ES. * @requires_gl Conditional rendering is not available in OpenGL ES.
*/ */
inline void endConditionalRender() { inline void endConditionalRender() {
@ -352,7 +353,7 @@ GLuint timeElapsed1 = tmp-q1.result<GLuint>();
GLuint timeElapsed2 = q3.result<GLuint>()-tmp; GLuint timeElapsed2 = q3.result<GLuint>()-tmp;
@endcode @endcode
Using this query results in fewer OpenGL calls when doing more measures. Using this query results in fewer OpenGL calls when doing more measures.
@requires_gl33 Extension @extension{ARB,timer_query} @requires_gl33 %Extension @extension{ARB,timer_query}
@requires_gl Timer query is not available in OpenGL ES. @requires_gl Timer query is not available in OpenGL ES.
*/ */
class TimeQuery: public AbstractQuery { class TimeQuery: public AbstractQuery {

12
src/Renderer.h

@ -79,7 +79,7 @@ class MAGNUM_EXPORT Renderer {
/** /**
* Depth clamping. If enabled, ignores near and far clipping plane. * Depth clamping. If enabled, ignores near and far clipping plane.
* @requires_gl32 Extension @extension{ARB,depth_clamp} * @requires_gl32 %Extension @extension{ARB,depth_clamp}
* @requires_gl Depth clamping is not available in OpenGL ES. * @requires_gl Depth clamping is not available in OpenGL ES.
*/ */
DepthClamp = GL_DEPTH_CLAMP, DepthClamp = GL_DEPTH_CLAMP,
@ -146,7 +146,7 @@ class MAGNUM_EXPORT Renderer {
* @overload * @overload
* *
* @see @fn_gl{ClearDepth} * @see @fn_gl{ClearDepth}
* @requires_gl41 Extension @extension{ARB,ES2_compatibility} * @requires_gl41 %Extension @extension{ARB,ES2_compatibility}
* @todo Call double version if the extension is not available * @todo Call double version if the extension is not available
*/ */
inline static void setClearDepth(GLfloat depth) { glClearDepthf(depth); } inline static void setClearDepth(GLfloat depth) { glClearDepthf(depth); }
@ -451,7 +451,7 @@ class MAGNUM_EXPORT Renderer {
* Second source color (@f$ RGB = (R_{s1}, G_{s1}, B_{s1}); A = A_{s1} @f$) * Second source color (@f$ RGB = (R_{s1}, G_{s1}, B_{s1}); A = A_{s1} @f$)
* *
* @see AbstractShaderProgram::bindFragmentDataLocationIndexed() * @see AbstractShaderProgram::bindFragmentDataLocationIndexed()
* @requires_gl33 Extension @extension{ARB,blend_func_extended} * @requires_gl33 %Extension @extension{ARB,blend_func_extended}
* @requires_gl Multiple blending inputs are not available in * @requires_gl Multiple blending inputs are not available in
* OpenGL ES. * OpenGL ES.
*/ */
@ -468,7 +468,7 @@ class MAGNUM_EXPORT Renderer {
* One minus second source color (@f$ RGB = (1.0 - R_{s1}, 1.0 - G_{s1}, 1.0 - B_{s1}); A = 1.0 - A_{s1} @f$) * One minus second source color (@f$ RGB = (1.0 - R_{s1}, 1.0 - G_{s1}, 1.0 - B_{s1}); A = 1.0 - A_{s1} @f$)
* *
* @see AbstractShaderProgram::bindFragmentDataLocationIndexed() * @see AbstractShaderProgram::bindFragmentDataLocationIndexed()
* @requires_gl33 Extension @extension{ARB,blend_func_extended} * @requires_gl33 %Extension @extension{ARB,blend_func_extended}
* @requires_gl Multiple blending inputs are not available in * @requires_gl Multiple blending inputs are not available in
* OpenGL ES. * OpenGL ES.
*/ */
@ -490,7 +490,7 @@ class MAGNUM_EXPORT Renderer {
* Second source alpha (@f$ RGB = (A_{s1}, A_{s1}, A_{s1}); A = A_{s1} @f$) * Second source alpha (@f$ RGB = (A_{s1}, A_{s1}, A_{s1}); A = A_{s1} @f$)
* *
* @see AbstractShaderProgram::bindFragmentDataLocationIndexed() * @see AbstractShaderProgram::bindFragmentDataLocationIndexed()
* @requires_gl33 Extension @extension{ARB,blend_func_extended} * @requires_gl33 %Extension @extension{ARB,blend_func_extended}
* @requires_gl Multiple blending inputs are not available in * @requires_gl Multiple blending inputs are not available in
* OpenGL ES. * OpenGL ES.
*/ */
@ -507,7 +507,7 @@ class MAGNUM_EXPORT Renderer {
* One minus second source alpha (@f$ RGB = (1.0 - A_{s1}, 1.0 - A_{s1}, 1.0 - A_{s1}); A = 1.0 - A_{s1} @f$) * One minus second source alpha (@f$ RGB = (1.0 - A_{s1}, 1.0 - A_{s1}, 1.0 - A_{s1}); A = 1.0 - A_{s1} @f$)
* *
* @see AbstractShaderProgram::bindFragmentDataLocationIndexed() * @see AbstractShaderProgram::bindFragmentDataLocationIndexed()
* @requires_gl33 Extension @extension{ARB,blend_func_extended} * @requires_gl33 %Extension @extension{ARB,blend_func_extended}
* @requires_gl Multiple blending inputs are not available in * @requires_gl Multiple blending inputs are not available in
* OpenGL ES. * OpenGL ES.
*/ */

8
src/Shader.h

@ -47,28 +47,28 @@ class MAGNUM_EXPORT Shader {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
/** /**
* Tessellation control shader * Tessellation control shader
* @requires_gl40 Extension @extension{ARB,tessellation_shader} * @requires_gl40 %Extension @extension{ARB,tessellation_shader}
* @requires_gl Tessellation shaders are not available in OpenGL ES. * @requires_gl Tessellation shaders are not available in OpenGL ES.
*/ */
TessellationControl = GL_TESS_CONTROL_SHADER, TessellationControl = GL_TESS_CONTROL_SHADER,
/** /**
* Tessellation evaluation shader * Tessellation evaluation shader
* @requires_gl40 Extension @extension{ARB,tessellation_shader} * @requires_gl40 %Extension @extension{ARB,tessellation_shader}
* @requires_gl Tessellation shaders are not available in OpenGL ES. * @requires_gl Tessellation shaders are not available in OpenGL ES.
*/ */
TessellationEvaluation = GL_TESS_EVALUATION_SHADER, TessellationEvaluation = GL_TESS_EVALUATION_SHADER,
/** /**
* Geometry shader * Geometry shader
* @requires_gl32 Extension @extension{ARB,geometry_shader4} * @requires_gl32 %Extension @extension{ARB,geometry_shader4}
* @requires_gl Geometry shaders are not available in OpenGL ES. * @requires_gl Geometry shaders are not available in OpenGL ES.
*/ */
Geometry = GL_GEOMETRY_SHADER, Geometry = GL_GEOMETRY_SHADER,
/** /**
* Compute shader * Compute shader
* @requires_gl43 Extension @extension{ARB,compute_shader} * @requires_gl43 %Extension @extension{ARB,compute_shader}
* @requires_gl Compute shaders are not available in OpenGL ES. * @requires_gl Compute shaders are not available in OpenGL ES.
*/ */
Compute = GL_COMPUTE_SHADER, Compute = GL_COMPUTE_SHADER,

9
src/Texture.h

@ -102,7 +102,8 @@ rectangle textures don't support mipmapping and repeating wrapping modes, see
generateMipmap() documentation for more information. generateMipmap() documentation for more information.
@requires_gl Rectangle textures are not available in OpenGL ES. @requires_gl Rectangle textures are not available in OpenGL ES.
@requires_gl31 Extension @extension{ARB,texture_rectangle} (rectangle textures) @requires_gl31 %Extension @extension{ARB,texture_rectangle} (rectangle
textures)
@see Texture1D, Texture2D, Texture3D, CubeMapTexture, CubeMapTextureArray @see Texture1D, Texture2D, Texture3D, CubeMapTexture, CubeMapTextureArray
@todo @extension{AMD,sparse_texture} @todo @extension{AMD,sparse_texture}
@ -135,7 +136,7 @@ template<std::uint8_t dimensions> class Texture: public AbstractTexture {
/** /**
* One-dimensional texture array (i.e. two dimensions in total) * One-dimensional texture array (i.e. two dimensions in total)
* @requires_gl30 Extension @extension{EXT,texture_array} * @requires_gl30 %Extension @extension{EXT,texture_array}
* @requires_gl Only 2D and 3D textures are available in OpenGL * @requires_gl Only 2D and 3D textures are available in OpenGL
* ES. * ES.
*/ */
@ -143,7 +144,7 @@ template<std::uint8_t dimensions> class Texture: public AbstractTexture {
/** /**
* Two-dimensional texture array (i.e. three dimensions in total) * Two-dimensional texture array (i.e. three dimensions in total)
* @requires_gl30 Extension @extension{EXT,texture_array} * @requires_gl30 %Extension @extension{EXT,texture_array}
* @requires_gles30 Array textures are not available in OpenGL ES * @requires_gles30 Array textures are not available in OpenGL ES
* 2.0. * 2.0.
*/ */
@ -151,7 +152,7 @@ template<std::uint8_t dimensions> class Texture: public AbstractTexture {
/** /**
* Rectangle texture (i.e. two dimensions) * Rectangle texture (i.e. two dimensions)
* @requires_gl31 Extension @extension{ARB,texture_rectangle} * @requires_gl31 %Extension @extension{ARB,texture_rectangle}
* @requires_gl Rectangle textures are not available in OpenGL ES. * @requires_gl Rectangle textures are not available in OpenGL ES.
*/ */
Rectangle = GL_TEXTURE_RECTANGLE Rectangle = GL_TEXTURE_RECTANGLE

Loading…
Cancel
Save