15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    ANGLE_depth_texture
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_ANGLE_depth_texture
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContributors
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Nicolas Capens, TransGaming / Google
125bd8deadSopenharmony_ci    Daniel Koch, TransGaming / NVIDIA
135bd8deadSopenharmony_ci    Shannon Woods, TransGaming / Google
145bd8deadSopenharmony_ci    Kenneth Russell, Google
155bd8deadSopenharmony_ci    Vangelis Kokkevis, Google
165bd8deadSopenharmony_ci    Gregg Tavares, Google
175bd8deadSopenharmony_ci    Contributors to OES_depth_texture
185bd8deadSopenharmony_ci    Contributors to OES_packed_depth_stencil
195bd8deadSopenharmony_ci
205bd8deadSopenharmony_ciContact
215bd8deadSopenharmony_ci
225bd8deadSopenharmony_ci    Shannon Woods, Google (shannonwoods 'at' google.com)
235bd8deadSopenharmony_ci
245bd8deadSopenharmony_ciStatus
255bd8deadSopenharmony_ci
265bd8deadSopenharmony_ci    Implemented in ANGLE.
275bd8deadSopenharmony_ci
285bd8deadSopenharmony_ciVersion
295bd8deadSopenharmony_ci
305bd8deadSopenharmony_ci    Last Modified Date: February 25, 2013
315bd8deadSopenharmony_ci    Revision: #4
325bd8deadSopenharmony_ci
335bd8deadSopenharmony_ciNumber
345bd8deadSopenharmony_ci
355bd8deadSopenharmony_ci    OpenGL ES Extension #138
365bd8deadSopenharmony_ci
375bd8deadSopenharmony_ciDependencies
385bd8deadSopenharmony_ci
395bd8deadSopenharmony_ci    OpenGL ES 2.0 is required.
405bd8deadSopenharmony_ci    This extension is written against the OpenGL ES 2.0.25 specification
415bd8deadSopenharmony_ci
425bd8deadSopenharmony_ci    OES_packed_depth_stencil affects the definition of this extension.
435bd8deadSopenharmony_ci
445bd8deadSopenharmony_ci    EXT_texture_storage affects the definition of this extension.
455bd8deadSopenharmony_ci
465bd8deadSopenharmony_ciOverview
475bd8deadSopenharmony_ci
485bd8deadSopenharmony_ci    This extension defines support for 2D depth and depth-stencil
495bd8deadSopenharmony_ci    textures in an OpenGL ES implementation.
505bd8deadSopenharmony_ci
515bd8deadSopenharmony_ci    This extension incorporates the depth texturing functionality of
525bd8deadSopenharmony_ci    OES_depth_texture and OES_packed_depth_stencil, but does not
535bd8deadSopenharmony_ci    provide the ability to load existing data via TexImage2D or
545bd8deadSopenharmony_ci    TexSubImage2D. This extension also allows implementation
555bd8deadSopenharmony_ci    variability in which components from a sampled depth texture
565bd8deadSopenharmony_ci    contain the depth data. Depth textures created with this
575bd8deadSopenharmony_ci    extension only support 1 level.
585bd8deadSopenharmony_ci
595bd8deadSopenharmony_ciNew Procedures and Functions
605bd8deadSopenharmony_ci
615bd8deadSopenharmony_ci    None
625bd8deadSopenharmony_ci
635bd8deadSopenharmony_ciNew Tokens
645bd8deadSopenharmony_ci
655bd8deadSopenharmony_ci    Accepted by the <format> parameter of TexImage2D and TexSubImage2D and
665bd8deadSopenharmony_ci    <internalformat> parameter of TexImage2D:
675bd8deadSopenharmony_ci
685bd8deadSopenharmony_ci        DEPTH_COMPONENT             0x1902
695bd8deadSopenharmony_ci        DEPTH_STENCIL_OES           0x84F9
705bd8deadSopenharmony_ci
715bd8deadSopenharmony_ci    Accepted by the <type> parameter of TexImage2D, TexSubImage2D:
725bd8deadSopenharmony_ci
735bd8deadSopenharmony_ci        UNSIGNED_SHORT              0x1403
745bd8deadSopenharmony_ci        UNSIGNED_INT                0x1405
755bd8deadSopenharmony_ci        UNSIGNED_INT_24_8_OES       0x84FA
765bd8deadSopenharmony_ci
775bd8deadSopenharmony_ci    Accepted by the <internalformat> parameter of TexStorage2DEXT:
785bd8deadSopenharmony_ci
795bd8deadSopenharmony_ci        DEPTH_COMPONENT16           0x81A5
805bd8deadSopenharmony_ci        DEPTH_COMPONENT32_OES       0x81A7
815bd8deadSopenharmony_ci        DEPTH24_STENCIL8_OES        0x88F0
825bd8deadSopenharmony_ci
835bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL ES 2.0 Specification (OpenGL Operation)
845bd8deadSopenharmony_ci
855bd8deadSopenharmony_ci    Update Section 2.10.5 "Shader Execution" in the subsection titled
865bd8deadSopenharmony_ci    "Texture Access" add a new paragraph before the last paragraph add
875bd8deadSopenharmony_ci    this line:
885bd8deadSopenharmony_ci
895bd8deadSopenharmony_ci    "The stencil index texture internal component is ignored if the base
905bd8deadSopenharmony_ci    internal format is DEPTH_STENCIL_OES.
915bd8deadSopenharmony_ci
925bd8deadSopenharmony_ci    If a vertex shader uses..."
935bd8deadSopenharmony_ci
945bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL ES 2.0 specification (Rasterization)
955bd8deadSopenharmony_ci
965bd8deadSopenharmony_ci    Add the following rows to Table 3.2 (page 62):
975bd8deadSopenharmony_ci
985bd8deadSopenharmony_ci      type Parameter           GL Data Type    Special
995bd8deadSopenharmony_ci      ------------------------------------------------
1005bd8deadSopenharmony_ci      ...                      ...              ...
1015bd8deadSopenharmony_ci      UNSIGNED_SHORT           ushort           No
1025bd8deadSopenharmony_ci      UNSIGNED_INT             uint             No
1035bd8deadSopenharmony_ci      UNSIGNED_INT_24_8_OES    uint             Yes
1045bd8deadSopenharmony_ci
1055bd8deadSopenharmony_ci    Add the following rows to Table 3.3 (page 62):
1065bd8deadSopenharmony_ci
1075bd8deadSopenharmony_ci      Format Name       Element Meaning and Order      Target Buffer
1085bd8deadSopenharmony_ci      ------------------------------------------------------------------
1095bd8deadSopenharmony_ci      ...               ...                            ...
1105bd8deadSopenharmony_ci      DEPTH_COMPONENT   Depth                          Depth
1115bd8deadSopenharmony_ci      DEPTH_STENCIL_OES Depth and Stencil Index        Depth and Stencil
1125bd8deadSopenharmony_ci      ...               ...                            ...
1135bd8deadSopenharmony_ci
1145bd8deadSopenharmony_ci    Add a row to Table 3.5 "Packed pixel formats" (page 64):
1155bd8deadSopenharmony_ci
1165bd8deadSopenharmony_ci      type Parameter               GL Type  Components  Pixel Formats
1175bd8deadSopenharmony_ci      ------------------------------------------------------------------
1185bd8deadSopenharmony_ci      ...                          ...      ...         ...
1195bd8deadSopenharmony_ci      UNSIGNED_INT_24_8_OES        uint     2           DEPTH_STENCIL_OES
1205bd8deadSopenharmony_ci
1215bd8deadSopenharmony_ci    Add a new table after Table 3.6 (page 64):
1225bd8deadSopenharmony_ci
1235bd8deadSopenharmony_ci    UNSIGNED_INT_24_8_OES
1245bd8deadSopenharmony_ci
1255bd8deadSopenharmony_ci       31 30 29 28 27 26 ... 12 11 10 9 8 7 6 5 4 3 2 1 0
1265bd8deadSopenharmony_ci      +----------------------------------+---------------+
1275bd8deadSopenharmony_ci      |           1st Component          | 2nd Component |
1285bd8deadSopenharmony_ci      +----------------------------------+---------------+
1295bd8deadSopenharmony_ci
1305bd8deadSopenharmony_ci      Table 3.6.B: UNSIGNED_INT formats
1315bd8deadSopenharmony_ci
1325bd8deadSopenharmony_ci    Add a row to Table 3.7 "Packed pixel field assignments" (page 65):
1335bd8deadSopenharmony_ci
1345bd8deadSopenharmony_ci      Format            |  1st     2nd     3rd     4th
1355bd8deadSopenharmony_ci      ------------------+-------------------------------
1365bd8deadSopenharmony_ci      ...               |  ...     ...     ...     ...
1375bd8deadSopenharmony_ci      DEPTH_STENCIL_OES |  depth   stencil N/A     N/A
1385bd8deadSopenharmony_ci
1395bd8deadSopenharmony_ci    Add the following paragraph to the end of the section "Conversion to
1405bd8deadSopenharmony_ci    floating-point" (page 65):
1415bd8deadSopenharmony_ci
1425bd8deadSopenharmony_ci    "For groups of components that contain both standard components and index
1435bd8deadSopenharmony_ci    elements, such as DEPTH_STENCIL_OES, the index elements are not converted."
1445bd8deadSopenharmony_ci
1455bd8deadSopenharmony_ci    In section 3.7.1 "Texture Image Specification", update page 67 to
1465bd8deadSopenharmony_ci    say:
1475bd8deadSopenharmony_ci
1485bd8deadSopenharmony_ci    "The selected groups are processed as described in section 3.6.2, stopping
1495bd8deadSopenharmony_ci    just before final conversion.  Each R, G, B, A, or depth value so generated
1505bd8deadSopenharmony_ci    is clamped to [0, 1], while the stencil index values are masked by 2^n-1,
1515bd8deadSopenharmony_ci    where n is the number of stencil bits in the internal format resolution
1525bd8deadSopenharmony_ci    (see below).
1535bd8deadSopenharmony_ci
1545bd8deadSopenharmony_ci    Components are then selected from the resulting R, G, B, A, depth, or
1555bd8deadSopenharmony_ci    stencil index values to obtain a texture with the base internal format
1565bd8deadSopenharmony_ci    specified by <internalformat>.  Table 3.8 summarizes the mapping of R, G,
1575bd8deadSopenharmony_ci    B, A, depth, or stencil values to texture components, as a function of the
1585bd8deadSopenharmony_ci    base internal format of the texture image.  <internalformat> may be
1595bd8deadSopenharmony_ci    specified as one of the internal format symbolic constants listed in
1605bd8deadSopenharmony_ci    table 3.8. Specifying a value for <internalformat> that is not one of the
1615bd8deadSopenharmony_ci    above values generates the error INVALID_VALUE. If <internalformat> does
1625bd8deadSopenharmony_ci    not match <format>, the error INVALID_OPERATION is generated.
1635bd8deadSopenharmony_ci
1645bd8deadSopenharmony_ci    Textures with a base internal format of DEPTH_COMPONENT or
1655bd8deadSopenharmony_ci    DEPTH_STENCIL_OES are supported by texture image specification commands
1665bd8deadSopenharmony_ci    only if <target> is TEXTURE_2D.  Using these formats in conjunction with
1675bd8deadSopenharmony_ci    any other <target> will result in an INVALID_OPERATION error.
1685bd8deadSopenharmony_ci
1695bd8deadSopenharmony_ci    Textures with a base internal format of DEPTH_COMPONENT or
1705bd8deadSopenharmony_ci    DEPTH_STENCIL_OES only support one level of image data.  Specifying a
1715bd8deadSopenharmony_ci    non-zero value for <level> will result in an INVALID_OPERATION error.
1725bd8deadSopenharmony_ci
1735bd8deadSopenharmony_ci    Textures with a base internal format of DEPTH_COMPONENT or DEPTH_STENCIL_OES
1745bd8deadSopenharmony_ci    require either depth component data or depth/stencil component data.
1755bd8deadSopenharmony_ci    Textures with other base internal formats require RGBA component data.  The
1765bd8deadSopenharmony_ci    error INVALID_OPERATION is generated if the base internal format is
1775bd8deadSopenharmony_ci    DEPTH_COMPONENT or DEPTH_STENCIL_OES and <format> is not DEPTH_COMPONENT or
1785bd8deadSopenharmony_ci    DEPTH_STENCIL_OES, or if the base internal format is not DEPTH_COMPONENT or
1795bd8deadSopenharmony_ci    DEPTH_STENCIL_OES and <format> is DEPTH_COMPONENT or DEPTH_STENCIL_OES.
1805bd8deadSopenharmony_ci
1815bd8deadSopenharmony_ci    Textures with a base internal format of DEPTH_COMPONENT or
1825bd8deadSopenharmony_ci    DEPTH_STENCIL_OES do not support loading image data via the TexImage
1835bd8deadSopenharmony_ci    commands. They can only have their contents specified by rendering
1845bd8deadSopenharmony_ci    to them. The INVALID_OPERATION error is generated by the TexImage2D
1855bd8deadSopenharmony_ci    command if <data> is not NULL for such textures."
1865bd8deadSopenharmony_ci
1875bd8deadSopenharmony_ci    Add a row to table 3.8 (page 68), and update the title of the
1885bd8deadSopenharmony_ci    second column:
1895bd8deadSopenharmony_ci
1905bd8deadSopenharmony_ci      Base Internal Format  RGBA, Depth and Stencil Values  Internal Components
1915bd8deadSopenharmony_ci      -------------------------------------------------------------------------
1925bd8deadSopenharmony_ci      ...                   ...                             ...
1935bd8deadSopenharmony_ci      DEPTH_COMPONENT       Depth                           D
1945bd8deadSopenharmony_ci      DEPTH_STENCIL_OES     Depth,Stencil                   D,S
1955bd8deadSopenharmony_ci      ...                   ...                             ...
1965bd8deadSopenharmony_ci
1975bd8deadSopenharmony_ci    Update the caption for table 3.8 (page 68)
1985bd8deadSopenharmony_ci
1995bd8deadSopenharmony_ci    "Table 3.8: Conversion from RGBA, depth, and stencil pixel components to
2005bd8deadSopenharmony_ci    internal texture components.  Texture components R, G, B, A, and L are
2015bd8deadSopenharmony_ci    converted back to RGBA colors during filtering as shown in table 3.12.
2025bd8deadSopenharmony_ci    Texture components D are converted to RGBA colors as described in
2035bd8deadSopenharmony_ci    section 3.7.8-1/2."
2045bd8deadSopenharmony_ci
2055bd8deadSopenharmony_ci    Add the following to section 3.7.2 "Alternate Texture Image Specification
2065bd8deadSopenharmony_ci    Commands":
2075bd8deadSopenharmony_ci
2085bd8deadSopenharmony_ci    "CopyTexImage2D and CopyTexSubImage2D generate the INVALID_OPERATION
2095bd8deadSopenharmony_ci    error if the base internal format of the destination texture is
2105bd8deadSopenharmony_ci    DEPTH_COMPONENT or DEPTH_STENCIL_OES.
2115bd8deadSopenharmony_ci
2125bd8deadSopenharmony_ci    TexSubImage2D generates the INVALID_OPERATION error if the base internal
2135bd8deadSopenharmony_ci    format of the texture is DEPTH_COMPONENT or DEPTH_STENCIL_OES."
2145bd8deadSopenharmony_ci
2155bd8deadSopenharmony_ci    Add a new section between sections 3.7.8 and 3.7.9:
2165bd8deadSopenharmony_ci
2175bd8deadSopenharmony_ci    "3.7.8-1/2 Depth/Stencil Textures
2185bd8deadSopenharmony_ci
2195bd8deadSopenharmony_ci    If the currently bound texture's base internal format is DEPTH_COMPONENT or
2205bd8deadSopenharmony_ci    DEPTH_STENCIL_OES, then the output of the texture unit is as described
2215bd8deadSopenharmony_ci    below. Otherwise, the texture unit operates in the normal manner.
2225bd8deadSopenharmony_ci
2235bd8deadSopenharmony_ci    Let <D_t> be the depth texture value, provided by the shader's texture lookup
2245bd8deadSopenharmony_ci    function. Then the effective texture value is computed as follows:
2255bd8deadSopenharmony_ci            <Tau> = <D_t>
2265bd8deadSopenharmony_ci
2275bd8deadSopenharmony_ci    If the texture image has a base internal format of DEPTH_STENCIL_OES, then
2285bd8deadSopenharmony_ci    the stencil index texture component is ignored.  The texture value <Tau> does
2295bd8deadSopenharmony_ci    not include a stencil index component, but includes only the depth
2305bd8deadSopenharmony_ci    component.
2315bd8deadSopenharmony_ci
2325bd8deadSopenharmony_ci    The resulting <Tau> is assigned to <R_t>. In some implementations, <Tau> is
2335bd8deadSopenharmony_ci    also assigned to <G_t>, <B_t>, or <A_t>. Thus in table 3.12, textures with
2345bd8deadSopenharmony_ci    depth component data behave as if their base internal format is RGBA, with
2355bd8deadSopenharmony_ci    values in <G_t>, <B_t>, and <A_t> being implementation dependent."
2365bd8deadSopenharmony_ci
2375bd8deadSopenharmony_ci    Add the following to section 3.7.11 "Mipmap Generation":
2385bd8deadSopenharmony_ci
2395bd8deadSopenharmony_ci    "If the level zero array contains depth or depth-stencil data, the
2405bd8deadSopenharmony_ci     error INVALID_OPERATION is generated."
2415bd8deadSopenharmony_ci
2425bd8deadSopenharmony_ci    Insert a new paragraph after the first paragraph of the "Texture Access"
2435bd8deadSopenharmony_ci    subsection of section 3.8.2 on page 87, which says:
2445bd8deadSopenharmony_ci
2455bd8deadSopenharmony_ci    "Texture lookups involving textures with depth component data generate
2465bd8deadSopenharmony_ci    a texture source color by using depth data directly, as described in
2475bd8deadSopenharmony_ci    section 3.7.8-1/2.  The stencil texture internal component is ignored
2485bd8deadSopenharmony_ci    if the base internal format is DEPTH_STENCIL_OES."
2495bd8deadSopenharmony_ci
2505bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL ES 2.0 specification (Per-Fragment
2515bd8deadSopenharmony_ciOperations and the Framebuffer)
2525bd8deadSopenharmony_ci
2535bd8deadSopenharmony_ci    In section 4.4.5 "Framebuffer Completeness", replace the the 3rd
2545bd8deadSopenharmony_ci    paragraph with the following text:
2555bd8deadSopenharmony_ci
2565bd8deadSopenharmony_ci     "* An internal format is color-renderable if it is one of the formats
2575bd8deadSopenharmony_ci        from table 4.5 noted as color-renderable or if it is unsized format
2585bd8deadSopenharmony_ci        RGBA or RGB. No other formats, including compressed internal formats,
2595bd8deadSopenharmony_ci        are color-renderable.
2605bd8deadSopenharmony_ci
2615bd8deadSopenharmony_ci      * An internal format is depth-renderable if it is one of the sized
2625bd8deadSopenharmony_ci        internal formats from table 4.5 noted as depth-renderable, if it
2635bd8deadSopenharmony_ci        is the unsized format DEPTH_COMPONENT or if it is the internal
2645bd8deadSopenharmony_ci        format value of DEPTH24_STENCIL8_OES. No other formats are
2655bd8deadSopenharmony_ci        depth-renderable.
2665bd8deadSopenharmony_ci
2675bd8deadSopenharmony_ci      * An internal format is stencil-renderable if it is one of the sized
2685bd8deadSopenharmony_ci        internal formats from table 4.5 noted as stencil-renderable or if it
2695bd8deadSopenharmony_ci        is DEPTH24_STENCIL8_OES. No other formats are stencil-renderable."
2705bd8deadSopenharmony_ci
2715bd8deadSopenharmony_ciAdditions to Chapter 5 of the OpenGL ES 2.0 Specification (Special
2725bd8deadSopenharmony_ciFunctions)
2735bd8deadSopenharmony_ci
2745bd8deadSopenharmony_ci    None.
2755bd8deadSopenharmony_ci
2765bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL ES 2.0 Specification (State and State
2775bd8deadSopenharmony_ciRequests)
2785bd8deadSopenharmony_ci
2795bd8deadSopenharmony_ci    None.
2805bd8deadSopenharmony_ci
2815bd8deadSopenharmony_ciInteractions with OES_packed_depth_stencil
2825bd8deadSopenharmony_ci
2835bd8deadSopenharmony_ci    If OES_packed_depth_stencil is not supported, mentions of
2845bd8deadSopenharmony_ci    DEPTH_STENCIL_OES and UNSIGNED_INT_24_8_OES as a format/type combinations
2855bd8deadSopenharmony_ci    for TexImage2D and TexSubImage2D are omitted. Mentions of
2865bd8deadSopenharmony_ci    the internal format DEPTH24_STENCIL8_OES are also omitted.
2875bd8deadSopenharmony_ci
2885bd8deadSopenharmony_ciInteractions with EXT_texture_storage
2895bd8deadSopenharmony_ci
2905bd8deadSopenharmony_ci    If EXT_texture_storage is supported the following internalformat
2915bd8deadSopenharmony_ci    to format/type mappings are used:
2925bd8deadSopenharmony_ci
2935bd8deadSopenharmony_ci        <internalformat>       <format>           <type>
2945bd8deadSopenharmony_ci        ----------------       --------           ------
2955bd8deadSopenharmony_ci        DEPTH_COMPONENT16      DEPTH_COMPONENT    UNSIGNED_SHORT
2965bd8deadSopenharmony_ci        DEPTH_COMPONENT32_OES  DEPTH_COMPONENT    UNSIGNED_INT
2975bd8deadSopenharmony_ci        DEPTH24_STENCIL8_OES   DEPTH_STENCIL_OES  UNSIGNED_INT
2985bd8deadSopenharmony_ci
2995bd8deadSopenharmony_ci    Textures with the above <internalformats> only support one level of
3005bd8deadSopenharmony_ci    image data. Specifying a value other than one for the <levels> parameter
3015bd8deadSopenharmony_ci    to TexStorage2DEXT will result in an INVALID_OPERATION error.
3025bd8deadSopenharmony_ci
3035bd8deadSopenharmony_ci    If EXT_texture_storage is not supported, ignore any references
3045bd8deadSopenharmony_ci    to TexStorage2DEXT.
3055bd8deadSopenharmony_ci
3065bd8deadSopenharmony_ciErrors
3075bd8deadSopenharmony_ci
3085bd8deadSopenharmony_ci    The error INVALID_OPERATION is generated by TexImage2D if <format> and
3095bd8deadSopenharmony_ci    <internalformat> are DEPTH_COMPONENT and <type> is not UNSIGNED_SHORT,
3105bd8deadSopenharmony_ci    or UNSIGNED_INT.
3115bd8deadSopenharmony_ci
3125bd8deadSopenharmony_ci    The error INVALID_OPERATION is generated by TexSubImage2D if <format> is
3135bd8deadSopenharmony_ci    DEPTH_COMPONENT and <type> is not UNSIGNED_SHORT, or UNSIGNED_INT.
3145bd8deadSopenharmony_ci
3155bd8deadSopenharmony_ci    The error INVALID_OPERATION is generated by TexImage2D if <format> and
3165bd8deadSopenharmony_ci    <internalformat> are not DEPTH_COMPONENT and <type> is UNSIGNED_SHORT,
3175bd8deadSopenharmony_ci    or UNSIGNED_INT.
3185bd8deadSopenharmony_ci
3195bd8deadSopenharmony_ci    The error INVALID_OPERATION is generated by TexSubImage2D if <format> is
3205bd8deadSopenharmony_ci    not DEPTH_COMPONENT and <type> is UNSIGNED_SHORT, or UNSIGNED_INT.
3215bd8deadSopenharmony_ci
3225bd8deadSopenharmony_ci    The error INVALID_OPERATION is generated by TexImage2D if <format> and
3235bd8deadSopenharmony_ci    <internalformat> are DEPTH_STENCIL_OES and <type> is not
3245bd8deadSopenharmony_ci    UNSIGNED_INT_24_8_OES.
3255bd8deadSopenharmony_ci
3265bd8deadSopenharmony_ci    The error INVALID_OPERATION is generated by TexSubImage2D if <format>
3275bd8deadSopenharmony_ci    is DEPTH_STENCIL_OES and <type> is not UNSIGNED_INT_24_8_OES.
3285bd8deadSopenharmony_ci
3295bd8deadSopenharmony_ci    The error INVALID_OPERATION is generated by TexImage2D if <format> and
3305bd8deadSopenharmony_ci    <internalformat> is not DEPTH_STENCIL_OES and <type> is
3315bd8deadSopenharmony_ci    UNSIGNED_INT_24_8_OES.
3325bd8deadSopenharmony_ci
3335bd8deadSopenharmony_ci    The error INVALID_OPERATION is generated by TexSubImage2D if <format>
3345bd8deadSopenharmony_ci    is not DEPTH_STENCIL_OES and <type> is UNSIGNED_INT_24_8_OES.
3355bd8deadSopenharmony_ci
3365bd8deadSopenharmony_ci    The error INVALID_OPERATION is generated in the following situations:
3375bd8deadSopenharmony_ci    - TexImage2D is called with <format> and <internalformat> of
3385bd8deadSopenharmony_ci      DEPTH_COMPONENT or DEPTH_STENCIL_OES and
3395bd8deadSopenharmony_ci       - <target> is not TEXTURE_2D,
3405bd8deadSopenharmony_ci       - <data> is not NULL, or
3415bd8deadSopenharmony_ci       - <level> is not zero.
3425bd8deadSopenharmony_ci    - TexSubImage2D is called with <format> of DEPTH_COMPONENT or
3435bd8deadSopenharmony_ci      DEPTH_STENCIL_OES.
3445bd8deadSopenharmony_ci    - TexStorage2DEXT is called with <internalformat> of DEPTH_COMPONENT16,
3455bd8deadSopenharmony_ci      DEPTH_COMPONENT32_OES, or DEPTH24_STENCIL8_OES, and
3465bd8deadSopenharmony_ci       - <target> is not TEXTURE_2D, or
3475bd8deadSopenharmony_ci       - <levels> is not one.
3485bd8deadSopenharmony_ci    - CopyTexImage2D is called with an <internalformat> that has a base
3495bd8deadSopenharmony_ci      internal format of DEPTH_COMPONENT or DEPTH_STENCIL_OES.
3505bd8deadSopenharmony_ci    - CopyTexSubImage2D is called with a target texture that has a base
3515bd8deadSopenharmony_ci      internal format of DEPTH_COMPONENT or DEPTH_STENCIL_OES.
3525bd8deadSopenharmony_ci    - GenerateMipmap is called on a texture that has a base internal format
3535bd8deadSopenharmony_ci      of DEPTH_COMPONENT or DEPTH_STENCIL_OES.
3545bd8deadSopenharmony_ci
3555bd8deadSopenharmony_ciNew State
3565bd8deadSopenharmony_ci
3575bd8deadSopenharmony_ci    None.
3585bd8deadSopenharmony_ci
3595bd8deadSopenharmony_ciIssues
3605bd8deadSopenharmony_ci
3615bd8deadSopenharmony_ci    1) What are the differences between this extension and OES_depth_texture
3625bd8deadSopenharmony_ci       and OES_packed_depth_stencil?
3635bd8deadSopenharmony_ci
3645bd8deadSopenharmony_ci       RESOLVED: This extension:
3655bd8deadSopenharmony_ci         - does not support loading pre-baked depth stencil data via
3665bd8deadSopenharmony_ci           TexImage2D or TexSubImage2D.
3675bd8deadSopenharmony_ci         - allows variability in the y-, z-, and w-components of the sample
3685bd8deadSopenharmony_ci           results from depth textures.
3695bd8deadSopenharmony_ci         - only supports one level textures.
3705bd8deadSopenharmony_ci         - explicitly lists the errors for unsupported functionality.
3715bd8deadSopenharmony_ci           Since these were not clearly specified in the OES_depth_texture
3725bd8deadSopenharmony_ci           extension there may be differences in error values between
3735bd8deadSopenharmony_ci           implementations of OES_depth_texture and ANGLE_depth_texture.
3745bd8deadSopenharmony_ci       This specification was also rebased to apply against the OpenGL ES 2.0
3755bd8deadSopenharmony_ci       specification instead of the OpenGL specification, making it more
3765bd8deadSopenharmony_ci       obvious what all the functionality changes are.
3775bd8deadSopenharmony_ci
3785bd8deadSopenharmony_ci    2) Why does TexSubImage2D accept the new format/type combinations even
3795bd8deadSopenharmony_ci       though it does not actually support loading data?
3805bd8deadSopenharmony_ci
3815bd8deadSopenharmony_ci       RESOLVED: This was done to be more consistent with the OES_depth_texture
3825bd8deadSopenharmony_ci       extension and to make it easier to add support for loading texture
3835bd8deadSopenharmony_ci       data if it is possible to support in the future.
3845bd8deadSopenharmony_ci
3855bd8deadSopenharmony_ci    3) Why are only 1-level depth textures supported?
3865bd8deadSopenharmony_ci
3875bd8deadSopenharmony_ci       RESOLVED: The only use for multiple levels of depth textures would
3885bd8deadSopenharmony_ci       be for fitlered texturing. However since it is not possible to
3895bd8deadSopenharmony_ci       render to non-zero-level texture levels in OpenGL ES 2.0, and since
3905bd8deadSopenharmony_ci       this extension forbids loading existing data and GenerateMipmap on
3915bd8deadSopenharmony_ci       depth textures, it is impossible to initialize or specify contents
3925bd8deadSopenharmony_ci       for non-zero levels of depth textures.
3935bd8deadSopenharmony_ci
3945bd8deadSopenharmony_ciRevision History
3955bd8deadSopenharmony_ci
3965bd8deadSopenharmony_ci    02/25/2013  swoods  revise to allow texture lookup to guarantee depth values
3975bd8deadSopenharmony_ci                        only in red channel of sample result.
3985bd8deadSopenharmony_ci    06/04/2012  dgkoch  fix errors, disallow multi-level depth textures.
3995bd8deadSopenharmony_ci    05/30/2012  dgkoch  minor updates and add issues.
4005bd8deadSopenharmony_ci    05/23/2012  dgkoch  intial revision based on OES_depth_texture and
4015bd8deadSopenharmony_ci                        OES_packed_depth_stencil and rebased against the ES 2.0 spec
4025bd8deadSopenharmony_ci
403