This is a snapshot of a work-in-progress documentation theme. If you feel lost, miss something, or want to see the original Doxygen docs instead, head over to the archived version of this documentation page.

Magnum namespace

Root namespace.

Contains classes for interacting with OpenGL.

All of this library except OpenGLTester is built as part of Magnum by default. To use this library with CMake, you need to request 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 DebugTools
Debug tools.
namespace Extensions
Compile-time information about OpenGL extensions.
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

class AbstractFramebuffer
Base for default and named framebuffers.
class AbstractObject
Base for all OpenGL objects.
class AbstractQuery
Base class for queries.
template<class T>
class AbstractResourceLoader
Base for resource loaders.
class AbstractShaderProgram
Base for shader program implementations.
class AbstractTexture
Base for textures.
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 location, class T>
class Attribute
Base class for attribute location and type.
class Buffer
Buffer.
template<UnsignedInt dimensions>
class BufferImage
Buffer image.
class BufferTexture
Buffer texture.
template<UnsignedInt dimensions>
class CompressedBufferImage
Compressed buffer image.
template<UnsignedInt dimensions>
class CompressedImage
Compressed image.
template<UnsignedInt dimensions>
class CompressedImageView
Compressed image view.
class CompressedPixelStorage
Compressed pixel storage parameters.
class Context
Magnum context.
class CubeMapTexture
Cube map texture.
class CubeMapTextureArray
Cube map texture array.
class DebugGroup
Debug group.
class DebugMessage
Debug message.
class DebugOutput
Debug output.
class DefaultFramebuffer
Default framebuffer.
template<UnsignedInt dimensions, class T>
struct DimensionTraits
Matrix and vector specializations for given dimension count.
class DynamicAttribute
Base class for dynamic attribute location and type.
class Extension
Run-time information about OpenGL extension.
class Framebuffer
Framebuffer.
template<UnsignedInt dimensions>
class Image
Image.
template<UnsignedInt dimensions>
class ImageView
Image view.
class Mesh
Mesh.
class MeshView
Mesh view.
template<UnsignedInt dimensions>
class MultisampleTexture
Mulitsample texture.
struct NoCreateT
No creation tag type.
class OpenGLTester
Base class for OpenGL tests and benchmarks.
class PixelStorage
Pixel storage parameters.
class PrimitiveQuery
Query for primitives.
class RectangleTexture
Rectangle texture.
class Renderbuffer
Renderbuffer.
class Renderer
Global renderer configuration.
template<class T, class U = T>
class Resource
Resource reference.
class ResourceKey
Key for accessing resource.
template<class... Types>
class ResourceManager
Resource manager.
class SampleQuery
Query for samples.
class Sampler
Texture sampler.
class Shader
Shader.
template<UnsignedInt dimensions>
class Texture
Texture.
template<UnsignedInt dimensions>
class TextureArray
Texture array.
class Timeline
Timeline.
class TimeQuery
Query for elapsed time.
class TransformFeedback
Transform feedback.

Enums

enum class FramebufferClear: GLbitfield { Color = 0x00004000, Depth = 0x00000100, Stencil = 0x00000400 }
Mask for framebuffer clearing.
enum class FramebufferBlit: GLbitfield { Color = 0x00004000, Depth = 0x00000100, Stencil = 0x00000400 }
Mask for framebuffer blitting.
enum class FramebufferBlitFilter: GLenum { Nearest = 0x2600, Linear = 0x2601 }
Framebuffer blit filtering.
enum class FramebufferTarget: GLenum { Read = 0x8CA8, Draw = 0x8CA9, ReadDraw = 0x8CA9 }
Framebuffer target.
enum class ObjectFlag: UnsignedByte { Created = 1 << 0, DeleteOnDestruction = 1 << 1 }
Object wrapping flag.
enum class BufferUsage: GLenum { StreamDraw = 0x88E0, StreamRead = 0x88E1, StreamCopy = 0x88E2, StaticDraw = 0x88E4, StaticRead = 0x88E5, StaticCopy = 0x88E6, DynamicDraw = 0x88E8, DynamicRead = 0x88E9, DynamicCopy = 0x88EA }
Buffer usage.
enum class BufferTextureFormat: GLenum { R8 = 0x8229, RG8 = 0x822B, RGBA8 = 0x8058, R16 = 0x822A, RG16 = 0x822C, RGBA16 = 0x805B, R8UI = 0x8232, RG8UI = 0x8238, RGBA8UI = 0x8D7C, R8I = 0x8231, RG8I = 0x8237, RGBA8I = 0x8D8E, R16UI = 0x8234, RG16UI = 0x823A, RGBA16UI = 0x8D76, R16I = 0x8233, RG16I = 0x8239, RGBA16I = 0x8D88, R32UI = 0x8236, RG32UI = 0x823C, RGB32UI = 0x8D71, RGBA32UI = 0x8D70, R32I = 0x8235, RG32I = 0x823B, RGB32I = 0x8D83, RGBA32I = 0x8D82, R16F = 0x822D, RG16F = 0x822F, RGBA16F = 0x881A, R32F = 0x822E, RG32F = 0x8230, RGB32F = 0x8815, RGBA32F = 0x8814 }
Internal buffer texture format.
enum class CubeMapCoordinate: GLenum { PositiveX = 0x8515, NegativeX = 0x8516, PositiveY = 0x8517, NegativeY = 0x8518, PositiveZ = 0x8519, NegativeZ = 0x851A }
Cube map coordinate.
enum class ImageAccess: GLenum { ReadOnly = 0x88B8, WriteOnly = 0x88B9, ReadWrite = 0x88BA }
Image access.
enum class ImageFormat: GLenum { R8 = 0x8229, RG8 = 0x822B, RGBA8 = 0x8058, R8Snorm = 0x8F94, RG8Snorm = 0x8F95, RGBA8Snorm = 0x8F97, R16 = 0x822A, RG16 = 0x822C, RGBA16 = 0x805B, R16Snorm = 0x8F98, RG16Snorm = 0x8F99, RGBA16Snorm = 0x8F9B, R8UI = 0x8232, RG8UI = 0x8238, RGBA8UI = 0x8D7C, R8I = 0x8231, RG8I = 0x8237, RGBA8I = 0x8D8E, R16UI = 0x8234, RG16UI = 0x823A, RGBA16UI = 0x8D76, R16I = 0x8233, RG16I = 0x8239, RGBA16I = 0x8D88, R32UI = 0x8236, RG32UI = 0x823C, RGBA32UI = 0x8D70, R32I = 0x8235, RG32I = 0x823B, RGBA32I = 0x8D82, R16F = 0x822D, RG16F = 0x822F, RGBA16F = 0x881A, R32F = 0x822E, RG32F = 0x8230, RGBA32F = 0x8814, R11FG11FB10F = 0x8C3A, RGB10A2 = 0x8059, RGB10A2UI = 0x906F }
Image format.
enum class MeshPrimitive: GLenum { Points = 0x0000, LineStrip = 0x0003, LineLoop = 0x0002, Lines = 0x0001, LineStripAdjacency = 0x000B, LinesAdjacency = 0x000A, TriangleStrip = 0x0005, TriangleFan = 0x0006, Triangles = 0x0004, TriangleStripAdjacency = 0x000D, TrianglesAdjacency = 0x000C, Patches = 0x000E }
Mesh primitive type.
enum class MultisampleTextureSampleLocations: GLboolean { NotFixed = 0, Fixed = 1 }
Multisample texture sample locations.
enum class PixelFormat: GLenum { Red = 0x1903, Green = 0x1904, Blue = 0x1905, Luminance = GL_LUMINANCE, RG = 0x8227, LuminanceAlpha = GL_LUMINANCE_ALPHA, RGB = 0x1907, RGBA = 0x1908, BGR = 0x80E0, BGRA = 0x80E1, SRGB = GL_SRGB_EXT, SRGBAlpha = GL_SRGB_ALPHA_EXT, RedInteger = 0x8D94, GreenInteger = 0x8D95, BlueInteger = 0x8D96, RGInteger = 0x8228, RGBInteger = 0x8D98, RGBAInteger = 0x8D99, BGRInteger = 0x8D9A, BGRAInteger = 0x8D9B, DepthComponent = 0x1902, StencilIndex = 0x1901, DepthStencil = 0x84F9 }
Format of pixel data.
enum class PixelType: GLenum { UnsignedByte = 0x1401, Byte = 0x1400, UnsignedShort = 0x1403, Short = 0x1402, UnsignedInt = 0x1405, Int = 0x1404, HalfFloat = 0x140B, Float = 0x1406, UnsignedByte332 = 0x8032, UnsignedByte233Rev = 0x8362, UnsignedShort565 = 0x8363, UnsignedShort565Rev = 0x8364, UnsignedShort4444 = 0x8033, UnsignedShort4444Rev = 0x8365, UnsignedShort5551 = 0x8034, UnsignedShort1555Rev = 0x8366, UnsignedInt8888 = 0x8035, UnsignedInt8888Rev = 0x8367, UnsignedInt1010102 = 0x8036, UnsignedInt2101010Rev = 0x8368, UnsignedInt10F11F11FRev = 0x8C3B, UnsignedInt5999Rev = 0x8C3E, UnsignedInt248 = 0x84FA, Float32UnsignedInt248Rev = 0x8DAD }
Type of pixel data.
enum class CompressedPixelFormat: GLenum { Red = 0x8225, RG = 0x8226, RGB = 0x84ED, RGBA = 0x84EE, RedRgtc1 = 0x8DBB, RGRgtc2 = 0x8DBD, SignedRedRgtc1 = 0x8DBC, SignedRGRgtc2 = 0x8DBE, RGBBptcUnsignedFloat = 0x8E8F, RGBBptcSignedFloat = 0x8E8E, RGBABptcUnorm = 0x8E8C, SRGBAlphaBptcUnorm = 0x8E8D, RGB8Etc2 = 0x9274, SRGB8Etc2 = 0x9275, RGB8PunchthroughAlpha1Etc2 = 0x9276, SRGB8PunchthroughAlpha1Etc2 = 0x9277, RGBA8Etc2Eac = 0x9278, SRGB8Alpha8Etc2Eac = 0x9279, R11Eac = 0x9270, SignedR11Eac = 0x9271, RG11Eac = 0x9272, SignedRG11Eac = 0x9273, RGBS3tcDxt1 = 0x83F0, RGBAS3tcDxt1 = 0x83F1, RGBAS3tcDxt3 = 0x83F2, RGBAS3tcDxt5 = 0x83F3, RGBAAstc4x4 = 0x93B0, SRGB8Alpha8Astc4x4 = 0x93D0, RGBAAstc5x4 = 0x93B1, SRGB8Alpha8Astc5x4 = 0x93D1, RGBAAstc5x5 = 0x93B2, SRGB8Alpha8Astc5x5 = 0x93D2, RGBAAstc6x5 = 0x93B3, SRGB8Alpha8Astc6x5 = 0x93D3, RGBAAstc6x6 = 0x93B4, SRGB8Alpha8Astc6x6 = 0x93D4, RGBAAstc8x5 = 0x93B5, SRGB8Alpha8Astc8x5 = 0x93D5, RGBAAstc8x6 = 0x93B6, SRGB8Alpha8Astc8x6 = 0x93D6, RGBAAstc8x8 = 0x93B7, SRGB8Alpha8Astc8x8 = 0x93D7, RGBAAstc10x5 = 0x93B8, SRGB8Alpha8Astc10x5 = 0x93D8, RGBAAstc10x6 = 0x93B9, SRGB8Alpha8Astc10x6 = 0x93D9, RGBAAstc10x8 = 0x93BA, SRGB8Alpha8Astc10x8 = 0x93DA, RGBAAstc10x10 = 0x93BB, SRGB8Alpha8Astc10x10 = 0x93DB, RGBAAstc12x10 = 0x93BC, SRGB8Alpha8Astc12x10 = 0x93DC, RGBAAstc12x12 = 0x93BD, SRGB8Alpha8Astc12x12 = 0x93DD }
Format of compressed pixel data.
enum class RenderbufferFormat: GLenum { Red = 0x1903, R8 = 0x8229, RG = 0x8227, RG8 = 0x822B, RGBA = 0x1908, RGBA8 = 0x8058, R16 = 0x822A, RG16 = 0x822C, RGB16 = 0x8054, RGBA16 = 0x805B, R8UI = 0x8232, RG8UI = 0x8238, RGBA8UI = 0x8D7C, R8I = 0x8231, RG8I = 0x8237, RGBA8I = 0x8D8E, R16UI = 0x8234, RG16UI = 0x823A, RGBA16UI = 0x8D76, R16I = 0x8233, RG16I = 0x8239, RGBA16I = 0x8D88, R32UI = 0x8236, RG32UI = 0x823C, RGBA32UI = 0x8D70, R32I = 0x8235, RG32I = 0x823B, RGBA32I = 0x8D82, R16F = 0x822D, RG16F = 0x822F, RGBA16F = 0x881A, R32F = 0x822E, RG32F = 0x8230, RGBA32F = 0x8814, RGB10A2 = 0x8059, RGB10A2UI = 0x906F, RGB5A1 = 0x8057, RGBA4 = 0x8056, R11FG11FB10F = 0x8C3A, RGB565 = 0x8D62, SRGB8Alpha8 = 0x8C43, DepthComponent = 0x1902, DepthComponent16 = 0x81A5, DepthComponent24 = 0x81A6, DepthComponent32 = 0x81A7, DepthComponent32F = 0x8CAC, StencilIndex = 0x1901, StencilIndex1 = 0x8D46, StencilIndex4 = 0x8D47, StencilIndex8 = 0x8D48, StencilIndex16 = 0x8D49, DepthStencil = 0x84F9, Depth24Stencil8 = 0x88F0, Depth32FStencil8 = 0x8CAD }
Internal renderbuffer format.
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 TextureFormat: GLenum { Red = 0x1903, R8 = 0x8229, RG = 0x8227, RG8 = 0x822B, RGB = 0x1907, RGB8 = 0x8051, RGBA = 0x1908, RGBA8 = 0x8058, R8Snorm = 0x8F94, RG8Snorm = 0x8F95, RGB8Snorm = 0x8F96, RGBA8Snorm = 0x8F97, R16 = 0x822A, RG16 = 0x822C, RGB16 = 0x8054, RGBA16 = 0x805B, R16Snorm = 0x8F98, RG16Snorm = 0x8F99, RGB16Snorm = 0x8F9A, RGBA16Snorm = 0x8F9B, R8UI = 0x8232, RG8UI = 0x8238, RGB8UI = 0x8D7D, RGBA8UI = 0x8D7C, R8I = 0x8231, RG8I = 0x8237, RGB8I = 0x8D8F, RGBA8I = 0x8D8E, R16UI = 0x8234, RG16UI = 0x823A, RGB16UI = 0x8D77, RGBA16UI = 0x8D76, R16I = 0x8233, RG16I = 0x8239, RGB16I = 0x8D89, RGBA16I = 0x8D88, R32UI = 0x8236, RG32UI = 0x823C, RGB32UI = 0x8D71, RGBA32UI = 0x8D70, R32I = 0x8235, RG32I = 0x823B, RGB32I = 0x8D83, RGBA32I = 0x8D82, R16F = 0x822D, RG16F = 0x822F, RGB16F = 0x881B, RGBA16F = 0x881A, R32F = 0x822E, RG32F = 0x8230, RGB32F = 0x8815, RGBA32F = 0x8814, Luminance = GL_LUMINANCE, LuminanceAlpha = GL_LUMINANCE_ALPHA, R3B3G2 = 0x2A10, RGB4 = 0x804F, RGB5 = 0x8050, RGB565 = 0x8D62, RGB10 = 0x8052, RGB12 = 0x8053, R11FG11FB10F = 0x8C3A, RGB9E5 = 0x8C3D, SRGB = 0x8C40, SRGB8 = 0x8C41, RGBA2 = 0x8055, RGBA4 = 0x8056, RGB5A1 = 0x8057, RGB10A2 = 0x8059, RGB10A2UI = 0x906F, RGBA12 = 0x805A, SRGBAlpha = 0x8C42, SRGB8Alpha8 = 0x8C43, CompressedRed = 0x8225, CompressedRG = 0x8226, CompressedRGB = 0x84ED, CompressedRGBA = 0x84EE, CompressedRedRgtc1 = 0x8DBB, CompressedRGRgtc2 = 0x8DBD, CompressedSignedRedRgtc1 = 0x8DBC, CompressedSignedRGRgtc2 = 0x8DBE, CompressedRGBBptcUnsignedFloat = 0x8E8F, CompressedRGBBptcSignedFloat = 0x8E8E, CompressedRGBABptcUnorm = 0x8E8C, CompressedSRGBAlphaBptcUnorm = 0x8E8D, CompressedRGB8Etc2 = 0x9274, CompressedSRGB8Etc2 = 0x9275, CompressedRGB8PunchthroughAlpha1Etc2 = 0x9276, CompressedSRGB8PunchthroughAlpha1Etc2 = 0x9277, CompressedRGBA8Etc2Eac = 0x9278, CompressedSRGB8Alpha8Etc2Eac = 0x9279, CompressedR11Eac = 0x9270, CompressedSignedR11Eac = 0x9271, CompressedRG11Eac = 0x9272, CompressedSignedRG11Eac = 0x9273, CompressedRGBS3tcDxt1 = 0x83F0, CompressedRGBAS3tcDxt1 = 0x83F1, CompressedRGBAS3tcDxt3 = 0x83F2, CompressedRGBAS3tcDxt5 = 0x83F3, CompressedRGBAAstc4x4 = 0x93B0, CompressedSRGB8Alpha8Astc4x4 = 0x93D0, CompressedRGBAAstc5x4 = 0x93B1, CompressedSRGB8Alpha8Astc5x4 = 0x93D1, CompressedRGBAAstc5x5 = 0x93B2, CompressedSRGB8Alpha8Astc5x5 = 0x93D2, CompressedRGBAAstc6x5 = 0x93B3, CompressedSRGB8Alpha8Astc6x5 = 0x93D3, CompressedRGBAAstc6x6 = 0x93B4, CompressedSRGB8Alpha8Astc6x6 = 0x93D4, CompressedRGBAAstc8x5 = 0x93B5, CompressedSRGB8Alpha8Astc8x5 = 0x93D5, CompressedRGBAAstc8x6 = 0x93B6, CompressedSRGB8Alpha8Astc8x6 = 0x93D6, CompressedRGBAAstc8x8 = 0x93B7, CompressedSRGB8Alpha8Astc8x8 = 0x93D7, CompressedRGBAAstc10x5 = 0x93B8, CompressedSRGB8Alpha8Astc10x5 = 0x93D8, CompressedRGBAAstc10x6 = 0x93B9, CompressedSRGB8Alpha8Astc10x6 = 0x93D9, CompressedRGBAAstc10x8 = 0x93BA, CompressedSRGB8Alpha8Astc10x8 = 0x93DA, CompressedRGBAAstc10x10 = 0x93BB, CompressedSRGB8Alpha8Astc10x10 = 0x93DB, CompressedRGBAAstc12x10 = 0x93BC, CompressedSRGB8Alpha8Astc12x10 = 0x93DC, CompressedRGBAAstc12x12 = 0x93BD, CompressedSRGB8Alpha8Astc12x12 = 0x93DD, DepthComponent = 0x1902, DepthComponent16 = 0x81A5, DepthComponent24 = 0x81A6, DepthComponent32 = 0x81A7, DepthComponent32F = 0x8CAC, StencilIndex8 = 0x8D48, DepthStencil = 0x84F9, Depth24Stencil8 = 0x88F0, Depth32FStencil8 = 0x8CAD }
Internal texture format.
enum class Version: Int { None = 0xFFFF, GL210 = 210, GL300 = 300, GL310 = 310, GL320 = 320, GL330 = 330, GL400 = 400, GL410 = 410, GL420 = 420, GL430 = 430, GL440 = 440, GL450 = 450, GLES200 = Implementation::VersionESMask|200, GLES300 = Implementation::VersionESMask|300, GLES310 = Implementation::VersionESMask|310 }
OpenGL version.

Typedefs

using FramebufferClearMask = Containers::EnumSet<FramebufferClear>
Mask for clearing.
using FramebufferBlitMask = Containers::EnumSet<FramebufferBlit>
Mask for framebuffer blitting.
using ObjectFlags = Containers::EnumSet<ObjectFlag>
Object wrapping flags.
using BufferImage1D = BufferImage<1>
One-dimensional buffer image.
using BufferImage2D = BufferImage<2>
Two-dimensional buffer image.
using BufferImage3D = BufferImage<3>
Three-dimensional buffer image.
using CompressedBufferImage1D = CompressedBufferImage<1>
One-dimensional compressed buffer image.
using CompressedBufferImage2D = CompressedBufferImage<2>
Two-dimensional compressed buffer image.
using CompressedBufferImage3D = CompressedBufferImage<3>
Three-dimensional compressed buffer image.
template<class T>
using BasicColor3 = Math::Color3<T>
Color in linear RGB color space.
template<class T>
using BasicColor4 = Math::Color4<T>
Color in linear RGBA color space.
using ColorFormat = PixelFormat
Format of pixel data.
using ColorType = PixelType
Type of pixel data.
using CompressedColorFormat = CompressedPixelFormat
Format of compressed pixel data.
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 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.
template<UnsignedInt dimensions>
using ImageReference = ImageView<dimensions>
Image view.
using ImageReference1D = ImageView1D
One-dimensional image view.
using ImageReference2D = ImageView2D
Two-dimensional image view.
using ImageReference3D = ImageView3D
Three-dimensional image view.
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.
using MultisampleTexture2D = MultisampleTexture<2>
Two-dimensional multisample texture.
using MultisampleTexture2DArray = MultisampleTexture<3>
Two-dimensional multisample texture array.
using Texture1D = Texture<1>
One-dimensional texture.
using Texture2D = Texture<2>
Two-dimensional texture.
using Texture3D = Texture<3>
Three-dimensional texture.
using Texture1DArray = TextureArray<1>
One-dimensional texture array.
using Texture2DArray = TextureArray<2>
Two-dimensional texture array.

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.
template<class T>
auto operator<<(Debug& debug, Attribute<T>::Components) -> Debug&
Debug output operator.
template<class T>
auto operator<<(Debug& debug, Attribute<T>::DataType) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, Buffer::TargetHint value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, Buffer::Target value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, Context::Flag value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, Context::Flags value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, Context::DetectedDriver value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, Context::DetectedDrivers value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, DebugOutput::Source value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, DebugOutput::Type value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, DebugOutput::Severity value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, DebugMessage::Source value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, DebugMessage::Type value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, DebugGroup::Source value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, DefaultFramebuffer::Status value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, Framebuffer::Status value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, MeshPrimitive value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, Mesh::IndexType value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, PixelFormat value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, PixelType value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, CompressedPixelFormat value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, Renderer::Error value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, Renderer::ResetNotificationStrategy value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, Renderer::GraphicsResetStatus value) -> Debug&
Debug output operator.
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, Sampler::Filter value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, Sampler::Mipmap value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, Sampler::Wrapping value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, Sampler::CompareMode value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, Sampler::CompareFunction value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, Sampler::DepthStencilMode value) -> Debug&
Debug output operator.
auto operator<<(Debug& debug, Shader::Type value) -> Debug&
Debug output operator.
auto version(Int major, Int minor) -> Version constexpr
Enum value from major and minor version number.
auto version(Version version) -> std::pair<Int, Int>
Major and minor version number from enum value.
auto isVersionES(Version version) -> bool constexpr
Whether given version is OpenGL ES or WebGL.
auto operator<<(Debug& debug, Version value) -> Debug&
Debug output operator.

Variables

DefaultFramebuffer defaultFramebuffer
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::FramebufferClear: GLbitfield

Mask for framebuffer clearing.

Enumerators
Color

Color buffer

Depth

Depth buffer

Stencil

Stencil buffer

enum class Magnum::FramebufferBlit: GLbitfield

Mask for framebuffer blitting.

Enumerators
Color

Color buffer

Depth

Depth buffer

Stencil

Stencil buffer

enum class Magnum::FramebufferBlitFilter: GLenum

Framebuffer blit filtering.

Enumerators
Nearest

Nearest neighbor filtering

Linear

Linear interpolation filtering

enum class Magnum::FramebufferTarget: GLenum

Framebuffer target.

Enumerators
Read

Frambebuffer reading target

Draw

Framebuffer drawing target

ReadDraw

Framebuffer drawing target

enum class Magnum::ObjectFlag: UnsignedByte

Object wrapping flag.

Enumerators
Created

The object is known to be already created, either by using glCreate*() function or by binding object previously generated by glGen*() function. If you are not sure, don't specify this flag.

DeleteOnDestruction

Delete the object on destruction.

enum class Magnum::BufferUsage: GLenum

Buffer usage.

Enumerators
StreamDraw

Set once by the application and used infrequently for drawing.

StreamRead

Set once as output from an OpenGL command and used infequently for drawing.

StreamCopy

Set once as output from an OpenGL command and used infrequently for drawing or copying to other buffers.

StaticDraw

Set once by the application and used frequently for drawing.

StaticRead

Set once as output from an OpenGL command and queried many times by the application.

StaticCopy

Set once as output from an OpenGL command and used frequently for drawing or copying to other buffers.

DynamicDraw

Updated frequently by the application and used frequently for drawing or copying to other images.

DynamicRead

Updated frequently as output from OpenGL command and queried many times from the application.

DynamicCopy

Updated frequently as output from OpenGL command and used frequently for drawing or copying to other images.

enum class Magnum::BufferTextureFormat: GLenum

Internal buffer texture format.

Enumerators
R8

Red component, normalized unsigned byte.

RG8

Red and green component, each normalized unsigned byte.

RGBA8

RGBA, each component normalized unsigned byte.

R16

Red component, normalized unsigned short.

RG16

Red and green component, each normalized unsigned short.

RGBA16

RGBA, each component normalized unsigned short.

R8UI

Red component, non-normalized unsigned byte.

RG8UI

Red and green component, each non-normalized unsigned byte.

RGBA8UI

RGBA, each component non-normalized unsigned byte.

R8I

Red component, non-normalized signed byte.

RG8I

Red and green component, each non-normalized signed byte.

RGBA8I

RGBA, each component non-normalized signed byte.

R16UI

Red component, non-normalized unsigned short.

RG16UI

Red and green component, each non-normalized unsigned short.

RGBA16UI

RGBA, each component non-normalized unsigned short.

R16I

Red component, non-normalized signed short.

RG16I

Red and green component, each non-normalized signed short.

RGBA16I

RGBA, each component non-normalized signed short.

R32UI

Red component, non-normalized unsigned int.

RG32UI

Red and green component, each non-normalized unsigned int.

RGB32UI

RGB, each component non-normalized unsigned int.

RGBA32UI

RGBA, each component non-normalized unsigned int.

R32I

Red component, non-normalized signed int.

RG32I

Red and green component, each non-normalized signed int.

RGB32I

RGB, each component non-normalized signed int.

RGBA32I

RGBA, each component non-normalized signed int.

R16F

Red component, half float.

RG16F

Red and green component, each half float.

RGBA16F

RGBA, each component half float.

R32F

Red component, float.

RG32F

Red and green component, each float.

RGB32F

RGB, each component float.

RGBA32F

RGBA, each component float.

enum class Magnum::CubeMapCoordinate: GLenum

Cube map coordinate.

Enumerators
PositiveX

+X cube side

NegativeX

-X cube side

PositiveY

+Y cube side

NegativeY

-Y cube side

PositiveZ

+Z cube side

NegativeZ

-Z cube side

enum class Magnum::ImageAccess: GLenum

Image access.

Enumerators
ReadOnly
WriteOnly
ReadWrite

enum class Magnum::ImageFormat: GLenum

Image format.

Enumerators
R8

Red component, normalized unsigned byte.

RG8

Red and green component, each normalized unsigned byte.

RGBA8

RGBA, each component normalized unsigned byte.

R8Snorm

Red component, normalized signed byte.

RG8Snorm

Red and green component, each normalized signed byte.

RGBA8Snorm

RGBA, each component normalized unsigned byte.

R16

Red component, normalized unsigned short.

RG16

Red and green component, each normalized unsigned short.

RGBA16

RGBA, each component normalized unsigned short.

R16Snorm

Red component, normalized signed short.

RG16Snorm

Red and green component, each normalized signed short.

RGBA16Snorm

RGBA, each component normalized unsigned short.

R8UI

Red component, non-normalized unsigned byte.

RG8UI

Red and green component, each non-normalized unsigned byte.

RGBA8UI

RGBA, each component non-normalized unsigned byte.

R8I

Red component, non-normalized signed byte.

RG8I

Red and green component, each non-normalized signed byte.

RGBA8I

RGBA, each component non-normalized signed byte.

R16UI

Red component, non-normalized unsigned short.

RG16UI

Red and green component, each non-normalized unsigned short.

RGBA16UI

RGBA, each component non-normalized unsigned short.

R16I

Red component, non-normalized signed short.

RG16I

Red and green component, each non-normalized signed short.

RGBA16I

RGBA, each component non-normalized signed short.

R32UI

Red component, non-normalized unsigned int.

RG32UI

Red and green component, each non-normalized unsigned int.

RGBA32UI

RGBA, each component non-normalized unsigned int.

R32I

Red component, non-normalized signed int.

RG32I

Red and green component, each non-normalized signed int.

RGBA32I

RGBA, each component non-normalized signed int.

R16F

Red component, half float.

RG16F

Red and green component, each half float.

RGBA16F

RGBA, each component half float.

R32F

Red component, float.

RG32F

Red and green component, each float.

RGBA32F

RGBA, each component float.

R11FG11FB10F

RGB, float, red and green component 11bit, blue 10bit.

RGB10A2

RGBA, normalized unsigned, each RGB component 10bit, alpha 2bit.

RGB10A2UI

RGBA, non-normalized unsigned, each RGB component 10bit, alpha 2bit.

enum class Magnum::MeshPrimitive: GLenum

Mesh primitive type.

Enumerators
Points

Single points.

LineStrip

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

LineLoop

Line strip, last and first vertex are connected together.

Lines

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

LineStripAdjacency

Line strip with adjacency information.

LinesAdjacency

Lines with adjacency information.

TriangleStrip

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

TriangleFan

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

Triangles

Each three vertices define one triangle.

TriangleStripAdjacency

Triangle strip with adjacency information.

TrianglesAdjacency

Triangles with adjacency information.

Patches

Patches.

enum class Magnum::MultisampleTextureSampleLocations: GLboolean

Multisample texture sample locations.

Enumerators
NotFixed
Fixed

enum class Magnum::PixelFormat: GLenum

Format of pixel data.

Note that some formats can be used only for framebuffer reading (using AbstractFramebuffer::read()) and some only for texture data (using Texture::setSubImage() and others), the limitations are mentioned in documentation of each particular value.

In most cases you may want to use PixelFormat::Red (for grayscale images), PixelFormat::RGB or PixelFormat::RGBA along with PixelType::UnsignedByte, the matching texture format is then TextureFormat::R8, TextureFormat::RGB8 or TextureFormat::RGBA8. See documentation of these values for possible limitations when using OpenGL ES 2.0 or WebGL.

Enumerators
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::PixelType: GLenum

Type of pixel data.

Note that some formats can be used only for framebuffer reading (using AbstractFramebuffer::read()) and some only for texture data (using Texture::setSubImage() and others), the limitations are mentioned in documentation of each particular value.

In most cases you may want to use PixelType::UnsignedByte along with PixelFormat::Red (for grayscale images), PixelFormat::RGB or PixelFormat::RGBA, the matching texture format is then TextureFormat::R8, TextureFormat::RGB8 or TextureFormat::RGBA8. See documentation of these values for possible limitations when using OpenGL ES 2.0 or WebGL.

Enumerators
UnsignedByte

Each component unsigned byte.

Byte

Each component signed byte.

UnsignedShort

Each component unsigned short.

Short

Each component signed short.

UnsignedInt

Each component unsigned int.

Int

Each component signed int.

HalfFloat

Each component half float.

Float

Each component float.

UnsignedByte332

RGB, unsigned byte, red and green component 3bit, blue component 2bit.

UnsignedByte233Rev

BGR, unsigned byte, red and green component 3bit, blue component 2bit.

UnsignedShort565

RGB, unsigned byte, red and blue component 5bit, green 6bit.

UnsignedShort565Rev

BGR, unsigned short, red and blue 5bit, green 6bit.

UnsignedShort4444

RGBA, unsigned short, each component 4bit.

UnsignedShort4444Rev

ABGR, unsigned short, each component 4bit.

UnsignedShort5551

RGBA, unsigned short, each RGB component 5bit, alpha component 1bit.

UnsignedShort1555Rev

ABGR, unsigned short, each RGB component 5bit, alpha component 1bit.

UnsignedInt8888

RGBA, unsigned int, each component 8bit.

UnsignedInt8888Rev

ABGR, unsigned int, each component 8bit.

UnsignedInt1010102

RGBA, unsigned int, each RGB component 10bit, alpha component 2bit.

UnsignedInt2101010Rev

ABGR, unsigned int, each RGB component 10bit, alpha component 2bit.

UnsignedInt10F11F11FRev

BGR, unsigned int, red and green 11bit float, blue 10bit float.

UnsignedInt5999Rev

BGR, unsigned int, each component 9bit + 5bit exponent.

UnsignedInt248

Unsigned int, depth component 24bit, stencil index 8bit.

Float32UnsignedInt248Rev

Float + unsigned int, depth component 32bit float, 24bit gap, stencil index 8bit.

enum class Magnum::CompressedPixelFormat: GLenum

Format of compressed pixel data.

Equivalent to Compressed* values of TextureFormat enum.

Enumerators
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. Available only for 2D, 2D array, cube map and cube map array textures.

RGRgtc2

RGTC compressed red and green channel, normalized unsigned. Available only for 2D, 2D array, cube map and cube map array textures.

SignedRedRgtc1

RGTC compressed red channel, normalized signed. Available only for 2D, 2D array, cube map and cube map array textures.

SignedRGRgtc2

RGTC compressed red and green channel, normalized signed. Available only for 2D, 2D array, cube map and cube map array textures.

RGBBptcUnsignedFloat

BPTC compressed RGB, unsigned float. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

RGBBptcSignedFloat

BPTC compressed RGB, signed float. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

RGBABptcUnorm

BPTC compressed RGBA, normalized unsigned. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

SRGBAlphaBptcUnorm

BPTC compressed sRGBA, normalized unsigned. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

RGB8Etc2

ETC2 compressed RGB, normalized unsigned. Available only on 2D, 2D array, cube map and cube map array textures.

SRGB8Etc2

ETC2 compressed sRGB, normalized unsigned. Available only on 2D, 2D array, cube map and cube map array textures.

RGB8PunchthroughAlpha1Etc2

ETC2 compressed RGB with punchthrough (single-bit) alpha, normalized unsigned. Available only on 2D, 2D array, cube map and cube map array textures.

SRGB8PunchthroughAlpha1Etc2

ETC2 compressed sRGB with punchthrough (single-bit) alpha, normalized unsigned. Available only on 2D, 2D array, cube map and cube map array textures.

RGBA8Etc2Eac

ETC2/EAC compressed RGBA, normalized unsigned. Available only on 2D, 2D array, cube map and cube map array textures.

SRGB8Alpha8Etc2Eac

ETC2/EAC compressed sRGB with alpha, normalized unsigned. Available only on 2D, 2D array, cube map and cube map array textures.

R11Eac

EAC compressed red channel, normalized unsigned. Available only on 2D, 2D array, cube map and cube map array textures.

SignedR11Eac

EAC compressed red channel, normalized signed. Available only on 2D, 2D array, cube map and cube map array textures.

RG11Eac

EAC compressed red and green channel, normalized unsigned. Available only on 2D, 2D array, cube map and cube map array textures.

SignedRG11Eac

EAC compressed red and green channel, normalized signed. Available only on 2D, 2D array, cube map and cube map array textures.

RGBS3tcDxt1

S3TC DXT1 compressed RGB. Available only for 2D, 2D array, cube map and cube map array textures.

RGBAS3tcDxt1

S3TC DXT1 compressed RGBA. Available only for 2D, 2D array, cube map and cube map array textures.

RGBAS3tcDxt3

S3TC DXT3 compressed RGBA. Available only for 2D, 2D array, cube map and cube map array textures.

RGBAS3tcDxt5

S3TC DXT5 compressed RGBA. Available only for 2D, 2D array, cube map and cube map array textures.

RGBAAstc4x4

ASTC compressed RGBA with 4x4 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

SRGB8Alpha8Astc4x4

ASTC compressed sRGB with alpha with 4x4 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

RGBAAstc5x4

ASTC compressed RGBA with 5x4 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

SRGB8Alpha8Astc5x4

ASTC compressed sRGB with alpha with 5x4 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

RGBAAstc5x5

ASTC compressed RGBA with 5x5 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

SRGB8Alpha8Astc5x5

ASTC compressed sRGB with alpha with 5x5 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

RGBAAstc6x5

ASTC compressed RGBA with 6x5 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

SRGB8Alpha8Astc6x5

ASTC compressed sRGB with alpha with 6x5 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

RGBAAstc6x6

ASTC compressed RGBA with 6x6 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

SRGB8Alpha8Astc6x6

ASTC compressed sRGB with alpha with 6x6 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

RGBAAstc8x5

ASTC compressed RGBA with 8x5 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

SRGB8Alpha8Astc8x5

ASTC compressed sRGB with alpha with 8x5 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

RGBAAstc8x6

ASTC compressed RGBA with 8x6 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

SRGB8Alpha8Astc8x6

ASTC compressed sRGB with alpha with 8x6 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

RGBAAstc8x8

ASTC compressed RGBA with 8x8 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

SRGB8Alpha8Astc8x8

ASTC compressed sRGB with alpha with 8x8 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

RGBAAstc10x5

ASTC compressed RGBA with 10x5 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

SRGB8Alpha8Astc10x5

ASTC compressed sRGB with alpha with 10x5 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

RGBAAstc10x6

ASTC compressed RGBA with 10x6 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

SRGB8Alpha8Astc10x6

ASTC compressed sRGB with alpha with 10x6 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

RGBAAstc10x8

ASTC compressed RGBA with 10x8 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

SRGB8Alpha8Astc10x8

ASTC compressed sRGB with alpha with 10x8 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

RGBAAstc10x10

ASTC compressed RGBA with 10x10 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

SRGB8Alpha8Astc10x10

ASTC compressed sRGB with alpha with 10x10 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

RGBAAstc12x10

ASTC compressed RGBA with 12x10 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

SRGB8Alpha8Astc12x10

ASTC compressed sRGB with alpha with 12x10 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

RGBAAstc12x12

ASTC compressed RGBA with 12x12 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

SRGB8Alpha8Astc12x12

ASTC compressed sRGB with alpha with 12x12 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

enum class Magnum::RenderbufferFormat: GLenum

Internal renderbuffer format.

Enumerators
Red

Red component, normalized unsigned, size implementation-dependent.

R8

Red component, normalized unsigned byte.

RG

Red and green component, normalized unsigned, size implementation-dependent.

RG8

Red and green component, each normalized unsigned byte.

RGBA

RGBA, normalized unsigned, size implementation-dependent.

RGBA8

RGBA, each component normalized unsigned byte.

R16

Red component, normalized unsigned short.

RG16

Red and green component, each normalized unsigned short.

RGB16

RGB, each component normalized unsigned short.

RGBA16

RGBA, each component normalized unsigned short.

R8UI

Red component, non-normalized unsigned byte.

RG8UI

Red and green component, each non-normalized unsigned byte.

RGBA8UI

RGBA, each component non-normalized unsigned byte.

R8I

Red component, non-normalized signed byte.

RG8I

Red and green component, each non-normalized signed byte.

RGBA8I

RGBA, each component non-normalized signed byte.

R16UI

Red component, non-normalized unsigned short.

RG16UI

Red and green component, each non-normalized unsigned short.

RGBA16UI

RGBA, each component non-normalized unsigned short.

R16I

Red component, non-normalized signed short.

RG16I

Red and green component, each non-normalized signed short.

RGBA16I

RGBA, each component non-normalized signed short.

R32UI

Red component, non-normalized unsigned int.

RG32UI

Red and green component, each non-normalized unsigned int.

RGBA32UI

RGBA, each component non-normalized unsigned int.

R32I

Red component, non-normalized signed int.

RG32I

Red and green component, each non-normalized signed int.

RGBA32I

RGBA, each component non-normalized signed int.

R16F

Red component, half float.

RG16F

Red and green component, each half float.

RGBA16F

RGBA, each component half float.

R32F

Red component, float.

RG32F

Red and green component, each float.

RGBA32F

RGBA, each component float.

RGB10A2

RGBA, normalized unsigned, each RGB component 10bit, alpha 2bit.

RGB10A2UI

RGBA, non-normalized unsigned, each RGB component 10bit, alpha 2bit.

RGB5A1

RGBA, normalized unsigned, each RGB component 5bit, alpha 1bit.

RGBA4

RGBA, normalized unsigned, each component 4bit.

R11FG11FB10F

RGB, float, red and green 11bit, blue 10bit.

RGB565

RGB, normalized unsigned, red and blue 5bit, green 6bit.

SRGB8Alpha8

sRGBA, each component normalized unsigned byte.

DepthComponent

Depth component, size implementation-dependent.

DepthComponent16

Depth component, 16bit.

DepthComponent24

Depth component, 24bit.

DepthComponent32

Depth component, 32bit.

DepthComponent32F

Depth component, 32bit float.

StencilIndex

Stencil index, size implementation-dependent.

StencilIndex1

1-bit stencil index.

StencilIndex4

4-bit stencil index.

StencilIndex8

8-bit stencil index.

StencilIndex16

16-bit stencil index.

DepthStencil

Depth and stencil component, size implementation-dependent.

Depth24Stencil8

24bit depth and 8bit stencil component.

Depth32FStencil8

32bit float depth component and 8bit stencil component.

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::TextureFormat: GLenum

Internal texture format.

In most cases you may want to use TextureFormat::R8 (for grayscale textures), TextureFormat::RGB8 or TextureFormat::RGBA8. The matching color format is then PixelFormat::Red, PixelFormat::RGB or PixelFormat::RGBA along with PixelType::UnsignedByte. See documentation of these values for possible limitations when using OpenGL ES 2.0 or WebGL.

Enumerators
Red

Red component, normalized unsigned, size implementation-dependent. Not allowed in unemulated *Texture::setStorage() calls, in that case use TextureFormat::R8 instead.

R8

Red component, normalized unsigned byte.

RG

Red and green component, normalized unsigned, size implementation-dependent. Not allowed in unemulated *Texture::setStorage() calls, in that case use TextureFormat::RG8 instead.

RG8

Red and green component, each normalized unsigned byte.

RGB

RGB, normalized unsigned, size implementation-dependent. Not allowed in unemulated *Texture::setStorage() calls, in that case use TextureFormat::RGB8 instead.

RGB8

RGB, each component normalized unsigned byte.

RGBA

RGBA, normalized unsigned, size implementation-dependent. Not allowed in unemulated *Texture::setStorage() calls, in that case use TextureFormat::RGBA8 instead.

RGBA8

RGBA, each component normalized unsigned byte.

R8Snorm

Red component, normalized signed byte.

RG8Snorm

Red and green component, each normalized signed byte.

RGB8Snorm

RGB, each component normalized signed byte.

RGBA8Snorm

RGBA, each component normalized signed byte.

R16

Red component, normalized unsigned short.

RG16

Red and green component, each normalized unsigned short.

RGB16

RGB, each component normalized unsigned short.

RGBA16

RGBA, each component normalized unsigned short.

R16Snorm

Red component, normalized signed short.

RG16Snorm

Red and green component, each normalized signed short.

RGB16Snorm

RGB, each component normalized signed short.

RGBA16Snorm

RGBA, each component normalized signed short.

R8UI

Red component, non-normalized unsigned byte.

RG8UI

Red and green component, each non-normalized unsigned byte.

RGB8UI

RGB, each component non-normalized unsigned byte.

RGBA8UI

RGBA, each component non-normalized unsigned byte.

R8I

Red component, non-normalized signed byte.

RG8I

Red and green component, each non-normalized signed byte.

RGB8I

RGB, each component non-normalized signed byte.

RGBA8I

RGBA, each component non-normalized signed byte.

R16UI

Red component, non-normalized unsigned short.

RG16UI

Red and green component, each non-normalized unsigned short.

RGB16UI

RGB, each component non-normalized unsigned short.

RGBA16UI

RGBA, each component non-normalized unsigned short.

R16I

Red component, non-normalized signed short.

RG16I

Red and green component, each non-normalized signed short.

RGB16I

RGB, each component non-normalized signed short.

RGBA16I

RGBA, each component non-normalized signed short.

R32UI

Red component, non-normalized unsigned int.

RG32UI

Red and green component, each non-normalized unsigned int.

RGB32UI

RGB, each component non-normalized unsigned int.

RGBA32UI

RGBA, each component non-normalized unsigned int.

R32I

Red component, non-normalized signed int.

RG32I

Red and green component, each non-normalized signed int.

RGB32I

RGB, each component non-normalized signed int.

RGBA32I

RGBA, each component non-normalized signed int.

R16F

Red component, half float. Half, Math::packHalf(), Math::unpackHalf()

RG16F

Red and green component, each half float. Half, Math::packHalf(), Math::unpackHalf()

RGB16F

RGB, each component half float. Half, Math::packHalf(), Math::unpackHalf()

RGBA16F

RGBA, each component half float. Half, Math::packHalf(), Math::unpackHalf()

R32F

Red component, float.

RG32F

Red and green component, each float.

RGB32F

RGB, each component float.

RGBA32F

RGBA, each component float.

Luminance

Luminance, normalized unsigned, single value used for all RGB channels. Size implementation-dependent. Not allowed in unemulated *Texture::setStorage() calls.

LuminanceAlpha

Floating-point luminance and alpha channel. First value is used for all RGB channels, second value is used for alpha channel. Size implementation-dependent. Not allowed in unemulated *Texture::setStorage() calls.

R3B3G2

RGB, normalized unsigned, red and green component 3bit, blue 2bit.

RGB4

RGB, each component normalized unsigned 4bit.

RGB5

RGB, each component normalized unsigned 5bit.

RGB565

RGB, normalized unsigned, red and blue component 5bit, green 6bit.

RGB10

RGB, each component normalized unsigned 10bit.

RGB12

RGB, each component normalized unsigned 12bit.

R11FG11FB10F

RGB, float, red and green component 11bit, blue 10bit.

RGB9E5

RGB, unsigned with exponent, each RGB component 9bit, exponent 5bit.

SRGB

sRGB, normalized unsigned, size implementation-dependent. Not allowed in unemulated *Texture::setStorage() calls, in that case use TextureFormat::SRGB8 instead.

SRGB8

sRGB, each component normalized unsigned byte.

RGBA2

RGBA, normalized unsigned, each component 2bit.

RGBA4

RGBA, normalized unsigned, each component 4bit.

RGB5A1

RGBA, normalized unsigned, each RGB component 5bit, alpha 1bit.

RGB10A2

RGBA, normalized unsigned, each RGB component 10bit, alpha 2bit.

RGB10A2UI

RGBA, non-normalized unsigned, each RGB component 10bit, alpha 2bit.

RGBA12

RGBA, each component normalized unsigned 12bit.

SRGBAlpha

sRGB + linear alpha, normalized unsigned, size implementation-dependent. Not allowed in unemulated *Texture::setStorage() calls, in that case use TextureFormat::SRGB8Alpha8 instead.

SRGB8Alpha8

sRGB + linear alpha, each component normalized unsigned byte.

CompressedRed

Compressed red channel, normalized unsigned. Not available on multisample textures.

CompressedRG

Compressed red and green channel, normalized unsigned. Not available on multisample textures.

CompressedRGB

Compressed RGB, normalized unsigned. Not available on multisample textures.

CompressedRGBA

Compressed RGBA, normalized unsigned. Not available on multisample textures.

CompressedRedRgtc1

RGTC compressed red channel, normalized unsigned. Available only on 2D, 2D array, cube map and cube map array textures.

CompressedRGRgtc2

RGTC compressed red and green channel, normalized unsigned. Available only on 2D, 2D array, cube map and cube map array textures.

CompressedSignedRedRgtc1

RGTC compressed red channel, normalized signed. Available only on 2D, 2D array, cube map and cube map array textures.

CompressedSignedRGRgtc2

RGTC compressed red and green channel, normalized signed. Available only on 2D, 2D array, cube map and cube map array textures.

CompressedRGBBptcUnsignedFloat

BPTC compressed RGB, unsigned float. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedRGBBptcSignedFloat

BPTC compressed RGB, signed float. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedRGBABptcUnorm

BPTC compressed RGBA, normalized unsigned. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedSRGBAlphaBptcUnorm

BPTC compressed sRGBA, normalized unsigned. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedRGB8Etc2

ETC2 compressed RGB, normalized unsigned. Available only on 2D, 2D array, cube map and cube map array textures.

CompressedSRGB8Etc2

ETC2 compressed sRGB, normalized unsigned. Available only on 2D, 2D array, cube map and cube map array textures.

CompressedRGB8PunchthroughAlpha1Etc2

ETC2 compressed RGB with punchthrough (single-bit) alpha, normalized unsigned. Available only on 2D, 2D array, cube map and cube map array textures.

CompressedSRGB8PunchthroughAlpha1Etc2

ETC2 compressed sRGB with punchthrough (single-bit) alpha, normalized unsigned. Available only on 2D, 2D array, cube map and cube map array textures.

CompressedRGBA8Etc2Eac

ETC2/EAC compressed RGBA, normalized unsigned. Available only on 2D, 2D array, cube map and cube map array textures.

CompressedSRGB8Alpha8Etc2Eac

ETC2/EAC compressed sRGB with alpha, normalized unsigned. Available only on 2D, 2D array, cube map and cube map array textures.

CompressedR11Eac

EAC compressed red channel, normalized unsigned. Available only on 2D, 2D array, cube map and cube map array textures.

CompressedSignedR11Eac

EAC compressed red channel, normalized signed. Available only on 2D, 2D array, cube map and cube map array textures.

CompressedRG11Eac

EAC compressed red and green channel, normalized unsigned. Available only on 2D, 2D array, cube map and cube map array textures.

CompressedSignedRG11Eac

EAC compressed red and green channel, normalized signed. Available only on 2D, 2D array, cube map and cube map array textures.

CompressedRGBS3tcDxt1

S3TC DXT1 compressed RGB. Available only on 2D, 2D array, cube map and cube map array textures.

CompressedRGBAS3tcDxt1

S3TC DXT1 compressed RGBA. Available only on 2D, 2D array, cube map and cube map array textures.

CompressedRGBAS3tcDxt3

S3TC DXT3 compressed RGBA. Available only on 2D, 2D array, cube map and cube map array textures.

CompressedRGBAS3tcDxt5

S3TC DXT5 compressed RGBA. Available only on 2D, 2D array, cube map and cube map array textures.

CompressedRGBAAstc4x4

ASTC compressed RGBA with 4x4 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedSRGB8Alpha8Astc4x4

ASTC compressed sRGB with alpha with 4x4 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedRGBAAstc5x4

ASTC compressed RGBA with 5x4 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedSRGB8Alpha8Astc5x4

ASTC compressed sRGB with alpha with 5x4 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedRGBAAstc5x5

ASTC compressed RGBA with 5x5 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedSRGB8Alpha8Astc5x5

ASTC compressed sRGB with alpha with 5x5 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedRGBAAstc6x5

ASTC compressed RGBA with 6x5 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedSRGB8Alpha8Astc6x5

ASTC compressed sRGB with alpha with 6x5 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedRGBAAstc6x6

ASTC compressed RGBA with 6x6 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedSRGB8Alpha8Astc6x6

ASTC compressed sRGB with alpha with 6x6 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedRGBAAstc8x5

ASTC compressed RGBA with 8x5 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedSRGB8Alpha8Astc8x5

ASTC compressed sRGB with alpha with 8x5 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedRGBAAstc8x6

ASTC compressed RGBA with 8x6 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedSRGB8Alpha8Astc8x6

ASTC compressed sRGB with alpha with 8x6 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedRGBAAstc8x8

ASTC compressed RGBA with 8x8 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedSRGB8Alpha8Astc8x8

ASTC compressed sRGB with alpha with 8x8 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedRGBAAstc10x5

ASTC compressed RGBA with 10x5 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedSRGB8Alpha8Astc10x5

ASTC compressed sRGB with alpha with 10x5 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedRGBAAstc10x6

ASTC compressed RGBA with 10x6 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedSRGB8Alpha8Astc10x6

ASTC compressed sRGB with alpha with 10x6 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedRGBAAstc10x8

ASTC compressed RGBA with 10x8 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedSRGB8Alpha8Astc10x8

ASTC compressed sRGB with alpha with 10x8 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedRGBAAstc10x10

ASTC compressed RGBA with 10x10 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedSRGB8Alpha8Astc10x10

ASTC compressed sRGB with alpha with 10x10 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedRGBAAstc12x10

ASTC compressed RGBA with 12x10 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedSRGB8Alpha8Astc12x10

ASTC compressed sRGB with alpha with 12x10 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedRGBAAstc12x12

ASTC compressed RGBA with 12x12 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

CompressedSRGB8Alpha8Astc12x12

ASTC compressed sRGB with alpha with 12x12 blocks. Available only on 2D, 3D, 2D array, cube map and cube map array textures.

DepthComponent

Depth component, size implementation-dependent. Not supported in 3D textures. Not allowed in unemulated *Texture::setStorage() calls, in that case use e.g. TextureFormat::DepthComponent24 instead.

DepthComponent16

Depth component, 16bit. Not supported in 3D textures.

DepthComponent24

Depth component, 24bit. Not supported in 3D textures.

DepthComponent32

Depth component, 32bit. Not supported in 3D textures.

DepthComponent32F

Depth component, 32bit float. Not supported in 3D textures.

StencilIndex8

Stencil index, 8bit. Not supported in 3D textures.

DepthStencil

Depth and stencil component, size implementation-dependent. Not supported in 3D textures. Not allowed in unemulated *Texture::setStorage() calls, in that case use e.g. TextureFormat::Depth24Stencil8 instead.

Depth24Stencil8

24bit depth and 8bit stencil component. Not supported in 3D textures.

Depth32FStencil8

32bit float depth component and 8bit stencil component. Not supported in 3D textures.

enum class Magnum::Version: Int

OpenGL version.

Enumerators
None
GL210
GL300
GL310
GL320
GL330
GL400
GL410
GL420
GL430
GL440
GL450
GLES200

On desktop OpenGL, all related functionality is present in extension ARB_ES2_compatibility (OpenGL 4.1), so testing for this version using Context::isVersionSupported() is equivalent to testing for availability of that extension.

GLES300

On desktop OpenGL, all related functionality is present in extension ARB_ES3_compatibility (OpenGL 4.3), so testing for this version using Context::isVersionSupported() is equivalent to testing for availability of that extension.

GLES310

On desktop OpenGL, all related functionality is present in extension ARB_ES3_1_compatibility (OpenGL 4.5), so testing for this version using Context::isVersionSupported() is equivalent to testing for availability of that extension.

Typedef documentation

typedef Containers::EnumSet<FramebufferBlit> Magnum::FramebufferBlitMask

Mask for framebuffer blitting.

template<class T>
using Magnum::BasicColor3 = Math::Color3<T>

Color in linear RGB color space.

template<class T>
using Magnum::BasicColor4 = Math::Color4<T>

Color in linear RGBA color space.

typedef PixelFormat Magnum::ColorFormat

Format of pixel data.

typedef PixelType Magnum::ColorType

Type of pixel data.

typedef CompressedPixelFormat Magnum::CompressedColorFormat

Format of compressed pixel data.

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.

template<UnsignedInt dimensions>
using Magnum::ImageReference = ImageView<dimensions>

Image view.

typedef ImageView1D Magnum::ImageReference1D

One-dimensional image view.

typedef ImageView2D Magnum::ImageReference2D

Two-dimensional image view.

typedef ImageView3D Magnum::ImageReference3D

Three-dimensional image view.

typedef MultisampleTexture<2> Magnum::MultisampleTexture2D

Two-dimensional multisample texture.

typedef MultisampleTexture<3> Magnum::MultisampleTexture2DArray

Two-dimensional multisample texture array.

typedef Texture<1> Magnum::Texture1D

One-dimensional texture.

typedef Texture<3> Magnum::Texture3D

Three-dimensional texture.

typedef TextureArray<1> Magnum::Texture1DArray

One-dimensional texture array.

typedef TextureArray<2> Magnum::Texture2DArray

Two-dimensional texture array.

typedef std::uint64_t Magnum::UnsignedLong

Unsigned long (64bit)

typedef std::int64_t Magnum::Long

Signed long (64bit)

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

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

4x4 float transformation matrix

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

3x3 float matrix

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

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

4x4 float matrix

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

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

3x3 double transformation matrix

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

4x4 double transformation matrix

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

3x3 double matrix

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

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

4x4 double matrix

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

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.


template<class T>
Debug& Magnum::operator<<(Debug& debug, Attribute<T>::Components)

Debug output operator.


template<class T>
Debug& Magnum::operator<<(Debug& debug, Attribute<T>::DataType)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, Buffer::TargetHint value)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, Buffer::Target value)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, Context::Flag value)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, Context::Flags value)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, Context::DetectedDriver value)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, Context::DetectedDrivers value)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, DebugOutput::Source value)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, DebugOutput::Type value)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, DebugOutput::Severity value)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, DebugMessage::Source value)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, DebugMessage::Type value)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, DebugGroup::Source value)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, DefaultFramebuffer::Status value)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, Framebuffer::Status value)

Debug output operator.


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

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, Mesh::IndexType value)

Debug output operator.


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

Debug output operator.


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

Debug output operator.


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

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, Renderer::Error value)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, Renderer::GraphicsResetStatus value)

Debug output operator.


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, Sampler::Filter value)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, Sampler::Mipmap value)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, Sampler::Wrapping value)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, Sampler::CompareMode value)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, Sampler::CompareFunction value)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, Sampler::DepthStencilMode value)

Debug output operator.


Debug& Magnum::operator<<(Debug& debug, Shader::Type value)

Debug output operator.


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

Major and minor version number from enum value.

bool Magnum::isVersionES(Version version) constexpr

Whether given version is OpenGL ES or WebGL.

Always true on OpenGL ES and WebGL build.

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

Debug output operator.


Variable documentation

NoCreateT Magnum::NoCreate constexpr

No creation tag.

Use for construction without creating the underlying OpenGL object.