我正在使用Windows,我注意到很多功能都是灰色的,因为我猜#ifdef GL_GLEXT_PROTOTYPES没有定义。其中之一是VBO扩展。我应该只定义GL_GLEXT_PROTOTYPES吗?否则我可以使用VBO,因为我使用的是OpenGL32.dll(我希望我的应用程序没有默认情况下不包含在Windows中的dll依赖项。)谢谢
答案 0 :(得分:18)
是的,这很正常,预计会有类似的内容:
#define GL_GLEXT_PROTOTYPES
#include <GL/GL.h>
如果您正在尝试编写符合OpenGL 3的代码,通常会将其更改为:
#define GL_GLEXT_PROTOTYPES 1
#define GL3_PROTOTYPES 1
#include <GL3/GL3.h>
答案 1 :(得分:11)
我建议您使用GLEW摆脱这个问题。
这是一个很长的故事,但是恢复,Windows的OpenGL库只暴露OpenGL 1.1入口点,因此除了该版本之外的所有函数都加载了wglGetProcAddress。 GLEW通过这样做解决了这个问题。
只需链接到GLEW和GLU / GLUT(如果您使用它们)。
答案 2 :(得分:0)
如果您使用的是Glew OpenGL扩展程序,请确保将其初始化。
glewInit();
否则将什么也没画。
答案 3 :(得分:0)
您可以使用View为您提供glGenBuffers
。