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