Name ANGLE_external_context_and_surface Name Strings EGL_ANGLE_external_context_and_surface Contributors Peng Huang Shahbaz Youssefi Contacts Shahbaz Youssefi, Google (syoussefi 'at' google.com) Status Draft Version Version 2, July 24, 2023 Number EGL Extension #?? Dependencies This extension is written against the wording of the EGL 1.4 Specification. Overview This extension allows plugging an external OpenGL context and surface to the OpenGL backend of ANGLE. New Types None New Procedures and Functions void eglAcquireExternalContextANGLE( EGLDisplay dpy); void eglReleaseExternalContextANGLE( EGLDisplay dpy); New Tokens Accepted as an attribute name in the <*attrib_list> argument to eglCreateContext: EGL_EXTERNAL_CONTEXT_ANGLE 0x348E Accepted in the parameter of eglCreatePbufferFromClientBuffer: EGL_EXTERNAL_SURFACE_ANGLE 0x348F Additions to the EGL 1.4 Specification Add the following to section 3.7.1 "Creating Rendering Contexts": EGL_EXTERNAL_CONTEXT_ANGLE indicates whether the context is externally managed, and that no internal context is created. In this case, the context must be made current by the application before calling other EGL or GL functions that may access the context. Add the following to section 3.5.3 "Binding Off-Screen Rendering Surfaces To Client Buffers": EGL_EXTERNAL_SURFACE_ANGLE indicates whether the surface is externally managed, and that no internal surface is created. In this case, the surface must be made current by the application before calling other EGL or GL functions that may access the surface. Add the following to section 3.7.3 "Binding Contexts and Drawables": Before making a call that uses a context created with EGL_EXTERNAL_CONTEXT_ANGLE, the context must be synchronized from external. eglAcquireExternalContextANGLE can be called to perform this synchronization, ensuring that the implementation is up-to-date with respect to changes that external has made to the context. Before the application (external) can continue using the context after the implementation has modified it, the context must be synchronized to external, restoring the state from when the external context was "acquired". eglReleaseExternalContextANGLE can be called to perform this synchronization, ensuring that the context is restored to its original state from before the eglAcquireExternalContextANGLE call. Issues None yet. Revision History Rev. Date Author Changes ---- ------------- --------- ---------------------------------------- 1 Jan 7, 2021 penghuang Initial version 2 July 24, 2023 syoussefi Add eglAcquireExternalContextANGLE, and eglReleaseExternalContextANGLE 3 July 27, 2023 syoussefi Remove EGL_EXTERNAL_CONTEXT_SAVE_STATE_ANGLE