Name APPLE_texture_format_BGRA8888 Name Strings GL_APPLE_texture_format_BGRA8888 Contact Benj Lipchak, Apple (lipchak 'at' apple.com) IP Status No known IP issues. Status Complete. Version Last Modified Date: June 26, 2013 Revision: 3 Number OpenGL ES Extension #79 Dependencies Written based on the wording of the OpenGL ES 1.1 specification. There are interactions with OpenGL ES 3.0 or EXT_texture_storage. Overview This extension introduces BGRA_EXT as an acceptable external format. This avoids byte swizzling when loading RGBA internal format textures, which may be stored in BGRA order internally. Issues None. New Procedures and Functions None. New Tokens Accepted by the parameters of TexImage2D and TexSubImage2D: GL_BGRA_EXT 0x80E1 Accepted by the parameters of TexStorage2D and TexStorage3D: GL_BGRA8_EXT 0x93A1 Additions to Chapter 2 of the OpenGL ES 1.1 Specification (OpenGL ES Operation) None Additions to Chapter 3 of the OpenGL ES 1.1 Specification (Rasterization) Section 3.6.2, add the following row to Table 3.3: Format Name Element Meaning and Order Target Buffer ----------- ------------------------- ------------- BGRA_EXT B, G, R, A Color Section 3.6.2, add the following row to Table 3.4: Format Type Bytes per Pixel -------- ------------- --------------- BGRA_EXT UNSIGNED_BYTE 4 Section 3.7.1, change the 4th paragraph to loosen the requirement that must match for the case of BGRA_EXT format, which must have an RGBA internal format. In this case we do not generate the error INVALID_OPERATION. Additions to Chapter 4 of the OpenGL ES 1.1 Specification (Per-Fragment Operations and the Framebuffer) None Additions to Chapter 5 of the OpenGL ES 1.1 Specification (Special Functions) None Additions to Chapter 6 of the OpenGL ES 1.1 Specification (State and State Requests) None Dependencies on OpenGL ES 3.0 or EXT_texture_storage When the GL is OpenGL ES 3.0, the following table entry is added to Table 3.2: Format Type External Bytes per Pixel Internal Format -------- ------------- ------------------------ --------------- BGRA_EXT UNSIGNED_BYTE 4 BGRA8_EXT When the GL is OpenGL ES 3.0, BGRA8_EXT is also added to the Texture-only color formats list in the Required Texture Formats subsection of section 3.8.3. If the GL is not OpenGL ES 3.0 and the EXT_texture_storage extension is not present, omit references to BGRA8_EXT and TexStorage*. Note that despite TexStorage* being defined in terms of TexImage*, BGRA8_EXT is not accepted as an parameter to TexImage* when the GL is OpenGL ES 3.0. Details of how this extension interacts with EXT_texture_storage when the GL is a version of OpenGL earlier than 3.0 can be found in the EXT_texture_storage spec. Errors INVALID_ENUM is generated by TexImage2D if is BGRA_EXT. INVALID_OPERATION is generated by TexImage2D if is BGRA_EXT and is not RGBA. New State None New Implementation Dependent State None Revision History #3 06/26/2013 Benj Lipchak Add ES3 interactions #2 10/27/2009 Benj Lipchak Add EXT suffix to BGRA token #1 05/14/2009 Benj Lipchak First draft