| Name |
| |
| ANGLE_request_extension |
| |
| Name Strings |
| |
| GL_ANGLE_request_extension |
| |
| Contributors |
| |
| Geoff Lang |
| James Darpinian |
| |
| Contact |
| |
| Geoff Lang (geofflang 'at' google.com) |
| |
| Notice |
| |
| Copyright (c) 2016 The Khronos Group Inc. Copyright terms at |
| http://www.khronos.org/registry/speccopyright.html |
| |
| Status |
| |
| Draft |
| |
| Version |
| |
| Version 2, October 4, 2019 |
| |
| Number |
| |
| OpenGL ES Extension #?? |
| |
| Dependencies |
| |
| Requires OpenGL ES 2.0 |
| |
| Written against the OpenGL ES 3.0 specification. |
| |
| Overview |
| |
| This extension allows the client to query extensions that can be enabled and |
| explicitly request that an extension be enabled or disabled. |
| |
| New Procedures and Functions |
| |
| void RequestExtension(const char *name) |
| |
| void DisableExtension(const char *name) |
| |
| New Tokens |
| |
| Accepted by the <name> parameter of GetString and GetStringi: |
| |
| REQUESTABLE_EXTENSIONS_ANGLE 0x93A8 |
| |
| Accepted by the <value> parameter of the GetInteger* functions: |
| |
| NUM_REQUESTABLE_EXTENSIONS_ANGLE 0x93A9 |
| |
| Additions to the OpenGL ES 3.0 Specification |
| |
| Add the following paragraph to the end paragraph 4 of section 6.1.6, String |
| Queries: |
| |
| "REQUESTABLE_EXTENSIONS_ANGLE returns a list of extensions that can be |
| enabled at runtime by calling RequestExtension." |
| |
| Change the following section of paragraph 6 of section 6.1.6, String Queries: |
| |
| - "name may only be EXTENSIONS, indicating that the extension name |
| - corresponding to the indexth supported extension should be returned. |
| - <index> may range from zero to the value of NUM_EXTENSIONS minus one" |
| + "name may be EXTENSIONS or REQUESTABLE_EXTENSIONS_ANGLE, indicating that |
| + the extension name corresponding to the indexth supported or requestable |
| + extension should be returned. <index> may range from zero to the value of |
| + NUM_EXTENSIONS and NUM_REQUESTABLE_EXTENSIONS_ANGLE minus one" |
| |
| The commands |
| |
| void RequestExtension(const char *name) |
| void DisableExtension(const char *name) |
| |
| enable or disable the requestable OpenGL ES extension named <name>. If the |
| requested extension was not requestable or disablable, INVALID_OPERATION is |
| generated. Not all requestable extensions can be disabled. There is |
| currently no query for disablable extensions. |
| |
| New State |
| |
| Add to Table 6.30 (Implementation Dependent Version and Extension Support) |
| |
| Get value Type Get Cmd Min Value Description Sec. |
| -------------------------------- ---- ----------- --------- -------------------------------- ----- |
| NUM_REQUESTABLE_EXTENSIONS_ANGLE Z+ GetIntegerv - Number of individual requestable 6.1.6 |
| extension names |
| |
| Interactions with the OpenGL ES 2.0 specification: |
| |
| Remove all references to GetStringi and NUM_REQUESTABLE_EXTENSIONS_ANGLE. |
| |
| Issues |
| |
| (1) How can the user determine which extensions can be enabled without |
| potentially generating errors? |
| |
| This can be solved by: |
| a) Never generate an error in EnableExtensions, simply return false when |
| the extension is not recognized or cannot be enabled. |
| b) Add another query for the extensions that the context supports |
| enabling. |
| |
| RESOLVED: Use (b) because it allows the context to explicity advertise |
| which extensions support enabling and doesn't generate errors in the |
| normal use case. |
| |
| Revision History |
| |
| Rev. Date Author Changes |
| ---- ------------- --------- ---------------------------------------- |
| 1 Nov 28, 2016 geofflang Initial version |
| 2 Oct 4, 2019 jdarpinian Add DisableExtension |