关于OpenGL(含ES)的资料汗牛充栋,但是普遍存在的问题是,OES的资料不够系统,OGL的资料过于庞大

此列表详细记录了GLES2兼容函数的情况,使大家在学习时,对于算法和资料可以有针对性的选择

此列表来自Qt的QOpenGLFunctions类,该类用于创建OpenGL和OpenGL ES兼容项目(在一个工程里)

注:Qt支持各种版本的GL头文件导入,命名方式为QOpenGLFunctions_X_Y,对于更高级的3+桌面版,使用例如QOpenGLFunctions_3_0这种类

很多人对这个表怎么用,不是很清楚,这里再补充一下,目前跨平台OpenGL开发(桌面+移动 )主流API选择是OpenGL ES 2。这个表纪录了OpenGL ES2所有函数的兼容情况。如果你是走这个方向的,这个表很有用。

网上资料,很多都是OpenGL ES 1或者还有立即模式那种很古老的API,那些都是淘汰的。对于新手来说,你把那些资料里面,出现的gl打头的函数在这个表里搜索一下,如果是 这个表里没有的,基本上那份资料就可以不用看了。(不过你得注意一些工具库比如glm,glew,glut,别认错了)

补充一份:详细的OpenGL(ES)各版本API差别在这里:http://docs.gl/

// GLES2 + OpenGL1 common subset 
    void glBindTexture(GLenum target, GLuint texture); 
    void glBlendFunc(GLenum sfactor, GLenum dfactor); 
    void glClear(GLbitfield mask); 
    void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); 
    void glClearStencil(GLint s); 
    void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); 
    void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
    void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
    void glCullFace(GLenum mode); 
    void glDeleteTextures(GLsizei n, const GLuint* textures); 
    void glDepthFunc(GLenum func); 
    void glDepthMask(GLboolean flag); 
    void glDisable(GLenum cap); 
    void glDrawArrays(GLenum mode, GLint first, GLsizei count); 
    void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices); 
    void glEnable(GLenum cap); 
    void glFinish(); 
    void glFlush(); 
    void glFrontFace(GLenum mode); 
    void glGenTextures(GLsizei n, GLuint* textures); 
    void glGetBooleanv(GLenum pname, GLboolean* params); 
    GLenum glGetError(); 
    void glGetFloatv(GLenum pname, GLfloat* params); 
    void glGetIntegerv(GLenum pname, GLint* params); 
    const GLubyte *glGetString(GLenum name); 
    void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params); 
    void glGetTexParameteriv(GLenum target, GLenum pname, GLint* params); 
    void glHint(GLenum target, GLenum mode); 
    GLboolean glIsEnabled(GLenum cap); 
    GLboolean glIsTexture(GLuint texture); 
    void glLineWidth(GLfloat width); 
    void glPixelStorei(GLenum pname, GLint param); 
    void glPolygonOffset(GLfloat factor, GLfloat units); 
    void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels); 
    void glScissor(GLint x, GLint y, GLsizei width, GLsizei height); 
    void glStencilFunc(GLenum func, GLint ref, GLuint mask); 
    void glStencilMask(GLuint mask); 
    void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass); 
    void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
    void glTexParameterf(GLenum target, GLenum pname, GLfloat param); 
    void glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params); 
    void glTexParameteri(GLenum target, GLenum pname, GLint param); 
    void glTexParameteriv(GLenum target, GLenum pname, const GLint* params); 
    void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels);
    void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);

// GL(ES)2 
    void glActiveTexture(GLenum texture); 
    void glAttachShader(GLuint program, GLuint shader); 
    void glBindAttribLocation(GLuint program, GLuint index, const char* name); 
    void glBindBuffer(GLenum target, GLuint buffer); 
    void glBindFramebuffer(GLenum target, GLuint framebuffer); 
    void glBindRenderbuffer(GLenum target, GLuint renderbuffer); 
    void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); 
    void glBlendEquation(GLenum mode); 
    void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha); 
    void glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); 
    void glBufferData(GLenum target, qopengl_GLsizeiptr size, const void* data, GLenum usage); 
    void glBufferSubData(GLenum target, qopengl_GLintptr offset, qopengl_GLsizeiptr size, const void* data); 
    GLenum glCheckFramebufferStatus(GLenum target); 
    void glClearDepthf(GLclampf depth); 
    void glCompileShader(GLuint shader); 
    void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data);
    void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data);
    GLuint glCreateProgram(); 
    GLuint glCreateShader(GLenum type); 
    void glDeleteBuffers(GLsizei n, const GLuint* buffers); 
    void glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers); 
    void glDeleteProgram(GLuint program); 
    void glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers); 
    void glDeleteShader(GLuint shader); 
    void glDepthRangef(GLclampf zNear, GLclampf zFar); 
    void glDetachShader(GLuint program, GLuint shader); 
    void glDisableVertexAttribArray(GLuint index); 
    void glEnableVertexAttribArray(GLuint index); 
    void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
    void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
    void glGenBuffers(GLsizei n, GLuint* buffers); 
    void glGenerateMipmap(GLenum target); 
    void glGenFramebuffers(GLsizei n, GLuint* framebuffers); 
    void glGenRenderbuffers(GLsizei n, GLuint* renderbuffers); 
    void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name);
    void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name);
    void glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders); 
    GLint glGetAttribLocation(GLuint program, const char* name); 
    void glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params); 
    void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params);
    void glGetProgramiv(GLuint program, GLenum pname, GLint* params); 
    void glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, char* infolog); 
    void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params); 
    void glGetShaderiv(GLuint shader, GLenum pname, GLint* params); 
    void glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog); 
    void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision); 
    void glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, char* source); 
    void glGetUniformfv(GLuint program, GLint location, GLfloat* params); 
    void glGetUniformiv(GLuint program, GLint location, GLint* params); 
    GLint glGetUniformLocation(GLuint program, const char* name); 
    void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params); 
    void glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params); 
    void glGetVertexAttribPointerv(GLuint index, GLenum pname, void** pointer); 
    GLboolean glIsBuffer(GLuint buffer); 
    GLboolean glIsFramebuffer(GLuint framebuffer); 
    GLboolean glIsProgram(GLuint program); 
    GLboolean glIsRenderbuffer(GLuint renderbuffer); 
    GLboolean glIsShader(GLuint shader); 
    void glLinkProgram(GLuint program); 
    void glReleaseShaderCompiler(); 
    void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); 
    void glSampleCoverage(GLclampf value, GLboolean invert); 
    void glShaderBinary(GLint n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLint length); 
    void glShaderSource(GLuint shader, GLsizei count, const char** string, const GLint* length); 
    void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask); 
    void glStencilMaskSeparate(GLenum face, GLuint mask); 
    void glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass); 
    void glUniform1f(GLint location, GLfloat x); 
    void glUniform1fv(GLint location, GLsizei count, const GLfloat* v); 
    void glUniform1i(GLint location, GLint x); 
    void glUniform1iv(GLint location, GLsizei count, const GLint* v); 
    void glUniform2f(GLint location, GLfloat x, GLfloat y); 
    void glUniform2fv(GLint location, GLsizei count, const GLfloat* v); 
    void glUniform2i(GLint location, GLint x, GLint y); 
    void glUniform2iv(GLint location, GLsizei count, const GLint* v); 
    void glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z); 
    void glUniform3fv(GLint location, GLsizei count, const GLfloat* v); 
    void glUniform3i(GLint location, GLint x, GLint y, GLint z); 
    void glUniform3iv(GLint location, GLsizei count, const GLint* v); 
    void glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); 
    void glUniform4fv(GLint location, GLsizei count, const GLfloat* v); 
    void glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w); 
    void glUniform4iv(GLint location, GLsizei count, const GLint* v); 
    void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); 
    void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); 
    void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); 
    void glUseProgram(GLuint program); 
    void glValidateProgram(GLuint program); 
    void glVertexAttrib1f(GLuint indx, GLfloat x); 
    void glVertexAttrib1fv(GLuint indx, const GLfloat* values); 
    void glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y); 
    void glVertexAttrib2fv(GLuint indx, const GLfloat* values); 
    void glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z); 
    void glVertexAttrib3fv(GLuint indx, const GLfloat* values); 
    void glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w); 
    void glVertexAttrib4fv(GLuint indx, const GLfloat* values); 
    void glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr);

OpenGL ES 2兼容函数列表相关推荐

  1. OpenGL ES之glRotate函数

    名称: glRotate-- 使用一个旋转矩阵乘以当前矩阵 函数原型: void glRotatef(GLfloat angle,  GLfloat x,  GLfloat y,  GLfloat z ...

  2. 利用JNI技术在Android中调用C++形式的OpenGL ES 2.0函数

    1.                 打开Eclipse,File-->New-->Project--->Android-->AndroidApplication Projec ...

  3. OpenGL ES之glOrtho函数

    名称: glOrtho-- 使用一个正交矩阵乘以当前矩阵 函数原型: void glOrthof(GLfloat left,  GLfloat right,  GLfloat bottom,  GLf ...

  4. OpenGL es gluLookAt 函数

    OpenGL es 没有gluLookAt 函数,从外网找了一个 附链接 gluLookAt函数 为了方便不会墙的同志,附代码 已调试使用,正常! object c 和 c++混编的同志在使用时删掉以 ...

  5. OpenGL ES EGL TLS(线程局部存储) G3D

    1. 什么是EGL EGL是用来管理绘图表面的(Drawing surfaces),并且提供了如下的机制 (1) 与本地窗口系统进行通信 (2) 查找绘图表面可用的类型和配置信息 (3) 创建绘图表面 ...

  6. OpenGL ES与EGL的关系(二十一)

    什么是OpenGL? Open Graphics Library (OpenGL) is a cross-language, cross-platform application programmin ...

  7. OpenGL ES之glRotatef旋转详解

    glRotatef函数的API中文参考文档请看:OpenGL ES之glRotate函数 void glRotatef(GLfloat angle,  GLfloat x,  GLfloat y,  ...

  8. OpenGL ES:绘制函数glDrawArrays 和 glDrawElements 的区别

    from:https://www.jianshu.com/p/4d02c2cd21ea 写文章注册登录 首页 下载App OpenGL ES:绘制函数glDrawArrays 和 glDrawElem ...

  9. OpenGL ES 简单教程

    OpenGL ES 简单教程 2014-04-24 13:35 佚名 apkbus 字号:T | T 什么是OpenGL ES?OpenGL ES (为OpenGL for Embedded Syst ...

最新文章

  1. “男医生,女护士?”消除偏见,Google有大招
  2. Hadoop 2.2.0 集群搭建
  3. 23种设计模式 UML 类图及对应示例代码 (二)
  4. Coreseek Windows下安装调试
  5. matlab两个数组竖向叠加,matlab - 过滤器同时使用两个数组中的元素 - 堆栈内存溢出...
  6. 基本类型-字符、字符串、文本
  7. Power BI DAX 之日期函数
  8. STM32F103无源蜂鸣器驱动程序
  9. GD32F103学习笔记(4)——GPIO接口使用
  10. phpdesigner 配置SVN
  11. 天涯论坛--只看楼主
  12. HP M1136 USB 连接安装驱动 提示“新设备已连接” 解决方案
  13. 计算机软件高级证书试题,高级程序员认证考试经验总结
  14. 网络运维系列:网络出口IP地址查询
  15. flutter 控制iOS设备屏幕可旋转支持方向
  16. MySQL数据库软件介绍
  17. 信息在计算机中的表示(一)
  18. 已知两点和弧长lisp_计算球面上两点弧长
  19. python实现均值类指标差异分析-Mann-Whitney U-test(完整代码+实现效果)
  20. 刚放假 就随便写点 什么 写一下怎么刷BIOS 换开机logo

热门文章

  1. AWS Ubuntu安装可视化操作桌面和VS Code,Code Server
  2. python b64encode_Python base64模块详解 | 学步园
  3. 仿个人税务 app html5_手机里发现这类APP,赶紧删!
  4. AXI4总线协议的发展历史
  5. 光流 | 基于Matlab实现Lucas-Kanade方法:方法2(附源代码)
  6. 【MySQL随手记】字符集编码的查看、指定与修改语句
  7. python print用法制表空格_python中print函数的输出问题(空格,制表符)
  8. python序列_什么是Python的序列协议?
  9. ue4相机_[UE4]偏门实用技巧合集
  10. Java基础day8