Path: blob/main_old/extensions/EGL_ANGLE_device_creation.txt
1693 views
Name12ANGLE_device_creation34Name Strings56EGL_ANGLE_device_creation78Contributors910Austin Kinross (aukinros 'at' microsoft.com)1112Contact1314Austin Kinross (aukinros 'at' microsoft.com)1516Status1718Draft1920Version2122Version 1, Nov 02, 20152324Number2526EGL Extension #XXX2728Extension Type2930EGL client extension3132Dependencies3334Requires EGL_EXT_device_query.3536Written against the wording of EGL 1.5 as modified by EGL_EXT_device_query.3738Overview3940Increasingly, EGL and its client APIs are being used in place of "native"41rendering APIs to implement the basic graphics functionality of native42windowing systems. This extension defines a way to create an EGL device43which maps to an inputted "native" rendering API device.4445This extension is intended to be used with EGL_EXT_platform_device to46initialize a display using an existing "native" rendering device, but47EGL_EXT_platform_device is not required.4849IP Status5051No known claims.5253New Types5455None.5657New Procedures and Functions5859EGLDeviceEXT eglCreateDeviceANGLE(EGLint device_type,60void *native_device,61cost EGLAttrib *attrib_list)6263EGLBoolean eglReleaseDeviceANGLE(EGLDeviceEXT device)6465New Tokens6667None.6869Changes to section 3.2 (Devices)7071Add the following after the final paragraph to section 3.2 (Devices):7273To create an EGL device wrapping an existing native rendering device, use:7475EGLDeviceEXT eglCreateDeviceANGLE(EGLint device_type,76void *native_device,77cost EGLAttrib *attrib_list);7879On success, a valid EGLDeviceEXT is returned. On failure, EGL_NO_DEVICE_EXT80is returned.8182An EGL_BAD_ATTRIBUTE error is generated if <device_type> is not a valid83device type. This extension defines no valid values for <device_type>.8485All attribute names in <attrib_list> are immediately followed by the86corresponding desired value. The list is terminated with EGL_NONE. The87<attrib_list> is considered empty if either <attrib_list> is NULL or if its88first element is EGL_NONE. This specification defines no valid attribute89names for inclusion in <attrib_list>. If <attrib_list> is not empty then90an EGL_BAD_ATTRIBUTE error is generated.9192If a device is created using eglCreateDeviceANGLE then it is the93caller's responsibility to manage the lifetime of the device, and to call94eglReleaseDeviceANGLE at an appropriate time.9596To release a device, use:9798EGLBoolean eglReleaseDeviceANGLE(EGLDeviceEXT device);99100On success, EGL_TRUE is returned. On failure, EGL_FALSE is returned.101102If <device> equals EGL_NO_DEVICE_EXT then an EGL_BAD_DEVICE_EXT error is103generated. If <device> is not a valid device then the behavior is undefined.104105<device> must have been created using eglGetDeviceANGLE. If <device> was106obtained by other means, such as through eglQueryDisplayAttribEXT, then an107EGL_BAD_DEVICE_EXT error is generated.108109If eglReleaseDeviceANGLE is called on a device that is still in use by other110EGL objects, then the resulting behavior of those objects is undefined.111112Issues113114None.115116Revision History117118Version 1, Nov 2, 2015 (Austin Kinross)119- Initial Draft120121122