xref: /aosp_15_r20/external/skia/src/gpu/ganesh/gl/GrGLAssembleWebGLInterfaceAutogen.cpp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker /*
2*c8dee2aaSAndroid Build Coastguard Worker  * Copyright 2019 Google LLC
3*c8dee2aaSAndroid Build Coastguard Worker  *
4*c8dee2aaSAndroid Build Coastguard Worker  * Use of this source code is governed by a BSD-style license that can be
5*c8dee2aaSAndroid Build Coastguard Worker  * found in the LICENSE file.
6*c8dee2aaSAndroid Build Coastguard Worker  *
7*c8dee2aaSAndroid Build Coastguard Worker  * THIS FILE IS AUTOGENERATED
8*c8dee2aaSAndroid Build Coastguard Worker  * Make edits to tools/gpu/gl/interface/templates.go or they will
9*c8dee2aaSAndroid Build Coastguard Worker  * be overwritten.
10*c8dee2aaSAndroid Build Coastguard Worker  */
11*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkRefCnt.h"
12*c8dee2aaSAndroid Build Coastguard Worker #include "include/gpu/ganesh/gl/GrGLAssembleInterface.h"
13*c8dee2aaSAndroid Build Coastguard Worker 
14*c8dee2aaSAndroid Build Coastguard Worker #if SK_DISABLE_WEBGL_INTERFACE || !defined(__EMSCRIPTEN__)
15*c8dee2aaSAndroid Build Coastguard Worker struct GrGLInterface;
GrGLMakeAssembledWebGLInterface(void * ctx,GrGLGetProc get)16*c8dee2aaSAndroid Build Coastguard Worker sk_sp<const GrGLInterface> GrGLMakeAssembledWebGLInterface(void *ctx, GrGLGetProc get) {
17*c8dee2aaSAndroid Build Coastguard Worker     return nullptr;
18*c8dee2aaSAndroid Build Coastguard Worker }
19*c8dee2aaSAndroid Build Coastguard Worker #else
20*c8dee2aaSAndroid Build Coastguard Worker 
21*c8dee2aaSAndroid Build Coastguard Worker #include "include/gpu/ganesh/gl/GrGLAssembleHelpers.h"
22*c8dee2aaSAndroid Build Coastguard Worker #include "src/gpu/ganesh/gl/GrGLUtil.h"
23*c8dee2aaSAndroid Build Coastguard Worker 
24*c8dee2aaSAndroid Build Coastguard Worker // Located https://github.com/emscripten-core/emscripten/tree/7ba7700902c46734987585409502f3c63beb650f/system/include/webgl
25*c8dee2aaSAndroid Build Coastguard Worker #include <webgl/webgl1.h>
26*c8dee2aaSAndroid Build Coastguard Worker #include <webgl/webgl1_ext.h>
27*c8dee2aaSAndroid Build Coastguard Worker #include <webgl/webgl2.h>
28*c8dee2aaSAndroid Build Coastguard Worker #include <webgl/webgl2_ext.h>
29*c8dee2aaSAndroid Build Coastguard Worker 
30*c8dee2aaSAndroid Build Coastguard Worker #define GET_PROC(F) functions->f##F = emscripten_gl##F
31*c8dee2aaSAndroid Build Coastguard Worker #define GET_PROC_SUFFIX(F, S) functions->f##F = emscripten_gl##F##S
32*c8dee2aaSAndroid Build Coastguard Worker 
GrGLMakeAssembledWebGLInterface(void * ctx,GrGLGetProc get)33*c8dee2aaSAndroid Build Coastguard Worker sk_sp<const GrGLInterface> GrGLMakeAssembledWebGLInterface(void *ctx, GrGLGetProc get) {
34*c8dee2aaSAndroid Build Coastguard Worker     const char* verStr = reinterpret_cast<const char*>(glGetString(GR_GL_VERSION));
35*c8dee2aaSAndroid Build Coastguard Worker     GrGLVersion glVer = GrGLGetVersionFromString(verStr);
36*c8dee2aaSAndroid Build Coastguard Worker     if (glVer < GR_GL_VER(1,0)) {
37*c8dee2aaSAndroid Build Coastguard Worker         return nullptr;
38*c8dee2aaSAndroid Build Coastguard Worker     }
39*c8dee2aaSAndroid Build Coastguard Worker 
40*c8dee2aaSAndroid Build Coastguard Worker     GrGLExtensions extensions;
41*c8dee2aaSAndroid Build Coastguard Worker     if (!extensions.init(kWebGL_GrGLStandard, glGetString, glGetStringi, glGetIntegerv)) {
42*c8dee2aaSAndroid Build Coastguard Worker         return nullptr;
43*c8dee2aaSAndroid Build Coastguard Worker     }
44*c8dee2aaSAndroid Build Coastguard Worker 
45*c8dee2aaSAndroid Build Coastguard Worker     sk_sp<GrGLInterface> interface(new GrGLInterface);
46*c8dee2aaSAndroid Build Coastguard Worker     GrGLInterface::Functions* functions = &interface->fFunctions;
47*c8dee2aaSAndroid Build Coastguard Worker 
48*c8dee2aaSAndroid Build Coastguard Worker     // Autogenerated content follows
49*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(ActiveTexture);
50*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(AttachShader);
51*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(BindAttribLocation);
52*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(BindBuffer);
53*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(BindTexture);
54*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(BlendColor);
55*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(BlendEquation);
56*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(BlendFunc);
57*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(BufferData);
58*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(BufferSubData);
59*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Clear);
60*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(ClearColor);
61*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(ClearStencil);
62*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(ColorMask);
63*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(CompileShader);
64*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(CompressedTexImage2D);
65*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(CompressedTexSubImage2D);
66*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(CopyTexSubImage2D);
67*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(CreateProgram);
68*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(CreateShader);
69*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(CullFace);
70*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DeleteBuffers);
71*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DeleteProgram);
72*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DeleteShader);
73*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DeleteTextures);
74*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DepthMask);
75*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Disable);
76*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DisableVertexAttribArray);
77*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DrawArrays);
78*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DrawElements);
79*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Enable);
80*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(EnableVertexAttribArray);
81*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Finish);
82*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Flush);
83*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(FrontFace);
84*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GenBuffers);
85*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GenTextures);
86*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetBufferParameteriv);
87*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetError);
88*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetFloatv);
89*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetIntegerv);
90*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetProgramInfoLog);
91*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetProgramiv);
92*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetShaderInfoLog);
93*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetShaderiv);
94*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetString);
95*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetUniformLocation);
96*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(IsTexture);
97*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(LineWidth);
98*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(LinkProgram);
99*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(PixelStorei);
100*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(ReadPixels);
101*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Scissor);
102*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(ShaderSource);
103*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(StencilFunc);
104*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(StencilFuncSeparate);
105*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(StencilMask);
106*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(StencilMaskSeparate);
107*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(StencilOp);
108*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(StencilOpSeparate);
109*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(TexImage2D);
110*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(TexParameterf);
111*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(TexParameterfv);
112*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(TexParameteri);
113*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(TexParameteriv);
114*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(TexSubImage2D);
115*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform1f);
116*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform1fv);
117*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform1i);
118*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform1iv);
119*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform2f);
120*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform2fv);
121*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform2i);
122*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform2iv);
123*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform3f);
124*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform3fv);
125*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform3i);
126*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform3iv);
127*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform4f);
128*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform4fv);
129*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform4i);
130*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform4iv);
131*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(UniformMatrix2fv);
132*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(UniformMatrix3fv);
133*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(UniformMatrix4fv);
134*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(UseProgram);
135*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(VertexAttrib1f);
136*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(VertexAttrib2fv);
137*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(VertexAttrib3fv);
138*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(VertexAttrib4fv);
139*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(VertexAttribPointer);
140*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Viewport);
141*c8dee2aaSAndroid Build Coastguard Worker 
142*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(2,0)) {
143*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetStringi);
144*c8dee2aaSAndroid Build Coastguard Worker     }
145*c8dee2aaSAndroid Build Coastguard Worker 
146*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(2,0)) {
147*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(BindVertexArray);
148*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DeleteVertexArrays);
149*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GenVertexArrays);
150*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_OES_vertex_array_object")) {
151*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(BindVertexArray, OES);
152*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(DeleteVertexArrays, OES);
153*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GenVertexArrays, OES);
154*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("OES_vertex_array_object")) {
155*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(BindVertexArray, OES);
156*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(DeleteVertexArrays, OES);
157*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GenVertexArrays, OES);
158*c8dee2aaSAndroid Build Coastguard Worker     }
159*c8dee2aaSAndroid Build Coastguard Worker 
160*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(2,0)) {
161*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DrawArraysInstanced);
162*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DrawElementsInstanced);
163*c8dee2aaSAndroid Build Coastguard Worker     }
164*c8dee2aaSAndroid Build Coastguard Worker 
165*c8dee2aaSAndroid Build Coastguard Worker     if (extensions.has("GL_WEBGL_draw_instanced_base_vertex_base_instance")) {
166*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(DrawArraysInstancedBaseInstance, WEBGL);
167*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(DrawElementsInstancedBaseVertexBaseInstance, WEBGL);
168*c8dee2aaSAndroid Build Coastguard Worker     }
169*c8dee2aaSAndroid Build Coastguard Worker 
170*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(2,0)) {
171*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DrawBuffers);
172*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(ReadBuffer);
173*c8dee2aaSAndroid Build Coastguard Worker     }
174*c8dee2aaSAndroid Build Coastguard Worker 
175*c8dee2aaSAndroid Build Coastguard Worker     if (extensions.has("GL_WEBGL_multi_draw_instanced_base_vertex_base_instance")) {
176*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(MultiDrawArraysInstancedBaseInstance, WEBGL);
177*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(MultiDrawElementsInstancedBaseVertexBaseInstance, WEBGL);
178*c8dee2aaSAndroid Build Coastguard Worker     }
179*c8dee2aaSAndroid Build Coastguard Worker 
180*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(2,0)) {
181*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DrawRangeElements);
182*c8dee2aaSAndroid Build Coastguard Worker     }
183*c8dee2aaSAndroid Build Coastguard Worker 
184*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(2,0)) {
185*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(TexStorage2D);
186*c8dee2aaSAndroid Build Coastguard Worker     }
187*c8dee2aaSAndroid Build Coastguard Worker 
188*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(2,0)) {
189*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(VertexAttribDivisor);
190*c8dee2aaSAndroid Build Coastguard Worker     }
191*c8dee2aaSAndroid Build Coastguard Worker 
192*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(2,0)) {
193*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(VertexAttribIPointer);
194*c8dee2aaSAndroid Build Coastguard Worker     }
195*c8dee2aaSAndroid Build Coastguard Worker 
196*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(BindFramebuffer);
197*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(BindRenderbuffer);
198*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(CheckFramebufferStatus);
199*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DeleteFramebuffers);
200*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DeleteRenderbuffers);
201*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(FramebufferRenderbuffer);
202*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(FramebufferTexture2D);
203*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GenFramebuffers);
204*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GenRenderbuffers);
205*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GenerateMipmap);
206*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetFramebufferAttachmentParameteriv);
207*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetRenderbufferParameteriv);
208*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(RenderbufferStorage);
209*c8dee2aaSAndroid Build Coastguard Worker 
210*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(2,0)) {
211*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(BlitFramebuffer);
212*c8dee2aaSAndroid Build Coastguard Worker     }
213*c8dee2aaSAndroid Build Coastguard Worker 
214*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(2,0)) {
215*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(RenderbufferStorageMultisample);
216*c8dee2aaSAndroid Build Coastguard Worker     }
217*c8dee2aaSAndroid Build Coastguard Worker 
218*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(2,0)) {
219*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(CopyBufferSubData);
220*c8dee2aaSAndroid Build Coastguard Worker     }
221*c8dee2aaSAndroid Build Coastguard Worker 
222*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(2,0)) {
223*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(ClientWaitSync);
224*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DeleteSync);
225*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(FenceSync);
226*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(IsSync);
227*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(WaitSync);
228*c8dee2aaSAndroid Build Coastguard Worker     }
229*c8dee2aaSAndroid Build Coastguard Worker 
230*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(2,0)) {
231*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(BindSampler);
232*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DeleteSamplers);
233*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GenSamplers);
234*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(SamplerParameterf);
235*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(SamplerParameteri);
236*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(SamplerParameteriv);
237*c8dee2aaSAndroid Build Coastguard Worker     }
238*c8dee2aaSAndroid Build Coastguard Worker 
239*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(2,0)) {
240*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(BeginQuery);
241*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DeleteQueries);
242*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(EndQuery);
243*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GenQueries);
244*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetQueryObjectuiv);
245*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetQueryiv);
246*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_EXT_disjoint_timer_query")) {
247*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(BeginQuery, EXT);
248*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(DeleteQueries, EXT);
249*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(EndQuery, EXT);
250*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GenQueries, EXT);
251*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GetQueryObjectuiv, EXT);
252*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GetQueryiv, EXT);
253*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("EXT_disjoint_timer_query")) {
254*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(BeginQuery, EXT);
255*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(DeleteQueries, EXT);
256*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(EndQuery, EXT);
257*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GenQueries, EXT);
258*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GetQueryObjectuiv, EXT);
259*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GetQueryiv, EXT);
260*c8dee2aaSAndroid Build Coastguard Worker     }
261*c8dee2aaSAndroid Build Coastguard Worker 
262*c8dee2aaSAndroid Build Coastguard Worker     if (extensions.has("GL_EXT_disjoint_timer_query")) {
263*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(QueryCounter, EXT);
264*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("EXT_disjoint_timer_query")) {
265*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(QueryCounter, EXT);
266*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_EXT_disjoint_timer_query_webgl2")) {
267*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(QueryCounter, EXT);
268*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("EXT_disjoint_timer_query_webgl2")) {
269*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(QueryCounter, EXT);
270*c8dee2aaSAndroid Build Coastguard Worker     }
271*c8dee2aaSAndroid Build Coastguard Worker 
272*c8dee2aaSAndroid Build Coastguard Worker     if (extensions.has("GL_EXT_disjoint_timer_query")) {
273*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GetQueryObjecti64v, EXT);
274*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GetQueryObjectui64v, EXT);
275*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("EXT_disjoint_timer_query")) {
276*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GetQueryObjecti64v, EXT);
277*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GetQueryObjectui64v, EXT);
278*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_EXT_disjoint_timer_query_webgl2")) {
279*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GetQueryObjecti64v, EXT);
280*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GetQueryObjectui64v, EXT);
281*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("EXT_disjoint_timer_query_webgl2")) {
282*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GetQueryObjecti64v, EXT);
283*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GetQueryObjectui64v, EXT);
284*c8dee2aaSAndroid Build Coastguard Worker     }
285*c8dee2aaSAndroid Build Coastguard Worker 
286*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(2,0)) {
287*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(InvalidateFramebuffer);
288*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(InvalidateSubFramebuffer);
289*c8dee2aaSAndroid Build Coastguard Worker     }
290*c8dee2aaSAndroid Build Coastguard Worker 
291*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetShaderPrecisionFormat);
292*c8dee2aaSAndroid Build Coastguard Worker 
293*c8dee2aaSAndroid Build Coastguard Worker 
294*c8dee2aaSAndroid Build Coastguard Worker     // End autogenerated content
295*c8dee2aaSAndroid Build Coastguard Worker 
296*c8dee2aaSAndroid Build Coastguard Worker     interface->fStandard = kWebGL_GrGLStandard;
297*c8dee2aaSAndroid Build Coastguard Worker     interface->fExtensions.swap(&extensions);
298*c8dee2aaSAndroid Build Coastguard Worker 
299*c8dee2aaSAndroid Build Coastguard Worker     return interface;
300*c8dee2aaSAndroid Build Coastguard Worker }
301*c8dee2aaSAndroid Build Coastguard Worker #endif
302