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