• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Name
2
3    EGL_ANGLE_feature_control
4
5Name Strings
6
7    EGL_ANGLE_feature_control
8
9Contributors
10
11    Jonah Ryan-Davis  (jonahr 'at' google.com)
12
13Contact
14
15    Jonah Ryan-Davis  (jonahr 'at' google.com)
16
17Status
18
19    Draft
20
21Version
22
23    Version 1, May 23, 2019
24
25Number
26
27    EGL Extension #XXX
28
29Extension Type
30
31    EGL client extension
32
33Dependencies
34
35    This extension is written against the wording of the EGL 1.5
36    Specification.
37
38    EGL_EXT_device_query affects the definition of this extension.
39
40Overview
41
42    This extension adds two methods to query arrays holding
43    information about the available features for a given device.
44    One method is used to query the total count of available
45    features. Another method is used to query a string property
46    of an individual feature given the feature's index.
47
48IP Status
49
50    No known claims.
51
52New Types
53
54    None.
55
56New Procedures and Functions
57
58    const char *eglQueryStringiANGLE(
59        EGLDisplay dpy,
60        EGLint name,
61        EGLint index);
62
63    EGLBoolean eglQueryDisplayAttribANGLE(
64        EGLDisplay dpy,
65        EGLint attribute,
66        EGLAttrib *value);
67
68New Tokens
69
70    Accepted as a queried <name> in eglQueryStringiANGLE:
71
72        EGL_FEATURE_NAME_ANGLE          0x3460
73        EGL_FEATURE_CATEGORY_ANGLE      0x3461
74        EGL_FEATURE_DESCRIPTION_ANGLE   0x3462
75        EGL_FEATURE_BUG_ANGLE           0x3463
76        EGL_FEATURE_STATUS_ANGLE        0x3464
77        EGL_FEATURE_CONDITION_ANGLE     0x3468
78
79    Accepted as a queried <attribute> in eglQueryDisplayAttribANGLE
80
81        EGL_FEATURE_COUNT_ANGLE         0x3465
82
83    Accepted as an attribute name in the <attrib_list> argument of
84    eglGetPlatformDisplay
85
86        EGL_FEATURE_OVERRIDES_ENABLED_ANGLE   0x3466
87        EGL_FEATURE_OVERRIDES_DISABLED_ANGLE  0x3467
88        EGL_FEATURE_ALL_DISABLED_ANGLE  0x3469
89
90New Behavior
91
92        EGLDisplay eglGetPlatformDisplay(EGLenum platform, void
93            *native_display, const EGLAttrib *attrib_list);
94
95    The attribute following EGL_FEATURE_OVERRIDES_ENABLED_ANGLE or
96    EGL_FEATURE_OVERRIDES_DISABLED_ANGLE should be of type char**,
97    which should contain a null-terminated array of C strings naming
98    the features to be enabled or disabled upon display creation.
99    Any features unspecified in one of these arrays will be
100    initialized with an internal heuristic.
101    The attribute following EGL_FEATURE_ALL_DISABLED_ANGLE should be
102    either EGL_TRUE to disable all features that are not overridden,
103    or EGL_FALSE to let ANGLE determine which features to enable.
104
105Add the following to the end of section 3.3 "EGL Queries":
106
107        const char *eglQueryStringiANGLE(EGLDisplay dpy,
108            EGLint name, EGLint index);
109
110    eGLQueryStringiANGLE returns a pointer to a static, null-
111    terminated string describing some aspect of the EGL
112    implementation running on the specified display, from an array of
113    strings. name may be one of EGL_FEATURE_NAME_ANGLE,
114    EGL_FEATURE_CATEGORY_ANGLE, EGL_FEATURE_DESCRIPTION_ANGLE,
115    EGL_FEATURE_BUG_ANGLE, or EGL_FEATURE_STATUS_ANGLE. Index
116    must be a valid index to access into the array of strings.
117        The EGL_FEATURE_NAME_ANGLE array contains strings that
118    describe the name of each feature available in the display.
119        The EGL_FEATURE_CATEGORY_ANGLE array contains strings
120    with corresponding indices to the array of names. Each string
121    describes the category of the feature at the specified index.
122        The EGL_FEATURE_DESCRIPTION_ANGLE array contains strings
123    with corresponding indices to the array of names. Each string
124    describes the feature at the specified index.
125        The EGL_FEATURE_BUG_ANGLE array contains strings
126    with corresponding indices to the array of names. Each string
127    describes the bug related to the feature at the specified
128    index.
129        The EGL_FEATURE_STATUS_ANGLE array contains strings
130    with corresponding indices to the array of names. Each string has
131    the value "enabled" if the feature is currently enabled, or
132    "disabled" if the feature is currently disabled.
133        The EGL_FEATURE_CONDITION_ANGLE array contains strings that
134    describe to the condition that sets the corresponding value in
135    the EGL_FEATURE_STATUS_ANGLE array.
136
137    Errors
138
139    On failure, NULL is returned.
140    An EGL_BAD_DISPLAY error is generated if dpy is not a valid
141    display.
142    An EGL_BAD_PARAMETER error is generated if name is not one of the
143    values described above.
144    An EGL_BAD_PARAMETER error is generated if index is not within
145    the valid range of indices for the array.
146
147Add a section "3.4 Display Attributes" after "3.3 EGL Versioning"
148
149    To query attributes of an initialized display, use:
150
151        EGLBoolean eglQueryDisplayAttribANGLE(EGLDisplay dpy,
152                                            EGLint attribute,
153                                            EGLAttrib *value);
154
155    On success, EGL_TRUE is returned.
156    If <attribute> is EGL_FEATURE_COUNT_ANGLE, the total count of
157    available features is returned in <value>.
158
159    On failure, EGL_FALSE is returned.
160    An EGL_BAD_DISPLAY error is generated if dpy is not a valid
161    display.
162    An EGL_BAD_ATTRIBUTE error is generated if <attribute> is not a
163    valid value.
164
165Issues
166
167    None
168
169Revision History
170
171    Version 1, May 23, 2019 (Jonah Ryan-Davis)
172        - Initial Draft
173