• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Name
2
3    ANGLE_device_creation
4
5Name Strings
6
7    EGL_ANGLE_device_creation
8
9Contributors
10
11    Austin Kinross  (aukinros 'at' microsoft.com)
12
13Contact
14
15    Austin Kinross  (aukinros 'at' microsoft.com)
16
17Status
18
19    Draft
20
21Version
22
23    Version 1, Nov 02, 2015
24
25Number
26
27    EGL Extension #XXX
28
29Extension Type
30
31    EGL client extension
32
33Dependencies
34
35    Requires EGL_EXT_device_query.
36
37    Written against the wording of EGL 1.5 as modified by EGL_EXT_device_query.
38
39Overview
40
41    Increasingly, EGL and its client APIs are being used in place of "native"
42    rendering APIs to implement the basic graphics functionality of native
43    windowing systems. This extension defines a way to create an EGL device
44    which maps to an inputted "native" rendering API device.
45
46    This extension is intended to be used with EGL_EXT_platform_device to
47    initialize a display using an existing "native" rendering device, but
48    EGL_EXT_platform_device is not required.
49
50IP Status
51
52    No known claims.
53
54New Types
55
56    None.
57
58New Procedures and Functions
59
60    EGLDeviceEXT eglCreateDeviceANGLE(EGLint device_type,
61                                      void *native_device,
62                                      cost EGLAttrib *attrib_list)
63
64    EGLBoolean eglReleaseDeviceANGLE(EGLDeviceEXT device)
65
66New Tokens
67
68    None.
69
70Changes to section 3.2 (Devices)
71
72    Add the following after the final paragraph to section 3.2 (Devices):
73
74    To create an EGL device wrapping an existing native rendering device, use:
75
76        EGLDeviceEXT eglCreateDeviceANGLE(EGLint device_type,
77                                          void *native_device,
78                                          cost EGLAttrib *attrib_list);
79
80    On success, a valid EGLDeviceEXT is returned. On failure, EGL_NO_DEVICE_EXT
81    is returned.
82
83    An EGL_BAD_ATTRIBUTE error is generated if <device_type> is not a valid
84    device type. This extension defines no valid values for <device_type>.
85
86    All attribute names in <attrib_list> are immediately followed by the
87    corresponding desired value. The list is terminated with EGL_NONE. The
88    <attrib_list> is considered empty if either <attrib_list> is NULL or if its
89    first element is EGL_NONE. This specification defines no valid attribute
90    names for inclusion in <attrib_list>. If <attrib_list> is not empty then
91    an EGL_BAD_ATTRIBUTE error is generated.
92
93    If a device is created using eglCreateDeviceANGLE then it is the
94    caller's responsibility to manage the lifetime of the device, and to call
95    eglReleaseDeviceANGLE at an appropriate time.
96
97    To release a device, use:
98
99        EGLBoolean eglReleaseDeviceANGLE(EGLDeviceEXT device);
100
101    On success, EGL_TRUE is returned. On failure, EGL_FALSE is returned.
102
103    If <device> equals EGL_NO_DEVICE_EXT then an EGL_BAD_DEVICE_EXT error is
104    generated. If <device> is not a valid device then the behavior is undefined.
105
106    <device> must have been created using eglGetDeviceANGLE. If <device> was
107    obtained by other means, such as through eglQueryDisplayAttribEXT, then an
108    EGL_BAD_DEVICE_EXT error is generated.
109
110    If eglReleaseDeviceANGLE is called on a device that is still in use by other
111    EGL objects, then the resulting behavior of those objects is undefined.
112
113Issues
114
115    None.
116
117Revision History
118
119    Version 1, Nov 2, 2015 (Austin Kinross)
120        - Initial Draft
121