15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    NV_deep_texture3D
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_NV_deep_texture3D
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContact
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Eric Werness, NVIDIA Corporation (ewerness 'at' nvidia.com)
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ciStatus
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    Shipping.
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ciVersion
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ci    Last Modified Date:         April 12, 2010
205bd8deadSopenharmony_ci    Revision:                   1
215bd8deadSopenharmony_ci
225bd8deadSopenharmony_ciNumber
235bd8deadSopenharmony_ci
245bd8deadSopenharmony_ci    424
255bd8deadSopenharmony_ci
265bd8deadSopenharmony_ciDependencies
275bd8deadSopenharmony_ci
285bd8deadSopenharmony_ci    This extension is written against the OpenGL 3.2 specification (Core
295bd8deadSopenharmony_ci    Profile).
305bd8deadSopenharmony_ci
315bd8deadSopenharmony_ciOverview
325bd8deadSopenharmony_ci
335bd8deadSopenharmony_ci    Some applications require 3D textures that have a significant number of
345bd8deadSopenharmony_ci    slices, but less resolution in width and height. In the current spec, the
355bd8deadSopenharmony_ci    maximum value for the size of all three dimensions is specified by a
365bd8deadSopenharmony_ci    single value. This extension adds a second set of limits against which 3D
375bd8deadSopenharmony_ci    textures can be checked if an application needs deeper textures than would
385bd8deadSopenharmony_ci    be allowed by the symmetric texture limits.
395bd8deadSopenharmony_ci
405bd8deadSopenharmony_ciNew Procedures and Functions
415bd8deadSopenharmony_ci
425bd8deadSopenharmony_ci    None
435bd8deadSopenharmony_ci
445bd8deadSopenharmony_ciNew Tokens
455bd8deadSopenharmony_ci
465bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetBooleanv, GetDoublev, GetIntegerv
475bd8deadSopenharmony_ci    and GetFloatv:
485bd8deadSopenharmony_ci
495bd8deadSopenharmony_ci        MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV              0x90D0
505bd8deadSopenharmony_ci        MAX_DEEP_3D_TEXTURE_DEPTH_NV                     0x90D1
515bd8deadSopenharmony_ci
525bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL 3.2 Specification (OpenGL Operation)
535bd8deadSopenharmony_ci
545bd8deadSopenharmony_ci    None
555bd8deadSopenharmony_ci
565bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL 3.2 Specification (Rasterization)
575bd8deadSopenharmony_ci
585bd8deadSopenharmony_ci    (modify 3.8.1 Texture Image Specification on p. 141
595bd8deadSopenharmony_ci
605bd8deadSopenharmony_ci    (add to the discussion of the maximum allowable size of a 3D texture)
615bd8deadSopenharmony_ci
625bd8deadSopenharmony_ci    If the width and height of the texel array for a three-dimensional texture
635bd8deadSopenharmony_ci    are both less than pow(2, j-lod) + 2Bt where j is the log base 2 of
645bd8deadSopenharmony_ci    MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV, then the depth may be up to pow(2,
655bd8deadSopenharmony_ci    m-lod) + 2Bt where m is the log base 2 of MAX_DEEP_3D_TEXTURE_DEPTH_NV.
665bd8deadSopenharmony_ci    The error INVALID_VALUE is generated if the specified image is too large
675bd8deadSopenharmony_ci    to be stored under any conditions.
685bd8deadSopenharmony_ci
695bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL 3.2 Specification (Per-Fragment Operations
705bd8deadSopenharmony_ciand the Frame Buffer)
715bd8deadSopenharmony_ci
725bd8deadSopenharmony_ci    (modify the discussion of FramebufferTexture in 4.4 on p. 228)
735bd8deadSopenharmony_ci    
745bd8deadSopenharmony_ci    If textarget is TEXTURE_3D, then level must be greater than or equal to zero
755bd8deadSopenharmony_ci    and less than or equal to log2 of the larger of the values of
765bd8deadSopenharmony_ci    MAX_3D_TEXTURE_SIZE and MAX_DEEP_3D_TEXTURE_DEPTH_NV.
775bd8deadSopenharmony_ci
785bd8deadSopenharmony_ci    ...
795bd8deadSopenharmony_ci
805bd8deadSopenharmony_ci    layer specifies the layer of a 2-dimensional image within a 3-dimensional
815bd8deadSopenharmony_ci    texture.  An INVALID_VALUE error is generated if layer is larger than the
825bd8deadSopenharmony_ci    larger of the value of MAX_DEEP_3D_TEXTURE_DEPTH_NV-1 and the value of
835bd8deadSopenharmony_ci    MAX_3D_TEXTURE_SIZE-1.
845bd8deadSopenharmony_ci
855bd8deadSopenharmony_ciAdditions to Chapter 5 of the OpenGL 3.2 Specification (Special Functions)
865bd8deadSopenharmony_ci
875bd8deadSopenharmony_ci    None
885bd8deadSopenharmony_ci
895bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL 3.2 Specification (State and
905bd8deadSopenharmony_ciState Requests)
915bd8deadSopenharmony_ci
925bd8deadSopenharmony_ci    None
935bd8deadSopenharmony_ci
945bd8deadSopenharmony_ciAdditions to the AGL/GLX/WGL Specifications
955bd8deadSopenharmony_ci
965bd8deadSopenharmony_ci    None
975bd8deadSopenharmony_ci
985bd8deadSopenharmony_ciErrors
995bd8deadSopenharmony_ci
1005bd8deadSopenharmony_ci    None
1015bd8deadSopenharmony_ci
1025bd8deadSopenharmony_ciNew State
1035bd8deadSopenharmony_ci
1045bd8deadSopenharmony_ci    None
1055bd8deadSopenharmony_ci
1065bd8deadSopenharmony_ciNew Implementation Dependent State
1075bd8deadSopenharmony_ci
1085bd8deadSopenharmony_ci    (add to Table 6.37, p. 302)
1095bd8deadSopenharmony_ci
1105bd8deadSopenharmony_ci                                                    Minimum
1115bd8deadSopenharmony_ci    Get Value                            Type  Get Command  Value  Description         Sec.  Attribute
1125bd8deadSopenharmony_ci    ----------------------------         ----  ----------- ------- ------------------  ----- ---------
1135bd8deadSopenharmony_ci    MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV   Z+   GetIntegerv   64    maximum width and   3.8.1     -
1145bd8deadSopenharmony_ci                                                                   height for deep 3D
1155bd8deadSopenharmony_ci                                                                   textures
1165bd8deadSopenharmony_ci    MAX_DEEP_3D_TEXTURE_DEPTH_NV          Z+   GetIntegerv   64    maximum depth for   3.8.1     -
1175bd8deadSopenharmony_ci                                                                   deep 3D textures
1185bd8deadSopenharmony_ci
1195bd8deadSopenharmony_ci
1205bd8deadSopenharmony_ciIssues
1215bd8deadSopenharmony_ci
1225bd8deadSopenharmony_ci    1) Does this spec require that the texture exposed actually be deep?
1235bd8deadSopenharmony_ci
1245bd8deadSopenharmony_ci    RESOLVED: No. The spec doesn't require that MAX_DEEP_3D_TEXTURE_DEPTH is
1255bd8deadSopenharmony_ci    actually greater than MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT, though the spec is
1265bd8deadSopenharmony_ci    pointless if that isn't the case.
1275bd8deadSopenharmony_ci
1285bd8deadSopenharmony_ci    2) Does the spec guarantee that the entire 3D texture can be bound for
1295bd8deadSopenharmony_ci       rendering?
1305bd8deadSopenharmony_ci
1315bd8deadSopenharmony_ci    RESOLVED: No. The framebuffer may be unsupported at the implementation's
1325bd8deadSopenharmony_ci    discretion. Rendering to a single layer at a time may be supported even if
1335bd8deadSopenharmony_ci    binding the entire 3D texture is unsupported. This is the case with the
1345bd8deadSopenharmony_ci    initial NVIDIA implementation.
1355bd8deadSopenharmony_ci
1365bd8deadSopenharmony_ciRevision History
1375bd8deadSopenharmony_ci
1385bd8deadSopenharmony_ci    Rev.    Date    Author    Changes
1395bd8deadSopenharmony_ci    ----  --------  --------  -----------------------------------------
1405bd8deadSopenharmony_ci    1               ewerness  Internal spec development.
141