The texture image specification commands in OpenGL allow each level to be separately specified with different sizes, formats, types and so on, and only imposes consistency checks at draw time. This adds overhead for implementations.
This extension provides a mechanism for specifying the entire structure of a texture in a single call, allowing certain consistency checks and memory allocations to be done up front. Once specified, the format and dimensions of the image array become immutable, to simplify completeness checks in the implementation.
When using this extension, it is no longer possible to supply texture data using TexImage*. Instead, data can be uploaded using TexSubImage*, or produced by other means (such as render-to-texture, mipmap generation, or rendering to a sibling EGLImage).
This extension has complicated interactions with other extensions. The goal of most of these interactions is to ensure that a texture is always mipmap complete (and cube complete for cubemap textures).
Requires OpenGL 1.. Promoted to core in OpenGL 4..
| Modifier and Type | Field and Description |
|---|---|
| public static final int | GL_TEXTURE_IMMUTABLE_FORMAT
Accepted by the |
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| public static void | glTexStorage1D(int
the target of the operation. One of: target, int
the number of texture levels levels, int the sized internal format to be used to store texture image data internalformat, int the width of the texture, in texels width)Simultaneously specifies storage for all levels of a one-dimensional texture. | ||||||||
| public static void | glTexStorage2D(int
the target of the operation. One of: target, int
the number of texture levels levels, int the sized internal format to be used to store texture image data internalformat, int the width of the texture, in texels width, int the height of the texture, in texels height)Simultaneously specifies storage for all levels of a two-dimensional or one-dimensional array texture. | ||||||||
| public static void | glTexStorage3D(int
the target of the operation. One of: target, int
the number of texture levels levels, int the sized internal format to be used to store texture image data internalformat, int the width of the texture, in texels width, int the height of the texture, in texels height, int the depth of the texture, in texels depth)Simultaneously specifies storage for all levels of a three-dimensional, two-dimensional array or cube-map array texture. | ||||||||
| public static native void | glTextureStorage1DEXT(int
the texture object to update texture, int the target of the operation. One of: target, int
the number of texture levels levels, int the sized internal format to be used to store texture image data internalformat, int the width of the texture, in texels width)DSA version of | ||||||||
| public static native void | glTextureStorage2DEXT(int
the texture object to update texture, int the target of the operation. One of: target, int
the number of texture levels levels, int the sized internal format to be used to store texture image data internalformat, int the width of the texture, in texels width, int the height of the texture, in texels height)DSA version of | ||||||||
| public static native void | glTextureStorage3DEXT(int
the texture object to update texture, int the target of the operation. One of: target, int
the number of texture levels levels, int the sized internal format to be used to store texture image data internalformat, int the width of the texture, in texels width, int the height of the texture, in texels height, int the depth of the texture, in texels depth)DSA version of |
| GL_TEXTURE_IMMUTABLE_FORMAT | back to summary |
|---|---|
| public static final int GL_TEXTURE_IMMUTABLE_FORMAT Accepted by the | |
| ARBTextureStorage | back to summary |
|---|---|
| protected ARBTextureStorage() | |
| glTexStorage1D | back to summary | ||
|---|---|---|---|
| public static void glTexStorage1D(int target, int levels, int internalformat, int width) Simultaneously specifies storage for all levels of a one-dimensional texture.
| |||
| glTexStorage2D | back to summary | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| public static void glTexStorage2D(int target, int levels, int internalformat, int width, int height) Simultaneously specifies storage for all levels of a two-dimensional or one-dimensional array texture.
| |||||||||
| glTexStorage3D | back to summary | ||||||
|---|---|---|---|---|---|---|---|
| public static void glTexStorage3D(int target, int levels, int internalformat, int width, int height, int depth) Simultaneously specifies storage for all levels of a three-dimensional, two-dimensional array or cube-map array texture.
| |||||||
| glTextureStorage1DEXT | back to summary | ||
|---|---|---|---|
| public static native void glTextureStorage1DEXT(int texture, int target, int levels, int internalformat, int width) DSA version of
| |||
| glTextureStorage2DEXT | back to summary | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| public static native void glTextureStorage2DEXT(int texture, int target, int levels, int internalformat, int width, int height) DSA version of
| |||||||||
| glTextureStorage3DEXT | back to summary | ||||||
|---|---|---|---|---|---|---|---|
| public static native void glTextureStorage3DEXT(int texture, int target, int levels, int internalformat, int width, int height, int depth) DSA version of
| |||||||