egl: Expose direct function pointers on INTEGRITY
Change-Id: I4f7df9abcd580297a40fd9dd16a26f5f93e1c4c7 Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
This commit is contained in:
parent
44d5fb33be
commit
52094e2520
@ -83,17 +83,16 @@ typedef void* GLeglImageOES;
|
||||
|
||||
# else // "uncontrolled" ES2 platforms
|
||||
|
||||
// In "es2" builds (QT_OPENGL_ES_2) additional defines indicate if ES
|
||||
// 3.0 or higher is available. In this case include the corresponding
|
||||
// header. These are backwards compatible and it should be safe to
|
||||
// include headers on top of each other, meaning that applications can
|
||||
// include gl2.h even if gl31.h gets included here.
|
||||
// In "es2" builds (QT_OPENGL_ES_2) additional defines indicate GLES 3.0 or
|
||||
// higher is available *at build time*. In this case include the corresponding
|
||||
// header. These are backwards compatible and it should be safe to include
|
||||
// headers on top of each other, meaning that applications can include gl2.h
|
||||
// even if gl31.h gets included here.
|
||||
|
||||
// NB! This file contains the only usages of the ES_3 and ES_3_1
|
||||
// macros. They are useless for pretty much anything else. The fact
|
||||
// that Qt was built against an SDK with f.ex. ES 2 only does not mean
|
||||
// applications cannot target ES 3. Therefore QOpenGLFunctions and
|
||||
// friends do everything dynamically and never rely on these macros.
|
||||
// NB! The fact that Qt was built against an SDK with GLES 2 only does not mean
|
||||
// applications cannot be deployed on a GLES 3 system. Therefore
|
||||
// QOpenGLFunctions and friends must do everything dynamically and must not rely
|
||||
// on these macros, except in special cases for controlled build/run environments.
|
||||
|
||||
// Some Khronos headers use the ext proto guard in the standard headers as well,
|
||||
// which is bad. Work it around, but avoid spilling over to the ext header.
|
||||
|
@ -457,7 +457,352 @@ QFunctionPointer QEGLPlatformContext::getProcAddress(const char *procName)
|
||||
#if !defined(Q_OS_WIN) && !defined(Q_OS_INTEGRITY)
|
||||
if (!proc)
|
||||
proc = (QFunctionPointer) dlsym(RTLD_DEFAULT, procName);
|
||||
#elif !defined(QT_OPENGL_DYNAMIC)
|
||||
// On systems without KHR_get_all_proc_addresses and without
|
||||
// dynamic linking there still has to be a way to access the
|
||||
// standard GLES functions. QOpenGL(Extra)Functions never makes
|
||||
// direct GL API calls since Qt 5.7, so all such workarounds are
|
||||
// expected to be handled in the platform plugin.
|
||||
if (!proc) {
|
||||
static struct StdFunc {
|
||||
const char *name;
|
||||
QFunctionPointer func;
|
||||
} standardFuncs[] = {
|
||||
#ifdef QT_OPENGL_ES_2
|
||||
{ "glBindTexture", (QFunctionPointer) ::glBindTexture },
|
||||
{ "glBlendFunc", (QFunctionPointer) ::glBlendFunc },
|
||||
{ "glClear", (QFunctionPointer) ::glClear },
|
||||
{ "glClearColor", (QFunctionPointer) ::glClearColor },
|
||||
{ "glClearStencil", (QFunctionPointer) ::glClearStencil },
|
||||
{ "glColorMask", (QFunctionPointer) ::glColorMask },
|
||||
{ "glCopyTexImage2D", (QFunctionPointer) ::glCopyTexImage2D },
|
||||
{ "glCopyTexSubImage2D", (QFunctionPointer) ::glCopyTexSubImage2D },
|
||||
{ "glCullFace", (QFunctionPointer) ::glCullFace },
|
||||
{ "glDeleteTextures", (QFunctionPointer) ::glDeleteTextures },
|
||||
{ "glDepthFunc", (QFunctionPointer) ::glDepthFunc },
|
||||
{ "glDepthMask", (QFunctionPointer) ::glDepthMask },
|
||||
{ "glDisable", (QFunctionPointer) ::glDisable },
|
||||
{ "glDrawArrays", (QFunctionPointer) ::glDrawArrays },
|
||||
{ "glDrawElements", (QFunctionPointer) ::glDrawElements },
|
||||
{ "glEnable", (QFunctionPointer) ::glEnable },
|
||||
{ "glFinish", (QFunctionPointer) ::glFinish },
|
||||
{ "glFlush", (QFunctionPointer) ::glFlush },
|
||||
{ "glFrontFace", (QFunctionPointer) ::glFrontFace },
|
||||
{ "glGenTextures", (QFunctionPointer) ::glGenTextures },
|
||||
{ "glGetBooleanv", (QFunctionPointer) ::glGetBooleanv },
|
||||
{ "glGetError", (QFunctionPointer) ::glGetError },
|
||||
{ "glGetFloatv", (QFunctionPointer) ::glGetFloatv },
|
||||
{ "glGetIntegerv", (QFunctionPointer) ::glGetIntegerv },
|
||||
{ "glGetString", (QFunctionPointer) ::glGetString },
|
||||
{ "glGetTexParameterfv", (QFunctionPointer) ::glGetTexParameterfv },
|
||||
{ "glGetTexParameteriv", (QFunctionPointer) ::glGetTexParameteriv },
|
||||
{ "glHint", (QFunctionPointer) ::glHint },
|
||||
{ "glIsEnabled", (QFunctionPointer) ::glIsEnabled },
|
||||
{ "glIsTexture", (QFunctionPointer) ::glIsTexture },
|
||||
{ "glLineWidth", (QFunctionPointer) ::glLineWidth },
|
||||
{ "glPixelStorei", (QFunctionPointer) ::glPixelStorei },
|
||||
{ "glPolygonOffset", (QFunctionPointer) ::glPolygonOffset },
|
||||
{ "glReadPixels", (QFunctionPointer) ::glReadPixels },
|
||||
{ "glScissor", (QFunctionPointer) ::glScissor },
|
||||
{ "glStencilFunc", (QFunctionPointer) ::glStencilFunc },
|
||||
{ "glStencilMask", (QFunctionPointer) ::glStencilMask },
|
||||
{ "glStencilOp", (QFunctionPointer) ::glStencilOp },
|
||||
{ "glTexImage2D", (QFunctionPointer) ::glTexImage2D },
|
||||
{ "glTexParameterf", (QFunctionPointer) ::glTexParameterf },
|
||||
{ "glTexParameterfv", (QFunctionPointer) ::glTexParameterfv },
|
||||
{ "glTexParameteri", (QFunctionPointer) ::glTexParameteri },
|
||||
{ "glTexParameteriv", (QFunctionPointer) ::glTexParameteriv },
|
||||
{ "glTexSubImage2D", (QFunctionPointer) ::glTexSubImage2D },
|
||||
{ "glViewport", (QFunctionPointer) ::glViewport },
|
||||
|
||||
{ "glActiveTexture", (QFunctionPointer) ::glActiveTexture },
|
||||
{ "glAttachShader", (QFunctionPointer) ::glAttachShader },
|
||||
{ "glBindAttribLocation", (QFunctionPointer) ::glBindAttribLocation },
|
||||
{ "glBindBuffer", (QFunctionPointer) ::glBindBuffer },
|
||||
{ "glBindFramebuffer", (QFunctionPointer) ::glBindFramebuffer },
|
||||
{ "glBindRenderbuffer", (QFunctionPointer) ::glBindRenderbuffer },
|
||||
{ "glBlendColor", (QFunctionPointer) ::glBlendColor },
|
||||
{ "glBlendEquation", (QFunctionPointer) ::glBlendEquation },
|
||||
{ "glBlendEquationSeparate", (QFunctionPointer) ::glBlendEquationSeparate },
|
||||
{ "glBlendFuncSeparate", (QFunctionPointer) ::glBlendFuncSeparate },
|
||||
{ "glBufferData", (QFunctionPointer) ::glBufferData },
|
||||
{ "glBufferSubData", (QFunctionPointer) ::glBufferSubData },
|
||||
{ "glCheckFramebufferStatus", (QFunctionPointer) ::glCheckFramebufferStatus },
|
||||
{ "glCompileShader", (QFunctionPointer) ::glCompileShader },
|
||||
{ "glCompressedTexImage2D", (QFunctionPointer) ::glCompressedTexImage2D },
|
||||
{ "glCompressedTexSubImage2D", (QFunctionPointer) ::glCompressedTexSubImage2D },
|
||||
{ "glCreateProgram", (QFunctionPointer) ::glCreateProgram },
|
||||
{ "glCreateShader", (QFunctionPointer) ::glCreateShader },
|
||||
{ "glDeleteBuffers", (QFunctionPointer) ::glDeleteBuffers },
|
||||
{ "glDeleteFramebuffers", (QFunctionPointer) ::glDeleteFramebuffers },
|
||||
{ "glDeleteProgram", (QFunctionPointer) ::glDeleteProgram },
|
||||
{ "glDeleteRenderbuffers", (QFunctionPointer) ::glDeleteRenderbuffers },
|
||||
{ "glDeleteShader", (QFunctionPointer) ::glDeleteShader },
|
||||
{ "glDetachShader", (QFunctionPointer) ::glDetachShader },
|
||||
{ "glDisableVertexAttribArray", (QFunctionPointer) ::glDisableVertexAttribArray },
|
||||
{ "glEnableVertexAttribArray", (QFunctionPointer) ::glEnableVertexAttribArray },
|
||||
{ "glFramebufferRenderbuffer", (QFunctionPointer) ::glFramebufferRenderbuffer },
|
||||
{ "glFramebufferTexture2D", (QFunctionPointer) ::glFramebufferTexture2D },
|
||||
{ "glGenBuffers", (QFunctionPointer) ::glGenBuffers },
|
||||
{ "glGenerateMipmap", (QFunctionPointer) ::glGenerateMipmap },
|
||||
{ "glGenFramebuffers", (QFunctionPointer) ::glGenFramebuffers },
|
||||
{ "glGenRenderbuffers", (QFunctionPointer) ::glGenRenderbuffers },
|
||||
{ "glGetActiveAttrib", (QFunctionPointer) ::glGetActiveAttrib },
|
||||
{ "glGetActiveUniform", (QFunctionPointer) ::glGetActiveUniform },
|
||||
{ "glGetAttachedShaders", (QFunctionPointer) ::glGetAttachedShaders },
|
||||
{ "glGetAttribLocation", (QFunctionPointer) ::glGetAttribLocation },
|
||||
{ "glGetBufferParameteriv", (QFunctionPointer) ::glGetBufferParameteriv },
|
||||
{ "glGetFramebufferAttachmentParameteriv", (QFunctionPointer) ::glGetFramebufferAttachmentParameteriv },
|
||||
{ "glGetProgramiv", (QFunctionPointer) ::glGetProgramiv },
|
||||
{ "glGetProgramInfoLog", (QFunctionPointer) ::glGetProgramInfoLog },
|
||||
{ "glGetRenderbufferParameteriv", (QFunctionPointer) ::glGetRenderbufferParameteriv },
|
||||
{ "glGetShaderiv", (QFunctionPointer) ::glGetShaderiv },
|
||||
{ "glGetShaderInfoLog", (QFunctionPointer) ::glGetShaderInfoLog },
|
||||
{ "glGetShaderPrecisionFormat", (QFunctionPointer) ::glGetShaderPrecisionFormat },
|
||||
{ "glGetShaderSource", (QFunctionPointer) ::glGetShaderSource },
|
||||
{ "glGetUniformfv", (QFunctionPointer) ::glGetUniformfv },
|
||||
{ "glGetUniformiv", (QFunctionPointer) ::glGetUniformiv },
|
||||
{ "glGetUniformLocation", (QFunctionPointer) ::glGetUniformLocation },
|
||||
{ "glGetVertexAttribfv", (QFunctionPointer) ::glGetVertexAttribfv },
|
||||
{ "glGetVertexAttribiv", (QFunctionPointer) ::glGetVertexAttribiv },
|
||||
{ "glGetVertexAttribPointerv", (QFunctionPointer) ::glGetVertexAttribPointerv },
|
||||
{ "glIsBuffer", (QFunctionPointer) ::glIsBuffer },
|
||||
{ "glIsFramebuffer", (QFunctionPointer) ::glIsFramebuffer },
|
||||
{ "glIsProgram", (QFunctionPointer) ::glIsProgram },
|
||||
{ "glIsRenderbuffer", (QFunctionPointer) ::glIsRenderbuffer },
|
||||
{ "glIsShader", (QFunctionPointer) ::glIsShader },
|
||||
{ "glLinkProgram", (QFunctionPointer) ::glLinkProgram },
|
||||
{ "glReleaseShaderCompiler", (QFunctionPointer) ::glReleaseShaderCompiler },
|
||||
{ "glRenderbufferStorage", (QFunctionPointer) ::glRenderbufferStorage },
|
||||
{ "glSampleCoverage", (QFunctionPointer) ::glSampleCoverage },
|
||||
{ "glShaderBinary", (QFunctionPointer) ::glShaderBinary },
|
||||
{ "glShaderSource", (QFunctionPointer) ::glShaderSource },
|
||||
{ "glStencilFuncSeparate", (QFunctionPointer) ::glStencilFuncSeparate },
|
||||
{ "glStencilMaskSeparate", (QFunctionPointer) ::glStencilMaskSeparate },
|
||||
{ "glStencilOpSeparate", (QFunctionPointer) ::glStencilOpSeparate },
|
||||
{ "glUniform1f", (QFunctionPointer) ::glUniform1f },
|
||||
{ "glUniform1fv", (QFunctionPointer) ::glUniform1fv },
|
||||
{ "glUniform1i", (QFunctionPointer) ::glUniform1i },
|
||||
{ "glUniform1iv", (QFunctionPointer) ::glUniform1iv },
|
||||
{ "glUniform2f", (QFunctionPointer) ::glUniform2f },
|
||||
{ "glUniform2fv", (QFunctionPointer) ::glUniform2fv },
|
||||
{ "glUniform2i", (QFunctionPointer) ::glUniform2i },
|
||||
{ "glUniform2iv", (QFunctionPointer) ::glUniform2iv },
|
||||
{ "glUniform3f", (QFunctionPointer) ::glUniform3f },
|
||||
{ "glUniform3fv", (QFunctionPointer) ::glUniform3fv },
|
||||
{ "glUniform3i", (QFunctionPointer) ::glUniform3i },
|
||||
{ "glUniform3iv", (QFunctionPointer) ::glUniform3iv },
|
||||
{ "glUniform4f", (QFunctionPointer) ::glUniform4f },
|
||||
{ "glUniform4fv", (QFunctionPointer) ::glUniform4fv },
|
||||
{ "glUniform4i", (QFunctionPointer) ::glUniform4i },
|
||||
{ "glUniform4iv", (QFunctionPointer) ::glUniform4iv },
|
||||
{ "glUniformMatrix2fv", (QFunctionPointer) ::glUniformMatrix2fv },
|
||||
{ "glUniformMatrix3fv", (QFunctionPointer) ::glUniformMatrix3fv },
|
||||
{ "glUniformMatrix4fv", (QFunctionPointer) ::glUniformMatrix4fv },
|
||||
{ "glUseProgram", (QFunctionPointer) ::glUseProgram },
|
||||
{ "glValidateProgram", (QFunctionPointer) ::glValidateProgram },
|
||||
{ "glVertexAttrib1f", (QFunctionPointer) ::glVertexAttrib1f },
|
||||
{ "glVertexAttrib1fv", (QFunctionPointer) ::glVertexAttrib1fv },
|
||||
{ "glVertexAttrib2f", (QFunctionPointer) ::glVertexAttrib2f },
|
||||
{ "glVertexAttrib2fv", (QFunctionPointer) ::glVertexAttrib2fv },
|
||||
{ "glVertexAttrib3f", (QFunctionPointer) ::glVertexAttrib3f },
|
||||
{ "glVertexAttrib3fv", (QFunctionPointer) ::glVertexAttrib3fv },
|
||||
{ "glVertexAttrib4f", (QFunctionPointer) ::glVertexAttrib4f },
|
||||
{ "glVertexAttrib4fv", (QFunctionPointer) ::glVertexAttrib4fv },
|
||||
{ "glVertexAttribPointer", (QFunctionPointer) ::glVertexAttribPointer },
|
||||
|
||||
{ "glClearDepthf", (QFunctionPointer) ::glClearDepthf },
|
||||
{ "glDepthRangef", (QFunctionPointer) ::glDepthRangef },
|
||||
#endif // QT_OPENGL_ES_2
|
||||
|
||||
#ifdef QT_OPENGL_ES_3
|
||||
{ "glBeginQuery", (QFunctionPointer) ::glBeginQuery },
|
||||
{ "glBeginTransformFeedback", (QFunctionPointer) ::glBeginTransformFeedback },
|
||||
{ "glBindBufferBase", (QFunctionPointer) ::glBindBufferBase },
|
||||
{ "glBindBufferRange", (QFunctionPointer) ::glBindBufferRange },
|
||||
{ "glBindSampler", (QFunctionPointer) ::glBindSampler },
|
||||
{ "glBindTransformFeedback", (QFunctionPointer) ::glBindTransformFeedback },
|
||||
{ "glBindVertexArray", (QFunctionPointer) ::glBindVertexArray },
|
||||
{ "glBlitFramebuffer", (QFunctionPointer) ::glBlitFramebuffer },
|
||||
{ "glClearBufferfi", (QFunctionPointer) ::glClearBufferfi },
|
||||
{ "glClearBufferfv", (QFunctionPointer) ::glClearBufferfv },
|
||||
{ "glClearBufferiv", (QFunctionPointer) ::glClearBufferiv },
|
||||
{ "glClearBufferuiv", (QFunctionPointer) ::glClearBufferuiv },
|
||||
{ "glClientWaitSync", (QFunctionPointer) ::glClientWaitSync },
|
||||
{ "glCompressedTexImage3D", (QFunctionPointer) ::glCompressedTexImage3D },
|
||||
{ "glCompressedTexSubImage3D", (QFunctionPointer) ::glCompressedTexSubImage3D },
|
||||
{ "glCopyBufferSubData", (QFunctionPointer) ::glCopyBufferSubData },
|
||||
{ "glCopyTexSubImage3D", (QFunctionPointer) ::glCopyTexSubImage3D },
|
||||
{ "glDeleteQueries", (QFunctionPointer) ::glDeleteQueries },
|
||||
{ "glDeleteSamplers", (QFunctionPointer) ::glDeleteSamplers },
|
||||
{ "glDeleteSync", (QFunctionPointer) ::glDeleteSync },
|
||||
{ "glDeleteTransformFeedbacks", (QFunctionPointer) ::glDeleteTransformFeedbacks },
|
||||
{ "glDeleteVertexArrays", (QFunctionPointer) ::glDeleteVertexArrays },
|
||||
{ "glDrawArraysInstanced", (QFunctionPointer) ::glDrawArraysInstanced },
|
||||
{ "glDrawBuffers", (QFunctionPointer) ::glDrawBuffers },
|
||||
{ "glDrawElementsInstanced", (QFunctionPointer) ::glDrawElementsInstanced },
|
||||
{ "glDrawRangeElements", (QFunctionPointer) ::glDrawRangeElements },
|
||||
{ "glEndQuery", (QFunctionPointer) ::glEndQuery },
|
||||
{ "glEndTransformFeedback", (QFunctionPointer) ::glEndTransformFeedback },
|
||||
{ "glFenceSync", (QFunctionPointer) ::glFenceSync },
|
||||
{ "glFlushMappedBufferRange", (QFunctionPointer) ::glFlushMappedBufferRange },
|
||||
{ "glFramebufferTextureLayer", (QFunctionPointer) ::glFramebufferTextureLayer },
|
||||
{ "glGenQueries", (QFunctionPointer) ::glGenQueries },
|
||||
{ "glGenSamplers", (QFunctionPointer) ::glGenSamplers },
|
||||
{ "glGenTransformFeedbacks", (QFunctionPointer) ::glGenTransformFeedbacks },
|
||||
{ "glGenVertexArrays", (QFunctionPointer) ::glGenVertexArrays },
|
||||
{ "glGetActiveUniformBlockName", (QFunctionPointer) ::glGetActiveUniformBlockName },
|
||||
{ "glGetActiveUniformBlockiv", (QFunctionPointer) ::glGetActiveUniformBlockiv },
|
||||
{ "glGetActiveUniformsiv", (QFunctionPointer) ::glGetActiveUniformsiv },
|
||||
{ "glGetBufferParameteri64v", (QFunctionPointer) ::glGetBufferParameteri64v },
|
||||
{ "glGetBufferPointerv", (QFunctionPointer) ::glGetBufferPointerv },
|
||||
{ "glGetFragDataLocation", (QFunctionPointer) ::glGetFragDataLocation },
|
||||
{ "glGetInteger64i_v", (QFunctionPointer) ::glGetInteger64i_v },
|
||||
{ "glGetInteger64v", (QFunctionPointer) ::glGetInteger64v },
|
||||
{ "glGetIntegeri_v", (QFunctionPointer) ::glGetIntegeri_v },
|
||||
{ "glGetInternalformativ", (QFunctionPointer) ::glGetInternalformativ },
|
||||
{ "glGetProgramBinary", (QFunctionPointer) ::glGetProgramBinary },
|
||||
{ "glGetQueryObjectuiv", (QFunctionPointer) ::glGetQueryObjectuiv },
|
||||
{ "glGetQueryiv", (QFunctionPointer) ::glGetQueryiv },
|
||||
{ "glGetSamplerParameterfv", (QFunctionPointer) ::glGetSamplerParameterfv },
|
||||
{ "glGetSamplerParameteriv", (QFunctionPointer) ::glGetSamplerParameteriv },
|
||||
{ "glGetStringi", (QFunctionPointer) ::glGetStringi },
|
||||
{ "glGetSynciv", (QFunctionPointer) ::glGetSynciv },
|
||||
{ "glGetTransformFeedbackVarying", (QFunctionPointer) ::glGetTransformFeedbackVarying },
|
||||
{ "glGetUniformBlockIndex", (QFunctionPointer) ::glGetUniformBlockIndex },
|
||||
{ "glGetUniformIndices", (QFunctionPointer) ::glGetUniformIndices },
|
||||
{ "glGetUniformuiv", (QFunctionPointer) ::glGetUniformuiv },
|
||||
{ "glGetVertexAttribIiv", (QFunctionPointer) ::glGetVertexAttribIiv },
|
||||
{ "glGetVertexAttribIuiv", (QFunctionPointer) ::glGetVertexAttribIuiv },
|
||||
{ "glInvalidateFramebuffer", (QFunctionPointer) ::glInvalidateFramebuffer },
|
||||
{ "glInvalidateSubFramebuffer", (QFunctionPointer) ::glInvalidateSubFramebuffer },
|
||||
{ "glIsQuery", (QFunctionPointer) ::glIsQuery },
|
||||
{ "glIsSampler", (QFunctionPointer) ::glIsSampler },
|
||||
{ "glIsSync", (QFunctionPointer) ::glIsSync },
|
||||
{ "glIsTransformFeedback", (QFunctionPointer) ::glIsTransformFeedback },
|
||||
{ "glIsVertexArray", (QFunctionPointer) ::glIsVertexArray },
|
||||
{ "glMapBufferRange", (QFunctionPointer) ::glMapBufferRange },
|
||||
{ "glPauseTransformFeedback", (QFunctionPointer) ::glPauseTransformFeedback },
|
||||
{ "glProgramBinary", (QFunctionPointer) ::glProgramBinary },
|
||||
{ "glProgramParameteri", (QFunctionPointer) ::glProgramParameteri },
|
||||
{ "glReadBuffer", (QFunctionPointer) ::glReadBuffer },
|
||||
{ "glRenderbufferStorageMultisample", (QFunctionPointer) ::glRenderbufferStorageMultisample },
|
||||
{ "glResumeTransformFeedback", (QFunctionPointer) ::glResumeTransformFeedback },
|
||||
{ "glSamplerParameterf", (QFunctionPointer) ::glSamplerParameterf },
|
||||
{ "glSamplerParameterfv", (QFunctionPointer) ::glSamplerParameterfv },
|
||||
{ "glSamplerParameteri", (QFunctionPointer) ::glSamplerParameteri },
|
||||
{ "glSamplerParameteriv", (QFunctionPointer) ::glSamplerParameteriv },
|
||||
{ "glTexImage3D", (QFunctionPointer) ::glTexImage3D },
|
||||
{ "glTexStorage2D", (QFunctionPointer) ::glTexStorage2D },
|
||||
{ "glTexStorage3D", (QFunctionPointer) ::glTexStorage3D },
|
||||
{ "glTexSubImage3D", (QFunctionPointer) ::glTexSubImage3D },
|
||||
{ "glTransformFeedbackVaryings", (QFunctionPointer) ::glTransformFeedbackVaryings },
|
||||
{ "glUniform1ui", (QFunctionPointer) ::glUniform1ui },
|
||||
{ "glUniform1uiv", (QFunctionPointer) ::glUniform1uiv },
|
||||
{ "glUniform2ui", (QFunctionPointer) ::glUniform2ui },
|
||||
{ "glUniform2uiv", (QFunctionPointer) ::glUniform2uiv },
|
||||
{ "glUniform3ui", (QFunctionPointer) ::glUniform3ui },
|
||||
{ "glUniform3uiv", (QFunctionPointer) ::glUniform3uiv },
|
||||
{ "glUniform4ui", (QFunctionPointer) ::glUniform4ui },
|
||||
{ "glUniform4uiv", (QFunctionPointer) ::glUniform4uiv },
|
||||
{ "glUniformBlockBinding", (QFunctionPointer) ::glUniformBlockBinding },
|
||||
{ "glUniformMatrix2x3fv", (QFunctionPointer) ::glUniformMatrix2x3fv },
|
||||
{ "glUniformMatrix2x4fv", (QFunctionPointer) ::glUniformMatrix2x4fv },
|
||||
{ "glUniformMatrix3x2fv", (QFunctionPointer) ::glUniformMatrix3x2fv },
|
||||
{ "glUniformMatrix3x4fv", (QFunctionPointer) ::glUniformMatrix3x4fv },
|
||||
{ "glUniformMatrix4x2fv", (QFunctionPointer) ::glUniformMatrix4x2fv },
|
||||
{ "glUniformMatrix4x3fv", (QFunctionPointer) ::glUniformMatrix4x3fv },
|
||||
{ "glUnmapBuffer", (QFunctionPointer) ::glUnmapBuffer },
|
||||
{ "glVertexAttribDivisor", (QFunctionPointer) ::glVertexAttribDivisor },
|
||||
{ "glVertexAttribI4i", (QFunctionPointer) ::glVertexAttribI4i },
|
||||
{ "glVertexAttribI4iv", (QFunctionPointer) ::glVertexAttribI4iv },
|
||||
{ "glVertexAttribI4ui", (QFunctionPointer) ::glVertexAttribI4ui },
|
||||
{ "glVertexAttribI4uiv", (QFunctionPointer) ::glVertexAttribI4uiv },
|
||||
{ "glVertexAttribIPointer", (QFunctionPointer) ::glVertexAttribIPointer },
|
||||
{ "glWaitSync", (QFunctionPointer) ::glWaitSync },
|
||||
#endif // QT_OPENGL_ES_3
|
||||
|
||||
#ifdef QT_OPENGL_ES_3_1
|
||||
{ "glActiveShaderProgram", (QFunctionPointer) ::glActiveShaderProgram },
|
||||
{ "glBindImageTexture", (QFunctionPointer) ::glBindImageTexture },
|
||||
{ "glBindProgramPipeline", (QFunctionPointer) ::glBindProgramPipeline },
|
||||
{ "glBindVertexBuffer", (QFunctionPointer) ::glBindVertexBuffer },
|
||||
{ "glCreateShaderProgramv", (QFunctionPointer) ::glCreateShaderProgramv },
|
||||
{ "glDeleteProgramPipelines", (QFunctionPointer) ::glDeleteProgramPipelines },
|
||||
{ "glDispatchCompute", (QFunctionPointer) ::glDispatchCompute },
|
||||
{ "glDispatchComputeIndirect", (QFunctionPointer) ::glDispatchComputeIndirect },
|
||||
{ "glDrawArraysIndirect", (QFunctionPointer) ::glDrawArraysIndirect },
|
||||
{ "glDrawElementsIndirect", (QFunctionPointer) ::glDrawElementsIndirect },
|
||||
{ "glFramebufferParameteri", (QFunctionPointer) ::glFramebufferParameteri },
|
||||
{ "glGenProgramPipelines", (QFunctionPointer) ::glGenProgramPipelines },
|
||||
{ "glGetBooleani_v", (QFunctionPointer) ::glGetBooleani_v },
|
||||
{ "glGetFramebufferParameteriv", (QFunctionPointer) ::glGetFramebufferParameteriv },
|
||||
{ "glGetMultisamplefv", (QFunctionPointer) ::glGetMultisamplefv },
|
||||
{ "glGetProgramInterfaceiv", (QFunctionPointer) ::glGetProgramInterfaceiv },
|
||||
{ "glGetProgramPipelineInfoLog", (QFunctionPointer) ::glGetProgramPipelineInfoLog },
|
||||
{ "glGetProgramPipelineiv", (QFunctionPointer) ::glGetProgramPipelineiv },
|
||||
{ "glGetProgramResourceIndex", (QFunctionPointer) ::glGetProgramResourceIndex },
|
||||
{ "glGetProgramResourceLocation", (QFunctionPointer) ::glGetProgramResourceLocation },
|
||||
{ "glGetProgramResourceName", (QFunctionPointer) ::glGetProgramResourceName },
|
||||
{ "glGetProgramResourceiv", (QFunctionPointer) ::glGetProgramResourceiv },
|
||||
{ "glGetTexLevelParameterfv", (QFunctionPointer) ::glGetTexLevelParameterfv },
|
||||
{ "glGetTexLevelParameteriv", (QFunctionPointer) ::glGetTexLevelParameteriv },
|
||||
{ "glIsProgramPipeline", (QFunctionPointer) ::glIsProgramPipeline },
|
||||
{ "glMemoryBarrier", (QFunctionPointer) ::glMemoryBarrier },
|
||||
{ "glMemoryBarrierByRegion", (QFunctionPointer) ::glMemoryBarrierByRegion },
|
||||
{ "glProgramUniform1f", (QFunctionPointer) ::glProgramUniform1f },
|
||||
{ "glProgramUniform1fv", (QFunctionPointer) ::glProgramUniform1fv },
|
||||
{ "glProgramUniform1i", (QFunctionPointer) ::glProgramUniform1i },
|
||||
{ "glProgramUniform1iv", (QFunctionPointer) ::glProgramUniform1iv },
|
||||
{ "glProgramUniform1ui", (QFunctionPointer) ::glProgramUniform1ui },
|
||||
{ "glProgramUniform1uiv", (QFunctionPointer) ::glProgramUniform1uiv },
|
||||
{ "glProgramUniform2f", (QFunctionPointer) ::glProgramUniform2f },
|
||||
{ "glProgramUniform2fv", (QFunctionPointer) ::glProgramUniform2fv },
|
||||
{ "glProgramUniform2i", (QFunctionPointer) ::glProgramUniform2i },
|
||||
{ "glProgramUniform2iv", (QFunctionPointer) ::glProgramUniform2iv },
|
||||
{ "glProgramUniform2ui", (QFunctionPointer) ::glProgramUniform2ui },
|
||||
{ "glProgramUniform2uiv", (QFunctionPointer) ::glProgramUniform2uiv },
|
||||
{ "glProgramUniform3f", (QFunctionPointer) ::glProgramUniform3f },
|
||||
{ "glProgramUniform3fv", (QFunctionPointer) ::glProgramUniform3fv },
|
||||
{ "glProgramUniform3i", (QFunctionPointer) ::glProgramUniform3i },
|
||||
{ "glProgramUniform3iv", (QFunctionPointer) ::glProgramUniform3iv },
|
||||
{ "glProgramUniform3ui", (QFunctionPointer) ::glProgramUniform3ui },
|
||||
{ "glProgramUniform3uiv", (QFunctionPointer) ::glProgramUniform3uiv },
|
||||
{ "glProgramUniform4f", (QFunctionPointer) ::glProgramUniform4f },
|
||||
{ "glProgramUniform4fv", (QFunctionPointer) ::glProgramUniform4fv },
|
||||
{ "glProgramUniform4i", (QFunctionPointer) ::glProgramUniform4i },
|
||||
{ "glProgramUniform4iv", (QFunctionPointer) ::glProgramUniform4iv },
|
||||
{ "glProgramUniform4ui", (QFunctionPointer) ::glProgramUniform4ui },
|
||||
{ "glProgramUniform4uiv", (QFunctionPointer) ::glProgramUniform4uiv },
|
||||
{ "glProgramUniformMatrix2fv", (QFunctionPointer) ::glProgramUniformMatrix2fv },
|
||||
{ "glProgramUniformMatrix2x3fv", (QFunctionPointer) ::glProgramUniformMatrix2x3fv },
|
||||
{ "glProgramUniformMatrix2x4fv", (QFunctionPointer) ::glProgramUniformMatrix2x4fv },
|
||||
{ "glProgramUniformMatrix3fv", (QFunctionPointer) ::glProgramUniformMatrix3fv },
|
||||
{ "glProgramUniformMatrix3x2fv", (QFunctionPointer) ::glProgramUniformMatrix3x2fv },
|
||||
{ "glProgramUniformMatrix3x4fv", (QFunctionPointer) ::glProgramUniformMatrix3x4fv },
|
||||
{ "glProgramUniformMatrix4fv", (QFunctionPointer) ::glProgramUniformMatrix4fv },
|
||||
{ "glProgramUniformMatrix4x2fv", (QFunctionPointer) ::glProgramUniformMatrix4x2fv },
|
||||
{ "glProgramUniformMatrix4x3fv", (QFunctionPointer) ::glProgramUniformMatrix4x3fv },
|
||||
{ "glSampleMaski", (QFunctionPointer) ::glSampleMaski },
|
||||
{ "glTexStorage2DMultisample", (QFunctionPointer) ::glTexStorage2DMultisample },
|
||||
{ "glUseProgramStages", (QFunctionPointer) ::glUseProgramStages },
|
||||
{ "glValidateProgramPipeline", (QFunctionPointer) ::glValidateProgramPipeline },
|
||||
{ "glVertexAttribBinding", (QFunctionPointer) ::glVertexAttribBinding },
|
||||
{ "glVertexAttribFormat", (QFunctionPointer) ::glVertexAttribFormat },
|
||||
{ "glVertexAttribIFormat", (QFunctionPointer) ::glVertexAttribIFormat },
|
||||
{ "glVertexBindingDivisor", (QFunctionPointer) ::glVertexBindingDivisor },
|
||||
#endif // QT_OPENGL_ES_3_1
|
||||
};
|
||||
|
||||
for (size_t i = 0; i < sizeof(standardFuncs) / sizeof(StdFunc); ++i) {
|
||||
if (!qstrcmp(procName, standardFuncs[i].name)) {
|
||||
proc = standardFuncs[i].func;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
return proc;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user