Name MESA_bgra Name Strings GL_MESA_bgra Contact Gert Wollny (gert.wollny 'at' collabora.com) Notice Copyright (c) 2021 Collabora LTD Copyright (c) 2009-2013 The Khronos Group Inc. Copyright terms at http://www.khronos.org/registry/speccopyright.html Version Version 1, 2021/04/30. Based on EXT_bgra version 1, modified 1997/05/19. Number TBD Dependencies OpenGL ES 2.0 is required. Written based on the wording of the OpenGL ES 3.2 specification. There are interactions with the extensions EXT_clear_texture. Overview MESA_bgra extends the list of combinations host-memory color formats with internal formats to include BGRA and BGR as acceptable formats with RGB8/SRGB8 and RGBA/sRGB8_ALPHA8 as internal formats respectively. This feature is of interest in virtualized environments, where the host supports OpenGL ES only, and the virtualized guest is supposed to support a subset of OpenGL including textures created with the format BGRA. IP Status Open-source; freely implementable. Issues None. New Procedures and Functions None New Tokens Accepted by the parameter of TexImage2D and TexSubImage2D: GL_BGR_EXT 0x80E0 GL_BGRA_EXT 0x80E1 Additions to Chapter 8 of the GLES 3.2 Specification (Textures and Samplers) Add to table 8.2 (Pixels data formats, valid combinations of format, type, and unsized internalformat). Format Type External Internal Format Bytes per Pixel ------------------------------------------------------------- BGRA UNSIGNED_BYTE 4 RGBA BGR UNSIGNED_BYTE 3 RGB Add to table 8.5 (Pixels data formats). Format Name Elements Meaning and Order Target Buffer ------------------------------------------------------------- BGR_EXT B, G, R Color BGRA_EXT B, G, R, A Color Add to table 8.9 (Effective internal format correspondig to external format). Format Type Effective Internal format ------------------------------------------------------------- BGRA_EXT UNSIGNED_BYTE RGBA8 BGR_EXT UNSIGNED_BYTE RGB8 Interactions with EXT_clear_texture When EXT_clear_texture is supported the accepted formats for ClearTextureEXT and ClearSubTextureEXT are extended to include the entries added above. Revision History Original draft, revision 1.0, May 4, 2021 (Gert Wollny) rewrite EXT_bgra against OpenGL ES 3.2 instead of OpenGL 1,0. Revision 1.1 (May 5. 2021): Add the new tokens, and fix Clear*Texture function names.