Name ANGLE_device_creation Name Strings EGL_ANGLE_device_creation Contributors Austin Kinross (aukinros 'at' microsoft.com) Contact Austin Kinross (aukinros 'at' microsoft.com) Status Draft Version Version 1, Nov 02, 2015 Number EGL Extension #XXX Extension Type EGL client extension Dependencies Requires EGL_EXT_device_query. Written against the wording of EGL 1.5 as modified by EGL_EXT_device_query. 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 extension defines a way to create an EGL device which maps to an inputted "native" rendering API device. This extension is intended to be used with EGL_EXT_platform_device to initialize a display using an existing "native" rendering device, but EGL_EXT_platform_device is not required. IP Status No known claims. New Types None. New Procedures and Functions EGLDeviceEXT eglCreateDeviceANGLE(EGLint device_type, void *native_device, cost EGLAttrib *attrib_list) EGLBoolean eglReleaseDeviceANGLE(EGLDeviceEXT device) New Tokens None. Changes to section 3.2 (Devices) Add the following after the final paragraph to section 3.2 (Devices): To create an EGL device wrapping an existing native rendering device, use: EGLDeviceEXT eglCreateDeviceANGLE(EGLint device_type, void *native_device, cost EGLAttrib *attrib_list); On success, a valid EGLDeviceEXT is returned. On failure, EGL_NO_DEVICE_EXT is returned. An EGL_BAD_ATTRIBUTE error is generated if is not a valid device type. This extension defines no valid values for . All attribute names in are immediately followed by the corresponding desired value. The list is terminated with EGL_NONE. The is considered empty if either is NULL or if its first element is EGL_NONE. This specification defines no valid attribute names for inclusion in . If is not empty then an EGL_BAD_ATTRIBUTE error is generated. If a device is created using eglCreateDeviceANGLE then it is the caller's responsibility to manage the lifetime of the device, and to call eglReleaseDeviceANGLE at an appropriate time. To release a device, use: EGLBoolean eglReleaseDeviceANGLE(EGLDeviceEXT device); On success, EGL_TRUE is returned. On failure, EGL_FALSE is returned. If equals EGL_NO_DEVICE_EXT then an EGL_BAD_DEVICE_EXT error is generated. If is not a valid device then the behavior is undefined. must have been created using eglGetDeviceANGLE. If was obtained by other means, such as through eglQueryDisplayAttribEXT, then an EGL_BAD_DEVICE_EXT error is generated. If eglReleaseDeviceANGLE is called on a device that is still in use by other EGL objects, then the resulting behavior of those objects is undefined. Issues None. Revision History Version 1, Nov 2, 2015 (Austin Kinross) - Initial Draft