home *** CD-ROM | disk | FTP | other *** search
- Name
-
- SGIS_texture_select
-
- Name Strings
-
- GL_SGIS_texture_select
-
- Version
-
- $Date: 1996/04/01 23:23:29 $ $Revision: 1.1 $
-
- Number
-
- 51
-
- Dependencies
-
- EXT_texture
- EXT_texture3D
- EXT_texture_object
- SGIS_detail_texture
-
- Overview
-
- This extension introduces several new texture internal formats. The
- purpose of these new formats is to reorganize the components of a
- texture into groups of components. The currently selected group
- effectively becomes the internal format.
-
- Also, two new texture parameters are introduced that control the
- selection of these groups of components.
-
- For example, assume a texture internal format of DUAL_LUMINANCE4_SGIS is
- specified. Now there are two groups of components, where each group has
- a format of LUMINANCE4. One of the two LUMINANCE groups is always
- selected. components can be selected and then interpreted as a LUMINANCE
- texture.
-
- The purpose of this extension is allow better utilization of texture
- memory by subdividing the internal representation of a texel into 1, 2,
- or 4 smaller texels. Additionally, this may improve performance of
- texture downloads.
-
- Issues
-
- * This spec still needs values for the enumerants. Also, the GLX
- section is empty.
-
- * This extension was formerly named SGIS_component_select. The
- reference to "component" was confusing so we changed it.
-
- * We have removed the ability to "alias" or reinterpret groups of
- components. Specifically, once a texture is defined with a DUAL*
- or QUAD* internal format, the fact that it is ALPHA, LUMINANCE,
- INTENSITY, or LUMINANCE_ALPHA is not changeable. a previous version
- of this spec allowed this. IrisGL on RealityEngine allowed it as
- well. Since this function might be useful, it should be revisited
- in a separate spec that allows this for all internal formats, not
- just the ones defined here. Additionally, any porting document
- should mention this subtle point.
-
- * Should we include versions of these new internal formats that don't
- specify bit resolution? (e.g. DUAL_ALPHA_SGIS) It would add the
- ability to be vague about the actual resolution and would make it
- appear consistent with internal formats from EXT_texture. Can
- someone make a good argument for adding these?
-
- * Do we need a new query to determine component bit resolution?
- A. No. The existing queries defined by EXT_texture are sufficient.
- The query applies to the selected group of components.
-
- * Need to review dependencies on detail_texture, sharpen, etc. Can
- one create a detail texture using these new formats? A. The
- dependency on SGIS_detail_texture is mentioned below.
-
- * Is there an easy way to know whether this extension is actually
- "enabled"? A. This extension is enabled when the current texture
- format is one of the new internal formats defined here. An
- additional query is required to determine which group of components
- is selected.
-
-
- New Procedures and Functions
-
- None
-
- New Tokens
-
- Accepted by the <components> parameter of TexImage1D and TexImage2D, and
- the <internalformat> parameter of TexImage3DEXT:
-
- DUAL_ALPHA4_SGIS
- DUAL_ALPHA8_SGIS
- DUAL_ALPHA12_SGIS
- DUAL_ALPHA16_SGIS
- DUAL_LUMINANCE4_SGIS
- DUAL_LUMINANCE8_SGIS
- DUAL_LUMINANCE12_SGIS
- DUAL_LUMINANCE16_SGIS
- DUAL_INTENSITY4_SGIS
- DUAL_INTENSITY8_SGIS
- DUAL_INTENSITY12_SGIS
- DUAL_INTENSITY16_SGIS
- DUAL_LUMINANCE_ALPHA4_SGIS
- DUAL_LUMINANCE_ALPHA8_SGIS
- QUAD_ALPHA4_SGIS
- QUAD_ALPHA8_SGIS
- QUAD_LUMINANCE4_SGIS
- QUAD_LUMINANCE8_SGIS
- QUAD_INTENSITY4_SGIS
- QUAD_INTENSITY8_SGIS
-
- Accepted by the <pname> parameter of TexParameterf, TexParameteri,
- TexParameterfv, TexParameteriv, GetTexParameterfv, and
- GetTexParameteriv:
-
- DUAL_TEXTURE_SELECT_SGIS
- QUAD_TEXTURE_SELECT_SGIS
-
-
- Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
-
- None.
-
- Additions to Chapter 3 of the 1.0 Specification (Rasterization)
-
- The selection of a group of components is specified by using
- TexParameterf, TexParameteri, TexParameterfv, or TexParameteriv with
- a <pname> parameter of DUAL_TEXTURE_SELECT_SGIS or QUAD_TEXTURE_SELECT_SGIS.
-
- The value of DUAL_TEXTURE_SELECT_SGIS selects one of two groups of
- components (hence the term DUAL). The <param> parameter must be 0 or 1.
- Otherwise, an INVALID_VALUE error is set. When the texture internal
- format is one of the DUAL* formats, this selection becomes active. A
- value of 0 specifies that the first group of components is used, a value
- of 1 specifies the second group, and so on.
-
- Similarly, the value of QUAD_TEXTURE_SELECT_SGIS selects one of four
- groups of components in the case that the texture internal format is one
- of the QUAD* formats. The <param> value must be 0, 1, 2 or 3.
- Otherwise, an INVALID_VALUE error is set.
-
- There is always a selection defined for both DUAL_TEXTURE_SELECT_SGIS
- and QUAD_TEXTURE_SELECT_SGIS formats. It becomes active when the
- current texture format becomes one of the DUAL* or QUAD* formats,
- respectively. If the current texture format is not one of DUAL* or
- QUAD* formats, this extension has no effect.
-
- The mapping of components from the canonical RGBA to these new internal
- formats needs to be clarified. There are three cases. The first case
- is for the DUAL* formats that are groups of ALPHA, LUMINANCE, and
- INTENSITY. The RED component goes to the first group while ALPHA goes
- to the second group. The second case is for the DUAL* formats that are
- groups of LUMINANCE_ALPHA. The RED and GREEN components go to the first
- group while BLUE and ALPHA go to the second group. The third case is
- for the QUAD* formats. The RED component goes to the first group, the
- GREEN component to the second group, the BLUE component to the third
- group, and the ALPHA component to the fourth group.
-
- The interpretation of the bit resolutions of the new internal formats
- is implementation dependent. (Similar to EXT_texture.) The actual
- resolution granted can be queried using Get*. The bit resolution of
- similar type components in a group, such as multiple LUMINANCE
- components, is always the same.
-
-
- Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
- and the Frame Buffer)
-
- None.
-
- Additions to Chapter 5 of the 1.0 Specification (Special Functions)
-
- None.
-
- Additions to Chapter 6 of the 1.0 Specification (State and State Requests)
-
- None.
-
- Additions to the GLX Specification
-
- None.
-
- GLX Protocol
-
- XXX
-
- Dependencies on EXT_texture
-
- EXT_texture is required. This extension defines new texture internal
- formats that build on concepts (such as the INTENSITY format and
- component numeric resolutions) introduced in the EXT_texture extension.
-
- Dependencies on EXT_texture3D
-
- If EXT_texture3D is not supported, references to it should be ignored.
- (see New State)
-
- Dependencies on EXT_texture_object
-
- If EXT_texture_object is not supported, references to it should be
- ignored. (See New State.)
-
- Dependencies on SGIS_detail_texture
-
- The condition for using the detail texture (see detail_texture.spec,
- section 3.8.2.1 Texture magnification with detail) is modified to read:
-
- "The conditions are:
-
- 1. The active texture must be TEXTURE_2D.
-
- 2. The internal formats of TEXTURE_2D and DETAIL_TEXTURE_2D_SGIS
- must have been specified identically.
-
- 3. If SGIS_texture_select is supported and if the internal formats
- of TEXTURE_2D and DETAIL_TEXTURE_2D_SGIS are one of those
- defined by SGIS_texture_select (e.g. DUAL_LUMINANCE4_SGIS),
- then the corresponding group selections (e.g. the value of
- DUAL_TEXTURE_SELECT_SGIS) must have been specified identically.
-
- If these conditions are not met, it is as though the magnification
- texture filter was LINEAR."
-
- Errors
-
- See above.
-
- New State
-
- Initial
- Get Value Get Command Type Value Attrib
- --------- ----------- ---- ------- ------
-
- DUAL_TEXTURE_SELECT_SGIS GetTexParameter n x 3 x Z2 0 texture
-
- QUAD_TEXTURE_SELECT_SGIS GetTexParameter n x 3 x Z4 0 texture
-
-
- Note: The "Type" column shows "n x ..." since this state will appear
- in each of "n" objects defined by EXT_texture_object.
-
- New Implementation Dependent State
-
- None.
-