xref: /aosp_15_r20/external/skia/src/gpu/ganesh/gl/GrGLAssembleGLInterfaceAutogen.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 
12*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkRefCnt.h"
13*c8dee2aaSAndroid Build Coastguard Worker #include "include/gpu/ganesh/gl/GrGLAssembleHelpers.h"
14*c8dee2aaSAndroid Build Coastguard Worker #include "include/gpu/ganesh/gl/GrGLAssembleInterface.h"
15*c8dee2aaSAndroid Build Coastguard Worker #include "include/gpu/ganesh/gl/GrGLExtensions.h"
16*c8dee2aaSAndroid Build Coastguard Worker #include "include/gpu/ganesh/gl/GrGLFunctions.h"
17*c8dee2aaSAndroid Build Coastguard Worker #include "include/gpu/ganesh/gl/GrGLInterface.h"
18*c8dee2aaSAndroid Build Coastguard Worker #include "include/gpu/ganesh/gl/GrGLTypes.h"
19*c8dee2aaSAndroid Build Coastguard Worker #include "src/gpu/ganesh/gl/GrGLDefines.h"
20*c8dee2aaSAndroid Build Coastguard Worker #include "src/gpu/ganesh/gl/GrGLUtil.h"
21*c8dee2aaSAndroid Build Coastguard Worker 
22*c8dee2aaSAndroid Build Coastguard Worker #define GET_PROC(F) functions->f##F = (GrGL##F##Fn*)get(ctx, "gl" #F)
23*c8dee2aaSAndroid Build Coastguard Worker #define GET_PROC_SUFFIX(F, S) functions->f##F = (GrGL##F##Fn*)get(ctx, "gl" #F #S)
24*c8dee2aaSAndroid Build Coastguard Worker #define GET_PROC_LOCAL(F) GrGL##F##Fn* F = (GrGL##F##Fn*)get(ctx, "gl" #F)
25*c8dee2aaSAndroid Build Coastguard Worker 
26*c8dee2aaSAndroid Build Coastguard Worker #define GET_EGL_PROC_SUFFIX(F, S) functions->fEGL##F = (GrEGL##F##Fn*)get(ctx, "egl" #F #S)
27*c8dee2aaSAndroid Build Coastguard Worker 
28*c8dee2aaSAndroid Build Coastguard Worker #if SK_DISABLE_GL_INTERFACE
GrGLMakeAssembledGLInterface(void * ctx,GrGLGetProc get)29*c8dee2aaSAndroid Build Coastguard Worker sk_sp<const GrGLInterface> GrGLMakeAssembledGLInterface(void *ctx, GrGLGetProc get) {
30*c8dee2aaSAndroid Build Coastguard Worker     return nullptr;
31*c8dee2aaSAndroid Build Coastguard Worker }
32*c8dee2aaSAndroid Build Coastguard Worker #else
GrGLMakeAssembledGLInterface(void * ctx,GrGLGetProc get)33*c8dee2aaSAndroid Build Coastguard Worker sk_sp<const GrGLInterface> GrGLMakeAssembledGLInterface(void *ctx, GrGLGetProc get) {
34*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC_LOCAL(GetString);
35*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC_LOCAL(GetStringi);
36*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC_LOCAL(GetIntegerv);
37*c8dee2aaSAndroid Build Coastguard Worker 
38*c8dee2aaSAndroid Build Coastguard Worker     // GetStringi may be nullptr depending on the GL version.
39*c8dee2aaSAndroid Build Coastguard Worker     if (nullptr == GetString || nullptr == GetIntegerv) {
40*c8dee2aaSAndroid Build Coastguard Worker         return nullptr;
41*c8dee2aaSAndroid Build Coastguard Worker     }
42*c8dee2aaSAndroid Build Coastguard Worker 
43*c8dee2aaSAndroid Build Coastguard Worker     const char* versionString = (const char*) GetString(GR_GL_VERSION);
44*c8dee2aaSAndroid Build Coastguard Worker     GrGLVersion glVer = GrGLGetVersionFromString(versionString);
45*c8dee2aaSAndroid Build Coastguard Worker 
46*c8dee2aaSAndroid Build Coastguard Worker     if (glVer < GR_GL_VER(2,0) || GR_GL_INVALID_VER == glVer) {
47*c8dee2aaSAndroid Build Coastguard Worker         // This is our minimum for non-ES GL.
48*c8dee2aaSAndroid Build Coastguard Worker         return nullptr;
49*c8dee2aaSAndroid Build Coastguard Worker     }
50*c8dee2aaSAndroid Build Coastguard Worker 
51*c8dee2aaSAndroid Build Coastguard Worker     GrEGLQueryStringFn* queryString;
52*c8dee2aaSAndroid Build Coastguard Worker     GrEGLDisplay display;
53*c8dee2aaSAndroid Build Coastguard Worker     GrGetEGLQueryAndDisplay(&queryString, &display, ctx, get);
54*c8dee2aaSAndroid Build Coastguard Worker     GrGLExtensions extensions;
55*c8dee2aaSAndroid Build Coastguard Worker     if (!extensions.init(kGL_GrGLStandard, GetString, GetStringi, GetIntegerv, queryString,
56*c8dee2aaSAndroid Build Coastguard Worker                          display)) {
57*c8dee2aaSAndroid Build Coastguard Worker         return nullptr;
58*c8dee2aaSAndroid Build Coastguard Worker     }
59*c8dee2aaSAndroid Build Coastguard Worker 
60*c8dee2aaSAndroid Build Coastguard Worker     sk_sp<GrGLInterface> interface(new GrGLInterface());
61*c8dee2aaSAndroid Build Coastguard Worker     GrGLInterface::Functions* functions = &interface->fFunctions;
62*c8dee2aaSAndroid Build Coastguard Worker 
63*c8dee2aaSAndroid Build Coastguard Worker     // Autogenerated content follows
64*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(ActiveTexture);
65*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(AttachShader);
66*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(BindAttribLocation);
67*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(BindBuffer);
68*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(BindTexture);
69*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(BlendColor);
70*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(BlendEquation);
71*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(BlendFunc);
72*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(BufferData);
73*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(BufferSubData);
74*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Clear);
75*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(ClearColor);
76*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(ClearStencil);
77*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(ColorMask);
78*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(CompileShader);
79*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(CompressedTexImage2D);
80*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(CompressedTexSubImage2D);
81*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(CopyTexSubImage2D);
82*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(CreateProgram);
83*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(CreateShader);
84*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(CullFace);
85*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DeleteBuffers);
86*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DeleteProgram);
87*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DeleteShader);
88*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DeleteTextures);
89*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DepthMask);
90*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Disable);
91*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DisableVertexAttribArray);
92*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DrawArrays);
93*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DrawElements);
94*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Enable);
95*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(EnableVertexAttribArray);
96*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Finish);
97*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Flush);
98*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(FrontFace);
99*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GenBuffers);
100*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GenTextures);
101*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetBufferParameteriv);
102*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetError);
103*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetFloatv);
104*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetIntegerv);
105*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetProgramInfoLog);
106*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetProgramiv);
107*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetShaderInfoLog);
108*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetShaderiv);
109*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetString);
110*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetUniformLocation);
111*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(IsTexture);
112*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(LineWidth);
113*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(LinkProgram);
114*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(PixelStorei);
115*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(ReadPixels);
116*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Scissor);
117*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(ShaderSource);
118*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(StencilFunc);
119*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(StencilFuncSeparate);
120*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(StencilMask);
121*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(StencilMaskSeparate);
122*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(StencilOp);
123*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(StencilOpSeparate);
124*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(TexImage2D);
125*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(TexParameterf);
126*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(TexParameterfv);
127*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(TexParameteri);
128*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(TexParameteriv);
129*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(TexSubImage2D);
130*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform1f);
131*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform1fv);
132*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform1i);
133*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform1iv);
134*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform2f);
135*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform2fv);
136*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform2i);
137*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform2iv);
138*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform3f);
139*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform3fv);
140*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform3i);
141*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform3iv);
142*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform4f);
143*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform4fv);
144*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform4i);
145*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Uniform4iv);
146*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(UniformMatrix2fv);
147*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(UniformMatrix3fv);
148*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(UniformMatrix4fv);
149*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(UseProgram);
150*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(VertexAttrib1f);
151*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(VertexAttrib2fv);
152*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(VertexAttrib3fv);
153*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(VertexAttrib4fv);
154*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(VertexAttribPointer);
155*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(Viewport);
156*c8dee2aaSAndroid Build Coastguard Worker 
157*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DrawBuffer);
158*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(PolygonMode);
159*c8dee2aaSAndroid Build Coastguard Worker 
160*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(3,0)) {
161*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetStringi);
162*c8dee2aaSAndroid Build Coastguard Worker     }
163*c8dee2aaSAndroid Build Coastguard Worker 
164*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(4,2)) {
165*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(MemoryBarrier);
166*c8dee2aaSAndroid Build Coastguard Worker     }
167*c8dee2aaSAndroid Build Coastguard Worker 
168*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(3,0)) {
169*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(BindVertexArray);
170*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DeleteVertexArrays);
171*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GenVertexArrays);
172*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_vertex_array_object")) {
173*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(BindVertexArray);
174*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DeleteVertexArrays);
175*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GenVertexArrays);
176*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_APPLE_vertex_array_object")) {
177*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(BindVertexArray, APPLE);
178*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(DeleteVertexArrays, APPLE);
179*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GenVertexArrays, APPLE);
180*c8dee2aaSAndroid Build Coastguard Worker     }
181*c8dee2aaSAndroid Build Coastguard Worker 
182*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(4,0)) {
183*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(PatchParameteri);
184*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_tessellation_shader")) {
185*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(PatchParameteri);
186*c8dee2aaSAndroid Build Coastguard Worker     }
187*c8dee2aaSAndroid Build Coastguard Worker 
188*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(3,0)) {
189*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(BindFragDataLocation);
190*c8dee2aaSAndroid Build Coastguard Worker     }
191*c8dee2aaSAndroid Build Coastguard Worker 
192*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(3,3)) {
193*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(BindFragDataLocationIndexed);
194*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_blend_func_extended")) {
195*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(BindFragDataLocationIndexed);
196*c8dee2aaSAndroid Build Coastguard Worker     }
197*c8dee2aaSAndroid Build Coastguard Worker 
198*c8dee2aaSAndroid Build Coastguard Worker     if (extensions.has("GL_KHR_blend_equation_advanced")) {
199*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(BlendBarrier, KHR);
200*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_NV_blend_equation_advanced")) {
201*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(BlendBarrier, NV);
202*c8dee2aaSAndroid Build Coastguard Worker     }
203*c8dee2aaSAndroid Build Coastguard Worker 
204*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(4,4)) {
205*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(ClearTexImage);
206*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(ClearTexSubImage);
207*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_clear_texture")) {
208*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(ClearTexImage);
209*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(ClearTexSubImage);
210*c8dee2aaSAndroid Build Coastguard Worker     }
211*c8dee2aaSAndroid Build Coastguard Worker 
212*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(3,1)) {
213*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DrawArraysInstanced);
214*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DrawElementsInstanced);
215*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_draw_instanced")) {
216*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DrawArraysInstanced);
217*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DrawElementsInstanced);
218*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_EXT_draw_instanced")) {
219*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(DrawArraysInstanced, EXT);
220*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(DrawElementsInstanced, EXT);
221*c8dee2aaSAndroid Build Coastguard Worker     }
222*c8dee2aaSAndroid Build Coastguard Worker 
223*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(4,2)) {
224*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DrawArraysInstancedBaseInstance);
225*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DrawElementsInstancedBaseVertexBaseInstance);
226*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_base_instance")) {
227*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DrawArraysInstancedBaseInstance);
228*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DrawElementsInstancedBaseVertexBaseInstance);
229*c8dee2aaSAndroid Build Coastguard Worker     }
230*c8dee2aaSAndroid Build Coastguard Worker 
231*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DrawBuffers);
232*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(ReadBuffer);
233*c8dee2aaSAndroid Build Coastguard Worker 
234*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(4,0)) {
235*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DrawArraysIndirect);
236*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DrawElementsIndirect);
237*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_draw_indirect")) {
238*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DrawArraysIndirect);
239*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DrawElementsIndirect);
240*c8dee2aaSAndroid Build Coastguard Worker     }
241*c8dee2aaSAndroid Build Coastguard Worker 
242*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DrawRangeElements);
243*c8dee2aaSAndroid Build Coastguard Worker 
244*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(3,2)) {
245*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetMultisamplefv);
246*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_texture_multisample")) {
247*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetMultisamplefv);
248*c8dee2aaSAndroid Build Coastguard Worker     }
249*c8dee2aaSAndroid Build Coastguard Worker 
250*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetTexLevelParameteriv);
251*c8dee2aaSAndroid Build Coastguard Worker 
252*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(4,3)) {
253*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(MultiDrawArraysIndirect);
254*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(MultiDrawElementsIndirect);
255*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_multi_draw_indirect")) {
256*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(MultiDrawArraysIndirect);
257*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(MultiDrawElementsIndirect);
258*c8dee2aaSAndroid Build Coastguard Worker     }
259*c8dee2aaSAndroid Build Coastguard Worker 
260*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(3,1)) {
261*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(TexBuffer);
262*c8dee2aaSAndroid Build Coastguard Worker     }
263*c8dee2aaSAndroid Build Coastguard Worker 
264*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(4,3)) {
265*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(TexBufferRange);
266*c8dee2aaSAndroid Build Coastguard Worker     }
267*c8dee2aaSAndroid Build Coastguard Worker 
268*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(4,2)) {
269*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(TexStorage2D);
270*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_texture_storage")) {
271*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(TexStorage2D);
272*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_EXT_texture_storage")) {
273*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(TexStorage2D, EXT);
274*c8dee2aaSAndroid Build Coastguard Worker     }
275*c8dee2aaSAndroid Build Coastguard Worker 
276*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(4,5)) {
277*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(TextureBarrier);
278*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_texture_barrier")) {
279*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(TextureBarrier);
280*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_NV_texture_barrier")) {
281*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(TextureBarrier, NV);
282*c8dee2aaSAndroid Build Coastguard Worker     }
283*c8dee2aaSAndroid Build Coastguard Worker 
284*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(3,2)) {
285*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(VertexAttribDivisor);
286*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_instanced_arrays")) {
287*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(VertexAttribDivisor);
288*c8dee2aaSAndroid Build Coastguard Worker     }
289*c8dee2aaSAndroid Build Coastguard Worker 
290*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(3,0)) {
291*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(VertexAttribIPointer);
292*c8dee2aaSAndroid Build Coastguard Worker     }
293*c8dee2aaSAndroid Build Coastguard Worker 
294*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(3,0)) {
295*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(BindFramebuffer);
296*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(BindRenderbuffer);
297*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(CheckFramebufferStatus);
298*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DeleteFramebuffers);
299*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DeleteRenderbuffers);
300*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(FramebufferRenderbuffer);
301*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(FramebufferTexture2D);
302*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GenFramebuffers);
303*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GenRenderbuffers);
304*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GenerateMipmap);
305*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetFramebufferAttachmentParameteriv);
306*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetRenderbufferParameteriv);
307*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(RenderbufferStorage);
308*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_framebuffer_object")) {
309*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(BindFramebuffer);
310*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(BindRenderbuffer);
311*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(CheckFramebufferStatus);
312*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DeleteFramebuffers);
313*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DeleteRenderbuffers);
314*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(FramebufferRenderbuffer);
315*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(FramebufferTexture2D);
316*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GenFramebuffers);
317*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GenRenderbuffers);
318*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GenerateMipmap);
319*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetFramebufferAttachmentParameteriv);
320*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetRenderbufferParameteriv);
321*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(RenderbufferStorage);
322*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_EXT_framebuffer_object")) {
323*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(BindFramebuffer, EXT);
324*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(BindRenderbuffer, EXT);
325*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(CheckFramebufferStatus, EXT);
326*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(DeleteFramebuffers, EXT);
327*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(DeleteRenderbuffers, EXT);
328*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(FramebufferRenderbuffer, EXT);
329*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(FramebufferTexture2D, EXT);
330*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GenFramebuffers, EXT);
331*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GenRenderbuffers, EXT);
332*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GenerateMipmap, EXT);
333*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GetFramebufferAttachmentParameteriv, EXT);
334*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GetRenderbufferParameteriv, EXT);
335*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(RenderbufferStorage, EXT);
336*c8dee2aaSAndroid Build Coastguard Worker     }
337*c8dee2aaSAndroid Build Coastguard Worker 
338*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(3,0)) {
339*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(BlitFramebuffer);
340*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_framebuffer_object")) {
341*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(BlitFramebuffer);
342*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_EXT_framebuffer_blit")) {
343*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(BlitFramebuffer, EXT);
344*c8dee2aaSAndroid Build Coastguard Worker     }
345*c8dee2aaSAndroid Build Coastguard Worker 
346*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(3,0)) {
347*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(RenderbufferStorageMultisample);
348*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_framebuffer_object")) {
349*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(RenderbufferStorageMultisample);
350*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_EXT_framebuffer_multisample")) {
351*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(RenderbufferStorageMultisample, EXT);
352*c8dee2aaSAndroid Build Coastguard Worker     }
353*c8dee2aaSAndroid Build Coastguard Worker 
354*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(MapBuffer);
355*c8dee2aaSAndroid Build Coastguard Worker 
356*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(UnmapBuffer);
357*c8dee2aaSAndroid Build Coastguard Worker 
358*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(3,0)) {
359*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(FlushMappedBufferRange);
360*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(MapBufferRange);
361*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_map_buffer_range")) {
362*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(FlushMappedBufferRange);
363*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(MapBufferRange);
364*c8dee2aaSAndroid Build Coastguard Worker     }
365*c8dee2aaSAndroid Build Coastguard Worker 
366*c8dee2aaSAndroid Build Coastguard Worker     if (extensions.has("GL_EXT_debug_marker")) {
367*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(InsertEventMarker, EXT);
368*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(PopGroupMarker, EXT);
369*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(PushGroupMarker, EXT);
370*c8dee2aaSAndroid Build Coastguard Worker     }
371*c8dee2aaSAndroid Build Coastguard Worker 
372*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(3,1)) {
373*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(CopyBufferSubData);
374*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_copy_buffer")) {
375*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(CopyBufferSubData);
376*c8dee2aaSAndroid Build Coastguard Worker     }
377*c8dee2aaSAndroid Build Coastguard Worker 
378*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(4,3)) {
379*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DebugMessageCallback);
380*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DebugMessageControl);
381*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DebugMessageInsert);
382*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetDebugMessageLog);
383*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(ObjectLabel);
384*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(PopDebugGroup);
385*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(PushDebugGroup);
386*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_KHR_debug")) {
387*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DebugMessageCallback);
388*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DebugMessageControl);
389*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DebugMessageInsert);
390*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetDebugMessageLog);
391*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(ObjectLabel);
392*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(PopDebugGroup);
393*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(PushDebugGroup);
394*c8dee2aaSAndroid Build Coastguard Worker     }
395*c8dee2aaSAndroid Build Coastguard Worker 
396*c8dee2aaSAndroid Build Coastguard Worker     if (extensions.has("GL_EXT_window_rectangles")) {
397*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(WindowRectangles, EXT);
398*c8dee2aaSAndroid Build Coastguard Worker     }
399*c8dee2aaSAndroid Build Coastguard Worker 
400*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(3,2)) {
401*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(ClientWaitSync);
402*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DeleteSync);
403*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(FenceSync);
404*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(IsSync);
405*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(WaitSync);
406*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_sync")) {
407*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(ClientWaitSync);
408*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DeleteSync);
409*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(FenceSync);
410*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(IsSync);
411*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(WaitSync);
412*c8dee2aaSAndroid Build Coastguard Worker     }
413*c8dee2aaSAndroid Build Coastguard Worker 
414*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(4,2)) {
415*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetInternalformativ);
416*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_internalformat_query")) {
417*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetInternalformativ);
418*c8dee2aaSAndroid Build Coastguard Worker     }
419*c8dee2aaSAndroid Build Coastguard Worker 
420*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(4,1)) {
421*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetProgramBinary);
422*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(ProgramBinary);
423*c8dee2aaSAndroid Build Coastguard Worker     }
424*c8dee2aaSAndroid Build Coastguard Worker 
425*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(4,1)) {
426*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(ProgramParameteri);
427*c8dee2aaSAndroid Build Coastguard Worker     }
428*c8dee2aaSAndroid Build Coastguard Worker 
429*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(3,2)) {
430*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(BindSampler);
431*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DeleteSamplers);
432*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GenSamplers);
433*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(SamplerParameterf);
434*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(SamplerParameteri);
435*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(SamplerParameteriv);
436*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_sampler_objects")) {
437*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(BindSampler);
438*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(DeleteSamplers);
439*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GenSamplers);
440*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(SamplerParameterf);
441*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(SamplerParameteri);
442*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(SamplerParameteriv);
443*c8dee2aaSAndroid Build Coastguard Worker     }
444*c8dee2aaSAndroid Build Coastguard Worker 
445*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(BeginQuery);
446*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(DeleteQueries);
447*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(EndQuery);
448*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GenQueries);
449*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetQueryObjectuiv);
450*c8dee2aaSAndroid Build Coastguard Worker     GET_PROC(GetQueryiv);
451*c8dee2aaSAndroid Build Coastguard Worker 
452*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(3,3)) {
453*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(QueryCounter);
454*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_timer_query")) {
455*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(QueryCounter);
456*c8dee2aaSAndroid Build Coastguard Worker     }
457*c8dee2aaSAndroid Build Coastguard Worker 
458*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(3,3)) {
459*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetQueryObjecti64v);
460*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetQueryObjectui64v);
461*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_timer_query")) {
462*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetQueryObjecti64v);
463*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetQueryObjectui64v);
464*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_EXT_timer_query")) {
465*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GetQueryObjecti64v, EXT);
466*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GetQueryObjectui64v, EXT);
467*c8dee2aaSAndroid Build Coastguard Worker     }
468*c8dee2aaSAndroid Build Coastguard Worker 
469*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(4,3)) {
470*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(InvalidateBufferData);
471*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(InvalidateBufferSubData);
472*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(InvalidateTexImage);
473*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(InvalidateTexSubImage);
474*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_invalidate_subdata")) {
475*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(InvalidateBufferData);
476*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(InvalidateBufferSubData);
477*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(InvalidateTexImage);
478*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(InvalidateTexSubImage);
479*c8dee2aaSAndroid Build Coastguard Worker     }
480*c8dee2aaSAndroid Build Coastguard Worker 
481*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(4,3)) {
482*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(InvalidateFramebuffer);
483*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(InvalidateSubFramebuffer);
484*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_invalidate_subdata")) {
485*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(InvalidateFramebuffer);
486*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(InvalidateSubFramebuffer);
487*c8dee2aaSAndroid Build Coastguard Worker     }
488*c8dee2aaSAndroid Build Coastguard Worker 
489*c8dee2aaSAndroid Build Coastguard Worker     if (glVer >= GR_GL_VER(4,3)) {
490*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetShaderPrecisionFormat);
491*c8dee2aaSAndroid Build Coastguard Worker     } else if (extensions.has("GL_ARB_ES2_compatibility")) {
492*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC(GetShaderPrecisionFormat);
493*c8dee2aaSAndroid Build Coastguard Worker     }
494*c8dee2aaSAndroid Build Coastguard Worker 
495*c8dee2aaSAndroid Build Coastguard Worker     if (extensions.has("GL_NV_fence")) {
496*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(DeleteFences, NV);
497*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(FinishFence, NV);
498*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(GenFences, NV);
499*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(SetFence, NV);
500*c8dee2aaSAndroid Build Coastguard Worker         GET_PROC_SUFFIX(TestFence, NV);
501*c8dee2aaSAndroid Build Coastguard Worker     }
502*c8dee2aaSAndroid Build Coastguard Worker 
503*c8dee2aaSAndroid Build Coastguard Worker 
504*c8dee2aaSAndroid Build Coastguard Worker     // End autogenerated content
505*c8dee2aaSAndroid Build Coastguard Worker     interface->fStandard = kGL_GrGLStandard;
506*c8dee2aaSAndroid Build Coastguard Worker     interface->fExtensions.swap(&extensions);
507*c8dee2aaSAndroid Build Coastguard Worker 
508*c8dee2aaSAndroid Build Coastguard Worker     return interface;
509*c8dee2aaSAndroid Build Coastguard Worker }
510*c8dee2aaSAndroid Build Coastguard Worker #endif
511