2014-03-28 45 views
0

我完全不熟悉OpenGL和圖形編程,所以我很快拿起了OpenGL紅皮書。我剛開始閱讀,但我無法理解以下代碼片段。這可能與我不熟悉C++枚舉有關,但我們如何在聲明GLuint數組時使用NumVAO和NumBuffers?這不是使兩個1元素數組?是否有任何理由宣佈他們是這樣的?瞭解OpenGL紅皮書中的一段代碼

下面是代碼:

#include <iostream> 
using namespace std; 
#include "vgl.h" 
#include "LoadShaders.h" 
enum VAO_IDs { Triangles, NumVAOs }; 
enum Buffer_IDs { ArrayBuffer, NumBuffers }; 
enum Attrib_IDs { vPosition = 0 }; 
GLuint VAOs[NumVAOs]; 
GLuint Buffers[NumBuffers]; 
const GLuint NumVertices = 6; 

回答

1

這背後的想法是,服用例如

枚舉VAO_IDs {三角形,NumVAOs};

當您需要更多的VAO時,您需要在NumVAO之前爲它們添加ID,這會導致NumVAO始終將您所使用的VAO的數量作爲一個值。

以爲我不明白你爲什麼想用這種方式來構建你的代碼,但也許這在本書後面會變得很清楚。