• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Name
2
3    ANGLE_get_tex_level_parameter
4
5Name Strings
6
7    GL_ANGLE_get_tex_level_parameter
8
9Contributors
10
11    Geoff Lang, Google
12
13Contact
14
15    Geoff Lang (geofflang 'at' google.com)
16
17Status
18
19    Incomplete
20
21Version
22
23    Last Modified Date: Oct 12, 2020
24    Author Revision: 1
25
26Number
27
28    OpenGL ES Extension XX
29
30Dependencies
31
32    OpenGL ES 2.0 is required.
33
34    This extension is written against the OpenGL ES 3.0.5 specification.
35
36Overview
37
38    This extension allows the user to query information about specific texture
39    levels exposed later in OpenGL ES 3.1.
40
41IP Status
42
43    No known IP claims.
44
45New Procedures and Functions
46
47    void GetTexLevelParameter{if}vANGLE(enum target, int level,
48                                        enum pname, T *params );
49
50New Tokens
51
52    Accepted by the <pname> parameter of GetTexLevelParameter{if}vANGLE:
53
54        TEXTURE_WIDTH                                     0x1000
55        TEXTURE_HEIGHT                                    0x1001
56        TEXTURE_DEPTH                                     0x8071
57        TEXTURE_INTERNAL_FORMAT                           0x1003
58        TEXTURE_RED_SIZE                                  0x805C
59        TEXTURE_GREEN_SIZE                                0x805D
60        TEXTURE_BLUE_SIZE                                 0x805E
61        TEXTURE_ALPHA_SIZE                                0x805F
62        TEXTURE_DEPTH_SIZE                                0x884A
63        TEXTURE_STENCIL_SIZE                              0x88F1
64        TEXTURE_SHARED_SIZE                               0x8C3F
65        TEXTURE_RED_TYPE                                  0x8C10
66        TEXTURE_GREEN_TYPE                                0x8C11
67        TEXTURE_BLUE_TYPE                                 0x8C12
68        TEXTURE_ALPHA_TYPE                                0x8C13
69        TEXTURE_DEPTH_TYPE                                0x8C16
70        TEXTURE_COMPRESSED                                0x86A1
71
72Additions to Chapter 6 of the OpenGL ES 3.0.5 Specification (State and State
73Requests)
74
75    Modify Section 6.1.4 "Texture Queries":
76
77    (Add the following text to the end of the section)
78
79    The commands
80
81        void GetTexLevelParameter{if}vANGLE(enum target, int level,
82                                            enum pname, T *params );
83
84    place information about texture image parameter <pname> for level-of-detail
85    <level> of the specified target into <params>. <pname> must be one of the
86    symbolic values in table 6.11.
87
88    <target> may be one of TEXTURE_2D or one of the cube map face targets from
89    table 3.18, indicating the two-dimensional texture or one of the six distinct
90    2D images making up the cube map texture object. Otherwise an INVALID_ENUM is
91    generated.
92
93    <level> determines which level-of-detail's state is returned. If <level>
94    is negative or larger than the maximum allowable level-of-detail, then an
95    INVALID_VALUE error is generated.
96
97    Note that TEXTURE_CUBE_MAP is not a valid <target> parameter for
98    GetTexLevelParameter{if}vANGLE, because it does not specify a particular
99    cube map face.
100
101    For texture images with uncompressed internal formats, queries of
102    <pname> TEXTURE_RED_TYPE, TEXTURE_GREEN_TYPE, TEXTURE_BLUE_TYPE,
103    TEXTURE_ALPHA_TYPE, and TEXTURE_DEPTH_TYPE return the data type used
104    to store the component. Types NONE, SIGNED_NORMALIZED, UNSIGNED_-
105    NORMALIZED, FLOAT, INT, and UNSIGNED_INT respectively indicate missing,
106    signed normalized fixed-point, unsigned normalized fixed-point,
107    floating-point, signed unnormalized integer, and unsigned unnormalized
108    integer components. Queries of <pname> TEXTURE_RED_SIZE, TEXTURE_GREEN_SIZE,
109    TEXTURE_BLUE_SIZE, TEXTURE_ALPHA_SIZE, TEXTURE_DEPTH_SIZE,
110    TEXTURE_STENCIL_SIZE, and TEXTURE_SHARED_SIZE return the actual resolutions
111    of the stored image components, not the resolutions specified when the image
112    was defined. Invalid <pname> generate an INVALID_ENUM error.
113
114    For texture images with compressed internal formats, the types returned
115    specify how components are interpreted after decompression, while the
116    resolutions returned specify the component resolution of an uncompressed
117    internal format that produces an image of roughly the same quality as the
118    compressed image in question. Since the quality of the implementation's
119    compression algorithm is likely data-dependent, the returned component sizes
120    should be treated only as rough approximations.
121
122    Queries of <pname> TEXTURE_INTERNAL_FORMAT, TEXTURE_WIDTH, TEXTURE_HEIGHT,
123    and TEXTURE_DEPTH return the internal format, width, height, and depth,
124    respectively, as specified when the image array was created.
125
126Errors
127
128    The error INVALID_ENUM is generated by GetTexLevelParameter{if}vANGLE
129    if <target> is not one of TEXTURE_2D, TEXTURE_3D, TEXTURE_2D_ARRAY, one of
130    the cube map face targets from table 3.18, or TEXTURE_2D_MULTISAMPLE_ANGLE.
131
132    The error INVALID_VALUE is generated by GetTexLevelParameter{if}vANGLE
133    if <level> is negative or larger than the maximum allowable level-of-detail.
134
135    The error INVALID_ENUM is generated by GetTexLevelParameter{if}vANGLE
136    if <value> is not one of TEXTURE_RED_TYPE, TEXTURE_GREEN_TYPE,
137    TEXTURE_BLUE_TYPE, TEXTURE_ALPHA_TYPE, TEXTURE_DEPTH_TYPE,
138    TEXTURE_DEPTH_SIZE, TEXTURE_STENCIL_SIZE, TEXTURE_SHARED_SIZE,
139    TEXTURE_WIDTH, TEXTURE_HEIGHT, TEXTURE_DEPTH, TEXTURE_INTERNAL_FORMAT,
140    TEXTURE_RED_SIZE, TEXTURE_GREEN_SIZE, TEXTURE_BLUE_SIZE, TEXTURE_ALPHA_SIZE,
141    or TEXTURE_COMPRESSED.
142
143New State
144
145    (add new table 6.10, Textures (state per texture image), renumber subsequent tables)
146
147                                                              Initial
148    Get Value                Type   Get Command                Value   Description                  Sec.
149    ----------------------   ----   -------------------        ------  ---------------------------  ------
150    TEXTURE_WIDTH             Z+    GetTexLevelParameterANGLE  0       Specified width              3.8
151    TEXTURE_HEIGHT            Z+    GetTexLevelParameterANGLE  0       Specified height (2D/3D)     3.8
152    TEXTURE_DEPTH             Z+    GetTexLevelParameterANGLE  0       Specified depth (3D)         3.8
153    TEXTURE_INTERNAL_FORMAT   E     GetTexLevelParameterANGLE  RGBA    Internal format              3.8
154                                                               or R8   (see section 3.8.14)
155    TEXTURE_x_SIZE            6xZ+  GetTexLevelParameterANGLE  0       Component resolution (x is   3.8
156                                                                       RED, GREEN, BLUE, ALPHA,
157                                                                       DEPTH, or STENCIL)
158    TEXTURE_SHARED_SIZE       Z+    GetTexLevelParameterANGLE  0       Shared exponent field        3.8
159                                                                       resolution
160    TEXTURE_x_TYPE            E     GetTexLevelParameterANGLE  NONE    Component type (x is RED,    6.1.4
161                                                                       GREEN, BLUE, ALPHA, or
162                                                                       DEPTH)
163    TEXTURE_COMPRESSED        B     GetTexLevelParameterANGLE  FALSE   True if image has a          3.8.6
164                                                                       compressed internal format
165
166Issues
167    None
168
169Revision History
170
171    Rev.    Date    Author       Changes
172    ----  --------  ----------   --------------------------------------------
173    1     14/10/20   Geoff Lang  First revision. Adapted from OpenGL ES
174                                 specification 3.1.
175