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