зеркало из https://github.com/AvaloniaUI/angle.git
121 строка
3.3 KiB
Plaintext
121 строка
3.3 KiB
Plaintext
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
|