Edit

kc3-lang/angle/extensions/EGL_ANGLE_flexible_surface_compatibility.txt

Branch :

  • Show log

    Commit

  • Author : John Bauman
    Date : 2015-11-24 19:13:55
    Hash : fe3e46ab
    Message : Add EGL_ANGLE_flexible_surface_compatibility This extension allows users of ANGLE to make contexts current with surfaces that were created with different bit depths. BUG=angleproject:1223 Change-Id: I9072c256e0a36aee1ce41ab69cb9a04240bf0521 Reviewed-on: https://chromium-review.googlesource.com/314935 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: John Bauman <jbauman@chromium.org> Tested-by: John Bauman <jbauman@chromium.org>

  • extensions/EGL_ANGLE_flexible_surface_compatibility.txt
  • Name
    
        ANGLE_flexible_surface_compatibility
    
    Name Strings
    
        EGL_ANGLE_flexible_surface_compatibility
    
    Contributors
    
        John Bauman   (jbauman 'at' google.com)
        Shannon Woods (shannonwoods 'at' google.com)
    
    Contact
    
        John Bauman   (jbauman 'at' google.com)
    
    Status
    
        Draft
    
    Version
    
        Version 3, Dec 15, 2015
    
    Number
    
        EGL Extension #XXX
    
    Extension Type
    
        EGL display extension
    
    Dependencies
    
        This extension is written against the language of EGL 1.5.
    
    Overview
    
        Some EGL implementations may allow any surface to be made current with any
        context from the same display, without restrictions due to bit depth.
    
    IP Status
    
        No known claims.
    
    New Types
    
        None.
    
    New Procedures and Functions
    
        None.
    
    New Tokens
    
        Accepted by the <attribute> parameter of eglQuerySurface and by the
        <attrib_list> parameter of eglCreateWindowSurface,
        eglCreatePlatformWindowSurface, eglCreatePbufferSurface, and
        eglCreatePbufferFromClientBuffer:
    
        EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE  0x33A6
    
    Changes to Chapter 2 of the EGL 1.5 Specification (EGL Operation)
    
        Replace the first paragraph of the first bulleted list item in section
        2.2, page 4
        (Rendering Contexts and Drawing Surfaces)
    
        "They support the same type of color buffer (RGB or luminance), or the
        surface has the EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE
        attribute set to EGL_TRUE."
    
        Replace the first paragraph of the second bulleted list item in section
        2.2, page 4
        (Rendering Contexts and Drawing Surfaces)
    
        "They have color buffers and ancillary buffers of the same depth, or the
        surface has the EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE
        attribute set to EGL_TRUE."
    
    Changes to Chapter 3 of the EGL 1.5 Specification (EGL Functions and Errors)
    
        Modify the fourth paragraph of Section 3.5.1, page 32
        (Creating On-Screen rendering Surfaces)
    
        "<attrib_list> specifies a list of attributes for the window. The list has
        the same structure as described for eglChooseConfig. Attributes that can
        be specified in <attrib_list> include
        EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE, EGL_GL_COLORSPACE,
        EGL_RENDER_BUFFER, EGL_VG_COLORSPACE, and EGL_VG_ALPHA_FORMAT."
    
        Add the following between paragraphs 6 and 7 of Section 3.5.1, page 32
        (Creating On-Screen Rendering Surfaces)
    
        "EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE specifies whether the
        surface can be made current with a context with a config of different bit
        depth. Its values can be EGL_TRUE, in which case that is supported, or
        EGL_FALSE, in which case that is not supported."
    
        Modify the fourth paragraph of Section 3.5.2, page 35
        (Creating Off-Screen Rendering Surfaces)
    
        "<attrib_list> specifies a list of attributes for the pbuffer. The list
        has the same structure as described for eglChooseConfig. Attributes that
        can be specified in <attrib_list> include EGL_WIDTH, EGL_HEIGHT,
        EGL_LARGEST_PBUFFER, EGL_TEXTURE_FORMAT, EGL_TEXTURE_TARGET,
        EGL_MIPMAP_TEXTURE, EGL_GL_COLORSPACE, EGL_VG_COLORSPACE,
        EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE, and
        EGL_VG_ALPHA_FORMAT."
    
        Modify paragraph twelve of Section 3.5.2, page 36
    
        "EGL_GL_COLORSPACE, EGL_VG_COLORSPACE,
        EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE, and
        EGL_VG_ALPHA_FORMAT have the same meaning and default values as when used
        with eglCreatePlatformWindowSurface."
    
        Modify the fifth paragraph of Section 3.5.3, page 37
        (Binding Off-Screen Rendering Surfaces To Client Buffers)
    
        "<attrib_list> specifies a list of attributes for the pbuffer. The list
        has the same structure as described for eglChooseConfig. Attributes that
        can be specified in <attrib_list> include EGL_TEXTURE_FORMAT,
        EGL_TEXTURE_TARGET, EGL_- MIPMAP_TEXTURE, and
        EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE. The meaning of these
        attributes is as described above for eglCreatePbufferSurface. The
        EGL_VG_COLORSPACE and EGL_VG_ALPHA_FORMAT attributes of the surface are
        determined by the VGImageFormat of buffer."
    
        Add the following entry to Table 3.5, page 44 (Queryable surface
        attributes and types)
    
        Attribute                                          Type    Description
        -------------------------------------------------- ------- ------------------------
        EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE boolean Surface can be made
                                                                   current with contexts
                                                                   of a different bit depth
    
    Issues
    
        None
    
    Revision History
    
        Version 3, Dec 15, 2015 (John Bauman)
            - Modify EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE value.
    
        Version 2, Dec 1, 2015 (John Bauman)
            - Add EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE to specify
              new behavior.
    
        Version 1, Nov 24, 2015 (John Bauman)
            - Initial Draft