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 <format> 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 corresponding 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.
