1#!/bin/sh
2set -eu
3
4# Print defined gl.* functions not in GL ES 3.{0..2}
5
6case "$(uname)" in
7Darwin)
8  LIB=${1-es2api/.libs/libGLESv2.dylib}
9  ;;
10CYGWIN*)
11  LIB=${1-es2api/.libs/cygGLESv2-2.dll}
12  ;;
13*)
14  LIB=${1-es2api/.libs/libGLESv2.so.2}
15  ;;
16esac
17
18if ! [ -f "$LIB" ]
19then
20  exit 1
21fi
22
23FUNCS=$($NM -D --defined-only $LIB | grep -o 'T gl.*' | cut -c 3- | while read func; do
24( grep -q "^$func$" || echo $func )  <<EOF
25glActiveShaderProgram
26glActiveTexture
27glAttachShader
28glBeginQuery
29glBeginTransformFeedback
30glBindAttribLocation
31glBindBuffer
32glBindBufferBase
33glBindBufferRange
34glBindFramebuffer
35glBindImageTexture
36glBindProgramPipeline
37glBindRenderbuffer
38glBindSampler
39glBindTexture
40glBindTransformFeedback
41glBindVertexArray
42glBindVertexBuffer
43glBlendBarrier
44glBlendColor
45glBlendEquation
46glBlendEquationSeparate
47glBlendEquationSeparatei
48glBlendEquationi
49glBlendFunc
50glBlendFuncSeparate
51glBlendFuncSeparatei
52glBlendFunci
53glBlitFramebuffer
54glBufferData
55glBufferSubData
56glCheckFramebufferStatus
57glClear
58glClearBufferfi
59glClearBufferfv
60glClearBufferiv
61glClearBufferuiv
62glClearColor
63glClearDepthf
64glClearStencil
65glClientWaitSync
66glColorMask
67glColorMaski
68glCompileShader
69glCompressedTexImage2D
70glCompressedTexImage3D
71glCompressedTexSubImage2D
72glCompressedTexSubImage3D
73glCopyBufferSubData
74glCopyImageSubData
75glCopyTexImage2D
76glCopyTexSubImage2D
77glCopyTexSubImage3D
78glCreateProgram
79glCreateShader
80glCreateShaderProgramv
81glCullFace
82glDebugMessageCallback
83glDebugMessageControl
84glDebugMessageInsert
85glDeleteBuffers
86glDeleteFramebuffers
87glDeleteProgram
88glDeleteProgramPipelines
89glDeleteQueries
90glDeleteRenderbuffers
91glDeleteSamplers
92glDeleteShader
93glDeleteSync
94glDeleteTextures
95glDeleteTransformFeedbacks
96glDeleteVertexArrays
97glDepthFunc
98glDepthMask
99glDepthRangef
100glDetachShader
101glDisable
102glDisableVertexAttribArray
103glDisablei
104glDispatchCompute
105glDispatchComputeIndirect
106glDrawArrays
107glDrawArraysIndirect
108glDrawArraysInstanced
109glDrawBuffers
110glDrawElements
111glDrawElementsBaseVertex
112glDrawElementsIndirect
113glDrawElementsInstanced
114glDrawElementsInstancedBaseVertex
115glDrawRangeElements
116glDrawRangeElementsBaseVertex
117glEnable
118glEnableVertexAttribArray
119glEnablei
120glEndQuery
121glEndTransformFeedback
122glFenceSync
123glFinish
124glFlush
125glFlushMappedBufferRange
126glFramebufferParameteri
127glFramebufferRenderbuffer
128glFramebufferTexture
129glFramebufferTexture2D
130glFramebufferTextureLayer
131glFrontFace
132glGenBuffers
133glGenFramebuffers
134glGenProgramPipelines
135glGenQueries
136glGenRenderbuffers
137glGenSamplers
138glGenTextures
139glGenTransformFeedbacks
140glGenVertexArrays
141glGenerateMipmap
142glGetActiveAttrib
143glGetActiveUniform
144glGetActiveUniformBlockName
145glGetActiveUniformBlockiv
146glGetActiveUniformsiv
147glGetAttachedShaders
148glGetAttribLocation
149glGetBooleani_v
150glGetBooleanv
151glGetBufferParameteri64v
152glGetBufferParameteriv
153glGetBufferPointerv
154glGetDebugMessageLog
155glGetError
156glGetFloatv
157glGetFragDataLocation
158glGetFramebufferAttachmentParameteriv
159glGetFramebufferParameteriv
160glGetGraphicsResetStatus
161glGetInteger64i_v
162glGetInteger64v
163glGetIntegeri_v
164glGetIntegerv
165glGetInternalformativ
166glGetMultisamplefv
167glGetObjectLabel
168glGetObjectPtrLabel
169glGetPointerv
170glGetProgramBinary
171glGetProgramInfoLog
172glGetProgramInterfaceiv
173glGetProgramPipelineInfoLog
174glGetProgramPipelineiv
175glGetProgramResourceIndex
176glGetProgramResourceLocation
177glGetProgramResourceName
178glGetProgramResourceiv
179glGetProgramiv
180glGetQueryObjectuiv
181glGetQueryiv
182glGetRenderbufferParameteriv
183glGetSamplerParameterIiv
184glGetSamplerParameterIuiv
185glGetSamplerParameterfv
186glGetSamplerParameteriv
187glGetShaderInfoLog
188glGetShaderPrecisionFormat
189glGetShaderSource
190glGetShaderiv
191glGetString
192glGetStringi
193glGetSynciv
194glGetTexLevelParameterfv
195glGetTexLevelParameteriv
196glGetTexParameterIiv
197glGetTexParameterIuiv
198glGetTexParameterfv
199glGetTexParameteriv
200glGetTransformFeedbackVarying
201glGetUniformBlockIndex
202glGetUniformIndices
203glGetUniformLocation
204glGetUniformfv
205glGetUniformiv
206glGetUniformuiv
207glGetVertexAttribIiv
208glGetVertexAttribIuiv
209glGetVertexAttribPointerv
210glGetVertexAttribfv
211glGetVertexAttribiv
212glGetnUniformfv
213glGetnUniformiv
214glGetnUniformuiv
215glHint
216glInvalidateFramebuffer
217glInvalidateSubFramebuffer
218glIsBuffer
219glIsEnabled
220glIsEnabledi
221glIsFramebuffer
222glIsProgram
223glIsProgramPipeline
224glIsQuery
225glIsRenderbuffer
226glIsSampler
227glIsShader
228glIsSync
229glIsTexture
230glIsTransformFeedback
231glIsVertexArray
232glLineWidth
233glLinkProgram
234glMapBufferRange
235glMemoryBarrier
236glMemoryBarrierByRegion
237glMinSampleShading
238glObjectLabel
239glObjectPtrLabel
240glPatchParameteri
241glPauseTransformFeedback
242glPixelStorei
243glPolygonOffset
244glPopDebugGroup
245glPrimitiveBoundingBox
246glProgramBinary
247glProgramParameteri
248glProgramUniform1f
249glProgramUniform1fv
250glProgramUniform1i
251glProgramUniform1iv
252glProgramUniform1ui
253glProgramUniform1uiv
254glProgramUniform2f
255glProgramUniform2fv
256glProgramUniform2i
257glProgramUniform2iv
258glProgramUniform2ui
259glProgramUniform2uiv
260glProgramUniform3f
261glProgramUniform3fv
262glProgramUniform3i
263glProgramUniform3iv
264glProgramUniform3ui
265glProgramUniform3uiv
266glProgramUniform4f
267glProgramUniform4fv
268glProgramUniform4i
269glProgramUniform4iv
270glProgramUniform4ui
271glProgramUniform4uiv
272glProgramUniformMatrix2fv
273glProgramUniformMatrix2x3fv
274glProgramUniformMatrix2x4fv
275glProgramUniformMatrix3fv
276glProgramUniformMatrix3x2fv
277glProgramUniformMatrix3x4fv
278glProgramUniformMatrix4fv
279glProgramUniformMatrix4x2fv
280glProgramUniformMatrix4x3fv
281glPushDebugGroup
282glReadBuffer
283glReadPixels
284glReadnPixels
285glReleaseShaderCompiler
286glRenderbufferStorage
287glRenderbufferStorageMultisample
288glResumeTransformFeedback
289glSampleCoverage
290glSampleMaski
291glSamplerParameterIiv
292glSamplerParameterIuiv
293glSamplerParameterf
294glSamplerParameterfv
295glSamplerParameteri
296glSamplerParameteriv
297glScissor
298glShaderBinary
299glShaderSource
300glStencilFunc
301glStencilFuncSeparate
302glStencilMask
303glStencilMaskSeparate
304glStencilOp
305glStencilOpSeparate
306glTexBuffer
307glTexBufferRange
308glTexImage2D
309glTexImage3D
310glTexParameterIiv
311glTexParameterIuiv
312glTexParameterf
313glTexParameterfv
314glTexParameteri
315glTexParameteriv
316glTexStorage2D
317glTexStorage2DMultisample
318glTexStorage3D
319glTexStorage3DMultisample
320glTexSubImage2D
321glTexSubImage3D
322glTransformFeedbackVaryings
323glUniform1f
324glUniform1fv
325glUniform1i
326glUniform1iv
327glUniform1ui
328glUniform1uiv
329glUniform2f
330glUniform2fv
331glUniform2i
332glUniform2iv
333glUniform2ui
334glUniform2uiv
335glUniform3f
336glUniform3fv
337glUniform3i
338glUniform3iv
339glUniform3ui
340glUniform3uiv
341glUniform4f
342glUniform4fv
343glUniform4i
344glUniform4iv
345glUniform4ui
346glUniform4uiv
347glUniformBlockBinding
348glUniformMatrix2fv
349glUniformMatrix2x3fv
350glUniformMatrix2x4fv
351glUniformMatrix3fv
352glUniformMatrix3x2fv
353glUniformMatrix3x4fv
354glUniformMatrix4fv
355glUniformMatrix4x2fv
356glUniformMatrix4x3fv
357glUnmapBuffer
358glUseProgram
359glUseProgramStages
360glValidateProgram
361glValidateProgramPipeline
362glVertexAttrib1f
363glVertexAttrib1fv
364glVertexAttrib2f
365glVertexAttrib2fv
366glVertexAttrib3f
367glVertexAttrib3fv
368glVertexAttrib4f
369glVertexAttrib4fv
370glVertexAttribBinding
371glVertexAttribDivisor
372glVertexAttribFormat
373glVertexAttribI4i
374glVertexAttribI4iv
375glVertexAttribI4ui
376glVertexAttribI4uiv
377glVertexAttribIFormat
378glVertexAttribIPointer
379glVertexAttribPointer
380glVertexBindingDivisor
381glViewport
382glWaitSync
383EOF
384done)
385
386test ! -n "$FUNCS" || echo $FUNCS
387test ! -n "$FUNCS"
388