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 parameter of TexEnvf, TexEnvi, TexEnvfv, and TexEnvfi when the 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.