| Name |
| |
| EXT_platform_device |
| |
| Name Strings |
| |
| EGL_EXT_platform_device |
| |
| Contributors |
| |
| James Jones |
| Daniel Kartch |
| |
| Contacts |
| |
| James Jones, NVIDIA (jajones 'at' nvidia.com) |
| |
| Status |
| |
| Complete |
| |
| Version |
| |
| Version 6 - May 16th, 2014 |
| |
| Number |
| |
| EGL Extension #73 |
| |
| Extension Type |
| |
| EGL device extension |
| |
| Dependencies |
| |
| Requires EGL_EXT_device_base |
| |
| Requires EGL_EXT_platform_base or EGL 1.5 |
| |
| Written against the wording of EGL 1.5 |
| |
| Overview |
| |
| Increasingly, EGL and its client APIs are being used in place of |
| "native" rendering APIs to implement the basic graphics |
| functionality of native windowing systems. This creates demand |
| for a method to initialize EGL displays and surfaces directly on |
| top of native GPU or device objects rather than native window |
| system objects. The mechanics of enumerating the underlying |
| native devices and constructing EGL displays and surfaces from |
| them have been solved in various platform and implementation- |
| specific ways. The EGL device family of extensions offers a |
| standardized framework for bootstrapping EGL without the use of |
| any underlying "native" APIs or functionality. |
| |
| This extension defines a method to create an EGLDisplay from an |
| EGLDeviceEXT by treating the EGLDeviceEXT as an EGLNativeDisplay |
| object. |
| |
| New Types |
| |
| None |
| |
| New Functions |
| |
| None |
| |
| New Tokens |
| |
| Accepted by the <platform> parameter of eglGetPlatformDisplayEXT |
| and eglGetPlatformDisplay: |
| |
| EGL_PLATFORM_DEVICE_EXT 0x313F |
| |
| Replace the last paragraph of section 2.1 "Native Window System and |
| Rendering APIs" |
| |
| "This specification defines only the EGLDeviceEXT platform, and |
| behavior specific to it. Implementations may support other |
| platforms, but their existence and behavior is defined by |
| extensions. To detect support for other platforms, clients should |
| query the EGL_EXTENSIONS string of EGL_NO_DISPLAY using |
| eglQueryString (see section 3.3). |
| |
| Replace the second sentence of the paragraph following the |
| eglGetPlatformDisplay prototype |
| |
| "The only valid value for <platform> is EGL_PLATFORM_DEVICE_EXT. |
| When <platform> is EGL_PLATFORM_DEVICE_EXT, <native_display> must |
| be an EGLDeviceEXT object. Platform-specific extensions may |
| define other valid values for <platform>." |
| |
| Add the following sentence to the end of the second paragraph after |
| the eglCreatePlatformWindowSurface prototype. |
| |
| "There are no valid values of <native_window> when <dpy> belongs |
| to the EGL_PLATFORM_DEVICE_EXT platform." |
| |
| Add the following sentence to the end of the second paragraph after |
| the eglCreatePlatformPixmapSurface prototype. |
| |
| "There are no valid values of <native_pixmap> when <dpy> belongs |
| to the EGL_PLATFORM_DEVICE_EXT platform. |
| |
| Issues |
| |
| 1. Do EGLDevice-backed displays support window or pixmap surfaces? |
| If so, what native objects are they associated with? If not, |
| are EGLDevice-backed displays useful in any way? |
| |
| RESOLVED: This extension defines no method to create window or |
| pixmap surfaces on the EGLDeviceEXT platform. Other |
| extensions may define such functionality. Presumably, if |
| there are no other extensions that expose native window or |
| pixmap types associated with EGL devices, EGLDeviceEXT-backed |
| displays could expose EGLConfigs that only support rendering |
| to EGLStreamKHR or EGLPbuffer surfaces. |
| |
| 2. Should the EGL_PLATFORM_DEVICE_EXT platform be included in the |
| EGL specification as a special "blessed" platform, or exist |
| only as an extension like other platforms? |
| |
| RESOLVED: EGL devices are defined as part of the EGL |
| specification, so there's no reason to exclude their |
| associated platform from the core EGL specification. They are |
| not native objects, therefore they can not be referred to as a |
| native platform, even though they are used interchangeably |
| with native objects in this extension. |
| |
| Revision History: |
| |
| #6 (May 16th, 2014) James Jones |
| - Marked the extension complete |
| - Marked all issues resolved |
| |
| #5 (April 8th, 2014) James Jones |
| - Updated wording based on the EGL 1.5 spec |
| - Assigned values to tokens |
| |
| #4 (November 6th, 2013) James Jones |
| - Specified this is a device extension |
| - Requires, rather than interacts with EGL_EXT_platform_base |
| - Removed EGL_SUPPORTS_PLATFORM_DEVICE_EXT. There is no need |
| for a separate query now that the name string is listed in |
| the per-device extension string |
| |
| #3 (April 23rd, 2013) James Jones |
| - Fixed minor typos |
| |
| #2 (April 18th, 2013) James Jones |
| - Moved eglGetDisplayPointerEXT to a stand-alone extension |
| - Renamed from EGL_EXT_device_display to |
| EGL_EXT_platform_device |
| - Filled in the actual spec language modifications |
| - Replaced issue 2, since the original was moved to |
| EGL_EXT_display_attributes |
| - Reworded issue 1. |
| - Fixed some typos |
| |
| #1 (April 16th, 2013) James Jones |
| - Initial Draft |