OpenGL ES 2兼容函数列表
关于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+OpenGL1commonsubset
voidglBindTexture(GLenumtarget,GLuinttexture);
voidglBlendFunc(GLenumsfactor,GLenumdfactor);
voidglClear(GLbitfieldmask);
voidglClearColor(GLclampfred,GLclampfgreen,GLclampfblue,GLclampfalpha);
voidglClearStencil(GLints);
voidglColorMask(GLbooleanred,GLbooleangreen,GLbooleanblue,GLbooleanalpha);
voidglCopyTexImage2D(GLenumtarget,GLintlevel,GLenuminternalformat,GLintx,GLinty,GLsizeiwidth,GLsizeiheight,GLintborder);
voidglCopyTexSubImage2D(GLenumtarget,GLintlevel,GLintxoffset,GLintyoffset,GLintx,GLinty,GLsizeiwidth,GLsizeiheight);
voidglCullFace(GLenummode);
voidglDeleteTextures(GLsizein,constGLuint*textures);
voidglDepthFunc(GLenumfunc);
voidglDepthMask(GLbooleanflag);
voidglDisable(GLenumcap);
voidglDrawArrays(GLenummode,GLintfirst,GLsizeicount);
voidglDrawElements(GLenummode,GLsizeicount,GLenumtype,constGLvoid*indices);
voidglEnable(GLenumcap);
voidglFinish();
voidglFlush();
voidglFrontFace(GLenummode);
voidglGenTextures(GLsizein,GLuint*textures);
voidglGetBooleanv(GLenumpname,GLboolean*params);
GLenumglGetError();
voidglGetFloatv(GLenumpname,GLfloat*params);
voidglGetIntegerv(GLenumpname,GLint*params);
constGLubyte*glGetString(GLenumname);
voidglGetTexParameterfv(GLenumtarget,GLenumpname,GLfloat*params);
voidglGetTexParameteriv(GLenumtarget,GLenumpname,GLint*params);
voidglHint(GLenumtarget,GLenummode);
GLbooleanglIsEnabled(GLenumcap);
GLbooleanglIsTexture(GLuinttexture);
voidglLineWidth(GLfloatwidth);
voidglPixelStorei(GLenumpname,GLintparam);
voidglPolygonOffset(GLfloatfactor,GLfloatunits);
voidglReadPixels(GLintx,GLinty,GLsizeiwidth,GLsizeiheight,GLenumformat,GLenumtype,GLvoid*pixels);
voidglScissor(GLintx,GLinty,GLsizeiwidth,GLsizeiheight);
voidglStencilFunc(GLenumfunc,GLintref,GLuintmask);
voidglStencilMask(GLuintmask);
voidglStencilOp(GLenumfail,GLenumzfail,GLenumzpass);
voidglTexImage2D(GLenumtarget,GLintlevel,GLintinternalformat,GLsizeiwidth,GLsizeiheight,GLintborder,GLenumformat,GLenumtype,constGLvoid*pixels);
voidglTexParameterf(GLenumtarget,GLenumpname,GLfloatparam);
voidglTexParameterfv(GLenumtarget,GLenumpname,constGLfloat*params);
voidglTexParameteri(GLenumtarget,GLenumpname,GLintparam);
voidglTexParameteriv(GLenumtarget,GLenumpname,constGLint*params);
voidglTexSubImage2D(GLenumtarget,GLintlevel,GLintxoffset,GLintyoffset,GLsizeiwidth,GLsizeiheight,GLenumformat,GLenumtype,constGLvoid*pixels);
voidglViewport(GLintx,GLinty,GLsizeiwidth,GLsizeiheight);
//GL(ES)2
voidglActiveTexture(GLenumtexture);
voidglAttachShader(GLuintprogram,GLuintshader);
voidglBindAttribLocation(GLuintprogram,GLuintindex,constchar*name);
voidglBindBuffer(GLenumtarget,GLuintbuffer);
voidglBindFramebuffer(GLenumtarget,GLuintframebuffer);
voidglBindRenderbuffer(GLenumtarget,GLuintrenderbuffer);
voidglBlendColor(GLclampfred,GLclampfgreen,GLclampfblue,GLclampfalpha);
voidglBlendEquation(GLenummode);
voidglBlendEquationSeparate(GLenummodeRGB,GLenummodeAlpha);
voidglBlendFuncSeparate(GLenumsrcRGB,GLenumdstRGB,GLenumsrcAlpha,GLenumdstAlpha);
voidglBufferData(GLenumtarget,qopengl_GLsizeiptrsize,constvoid*data,GLenumusage);
voidglBufferSubData(GLenumtarget,qopengl_GLintptroffset,qopengl_GLsizeiptrsize,constvoid*data);
GLenumglCheckFramebufferStatus(GLenumtarget);
voidglClearDepthf(GLclampfdepth);
voidglCompileShader(GLuintshader);
voidglCompressedTexImage2D(GLenumtarget,GLintlevel,GLenuminternalformat,GLsizeiwidth,GLsizeiheight,GLintborder,GLsizeip_w_picpathSize,constvoid*data);
voidglCompressedTexSubImage2D(GLenumtarget,GLintlevel,GLintxoffset,GLintyoffset,GLsizeiwidth,GLsizeiheight,GLenumformat,GLsizeip_w_picpathSize,constvoid*data);
GLuintglCreateProgram();
GLuintglCreateShader(GLenumtype);
voidglDeleteBuffers(GLsizein,constGLuint*buffers);
voidglDeleteFramebuffers(GLsizein,constGLuint*framebuffers);
voidglDeleteProgram(GLuintprogram);
voidglDeleteRenderbuffers(GLsizein,constGLuint*renderbuffers);
voidglDeleteShader(GLuintshader);
voidglDepthRangef(GLclampfzNear,GLclampfzFar);
voidglDetachShader(GLuintprogram,GLuintshader);
voidglDisableVertexAttribArray(GLuintindex);
voidglEnableVertexAttribArray(GLuintindex);
voidglFramebufferRenderbuffer(GLenumtarget,GLenump_w_upload,GLenumrenderbuffertarget,GLuintrenderbuffer);
voidglFramebufferTexture2D(GLenumtarget,GLenump_w_upload,GLenumtextarget,GLuinttexture,GLintlevel);
voidglGenBuffers(GLsizein,GLuint*buffers);
voidglGenerateMipmap(GLenumtarget);
voidglGenFramebuffers(GLsizein,GLuint*framebuffers);
voidglGenRenderbuffers(GLsizein,GLuint*renderbuffers);
voidglGetActiveAttrib(GLuintprogram,GLuintindex,GLsizeibufsize,GLsizei*length,GLint*size,GLenum*type,char*name);
voidglGetActiveUniform(GLuintprogram,GLuintindex,GLsizeibufsize,GLsizei*length,GLint*size,GLenum*type,char*name);
voidglGetAttachedShaders(GLuintprogram,GLsizeimaxcount,GLsizei*count,GLuint*shaders);
GLintglGetAttribLocation(GLuintprogram,constchar*name);
voidglGetBufferParameteriv(GLenumtarget,GLenumpname,GLint*params);
voidglGetFramebufferAttachmentParameteriv(GLenumtarget,GLenump_w_upload,GLenumpname,GLint*params);
voidglGetProgramiv(GLuintprogram,GLenumpname,GLint*params);
voidglGetProgramInfoLog(GLuintprogram,GLsizeibufsize,GLsizei*length,char*infolog);
voidglGetRenderbufferParameteriv(GLenumtarget,GLenumpname,GLint*params);
voidglGetShaderiv(GLuintshader,GLenumpname,GLint*params);
voidglGetShaderInfoLog(GLuintshader,GLsizeibufsize,GLsizei*length,char*infolog);
voidglGetShaderPrecisionFormat(GLenumshadertype,GLenumprecisiontype,GLint*range,GLint*precision);
voidglGetShaderSource(GLuintshader,GLsizeibufsize,GLsizei*length,char*source);
voidglGetUniformfv(GLuintprogram,GLintlocation,GLfloat*params);
voidglGetUniformiv(GLuintprogram,GLintlocation,GLint*params);
GLintglGetUniformLocation(GLuintprogram,constchar*name);
voidglGetVertexAttribfv(GLuintindex,GLenumpname,GLfloat*params);
voidglGetVertexAttribiv(GLuintindex,GLenumpname,GLint*params);
voidglGetVertexAttribPointerv(GLuintindex,GLenumpname,void**pointer);
GLbooleanglIsBuffer(GLuintbuffer);
GLbooleanglIsFramebuffer(GLuintframebuffer);
GLbooleanglIsProgram(GLuintprogram);
GLbooleanglIsRenderbuffer(GLuintrenderbuffer);
GLbooleanglIsShader(GLuintshader);
voidglLinkProgram(GLuintprogram);
voidglReleaseShaderCompiler();
voidglRenderbufferStorage(GLenumtarget,GLenuminternalformat,GLsizeiwidth,GLsizeiheight);
voidglSampleCoverage(GLclampfvalue,GLbooleaninvert);
voidglShaderBinary(GLintn,constGLuint*shaders,GLenumbinaryformat,constvoid*binary,GLintlength);
voidglShaderSource(GLuintshader,GLsizeicount,constchar**string,constGLint*length);
voidglStencilFuncSeparate(GLenumface,GLenumfunc,GLintref,GLuintmask);
voidglStencilMaskSeparate(GLenumface,GLuintmask);
voidglStencilOpSeparate(GLenumface,GLenumfail,GLenumzfail,GLenumzpass);
voidglUniform1f(GLintlocation,GLfloatx);
voidglUniform1fv(GLintlocation,GLsizeicount,constGLfloat*v);
voidglUniform1i(GLintlocation,GLintx);
voidglUniform1iv(GLintlocation,GLsizeicount,constGLint*v);
voidglUniform2f(GLintlocation,GLfloatx,GLfloaty);
voidglUniform2fv(GLintlocation,GLsizeicount,constGLfloat*v);
voidglUniform2i(GLintlocation,GLintx,GLinty);
voidglUniform2iv(GLintlocation,GLsizeicount,constGLint*v);
voidglUniform3f(GLintlocation,GLfloatx,GLfloaty,GLfloatz);
voidglUniform3fv(GLintlocation,GLsizeicount,constGLfloat*v);
voidglUniform3i(GLintlocation,GLintx,GLinty,GLintz);
voidglUniform3iv(GLintlocation,GLsizeicount,constGLint*v);
voidglUniform4f(GLintlocation,GLfloatx,GLfloaty,GLfloatz,GLfloatw);
voidglUniform4fv(GLintlocation,GLsizeicount,constGLfloat*v);
voidglUniform4i(GLintlocation,GLintx,GLinty,GLintz,GLintw);
voidglUniform4iv(GLintlocation,GLsizeicount,constGLint*v);
voidglUniformMatrix2fv(GLintlocation,GLsizeicount,GLbooleantranspose,constGLfloat*value);
voidglUniformMatrix3fv(GLintlocation,GLsizeicount,GLbooleantranspose,constGLfloat*value);
voidglUniformMatrix4fv(GLintlocation,GLsizeicount,GLbooleantranspose,constGLfloat*value);
voidglUseProgram(GLuintprogram);
voidglValidateProgram(GLuintprogram);
voidglVertexAttrib1f(GLuintindx,GLfloatx);
voidglVertexAttrib1fv(GLuintindx,constGLfloat*values);
voidglVertexAttrib2f(GLuintindx,GLfloatx,GLfloaty);
voidglVertexAttrib2fv(GLuintindx,constGLfloat*values);
voidglVertexAttrib3f(GLuintindx,GLfloatx,GLfloaty,GLfloatz);
voidglVertexAttrib3fv(GLuintindx,constGLfloat*values);
voidglVertexAttrib4f(GLuintindx,GLfloatx,GLfloaty,GLfloatz,GLfloatw);
voidglVertexAttrib4fv(GLuintindx,constGLfloat*values);
voidglVertexAttribPointer(GLuintindx,GLintsize,GLenumtype,GLbooleannormalized,GLsizeistride,constvoid*ptr);
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。