OpenGL 程式設計/基礎/命名規範
外觀
既然我們已經使用了一些 OpenGL 函式,現在是時候瞭解我們在這些函式中使用的那些 **3f** 的含義了。
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 定義了一些資料型別,它們優於內建的 C 資料型別。更常用的型別是
- GLenum
- GLboolean
- GLvoid
- GLbyte
- GLshort
- GLint
- GLubyte
- GLushort
- GLuint
- GLsizei
- GLfloat
- GLdouble
大多數都是不言自明的。GLenum 指的是一個常量,任何以 **u** 開頭的型別都表示無符號。所有這些型別都等效,但在編寫 OpenGL 程式碼時優先於它們的 C 對應型別。