Edit

kc3-lang/angle/extensions/EGL_ANGLE_surface_orientation.txt

Branch :

  • Show log

    Commit

  • Author : Geoff Lang
    Date : 2015-12-16 13:31:57
    Hash : 7f448b58
    Message : Add an EGL_ANGLE_surface_orientation extension. BUG=angleproject:1262 Change-Id: Ifbb0f5302311a68a0c6f02baaea706cbb7055a52 Reviewed-on: https://chromium-review.googlesource.com/320011 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>

  • extensions/EGL_ANGLE_surface_orientation.txt
  • Name
    
        ANGLE_surface_orientation
    
    Name Strings
    
        EGL_ANGLE_surface_orientation
    
    Contributors
    
        Geoff Lang, Google
    
    Contacts
    
        Geoff Lang, Google (geofflang 'at' google 'dot' com)
    
    Status
    
        Draft
    
    Version
    
        Version 1, 2015-12-15
    
    Number
    
        EGL Extension XXX
    
    Extension Type
    
        EGL display extension
    
    Dependencies
    
        Written based on the wording of the EGL 1.5 Specification
        (August 7 2014).
    
    Overview
    
        This extension provides a mechanism for querying the most optimal
        orientation of a window surface and creating window sufraces with
        non-default orientations for the most performant rendering.
    
    New Types
    
        None
    
    New Procedures and Functions
    
        None
    
    New Tokens
    
        New EGLConfig bitmask attribute name:
    
            EGL_OPTIMAL_SURFACE_ORIENTATION_ANGLE 0x33A7
    
        Accepted as an attribute name in the <attrib_list> argument of
        eglCreateWindowSurface and attribute name in the <attribute>
        argument of eglQuerySurface:
    
            EGL_SURFACE_ORIENTATION_ANGLE 0x33A8
    
        Valid bitfields in the EGL_OPTIMAL_SURFACE_ORIENTATION_ANGLE bitmask
        attribute of EGLConfig and EGL_SURFACE_ORIENTATION_ANGLE bitmask attribute
        of eglCreateWindowSurface:
    
            EGL_SURFACE_ORIENTATION_INVERT_X_ANGLE 0x0001
            EGL_SURFACE_ORIENTATION_INVERT_Y_ANGLE 0x0002
    
    Additions to the EGL Specification
    
        Additions to Chapter 3 of the EGL 1.5 Specification (EGL Functions and Errors)
    
        Add to table 3.1 (EGLConfig Attributes)
    
        Attribute                              Type     Notes
        -------------------------------------  -------  ----------------------
        EGL_OPTIMAL_SURFACE_ORIENTATION_ANGLE  bitmask  Optimal window surface
                                                        orientation.
    
    
        Add a paragraph to section 3.4, section Other EGLConfig Attribute
        Descriptions.
    
        "EGL_OPTIMAL_SURFACE_ORIENTATION_ANGLE is a mask indicating which
        window surface orientation will provide the best performance."
    
        Add to table 3.4 (Default values and match criteria for EGLConfig
        attributes):
    
        Attribute                              Default  Selection  Sort     Sort
                                                        Criteria   Order    Priority
        -------------------------------------  -------  ---------  -------  --------
        EGL_OPTIMAL_SURFACE_ORIENTATION_ANGLE  0        Exact      None
    
        Add a paragraph to section 3.5.1, section Creating On-Screen Rendering
        Surfaces.
    
        EGL_SURFACE_ORIENTATION_ANGLE attribute specifies how the surface's content
        will appear on the screen. If its value contains
        EGL_SURFACE_ORIENTATION_INVERT_X_ANGLE then all displayed content will be
        inverted along the vertical axis. Similarly, if its value contains
        EGL_SURFACE_ORIENTATION_INVERT_Y_ANGLE then all displayed content will be
        inverted along the horizontal axis.
    
        Add to table 3.5 (Queryable surface attributes and types):
    
        Attribute                      Type     Description
        -----------------------------  -------  ----------------------
        EGL_SURFACE_ORIENTATION_ANGLE  bitmask  Orientation of surface
    
        Add a paragraph to section 3.5.6, Surface Attributes:
    
        "Querying EGL_SURFACE_ORIENTATION_ANGLE returns the orientation of the
        surface.  For a window surface, this is the same attribute value specified
        when the surface was created.  For other types of surfaces, it is always
        0."
    
    Issues
    
        1) What about dirty regions and sub regions specified by extensions such as
           NV_post_sub_buffer?
    
           These regions will be applied to the same region of the window as
           before because they are often specified based on events from the
           operating system.  The content in these regions will be displayed
           according to the value of EGL_SURFACE_ORIENTATION_ANGLE.
    
    Revision History
    
        Version 1, 2015-12-15 (Geoff Lang)
          - Initial draft