2012 Khronos Group
glTexStorage3DMultisample 3G
glTexStorage3DMultisample specify storage for a two-dimensional multisample array texture

## C Specification

void `glTexStorage3DMultisample` GLenum target GLsizei samples GLenum internalformat GLsizei width GLsizei height GLsizei depth GLboolean fixedsamplelocations

## Parameters

target

  Specify the target of the operation. target must be `GL_TEXTURE_2D_MULTISAMPLE_ARRAY` or `GL_PROXY_TEXTURE_2D_MULTISAMPLE_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.

depth

  Specifies the depth of the texture, in layers.

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

`glTexStorage3DMultisample` specifies the storage requirements for a two-dimensional multisample array 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 color-renderable, depth-renderable, or stencil-renderable format. width and height specify the width and height, respectively, of the texture and depth specifies the depth (or the number of layers) 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.

## 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 depth is less than 1 or greater than the value of `GL_MAX_ARRAY_TEXTURE_LAYERS`.

`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`.

## Associated Gets

glGetInteger with arguments `GL_MAX_TEXTURE_SIZE`, `GL_MAX_ARRAY_TEXTURE_LEVELS`, `GL_TEXTURE_VIEW_MIN_LAYER`, `GL_TEXTURE_VIEW_NUM_LAYERS`, or `GL_TEXTURE_IMMUTABLE_LEVELS`.

## See Also

glTexImage3D, glTexImage3DMultisample, glTexStorage1D, glTexStorage2DMultisample, glTexStorage3D.

## 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/.