blob: 6b489af0536ff55364877cbf7cc089e33be4051f [file] [log] [blame]
Name
IMG_texture_env_enhanced_fixed_function
Name Strings
GL_IMG_texture_env_enhanced_fixed_function
Notice
Copyright Imagination Technologies Limited, 2005.
Contact
Graham Connor, Imagination Technologies (graham 'dot' connor 'at'
imgtec 'dot' com)
Status
Complete
Version
1.0, 11 May 2009
Number
OpenGL ES Extension #58
Dependencies
None
This extension is written against the OpenGL 1.3 Specification. The intention
is that this extension is only exposed, within a OpenGL-ES 1.0 impementation
and the reader should be aware of the restrictions of OpenGL-ES 1.0 with respect
to this OpenGL 1.3 extension.
Overview
This extension adds new texture environment functions to allow use of
of blend modes supported in some early MBX-lite devices, including dot3 functionality.
It is superceded by OpenGL-ES 1.1 which includes tex_env_combine.
New functions may be specified by calling TexEnv with the following tokens:
MODULATE_COLOR_IMG, RECIP_ADD_SIGNED_ALPHA_IMG, TEXTURE_ALPHA_MODULATE_IMG,
FACTOR_ALPHA_MODULATE_IMG, FRAGMENT_ALPHA_MODULATE_IMG, ADD_BLEND_IMG, DOT3_RGBA.
New Procedures and Functions
None
New Tokens
Accepted by the <params> parameter of TexEnvf, TexEnvi, TexEnvfv, and
TexEnvfi when the <pname> parameter value is GL_TEXTURE_ENV_MODE
MODULATE_COLOR_IMG 0x8C04
RECIP_ADD_SIGNED_ALPHA_IMG 0x8C05
TEXTURE_ALPHA_MODULATE_IMG 0x8C06
FACTOR_ALPHA_MODULATE_IMG 0x8C07
FRAGMENT_ALPHA_MODULATE_IMG 0x8C08
ADD_BLEND_IMG 0x8C09
DOT3_RGBA_IMG 0x86AF
Additions to Chapter 2 of the GL Specification (OpenGL Operation)
None
Additions to Chapter 3 of the GL Specification (Rasterization)
The description of TEXTURE_ENV_MODE in the first paragraph of
section 3.8.12 should be modified as follows:
TEXTURE_ENV_MODE may be set to one of REPLACE, MODULATE, DECAL,
BLEND, ADD, MODULATE_COLOR_IMG, RECIP_ADD_SIGNED_ALPHA_IMG,
TEXTURE_ALPHA_MODULATE_IMG, FACTOR_ALPHA_MODULATE_IMG,
FRAGMENT_ALPHA_MODULATE_IMG, ADD_BLEND_IMG, DOT3_RGBA_IMG, or COMBINE;
Table 3.24 is added as follows:
Base MODULATE_COLOR_IMG RECIP_ADD_SIGNED_ALPHA_IMG
Internal Format tex func tex func
--------------- ------------------ --------------------------
ALPHA Cv = Cf Cv = Cf
Av = As Av = (1-As) + Af - 0.5
LUMINANCE Cv = CfCs Cv = Cf
(or 1) Av = Af Av = Af - 0.5
LUMINANCE_ALPHA Cv = CfCs Cv = Cf
(or 2) Av = As Av = (1-As) + Af - 0.5
INTENSITY Cv = CfCs Cv = Cf
Av = As Av = (1-As) + Af - 0.5
RGB Cv = CfCs Cv = Cf
(or 3) Av = Af Av = Af - 0.5
RGBA Cv = CfCs Cv = Cf
(or 4) Av = As Av = (1-As) + Af - 0.5
Base TEXTURE_ALPHA_MODULATE_IMG FACTOR_ALPHA_MODULATE_IMG
Internal Format tex func tex func
--------------- -------------------------- -------------------------
ALPHA Cv = ZERO Cv = ZERO
Av = As Av = Ac
LUMINANCE Cv = Cs Cv = AcCs
(or 1) Av = ONE Av = Ac
LUMINANCE_ALPHA Cv = AsCs Cv = AcCs
(or 2) Av = As Av = Ac
INTENSITY Cv = AsCs Cv = AcCs
Av = As Av = Ac
RGB Cv = Cs Cv = AcCs
(or 3) Av = ONE Av = Ac
RGBA Cv = AsCs Cv = AcCs
(or 4) Av = As Av = Ac
Base FRAGMENT_ALPHA_MODULATE_IMG ADD_BLEND_IMG
Internal Format tex func tex func
--------------- ----------------------- -------------
ALPHA Cv = ZERO Cv = Cf
Av = Af Av = AfAs
LUMINANCE Cv = AfCs Cv = Cf + (1 - Af)Cs
(or 1) Av = Af Av = Af
LUMINANCE_ALPHA Cv = AfCs Cv = Cf + (1 - Af)Cs
(or 2) Av = Af Av = AfAs
INTENSITY Cv = AfCs Cv = Cf + (1 - Af)Cs
Av = Af Av = AfAs
RGB Cv = AfCs Cv = Cf + (1 - Af)Cs
(or 3) Av = Af Av = Af
RGBA Cv = AfCs Cv = Cf + (1 - Af)Cs
(or 4) Av = Af Av = AfAs
Base DOT3_RGBA_IMG
Internal Format tex func
--------------- ---------
ALPHA Undefined
Undefined
LUMINANCE Undefined
(or 1) Undefined
LUMINANCE_ALPHA Undefined
(or 2) Undefined
INTENSITY Undefined
Undefined
RGB Cv = Dot3(Cf,Cs)
(or 3) Av = Dot3(Cf,Cs)
RGBA Cv = Dot3(Cf,Cs)
(or 4) Av = Dot3(Cf, Cs)
where Dot3(Cf,Cs) evaluates to:
4((Cfr - 0.5)*(Csr - 0.5) +
(Cfg - 0.5)*(Csg - 0.5) +
(Cfb - 0.5)*(Csb - 0.5))
Table 3.24: Extended Fixed Function Texturing Modes
Additions to Chapter 4 of the GL Specification (Per-Fragment Operations
and the Framebuffer)
None
Additions to Chapter 5 of the GL Specification (Special Functions)
None
Additions to Chapter 6 of the GL Specification (State and State Requests)
The Type of TEXTURE_ENV_MODE in Table 6.17 should be changed to
2* x Z13
Additions to the GLX / WGL / AGL Specifications
None
GLX Protocol
None
Errors
None
New State
The Type of TEXTURE_ENV_MODE in Table 6.17 should be changed to
2* x Z13
New Implementation Dependent State
None
Revision History
0.1, 18/12/2003 gdc: First draft.
0.2, 13/01/2004 gdc: Formatting changes.
0.3, 25/01/2005 nt: Updated copyright date.
1.0, 11/05/2009 bcb: Final tidy up for publish.