152 lines
5.1 KiB
Plaintext
152 lines
5.1 KiB
Plaintext
Name
|
|
|
|
ANGLE_stencil_texturing
|
|
|
|
Name Strings
|
|
|
|
GL_ANGLE_stencil_texturing
|
|
|
|
Contributors
|
|
|
|
Contributors to ARB_stencil_texturing
|
|
Members of the WebGL working group
|
|
|
|
Status
|
|
|
|
Draft
|
|
|
|
Version
|
|
|
|
Last Modified Date: March 1, 2023
|
|
Revision: 1
|
|
|
|
Number
|
|
|
|
OpenGL ES Extension XX
|
|
|
|
Dependencies
|
|
|
|
This extension is written against the OpenGL ES 3.0 Specification.
|
|
|
|
OpenGL ES 3.0 and OpenGL ES Shading Language 3.00 are required.
|
|
|
|
Overview
|
|
|
|
This extension allows texturing of the stencil component of a packed depth
|
|
stencil texture. Stencil values are returned as unsigned integers. It is
|
|
not possible to sample both depth and stencil values from the same
|
|
texture, and this extension allows the app to select which is sampled for
|
|
the bound texture.
|
|
|
|
This extension provides similar functionality to that of OpenGL ES 3.1.
|
|
|
|
New Procedures and Functions
|
|
|
|
None
|
|
|
|
New Tokens
|
|
|
|
Accepted by the <pname> parameter of TexParameter* and GetTexParameter*:
|
|
|
|
DEPTH_STENCIL_TEXTURE_MODE_ANGLE 0x90EA
|
|
|
|
Additions to the OpenGL ES 3.0 Specification
|
|
|
|
Changes to Section 3.9.2.1 (Texture Access), page 167
|
|
|
|
Add a new new bullet point on page 168:
|
|
|
|
"* The sampler used in a texture lookup function is one of the shadow
|
|
sampler types, the texture object's internal format is DEPTH_STENCIL,
|
|
and the DEPTH_STENCIL_TEXTURE_MODE_ANGLE is not DEPTH_COMPONENT."
|
|
|
|
Then change the following paragraph that reads:
|
|
|
|
"The stencil texture internal component is ignored if the base internal
|
|
format is DEPTH_STENCIL."
|
|
|
|
To the following:
|
|
|
|
"The stencil index texture internal component is ignored if the base
|
|
internal format is DEPTH_STENCIL and the value of
|
|
DEPTH_STENCIL_TEXTURE_MODE_ANGLE is not STENCIL_INDEX.
|
|
|
|
Texture lookups involving texture objects with an internal format
|
|
of DEPTH_STENCIL can read the stencil value as described in section
|
|
3.8 by setting the DEPTH_STENCIL_TEXTURE_MODE_ANGLE to STENCIL_INDEX.
|
|
The stencil value is read as an integer and assigned to R_t. An unsigned
|
|
integer sampler should be used to lookup the stencil component, otherwise
|
|
the results are undefined."
|
|
|
|
Changes to Section 3.8.7 (Texture Parameters), page 150
|
|
|
|
In Table 3.20 (Texture parameters and their values) add the following
|
|
entry:
|
|
|
|
"
|
|
Name Type Legal Values
|
|
------------- ---- ------------------------------
|
|
DEPTH_STENCIL_TEXTURE_MODE_ANGLE enum DEPTH_COMPONENT, STENCIL_INDEX
|
|
"
|
|
|
|
Changes to Section 3.8.12 (Combined Depth/Stencil Textures), page 160
|
|
|
|
Modify the paragraph to read:
|
|
|
|
"If the texture image has a base internal format of DEPTH_STENCIL, then
|
|
the stencil index texture component is ignored by default. The texture
|
|
value <T> does not include a stencil index component, but includes
|
|
only the depth component.
|
|
|
|
In order to access the stencil index texture component, the
|
|
DEPTH_STENCIL_TEXTURE_MODE_ANGLE texture parameter should be set to
|
|
STENCIL_INDEX. When this mode is set the depth component is ignored and the
|
|
texture value includes only the stencil index component. The stencil index
|
|
value is treated as an unsigned integer texture and returns an unsigned
|
|
integer value when sampled. When sampling the stencil index only NEAREST
|
|
filtering is supported. The DEPTH_STENCIL_TEXTURE_MODE_ANGLE is ignored for
|
|
non depth/stencil textures."
|
|
|
|
Changes to Section 3.8.13 (Texture Completeness), page 161
|
|
|
|
Add a new bullet point for the conditions that cause the texture
|
|
to not be complete:
|
|
|
|
"* The internal format of the texture is DEPTH_STENCIL, the value of
|
|
DEPTH_STENCIL_TEXTURE_MODE_ANGLE for the texture is STENCIL_INDEX, and
|
|
either the magnification filter is not NEAREST or the minification
|
|
filter is neither NEAREST nor NEAREST_MIPMAP_NEAREST."
|
|
|
|
Changes to Section 3.8.15 (Texture Comparison Modes), page 163
|
|
|
|
Modify the following paragraph:
|
|
|
|
"Let Dt be the depth texture value and St be the stencil index component
|
|
of a depth/stencil texture. If there is no stencil component the value of
|
|
St is undefined. Let Dref be the reference value..."
|
|
|
|
Insert a new paragraph after the paragraphs that ends:
|
|
|
|
"Then the effective texture value is computed as follows:
|
|
If the base internal format is DEPTH_STENCIL and the value of
|
|
DEPTH_STENCIL_TEXTURE_MODE_ANGLE is STENCIL_INDEX, then
|
|
r = St
|
|
Otherwise, if the value of TEXTURE_COMPARE_MODE is NONE, then
|
|
r = Dt
|
|
Otherwise, if the value of TEXTURE_COMPARE_MODE is
|
|
COMPARE_REF_TO_TEXTURE, then r depends on the texture comparison
|
|
function as shown in table 3.23.
|
|
The resulting r is assigned ..."
|
|
|
|
New State
|
|
|
|
(Table 6.9, Textures) add the following entry:
|
|
|
|
Get Value Type Get Command Initial Value Description Section
|
|
-------------------------------- ---- ----------------- --------------- -------------------------- -------
|
|
DEPTH_STENCIL_TEXTURE_MODE_ANGLE Z2 GetTexParameteriv DEPTH_COMPONENT Depth stencil texture mode 3.8.7
|
|
|
|
Revision History
|
|
|
|
3/1/2023 First revision
|