102f4aeb0Sopenharmony_ciName
202f4aeb0Sopenharmony_ci
302f4aeb0Sopenharmony_ci    EXT_platform_device
402f4aeb0Sopenharmony_ci
502f4aeb0Sopenharmony_ciName Strings
602f4aeb0Sopenharmony_ci
702f4aeb0Sopenharmony_ci    EGL_EXT_platform_device
802f4aeb0Sopenharmony_ci
902f4aeb0Sopenharmony_ciContributors
1002f4aeb0Sopenharmony_ci
1102f4aeb0Sopenharmony_ci    James Jones
1202f4aeb0Sopenharmony_ci    Daniel Kartch
1302f4aeb0Sopenharmony_ci
1402f4aeb0Sopenharmony_ciContacts
1502f4aeb0Sopenharmony_ci
1602f4aeb0Sopenharmony_ci    James Jones, NVIDIA  (jajones 'at' nvidia.com)
1702f4aeb0Sopenharmony_ci
1802f4aeb0Sopenharmony_ciStatus
1902f4aeb0Sopenharmony_ci
2002f4aeb0Sopenharmony_ci    Complete
2102f4aeb0Sopenharmony_ci
2202f4aeb0Sopenharmony_ciVersion
2302f4aeb0Sopenharmony_ci
2402f4aeb0Sopenharmony_ci    Version 6 - May 16th, 2014
2502f4aeb0Sopenharmony_ci
2602f4aeb0Sopenharmony_ciNumber
2702f4aeb0Sopenharmony_ci
2802f4aeb0Sopenharmony_ci    EGL Extension #73
2902f4aeb0Sopenharmony_ci
3002f4aeb0Sopenharmony_ciExtension Type
3102f4aeb0Sopenharmony_ci
3202f4aeb0Sopenharmony_ci    EGL device extension
3302f4aeb0Sopenharmony_ci
3402f4aeb0Sopenharmony_ciDependencies
3502f4aeb0Sopenharmony_ci
3602f4aeb0Sopenharmony_ci    Requires EGL_EXT_device_base
3702f4aeb0Sopenharmony_ci
3802f4aeb0Sopenharmony_ci    Requires EGL_EXT_platform_base or EGL 1.5
3902f4aeb0Sopenharmony_ci
4002f4aeb0Sopenharmony_ci    Written against the wording of EGL 1.5
4102f4aeb0Sopenharmony_ci
4202f4aeb0Sopenharmony_ciOverview
4302f4aeb0Sopenharmony_ci
4402f4aeb0Sopenharmony_ci    Increasingly, EGL and its client APIs are being used in place of
4502f4aeb0Sopenharmony_ci    "native" rendering APIs to implement the basic graphics
4602f4aeb0Sopenharmony_ci    functionality of native windowing systems.  This creates demand
4702f4aeb0Sopenharmony_ci    for a method to initialize EGL displays and surfaces directly on
4802f4aeb0Sopenharmony_ci    top of native GPU or device objects rather than native window
4902f4aeb0Sopenharmony_ci    system objects.  The mechanics of enumerating the underlying
5002f4aeb0Sopenharmony_ci    native devices and constructing EGL displays and surfaces from
5102f4aeb0Sopenharmony_ci    them have been solved in various platform and implementation-
5202f4aeb0Sopenharmony_ci    specific ways.  The EGL device family of extensions offers a
5302f4aeb0Sopenharmony_ci    standardized framework for bootstrapping EGL without the use of
5402f4aeb0Sopenharmony_ci    any underlying "native" APIs or functionality.
5502f4aeb0Sopenharmony_ci
5602f4aeb0Sopenharmony_ci    This extension defines a method to create an EGLDisplay from an
5702f4aeb0Sopenharmony_ci    EGLDeviceEXT by treating the EGLDeviceEXT as an EGLNativeDisplay
5802f4aeb0Sopenharmony_ci    object.
5902f4aeb0Sopenharmony_ci
6002f4aeb0Sopenharmony_ciNew Types
6102f4aeb0Sopenharmony_ci
6202f4aeb0Sopenharmony_ci    None
6302f4aeb0Sopenharmony_ci
6402f4aeb0Sopenharmony_ciNew Functions
6502f4aeb0Sopenharmony_ci
6602f4aeb0Sopenharmony_ci    None
6702f4aeb0Sopenharmony_ci
6802f4aeb0Sopenharmony_ciNew Tokens
6902f4aeb0Sopenharmony_ci
7002f4aeb0Sopenharmony_ci    Accepted by the <platform> parameter of eglGetPlatformDisplayEXT
7102f4aeb0Sopenharmony_ci    and eglGetPlatformDisplay:
7202f4aeb0Sopenharmony_ci
7302f4aeb0Sopenharmony_ci        EGL_PLATFORM_DEVICE_EXT                  0x313F
7402f4aeb0Sopenharmony_ci
7502f4aeb0Sopenharmony_ciReplace the last paragraph of section 2.1 "Native Window System and
7602f4aeb0Sopenharmony_ciRendering APIs"
7702f4aeb0Sopenharmony_ci
7802f4aeb0Sopenharmony_ci    "This specification defines only the EGLDeviceEXT platform, and
7902f4aeb0Sopenharmony_ci    behavior specific to it.  Implementations may support other
8002f4aeb0Sopenharmony_ci    platforms, but their existence and behavior is defined by
8102f4aeb0Sopenharmony_ci    extensions.  To detect support for other platforms, clients should
8202f4aeb0Sopenharmony_ci    query the EGL_EXTENSIONS string of EGL_NO_DISPLAY using
8302f4aeb0Sopenharmony_ci    eglQueryString (see section 3.3).
8402f4aeb0Sopenharmony_ci
8502f4aeb0Sopenharmony_ciReplace the second sentence of the paragraph following the
8602f4aeb0Sopenharmony_cieglGetPlatformDisplay prototype
8702f4aeb0Sopenharmony_ci
8802f4aeb0Sopenharmony_ci    "The only valid value for <platform> is EGL_PLATFORM_DEVICE_EXT.
8902f4aeb0Sopenharmony_ci    When <platform> is EGL_PLATFORM_DEVICE_EXT, <native_display> must
9002f4aeb0Sopenharmony_ci    be an EGLDeviceEXT object.  Platform-specific extensions may
9102f4aeb0Sopenharmony_ci    define other valid values for <platform>."
9202f4aeb0Sopenharmony_ci
9302f4aeb0Sopenharmony_ciAdd the following sentence to the end of the second paragraph after
9402f4aeb0Sopenharmony_cithe eglCreatePlatformWindowSurface prototype.
9502f4aeb0Sopenharmony_ci
9602f4aeb0Sopenharmony_ci    "There are no valid values of <native_window> when <dpy> belongs
9702f4aeb0Sopenharmony_ci    to the EGL_PLATFORM_DEVICE_EXT platform."
9802f4aeb0Sopenharmony_ci
9902f4aeb0Sopenharmony_ciAdd the following sentence to the end of the second paragraph after
10002f4aeb0Sopenharmony_cithe eglCreatePlatformPixmapSurface prototype.
10102f4aeb0Sopenharmony_ci
10202f4aeb0Sopenharmony_ci    "There are no valid values of <native_pixmap> when <dpy> belongs
10302f4aeb0Sopenharmony_ci    to the EGL_PLATFORM_DEVICE_EXT platform.
10402f4aeb0Sopenharmony_ci
10502f4aeb0Sopenharmony_ciIssues
10602f4aeb0Sopenharmony_ci
10702f4aeb0Sopenharmony_ci    1.  Do EGLDevice-backed displays support window or pixmap surfaces?
10802f4aeb0Sopenharmony_ci        If so, what native objects are they associated with?  If not,
10902f4aeb0Sopenharmony_ci        are EGLDevice-backed displays useful in any way?
11002f4aeb0Sopenharmony_ci
11102f4aeb0Sopenharmony_ci        RESOLVED: This extension defines no method to create window or
11202f4aeb0Sopenharmony_ci        pixmap surfaces on the EGLDeviceEXT platform.  Other
11302f4aeb0Sopenharmony_ci        extensions may define such functionality.  Presumably, if
11402f4aeb0Sopenharmony_ci        there are no other extensions that expose native window or
11502f4aeb0Sopenharmony_ci        pixmap types associated with EGL devices, EGLDeviceEXT-backed
11602f4aeb0Sopenharmony_ci        displays could expose EGLConfigs that only support rendering
11702f4aeb0Sopenharmony_ci        to EGLStreamKHR or EGLPbuffer surfaces.
11802f4aeb0Sopenharmony_ci
11902f4aeb0Sopenharmony_ci    2.  Should the EGL_PLATFORM_DEVICE_EXT platform be included in the
12002f4aeb0Sopenharmony_ci        EGL specification as a special "blessed" platform, or exist
12102f4aeb0Sopenharmony_ci        only as an extension like other platforms?
12202f4aeb0Sopenharmony_ci
12302f4aeb0Sopenharmony_ci        RESOLVED: EGL devices are defined as part of the EGL
12402f4aeb0Sopenharmony_ci        specification, so there's no reason to exclude their
12502f4aeb0Sopenharmony_ci        associated platform from the core EGL specification.  They are
12602f4aeb0Sopenharmony_ci        not native objects, therefore they can not be referred to as a
12702f4aeb0Sopenharmony_ci        native platform, even though they are used interchangeably
12802f4aeb0Sopenharmony_ci        with native objects in this extension.
12902f4aeb0Sopenharmony_ci
13002f4aeb0Sopenharmony_ciRevision History:
13102f4aeb0Sopenharmony_ci
13202f4aeb0Sopenharmony_ci    #6  (May 16th, 2014) James Jones
13302f4aeb0Sopenharmony_ci        - Marked the extension complete
13402f4aeb0Sopenharmony_ci        - Marked all issues resolved
13502f4aeb0Sopenharmony_ci
13602f4aeb0Sopenharmony_ci    #5  (April 8th, 2014) James Jones
13702f4aeb0Sopenharmony_ci        - Updated wording based on the EGL 1.5 spec
13802f4aeb0Sopenharmony_ci        - Assigned values to tokens
13902f4aeb0Sopenharmony_ci
14002f4aeb0Sopenharmony_ci    #4  (November 6th, 2013) James Jones
14102f4aeb0Sopenharmony_ci        - Specified this is a device extension
14202f4aeb0Sopenharmony_ci        - Requires, rather than interacts with EGL_EXT_platform_base
14302f4aeb0Sopenharmony_ci        - Removed EGL_SUPPORTS_PLATFORM_DEVICE_EXT.  There is no need
14402f4aeb0Sopenharmony_ci          for a separate query now that the name string is listed in
14502f4aeb0Sopenharmony_ci          the per-device extension string
14602f4aeb0Sopenharmony_ci
14702f4aeb0Sopenharmony_ci    #3  (April 23rd, 2013) James Jones
14802f4aeb0Sopenharmony_ci        - Fixed minor typos
14902f4aeb0Sopenharmony_ci
15002f4aeb0Sopenharmony_ci    #2  (April 18th, 2013) James Jones
15102f4aeb0Sopenharmony_ci        - Moved eglGetDisplayPointerEXT to a stand-alone extension
15202f4aeb0Sopenharmony_ci        - Renamed from EGL_EXT_device_display to
15302f4aeb0Sopenharmony_ci          EGL_EXT_platform_device
15402f4aeb0Sopenharmony_ci        - Filled in the actual spec language modifications
15502f4aeb0Sopenharmony_ci        - Replaced issue 2, since the original was moved to
15602f4aeb0Sopenharmony_ci          EGL_EXT_display_attributes
15702f4aeb0Sopenharmony_ci        - Reworded issue 1.
15802f4aeb0Sopenharmony_ci        - Fixed some typos
15902f4aeb0Sopenharmony_ci
16002f4aeb0Sopenharmony_ci    #1  (April 16th, 2013) James Jones
16102f4aeb0Sopenharmony_ci        - Initial Draft
162