GLAPI/glTexStorage2DMultisample

From OpenGL.org
Jump to: navigation, search
glTexStorage2DMultisample
Core in version 4.4
Core since version 4.3
Core ARB extension ARB_texture_storage_multisample

glTexStorage2DMultisample: specify storage for a two-dimensional multisample texture

Function Definition

 void glTexStorage2DMultisample(GLenum target​, GLsizei samples​, GLenum internalformat​, GLsizei width​, GLsizei height​, GLboolean fixedsamplelocations​);
target
Specify the target of the operation. target​ must be GL_TEXTURE_2D_MULTISAMPLE​ or GL_PROXY_TEXTURE_2D_MULTISAMPLE​.
samples
Specify the number of samples in the texture.
internalformat
Specifies the sized internal format to be used to store texture image data.
width
Specifies the width of the texture, in texels.
height
Specifies the height of the texture, in texels.
fixedsamplelocations
Specifies whether the image will use identical sample locations and the same number of samples for all texels in the image, and the sample locations will not depend on the internal format or size of the image.

Description

glTexStorage2DMultisample specifies the storage requirements for a two-dimensional multisample texture. Once a texture is specified with this command, its format and dimensions become immutable unless it is a proxy texture. The contents of the image may still be modified, however, its storage requirements may not change. Such a texture is referred to as an immutable-format texture.

samples​ specifies the number of samples to be used for the texture and must be greater than zero and less than or equal to the value of GL_MAX_SAMPLES​. internalformat​ must be a format from the tables below. width​ and height​ specify the width and height, respectively, of the texture. If fixedsamplelocations​ is GL_TRUE​, the image will use identical sample locations and the same number of samples for all texels in the image, and the sample locations will not depend on the internal format or size of the image.

Sized Internal Formats
Component Bitdepth
Sized Internal Format Base Internal Format Red Green Blue Alpha Shared
GL_R8​ GL_RED​ 8
GL_R8_SNORM​ GL_RED​ s8
GL_R16​ GL_RED​ 16
GL_R16_SNORM​ GL_RED​ s16
GL_RG8​ GL_RG​ 8 8
GL_RG8_SNORM​ GL_RG​ s8 s8
GL_RG16​ GL_RG​ 16 16
GL_RG16_SNORM​ GL_RG​ s16 s16
GL_R3_G3_B2​ GL_RGB​ 3 3 2
GL_RGB4​ GL_RGB​ 4 4 4
GL_RGB5​ GL_RGB​ 5 5 5
GL_RGB8​ GL_RGB​ 8 8 8
GL_RGB8_SNORM​ GL_RGB​ s8 s8 s8
GL_RGB10​ GL_RGB​ 10 10 10
GL_RGB12​ GL_RGB​ 12 12 12
GL_RGB16_SNORM​ GL_RGB​ 16 16 16
GL_RGBA2​ GL_RGB​ 2 2 2 2
GL_RGBA4​ GL_RGB​ 4 4 4 4
GL_RGB5_A1​ GL_RGBA​ 5 5 5 1
GL_RGBA8​ GL_RGBA​ 8 8 8 8
GL_RGBA8_SNORM​ GL_RGBA​ s8 s8 s8 s8
GL_RGB10_A2​ GL_RGBA​ 10 10 10 2
GL_RGB10_A2UI​ GL_RGBA​ ui10 ui10 ui10 ui2
GL_RGBA12​ GL_RGBA​ 12 12 12 12
GL_RGBA16​ GL_RGBA​ 16 16 16 16
GL_SRGB8​ GL_RGB​ 8 8 8
GL_SRGB8_ALPHA8​ GL_RGBA​ 8 8 8 8
GL_R16F​ GL_RED​ f16
GL_RG16F​ GL_RG​ f16 f16
GL_RGB16F​ GL_RGB​ f16 f16 f16
GL_RGBA16F​ GL_RGBA​ f16 f16 f16 f16
GL_R32F​ GL_RED​ f32
GL_RG32F​ GL_RG​ f32 f32
GL_RGB32F​ GL_RGB​ f32 f32 f32
GL_RGBA32F​ GL_RGBA​ f32 f32 f32 f32
GL_R11F_G11F_B10F​ GL_RGB​ f11 f11 f10
GL_RGB9_E5​ GL_RGB​ 9 9 9 5
GL_R8I​ GL_RED​ i8
GL_R8UI​ GL_RED​ ui8
GL_R16I​ GL_RED​ i16
GL_R16UI​ GL_RED​ ui16
GL_R32I​ GL_RED​ i32
GL_R32UI​ GL_RED​ ui32
GL_RG8I​ GL_RG​ i8 i8
GL_RG8UI​ GL_RG​ ui8 ui8
GL_RG16I​ GL_RG​ i16 i16
GL_RG16UI​ GL_RG​ ui16 ui16
GL_RG32I​ GL_RG​ i32 i32
GL_RG32UI​ GL_RG​ ui32 ui32
GL_RGB8I​ GL_RGB​ i8 i8 i8
GL_RGB8UI​ GL_RGB​ ui8 ui8 ui8
GL_RGB16I​ GL_RGB​ i16 i16 i16
GL_RGB16UI​ GL_RGB​ ui16 ui16 ui16
GL_RGB32I​ GL_RGB​ i32 i32 i32
GL_RGB32UI​ GL_RGB​ ui32 ui32 ui32
GL_RGBA8I​ GL_RGBA​ i8 i8 i8 i8
GL_RGBA8UI​ GL_RGBA​ ui8 ui8 ui8 ui8
GL_RGBA16I​ GL_RGBA​ i16 i16 i16 i16
GL_RGBA16UI​ GL_RGBA​ ui16 ui16 ui16 ui16
GL_RGBA32I​ GL_RGBA​ i32 i32 i32 i32
GL_RGBA32UI​ GL_RGBA​ ui32 ui32 ui32 ui32


Sized Depth and Stencil Internal Formats
Component Bitdepth
Sized Internal Format Base Internal Format Depth Stencil
GL_DEPTH_COMPONENT16​ GL_DEPTH_COMPONENT​ 16
GL_DEPTH_COMPONENT24​ GL_DEPTH_COMPONENT​ 24
GL_DEPTH_COMPONENT32​ GL_DEPTH_COMPONENT​ 32
GL_DEPTH_COMPONENT32F​ GL_DEPTH_COMPONENT​ f32
GL_DEPTH24_STENCIL8​ GL_DEPTH_STENCIL​ 24 8
GL_DEPTH32F_STENCIL8​ GL_DEPTH_STENCIL​ f32 8
GL_STENCIL_INDEX8​ GL_STENCIL_INDEX​ 8


Errors

GL_INVALID_ENUM​ is generated if internalformat​ is not a valid color-renderable, depth-renderable or stencil-renderable format.

GL_INVALID_ENUM​ is generated if target​ is not one of the accepted target enumerants.

GL_INVALID_VALUE​ is generated if width​ or height​ are less than 1 or greater than the value of GL_MAX_TEXTURE_SIZE​.

GL_INVALID_VALUE​ is generated if samples​ is greater than the value of GL_MAX_SAMPLES​.

GL_INVALID_OPERATION​ is generated if the value of GL_TEXTURE_IMMUTABLE_FORMAT​ for the texture bound to target​ is not GL_FALSE​.

See Also

glActiveTexture, glBindTexture, glTexStorage1D, glTexStorage2D, glTexStorage3D, glTexStorage3DMultisample, glTextureView

View textures and S3TC compressed formats

Copyright

Copyright © 2012 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.