102f4aeb0Sopenharmony_ciName 202f4aeb0Sopenharmony_ci 302f4aeb0Sopenharmony_ci EXT_platform_base 402f4aeb0Sopenharmony_ci 502f4aeb0Sopenharmony_ciName Strings 602f4aeb0Sopenharmony_ci 702f4aeb0Sopenharmony_ci EGL_EXT_platform_base 802f4aeb0Sopenharmony_ci 902f4aeb0Sopenharmony_ciContributors 1002f4aeb0Sopenharmony_ci 1102f4aeb0Sopenharmony_ci Chad Versace <chad.versace@intel.com> 1202f4aeb0Sopenharmony_ci James Jones <jajones@nvidia.com> 1302f4aeb0Sopenharmony_ci 1402f4aeb0Sopenharmony_ciContacts 1502f4aeb0Sopenharmony_ci 1602f4aeb0Sopenharmony_ci Chad Versace <chad.versace@intel.com> 1702f4aeb0Sopenharmony_ci 1802f4aeb0Sopenharmony_ciStatus 1902f4aeb0Sopenharmony_ci 2002f4aeb0Sopenharmony_ci Complete 2102f4aeb0Sopenharmony_ci 2202f4aeb0Sopenharmony_ciVersion 2302f4aeb0Sopenharmony_ci 2402f4aeb0Sopenharmony_ci Version 9, 2014.01.09 2502f4aeb0Sopenharmony_ci 2602f4aeb0Sopenharmony_ciNumber 2702f4aeb0Sopenharmony_ci 2802f4aeb0Sopenharmony_ci EGL Extension #57 2902f4aeb0Sopenharmony_ci 3002f4aeb0Sopenharmony_ciExtension Type 3102f4aeb0Sopenharmony_ci 3202f4aeb0Sopenharmony_ci EGL client extension 3302f4aeb0Sopenharmony_ci 3402f4aeb0Sopenharmony_ciDependencies 3502f4aeb0Sopenharmony_ci 3602f4aeb0Sopenharmony_ci Requires EGL 1.4. 3702f4aeb0Sopenharmony_ci 3802f4aeb0Sopenharmony_ci Requires EGL_EXT_client_extensions to query its existence without 3902f4aeb0Sopenharmony_ci a display. 4002f4aeb0Sopenharmony_ci 4102f4aeb0Sopenharmony_ci This extension is written against the wording of the 2013.02.11 revision 4202f4aeb0Sopenharmony_ci of the EGL 1.4 Specification. 4302f4aeb0Sopenharmony_ci 4402f4aeb0Sopenharmony_ciOverview 4502f4aeb0Sopenharmony_ci 4602f4aeb0Sopenharmony_ci This extension defines functionality and behavior for EGL implementations 4702f4aeb0Sopenharmony_ci that support multiple platforms at runtime. For example, on Linux an EGL 4802f4aeb0Sopenharmony_ci implementation could support X11, Wayland, GBM (Generic Buffer Manager), 4902f4aeb0Sopenharmony_ci Surface Flinger, and perhaps other platforms. 5002f4aeb0Sopenharmony_ci 5102f4aeb0Sopenharmony_ci In particular, this extension defines the following: 5202f4aeb0Sopenharmony_ci 5302f4aeb0Sopenharmony_ci 1. A mechanism by which an EGL client can detect which platforms the 5402f4aeb0Sopenharmony_ci EGL implementation supports. 5502f4aeb0Sopenharmony_ci 5602f4aeb0Sopenharmony_ci 2. New functions that enable an EGL client to specify to which 5702f4aeb0Sopenharmony_ci platform a native resource belongs when creating an EGL resource 5802f4aeb0Sopenharmony_ci from that native resource. For example, this extension enables an 5902f4aeb0Sopenharmony_ci EGL client to specify, when creating an EGLSurface from a native 6002f4aeb0Sopenharmony_ci window, that the window belongs to X11. 6102f4aeb0Sopenharmony_ci 6202f4aeb0Sopenharmony_ci 3. That an EGL client is not restricted to interacting with a single 6302f4aeb0Sopenharmony_ci platform per process. A client process can create and manage EGL 6402f4aeb0Sopenharmony_ci resources from multiple platforms. 6502f4aeb0Sopenharmony_ci 6602f4aeb0Sopenharmony_ci The generic term 'platform' is used throughout this extension 6702f4aeb0Sopenharmony_ci specification rather than 'window system' because not all EGL platforms 6802f4aeb0Sopenharmony_ci are window systems. In particular, those platforms that allow headless 6902f4aeb0Sopenharmony_ci rendering without a display server, such as GBM, are not window systems. 7002f4aeb0Sopenharmony_ci 7102f4aeb0Sopenharmony_ci This extension does not specify behavior specific to any platform, nor 7202f4aeb0Sopenharmony_ci does it specify the set of platforms that an EGL implementation may 7302f4aeb0Sopenharmony_ci support. Platform-specific details lie outside this extension's scope and 7402f4aeb0Sopenharmony_ci are instead described by extensions layered atop this one. 7502f4aeb0Sopenharmony_ci 7602f4aeb0Sopenharmony_ciNew Types 7702f4aeb0Sopenharmony_ci 7802f4aeb0Sopenharmony_ci None 7902f4aeb0Sopenharmony_ci 8002f4aeb0Sopenharmony_ciNew Procedures and Functions 8102f4aeb0Sopenharmony_ci 8202f4aeb0Sopenharmony_ci EGLDisplay eglGetPlatformDisplayEXT( 8302f4aeb0Sopenharmony_ci EGLenum platform, 8402f4aeb0Sopenharmony_ci void *native_display, 8502f4aeb0Sopenharmony_ci const EGLint *attrib_list); 8602f4aeb0Sopenharmony_ci 8702f4aeb0Sopenharmony_ci EGLSurface eglCreatePlatformWindowSurfaceEXT( 8802f4aeb0Sopenharmony_ci EGLDisplay dpy, 8902f4aeb0Sopenharmony_ci EGLConfig config, 9002f4aeb0Sopenharmony_ci void *native_window, 9102f4aeb0Sopenharmony_ci const EGLint *attrib_list); 9202f4aeb0Sopenharmony_ci 9302f4aeb0Sopenharmony_ci EGLSurface eglCreatePlatformPixmapSurfaceEXT( 9402f4aeb0Sopenharmony_ci EGLDisplay dpy, 9502f4aeb0Sopenharmony_ci EGLConfig config, 9602f4aeb0Sopenharmony_ci void *native_pixmap, 9702f4aeb0Sopenharmony_ci const EGLint *attrib_list); 9802f4aeb0Sopenharmony_ci 9902f4aeb0Sopenharmony_ciNew Tokens 10002f4aeb0Sopenharmony_ci 10102f4aeb0Sopenharmony_ci None 10202f4aeb0Sopenharmony_ci 10302f4aeb0Sopenharmony_ciAdditions to the EGL 1.4 Specification 10402f4aeb0Sopenharmony_ci 10502f4aeb0Sopenharmony_ci Replace each occurence of the term "window system" with "platform". The 10602f4aeb0Sopenharmony_ci rationale behind this change is that not all platforms are window systems, 10702f4aeb0Sopenharmony_ci yet the EGL 1.4 specification uses the two terms interchangeably. In 10802f4aeb0Sopenharmony_ci particular, platforms that allow headless rendering without a display 10902f4aeb0Sopenharmony_ci server, such as GBM, are not window systems. 11002f4aeb0Sopenharmony_ci 11102f4aeb0Sopenharmony_ci Append the following paragraph to the initial, unnamed subsection of 11202f4aeb0Sopenharmony_ci section 2.1 "Native Window System and Rendering APIs". 11302f4aeb0Sopenharmony_ci 11402f4aeb0Sopenharmony_ci "This specification does not define the set of platforms that may be 11502f4aeb0Sopenharmony_ci supported by the EGL implementation, nor does it specify behavior specific 11602f4aeb0Sopenharmony_ci to any platform. The set of supported platforms and their behavior is 11702f4aeb0Sopenharmony_ci defined by extensions. To detect if a particular platform is supported, 11802f4aeb0Sopenharmony_ci clients should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY using 11902f4aeb0Sopenharmony_ci eglQueryString. 12002f4aeb0Sopenharmony_ci 12102f4aeb0Sopenharmony_ci Replace the text of section 3.2 "Initialization", from the start of the 12202f4aeb0Sopenharmony_ci section and up to and excluding the phrase "EGL may be intialized on 12302f4aeb0Sopenharmony_ci a display", with the following: 12402f4aeb0Sopenharmony_ci 12502f4aeb0Sopenharmony_ci "A display can be obtained by calling 12602f4aeb0Sopenharmony_ci 12702f4aeb0Sopenharmony_ci EGLDisplay eglGetPlatformDisplayEXT( 12802f4aeb0Sopenharmony_ci EGLenum platform, 12902f4aeb0Sopenharmony_ci void *native_display, 13002f4aeb0Sopenharmony_ci const EGLint *attrib_list); 13102f4aeb0Sopenharmony_ci 13202f4aeb0Sopenharmony_ci EGL considers the returned EGLDisplay as belonging to the native platform 13302f4aeb0Sopenharmony_ci specified by <platform>. This specification defines no valid value for 13402f4aeb0Sopenharmony_ci <platform>. Any specification that does define a valid value for 13502f4aeb0Sopenharmony_ci <platform> will also define requirements for the <native_display> 13602f4aeb0Sopenharmony_ci parameter. For example, an extension specification that defines support 13702f4aeb0Sopenharmony_ci for the X11 platform may require that <native_display> be a pointer to an 13802f4aeb0Sopenharmony_ci X11 Display, and an extension specification that defines support for the 13902f4aeb0Sopenharmony_ci Microsoft Windows platform may require that <native_display> be a pointer 14002f4aeb0Sopenharmony_ci to a Windows Device Context. 14102f4aeb0Sopenharmony_ci 14202f4aeb0Sopenharmony_ci All attribute names in <attrib_list> are immediately followed by the 14302f4aeb0Sopenharmony_ci corresponding desired value. The list is terminated with EGL_NONE. The 14402f4aeb0Sopenharmony_ci <attrib_list> is considered empty if either <attrib_list> is NULL or if 14502f4aeb0Sopenharmony_ci its first element is EGL_NONE. This specification defines no valid 14602f4aeb0Sopenharmony_ci attribute names for <attrib_list>. 14702f4aeb0Sopenharmony_ci 14802f4aeb0Sopenharmony_ci Multiple calls made to eglGetPlatformDisplayEXT with the same <platform> 14902f4aeb0Sopenharmony_ci and <native_display> will return the same EGLDisplay handle. 15002f4aeb0Sopenharmony_ci 15102f4aeb0Sopenharmony_ci An EGL_BAD_PARAMETER error is generated if <platform> has an invalid value. 15202f4aeb0Sopenharmony_ci If <platform> is valid but no display matching <native_display> is 15302f4aeb0Sopenharmony_ci available, then EGL_NO_DISPLAY is returned; no error condition is raised 15402f4aeb0Sopenharmony_ci in this case. 15502f4aeb0Sopenharmony_ci 15602f4aeb0Sopenharmony_ci A display can also be obtained by calling 15702f4aeb0Sopenharmony_ci 15802f4aeb0Sopenharmony_ci EGLDisplay eglGetDisplay(EGLNativeDisplayType display_id); 15902f4aeb0Sopenharmony_ci 16002f4aeb0Sopenharmony_ci The behavior of eglGetDisplay is similar to that of 16102f4aeb0Sopenharmony_ci eglGetPlatformDisplayEXT, but is specifided in terms of implementation- 16202f4aeb0Sopenharmony_ci specific behavior rather than platform-specific extensions. 16302f4aeb0Sopenharmony_ci As for eglGetPlatformDisplayEXT, EGL considers the returned EGLDisplay 16402f4aeb0Sopenharmony_ci as belonging to the same platform as <display_id>. However, the set of 16502f4aeb0Sopenharmony_ci platforms to which <display_id> is permitted to belong, as well as the 16602f4aeb0Sopenharmony_ci actual type of <display_id>, are implementation-specific. If <display_id> 16702f4aeb0Sopenharmony_ci is EGL_DEFAULT_DISPLAY, a default display is returned. Multiple calls 16802f4aeb0Sopenharmony_ci made to eglGetDisplay with the same <display_id> will return the same 16902f4aeb0Sopenharmony_ci EGLDisplay handle. If no display matching <display_id> is available, 17002f4aeb0Sopenharmony_ci EGL_NO_DISPLAY is returned; no error condition is raised in this case." 17102f4aeb0Sopenharmony_ci 17202f4aeb0Sopenharmony_ci In section 3.5.1 "Creating On-Screen Rendering Surfaces", replace the 17302f4aeb0Sopenharmony_ci second paragraph, which begins with "Using the platform-specific type" and 17402f4aeb0Sopenharmony_ci ends with "render into this surface", with the following: 17502f4aeb0Sopenharmony_ci 17602f4aeb0Sopenharmony_ci "Then call 17702f4aeb0Sopenharmony_ci 17802f4aeb0Sopenharmony_ci EGLSurface eglCreatePlatformWindowSurfaceEXT( 17902f4aeb0Sopenharmony_ci EGLDisplay dpy, 18002f4aeb0Sopenharmony_ci EGLConfig config, 18102f4aeb0Sopenharmony_ci void *native_window, 18202f4aeb0Sopenharmony_ci const EGLint *attrib_list); 18302f4aeb0Sopenharmony_ci 18402f4aeb0Sopenharmony_ci eglCreatePlatformWindowSurfaceEXT creates an onscreen EGLSurface and 18502f4aeb0Sopenharmony_ci returns a handle to it. Any EGL context created with a compatible 18602f4aeb0Sopenharmony_ci EGLConfig can be used to render into this surface. 18702f4aeb0Sopenharmony_ci 18802f4aeb0Sopenharmony_ci <native_window> must belong to the same platform as <dpy>, and EGL 18902f4aeb0Sopenharmony_ci considers the returned EGLSurface as belonging to that same platform. The 19002f4aeb0Sopenharmony_ci extension that defines the platform to which <dpy> belongs also defines 19102f4aeb0Sopenharmony_ci the requirements for the <native_window> parameter." 19202f4aeb0Sopenharmony_ci 19302f4aeb0Sopenharmony_ci In the remainder of section 3.5.1, replace each occurrence of 19402f4aeb0Sopenharmony_ci 'eglCreateWindowSurface' with 'eglCreatePlatformWindowSurfaceEXT'. 19502f4aeb0Sopenharmony_ci 19602f4aeb0Sopenharmony_ci Insert the sentence below after the first sentence of the last paragraph 19702f4aeb0Sopenharmony_ci of section 3.5.1: 19802f4aeb0Sopenharmony_ci 19902f4aeb0Sopenharmony_ci "If <dpy> and <native_window> do not belong to the same platform, then 20002f4aeb0Sopenharmony_ci undefined behavior occurs. [1]" 20102f4aeb0Sopenharmony_ci 20202f4aeb0Sopenharmony_ci Add the following footnote to section 3.5.1: 20302f4aeb0Sopenharmony_ci 20402f4aeb0Sopenharmony_ci "[1] See section 3.1.0.2 "Parameter Validation". 20502f4aeb0Sopenharmony_ci 20602f4aeb0Sopenharmony_ci Append the following to section 3.5.1: 20702f4aeb0Sopenharmony_ci 20802f4aeb0Sopenharmony_ci "An on-screen rendering surface may also be created by calling 20902f4aeb0Sopenharmony_ci 21002f4aeb0Sopenharmony_ci EGLSurface eglCreateWindowSurface( 21102f4aeb0Sopenharmony_ci EGLDisplay dpy, 21202f4aeb0Sopenharmony_ci EGLConfig config, 21302f4aeb0Sopenharmony_ci EGLNativeWindowType win, 21402f4aeb0Sopenharmony_ci const EGLint *attrib_list); 21502f4aeb0Sopenharmony_ci 21602f4aeb0Sopenharmony_ci The behavior of eglCreateWindowSurface is identical to that of 21702f4aeb0Sopenharmony_ci eglCreatePlatformWindowSurfaceEXT except that the set of platforms to 21802f4aeb0Sopenharmony_ci which <dpy> is permitted to belong, as well as the actual type of <win>, 21902f4aeb0Sopenharmony_ci are implementation specific. 22002f4aeb0Sopenharmony_ci 22102f4aeb0Sopenharmony_ci In section 3.5.4 "Creating Native Pixmap Rendering Surfaces", replace the 22202f4aeb0Sopenharmony_ci third paragraph, which begins with "Using the platform-specific type" and 22302f4aeb0Sopenharmony_ci ends with "render into this surface", with the following: 22402f4aeb0Sopenharmony_ci 22502f4aeb0Sopenharmony_ci "Then call 22602f4aeb0Sopenharmony_ci 22702f4aeb0Sopenharmony_ci EGLSurface eglCreatePlatformPixmapSurfaceEXT( 22802f4aeb0Sopenharmony_ci EGLDisplay dpy, 22902f4aeb0Sopenharmony_ci EGLConfig config, 23002f4aeb0Sopenharmony_ci void *native_pixmap, 23102f4aeb0Sopenharmony_ci const EGLint *attrib_list); 23202f4aeb0Sopenharmony_ci 23302f4aeb0Sopenharmony_ci eglCreatePlatformPixmapSurfaceEXT creates an offscreen EGLSurface and 23402f4aeb0Sopenharmony_ci returns a handle to it. Any EGL context created with a compatible 23502f4aeb0Sopenharmony_ci EGLConfig can be used to render into this surface. 23602f4aeb0Sopenharmony_ci 23702f4aeb0Sopenharmony_ci <native_pixmap> must belong to the same platform as <dpy>, and EGL 23802f4aeb0Sopenharmony_ci considers the returned EGLSurface as belonging to that same platform. The 23902f4aeb0Sopenharmony_ci extension that defines the platform to which <dpy> belongs also defines 24002f4aeb0Sopenharmony_ci the requirements for the <native_pixmap> parameter." 24102f4aeb0Sopenharmony_ci 24202f4aeb0Sopenharmony_ci In the remainder of section 3.5.4, replace each occurrence of 24302f4aeb0Sopenharmony_ci 'eglCreatePixmapSurface' with 'eglCreatePlatformPixmapSurfaceEXT' and each 24402f4aeb0Sopenharmony_ci occurence of 'eglCreateWindowSurface' with 24502f4aeb0Sopenharmony_ci 'eglCreatePlatformWindowSurfaceEXT'. 24602f4aeb0Sopenharmony_ci 24702f4aeb0Sopenharmony_ci Insert the sentence below after the first sentence of the last paragraph 24802f4aeb0Sopenharmony_ci of section 3.5.4: 24902f4aeb0Sopenharmony_ci 25002f4aeb0Sopenharmony_ci "If <dpy> and <native_pixmap> do not belong to the same platform, then 25102f4aeb0Sopenharmony_ci undefined behavior occurs. [1]" 25202f4aeb0Sopenharmony_ci 25302f4aeb0Sopenharmony_ci Add the following footnote to section 3.5.3: 25402f4aeb0Sopenharmony_ci 25502f4aeb0Sopenharmony_ci "[1] See section 3.1.0.2 "Parameter Validation". 25602f4aeb0Sopenharmony_ci 25702f4aeb0Sopenharmony_ci Append the following to section 3.5.2: 25802f4aeb0Sopenharmony_ci 25902f4aeb0Sopenharmony_ci "An offscreen rendering surface may also be created by calling 26002f4aeb0Sopenharmony_ci 26102f4aeb0Sopenharmony_ci EGLSurface eglCreatePixmapSurface( 26202f4aeb0Sopenharmony_ci EGLDisplay dpy, 26302f4aeb0Sopenharmony_ci EGLConfig config, 26402f4aeb0Sopenharmony_ci EGLNativePixmapType pixmap, 26502f4aeb0Sopenharmony_ci const EGLint *attrib_list); 26602f4aeb0Sopenharmony_ci 26702f4aeb0Sopenharmony_ci The behavior of eglCreatePixmapSurface is identical to that of 26802f4aeb0Sopenharmony_ci eglCreatePlatformPixmapSurfaceEXT except that the set of platforms to 26902f4aeb0Sopenharmony_ci which <dpy> is permitted to belong, as well as the actual type of 27002f4aeb0Sopenharmony_ci <pixmap>, are implementation specific. 27102f4aeb0Sopenharmony_ci 27202f4aeb0Sopenharmony_ciIssues 27302f4aeb0Sopenharmony_ci 27402f4aeb0Sopenharmony_ci 1. What rules define how EGL resources are shared among displays belonging 27502f4aeb0Sopenharmony_ci to different platforms? 27602f4aeb0Sopenharmony_ci 27702f4aeb0Sopenharmony_ci RESOLVED: Neither the EGL 1.4 specification nor any extension allow EGL 27802f4aeb0Sopenharmony_ci resources to be shared among displays. This extension does not remove 27902f4aeb0Sopenharmony_ci that restriction. 28002f4aeb0Sopenharmony_ci 28102f4aeb0Sopenharmony_ci 2. Rather than define the new function eglGetPlatformDisplayEXT(), should 28202f4aeb0Sopenharmony_ci this extension instead define new thread-local state for the currently 28302f4aeb0Sopenharmony_ci bound platform and an associated binding function, such as 28402f4aeb0Sopenharmony_ci eglBindPlatformEXT()? 28502f4aeb0Sopenharmony_ci 28602f4aeb0Sopenharmony_ci RESOLVED: No, for the following reasons. 28702f4aeb0Sopenharmony_ci 28802f4aeb0Sopenharmony_ci - A current trend among the Khronos workgroups is to remove use of 28902f4aeb0Sopenharmony_ci global state by introducing bindless objects. Introducing a new 29002f4aeb0Sopenharmony_ci thread-local binding point defies that trend. 29102f4aeb0Sopenharmony_ci 29202f4aeb0Sopenharmony_ci - Additional specification language would be required to define 29302f4aeb0Sopenharmony_ci the interactions between the currently bound platform and all 29402f4aeb0Sopenharmony_ci EGL functions that accept an EGLDisplay. (For example, if the 29502f4aeb0Sopenharmony_ci currently bound platform is Wayland, then what is the result of 29602f4aeb0Sopenharmony_ci calling eglCreateWindowSurface() with a display and native 29702f4aeb0Sopenharmony_ci window belonging to X11?) By choosing to not introduce the 29802f4aeb0Sopenharmony_ci notion of a "currently bound platform", we obtain a cleaner 29902f4aeb0Sopenharmony_ci extension specification and eliminate for EGL users a class of 30002f4aeb0Sopenharmony_ci potential bugs. 30102f4aeb0Sopenharmony_ci 30202f4aeb0Sopenharmony_ci 3. Should this extension define the notion of a default platform? 30302f4aeb0Sopenharmony_ci 30402f4aeb0Sopenharmony_ci RESOLVED: No. eglGetDisplay() can be used if a default platform is 30502f4aeb0Sopenharmony_ci needed. 30602f4aeb0Sopenharmony_ci 30702f4aeb0Sopenharmony_ci 4. Rather than define the new functions 30802f4aeb0Sopenharmony_ci eglCreatePlatform{Window,Pixmap}SurfaceEXT(), should we instead 30902f4aeb0Sopenharmony_ci redefine the EGLNative* types in eglplatform.h as void*? 31002f4aeb0Sopenharmony_ci 31102f4aeb0Sopenharmony_ci RESOLVED: No, this introduces problems for X11 applications. 31202f4aeb0Sopenharmony_ci 31302f4aeb0Sopenharmony_ci Suppose that a 64-bit X11 application is compiled against an old EGL 31402f4aeb0Sopenharmony_ci library (where EGLNativeWindowType is a typedef for XID, which is in 31502f4aeb0Sopenharmony_ci turn a typedef for a 64-bit unsigned integer on Fedora 18) and then 31602f4aeb0Sopenharmony_ci attempts to run against a new EGL library (where EGLNativeType is 31702f4aeb0Sopenharmony_ci a typedef for void*). To preserve the ABI of eglCreateWindowSurface() 31802f4aeb0Sopenharmony_ci in this situation, the new EGL library must re-interpret the 31902f4aeb0Sopenharmony_ci <native_window> parameter as an integer. 32002f4aeb0Sopenharmony_ci 32102f4aeb0Sopenharmony_ci However, this preservation of the ABI breaks source compatibility for 32202f4aeb0Sopenharmony_ci existing X11 applications. To successfully compile, each call to 32302f4aeb0Sopenharmony_ci 32402f4aeb0Sopenharmony_ci eglCreateWindowSurface(dpy, window, attribs) 32502f4aeb0Sopenharmony_ci 32602f4aeb0Sopenharmony_ci in existing X11 application source code would need to be replaced with 32702f4aeb0Sopenharmony_ci 32802f4aeb0Sopenharmony_ci eglCreateWindowSurface(dpy, (void*) window, attribs) . 32902f4aeb0Sopenharmony_ci 33002f4aeb0Sopenharmony_ci Requiring such widespread code modifications would be an unnecessary 33102f4aeb0Sopenharmony_ci burden to developers and Linux package maintainers. 33202f4aeb0Sopenharmony_ci 33302f4aeb0Sopenharmony_ciRevision History 33402f4aeb0Sopenharmony_ci 33502f4aeb0Sopenharmony_ci Version 9, 2014.01.09 (Jon Leech) 33602f4aeb0Sopenharmony_ci - Fix typo eglGetDisplayPlatformEXT -> eglGetPlatformDisplayEXT 33702f4aeb0Sopenharmony_ci 33802f4aeb0Sopenharmony_ci Version 8, 2013.07.03 (Chad Versace) 33902f4aeb0Sopenharmony_ci - Add "Extension Type" section, required by EGL_EXT_client_extensions v9. 34002f4aeb0Sopenharmony_ci 34102f4aeb0Sopenharmony_ci Version 7, 2013.06.07 (Chad Versace) 34202f4aeb0Sopenharmony_ci - Fix some awkward text (s/the EGL/EGL/). 34302f4aeb0Sopenharmony_ci - Remove text "attribute names are defined by platform-specific 34402f4aeb0Sopenharmony_ci extensions". 34502f4aeb0Sopenharmony_ci 34602f4aeb0Sopenharmony_ci Version 6, 2013.06.07 (Chad Versace) 34702f4aeb0Sopenharmony_ci - To "Dependencies" section, expand text that discusses 34802f4aeb0Sopenharmony_ci EGL_EXT_client_extensions. 34902f4aeb0Sopenharmony_ci 35002f4aeb0Sopenharmony_ci Version 5, 2013.05.18 (Chad Versace) 35102f4aeb0Sopenharmony_ci - Removed restriction that "attribute names are defined only by 35202f4aeb0Sopenharmony_ci platform-specific extensions". 35302f4aeb0Sopenharmony_ci - Resolve issue 3 as NO. 35402f4aeb0Sopenharmony_ci - Clarified some text and fixed grammatical errors. 35502f4aeb0Sopenharmony_ci 35602f4aeb0Sopenharmony_ci Version 4, 2013.05.14 (Chad Versace) 35702f4aeb0Sopenharmony_ci - Add <attrib_list> parameter to eglGetPlatformDisplayEXT, per 35802f4aeb0Sopenharmony_ci feedback at the April Khronos F2F. 35902f4aeb0Sopenharmony_ci 36002f4aeb0Sopenharmony_ci Version 3, 2013.04.26 (Chad Versace) 36102f4aeb0Sopenharmony_ci - Add issues 2, 3, 4. 36202f4aeb0Sopenharmony_ci 36302f4aeb0Sopenharmony_ci Version 2, 2013.03.24 (Chad Versace) 36402f4aeb0Sopenharmony_ci - Complete draft by adding text for pixmaps. 36502f4aeb0Sopenharmony_ci - The footnotes regarding undefined behavior, simplify them by 36602f4aeb0Sopenharmony_ci simply referring to section 3.1.0.2. 36702f4aeb0Sopenharmony_ci - Add issue 1 from Eric Anholt <eric@anholt.net>. 36802f4aeb0Sopenharmony_ci - Fix spelling and formatting errors. 36902f4aeb0Sopenharmony_ci 37002f4aeb0Sopenharmony_ci Version 1, 2013.03.13 (Chad Versace) 37102f4aeb0Sopenharmony_ci - Incomplete draft posted for review 372