理解一段代码从OpenGL红皮书
Understanding a piece of code from the OpenGL Red Book
我对OpenGL和图形编程完全陌生,所以我很快就拿起了OpenGL红皮书。我刚刚开始阅读,但我不能理解下面的代码。这可能与我不太熟悉c++枚举有关,但是我们如何在声明GLuint数组时使用NumVAOs和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;
这背后的想法是,以
为例enum VAO_IDs {triangle, NumVAOs};
当你需要更多的VAO时,你可以在NumVAOs之前添加它们的id,这将导致NumVAOs始终具有你正在使用的VAO数量的值。
我想我不明白你为什么要这样组织你的代码,但也许在后面的书中会变得清晰。
相关文章:
- 如何在使用 SDL 编写的游戏中仅实现一部分 OpenGL 代码?
- 在Emscripten和Qt之间共享OpenGL代码
- 如何使用 Atom 编译 c++ opengl 代码
- 使用 NDK for Android 编写 OpenGL 代码
- OpenGL代码在GLFW上工作,但在QT OpenGL上不起作用
- 将OpenGL 1.x代码移植到WebGL
- 将 OpenGL 代码从 C++ 移植到 Python
- XCode 4.5简单的OpenGL C 代码问题
- 从带有OpenGL代码的C 转换为使用GUI的QT应用程序
- OpenGL代码在一台计算机上运行缓慢(但在其他计算机上则不然)
- 在Netbeans上编译和运行OpenGL代码
- OpenGL代码显示人体图形,从二进制文件中读取顶点
- 为什么我的 OpenGL 代码不起作用
- (Q) OpenGL 代码无法正确打开窗口
- 旧的OPENGL代码,希望使用glPushMatrix()
- OpenGL代码工作,不管我使用什么输入/窗口处理程序
- 是运行在GPU上的opengl代码
- 新的OpenGL代码编译,但没有发生
- 为什么这个openGL代码没有输出任何东西
- 如何正确地将OpenGL代码添加到外部函数