## Name

glRenderbufferStorageMultisample, glNamedRenderbufferStorageMultisample — establish data storage, format, dimensions and sample count of a renderbuffer object's image

## C Specification

`void glRenderbufferStorageMultisample(` | GLenum target,
| GLsizei samples,
| GLenum internalformat,
| GLsizei width,
| GLsizei height`)`;

`void glNamedRenderbufferStorageMultisample(` | GLuint renderbuffer,
| GLsizei samples,
| GLenum internalformat,
| GLsizei width,
| GLsizei height`)`;

## Parameters

`target`

  Specifies a binding target of the allocation for `glRenderbufferStorageMultisample` function. Must be `GL_RENDERBUFFER`.

`renderbuffer`

  Specifies the name of the renderbuffer object for `glNamedRenderbufferStorageMultisample` function.

`samples`

  Specifies the number of samples to be used for the renderbuffer object's storage.

`internalformat`

  Specifies the internal format to use for the renderbuffer object's image.

`width`

  Specifies the width of the renderbuffer, in pixels.

`height`

  Specifies the height of the renderbuffer, in pixels.

## Description

`glRenderbufferStorageMultisample` and `glNamedRenderbufferStorageMultisample` establish the data storage, format, dimensions and number of samples of a renderbuffer object's image.

For `glRenderbufferStorageMultisample`, the target of the operation, specified by `target` must be `GL_RENDERBUFFER`. For `glNamedRenderbufferStorageMultisample`, `renderbuffer` must be an ID of an existing renderbuffer object. `internalformat` specifies the internal format to be used for the renderbuffer object's storage and must be a color-renderable, depth-renderable, or stencil-renderable format. `width` and `height` are the dimensions, in pixels, of the renderbuffer. Both `width` and `height` must be less than or equal to the value of `GL_MAX_RENDERBUFFER_SIZE`. `samples` specifies the number of samples to be used for the renderbuffer object's image, and must be less than or equal to the value of `GL_MAX_SAMPLES`. If `internalformat` is a signed or unsigned integer format then `samples` must be less than or equal to the value of `GL_MAX_INTEGER_SAMPLES`.

Upon success, `glRenderbufferStorageMultisample` and `glNamedRenderbufferStorageMultisample` delete any existing data store for the renderbuffer image and the contents of the data store after calling either of the functions are undefined.

## Errors

`GL_INVALID_ENUM` is generated by `glRenderbufferStorageMultisample` function if `target` is not `GL_RENDERBUFFER`.

`GL_INVALID_OPERATION` is generated by `glNamedRenderbufferStorageMultisample` function if `renderbuffer` is not the name of an existing renderbuffer object.

`GL_INVALID_VALUE` is generated if `samples` is greater than `GL_MAX_SAMPLES`.

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

`GL_INVALID_OPERATION` is generated if `internalformat` is a signed or unsigned integer format and `samples` is greater than the value of `GL_MAX_INTEGER_SAMPLES`

`GL_INVALID_VALUE` is generated if either of `width` or `height` is negative, or greater than the value of `GL_MAX_RENDERBUFFER_SIZE`.

`GL_OUT_OF_MEMORY` is generated if the GL is unable to create a data store of the requested size.

## Version Support

| OpenGL Version
--- | ---
Function / Feature Name | 2.0 | 2.1 | 3.0 | 3.1 | 3.2 | 3.3 | 4.0 | 4.1 | 4.2 | 4.3 | 4.4 | 4.5
`glNamedRenderbufferStorageMultisample` | - | - | - | - | - | - | - | - | - | - | - | ✔
`glRenderbufferStorageMultisample` | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔

## See Also

glGenRenderbuffers, glBindRenderbuffer, `glNamedRenderbufferStorage`, glRenderbufferStorage, glFramebufferRenderbuffer, glDeleteRenderbuffers

## Copyright

Copyright © 2010-2014 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/.