OpenGL学习02_函数语法与命名规范
来源:互联网 发布:张良刘邦知乎 编辑:程序博客网 时间:2024/06/17 07:17
OpenGL函数中有一些似乎不相关的字母(例如glColor3f()和glVertex3f()中的“3f”)。确实,glColor3f()函数名中的“Color”部分就足以定义这个用于设置当前绘图颜色的函数。但是,OpenGL定义了这个函数的多个不同版本,以便使用不同类型的参数。具体地说,这个后缀中的“3”表示这个函数接受3个参数。Color函数还存在接受4个参数的版本。这个后缀中的“f”表示这些参数都是浮点数。OpenGL之所以为同一个函数定义了不同参数类型的版本,是为了允许用户根据自己的数据格式向OpenGL传递参数。
有些OpenGL函数可以在它们的参数中接受多达8种不同的数据类型。下表出了一些后缀字母,它们分别指定了OpenGL的ISO C实现所提供的数据类型。此外,下表还列出了对应的OpenGL类型定义。我们所使用的OpenGL实现可能并不完全与这种方案相对应。例如,OpenGL的C++或Ada实现就不需要完全遵循这种方案。
因此,下面这两个函数调用是等价的。只不过第一个函数把顶点的坐标指定为32位的整数,第二个函数则把它们指定为单精度的浮点数。
glVertex2i(1, 3); glVertex2f(1.0, 3.0);
注意:不同的OpenGL实现在选择用哪些C数据类型来表示OpenGL数据类型方面存在一些差异。如果坚持在自己的应用程序中使用OpenGL定义的数据类型,那么在不同的OpenGL实现之间移植代码时,就可以避免类型不匹配的问题。
有些OpenGL函数名的最后还有一个字母v,它表示这个函数所接受的参数是一个指向值向量(或数组)的指针,而不是一系列的单独参数。许多函数既有向量版本也有非向量版本,也有一些函数只接受单独的参数,另外还有一些函数要求至少有1个参数被指定为向量。下面这几行代码显示了既可以使用向量版本也可以使用非向量版本的函数来设置当前的绘图颜色:
glColor3f(1.0, 0.0, 0.0); GLfloat color_array[] = {1.0, 0.0, 0.0}; glColor3fv(color_array);
最后,OpenGL还定义了GLvoid类型。这种类型最常用于那些接受指向值数组的指针为参数的OpenGL函数。
本文由CC原创总结,如需转载请注明出处:http://blog.csdn.net/oktears/article/details/42214739- OpenGL学习02_函数语法与命名规范
- OpenGL学习02_函数语法与命名规范
- c#学习 6/22 命名规范与函数
- OpenGL学习——函数语法(数据类型,函数命名方式,辅助库,平台独立性)
- c语言命名规范_学习笔记
- python_基础学习_命名规范/编码/注解
- java语法中的命名规范
- ios _开头命名规范
- PHP注释语法规范和命名规范]
- PHP注释语法规范和命名规范
- 全局变量与命名规范
- 程序设计与开发中函数方法及变量命名规范
- NDK函数命名规范native method not found(给函数命名喜欢用_分割的同学们)
- Symbian 学习笔记之一命名规范与数据类型
- 变量的命名规范之学习与思考
- CSS 命名规范及标题供参考与学习
- Java 学习日志1.2 基本数据类型与命名规范。
- java学习之旅12--变量_成员变量和局部变量_常量_命名规范
- 在阿里云、微软Windows Azure、亚马逊AWS 上使用Nginx配置http正向代理服务器
- 登录注册页
- 树、二叉树、森林之间的转换方法
- Android 驱动开发系列四
- Do Not Go Gentle into That Good Night
- OpenGL学习02_函数语法与命名规范
- ios:UIAlertView自动消失
- Android 驱动开发系列五
- 欧拉图
- 错过一张火车票就错过回家和家人团聚的美好
- Vim编辑器的配置
- 3-3-3 while循环-验证程序
- 深入理解Android解析XML(一)
- constraintsWithVisualFormat