| 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 <format> parameters of TexImage2D and TexSubImage2D: |
| |
| GL_BGRA_EXT 0x80E1 |
| |
| Accepted by the <internalformat> 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 |
| <internalformat> must match <format> 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 <internalformat> 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 <internalformat> is BGRA_EXT. |
| |
| INVALID_OPERATION is generated by TexImage2D if <format> is BGRA_EXT and |
| <internalformat> 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 |