了解OpenGL红皮书中的一段代码

时间:2014-03-28 16:10:03

标签: c++ opengl graphics enums

我对OpenGL和图形编程一般都是新手,所以我很快就拿起了OpenGL红皮书。我刚刚开始阅读,但我无法理解下面这段代码。这可能与我不熟悉C ++枚举有关,但在声明GLuint数组时我们如何使用NumVAO和NumBuffers?这不是两个1元素数组吗?是否有任何理由说他们被宣布为这样?

以下是代码:

#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 个答案:

答案 0 :(得分:1)

这背后的想法是以例如

枚举VAO_IDs {Triangles,NumVAOs};

当你需要更多的VAO时,你需要在NumVAOs之前为它们添加id,这将使NumVAOs始终将你正在使用的VAO数量作为一个值。

以为我不明白为什么你会想要以这种方式构建你的代码,但也许这在本书的后面会变得清晰。