跳转到内容

OpenGL 编程/基础/命名规范

来自维基教科书,开放的书籍,开放的世界

命名规范

[编辑 | 编辑源代码]

既然我们已经使用了一些 OpenGL 函数,现在是时候了解我们在这些函数中使用的那些 **3f** 的含义了。

OpenGL 函数

[编辑 | 编辑源代码]

OpenGL 函数始终以以下方式命名

首先是前缀。在本例中,gl- 表示内置的 OpenGL 函数。GLUT 中的函数将以 glut- 为前缀。稍后,我们将看到 GLU 函数类似地以 glu- 为前缀。
接下来是实际的函数名称。这里,我们正在更改颜色,因此我们提供 Color 作为我们的函数名称。
接下来是我们计划提供给函数的参数数量。这里我们想给它 3 个参数,所以我们写 3。在参数数量不确定的函数(例如 **glTranslatef**)中,这个数字被省略了。
在参数数量之后,我们有我们计划提供的参数类型。在大多数情况下,这可以是 b、s、i、f 或 d 中的任何一个,分别代表字节、短整型、整型、浮点型或双精度型。对于无符号字节、短整型或整型,使用 ub、us、ui。在后面添加一个 v 表示传递数组而不是单独的参数。
最后,我们有实际的参数。

选择你的战斗,选择你的参数

[编辑 | 编辑源代码]

许多函数可以使用不同的参数数量。例如,我们在上一章中使用的 glVertex2f() 函数接受 2 个浮点型参数 x 和 y

glVertex2f(float x, float y)

也可以使用第三个参数 z 来调用

glVertex3f(float x, float y, float z)

或者使用整数而不是浮点数

glVertex3i(int x, int y, int z)

或者使用三个浮点数的数组

glVertex3fv(float * array)

OpenGL 数据类型

[编辑 | 编辑源代码]

OpenGL 定义了一些数据类型,它们优于内置的 C 数据类型。更常用的类型是

  • GLenum
  • GLboolean
  • GLvoid
  • GLbyte
  • GLshort
  • GLint
  • GLubyte
  • GLushort
  • GLuint
  • GLsizei
  • GLfloat
  • GLdouble

大多数都是不言自明的。GLenum 指的是一个常量,任何以 **u** 开头的类型都表示无符号。所有这些类型都等效,但在编写 OpenGL 代码时优先于它们的 C 对应类型。

华夏公益教科书