opengl 3.3 / glow 1.9 VBO支持返回false

opengl 3.3 / glew 1.9 VBO support returns false

本文关键字:支持 返回 false VBO glow opengl      更新时间:2023-10-16

我建立了一个简单的OpenGL窗口,并检查了它的支持。返回的支持:

  • GLEW: 1.9.0

  • OpenGL: 3.3.0

我遇到的问题是由于创建形状(VBO)。在根据教程创建形状时,我无法将图像(一个简单的三角形)显示到屏幕上。实现这一点的唯一方法是使用即时模式或基本顶点阵列。

我询问了关于使用GLEW检查vbo支持的问题,但是我找到的所有建议,例如:

if ( glewGetExtension("GL_VERSION_1_9") 
    && glewGetExtension( "GL_ARB_vertex_buffer_object" ))
        {
            std::cout << "VBO supported." << std::endl;
        }
    else
        {
            std::cerr << "ARB_vertex_buffer_object not supported!" << std::endl;
        }

返回false。

有什么建议吗?

停止检查ARB_vertex_buffer_object。实际上,停止使用 ARB_vertex_buffer_object。使用核心功能,而不是扩展功能。如果你要求的是OpenGL 3.3版本,那么你在core中有缓冲对象功能。使用。

glewGetExtension("GL_VERSION_1_9")

没有这样的扩展。也没有OpenGL 1.9版本,所以我不知道为什么你会这样检查它。

如果你想检查OpenGL版本,你应该使用OpenGL功能来做:

GLint major = 0;
GLint minor = 0;
glGetIntegerv​(GL_MAJOR_VERSION​, &major);
glGetIntegerv​(GL_MINOR_VERSION​, &minor);

弄清楚为什么我得到错误。问题是我在创建窗口之前检查了辉光。所以我在添加了条件之后创建了窗口,一切都开始正常工作。为了防止有人遇到这个问题,在创建窗口后调用glewInit()