xref: /aosp_15_r20/external/angle/extensions/ANGLE_request_extension.txt (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard WorkerName
2*8975f5c5SAndroid Build Coastguard Worker
3*8975f5c5SAndroid Build Coastguard Worker    ANGLE_request_extension
4*8975f5c5SAndroid Build Coastguard Worker
5*8975f5c5SAndroid Build Coastguard WorkerName Strings
6*8975f5c5SAndroid Build Coastguard Worker
7*8975f5c5SAndroid Build Coastguard Worker    GL_ANGLE_request_extension
8*8975f5c5SAndroid Build Coastguard Worker
9*8975f5c5SAndroid Build Coastguard WorkerContributors
10*8975f5c5SAndroid Build Coastguard Worker
11*8975f5c5SAndroid Build Coastguard Worker    Geoff Lang
12*8975f5c5SAndroid Build Coastguard Worker    James Darpinian
13*8975f5c5SAndroid Build Coastguard Worker
14*8975f5c5SAndroid Build Coastguard WorkerContact
15*8975f5c5SAndroid Build Coastguard Worker
16*8975f5c5SAndroid Build Coastguard Worker    Geoff Lang (geofflang 'at' google.com)
17*8975f5c5SAndroid Build Coastguard Worker
18*8975f5c5SAndroid Build Coastguard WorkerNotice
19*8975f5c5SAndroid Build Coastguard Worker
20*8975f5c5SAndroid Build Coastguard Worker    Copyright (c) 2016 The Khronos Group Inc. Copyright terms at
21*8975f5c5SAndroid Build Coastguard Worker        http://www.khronos.org/registry/speccopyright.html
22*8975f5c5SAndroid Build Coastguard Worker
23*8975f5c5SAndroid Build Coastguard WorkerStatus
24*8975f5c5SAndroid Build Coastguard Worker
25*8975f5c5SAndroid Build Coastguard Worker    Draft
26*8975f5c5SAndroid Build Coastguard Worker
27*8975f5c5SAndroid Build Coastguard WorkerVersion
28*8975f5c5SAndroid Build Coastguard Worker
29*8975f5c5SAndroid Build Coastguard Worker    Version 2, October 4, 2019
30*8975f5c5SAndroid Build Coastguard Worker
31*8975f5c5SAndroid Build Coastguard WorkerNumber
32*8975f5c5SAndroid Build Coastguard Worker
33*8975f5c5SAndroid Build Coastguard Worker    OpenGL ES Extension #??
34*8975f5c5SAndroid Build Coastguard Worker
35*8975f5c5SAndroid Build Coastguard WorkerDependencies
36*8975f5c5SAndroid Build Coastguard Worker
37*8975f5c5SAndroid Build Coastguard Worker    Requires OpenGL ES 2.0
38*8975f5c5SAndroid Build Coastguard Worker
39*8975f5c5SAndroid Build Coastguard Worker    Written against the OpenGL ES 3.0 specification.
40*8975f5c5SAndroid Build Coastguard Worker
41*8975f5c5SAndroid Build Coastguard WorkerOverview
42*8975f5c5SAndroid Build Coastguard Worker
43*8975f5c5SAndroid Build Coastguard Worker    This extension allows the client to query extensions that can be enabled and
44*8975f5c5SAndroid Build Coastguard Worker    explicitly request that an extension be enabled or disabled.
45*8975f5c5SAndroid Build Coastguard Worker
46*8975f5c5SAndroid Build Coastguard WorkerNew Procedures and Functions
47*8975f5c5SAndroid Build Coastguard Worker
48*8975f5c5SAndroid Build Coastguard Worker    void RequestExtension(const char *name)
49*8975f5c5SAndroid Build Coastguard Worker
50*8975f5c5SAndroid Build Coastguard Worker    void DisableExtension(const char *name)
51*8975f5c5SAndroid Build Coastguard Worker
52*8975f5c5SAndroid Build Coastguard WorkerNew Tokens
53*8975f5c5SAndroid Build Coastguard Worker
54*8975f5c5SAndroid Build Coastguard Worker    Accepted by the <name> parameter of GetString and GetStringi:
55*8975f5c5SAndroid Build Coastguard Worker
56*8975f5c5SAndroid Build Coastguard Worker        REQUESTABLE_EXTENSIONS_ANGLE      0x93A8
57*8975f5c5SAndroid Build Coastguard Worker
58*8975f5c5SAndroid Build Coastguard Worker    Accepted by the <value> parameter of the GetInteger* functions:
59*8975f5c5SAndroid Build Coastguard Worker
60*8975f5c5SAndroid Build Coastguard Worker        NUM_REQUESTABLE_EXTENSIONS_ANGLE  0x93A9
61*8975f5c5SAndroid Build Coastguard Worker
62*8975f5c5SAndroid Build Coastguard WorkerAdditions to the OpenGL ES 3.0 Specification
63*8975f5c5SAndroid Build Coastguard Worker
64*8975f5c5SAndroid Build Coastguard Worker    Add the following paragraph to the end paragraph 4 of section 6.1.6, String
65*8975f5c5SAndroid Build Coastguard Worker    Queries:
66*8975f5c5SAndroid Build Coastguard Worker
67*8975f5c5SAndroid Build Coastguard Worker    "REQUESTABLE_EXTENSIONS_ANGLE returns a list of extensions that can be
68*8975f5c5SAndroid Build Coastguard Worker    enabled at runtime by calling RequestExtension."
69*8975f5c5SAndroid Build Coastguard Worker
70*8975f5c5SAndroid Build Coastguard Worker    Change the following section of paragraph 6 of section 6.1.6, String Queries:
71*8975f5c5SAndroid Build Coastguard Worker
72*8975f5c5SAndroid Build Coastguard Worker    - "name may only be EXTENSIONS, indicating that the extension name
73*8975f5c5SAndroid Build Coastguard Worker    - corresponding to the indexth supported extension should be returned.
74*8975f5c5SAndroid Build Coastguard Worker    - <index> may range from zero to the value of NUM_EXTENSIONS minus one"
75*8975f5c5SAndroid Build Coastguard Worker    + "name may be EXTENSIONS or REQUESTABLE_EXTENSIONS_ANGLE, indicating that
76*8975f5c5SAndroid Build Coastguard Worker    + the extension name corresponding to the indexth supported or requestable
77*8975f5c5SAndroid Build Coastguard Worker    + extension should be returned. <index> may range from zero to the value of
78*8975f5c5SAndroid Build Coastguard Worker    + NUM_EXTENSIONS and NUM_REQUESTABLE_EXTENSIONS_ANGLE minus one"
79*8975f5c5SAndroid Build Coastguard Worker
80*8975f5c5SAndroid Build Coastguard Worker    The commands
81*8975f5c5SAndroid Build Coastguard Worker
82*8975f5c5SAndroid Build Coastguard Worker       void RequestExtension(const char *name)
83*8975f5c5SAndroid Build Coastguard Worker       void DisableExtension(const char *name)
84*8975f5c5SAndroid Build Coastguard Worker
85*8975f5c5SAndroid Build Coastguard Worker    enable or disable the requestable OpenGL ES extension named <name>. If the
86*8975f5c5SAndroid Build Coastguard Worker    requested extension was not requestable or disablable, INVALID_OPERATION is
87*8975f5c5SAndroid Build Coastguard Worker    generated. Not all requestable extensions can be disabled. There is
88*8975f5c5SAndroid Build Coastguard Worker    currently no query for disablable extensions.  This operation is not thread
89*8975f5c5SAndroid Build Coastguard Worker    safe, and the application is responsible for ensuring no other context in
90*8975f5c5SAndroid Build Coastguard Worker    the share group is accessed by another thread during this operation.
91*8975f5c5SAndroid Build Coastguard Worker
92*8975f5c5SAndroid Build Coastguard WorkerNew State
93*8975f5c5SAndroid Build Coastguard Worker
94*8975f5c5SAndroid Build Coastguard Worker    Add to Table 6.30 (Implementation Dependent Version and Extension Support)
95*8975f5c5SAndroid Build Coastguard Worker
96*8975f5c5SAndroid Build Coastguard Worker    Get value                        Type Get Cmd     Min Value Description                      Sec.
97*8975f5c5SAndroid Build Coastguard Worker    -------------------------------- ---- ----------- --------- -------------------------------- -----
98*8975f5c5SAndroid Build Coastguard Worker    NUM_REQUESTABLE_EXTENSIONS_ANGLE Z+   GetIntegerv -         Number of individual requestable 6.1.6
99*8975f5c5SAndroid Build Coastguard Worker                                                                extension names
100*8975f5c5SAndroid Build Coastguard Worker
101*8975f5c5SAndroid Build Coastguard WorkerInteractions with the OpenGL ES 2.0 specification:
102*8975f5c5SAndroid Build Coastguard Worker
103*8975f5c5SAndroid Build Coastguard Worker    Remove all references to GetStringi and NUM_REQUESTABLE_EXTENSIONS_ANGLE.
104*8975f5c5SAndroid Build Coastguard Worker
105*8975f5c5SAndroid Build Coastguard WorkerIssues
106*8975f5c5SAndroid Build Coastguard Worker
107*8975f5c5SAndroid Build Coastguard Worker    (1) How can the user determine which extensions can be enabled without
108*8975f5c5SAndroid Build Coastguard Worker        potentially generating errors?
109*8975f5c5SAndroid Build Coastguard Worker
110*8975f5c5SAndroid Build Coastguard Worker      This can be solved by:
111*8975f5c5SAndroid Build Coastguard Worker      a) Never generate an error in EnableExtensions, simply return false when
112*8975f5c5SAndroid Build Coastguard Worker         the extension is not recognized or cannot be enabled.
113*8975f5c5SAndroid Build Coastguard Worker      b) Add another query for the extensions that the context supports
114*8975f5c5SAndroid Build Coastguard Worker         enabling.
115*8975f5c5SAndroid Build Coastguard Worker
116*8975f5c5SAndroid Build Coastguard Worker      RESOLVED: Use (b) because it allows the context to explicity advertise
117*8975f5c5SAndroid Build Coastguard Worker      which extensions support enabling and doesn't generate errors in the
118*8975f5c5SAndroid Build Coastguard Worker      normal use case.
119*8975f5c5SAndroid Build Coastguard Worker
120*8975f5c5SAndroid Build Coastguard WorkerRevision History
121*8975f5c5SAndroid Build Coastguard Worker
122*8975f5c5SAndroid Build Coastguard Worker    Rev.    Date         Author     Changes
123*8975f5c5SAndroid Build Coastguard Worker    ----  -------------  ---------  ----------------------------------------
124*8975f5c5SAndroid Build Coastguard Worker      1    Nov 28, 2016  geofflang  Initial version
125*8975f5c5SAndroid Build Coastguard Worker      2    Oct 4, 2019   jdarpinian Add DisableExtension
126