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