GLTEXSTORAGE2D - Online Linux Manual PageSection : 3G
Updated : 01/20/2022
Source : [FIXME: source]
Note : [FIXME: manual]

NAMEglTexStorage2D, glTextureStorage2D − simultaneously specify storage for all levels of a two−dimensional or one−dimensional array texture

C SPECIFICATIONvoid glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); void glTextureStorage2D(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);

PARAMETERStarget Specifies the target to which the texture object is bound for glTexStorage2D​. Must be one of GL_TEXTURE_2D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_RECTANGLE, GL_TEXTURE_CUBE_MAP, GL_PROXY_TEXTURE_2D, GL_PROXY_TEXTURE_1D_ARRAY, GL_PROXY_TEXTURE_RECTANGLE, or GL_PROXY_TEXTURE_CUBE_MAP​. texture Specifies the texture object name for glTextureStorage2D​. The effective target of texture must be one of the valid non−proxy target values above​. levels Specify the number of texture levels​. 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​.

DESCRIPTIONglTexStorage2D and glTextureStorage2D specify the storage requirements for all levels of a two−dimensional texture or one−dimensional texture array simultaneously​. Once a texture is specified with this command, the format and dimensions of all levels 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​. The behavior of glTexStorage2D depends on the target parameter​. When target is GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_TEXTURE_RECTANGLE, GL_PROXY_TEXTURE_RECTANGLE or GL_PROXY_TEXTURE_CUBE_MAP, calling glTexStorage2D is equivalent, assuming no errors are generated, to executing the following pseudo−code: for (i = 0; i < levels; i++) { glTexImage2D(target, i, internalformat, width, height, 0, format, type, NULL); width = max(1, (width / 2)); height = max(1, (height / 2)); }When target is GL_TEXTURE_CUBE_MAP, glTexStorage2D is equivalent to: for (i = 0; i < levels; i++) { for (face in (+X, −X, +Y, −Y, +Z, −Z)) { glTexImage2D(face, i, internalformat, width, height, 0, format, type, NULL); } width = max(1, (width / 2)); height = max(1, (height / 2)); }When target is GL_TEXTURE_1D_ARRAY or GL_PROXY_TEXTURE_1D_ARRAY, glTexStorage2D is equivalent to: for (i = 0; i < levels; i++) { glTexImage2D(target, i, internalformat, width, height, 0, format, type, NULL); width = max(1, (width / 2)); }Calling glTextureStorage2D is equivalent to the above pseudo−code, where target is the effective target of texture and it is as if texture were bound to target for the purposes of glTexImage2D​. Since no texture data is actually provided, the values used in the pseudo−code for format and type are irrelevant and may be considered to be any values that are legal for the chosen internalformat enumerant​. internalformat must be one of the sized internal formats given in Table 1 below, one of the sized depth−component formats GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT24, or GL_DEPTH_COMPONENT16, one of the combined depth−stencil formats, GL_DEPTH32F_STENCIL8, or GL_DEPTH24_STENCIL8, or the stencil−only format, GL_STENCIL_INDEX8​. Upon success, the value of GL_TEXTURE_IMMUTABLE_FORMAT becomes GL_TRUE​. The value of GL_TEXTURE_IMMUTABLE_FORMAT may be discovered by calling glGetTexParameter() with pname set to GL_TEXTURE_IMMUTABLE_FORMAT​. No further changes to the dimensions or format of the texture object may be made​. Using any command that might alter the dimensions or format of the texture object (such as glTexImage2D() or another call to glTexStorage2D) will result in the generation of a GL_INVALID_OPERATION error, even if it would not, in fact, alter the dimensions or format of the object​. .it 1 an-trap
Table ​1. ​Sized Internal Formats Sized Internal Format Base Internal Format Red Bits Green Bits Blue Bits Alpha Bits Shared Bits 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  ​

NOTESGL_STENCIL_INDEX8 is accepted for internalformat only if the GL version is 4​.4 or higher​.

ERRORSGL_INVALID_OPERATION is generated by glTexStorage2D if zero is bound to target​. GL_INVALID_OPERATION is generated by glTextureStorage2D if texture is not the name of an existing texture object​. GL_INVALID_ENUM is generated if internalformat is not a valid sized internal format​. GL_INVALID_ENUM is generated if target or the effective target of texture is not one of the accepted targets described above​. GL_INVALID_VALUE is generated if width, height or levels are less than 1​. GL_INVALID_OPERATION is generated if target is GL_TEXTURE_1D_ARRAY or GL_PROXY_TEXTURE_1D_ARRAY and levels is greater than log 2 width + 1​. GL_INVALID_OPERATION is generated if target is not GL_TEXTURE_1D_ARRAY or GL_PROXY_TEXTURE_1D_ARRAY and levels is greater than log 2 max width ,  ​ height + 1​.

VERSION SUPPORT OpenGL Version Function / Feature Name 2​.0 none;'>none;'>none;'>none;'>none;'>none;'>none;'>none;'>none;'>none;'>none;'>none;'>none;'> 2​.1 3​.0 3​.1 3​.2 3​.3 4​.0 4​.1 4​.2 4​.3 4​.4 4​.5 glTexStorage2D glTextureStorage2D

SEE ALSOglTexImage2D(), glTexStorage1D(), glTexStorage3D()​.

COPYRIGHTCopyright © 2011−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/​.

COPYRIGHT
Copyright © 2011-2014 Khronos Group
0
Johanes Gumabo
Data Size   :   82,203 byte
man-glTextureStorage2D.3GBuild   :   2024-12-05, 20:55   :  
Visitor Screen   :   x
Visitor Counter ( page / site )   :   2 / 198,720
Visitor ID   :     :  
Visitor IP   :   3.15.15.91   :  
Visitor Provider   :   AMAZON-02   :  
Provider Position ( lat x lon )   :   39.962500 x -83.006100   :   x
Provider Accuracy Radius ( km )   :   1000   :  
Provider City   :   Columbus   :  
Provider Province   :   Ohio ,   :   ,
Provider Country   :   United States   :  
Provider Continent   :   North America   :  
Visitor Recorder   :   Version   :  
Visitor Recorder   :   Library   :  
Online Linux Manual Page   :   Version   :   Online Linux Manual Page - Fedora.40 - march=x86-64 - mtune=generic - 24.12.05
Online Linux Manual Page   :   Library   :   lib_c - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Online Linux Manual Page   :   Library   :   lib_m - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Data Base   :   Version   :   Online Linux Manual Page Database - 24.04.13 - march=x86-64 - mtune=generic - fedora-38
Data Base   :   Library   :   lib_c - 23.02.07 - march=x86-64 - mtune=generic - fedora.36

Very long time ago, I have the best tutor, Wenzel Svojanovsky . If someone knows the email address of Wenzel Svojanovsky , please send an email to johanes_gumabo@yahoo.co.id .
If error, please print screen and send to johanes_gumabo@yahoo.co.id
Under development. Support me via PayPal.

ERROR : Need New Coding :         (parse_manual_page_|249|glTexStorage2D.3G|210|it|.it 1 an-trap )