Name

    EXT_image_gl_colorspace

Name Strings

    EGL_EXT_image_gl_colorspace

Contributors

    Jesse Hall, Google
    Philip Rideout, Google
    Mohan Maiya, Qualcomm
    Jan-Harald Fredriksen, ARM

Contact

    Krzysztof Kosiński, Google (krzysio 'at' google.com)

Status

    Complete

Version

    Version 9, February 26, 2018

Number

    EGL Extension #125

Dependencies

    Written against the EGL 1.5 specification.

    Can be supported on EGL 1.4 provided that EGL_KHR_gl_colorspace is
    implemented, as well as either EGL_KHR_image or EGL_KHR_image_base.

    Interacts with the GL_OES_EGL_image_external specification.

Overview

    This extension relaxes the restriction that only the eglCreate*Surface
    functions can accept the EGL_GL_COLORSPACE attribute. With this change,
    eglCreateImage can also accept this attribute.

New Tokens

    EGL_GL_COLORSPACE_DEFAULT_EXT          0x314D

New Procedures and Functions

    None.

Additions to the EGL 1.5 Specification

    Add to table 3.11 on page 75:

   "Attribute             Type    Description
    --------------------  ----    -----------
    EGL_GL_COLORSPACE     enum    Color space for OpenGL and OpenGL ES"


    Add the following paragraph to the end of section 3.9, "EGLImage
    Specification and Management" on page 77:

   "EGL_GL_COLORSPACE specifies the color space used by OpenGL and OpenGL
    ES when rendering to the image, or sampling from the image. It has the
    same meaning as when used with eglCreatePlatformWindowSurface, with the
    exception that its default value is EGL_GL_COLORSPACE_DEFAULT_EXT. This
    means that the color space should not be overriden. For example, if an
    image is created from an existing OpenGL texture, then
    GL_COLORSPACE_DEFAULT_EXT means that the original color space should be
    preserved."


    Add the following paragraphs to the "Errors" subsection in section 3.9
    on page 76:
    
   "If EGL_GL_COLORSPACE is not one of the legal values, the error
    EGL_BAD_PARAMETER is generated."

   "If ctx specifies a GL context that does not support creating an EGLImage
    with the given value for EGL_GL_COLORSPACE, EGL_BAD_MATCH error is
    generated."


Interaction with OES_EGL_image_external:

    The first sentence in the second to last paragraph in section 3.7.14
    should be changed from:

   "Sampling an external texture will return an RGBA vector in the same
    colorspace as the source image."

    to:

   "Sampling an external texture will return an RGBA vector in the same color
    space as the source image, unless the image's EGL_GL_COLORSPACE attribute
    results in sRGB encoding as described in EGL_EXT_image_gl_colorspace."

    The three parenthetical sentences in this same paragraph should be
    simplified since they partially conflict with existing language in the
    ES30 specification. Change them from:

   "(But these RGB values will be in the same colorspace as the
    original image.  Colorspace here includes the linear or non-linear
    encoding of the samples. For example, if the original image is in the
    sRGB color space then the RGB value returned by the sampler will also
    be sRGB, and if the original image is stored in ITU-R Rec. 601 YV12
    then the RGB value returned by the sampler will be an RGB value in the
    ITU-R Rec. 601 colorspace.)"

    to:

   "(For example, if the original image is stored in ITU-R Rec. 601 YV12
    then the RGB value returned by the sampler will be an RGB value in the
    ITU-R Rec. 601 colorspace.)"


Issues

Revision History

      Rev.  Date      Author    Changes
      ----  --------  --------  -----------------------------------------
      1     11/22/17  philip    Initial draft
      2     12/8/17   philip    Add note about OES_EGL_image_external
      3     12/11/17  philip    Changed from KHR to EXT.
      4     12/15/17  philip    Add diffs against the EGL 1.5 specification.
      5     12/20/17  philip    Add EGL_GL_COLORSPACE_DEFAULT_EXT.
      6     1/2/18    philip    Updated changes to OES_EGL_image_external.
      7     1/2/18    philip    Tweaked the changes to OES_EGL_image_external.
      8     2/2/18    philip    Add value for EGL_GL_COLORSPACE_DEFAULT_EXT.
      9     2/26/18   krzysio   Update contact information, finalize.
      9     4/20/18   krzysio   Fix stray reference to KHR.
