Magnum namespace

Root namespace.

Contains classes for interacting with OpenGL.

This library is built as part of Magnum by default. To use this library with CMake, you need to find the Magnum package and link to the Magnum::Magnum target:

find_package(Magnum REQUIRED)

# ...
target_link_libraries(your-app Magnum::Magnum)

See Downloading and building and Usage with CMake for more information.

Namespaces

namespace Audio
Audio playback.
namespace BulletIntegration
Integration with Bullet Physics.
namespace DartIntegration
Integration with DART Dynamic Animation and Robotics Toolkit.
namespace DebugTools
Debug tools.
namespace Extensions deprecated
Compile-time information about OpenGL extensions.
namespace GL
OpenGL wrapping layer.
namespace Math
Math library.
namespace MeshTools
Mesh tools.
namespace OpenDdl
OpenDDL parser.
namespace OvrIntegration
Integration with the Oculus SDK (LibOVR)
namespace Platform
Platform-specific application and context creation.
namespace Primitives
Primitive library.
namespace SceneGraph
Scene graph library.
namespace Shaders
Builtin shaders.
namespace Shapes
Shape library.
namespace Text
Text rendering.
namespace TextureTools
Texture tools.
namespace Trade
Data format exchange.
namespace Ui
UI library.

Classes

template<class T>
class AbstractResourceLoader
Base for resource loaders.
template<UnsignedInt dimensions, class T>
class Array
Array.
template<class T>
class Array1D
One-dimensional array.
template<class T>
class Array2D
Two-dimensional array.
template<class T>
class Array3D
Three-dimensional array.
template<UnsignedInt dimensions>
class CompressedImage
Compressed image.
template<UnsignedInt dimensions>
class CompressedImageView
Compressed image view.
class CompressedPixelStorage
Compressed pixel storage parameters.
template<UnsignedInt dimensions, class T>
struct DimensionTraits
Matrix and vector specializations for given dimension count.
template<UnsignedInt dimensions>
class Image
Image.
template<UnsignedInt dimensions>
class ImageView
Image view.
struct NoCreateT
No creation tag type.
class PixelStorage
Pixel storage parameters.
template<class T, class U = T>
class Resource
Resource reference.
class ResourceKey
Key for accessing resource.
template<class... Types>
class ResourceManager
Resource manager.
struct Sampler deprecated
Texture sampler.
class Timeline
Timeline.

Enums

enum class MeshPrimitive: UnsignedInt { Points, Lines, LineLoop, LineStrip, Triangles, TriangleStrip, TriangleFan, LinesAdjacency = UnsignedInt(GL::MeshPrimitive::LinesAdjacency), LineStripAdjacency = UnsignedInt(GL::MeshPrimitive::LineStripAdjacency), TrianglesAdjacency = UnsignedInt(GL::MeshPrimitive::TrianglesAdjacency), TriangleStripAdjacency = UnsignedInt(GL::MeshPrimitive::TriangleStripAdjacency), Patches = UnsignedInt(GL::MeshPrimitive::Patches) deprecated }
Mesh primitive type.
enum class MeshIndexType: UnsignedInt { UnsignedByte, UnsignedShort, UnsignedInt }
Mesh primitive type.
enum class PixelFormat: UnsignedInt { R8Unorm, RG8Unorm, RGB8Unorm, RGBA8Unorm, R8Snorm, RG8Snorm, RGB8Snorm, RGBA8Snorm, R8UI, RG8UI, RGB8UI, RGBA8UI, R8I, RG8I, RGB8I, RGBA8I, R16Unorm, RG16Unorm, RGB16Unorm, RGBA16Unorm, R16Snorm, RG16Snorm, RGB16Snorm, RGBA16Snorm, R16UI, RG16UI, RGB16UI, RGBA16UI, R16I, RG16I, RGB16I, RGBA16I, R32UI, RG32UI, RGB32UI, RGBA32UI, R32I, RG32I, RGB32I, RGBA32I, R16F, RG16F, RGB16F, RGBA16F, R32F, RG32F, RGB32F, RGBA32F, Red = UnsignedInt(GL::PixelFormat::Red) deprecated, Green = UnsignedInt(GL::PixelFormat::Green) deprecated, Blue = UnsignedInt(GL::PixelFormat::Blue) deprecated, Luminance = UnsignedInt(GL::PixelFormat::Luminance) deprecated, RG = UnsignedInt(GL::PixelFormat::RG) deprecated, LuminanceAlpha = UnsignedInt(GL::PixelFormat::LuminanceAlpha) deprecated, RGB = UnsignedInt(GL::PixelFormat::RGB) deprecated, RGBA = UnsignedInt(GL::PixelFormat::RGBA) deprecated, BGR = UnsignedInt(GL::PixelFormat::BGR) deprecated, BGRA = UnsignedInt(GL::PixelFormat::BGRA) deprecated, SRGB = UnsignedInt(GL::PixelFormat::SRGB) deprecated, SRGBAlpha = UnsignedInt(GL::PixelFormat::SRGBAlpha) deprecated, RedInteger = UnsignedInt(GL::PixelFormat::RedInteger) deprecated, GreenInteger = UnsignedInt(GL::PixelFormat::GreenInteger) deprecated, BlueInteger = UnsignedInt(GL::PixelFormat::BlueInteger) deprecated, RGInteger = UnsignedInt(GL::PixelFormat::RGInteger) deprecated, RGBInteger = UnsignedInt(GL::PixelFormat::RGBInteger) deprecated, RGBAInteger = UnsignedInt(GL::PixelFormat::RGBAInteger) deprecated, BGRInteger = UnsignedInt(GL::PixelFormat::BGRInteger) deprecated, BGRAInteger = UnsignedInt(GL::PixelFormat::BGRAInteger) deprecated, DepthComponent = UnsignedInt(GL::PixelFormat::DepthComponent) deprecated, StencilIndex = UnsignedInt(GL::PixelFormat::StencilIndex) deprecated, DepthStencil = UnsignedInt(GL::PixelFormat::DepthStencil) deprecated }
Format of pixel data.
enum class CompressedPixelFormat: UnsignedInt { Bc1RGBUnorm, Bc1RGBAUnorm, Bc2RGBAUnorm, Bc3RGBAUnorm, Red = UnsignedInt(GL::CompressedPixelFormat::Red) deprecated, RG = UnsignedInt(GL::CompressedPixelFormat::RG) deprecated, RGB = UnsignedInt(GL::CompressedPixelFormat::RGB) deprecated, RGBA = UnsignedInt(GL::CompressedPixelFormat::RGBA) deprecated, RedRgtc1 = UnsignedInt(GL::CompressedPixelFormat::RedRgtc1) deprecated, RGRgtc2 = UnsignedInt(GL::CompressedPixelFormat::RGRgtc2) deprecated, SignedRedRgtc1 = UnsignedInt(GL::CompressedPixelFormat::SignedRedRgtc1) deprecated, SignedRGRgtc2 = UnsignedInt(GL::CompressedPixelFormat::SignedRGRgtc2) deprecated, RGBBptcUnsignedFloat = UnsignedInt(GL::CompressedPixelFormat::RGBBptcUnsignedFloat) deprecated, RGBBptcSignedFloat = UnsignedInt(GL::CompressedPixelFormat::RGBBptcSignedFloat) deprecated, RGBABptcUnorm = UnsignedInt(GL::CompressedPixelFormat::RGBABptcUnorm) deprecated, SRGBAlphaBptcUnorm = UnsignedInt(GL::CompressedPixelFormat::SRGBAlphaBptcUnorm) deprecated, RGB8Etc2 = UnsignedInt(GL::CompressedPixelFormat::RGB8Etc2) deprecated, SRGB8Etc2 = UnsignedInt(GL::CompressedPixelFormat::SRGB8Etc2) deprecated, RGB8PunchthroughAlpha1Etc2 = UnsignedInt(GL::CompressedPixelFormat::RGB8PunchthroughAlpha1Etc2) deprecated, SRGB8PunchthroughAlpha1Etc2 = UnsignedInt(GL::CompressedPixelFormat::SRGB8PunchthroughAlpha1Etc2) deprecated, RGBA8Etc2Eac = UnsignedInt(GL::CompressedPixelFormat::RGBA8Etc2Eac) deprecated, SRGB8Alpha8Etc2Eac = UnsignedInt(GL::CompressedPixelFormat::SRGB8Alpha8Etc2Eac) deprecated, R11Eac = UnsignedInt(GL::CompressedPixelFormat::R11Eac) deprecated, SignedR11Eac = UnsignedInt(GL::CompressedPixelFormat::SignedR11Eac) deprecated, RG11Eac = UnsignedInt(GL::CompressedPixelFormat::RG11Eac) deprecated, SignedRG11Eac = UnsignedInt(GL::CompressedPixelFormat::SignedRG11Eac) deprecated, RGBS3tcDxt1 = UnsignedInt(GL::CompressedPixelFormat::RGBS3tcDxt1) deprecated, RGBAS3tcDxt1 = UnsignedInt(GL::CompressedPixelFormat::RGBAS3tcDxt1) deprecated, RGBAS3tcDxt3 = UnsignedInt(GL::CompressedPixelFormat::RGBAS3tcDxt3) deprecated, RGBAS3tcDxt5 = UnsignedInt(GL::CompressedPixelFormat::RGBAS3tcDxt5) deprecated, RGBAAstc4x4 = UnsignedInt(GL::CompressedPixelFormat::RGBAAstc4x4) deprecated, SRGB8Alpha8Astc4x4 = UnsignedInt(GL::CompressedPixelFormat::SRGB8Alpha8Astc4x4) deprecated, RGBAAstc5x4 = UnsignedInt(GL::CompressedPixelFormat::RGBAAstc5x4) deprecated, SRGB8Alpha8Astc5x4 = UnsignedInt(GL::CompressedPixelFormat::SRGB8Alpha8Astc5x4) deprecated, RGBAAstc5x5 = UnsignedInt(GL::CompressedPixelFormat::RGBAAstc5x5) deprecated, SRGB8Alpha8Astc5x5 = UnsignedInt(GL::CompressedPixelFormat::SRGB8Alpha8Astc5x5) deprecated, RGBAAstc6x5 = UnsignedInt(GL::CompressedPixelFormat::RGBAAstc6x5) deprecated, SRGB8Alpha8Astc6x5 = UnsignedInt(GL::CompressedPixelFormat::SRGB8Alpha8Astc6x5) deprecated, RGBAAstc6x6 = UnsignedInt(GL::CompressedPixelFormat::RGBAAstc6x6) deprecated, SRGB8Alpha8Astc6x6 = UnsignedInt(GL::CompressedPixelFormat::SRGB8Alpha8Astc6x6) deprecated, RGBAAstc8x5 = UnsignedInt(GL::CompressedPixelFormat::RGBAAstc8x5) deprecated, SRGB8Alpha8Astc8x5 = UnsignedInt(GL::CompressedPixelFormat::SRGB8Alpha8Astc8x5) deprecated, RGBAAstc8x6 = UnsignedInt(GL::CompressedPixelFormat::RGBAAstc8x6) deprecated, SRGB8Alpha8Astc8x6 = UnsignedInt(GL::CompressedPixelFormat::SRGB8Alpha8Astc8x6) deprecated, RGBAAstc8x8 = UnsignedInt(GL::CompressedPixelFormat::RGBAAstc8x8) deprecated, SRGB8Alpha8Astc8x8 = UnsignedInt(GL::CompressedPixelFormat::SRGB8Alpha8Astc8x8) deprecated, RGBAAstc10x5 = UnsignedInt(GL::CompressedPixelFormat::RGBAAstc10x5) deprecated, SRGB8Alpha8Astc10x5 = UnsignedInt(GL::CompressedPixelFormat::SRGB8Alpha8Astc10x5) deprecated, RGBAAstc10x6 = UnsignedInt(GL::CompressedPixelFormat::RGBAAstc10x6) deprecated, SRGB8Alpha8Astc10x6 = UnsignedInt(GL::CompressedPixelFormat::SRGB8Alpha8Astc10x6) deprecated, RGBAAstc10x8 = UnsignedInt(GL::CompressedPixelFormat::RGBAAstc10x8) deprecated, SRGB8Alpha8Astc10x8 = UnsignedInt(GL::CompressedPixelFormat::SRGB8Alpha8Astc10x8) deprecated, RGBAAstc10x10 = UnsignedInt(GL::CompressedPixelFormat::RGBAAstc10x10) deprecated, SRGB8Alpha8Astc10x10 = UnsignedInt(GL::CompressedPixelFormat::SRGB8Alpha8Astc10x10) deprecated, RGBAAstc12x10 = UnsignedInt(GL::CompressedPixelFormat::RGBAAstc12x10) deprecated, SRGB8Alpha8Astc12x10 = UnsignedInt(GL::CompressedPixelFormat::SRGB8Alpha8Astc12x10) deprecated, RGBAAstc12x12 = UnsignedInt(GL::CompressedPixelFormat::RGBAAstc12x12) deprecated, SRGB8Alpha8Astc12x12 = UnsignedInt(GL::CompressedPixelFormat::SRGB8Alpha8Astc12x12) deprecated }
Format of compressed pixel data.
enum class ResourceState: UnsignedByte { NotLoaded, NotLoadedFallback, Loading, LoadingFallback, NotFound, NotFoundFallback, Mutable, Final }
Resource state.
enum class ResourceDataState: UnsignedByte { Loading = UnsignedByte(ResourceState::Loading), NotFound = UnsignedByte(ResourceState::NotFound), Mutable = UnsignedByte(ResourceState::Mutable), Final = UnsignedByte(ResourceState::Final) }
Resource data state.
enum class ResourcePolicy: UnsignedByte { Resident, Manual, ReferenceCounted }
Resource policy.
enum class SamplerFilter: UnsignedInt { Nearest, Linear }
Texture sampler filtering.
enum class SamplerMipmap: UnsignedInt { Base, Nearest, Linear }
Texture sampler mip level selection.
enum class SamplerWrapping: UnsignedInt { Repeat, MirroredRepeat, ClampToEdge, ClampToBorder, MirrorClampToEdge }
Texture sampler wrapping.

Typedefs

template<UnsignedInt dimensions, class T>
using VectorTypeFor = typename DimensionTraits<dimensions, T>::VectorType
Vector type for given dimension count and type.
template<UnsignedInt dimensions, class T>
using RangeTypeFor = typename DimensionTraits<dimensions, T>::RangeType
Range type for given dimension count and type.
template<UnsignedInt dimensions, class T>
using MatrixTypeFor = typename DimensionTraits<dimensions, T>::MatrixType
Matrix type for given dimension count and type.
using FramebufferClear = Magnum::GL::FramebufferClear deprecated
Mask for framebuffer clearing.
using FramebufferClearMask = Magnum::GL::FramebufferClearMask deprecated
Mask for clearing.
using FramebufferBlit = Magnum::GL::FramebufferBlit deprecated
Mask for framebuffer blitting.
using FramebufferBlitMask = Magnum::GL::FramebufferBlitMask deprecated
Mask for framebuffer blitting.
using FramebufferBlitFilter = Magnum::GL::FramebufferBlitFilter deprecated
Framebuffer blit filtering.
using FramebufferTarget = Magnum::GL::FramebufferTarget deprecated
Framebuffer target.
using AbstractFramebuffer = Magnum::GL::AbstractFramebuffer deprecated
Base for default and named framebuffers.
using ObjectFlag = Magnum::GL::ObjectFlag deprecated
Object wrapping flag.
using ObjectFlags = Magnum::GL::ObjectFlags deprecated
Object wrapping flags.
using AbstractObject = Magnum::GL::AbstractObject deprecated
Base for all OpenGL objects.
using AbstractQuery = Magnum::GL::AbstractQuery deprecated
Base class for queries.
using AbstractShaderProgram = Magnum::GL::AbstractShaderProgram deprecated
Base for shader program implementations.
using AbstractTexture = Magnum::GL::AbstractTexture deprecated
Base for textures.
template<UnsignedInt location, class T>
using Attribute = Magnum::GL::Attribute<location, T> deprecated
Base class for attribute location and type.
using DynamicAttribute = Magnum::GL::DynamicAttribute deprecated
Base class for dynamic attribute location and type.
using BufferUsage = Magnum::GL::BufferUsage deprecated
Buffer usage.
using Buffer = Magnum::GL::Buffer deprecated
Buffer.
template<UnsignedInt dimensions>
using BufferImage = Magnum::GL::BufferImage<dimensions> deprecated
Buffer image.
using BufferImage1D = Magnum::GL::BufferImage1D deprecated
One-dimensional buffer image.
using BufferImage2D = Magnum::GL::BufferImage2D deprecated
Two-dimensional buffer image.
using BufferImage3D = Magnum::GL::BufferImage3D deprecated
Three-dimensional buffer image.
template<UnsignedInt dimensions>
using CompressedBufferImage = Magnum::GL::BufferImage<dimensions> deprecated
Compressed buffer image.
using CompressedBufferImage1D = Magnum::GL::CompressedBufferImage1D deprecated
One-dimensional compressed buffer image.
using CompressedBufferImage2D = Magnum::GL::CompressedBufferImage2D deprecated
Two-dimensional compressed buffer image.
using CompressedBufferImage3D = Magnum::GL::CompressedBufferImage3D deprecated
Three-dimensional compressed buffer image.
using BufferTexture = Magnum::GL::BufferTexture deprecated
Buffer texture.
using BufferTextureFormat = Magnum::GL::BufferTextureFormat deprecated
Internal buffer texture format.
using Extension = Magnum::GL::Extension deprecated
Run-time information about OpenGL extension.
using Context = Magnum::GL::Context deprecated
Magnum context.
using CubeMapCoordinate = Magnum::GL::CubeMapCoordinate deprecated
Cube map coordinate.
using CubeMapTexture = Magnum::GL::CubeMapTexture deprecated
Cube map texture.
using CubeMapTextureArray = Magnum::GL::CubeMapTextureArray deprecated
Cube map texture array.
using DebugOutput = Magnum::GL::DebugOutput deprecated
Debug output.
using DebugMessage = Magnum::GL::DebugMessage deprecated
Debug message.
using DebugGroup = Magnum::GL::DebugGroup deprecated
Debug group.
using DefaultFramebuffer = Magnum::GL::DefaultFramebuffer deprecated
Default framebuffer.
using Framebuffer = Magnum::GL::Framebuffer deprecated
Framebuffer.
using ImageAccess = Magnum::GL::ImageAccess deprecated
Image access.
using ImageFormat = Magnum::GL::ImageFormat deprecated
Image format.
using Mesh = Magnum::GL::Mesh deprecated
Mesh.
using MeshView = Magnum::GL::MeshView deprecated
Mesh view.
using MultisampleTextureSampleLocations = Magnum::GL::MultisampleTextureSampleLocations deprecated
Multisample texture sample locations.
template<UnsignedInt dimensions>
using MultisampleTexture = Magnum::GL::MultisampleTexture<dimensions> deprecated
Mulitsample texture.
using MultisampleTexture2D = Magnum::GL::MultisampleTexture2D deprecated
Two-dimensional multisample texture.
using MultisampleTexture2DArray = Magnum::GL::MultisampleTexture2DArray deprecated
Two-dimensional multisample texture array.
using OpenGLTester = Magnum::GL::OpenGLTester deprecated
Base class for OpenGL tests and benchmarks.
using PixelType = Magnum::GL::PixelType deprecated
Type of pixel data.
using PrimitiveQuery = Magnum::GL::PrimitiveQuery deprecated
Query for primitives.
using RectangleTexture = Magnum::GL::RectangleTexture deprecated
Rectangle texture.
using Renderbuffer = Magnum::GL::Renderbuffer deprecated
Renderbuffer.
using RenderbufferFormat = Magnum::GL::RenderbufferFormat deprecated
Internal renderbuffer format.
using Renderer = Magnum::GL::Renderer deprecated
Global renderer configuration.
using SampleQuery = Magnum::GL::SampleQuery deprecated
Query for samples.
using Shader = Magnum::GL::Shader deprecated
Shader.
template<UnsignedInt dimensions>
using Texture = Magnum::GL::Texture<dimensions> deprecated
Texture.
using Texture1D = Magnum::GL::Texture1D deprecated
One-dimensional texture.
using Texture2D = Magnum::GL::Texture2D deprecated
Two-dimensional texture.
using Texture3D = Magnum::GL::Texture3D deprecated
Three-dimensional texture.
template<UnsignedInt dimensions>
using TextureArray = Magnum::GL::TextureArray<dimensions> deprecated
Texture array.
using Texture1DArray = Magnum::GL::Texture1DArray deprecated
One-dimensional texture array.
using Texture2DArray = Magnum::GL::Texture2DArray deprecated
Two-dimensional texture array.
using TextureFormat = Magnum::GL::TextureFormat deprecated
Internal texture format.
using TimeQuery = Magnum::GL::TimeQuery deprecated
Query for elapsed time.
using TransformFeedback = Magnum::GL::TransformFeedback deprecated
Transform feedback.
using Version = Magnum::GL::Version deprecated
OpenGL version.
using Image1D = Image<1>
One-dimensional image.
using Image2D = Image<2>
Two-dimensional image.
using Image3D = Image<3>
Three-dimensional image.
using CompressedImage1D = CompressedImage<1>
One-dimensional compressed image.
using CompressedImage2D = CompressedImage<2>
Two-dimensional compressed image.
using CompressedImage3D = CompressedImage<3>
Three-dimensional compressed image.
using ImageView1D = ImageView<1>
One-dimensional image view.
using ImageView2D = ImageView<2>
Two-dimensional image view.
using ImageView3D = ImageView<3>
Three-dimensional image view.
using CompressedImageView1D = CompressedImageView<1>
One-dimensional compressed image view.
using CompressedImageView2D = CompressedImageView<2>
Two-dimensional compressed image view.
using CompressedImageView3D = CompressedImageView<3>
Three-dimensional compressed image view.

Functions

template<UnsignedInt dimensions, class T>
auto operator<<(Debug& debug, const Array<dimensions, T>& value) -> Debug&
Debug output operator.
template<class T>
auto operator<<(Debug& debug, const Array1D<T>& value) -> Debug&
Debug output operator.
template<class T>
auto operator<<(Debug& debug, const Array2D<T>& value) -> Debug&
Debug output operator.
template<class T>
auto operator<<(Debug& debug, const Array3D<T>& value) -> Debug&
Debug output operator.
auto version(Int major, Int minor) -> GL::Version deprecated constexpr
Enum value from major and minor version number.
auto version(GL::Version version) -> std::pair<Int, Int> deprecated
Major and minor version number from enum value.
auto isVersionES(GL::Version version) -> bool deprecated constexpr
Whether given version is OpenGL ES or WebGL.
auto meshIndexTypeSize(MeshIndexType type) -> UnsignedInt
Size of given mesh index type.
auto operator<<(Debug& debug, MeshPrimitive value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, MeshIndexType value) -> Debug&
Debug output operator.
auto pixelSize(PixelFormat format) -> UnsignedInt
Pixel size.
auto operator<<(Debug& debug, PixelFormat value) -> Debug&
Debug output operator.
auto isPixelFormatImplementationSpecific(PixelFormat format) -> bool constexpr
Whether a PixelFormat value wraps an implementation-specific identifier.
template<class T>
auto pixelFormatWrap(T implementationSpecific) -> PixelFormat constexpr
Wrap an implementation-specific pixel format identifier in PixelFormat.
template<class T = UnsignedInt>
auto pixelFormatUnwrap(PixelFormat format) -> T constexpr
Unwrap an implementation-specific pixel format identifier from PixelFormat.
auto operator<<(Debug& debug, CompressedPixelFormat value) -> Debug&
Debug output operator.
auto isCompressedPixelFormatImplementationSpecific(CompressedPixelFormat format) -> bool constexpr
Whether a CompressedPixelFormat value wraps an implementation-specific identifier.
template<class T>
auto compressedPixelFormatWrap(T implementationSpecific) -> CompressedPixelFormat constexpr
Wrap an implementation-specific pixel format identifier in a CompressedPixelFormat.
template<class T = UnsignedInt>
auto compressedPixelFormatUnwrap(CompressedPixelFormat format) -> T constexpr
Unwrap an implementation-specific pixel format identifier from a CompressedPixelFormat.
auto operator<<(Debug& debug, ResourceState value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, const ResourceKey& value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, SamplerFilter value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, SamplerMipmap value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, SamplerWrapping value) -> Debug&
Debug output operator.

Variables

GL::DefaultFramebuffer& defaultFramebuffer deprecated
Default framebuffer instance.
NoCreateT NoCreate constexpr
No creation tag.

Basic type definitions

See Type system for more information.

using UnsignedByte = std::uint8_t
Unsigned byte (8bit)
using Byte = std::int8_t
Signed byte (8bit)
using UnsignedShort = std::uint16_t
Unsigned short (16bit)
using Short = std::int16_t
Signed short (16bit)
using UnsignedInt = std::uint32_t
Unsigned int (32bit)
using Int = std::int32_t
Signed int (32bit)
using UnsignedLong = std::uint64_t
Unsigned long (64bit)
using Long = std::int64_t
Signed long (64bit)
using Float = float
Float (32bit)
using Half = Math::Half
Half (16bit)
using Vector2 = Math::Vector2<Float>
Two-component float vector.
using Vector3 = Math::Vector3<Float>
Three-component float vector.
using Vector4 = Math::Vector4<Float>
Four-component float vector.
using Vector2ui = Math::Vector2<UnsignedInt>
Two-component unsigned integer vector.
using Vector3ui = Math::Vector3<UnsignedInt>
Three-component unsigned integer vector.
using Vector4ui = Math::Vector4<UnsignedInt>
Four-component unsigned integer vector.
using Vector2i = Math::Vector2<Int>
Two-component signed integer vector.
using Vector3i = Math::Vector3<Int>
Three-component signed integer vector.
using Vector4i = Math::Vector4<Int>
Four-component signed integer vector.
using Color3 = Math::Color3<Float>
Three-component (RGB) float color.
using Color4 = Math::Color4<Float>
Four-component (RGBA) float color.
using Color3ub = Math::Color3<UnsignedByte>
Three-component (RGB) unsigned byte color.
using Color4ub = Math::Color4<UnsignedByte>
Four-component (RGBA) unsigned byte color.
using Matrix3 = Math::Matrix3<Float>
3x3 float transformation matrix
using Matrix4 = Math::Matrix4<Float>
4x4 float transformation matrix
using Matrix2x2 = Math::Matrix2x2<Float>
2x2 float matrix
using Matrix3x3 = Math::Matrix3x3<Float>
3x3 float matrix
using Matrix4x4 = Math::Matrix4x4<Float>
4x4 float matrix
using Matrix2x3 = Math::Matrix2x3<Float>
Float matrix with 2 columns and 3 rows.
using Matrix3x2 = Math::Matrix3x2<Float>
Float matrix with 3 columns and 2 rows.
using Matrix2x4 = Math::Matrix2x4<Float>
Float matrix with 2 columns and 4 rows.
using Matrix4x2 = Math::Matrix4x2<Float>
Float matrix with 4 columns and 2 rows.
using Matrix3x4 = Math::Matrix3x4<Float>
Float matrix with 3 columns and 4 rows.
using Matrix4x3 = Math::Matrix4x3<Float>
Float matrix with 4 columns and 3 rows.
using QuadraticBezier2D = Math::QuadraticBezier2D<Float>
Float two-dimensional quadratic Bézier curve.
using QuadraticBezier3D = Math::QuadraticBezier3D<Float>
Float three-dimensional quadratic Bézier curve.
using CubicBezier2D = Math::CubicBezier2D<Float>
Float two-dimensional cubic Bézier curve.
using CubicBezier3D = Math::CubicBezier3D<Float>
Float three-dimensional cubic Bézier curve.
using Complex = Math::Complex<Float>
Float complex number.
using DualComplex = Math::DualComplex<Float>
Float dual complex number.
using Quaternion = Math::Quaternion<Float>
Float quaternion.
using DualQuaternion = Math::DualQuaternion<Float>
Float dual quaternion.
using Constants = Math::Constants<Float>
Float constants.
using Deg = Math::Deg<Float>
Angle in float degrees.
using Rad = Math::Rad<Float>
Angle in float radians.
using Range1D = Math::Range1D<Float>
Float 1D range.
using Range2D = Math::Range2D<Float>
Float 2D range.
using Range3D = Math::Range3D<Float>
Float 3D range.
using Range1Di = Math::Range1D<Int>
Signed integer 1D range.
using Range2Di = Math::Range2D<Int>
Signed integer 2D range.
using Range3Di = Math::Range3D<Int>
Signed integer 3D range.
using Frustum = Math::Frustum<Float>
Float frustum.

Double-precision types

See Type system for more information.

using Double = double
Double (64bit)
using Vector2d = Math::Vector2<Double>
Two-component double vector.
using Vector3d = Math::Vector3<Double>
Three-component double vector.
using Vector4d = Math::Vector4<Double>
Four-component double vector.
using Matrix3d = Math::Matrix3<Double>
3x3 double transformation matrix
using Matrix4d = Math::Matrix4<Double>
4x4 double transformation matrix
using Matrix2x2d = Math::Matrix2x2<Double>
2x2 double matrix
using Matrix3x3d = Math::Matrix3x3<Double>
3x3 double matrix
using Matrix4x4d = Math::Matrix4x4<Double>
4x4 double matrix
using Matrix2x3d = Math::Matrix2x3<Double>
Double matrix with 2 columns and 3 rows.
using Matrix3x2d = Math::Matrix3x2<Double>
Double matrix with 3 columns and 2 rows.
using Matrix2x4d = Math::Matrix2x4<Double>
Double matrix with 2 columns and 4 rows.
using Matrix4x2d = Math::Matrix4x2<Double>
Double matrix with 4 columns and 2 rows.
using Matrix3x4d = Math::Matrix3x4<Double>
Double matrix with 3 columns and 4 rows.
using Matrix4x3d = Math::Matrix4x3<Double>
Double matrix with 4 columns and 3 rows.
using QuadraticBezier2Dd = Math::QuadraticBezier2D<Float>
Double two-dimensional quadratic Bézier curve.
using QuadraticBezier3Dd = Math::QuadraticBezier3D<Float>
Double three-dimensional quadratic Bézier curve.
using CubicBezier2Dd = Math::CubicBezier2D<Float>
Double two-dimensional cubic Bézier curve.
using CubicBezier3Dd = Math::CubicBezier3D<Float>
Double three-dimensional cubic Bézier curve.
using Complexd = Math::Complex<Double>
Double complex number.
using DualComplexd = Math::DualComplex<Double>
Double dual complex number.
using Quaterniond = Math::Quaternion<Double>
Double quaternion.
using DualQuaterniond = Math::DualQuaternion<Double>
Double dual quaternion.
using Constantsd = Math::Constants<Double>
Double constants.
using Degd = Math::Deg<Double>
Angle in double degrees.
using Radd = Math::Rad<Double>
Angle in double radians.
using Range1Dd = Math::Range1D<Double>
Double 1D range.
using Range2Dd = Math::Range2D<Double>
Double 2D range.
using Range3Dd = Math::Range3D<Double>
Double 3D range.
using Frustumd = Math::Frustum<Double>
Double frustum.

Enum documentation

enum class Magnum::MeshPrimitive: UnsignedInt

Mesh primitive type.

In case of OpenGL, corresponds to GL::MeshPrimitive and is convertible to it using GL::meshPrimitive(). See documentation of each value for more information about the mapping.

Enumerators
Points

Single points.

Corresponds to GL::MeshPrimitive::Points.

Lines

Each pair of vertices defines a single line, lines aren't connected together.

Corresponds to GL::MeshPrimitive::Lines.

LineLoop

Line strip, last and first vertex are connected together.

Corresponds to GL::MeshPrimitive::LineLoop.

LineStrip

First two vertices define first line segment, each following vertex defines another segment.

Corresponds to GL::MeshPrimitive::LineStrip.

Triangles

Each three vertices define one triangle.

Corresponds to GL::MeshPrimitive::Triangles.

TriangleStrip

First three vertices define first triangle, each following vertex defines another triangle.

Corresponds to GL::MeshPrimitive::TriangleStrip.

TriangleFan

First vertex is center, each following vertex is connected to previous and center vertex.

Corresponds to GL::MeshPrimitive::TriangleFan.

LinesAdjacency

Lines with adjacency information.

LineStripAdjacency

Line strip with adjacency information.

TrianglesAdjacency

Triangles with adjacency information.

TriangleStripAdjacency

Triangle strip with adjacency information.

Patches

Patches.

enum class Magnum::MeshIndexType: UnsignedInt

Mesh primitive type.

In case of OpenGL, corresponds to GL::MeshIndexType and is convertible to it using GL::meshIndexType(). See documentation of each value for more information about the mapping.

Enumerators
UnsignedByte

Unsigned byte

Corresponds to GL::MeshIndexType::UnsignedByte.

UnsignedShort

Unsigned short

Corresponds to GL::MeshIndexType::UnsignedShort.

UnsignedInt

Unsigned int

Corresponds to GL::MeshIndexType::UnsignedInt.

enum class Magnum::PixelFormat: UnsignedInt

Format of pixel data.

Can act also as a wrapper for implementation-specific pixel format values using pixelFormatWrap() and pixelFormatUnwrap(). Distinction between generic and implementation-specific formats can be done using isPixelFormatImplementationSpecific().

In case of OpenGL, corresponds to GL::PixelFormat and GL::PixelType and is convertible to them using GL::pixelFormat() and GL::pixelType(). See documentation of each value for more information about the mapping. Note that not every format is available on all targets, use GL::hasPixelFormat() to check for its presence.

Enumerators
R8Unorm

Red component, normalized unsigned byte.

Corresponds to GL::PixelFormat::Red and GL::PixelType::UnsignedByte, GL::TextureFormat::R8.

RG8Unorm

Red and green component, normalized unsigned byte.

Corresponds to GL::PixelFormat::RG and GL::PixelType::UnsignedByte, GL::TextureFormat::RG8.

RGB8Unorm

RGB, normalized unsigned byte.

Corresponds to GL::PixelFormat::RGB and GL::PixelType::UnsignedByte, GL::TextureFormat::RGB8.

RGBA8Unorm

RGBA, normalized unsigned byte.

Corresponds to GL::PixelFormat::RGBA and GL::PixelType::UnsignedByte, GL::TextureFormat::RGBA8.

R8Snorm

Red component, normalized signed byte.

Corresponds to GL::PixelFormat::Red and GL::PixelType::Byte, GL::TextureFormat::R8Snorm.

RG8Snorm

Red and green component, normalized signed byte.

Corresponds to GL::PixelFormat::RG and GL::PixelType::Byte, GL::TextureFormat::RG8Snorm.

RGB8Snorm

RGB, normalized signed byte.

Corresponds to GL::PixelFormat::RGB and GL::PixelType::Byte, GL::TextureFormat::RGB8Snorm.

RGBA8Snorm

RGBA, normalized signed byte.

Corresponds to GL::PixelFormat::RGBA and GL::PixelType::Byte, GL::TextureFormat::RGBA8Snorm.

R8UI

Red component, integral unsigned byte.

Corresponds to GL::PixelFormat::RedInteger and GL::PixelType::UnsignedByte, GL::TextureFormat::R8UI.

RG8UI

Red and green component, integral unsigned byte.

Corresponds to GL::PixelFormat::RGInteger and GL::PixelType::UnsignedByte, GL::TextureFormat::RG8UI.

RGB8UI

RGB, integral unsigned byte.

Corresponds to GL::PixelFormat::RGBInteger and GL::PixelType::UnsignedByte, GL::TextureFormat::RGB8UI.

RGBA8UI

RGBA, integral unsigned byte.

Corresponds to GL::PixelFormat::RGBAInteger and GL::PixelType::UnsignedByte, GL::TextureFormat::RGBA8UI.

R8I

Red component, integral signed byte.

Corresponds to GL::PixelFormat::RedInteger and GL::PixelType::Byte, GL::TextureFormat::R8I.

RG8I

Red and green component, integral signed byte.

Corresponds to GL::PixelFormat::RGInteger and GL::PixelType::Byte, GL::TextureFormat::RG8I.

RGB8I

RGB, integral signed byte.

Corresponds to GL::PixelFormat::RGBInteger and GL::PixelType::Byte, GL::TextureFormat::RGB8I.

RGBA8I

RGBA, integral signed byte.

Corresponds to GL::PixelFormat::RGBAInteger and GL::PixelType::Byte, GL::TextureFormat::RGBA8I.

R16Unorm

Red component, normalized unsigned short.

Corresponds to GL::PixelFormat::Red and GL::PixelType::UnsignedShort, GL::TextureFormat::R16.

RG16Unorm

Red and green component, normalized unsigned short.

Corresponds to GL::PixelFormat::RG and GL::PixelType::UnsignedShort, GL::TextureFormat::RG16.

RGB16Unorm

RGB, normalized unsigned short.

Corresponds to GL::PixelFormat::RGB and GL::PixelType::UnsignedShort, GL::TextureFormat::RGB16.

RGBA16Unorm

RGBA, normalized unsigned short.

Corresponds to GL::PixelFormat::RGBA and GL::PixelType::UnsignedShort, GL::TextureFormat::RGBA16.

R16Snorm

Red component, normalized signed short.

Corresponds to GL::PixelFormat::Red and GL::PixelType::Short, GL::TextureFormat::R16Snorm.

RG16Snorm

Red and green component, normalized signed short.

Corresponds to GL::PixelFormat::RG and GL::PixelType::Short, GL::TextureFormat::RG16Snorm.

RGB16Snorm

RGB, normalized signed short.

Corresponds to GL::PixelFormat::RGB and GL::PixelType::Short, GL::TextureFormat::RGB16Snorm.

RGBA16Snorm

RGBA, normalized signed short.

Corresponds to GL::PixelFormat::RGBA and GL::PixelType::Short, GL::TextureFormat::RGBA16Snorm.

R16UI

Red component, integral unsigned short.

Corresponds to GL::PixelFormat::RedInteger and GL::PixelType::UnsignedShort, GL::TextureFormat::R16UI.

RG16UI

Red and green component, integral unsigned short.

Corresponds to GL::PixelFormat::RGInteger and GL::PixelType::UnsignedShort, GL::TextureFormat::RG16UI.

RGB16UI

RGB, integral unsigned short.

Corresponds to GL::PixelFormat::RGBInteger and GL::PixelType::UnsignedShort, GL::TextureFormat::RGB16UI.

RGBA16UI

RGBA, integral unsigned short.

Corresponds to GL::PixelFormat::RGBAInteger and GL::PixelType::UnsignedShort, GL::TextureFormat::RGBA16UI.

R16I

Red component, integral signed short.

Corresponds to GL::PixelFormat::RedInteger and GL::PixelType::Short, GL::TextureFormat::R16I.

RG16I

Red and green component, integral signed short.

Corresponds to GL::PixelFormat::RGInteger and GL::PixelType::Short, GL::TextureFormat::RG16I.

RGB16I

RGB, integral signed short.

Corresponds to GL::PixelFormat::RGBInteger and GL::PixelType::Short, GL::TextureFormat::RGB16I.

RGBA16I

RGBA, integral signed short.

Corresponds to GL::PixelFormat::RGBAInteger and GL::PixelType::Short, GL::TextureFormat::RGBA16I.

R32UI

Red component, integral unsigned int.

Corresponds to GL::PixelFormat::RedInteger and GL::PixelType::UnsignedInt, GL::TextureFormat::R32UI.

RG32UI

Red and green component, integral unsigned int.

Corresponds to GL::PixelFormat::RGInteger and GL::PixelType::UnsignedInt, GL::TextureFormat::RG32UI.

RGB32UI

RGB, integral unsigned int.

Corresponds to GL::PixelFormat::RGBInteger and GL::PixelType::UnsignedInt, GL::TextureFormat::RGB32UI.

RGBA32UI

RGBA, integral unsigned int.

Corresponds to GL::PixelFormat::RGBAInteger and GL::PixelType::UnsignedInt, GL::TextureFormat::RGBA32UI.

R32I

Red component, integral signed int.

Corresponds to GL::PixelFormat::RedInteger and GL::PixelType::Int, GL::TextureFormat::R32I.

RG32I

Red and green component, integral signed int.

Corresponds to GL::PixelFormat::RGInteger and GL::PixelType::Int, GL::TextureFormat::RG32I.

RGB32I

RGB, integral signed int.

Corresponds to GL::PixelFormat::RGBInteger and GL::PixelType::Int, GL::TextureFormat::RGB32I.

RGBA32I

RGBA, integral signed int.

Corresponds to GL::PixelFormat::RGBAInteger and GL::PixelType::Int, GL::TextureFormat::RGBA32I.

R16F

Red component, half float.

Corresponds to GL::PixelFormat::Red and GL::PixelType::HalfFloat, GL::TextureFormat::R16F.

RG16F

Red and green component, half float.

Corresponds to GL::PixelFormat::RG and GL::PixelType::HalfFloat, GL::TextureFormat::RG16F.

RGB16F

RGB, half float.

Corresponds to GL::PixelFormat::RGB and GL::PixelType::HalfFloat, GL::TextureFormat::RGB16F.

RGBA16F

RGBA, half float.

Corresponds to GL::PixelFormat::RGBA and GL::PixelType::HalfFloat, GL::TextureFormat::RGBA16F.

R32F

Red component, half float.

Corresponds to GL::PixelFormat::Red and GL::PixelType::Float, GL::TextureFormat::R32F.

RG32F

Red and green component, half float.

Corresponds to GL::PixelFormat::RG and GL::PixelType::Float, GL::TextureFormat::RG32F.

RGB32F

RGB, half float.

Corresponds to GL::PixelFormat::RGB and GL::PixelType::Float, GL::TextureFormat::RGB32F.

RGBA32F

RGBA, half float.

Corresponds to GL::PixelFormat::RGBA and GL::PixelType::Float, GL::TextureFormat::RGBA32F.

Red

Floating-point red channel.

Green

Floating-point green channel.

Blue

Floating-point blue channel.

Luminance

Floating-point luminance channel. The value is used for all RGB channels.

RG

Floating-point red and green channel.

LuminanceAlpha

Floating-point luminance and alpha channel. First value is used for all RGB channels, second value is used for alpha channel.

RGB

Floating-point RGB.

RGBA

Floating-point RGBA.

BGR

Floating-point BGR.

BGRA

Floating-point BGRA.

SRGB

Floating-point sRGB.

SRGBAlpha

Floating-point sRGB + alpha.

RedInteger

Integer red channel.

GreenInteger

Integer green channel.

BlueInteger

Integer blue channel.

RGInteger

Integer red and green channel.

RGBInteger

Integer RGB.

RGBAInteger

Integer RGBA.

BGRInteger

Integer BGR.

BGRAInteger

Integer BGRA.

DepthComponent

Depth component.

StencilIndex

Stencil index.

DepthStencil

Depth and stencil.

enum class Magnum::CompressedPixelFormat: UnsignedInt

Format of compressed pixel data.

Can act also as a wrapper for implementation-specific pixel format values using compressedPixelFormatWrap() and compressedPixelFormatUnwrap(). Distinction between generic and implementation-specific formats can be done using isCompressedPixelFormatImplementationSpecific().

In case of OpenGL, corresponds to GL::CompressedPixelFormat and is convertible to it using GL::compressedPixelFormat(). See documentation of each value for more information about the mapping. Note that not every format is available on all targets, use GL::hasCompressedPixelFormat() to check for its presence.

Enumerators
Bc1RGBUnorm

S3TC BC1 compressed RGB (DXT1).

Corresponds to GL::CompressedPixelFormat::RGBS3tcDxt1, GL::TextureFormat::RGBS3tcDxt1.

Bc1RGBAUnorm

S3TC BC1 compressed RGBA (DXT1).

Corresponds to GL::CompressedPixelFormat::RGBAS3tcDxt1, GL::TextureFormat::RGBAS3tcDxt1.

Bc2RGBAUnorm

S3TC BC2 compressed RGBA (DXT3).

Corresponds to GL::CompressedPixelFormat::RGBAS3tcDxt3, GL::TextureFormat::RGBAS3tcDxt3.

Bc3RGBAUnorm

S3TC BC3 compressed RGBA (DXT5).

Corresponds to GL::CompressedPixelFormat::RGBAS3tcDxt5, GL::TextureFormat::RGBAS3tcDxt5.

Red

Compressed red channel, normalized unsigned.

RG

Compressed red and green channel, normalized unsigned.

RGB

Compressed RGB, normalized unsigned.

RGBA

Compressed RGBA, normalized unsigned.

RedRgtc1

RGTC compressed red channel, normalized unsigned.

RGRgtc2

RGTC compressed red and green channel, normalized unsigned.

SignedRedRgtc1

RGTC compressed red channel, normalized signed.

SignedRGRgtc2

RGTC compressed red and green channel, normalized signed.

RGBBptcUnsignedFloat

BPTC compressed RGB, unsigned float.

RGBBptcSignedFloat

BPTC compressed RGB, signed float.

RGBABptcUnorm

BPTC compressed RGBA, normalized unsigned.

SRGBAlphaBptcUnorm

BPTC compressed sRGBA, normalized unsigned.

RGB8Etc2

ETC2 compressed RGB, normalized unsigned.

SRGB8Etc2

ETC2 compressed sRGB, normalized unsigned.

RGB8PunchthroughAlpha1Etc2

ETC2 compressed RGB with punchthrough (single-bit) alpha, normalized unsigned.

SRGB8PunchthroughAlpha1Etc2

ETC2 compressed sRGB with punchthrough (single-bit) alpha, normalized unsigned.

RGBA8Etc2Eac

ETC2/EAC compressed RGBA, normalized unsigned.

SRGB8Alpha8Etc2Eac

ETC2/EAC compressed sRGB with alpha, normalized unsigned.

R11Eac

EAC compressed red channel, normalized unsigned.

SignedR11Eac

EAC compressed red channel, normalized signed.

RG11Eac

EAC compressed red and green channel, normalized unsigned.

SignedRG11Eac

EAC compressed red and green channel, normalized signed.

RGBS3tcDxt1

S3TC DXT1 compressed RGB.

RGBAS3tcDxt1

S3TC DXT1 compressed RGBA.

RGBAS3tcDxt3

S3TC DXT3 compressed RGBA.

RGBAS3tcDxt5

S3TC DXT5 compressed RGBA.

RGBAAstc4x4

ASTC compressed RGBA with 4x4 blocks.

SRGB8Alpha8Astc4x4

ASTC compressed sRGB with alpha with 4x4 blocks.

RGBAAstc5x4

ASTC compressed RGBA with 5x4 blocks.

SRGB8Alpha8Astc5x4

ASTC compressed sRGB with alpha with 5x4 blocks.

RGBAAstc5x5

ASTC compressed RGBA with 5x5 blocks.

SRGB8Alpha8Astc5x5

ASTC compressed sRGB with alpha with 5x5 blocks.

RGBAAstc6x5

ASTC compressed RGBA with 6x5 blocks.

SRGB8Alpha8Astc6x5

ASTC compressed sRGB with alpha with 6x5 blocks.

RGBAAstc6x6

ASTC compressed RGBA with 6x6 blocks.

SRGB8Alpha8Astc6x6

ASTC compressed sRGB with alpha with 6x6 blocks.

RGBAAstc8x5

ASTC compressed RGBA with 8x5 blocks.

SRGB8Alpha8Astc8x5

ASTC compressed sRGB with alpha with 8x5 blocks.

RGBAAstc8x6

ASTC compressed RGBA with 8x6 blocks.

SRGB8Alpha8Astc8x6

ASTC compressed sRGB with alpha with 8x6 blocks.

RGBAAstc8x8

ASTC compressed RGBA with 8x8 blocks.

SRGB8Alpha8Astc8x8

ASTC compressed sRGB with alpha with 8x8 blocks.

RGBAAstc10x5

ASTC compressed RGBA with 10x5 blocks.

SRGB8Alpha8Astc10x5

ASTC compressed sRGB with alpha with 10x5 blocks.

RGBAAstc10x6

ASTC compressed RGBA with 10x6 blocks.

SRGB8Alpha8Astc10x6

ASTC compressed sRGB with alpha with 10x6 blocks.

RGBAAstc10x8

ASTC compressed RGBA with 10x8 blocks.

SRGB8Alpha8Astc10x8

ASTC compressed sRGB with alpha with 10x8 blocks.

RGBAAstc10x10

ASTC compressed RGBA with 10x10 blocks.

SRGB8Alpha8Astc10x10

ASTC compressed sRGB with alpha with 10x10 blocks.

RGBAAstc12x10

ASTC compressed RGBA with 12x10 blocks.

SRGB8Alpha8Astc12x10

ASTC compressed sRGB with alpha with 12x10 blocks.

RGBAAstc12x12

ASTC compressed RGBA with 12x12 blocks.

SRGB8Alpha8Astc12x12

ASTC compressed sRGB with alpha with 12x12 blocks.

enum class Magnum::ResourceState: UnsignedByte

Resource state.

Enumerators
NotLoaded

The resource is not yet loaded (and no fallback is available).

NotLoadedFallback

The resource is not yet loaded and fallback resource is used instead.

Loading

The resource is currently loading (and no fallback is available).

LoadingFallback

The resource is currently loading and fallback resource is used instead.

NotFound

The resource was not found (and no fallback is available).

NotFoundFallback

The resource was not found and fallback resource is used instead.

Mutable

The resource is loaded, but can be changed by the manager at any time.

Final

The resource is loaded and won't be changed by the manager anymore.

enum class Magnum::ResourceDataState: UnsignedByte

Resource data state.

Enumerators
Loading

The resource is currently loading. Parameter data in ResourceManager::set() should be set to nullptr.

NotFound

The resource was not found. Parameter data in ResourceManager::set() should be set to nullptr.

Mutable

The resource can be changed by the manager in the future. This is slower, as Resource needs to ask the manager for new version every time the data are accessed, but allows changing the data for e.g. debugging purposes.

Final

The resource cannot be changed by the manager in the future. This is faster, as Resource instances will ask for the data only one time, thus suitable for production code.

enum class Magnum::ResourcePolicy: UnsignedByte

Resource policy.

Enumerators
Resident

The resource will stay resident for whole lifetime of resource manager.

Manual

The resource will be unloaded when manually calling ResourceManager::free() if nothing references it.

ReferenceCounted

The resource will be unloaded when last reference to it is gone.

enum class Magnum::SamplerFilter: UnsignedInt

Texture sampler filtering.

In case of OpenGL, corresponds to GL::SamplerFilter and is convertible to it using GL::samplerFilter(). See documentation of each value for more information about the mapping.

Enumerators
Nearest

Nearest neighbor filtering.

Corresponds to GL::SamplerFilter::Nearest.

Linear

Linear interpolation filtering.

Corresponds to GL::SamplerFilter::Linear.

enum class Magnum::SamplerMipmap: UnsignedInt

Texture sampler mip level selection.

In case of OpenGL, corresponds to GL::SamplerMipmap and is convertible to it using GL::samplerMipmap(). See documentation of each value for more information about the mapping.

Enumerators
Base

Select base mip level

Corresponds to GL::SamplerMipmap::Base.

Nearest

Select nearest mip level.

Corresponds to GL::SamplerMipmap::Nearest.

Linear

Linear interpolation of nearest mip levels.

Corresponds to GL::SamplerMipmap::Linear.

enum class Magnum::SamplerWrapping: UnsignedInt

Texture sampler wrapping.

In case of OpenGL, corresponds to GL::SamplerWrapping and is convertible to it using GL::samplerWrapping(). See documentation of each value for more information about the mapping. Note that not every mode is available on all targets, use GL::hasSamplerWrapping() to check for its presence.

Enumerators
Repeat

Repeat texture.

Corresponds to GL::SamplerWrapping::Repeat.

MirroredRepeat

Repeat mirrored texture.

Corresponds to GL::SamplerWrapping::MirroredRepeat.

ClampToEdge

Clamp to edge. Coordinates out of the range will be clamped to first / last column / row in given direction.

Corresponds to GL::SamplerWrapping::ClampToEdge.

ClampToBorder

Clamp to border color. Coordinates out of range will be clamped to border color.

Corresponds to GL::SamplerWrapping::ClampToBorder.

MirrorClampToEdge

Mirror the texture once in negative coordinates and clamp to edge after that.

Corresponds to GL::SamplerWrapping::MirrorClampToEdge.

Typedef documentation

template<UnsignedInt dimensions, class T>
using Magnum::VectorTypeFor = typename DimensionTraits<dimensions, T>::VectorType

Vector type for given dimension count and type.

Convenience alternative to typename DimensionTraits<dimensions, T>::VectorType. See DimensionTraits::VectorType for more information.

template<UnsignedInt dimensions, class T>
using Magnum::RangeTypeFor = typename DimensionTraits<dimensions, T>::RangeType

Range type for given dimension count and type.

Convenience alternative to typename DimensionTraits<dimensions, T>::RangeType. See DimensionTraits::RangeType for more information.

template<UnsignedInt dimensions, class T>
using Magnum::MatrixTypeFor = typename DimensionTraits<dimensions, T>::MatrixType

Matrix type for given dimension count and type.

Convenience alternative to typename DimensionTraits<dimensions, T>::MatrixType. See DimensionTraits::MatrixType for more information.

typedef Magnum::GL::FramebufferClear Magnum::FramebufferClear

Mask for framebuffer clearing.

typedef Magnum::GL::FramebufferBlit Magnum::FramebufferBlit

Mask for framebuffer blitting.

typedef Magnum::GL::FramebufferBlitMask Magnum::FramebufferBlitMask

Mask for framebuffer blitting.

typedef Magnum::GL::FramebufferBlitFilter Magnum::FramebufferBlitFilter

Framebuffer blit filtering.

typedef Magnum::GL::FramebufferTarget Magnum::FramebufferTarget

Framebuffer target.

typedef Magnum::GL::AbstractFramebuffer Magnum::AbstractFramebuffer

Base for default and named framebuffers.

typedef Magnum::GL::ObjectFlag Magnum::ObjectFlag

Object wrapping flag.

typedef Magnum::GL::ObjectFlags Magnum::ObjectFlags

Object wrapping flags.

typedef Magnum::GL::AbstractObject Magnum::AbstractObject

Base for all OpenGL objects.

typedef Magnum::GL::AbstractQuery Magnum::AbstractQuery

Base class for queries.

typedef Magnum::GL::AbstractShaderProgram Magnum::AbstractShaderProgram

Base for shader program implementations.

typedef Magnum::GL::AbstractTexture Magnum::AbstractTexture

Base for textures.

template<UnsignedInt location, class T>
using Magnum::Attribute = Magnum::GL::Attribute<location, T>

Base class for attribute location and type.

typedef Magnum::GL::DynamicAttribute Magnum::DynamicAttribute

Base class for dynamic attribute location and type.

typedef Magnum::GL::BufferUsage Magnum::BufferUsage

Buffer usage.

typedef Magnum::GL::Buffer Magnum::Buffer

Buffer.

template<UnsignedInt dimensions>
using Magnum::BufferImage = Magnum::GL::BufferImage<dimensions>

Buffer image.

typedef Magnum::GL::BufferImage1D Magnum::BufferImage1D

One-dimensional buffer image.

typedef Magnum::GL::BufferImage2D Magnum::BufferImage2D

Two-dimensional buffer image.

typedef Magnum::GL::BufferImage3D Magnum::BufferImage3D

Three-dimensional buffer image.

template<UnsignedInt dimensions>
using Magnum::CompressedBufferImage = Magnum::GL::BufferImage<dimensions>

Compressed buffer image.

typedef Magnum::GL::CompressedBufferImage1D Magnum::CompressedBufferImage1D

One-dimensional compressed buffer image.

typedef Magnum::GL::CompressedBufferImage2D Magnum::CompressedBufferImage2D

Two-dimensional compressed buffer image.

typedef Magnum::GL::CompressedBufferImage3D Magnum::CompressedBufferImage3D

Three-dimensional compressed buffer image.

typedef Magnum::GL::BufferTexture Magnum::BufferTexture

Buffer texture.

typedef Magnum::GL::BufferTextureFormat Magnum::BufferTextureFormat

Internal buffer texture format.

typedef Magnum::GL::Extension Magnum::Extension

Run-time information about OpenGL extension.

typedef Magnum::GL::Context Magnum::Context

Magnum context.

typedef Magnum::GL::CubeMapCoordinate Magnum::CubeMapCoordinate

Cube map coordinate.

typedef Magnum::GL::CubeMapTexture Magnum::CubeMapTexture

Cube map texture.

typedef Magnum::GL::CubeMapTextureArray Magnum::CubeMapTextureArray

Cube map texture array.

typedef Magnum::GL::DebugOutput Magnum::DebugOutput

Debug output.

typedef Magnum::GL::DebugMessage Magnum::DebugMessage

Debug message.

typedef Magnum::GL::DebugGroup Magnum::DebugGroup

Debug group.

typedef Magnum::GL::DefaultFramebuffer Magnum::DefaultFramebuffer

Default framebuffer.

typedef Magnum::GL::Framebuffer Magnum::Framebuffer

Framebuffer.

typedef Magnum::GL::ImageAccess Magnum::ImageAccess

Image access.

typedef Magnum::GL::ImageFormat Magnum::ImageFormat

Image format.

typedef Magnum::GL::Mesh Magnum::Mesh

Mesh.

typedef Magnum::GL::MeshView Magnum::MeshView

Mesh view.

template<UnsignedInt dimensions>
using Magnum::MultisampleTexture = Magnum::GL::MultisampleTexture<dimensions>

Mulitsample texture.

typedef Magnum::GL::MultisampleTexture2D Magnum::MultisampleTexture2D

Two-dimensional multisample texture.

typedef Magnum::GL::MultisampleTexture2DArray Magnum::MultisampleTexture2DArray

Two-dimensional multisample texture array.

typedef Magnum::GL::OpenGLTester Magnum::OpenGLTester

Base class for OpenGL tests and benchmarks.

typedef Magnum::GL::PixelType Magnum::PixelType

Type of pixel data.

typedef Magnum::GL::PrimitiveQuery Magnum::PrimitiveQuery

Query for primitives.

typedef Magnum::GL::RectangleTexture Magnum::RectangleTexture

Rectangle texture.

typedef Magnum::GL::Renderbuffer Magnum::Renderbuffer

Renderbuffer.

typedef Magnum::GL::RenderbufferFormat Magnum::RenderbufferFormat

Internal renderbuffer format.

typedef Magnum::GL::Renderer Magnum::Renderer

Global renderer configuration.

typedef Magnum::GL::SampleQuery Magnum::SampleQuery

Query for samples.

typedef Magnum::GL::Shader Magnum::Shader

Shader.

template<UnsignedInt dimensions>
using Magnum::Texture = Magnum::GL::Texture<dimensions>

Texture.

typedef Magnum::GL::Texture1D Magnum::Texture1D

One-dimensional texture.

typedef Magnum::GL::Texture2D Magnum::Texture2D

Two-dimensional texture.

typedef Magnum::GL::Texture3D Magnum::Texture3D

Three-dimensional texture.

template<UnsignedInt dimensions>
using Magnum::TextureArray = Magnum::GL::TextureArray<dimensions>

Texture array.

typedef Magnum::GL::Texture1DArray Magnum::Texture1DArray

One-dimensional texture array.

typedef Magnum::GL::Texture2DArray Magnum::Texture2DArray

Two-dimensional texture array.

typedef Magnum::GL::TextureFormat Magnum::TextureFormat

Internal texture format.

typedef Magnum::GL::TimeQuery Magnum::TimeQuery

Query for elapsed time.

typedef Magnum::GL::TransformFeedback Magnum::TransformFeedback

Transform feedback.

typedef Magnum::GL::Version Magnum::Version

OpenGL version.

typedef std::uint32_t Magnum::UnsignedInt

Unsigned int (32bit)

Equivalent to GLSL uint.

typedef std::int32_t Magnum::Int

Signed int (32bit)

Equivalent to GLSL int.

typedef std::uint64_t Magnum::UnsignedLong

Unsigned long (64bit)

typedef std::int64_t Magnum::Long

Signed long (64bit)

typedef float Magnum::Float

Float (32bit)

Equivalent to GLSL float.

typedef Math::Vector2<Float> Magnum::Vector2

Two-component float vector.

Equivalent to GLSL vec2.

typedef Math::Vector3<Float> Magnum::Vector3

Three-component float vector.

Equivalent to GLSL vec3.

typedef Math::Vector4<Float> Magnum::Vector4

Four-component float vector.

Equivalent to GLSL vec4.

typedef Math::Vector2<UnsignedInt> Magnum::Vector2ui

Two-component unsigned integer vector.

Equivalent to GLSL uvec2.

typedef Math::Vector3<UnsignedInt> Magnum::Vector3ui

Three-component unsigned integer vector.

Equivalent to GLSL uvec3.

typedef Math::Vector4<UnsignedInt> Magnum::Vector4ui

Four-component unsigned integer vector.

Equivalent to GLSL uvec4.

typedef Math::Vector2<Int> Magnum::Vector2i

Two-component signed integer vector.

Equivalent to GLSL ivec2.

typedef Math::Vector3<Int> Magnum::Vector3i

Three-component signed integer vector.

Equivalent to GLSL ivec3.

typedef Math::Vector4<Int> Magnum::Vector4i

Four-component signed integer vector.

Equivalent to GLSL ivec4.

typedef Math::Color3<UnsignedByte> Magnum::Color3ub

Three-component (RGB) unsigned byte color.

typedef Math::Color4<UnsignedByte> Magnum::Color4ub

Four-component (RGBA) unsigned byte color.

typedef Math::Matrix3<Float> Magnum::Matrix3

3x3 float transformation matrix

Equivalent to GLSL mat3.

typedef Math::Matrix4<Float> Magnum::Matrix4

4x4 float transformation matrix

Equivalent to GLSL mat4.

typedef Math::Matrix2x2<Float> Magnum::Matrix2x2

2x2 float matrix

Equivalent to GLSL mat2x2.

typedef Math::Matrix3x3<Float> Magnum::Matrix3x3

3x3 float matrix

Equivalent to GLSL mat3x3. Note that this is different from Matrix3, which contains additional functions for transformations in 2D.

typedef Math::Matrix4x4<Float> Magnum::Matrix4x4

4x4 float matrix

Equivalent to GLSL mat4x4. Note that this is different from Matrix4, which contains additional functions for transformations in 3D.

typedef Math::Matrix2x3<Float> Magnum::Matrix2x3

Float matrix with 2 columns and 3 rows.

Equivalent to GLSL mat2x3.

typedef Math::Matrix3x2<Float> Magnum::Matrix3x2

Float matrix with 3 columns and 2 rows.

Equivalent to GLSL mat3x2.

typedef Math::Matrix2x4<Float> Magnum::Matrix2x4

Float matrix with 2 columns and 4 rows.

Equivalent to GLSL mat2x4.

typedef Math::Matrix4x2<Float> Magnum::Matrix4x2

Float matrix with 4 columns and 2 rows.

Equivalent to GLSL mat2x4.

typedef Math::Matrix3x4<Float> Magnum::Matrix3x4

Float matrix with 3 columns and 4 rows.

Equivalent to GLSL mat3x4.

typedef Math::Matrix4x3<Float> Magnum::Matrix4x3

Float matrix with 4 columns and 3 rows.

Equivalent to GLSL mat4x3.

typedef double Magnum::Double

Double (64bit)

Equivalent to GLSL double.

typedef Math::Vector2<Double> Magnum::Vector2d

Two-component double vector.

Equivalent to GLSL dvec2.

typedef Math::Vector3<Double> Magnum::Vector3d

Three-component double vector.

Equivalent to GLSL dvec3.

typedef Math::Vector4<Double> Magnum::Vector4d

Four-component double vector.

Equivalent to GLSL dvec4.

typedef Math::Matrix3<Double> Magnum::Matrix3d

3x3 double transformation matrix

Equivalent to GLSL dmat3.

typedef Math::Matrix4<Double> Magnum::Matrix4d

4x4 double transformation matrix

Equivalent to GLSL dmat4.

typedef Math::Matrix2x2<Double> Magnum::Matrix2x2d

2x2 double matrix

Equivalent to GLSL dmat2x2.

typedef Math::Matrix3x3<Double> Magnum::Matrix3x3d

3x3 double matrix

Equivalent to GLSL dmat3x3. Note that this is different from Matrix3d, which contains additional functions for transformations in 2D.

typedef Math::Matrix4x4<Double> Magnum::Matrix4x4d

4x4 double matrix

Equivalent to GLSL dmat4x4. Note that this is different from Matrix4d, which contains additional functions for transformations in 3D.

typedef Math::Matrix2x3<Double> Magnum::Matrix2x3d

Double matrix with 2 columns and 3 rows.

Equivalent to GLSL dmat2x3.

typedef Math::Matrix3x2<Double> Magnum::Matrix3x2d

Double matrix with 3 columns and 2 rows.

Equivalent to GLSL dmat3x2.

typedef Math::Matrix2x4<Double> Magnum::Matrix2x4d

Double matrix with 2 columns and 4 rows.

Equivalent to GLSL dmat2x4.

typedef Math::Matrix4x2<Double> Magnum::Matrix4x2d

Double matrix with 4 columns and 2 rows.

Equivalent to GLSL dmat4x2.

typedef Math::Matrix3x4<Double> Magnum::Matrix3x4d

Double matrix with 3 columns and 4 rows.

Equivalent to GLSL dmat3x4.

typedef Math::Matrix4x3<Double> Magnum::Matrix4x3d

Double matrix with 4 columns and 3 rows.

Equivalent to GLSL dmat4x3.

Function documentation

template<UnsignedInt dimensions, class T>
Debug& Magnum::operator<<(Debug& debug, const Array<dimensions, T>& value)

Debug output operator.

template<class T>
Debug& Magnum::operator<<(Debug& debug, const Array1D<T>& value)

Debug output operator.

template<class T>
Debug& Magnum::operator<<(Debug& debug, const Array2D<T>& value)

Debug output operator.

template<class T>
Debug& Magnum::operator<<(Debug& debug, const Array3D<T>& value)

Debug output operator.

GL::Version Magnum::version(Int major, Int minor) constexpr

Enum value from major and minor version number.

Enum value from major and minor version number.

std::pair<Int, Int> Magnum::version(GL::Version version)

Major and minor version number from enum value.

Major and minor version number from enum value.

bool Magnum::isVersionES(GL::Version version) constexpr

Whether given version is OpenGL ES or WebGL.

Whether given version is OpenGL ES or WebGL.

Always true on OpenGL ES and WebGL build.

Debug& Magnum::operator<<(Debug& debug, MeshPrimitive value)

Debug output operator.

Debug& Magnum::operator<<(Debug& debug, MeshIndexType value)

Debug output operator.

UnsignedInt Magnum::pixelSize(PixelFormat format)

Pixel size.

Expects that the pixel format is not implementation-specific.

Debug& Magnum::operator<<(Debug& debug, PixelFormat value)

Debug output operator.

bool Magnum::isPixelFormatImplementationSpecific(PixelFormat format) constexpr

Whether a PixelFormat value wraps an implementation-specific identifier.

Returns true if value of format has its highest bit set, false otherwise. Use pixelFormatWrap() and pixelFormatUnwrap() to wrap/unwrap an implementation-specific indentifier to/from PixelFormat.

template<class T>
PixelFormat Magnum::pixelFormatWrap(T implementationSpecific) constexpr

Wrap an implementation-specific pixel format identifier in PixelFormat.

Sets the highest bit on format to mark it as implementation-specific. Expects that format fits into the remaining bits. Use pixelFormatUnwrap() for the inverse operation.

template<class T = UnsignedInt>
T Magnum::pixelFormatUnwrap(PixelFormat format) constexpr

Unwrap an implementation-specific pixel format identifier from PixelFormat.

Unsets the highest bit from format to extract the implementation-specific value. Expects that format has it set. Use pixelFormatWrap() for the inverse operation.

Debug& Magnum::operator<<(Debug& debug, CompressedPixelFormat value)

Debug output operator.

bool Magnum::isCompressedPixelFormatImplementationSpecific(CompressedPixelFormat format) constexpr

Whether a CompressedPixelFormat value wraps an implementation-specific identifier.

Returns true if value of format has its highest bit set, false otherwise. Use compressedPixelFormatWrap() and compressedPixelFormatUnwrap() to wrap/unwrap an implementation-specific indentifier to/from CompressedPixelFormat.

template<class T>
CompressedPixelFormat Magnum::compressedPixelFormatWrap(T implementationSpecific) constexpr

Wrap an implementation-specific pixel format identifier in a CompressedPixelFormat.

Sets the highest bit on format to mark it as implementation-specific. Expects that format fits into the remaining bits. Use compressedPixelFormatUnwrap() for the inverse operation.

template<class T = UnsignedInt>
T Magnum::compressedPixelFormatUnwrap(CompressedPixelFormat format) constexpr

Unwrap an implementation-specific pixel format identifier from a CompressedPixelFormat.

Unsets the highest bit from format to extract the implementation-specific value. Expects that format has it set. Use compressedPixelFormatWrap() for the inverse operation.

Debug& Magnum::operator<<(Debug& debug, ResourceState value)

Debug output operator.

Debug& Magnum::operator<<(Debug& debug, const ResourceKey& value)

Debug output operator.

Debug& Magnum::operator<<(Debug& debug, SamplerFilter value)

Debug output operator.

Debug& Magnum::operator<<(Debug& debug, SamplerMipmap value)

Debug output operator.

Debug& Magnum::operator<<(Debug& debug, SamplerWrapping value)

Debug output operator.

Variable documentation

GL::DefaultFramebuffer& Magnum::defaultFramebuffer

Default framebuffer instance.

NoCreateT Magnum::NoCreate constexpr

No creation tag.

Use for construction without creating the underlying OpenGL object.