我的OpenGL版本不支持缓冲区绑定

时间:2012-02-21 17:23:52

标签: opengl hardware drivers

这是为什么?我想知道,因为我在互联网上看到很多文章和各种教程,很难看到一些不涉及缓冲区绑定的东西。我唯一的绑定函数是glBindTexture。这是否意味着我的司机明显过时了?

修改

抱歉缺乏信息。我的OpenGL 3.1版来自英特尔集成GPU。另外,我认为我缺少glBindBuffer等功能的原因主要是因为它不会在Qt中显示为我可以在自动完成中使用的函数。

1 个答案:

答案 0 :(得分:2)

  

我唯一的绑定功能是glBindTexture

很可能你被OpenGL实现导出其功能的方式所迷惑。 Windows上的opengl32.dll和libGL.so很可能只会给你OpenGL-1.1功能(Windows Vista和/实际上会给你OpenGL-1.4,大多数Linux / BSD驱动程序会给你OpenGL-2.1)。必须通过所谓的扩展系统加载超出(以及缓冲区对象超出)的任何内容。

最简单可靠的方法:

  1. 转到http://glew.sf.net获取与您的开发环境相匹配的版本
  2. 在开发环境中安装GLEW
  3. 将所有出现的#include <GL/gl.h>替换为#include <GL/glew.h>
  4. 在OpenGL上下文变为当前后,在代码中调用glewInit()