blob: 1d7899af3d4f99f0a7ae2b37215921f6ad830b14 [file] [log] [blame]
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