@ -46,6 +46,7 @@ or WebGL.
@ see @ ref Texture , @ ref CubeMapTexture , @ ref CubeMapTextureArray
*/
enum class TextureFormat : GLenum {
# if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* Red component , normalized unsigned , size implementation - dependent . Not
* allowed in unemulated @ ref Texture : : setStorage ( ) " *Texture::setStorage() "
@ -53,7 +54,9 @@ enum class TextureFormat: GLenum {
* instead .
* @ requires_gl30 Extension @ extension { ARB , texture_rg }
* @ requires_gles30 Extension @ es_extension { EXT , texture_rg } in OpenGL ES
* 2.0
* 2.0 .
* @ requires_webgl20 Not available in WebGL 1.0 , see @ ref TextureFormat : : Luminance
* for an alternative .
* @ deprecated_gl Prefer to use the exactly specified version of this
* format , e . g . @ ref TextureFormat : : R8 .
*/
@ -70,13 +73,17 @@ enum class TextureFormat: GLenum {
* @ es_extension { EXT , texture_storage } in OpenGL ES 2.0 . For texture
* storage only , for image specification use @ ref TextureFormat : : Red
* instead .
* @ requires_webgl20 Not available in WebGL 1.0 , see @ ref TextureFormat : : Luminance
* for an alternative .
*/
# ifndef MAGNUM_TARGET_GLES2
R8 = GL_R8 ,
# else
R8 = GL_R8_EXT ,
# endif
# endif
# if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* Red and green component , normalized unsigned , size
* implementation - dependent . Not allowed in unemulated
@ -84,7 +91,9 @@ enum class TextureFormat: GLenum {
* use @ ref TextureFormat : : RG8 " TextureFormat::RG8 " instead .
* @ requires_gl30 Extension @ extension { ARB , texture_rg }
* @ requires_gles30 Extension @ es_extension { EXT , texture_rg } in OpenGL ES
* 2.0
* 2.0 .
* @ requires_webgl20 Not available in WebGL 1.0 , see
* @ ref TextureFormat : : LuminanceAlpha for an alternative .
* @ deprecated_gl Prefer to use the exactly specified version of this
* format , e . g . @ ref TextureFormat : : RG8 .
*/
@ -101,12 +110,15 @@ enum class TextureFormat: GLenum {
* @ es_extension { EXT , texture_storage } in OpenGL ES 2.0 . For texture
* storage only , for image specification use @ ref TextureFormat : : RG
* instead .
* @ requires_webgl20 Not available in WebGL 1.0 , see
* @ ref TextureFormat : : LuminanceAlpha for an alternative .
*/
# ifndef MAGNUM_TARGET_GLES2
RG8 = GL_RG8 ,
# else
RG8 = GL_RG8_EXT ,
# endif
# endif
/**
* RGB , normalized unsigned , size implementation - dependent . Not allowed in
@ -117,17 +129,22 @@ enum class TextureFormat: GLenum {
*/
RGB = GL_RGB ,
# if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* RGB , each component normalized unsigned byte .
* @ requires_gles30 Extension @ es_extension { OES , required_internalformat }
* ( for image specification ) or @ es_extension { EXT , texture_storage }
* ( for texture storage ) in OpenGL ES 2.0
* ( for texture storage ) in OpenGL ES 2.0 . Use @ ref TextureFormat : : RGB
* otherwise .
* @ requires_webgl20 Not available in WebGL 1.0 , use
* @ ref TextureFormat : : RGB instead .
*/
# ifndef MAGNUM_TARGET_GLES2
RGB8 = GL_RGB8 ,
# else
RGB8 = GL_RGB8_OES ,
# endif
# endif
/**
* RGBA , normalized unsigned , size implementation - dependent . Not allowed in
@ -138,23 +155,29 @@ enum class TextureFormat: GLenum {
*/
RGBA = GL_RGBA ,
# if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* RGBA , each component normalized unsigned byte .
* @ requires_gles30 Extension @ es_extension { OES , required_internalformat }
* ( for image specification ) or @ es_extension { EXT , texture_storage }
* ( for texture storage ) in OpenGL ES 2.0
* ( for texture storage ) in OpenGL ES 2.0 . Use @ ref TextureFormat : : RGBA
* otherwise .
* @ requires_webgl20 Not available in WebGL 1.0 , use
* @ ref TextureFormat : : RGBA instead .
*/
# ifndef MAGNUM_TARGET_GLES2
RGBA8 = GL_RGBA8 ,
# else
RGBA8 = GL_RGBA8_OES ,
# endif
# endif
# ifndef MAGNUM_TARGET_GLES2
/**
* Red component , normalized signed byte .
* @ requires_gl31 Extension @ extension { EXT , texture_snorm }
* @ requires_gles30 Only unsigned formats are available in OpenGL ES 2.0 .
* @ requires_webgl20 Only unsigned formats are available in WebGL 1.0 .
*/
R8Snorm = GL_R8_SNORM ,
@ -162,6 +185,7 @@ enum class TextureFormat: GLenum {
* Red and green component , each normalized signed byte .
* @ requires_gl31 Extension @ extension { EXT , texture_snorm }
* @ requires_gles30 Only unsigned formats are available in OpenGL ES 2.0 .
* @ requires_webgl20 Only unsigned formats are available in WebGL 1.0 .
*/
RG8Snorm = GL_RG8_SNORM ,
@ -169,6 +193,7 @@ enum class TextureFormat: GLenum {
* RGB , each component normalized signed byte .
* @ requires_gl31 Extension @ extension { EXT , texture_snorm }
* @ requires_gles30 Only unsigned formats are available in OpenGL ES 2.0 .
* @ requires_webgl20 Only unsigned formats are available in WebGL 1.0 .
*/
RGB8Snorm = GL_RGB8_SNORM ,
@ -176,6 +201,7 @@ enum class TextureFormat: GLenum {
* RGBA , each component normalized signed byte .
* @ requires_gl31 Extension @ extension { EXT , texture_snorm }
* @ requires_gles30 Only unsigned formats are available in OpenGL ES 2.0 .
* @ requires_webgl20 Only unsigned formats are available in WebGL 1.0 .
*/
RGBA8Snorm = GL_RGBA8_SNORM ,
# endif
@ -185,7 +211,7 @@ enum class TextureFormat: GLenum {
* Red component , normalized unsigned short .
* @ requires_gl30 Extension @ extension { ARB , texture_rg }
* @ requires_gl Only byte - sized normalized formats are available in OpenGL
* ES .
* ES and WebGL .
*/
R16 = GL_R16 ,
@ -193,21 +219,21 @@ enum class TextureFormat: GLenum {
* Red and green component , each normalized unsigned short .
* @ requires_gl30 Extension @ extension { ARB , texture_rg }
* @ requires_gl Only byte - sized normalized formats are available in OpenGL
* ES .
* ES and WebGL .
*/
RG16 = GL_RG16 ,
/**
* RGB , each component normalized unsigned short .
* @ requires_gl Only byte - sized normalized formats are available in OpenGL
* ES .
* ES and WebGL .
*/
RGB16 = GL_RGB16 ,
/**
* RGBA , each component normalized unsigned short .
* @ requires_gl Only byte - sized normalized formats are available in OpenGL
* ES .
* ES and WebGL .
*/
RGBA16 = GL_RGBA16 ,
@ -215,7 +241,7 @@ enum class TextureFormat: GLenum {
* Red component , normalized signed short .
* @ requires_gl31 Extension @ extension { EXT , texture_snorm }
* @ requires_gl Only byte - sized normalized formats are available in OpenGL
* ES .
* ES and WebGL .
*/
R16Snorm = GL_R16_SNORM ,
@ -223,7 +249,7 @@ enum class TextureFormat: GLenum {
* Red and green component , each normalized signed short .
* @ requires_gl31 Extension @ extension { EXT , texture_snorm }
* @ requires_gl Only byte - sized normalized formats are available in OpenGL
* ES .
* ES and WebGL .
*/
RG16Snorm = GL_RG16_SNORM ,
@ -231,7 +257,7 @@ enum class TextureFormat: GLenum {
* RGB , each component normalized signed short .
* @ requires_gl31 Extension @ extension { EXT , texture_snorm }
* @ requires_gl Only byte - sized normalized formats are available in OpenGL
* ES .
* ES and WebGL .
*/
RGB16Snorm = GL_RGB16_SNORM ,
@ -239,7 +265,7 @@ enum class TextureFormat: GLenum {
* RGBA , each component normalized signed short .
* @ requires_gl31 Extension @ extension { EXT , texture_snorm }
* @ requires_gl Only byte - sized normalized formats are available in OpenGL
* ES .
* ES and WebGL .
*/
RGBA16Snorm = GL_RGBA16_SNORM ,
# endif
@ -250,6 +276,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , texture_rg } and @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
R8UI = GL_R8UI ,
@ -258,6 +286,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , texture_rg } and @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RG8UI = GL_RG8UI ,
@ -266,6 +296,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RGB8UI = GL_RGB8UI ,
@ -274,6 +306,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RGBA8UI = GL_RGBA8UI ,
@ -282,6 +316,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , texture_rg } and @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
R8I = GL_R8I ,
@ -290,6 +326,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , texture_rg } and @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RG8I = GL_RG8I ,
@ -298,6 +336,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RGB8I = GL_RGB8I ,
@ -306,6 +346,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RGBA8I = GL_RGBA8I ,
@ -314,6 +356,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , texture_rg } and @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
R16UI = GL_R16UI ,
@ -322,6 +366,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , texture_rg } and @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RG16UI = GL_RG16UI ,
@ -330,6 +376,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RGB16UI = GL_RGB16UI ,
@ -338,6 +386,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RGBA16UI = GL_RGBA16UI ,
@ -346,6 +396,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , texture_rg } and @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
R16I = GL_R16I ,
@ -354,6 +406,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , texture_rg } and @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RG16I = GL_RG16I ,
@ -362,6 +416,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RGB16I = GL_RGB16I ,
@ -370,6 +426,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RGBA16I = GL_RGBA16I ,
@ -378,6 +436,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , texture_rg } and @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
R32UI = GL_R32UI ,
@ -386,6 +446,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , texture_rg } and @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RG32UI = GL_RG32UI ,
@ -394,6 +456,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RGB32UI = GL_RGB32UI ,
@ -402,6 +466,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RGBA32UI = GL_RGBA32UI ,
@ -410,6 +476,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , texture_rg } and @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
R32I = GL_R32I ,
@ -418,6 +486,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , texture_rg } and @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RG32I = GL_RG32I ,
@ -426,6 +496,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RGB32I = GL_RGB32I ,
@ -434,6 +506,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { EXT , texture_integer }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RGBA32I = GL_RGBA32I ,
@ -442,6 +516,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , texture_rg } and @ extension { ARB , texture_float }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
R16F = GL_R16F ,
@ -450,6 +526,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , texture_rg } and @ extension { ARB , texture_float }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RG16F = GL_RG16F ,
@ -458,6 +536,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , texture_float }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RGB16F = GL_RGB16F ,
@ -466,6 +546,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , texture_float }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RGBA16F = GL_RGBA16F ,
@ -474,6 +556,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , texture_rg } and @ extension { ARB , texture_float }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
R32F = GL_R32F ,
@ -482,6 +566,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , texture_rg } and @ extension { ARB , texture_float }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RG32F = GL_RG32F ,
@ -490,6 +576,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , texture_float }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RGB32F = GL_RGB32F ,
@ -498,6 +586,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , texture_float }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RGBA32F = GL_RGBA32F ,
# endif
@ -507,8 +597,8 @@ enum class TextureFormat: GLenum {
* Luminance , normalized unsigned , single value used for all RGB channels .
* Size implementation - dependent . Not allowed in unemulated
* @ ref Texture : : setStorage ( ) " *Texture::setStorage() " calls .
* @ requires_gles20 Not available in ES 3.0 or desktop OpenGL . Use
* @ ref TextureFormat : : R8 instead .
* @ requires_gles20 Not available in OpenGL ES 3.0 , WebGL 2.0 or desktop
* OpenGL . Use @ ref TextureFormat : : R8 instead .
* @ deprecated_gl Included for compatibility reasons only , use
* @ ref TextureFormat : : R8 instead .
*/
@ -519,8 +609,8 @@ enum class TextureFormat: GLenum {
* RGB channels , second value is used for alpha channel . Size
* implementation - dependent . Not allowed in unemulated
* @ ref Texture : : setStorage ( ) " *Texture::setStorage() " calls .
* @ requires_gles20 Not available in ES 3.0 or desktop OpenGL . Use
* @ ref TextureFormat : : RG8 instead .
* @ requires_gles20 Not available in OpenGL ES 3.0 , WebGL 2.0 or desktop
* OpenGL . Use @ ref TextureFormat : : RG8 instead .
* @ deprecated_gl Included for compatibility reasons only , use
* @ ref TextureFormat : : RG8 instead .
*/
@ -530,20 +620,20 @@ enum class TextureFormat: GLenum {
# ifndef MAGNUM_TARGET_GLES
/**
* RGB , normalized unsigned , red and green component 3 bit , blue 2 bit .
* @ requires_gl Packed 8 bit types are not available in OpenGL ES .
* @ requires_gl Packed 8 bit types are not available in OpenGL ES or WebGL .
*/
R3B3G2 = GL_R3_G3_B2 ,
/**
* RGB , each component normalized unsigned 4 bit .
* @ requires_gl Packed 12 bit types are not available in OpenGL ES .
* @ requires_gl Packed 12 bit types are not available in OpenGL ES or WebGL .
*/
RGB4 = GL_RGB4 ,
/**
* RGB , each component normalized unsigned 5 bit .
* @ requires_gl Use @ ref TextureFormat : : RGB5A1 or @ ref TextureFormat : : RGB565
* in OpenGL ES .
* in OpenGL ES or WebGL .
*/
RGB5 = GL_RGB5 ,
# endif
@ -552,11 +642,13 @@ enum class TextureFormat: GLenum {
* RGB , normalized unsigned , red and blue component 5 bit , green 6 bit .
* @ requires_gles30 Extension @ es_extension { OES , required_internalformat }
* ( for image specification ) or @ es_extension { EXT , texture_storage }
* ( for texture storage ) in OpenGL ES 2.0
* ( for texture storage ) in OpenGL ES 2.0 .
* @ requires_webgl20 Not available in WebGL 1.0 , see @ ref TextureFormat : : RGB
* for an alternative .
*/
RGB565 = GL_RGB565 ,
# ifndef MAGNUM_TARGET_GLES3
# if !defined(MAGNUM_TARGET_GLES3) && !defined(MAGNUM_TARGET_WEBGL)
/**
* RGB , each component normalized unsigned 10 bit .
* @ requires_es_extension Extension @ es_extension { EXT , texture_type_2_10_10_10_REV }
@ -564,6 +656,8 @@ enum class TextureFormat: GLenum {
* specification ) or @ es_extension { EXT , texture_storage } ( for texture
* storage ) in OpenGL ES 2.0 . Included for compatibility reasons only ,
* use @ ref TextureFormat : : RGB10A2 in OpenGL ES 3.0 instead .
* @ requires_gles Not available in WebGL , use @ ref TextureFormat : : RGB10A2
* instead .
*/
# ifndef MAGNUM_TARGET_GLES
RGB10 = GL_RGB10 ,
@ -575,7 +669,7 @@ enum class TextureFormat: GLenum {
# ifndef MAGNUM_TARGET_GLES
/**
* RGB , each component normalized unsigned 12 bit .
* @ requires_gl Packed 36 bit types are not available in OpenGL ES .
* @ requires_gl Packed 36 bit types are not available in OpenGL ES or WebGL .
*/
RGB12 = GL_RGB12 ,
# endif
@ -586,6 +680,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { EXT , packed_float }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
R11FG11FB10F = GL_R11F_G11F_B10F ,
@ -593,6 +689,7 @@ enum class TextureFormat: GLenum {
* RGB , unsigned with exponent , each RGB component 9 bit , exponent 5 bit .
* @ requires_gl30 Extension @ extension { EXT , texture_shared_exponent }
* @ requires_gles30 Use @ ref TextureFormat : : RGB in OpenGL ES 2.0 instead .
* @ requires_webgl20 Use @ ref TextureFormat : : RGB in WebGL 1.0 instead .
*/
RGB9E5 = GL_RGB9_E5 ,
# endif
@ -602,6 +699,7 @@ enum class TextureFormat: GLenum {
* unemulated @ ref Texture : : setStorage ( ) " *Texture::setStorage() " calls , in
* that case use @ ref TextureFormat : : SRGB8 " TextureFormat::SRGB8 " instead .
* @ requires_es_extension Extension @ es_extension { EXT , sRGB }
* @ requires_webgl_extension Extension @ webgl_extension { EXT , sRGB }
* @ deprecated_gl Prefer to use the exactly specified version of this
* format , i . e . @ ref TextureFormat : : SRGB8 .
* @ todo is this allowed in core ?
@ -616,6 +714,7 @@ enum class TextureFormat: GLenum {
/**
* sRGB , each component normalized unsigned byte .
* @ requires_gles30 Use @ ref TextureFormat : : SRGB in OpenGL ES 2.0 instead .
* @ requires_webgl20 Use @ ref TextureFormat : : SRGB in WebGL 1.0 instead .
*/
SRGB8 = GL_SRGB8 ,
# endif
@ -623,7 +722,7 @@ enum class TextureFormat: GLenum {
# ifndef MAGNUM_TARGET_GLES
/**
* RGBA , normalized unsigned , each component 2 bit .
* @ requires_gl Packed 8 bit types are not available in OpenGL ES .
* @ requires_gl Packed 8 bit types are not available in OpenGL ES or WebGL .
*/
RGBA2 = GL_RGBA2 ,
# endif
@ -632,7 +731,10 @@ enum class TextureFormat: GLenum {
* RGBA , normalized unsigned , each component 4 bit .
* @ requires_gles30 Extension @ es_extension { OES , required_internalformat }
* ( for image specification ) or @ es_extension { EXT , texture_storage }
* ( for texture storage ) in OpenGL ES 2.0
* ( for texture storage ) in OpenGL ES 2.0 . Use @ ref TextureFormat : : RGBA
* otherwise .
* @ requires_webgl20 Not available in WebGL 1.0 , use @ ref TextureFormat : : RGBA
* instead .
*/
RGBA4 = GL_RGBA4 ,
@ -640,22 +742,28 @@ enum class TextureFormat: GLenum {
* RGBA , normalized unsigned , each RGB component 5 bit , alpha 1 bit .
* @ requires_gles30 Extension @ es_extension { OES , required_internalformat }
* ( for image specification ) or @ es_extension { EXT , texture_storage }
* ( for texture storage ) in OpenGL ES 2.0
* ( for texture storage ) in OpenGL ES 2.0 . Use @ ref TextureFormat : : RGBA
* otherwise .
* @ requires_webgl20 Not available in WebGL 1.0 , use @ ref TextureFormat : : RGBA
* instead .
*/
RGB5A1 = GL_RGB5_A1 ,
# if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* RGBA , normalized unsigned , each RGB component 10 bit , alpha 2 bit .
* @ requires_gles30 Extension @ es_extension { EXT , texture_type_2_10_10_10_REV }
* and either @ es_extension { OES , required_internalformat } ( for image
* specification ) or @ es_extension { EXT , texture_storage } ( for texture
* storage ) in OpenGL ES 2.0
* storage ) in OpenGL ES 2.0 .
* @ requires_webgl20 Not available in WebGL 1.0 .
*/
# ifndef MAGNUM_TARGET_GLES2
RGB10A2 = GL_RGB10_A2 ,
# else
RGB10A2 = GL_RGB10_A2_EXT ,
# endif
# endif
# ifndef MAGNUM_TARGET_GLES2
/**
@ -663,6 +771,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl33 Extension @ extension { ARB , texture_rgb10_a2ui }
* @ requires_gles30 Only normalized integral formats are available in
* OpenGL ES 2.0 .
* @ requires_webgl20 Only normalized integral formats are available in
* WebGL 1.0 .
*/
RGB10A2UI = GL_RGB10_A2UI ,
# endif
@ -670,7 +780,7 @@ enum class TextureFormat: GLenum {
# ifndef MAGNUM_TARGET_GLES
/**
* RGBA , each component normalized unsigned 12 bit .
* @ requires_gl Packed 48 bit types are not available in OpenGL ES .
* @ requires_gl Packed 48 bit types are not available in OpenGL ES or WebGL .
*/
RGBA12 = GL_RGBA12 ,
# endif
@ -680,6 +790,7 @@ enum class TextureFormat: GLenum {
* unemulated @ ref Texture : : setStorage ( ) " *Texture::setStorage() " calls , in
* that case use @ ref TextureFormat : : SRGB8Alpha8 " TextureFormat::SRGB8Alpha8 " instead .
* @ requires_es_extension Extension @ es_extension { EXT , sRGB }
* @ requires_webgl_extension Extension @ webgl_extension { EXT , sRGB }
* @ deprecated_gl Prefer to use the exactly specified version of this
* format , i . e . @ ref TextureFormat : : SRGB8Alpha8 .
* @ todo is this allowed in core ?
@ -695,6 +806,8 @@ enum class TextureFormat: GLenum {
* sRGBA , each component normalized unsigned byte .
* @ requires_gles30 Use @ ref TextureFormat : : SRGBAlpha in OpenGL ES 2.0
* instead .
* @ requires_webgl20 Use @ ref TextureFormat : : SRGBAlpha in WebGL 1.0
* instead .
*/
SRGB8Alpha8 = GL_SRGB8_ALPHA8 ,
# endif
@ -704,7 +817,8 @@ enum class TextureFormat: GLenum {
* Compressed red channel , normalized unsigned . * * Not available on
* multisample textures . * *
* @ requires_gl30 Extension @ extension { ARB , texture_rg }
* @ requires_gl Generic texture compression is not available in OpenGL ES .
* @ requires_gl Generic texture compression is not available in OpenGL ES
* or WebGL .
*/
CompressedRed = GL_COMPRESSED_RED ,
@ -712,21 +826,24 @@ enum class TextureFormat: GLenum {
* Compressed red and green channel , normalized unsigned . * * Not available
* on multisample textures . * *
* @ requires_gl30 Extension @ extension { ARB , texture_rg }
* @ requires_gl Generic texture compression is not available in OpenGL ES .
* @ requires_gl Generic texture compression is not available in OpenGL ES
* or WebGL .
*/
CompressedRG = GL_COMPRESSED_RG ,
/**
* Compressed RGB , normalized unsigned . * * Not available on multisample
* textures . * *
* @ requires_gl Generic texture compression is not available in OpenGL ES .
* @ requires_gl Generic texture compression is not available in OpenGL ES
* or WebGL .
*/
CompressedRGB = GL_COMPRESSED_RGB ,
/**
* Compressed RGBA , normalized unsigned . * * Not available on multisample
* textures . * *
* @ requires_gl Generic texture compression is not available in OpenGL ES .
* @ requires_gl Generic texture compression is not available in OpenGL ES
* or WebGL .
*/
CompressedRGBA = GL_COMPRESSED_RGBA ,
@ -734,7 +851,8 @@ enum class TextureFormat: GLenum {
* RGTC compressed red channel , normalized unsigned . * * Not available on
* multisample textures . * *
* @ requires_gl30 Extension @ extension { EXT , texture_compression_rgtc }
* @ requires_gl RGTC texture compression is not available in OpenGL ES .
* @ requires_gl Generic texture compression is not available in OpenGL ES
* or WebGL .
*/
CompressedRedRgtc1 = GL_COMPRESSED_RED_RGTC1 ,
@ -742,7 +860,8 @@ enum class TextureFormat: GLenum {
* RGTC compressed red and green channel , normalized unsigned . * * Not
* available on multisample textures . * *
* @ requires_gl30 Extension @ extension { EXT , texture_compression_rgtc }
* @ requires_gl RGTC texture compression is not available in OpenGL ES .
* @ requires_gl RGTC texture compression is not available in OpenGL ES or
* WebGL .
*/
CompressedRGRgtc2 = GL_COMPRESSED_RG_RGTC2 ,
@ -750,7 +869,8 @@ enum class TextureFormat: GLenum {
* RGTC compressed red channel , normalized signed . * * Not available on
* multisample textures . * *
* @ requires_gl30 Extension @ extension { EXT , texture_compression_rgtc }
* @ requires_gl RGTC texture compression is not available in OpenGL ES .
* @ requires_gl RGTC texture compression is not available in OpenGL ES or
* WebGL .
*/
CompressedSignedRedRgtc1 = GL_COMPRESSED_SIGNED_RED_RGTC1 ,
@ -758,7 +878,8 @@ enum class TextureFormat: GLenum {
* RGTC compressed red and green channel , normalized signed . * * Not
* available on multisample textures . * *
* @ requires_gl30 Extension @ extension { EXT , texture_compression_rgtc }
* @ requires_gl RGTC texture compression is not available in OpenGL ES .
* @ requires_gl RGTC texture compression is not available in OpenGL ES or
* WebGL .
*/
CompressedSignedRGRgtc2 = GL_COMPRESSED_SIGNED_RG_RGTC2 ,
@ -766,7 +887,8 @@ enum class TextureFormat: GLenum {
* BPTC compressed RGB , unsigned float . * * Not available on multisample
* textures . * *
* @ requires_gl42 Extension @ extension { ARB , texture_compression_bptc }
* @ requires_gl BPTC texture compression is not available in OpenGL ES .
* @ requires_gl BPTC texture compression is not available in OpenGL ES or
* WebGL .
*/
CompressedRGBBptcUnsignedFloat = GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT ,
@ -774,7 +896,8 @@ enum class TextureFormat: GLenum {
* BPTC compressed RGB , signed float . * * Not available on multisample
* textures . * *
* @ requires_gl42 Extension @ extension { ARB , texture_compression_bptc }
* @ requires_gl BPTC texture compression is not available in OpenGL ES .
* @ requires_gl BPTC texture compression is not available in OpenGL ES or
* WebGL .
*/
CompressedRGBBptcSignedFloat = GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT ,
@ -782,7 +905,8 @@ enum class TextureFormat: GLenum {
* BPTC compressed RGBA , normalized unsigned . * * Not available on
* multisample textures . * *
* @ requires_gl42 Extension @ extension { ARB , texture_compression_bptc }
* @ requires_gl BPTC texture compression is not available in OpenGL ES .
* @ requires_gl BPTC texture compression is not available in OpenGL ES or
* WebGL .
*/
CompressedRGBABptcUnorm = GL_COMPRESSED_RGBA_BPTC_UNORM ,
@ -790,7 +914,8 @@ enum class TextureFormat: GLenum {
* BPTC compressed sRGBA , normalized unsigned . * * Not available on
* multisample textures . * *
* @ requires_gl42 Extension @ extension { ARB , texture_compression_bptc }
* @ requires_gl BPTC texture compression is not available in OpenGL ES .
* @ requires_gl BPTC texture compression is not available in OpenGL ES or
* WebGL .
*/
CompressedSRGBAlphaBptcUnorm = GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM ,
# endif
@ -801,19 +926,25 @@ enum class TextureFormat: GLenum {
* " *Texture::setStorage() " calls , in that case use e . g .
* @ ref TextureFormat : : DepthComponent24 " TextureFormat::DepthComponent24 " instead .
* @ requires_gles30 Extension @ es_extension { OES , depth_texture } or
* @ es_extension { ANGLE , depth_texture } in OpenGL ES 2.0
* @ es_extension { ANGLE , depth_texture } in OpenGL ES 2.0 .
* @ requires_webgl20 Extension @ webgl_extension { WEBGL , depth_texture } in
* WebGL 1.0 .
* @ deprecated_gl Prefer to use the exactly specified version of this
* format , e . g . @ ref TextureFormat : : DepthComponent24 .
*/
DepthComponent = GL_DEPTH_COMPONENT ,
# if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* Depth component , 16 bit . Not supported in 3 D textures .
* @ requires_gles30 Extension @ es_extension { OES , depth_texture } or
* @ es_extension { ANGLE , depth_texture } and either
* @ es_extension { OES , required_internalformat } ( for image
* specification ) or @ es_extension { EXT , texture_storage } ( for texture
* storage ) in OpenGL ES 2.0
* storage ) in OpenGL ES 2.0 . Use @ ref TextureFormat : : DepthComponent
* otherwise .
* @ requires_webgl20 Not available in WebGL 1.0 , use
* @ ref TextureFormat : : DepthComponent instead .
*/
DepthComponent16 = GL_DEPTH_COMPONENT16 ,
@ -821,27 +952,33 @@ enum class TextureFormat: GLenum {
* Depth component , 24 bit . Not supported in 3 D textures .
* @ requires_gles30 Extension @ es_extension { OES , required_internalformat } ,
* @ es_extension { OES , depth_texture } and @ es_extension { OES , depth24 } in
* OpenGL ES 2.0
* OpenGL ES 2.0 . Use @ ref TextureFormat : : DepthComponent otherwise .
* @ requires_webgl20 Not available in WebGL 1.0 , use
* @ ref TextureFormat : : DepthComponent instead .
*/
# ifndef MAGNUM_TARGET_GLES2
DepthComponent24 = GL_DEPTH_COMPONENT24 ,
# else
DepthComponent24 = GL_DEPTH_COMPONENT24_OES ,
# endif
# endif
# ifndef MAGNUM_TARGET_WEBGL
/**
* Depth component , 32 bit . Not supported in 3 D textures .
* @ requires_es_extension Extension @ es_extension { OES , depth_texture } or
* @ es_extension { ANGLE , depth_texture } and @ es_extension { OES , depth32 }
* and @ es_extension { OES , required_internalformat } ( for image
* specification ) or @ es_extension { EXT , texture_storage } ( for texture
* storage ) in OpenGL ES 2.0
* storage ) in OpenGL ES 2.0 .
* @ requires_gles Not available in WebGL .
*/
# ifndef MAGNUM_TARGET_GLES
DepthComponent32 = GL_DEPTH_COMPONENT32 ,
# else
DepthComponent32 = GL_DEPTH_COMPONENT32_OES ,
# endif
# endif
# ifndef MAGNUM_TARGET_GLES2
/**
@ -849,6 +986,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , depth_buffer_float }
* @ requires_gles30 Only integral depth textures are available in OpenGL ES
* 2.0 .
* @ requires_webgl20 Only integral depth textures are available in WebGL
* 1.0 .
*/
DepthComponent32F = GL_DEPTH_COMPONENT32F ,
# endif
@ -857,7 +996,8 @@ enum class TextureFormat: GLenum {
/**
* Stencil index , 8 bit . Not supported in 3 D textures .
* @ requires_gl44 Extension @ extension { ARB , texture_stencil8 }
* @ requires_gl Only available as renderbuffer format in OpenGL ES .
* @ requires_gl Only available as renderbuffer format in OpenGL ES and
* WebGL .
*/
StencilIndex8 = GL_STENCIL_INDEX8 ,
# endif
@ -870,16 +1010,21 @@ enum class TextureFormat: GLenum {
* instead .
* @ see @ ref Texture : : setDepthStencilMode ( ) " *Texture::setDepthStencilMode() "
* @ requires_gles30 Extension @ es_extension { OES , packed_depth_stencil } or
* @ es_extension { ANGLE , depth_texture } in OpenGL ES 2.0
* @ es_extension { ANGLE , depth_texture } in OpenGL ES 2.0 .
* @ requires_webgl20 Extension @ webgl_extension { WEBGL , depth_texture } in
* WebGL 1.0 .
* @ deprecated_gl Prefer to use exactly specified version of this format ,
* e . g . @ ref TextureFormat : : Depth24Stencil8 .
*/
# ifndef MAGNUM_TARGET_GLES2
DepthStencil = GL_DEPTH_STENCIL ,
# else
/* Using OES version even though WebGL 1.0 *has* DEPTH_STENCIL constant,
because there are no such headers for it */
DepthStencil = GL_DEPTH_STENCIL_OES ,
# endif
# if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2))
/**
* 24 bit depth and 8 bit stencil component . Not supported in 3 D textures .
* @ see @ ref Texture : : setDepthStencilMode ( ) " *Texture::setDepthStencilMode() "
@ -888,13 +1033,16 @@ enum class TextureFormat: GLenum {
* @ es_extension { ANGLE , depth_texture } and either
* @ es_extension { OES , required_internalformat } ( for image
* specification ) or @ es_extension { EXT , texture_storage } ( for texture
* storage ) in OpenGL ES 2.0
* storage ) in OpenGL ES 2.0 .
* @ requires_webgl20 Use @ ref TextureFormat : : DepthStencil in WebGL 1.0
* instead .
*/
# ifdef MAGNUM_TARGET_GLES2
Depth24Stencil8 = GL_DEPTH24_STENCIL8_OES
# else
Depth24Stencil8 = GL_DEPTH24_STENCIL8 ,
# endif
# endif
# ifndef MAGNUM_TARGET_GLES2
/**
@ -904,6 +1052,8 @@ enum class TextureFormat: GLenum {
* @ requires_gl30 Extension @ extension { ARB , depth_buffer_float }
* @ requires_gles30 Only integral depth textures are available in OpenGL ES
* 2.0 .
* @ requires_webgl20 Only integral depth textures are available in WebGL
* 1.0 .
*/
Depth32FStencil8 = GL_DEPTH32F_STENCIL8
# endif