const GLubyte* name = glGetString(GL_VENDOR); //返回负责当前OpenGL实现厂商的名字
const GLubyte* biaoshifu = glGetString(GL_RENDERER); //返回一个渲染器标识符,通常是个硬件平台
const GLubyte* OpenGLVersion = glGetString(GL_VERSION); //返回当前OpenGL实现的版本号
//const GLubyte* gluVersion = gluGetString(GLU_VERSION); //返回当前GLU工具库版本
const GLubyte* glslVersion = glGetString(GL_SHADING_LANGUAGE_VERSION);
"ARM"
"Mali-G76"
"OpenGL ES 3.2 v1.r18p0-01rel0.eb0c31071d41ebd807505c2a08a74d99"
"OpenGL ES GLSL ES 3.20"
osg::GraphicsContext* gc = _viewer->getCamera()->getGraphicsContext();
unsigned int id = gc->getState()->getContextID();
const osg::GL2Extensions* GL2 = osg::GL2Extensions::Get( id, true );
this = {osg::GLExtensions * | 0x718c6b5c00} 0x000000718c6b5c00
osg::Referenced = {osg::Referenced}
contextID = {unsigned int} 0
glVersion = {float} 3.20000005
glslLanguageVersion = {float} 3.20000005
isGlslSupported = {bool} true
isShaderObjectsSupported = {bool} true
isVertexShaderSupported = {bool} true
isFragmentShaderSupported = {bool} true
isLanguage100Supported = {bool} true
isGeometryShader4Supported = {bool} true
areTessellationShadersSupported = {bool} true
isGpuShader4Supported = {bool} true
isUniformBufferObjectSupported = {bool} true
isGetProgramBinarySupported = {bool} false
isGpuShaderFp64Supported = {bool} false
isShaderAtomicCountersSupported = {bool} false
isRectangleSupported = {bool} false
isCubeMapSupported = {bool} true
isClipControlSupported = {bool} false
glDrawBuffers = {void (*)(GLsizei, const GLenum *) | 0x727dc6cec0} (libGLESv2.so`glDrawBuffers)
glAttachShader = {void (*)(GLuint, GLuint) | 0x727dc6c02c} (libGLESv2.so`glAttachShader)
glBindAttribLocation = {void (*)(GLuint, GLuint, const GLchar *) | 0x727dc6c044} (libGLESv2.so`glBindAttribLocation)
glCompileShader = {void (*)(GLuint) | 0x727dc6c1f8} (libGLESv2.so`glCompileShader)
glCreateProgram = {GLuint (*)() | 0x727dc6c270} (libGLESv2.so`glCreateProgram)
glCreateShader = {GLuint (*)(GLenum) | 0x727dc6c28c} (libGLESv2.so`glCreateShader)
glDeleteProgram = {void (*)(GLuint) | 0x727dc6c2f0} (libGLESv2.so`glDeleteProgram)
glDeleteObjectARB = {void (*)(GLuint) | 0x0} NULL
glDeleteShader = {void (*)(GLuint) | 0x727dc6c320} (libGLESv2.so`glDeleteShader)
glDetachShader = {void (*)(GLuint, GLuint) | 0x727dc6c398} (libGLESv2.so`glDetachShader)
glDisableVertexAttribArray = {void (*)(GLuint) | 0x727dc6c3c8} (libGLESv2.so`glDisableVertexAttribArray)
glEnableVertexAttribArray = {void (*)(GLuint) | 0x727dc6c428} (libGLESv2.so`glEnableVertexAttribArray)
glGetActiveAttrib = {void (*)(GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *) | 0x727dc6c530} (libGLESv2.so`glGetActiveAttrib)
glGetActiveUniform = {void (*)(GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *) | 0x727dc6c548} (libGLESv2.so`glGetActiveUniform)
glGetAttachedShaders = {void (*)(GLuint, GLsizei, GLsizei *, GLuint *) | 0x727dc6c560} (libGLESv2.so`glGetAttachedShaders)
glGetAttribLocation = {GLint (*)(GLuint, const GLchar *) | 0x727dc6c578} (libGLESv2.so`glGetAttribLocation)
glGetProgramiv = {void (*)(GLuint, GLenum, GLint *) | 0x727dc6c5e0} (libGLESv2.so`glGetProgramiv)
glGetObjectParameterivARB = {void (*)(GLuint, GLenum, GLint *) | 0x0} NULL
glGetProgramInfoLog = {void (*)(GLuint, GLsizei, GLsizei *, GLchar *) | 0x727dc6c5f8} (libGLESv2.so`glGetProgramInfoLog)
glGetInfoLogARB = {void (*)(GLuint, GLsizei, GLsizei *, GLchar *) | 0x0} NULL
glGetShaderiv = {void (*)(GLuint, GLenum, GLint *) | 0x727dc6c628} (libGLESv2.so`glGetShaderiv)
glGetShaderInfoLog = {void (*)(GLuint, GLsizei, GLsizei *, GLchar *) | 0x727dc6c640} (libGLESv2.so`glGetShaderInfoLog)
glGetShaderSource = {void (*)(GLuint, GLsizei, GLsizei *, GLchar *) | 0x727dc6c670} (libGLESv2.so`glGetShaderSource)
glGetUniformLocation = {GLint (*)(GLuint, const GLchar *) | 0x727dc6c6e8} (libGLESv2.so`glGetUniformLocation)
glGetUniformfv = {void (*)(GLuint, GLint, GLfloat *) | 0x727dc6c6b8} (libGLESv2.so`glGetUniformfv)
glGetUniformiv = {void (*)(GLuint, GLint, GLint *) | 0x727dc6c6d0} (libGLESv2.so`glGetUniformiv)
glGetVertexAttribdv = {void (*)(GLuint, GLenum, GLdouble *) | 0x0} NULL
glGetVertexAttribfv = {void (*)(GLuint, GLenum, GLfloat *) | 0x727dc6c704} (libGLESv2.so`glGetVertexAttribfv)
glGetVertexAttribiv = {void (*)(GLuint, GLenum, GLint *) | 0x727dc6c71c} (libGLESv2.so`glGetVertexAttribiv)
glGetVertexAttribPointerv = {void (*)(GLuint, GLenum, GLvoid **) | 0x727dc6c734} (libGLESv2.so`glGetVertexAttribPointerv)
glIsProgram = {GLboolean (*)(GLuint) | 0x727dc6c7b8} (libGLESv2.so`glIsProgram)
glIsShader = {GLboolean (*)(GLuint) | 0x727dc6c7f0} (libGLESv2.so`glIsShader)
glLinkProgram = {void (*)(GLuint) | 0x727dc6c840} (libGLESv2.so`glLinkProgram)
glShaderSource = {void (*)(GLuint, GLsizei, const GLchar **, const GLint *) | 0x727dc6c918} (libGLESv2.so`glShaderSource)
glUseProgram = {void (*)(GLuint) | 0x727dc6cc18} (libGLESv2.so`glUseProgram)
glUniform1f = {void (*)(GLint, GLfloat) | 0x727dc6ca50} (libGLESv2.so`glUniform1f)
glUniform2f = {void (*)(GLint, GLfloat, GLfloat) | 0x727dc6cab0} (libGLESv2.so`glUniform2f)
glUniform3f = {void (*)(GLint, GLfloat, GLfloat, GLfloat) | 0x727dc6cb10} (libGLESv2.so`glUniform3f)
glUniform4f = {void (*)(GLint, GLfloat, GLfloat, GLfloat, GLfloat) | 0x727dc6cb70} (libGLESv2.so`glUniform4f)
glUniform1i = {void (*)(GLint, GLint) | 0x727dc6ca80} (libGLESv2.so`glUniform1i)
glUniform2i = {void (*)(GLint, GLint, GLint) | 0x727dc6cae0} (libGLESv2.so`glUniform2i)
glUniform3i = {void (*)(GLint, GLint, GLint, GLint) | 0x727dc6cb40} (libGLESv2.so`glUniform3i)
glUniform4i = {void (*)(GLint, GLint, GLint, GLint, GLint) | 0x727dc6cba0} (libGLESv2.so`glUniform4i)
glUniform1fv = {void (*)(GLint, GLsizei, const GLfloat *) | 0x727dc6ca68} (libGLESv2.so`glUniform1fv)
glUniform2fv = {void (*)(GLint, GLsizei, const GLfloat *) | 0x727dc6cac8} (libGLESv2.so`glUniform2fv)
glUniform3fv = {void (*)(GLint, GLsizei, const GLfloat *) | 0x727dc6cb28} (libGLESv2.so`glUniform3fv)
glUniform4fv = {void (*)(GLint, GLsizei, const GLfloat *) | 0x727dc6cb88} (libGLESv2.so`glUniform4fv)
glUniform1iv = {void (*)(GLint, GLsizei, const GLint *) | 0x727dc6ca98} (libGLESv2.so`glUniform1iv)
glUniform2iv = {void (*)(GLint, GLsizei, const GLint *) | 0x727dc6caf8} (libGLESv2.so`glUniform2iv)
glUniform3iv = {void (*)(GLint, GLsizei, const GLint *) | 0x727dc6cb58} (libGLESv2.so`glUniform3iv)
glUniform4iv = {void (*)(GLint, GLsizei, const GLint *) | 0x727dc6cbb8} (libGLESv2.so`glUniform4iv)
glUniformMatrix2fv = {void (*)(GLint, GLsizei, GLboolean, const GLfloat *) | 0x727dc6cbd0} (libGLESv2.so`glUniformMatrix2fv)
glUniformMatrix3fv = {void (*)(GLint, GLsizei, GLboolean, const GLfloat *) | 0x727dc6cbe8} (libGLESv2.so`glUniformMatrix3fv)
glUniformMatrix4fv = {void (*)(GLint, GLsizei, GLboolean, const GLfloat *) | 0x727dc6cc00} (libGLESv2.so`glUniformMatrix4fv)
glValidateProgram = {void (*)(GLuint) | 0x727dc6cc30} (libGLESv2.so`glValidateProgram)
glVertexAttrib1d = {void (*)(GLuint, GLdouble) | 0x0} NULL
glVertexAttrib1dv = {void (*)(GLuint, const GLdouble *) | 0x0} NULL
glVertexAttrib1f = {void (*)(GLuint, GLfloat) | 0x727dc6cc48} (libGLESv2.so`glVertexAttrib1f)
glVertexAttrib1fv = {void (*)(GLuint, const GLfloat *) | 0x727dc6cc60} (libGLESv2.so`glVertexAttrib1fv)
glVertexAttrib1s = {void (*)(GLuint, GLshort) | 0x0} NULL
glVertexAttrib1sv = {void (*)(GLuint, const GLshort *) | 0x0} NULL
glVertexAttrib2d = {void (*)(GLuint, GLdouble, GLdouble) | 0x0} NULL
glVertexAttrib2dv = {void (*)(GLuint, const GLdouble *) | 0x0} NULL
glVertexAttrib2f = {void (*)(GLuint, GLfloat, GLfloat) | 0x727dc6cc78} (libGLESv2.so`glVertexAttrib2f)
glVertexAttrib2fv = {void (*)(GLuint, const GLfloat *) | 0x727dc6cc90} (libGLESv2.so`glVertexAttrib2fv)
glVertexAttrib2s = {void (*)(GLuint, GLshort, GLshort) | 0x0} NULL
glVertexAttrib2sv = {void (*)(GLuint, const GLshort *) | 0x0} NULL
glVertexAttrib3d = {void (*)(GLuint, GLdouble, GLdouble, GLdouble) | 0x0} NULL
glVertexAttrib3dv = {void (*)(GLuint, const GLdouble *) | 0x0} NULL
glVertexAttrib3f = {void (*)(GLuint, GLfloat, GLfloat, GLfloat) | 0x727dc6cca8} (libGLESv2.so`glVertexAttrib3f)
glVertexAttrib3fv = {void (*)(GLuint, const GLfloat *) | 0x727dc6ccc0} (libGLESv2.so`glVertexAttrib3fv)
glVertexAttrib3s = {void (*)(GLuint, G