Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/angle
Path: blob/main_old/extensions/EGL_ANGLE_device_creation.txt
1693 views
1
Name
2
3
ANGLE_device_creation
4
5
Name Strings
6
7
EGL_ANGLE_device_creation
8
9
Contributors
10
11
Austin Kinross (aukinros 'at' microsoft.com)
12
13
Contact
14
15
Austin Kinross (aukinros 'at' microsoft.com)
16
17
Status
18
19
Draft
20
21
Version
22
23
Version 1, Nov 02, 2015
24
25
Number
26
27
EGL Extension #XXX
28
29
Extension Type
30
31
EGL client extension
32
33
Dependencies
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
39
Overview
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
50
IP Status
51
52
No known claims.
53
54
New Types
55
56
None.
57
58
New 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
66
New Tokens
67
68
None.
69
70
Changes 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
113
Issues
114
115
None.
116
117
Revision History
118
119
Version 1, Nov 2, 2015 (Austin Kinross)
120
- Initial Draft
121
122