blob: 2401a094d17ea23de0e9d526d47cb77ed7bdd650 [file] [log] [blame]
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 <device_type> is not a valid
device type. This extension defines no valid values for <device_type>.
All attribute names in <attrib_list> are immediately followed by the
corresponding desired value. The list is terminated with EGL_NONE. The
<attrib_list> is considered empty if either <attrib_list> is NULL or if its
first element is EGL_NONE. This specification defines no valid attribute
names for inclusion in <attrib_list>. If <attrib_list> 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 <device> equals EGL_NO_DEVICE_EXT then an EGL_BAD_DEVICE_EXT error is
generated. If <device> is not a valid device then the behavior is undefined.
<device> must have been created using eglGetDeviceANGLE. If <device> 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