(一)OpenGL函数库

格式:

<库前缀><根命令><可选的参数个数><可选的参数类型> 库前缀有 gl、glu、aux、glut、wgl、glx、agl 等等。

1、核心函数库主要可以分为以下几类函数

(1) 绘制基本的几何图元函数。如:glBegain().

(2) 矩阵操作、几何变换和投影变换的函数。如:矩阵入栈glPushMatrix(),还有矩阵的出栈、转载、相乘,此外还有几何变换函数glTranslate*(),投影变换函数glOrtho()和视口变换函数glViewport()等等。

(3) 颜色、光照和材质函数。

(4) 显示列表函数,主要有创建、结束、生成、删除和调用显示列表的函数glNewList()、glEndList()、glGenLists()、glDeleteLists()和glCallList()。

(5) 纹理映射函数,主要有一维和二维纹理函数,设置纹理参数、纹理环境和纹理坐标的函数glTexParameter*()、glTexEnv*()和glTetCoord*()等。

(6) 特殊效果函数。

(7) 选着和反馈函数。

(8) 曲线与曲面的绘制函数。

(9) 状态设置与查询函数。

(10) 光栅化、像素函数。

2、OpenGL实用库(The OpenGL Utility Library)(GLU)

包含有43个函数,函数名的前缀名为glu.

(1) 辅助纹理贴图函数。

(2) 坐标转换和投影变换函数。

(3) 多边形镶嵌工具。

(4)  二次曲面绘制工具。

(5) 非均匀有理B样条绘制工具。

(6) 错误反馈工具,获取出错信息的字符串gluErrorString()

3、OpenGL辅助库

包含有31个函数,函数名前缀名为aux

这部分函数提供窗口管理、输入输出处理以及绘制一些简单的三维物体。

4、OpenGL工具库(OpenGL Utility Toolkit)

包含大约30多个函数,函数前缀名为glut,此函数由glut.dll来负责解释执行。

(1) 窗口操作函数。窗口初始化、窗口大小、窗口位置等函数glutInit() glutInitDisplayMode()、glutInitWindowSize() glutInitWindowPosition()等。

(2) 回调函数。响应刷新消息、键盘消息、鼠标消息、定时器函数等,GlutDisplayFunc()、glutPostRedisplay()、 glutReshapeFunc()、glutTimerFunc()、glutKeyboardFunc()、 glutMouseFunc()。

(3) 创建复杂的三维物体。这些和aux库函数功能相同。如创建球体glutWireSphere().

(4) 函数菜单

(5) 程序运行函数 glutAttachMenu()

5、16个WGL函数,专门用于OpenGL和Windows窗口系统的联接,其前缀名为wgl

(1) 绘制上下文函数。 wglCreateContext()、wglDeleteContext()、wglGetCurrentContent()、wglGetCurrentDC() wglDeleteContent()等。

(2) 文字和文本处理函数。wglUseFontBitmaps()、wglUseFontOutlines()。

(3) 覆盖层、地层和主平面处理函数。wglCopyContext()、wglCreateLayerPlane()、 wglDescribeLayerPlane()、wglReakizeLayerPlatte()等。

(4) 其他函数。wglShareLists()、wglGetProcAddress()等。

(二)函数库列表

1、OpenGL应用函数库

gluBeginCurve,gluEndCurve 定义一条不一至的有理的NURBS曲线 
gluBeginPolygon,gluEndPolygon 定义一个非凸多边形 
gluBeginSurface,gluEndSurface 定义一个NURBS曲线 
gluBeginTrim,gluEndTrim 定义一个NURBS整理循环 
gluBuild1Dmipmaps 建立一维多重映射 
gluBuild2Dmipmaps 建立二维多重映射 
gluCylinder 绘制一个圆柱 
gluDeleteNurbsRenderer 删除一个NURBS对象 
gluDeleQuadric 删除一个二次曲面对象 
gluDeleteTess 删除一个镶嵌对象 
gluDisk 绘制一个盘子 
gluErrorString 根据OpenGL或GLU错误代码产生错误字符串 
gluGetNutbsProperty 得到一个NURBS属性 
gluGetString 得到一个描述GLU版本号或支持GLU扩展调用的字符串 
gluGetTessProperty 得到一个镶嵌对象 
gluLoadSamplingMatrices 加载NUMRBS例子和精选矩阵 
gluLookAt 设定一个变换视点 
gluNewNurbsRenderer 创建一个NURBS对象 
gluNewQuadric 建立一个二次曲面对象 
gluNewTess 建立一个镶嵌对象 
gluNextContour 为其他轮廓的开始做标记 
gluNurbsCallback 为NURBS对象设定一个回调 
gluNnrbsCurve 设定一个NuRBS曲线的形状 
gluNurbsProperty 设定一个NURBS属性 
gluNurbsSurface 定义一个NURBS表面的形状 
gluOrtho2D 定义一个二位正交投影矩阵 
gluPartialDisk 绘制一个盘子的弧 
gluPerspective 设置一个透视投影矩阵 
gluPickMatrix 定义一个拾取区间 
gluProject 将对象坐标映射为窗口坐标 
gluPwlCurve 描述一个分段线性NURBS修剪曲线 
gluQuadricCallback 为二次曲面对象定义一个回调 
gluQuadricDrawStyle 为二次曲面设定合适的绘制风格 
gluQuadricNormals 定义二次曲面所用的法向的种类 
gluQuadricOrientation 定义二次曲面内部或外部方向 
gluQuadricTexture 定义是否带二次其面做纹理帖图 
gluScaleImage 将图象变换为任意尺寸 
gluSphere 绘制一个球体 
gluTessBeginContour,gluTessEndContour 划定一个边界描述 
gluTessBeginPolygon,gluTessEndPolygon 划定一个多边形描述 
gluTessCallback 为镶嵌对象定义一个回调 
gluTessNormal 为一个多边行形定义法向 
gluTessProperty 设置镶嵌对象的属性 
gluTessVertex 定义在一个多边形上的顶点 
gluUnProject 将窗口坐标映射为对象坐标

2、OpenGL核心函数库

glAccum 操作累加缓冲区
glAddSwapHintRectWIN 定义一组被 SwapBuffers 拷贝的三角形 glAlphaFunc 允许设置 alpha 检测功能
glAreTexturesResident 决定特定的纹理对象是否常驻在纹理内存中

glArrayElement 定义一个被用于顶点渲染的数组成分 glBegin,glEnd 定义一个或一组原始的顶点
glBindTexture 允许建立一个绑定到目标纹理的有名称的纹理 glBitmap 绘制一个位图

glBlendFunc 特殊的像素算法
glCallList 执行一个显示列表
glCallLists 执行一列显示列表
glClear 用当前值清除缓冲区
GlClearAccum 为累加缓冲区指定用于清除的值 glClearColor 为色彩缓冲区指定用于清除的值 glClearDepth 为深度缓冲区指定用于清除的值 glClearStencil 为模板缓冲区指定用于清除的值 glClipPlane 定义被裁剪的一个平面几何体 glColor 设置当前色彩

glColorMask 允许或不允许写色彩组件帧缓冲区
glColorMaterial 使一个材质色彩指向当前的色彩
glColorPointer 定义一列色彩
glColorTableEXT 定义目的一个调色板纹理的调色板的格式和尺寸 glColorSubTableEXT 定义目的纹理的调色板的一部分被替换 glCopyPixels 拷贝帧缓冲区里的像素

glCopyTexImage1D 将像素从帧缓冲区拷贝到一个单空间纹理图象中 glCopyTexImage2D 将像素从帧缓冲区拷贝到一个双空间纹理图象中 glCopyTexSubImage1D 从帧缓冲区拷贝一个单空间纹理的子图象 glCopyTexSubImage2D 从帧缓冲区拷贝一个双空间纹理的子图象 glCullFace 定义前面或后面是否能被精选

glDeleteLists 删除相邻一组显示列表

glDeleteTextures 删除命名的纹理
glDepthFunc 定义用于深度缓冲区对照的数据

glDepthMask 允许或不允许写入深度缓冲区

glDepthRange 定义 z 值从标准的设备坐标映射到窗口坐标 glDrawArrays 定义渲染多个图元glDrawBuffer 定义选择哪个色彩缓冲区被绘制 glDrawElements 渲染数组数据中的图元
glDrawPixels 将一组像素写入帧缓冲区
glEdgeFlag 定义一个边缘标志数组
glEdgeFlagPointer 定义一个边缘标志数组
glEnable, glDisable 打开或关闭 OpenGL 的特殊功能 glEnableClientState,glDisableClientState 分别打开或关闭数组 glEvalCoord 求解一维和二维贴图

glEvalMesh1,glEvalMesh2 求解一维和二维点或线的网格 glEvalPoint1,glEvalPoint2 生成及求解一个网格中的单点 glFeedbackBuffer 控制反馈模式
glFinish 等待直到 OpenGL 执行结束

glFlush 在有限的时间里强制 OpenGL 的执行

glFogf,glFogi,glFogfv,glFogiv 定义雾参数
glFrontFace 定义多边形的前面和背面
glFrustum 当前矩阵乘上透视矩阵
glGenLists 生成一组空的连续的显示列表
glGenTextures 生成纹理名称

glGetBooleanv,glGetDoublev,glGetFloatv,glGetIntegerv 返回值或所选参数值 glGetClipPlane 返回特定裁减面的系数

glGetColorTableEXT 从当前目标纹理调色板得到颜色表数据 glGetColorTableParameterfvEXT,glGetColorTableParameterivEXT 从颜色表中 得到调色板参数
glGetError 返回错误消息
glGetLightfv,glGetLightiv 返回光源参数值 glGetMapdv,glGetMapfv,glGetMapiv 返回求值程序参数

glGetMaterialfv,glGetMaterialiv 返回材质参数 glGetPixelMapfv,glGetpixelMapuiv,glGetpixelMapusv 返回特定的像素图 glGetPointerv 返回顶点数据数组的地址
glGetPolygonStipple 返回多边形的点图案
glGetString 返回描述当前 OpenGl 连接的字符串
glGetTexEnvfv 返回纹理环境参数

glGetTexGendv,glGetTexGenfv,glGetTexGeniv 返回纹理坐标生成参数 glGetTexImage 返回一个纹理图象 glGetTexLevelParameterfv,glGetTexLevelParameteriv 返回特定的纹理参数的 细节级别
glGetTexParameterfv,glGetTexParameteriv 返回纹理参数值
glHint 定义实现特殊的线索
glIndex 建立当前的色彩索引
glIndexMask 控制写色彩索引缓冲区里的单独位
GlIndexPointer 定义一个颜色索引数组
glInitName 初始化名字堆栈
glInterleavedArrays 同时定义和允许几个在一个大的数组集合里的交替数组 glIsEnabled 定义性能是否被允许
glIsList 检测显示列表的存在
glIsTexture 确定一个名字对应一个纹理
glLightf,glLighti,glLightfv,glLightiv 设置光源参数 glLightModelf,glLightModeli,glLightModelfv,glLightModeliv 设置光线模型参数 glLineStipple 设定线点绘图案
glLineWidth 设定光栅线段的宽
glListBase 为 glcallList 设定显示列表的基础
glLoadIdentity 用恒等矩阵替换当前矩阵
glLoadMatrixd,glLoadMatrif 用一个任意矩阵替换当前矩阵
glLoadName 将一个名字调入名字堆栈
glLogicOp 为色彩索引渲染定义一个逻辑像素操作
glMap1d,glMap1f 定义一个一维求值程序
glMap2d,glMap2f 定义一个二维求值程序glMapGrid1d,glMapGrid1f,glMapgrid2d,glMapGrid2f 定义一个一维或二维网 格
glMaterialf,glMateriali,glMateriafv,glMaterialiv 为光照模型定义材质参数 glMatrixMode 定义哪一个矩阵是当前矩阵

glMultMatrixd,glMultMatrixf 用当前矩阵与任意矩阵相乘

glNewList,glEndList 创建或替换一个显示列表
glNormal 设定当前顶点法向

glNormalPointer 设定一个法向数组

glOrtho 用垂直矩阵与当前矩阵相乘
glPassThrough 在反馈缓冲区做记号 glPixelMapfv,glPixelMapuiv,glPixelMapusv 设定像素交换图 glPixelStoref,glpixelStorei 设定像素存储模式
glPixelTransferf,glPixelTransferi 设定像素存储模式
glPixelZoom 设定像素缩放因数
glPointSize 设定光栅点的直径
glPolygonMode 选择一个多边形的光栅模式
glPolygonOffset 设定 OpenGL 用于计算深度值的比例和单元
glPolygonStipple 设定多边形填充图案
glPrioritizeTextures 设定纹理固定的优先级
glPushAttrib,glPopAttrib 属性堆栈的压入和弹出操作 glPushClientAttrib,glPopClientAttrib 在客户属性堆栈存储和恢复客户状态值 glPushmatrix,glPopMatrix 矩阵堆栈的压入和弹出操作 glPushName,glPopName 名字堆栈的压入和弹出操作
glRasterPos 定义像素操作的光栅位置
glreadBuffer 为像素选择一个源色彩缓冲区
glReadPixels 从帧缓冲区读取一组数据 glRectd,glRectf,glRecti,glRects,glRectdv,glRectfv,glRectiv,glRectsv 绘制一个三 角形
glRenderMode 定义光栅模式
glRotated,glRotatef 将旋转矩阵与当前矩阵相乘
glScaled,glScalef 将一般的比例矩阵与当前矩阵相乘
glScissor 定义裁减框
glSelectBuffer 为选择模式值建立一个缓冲区
glShadeModel 选择平直或平滑着色
glStencilFunc 为模板测试设置功能和参照值
glStencilMask 控制在模板面写单独的位
glStencilOp 设置激活模式测试
glTexCoord 设置当前纹理坐标
glTexCoordPointer 定义一个纹理坐标数组 glTexEnvf,glTexEnvi,glTexEnvfv,glTexEnviv 设定纹理坐标环境参数 glTexGend,glTexgenf,glTexGendv,glTexGenfv,glTexGeniv 控制纹理坐标的生成 glTexImage1D 定义一个一维的纹理图象
glTexImage2D 定义一个二维的纹理图 glTexParameterf,glTexParameteri,glTexParameterfv,glTexParameteriv 设置纹理参数
glTexSubImage1D 定义一个存在的一维纹理图像的一部分,但不能定义新的纹理glTexSubImage2D 定义一个存在的二维纹理图像的一部分,但不能定义新的纹理glTranslated,glTranslatef 将变换矩阵与当前矩阵相乘 glVertex 定义一个顶点
glVertexPointer 设定一个顶点数据数组
glViewport 设置视窗

OpenGL的API函数使用手册的更多相关文章

  1. Windows API 函数列表 附帮助手册

    所有Windows API函数列表,为了方便查询,也为了大家查找,所以整理一下贡献出来了. 帮助手册:700多个Windows API的函数手册 免费下载 API之网络函数 API之消息函数 API之 ...

  2. hive函数参考手册

    hive函数参考手册 原文见:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF 1.内置运算符1.1关系运算符 运 ...

  3. Eclipse中通过Android模拟器调用OpenGL ES2.0函数操作步骤

    原文地址: Eclipse中通过Android模拟器调用OpenGL ES2.0函数操作步骤 - 网络资源是无限的 - 博客频道 - CSDN.NET http://blog.csdn.net/fen ...

  4. Detours简介 (拦截x86机器上的任意的win32 API函数)

    Detours 当然是用detours,微软明显高腾讯一筹,同上,至今没失败过.写这种HOOK一定要再写个测试程序,不要直接HOOK你的目的程序,例如QQ,因为这样不方面更灵活的测试.说明一下:Det ...

  5. 【OpenGL游戏开发之二】OpenGL常用API

    OpenGL常用API 开发基于OpenGL的应用程序,必须先了解OpenGL的库函数.它采用C语言风格,提供大量的函数来进行图形的处理和显示.OpenGL库函数的命名方式非常有规律.所有OpenGL ...

  6. cocos2d-x于android在call to OpenGL ES API with no current context

    一.问题: 正在使用JNI离Java(Android)侧 打回来C++(Cocos2d-x)该函数返回消息.Cocos2d-x花掉了 看看 Eclipse的Log中.显示 有 call to Open ...

  7. call to OpenGL ES API with no current context 和Fatal signal 11

    近日在用cocos2dx3.4的时候使用了JNI调用,发现一个现象 当不使用jni的时候全然正常.使用了jni后回去的全部文字都变成黑块,而且有概率程序崩溃.附带出了两个log call to Ope ...

  8. Delphi - Windows系统下,Delphi调用API函数和7z.dll动态库,自动把文件压缩成.tar.gz格式的文件

    项目背景 应欧美客户需求,需要将文件压缩成.tar.gz格式的文件,并上传给客户端SFTP服务器. 你懂的,7-Zip软件的显著特点是文件越大压缩比越高,在Linux系统上相当于我们Windows系统 ...

  9. 使用windows api函数捕获SAP session的左下角消息句柄

    背景:SAP session的左下角消息非常有用,我们在做SAP的自动化脚本时可以设法读到这个消息的内容,作为程序后续动作的判断条件.如下图:        比如小爬之前给财务的同事制作了一个批量导出 ...

随机推荐

  1. 使用Visual Studio 2015开发Android 程序

    环境配置: 操作系统:win 7 64位 IDE:Visual Studio 2015 SDK:installer_r24.3.3-windows 安装前提: 编辑hosts文件(在附件可下载)因为安 ...

  2. php的spl_autoload_register函数的一点个人见解

    这是一篇对spl_autoload_register()函数的个人简单介绍,有需要的同学可以参考,主要是讨论spl_autoload_register()函数所注册的函数的参数的个人一点迷惑. 废话不 ...

  3. lua module package.seeall选项

    module 与 package.seeall http://blog.codingnow.com/2006/02/lua_51_module.html 使用 module("test&qu ...

  4. js 点赞数 处理

    likeNum(num) { if (num === 0) { num = ''; } else if (num > 9999 && num <= 9999999) { n ...

  5. 如何在断开ssh连接后仍然保持服务器正常运行程序

    问题描述:当SSH远程连接到服务器上,然后运行一个Python程序(bpr.py),然后把终端开闭(切断SSH连接)之后,发现该程序执行中断. 解决方法:使用nohup命令让程序在关闭窗口(切换SSH ...

  6. Java基础之在窗口中绘图——利用多态性使用鼠标自由绘图(Sketcher 7 with a crosshair cursor)

    控制台程序. 在Sketcher中创建形状时,并不知道应该以什么顺序创建不同类型的形状,这完全取决于使用Sketcher程序生成草图的人.因此需要绘制形状,对它们执行其他操作而不必知道图形是什么.当然 ...

  7. ReentrantLock的实现语义与使用场景

    简介 ReentrantLock(重入锁)就是支持可重进入的锁,它表示该锁能支持一个线程对资源的重复加锁.另外还支持获取锁的公平和非公平选择ReentrantLock的实现不仅可以替代隐式的synch ...

  8. org.eclipse.jdi.TimeoutException: Timeout occurred while waiting for packet 421. occured resuming VM.

    环境: 导入excel的时候,会根据路径,读取EXCEL的数据. 原因: 电脑上的防火墙关闭

  9. Linq To Sqlite 一一二二

    说在前头 之所以写下这些文字,主要是因为使用LINQ的同志们都觉它的美好(至于有多美好,各位心里知道,我就不在描述了,如果你是你还不了解LINQ,园子里有大把的文章),微软老哥只提供了自家的SQLSe ...

  10. List,Set,Map用法以及区别(转)

    Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素.一些Collection允许相同的元素而另一些不行.一些能排序而另一些不行.Java ...