Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ opengl 3.3/glew 1.9 VBO支持返回false_C++_Opengl_Vbo_Glew - Fatal编程技术网

C++ opengl 3.3/glew 1.9 VBO支持返回false

C++ opengl 3.3/glew 1.9 VBO支持返回false,c++,opengl,vbo,glew,C++,Opengl,Vbo,Glew,我构建了一个简单的OpenGL窗口并检查了它的支持。它返回的支持: GLEW:1.9.0 OpenGL:3.3.0 我遇到的问题是由于创建形状(VBO)。根据教程创建形状时,我无法将图像(简单的三角形)显示在屏幕上。实现这一点的唯一方法是使用即时模式或基本顶点数组 我询问过如何使用GLEW检查vbo支持,但我发现的所有建议如下: if ( glewGetExtension("GL_VERSION_1_9") && glewGetExtension( "GL_ARB_

我构建了一个简单的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;
        }
if(glewGetExtension(“GL\U版本1\U 9”)
&&glewGetExtension(“GL_ARB_顶点_缓冲区_对象”))
{

std::cout停止检查
ARB\u vertex\u buffer\u对象
。事实上,停止使用ARB\u vertex\u buffer\u对象。使用,而不是扩展功能。如果您要求的是OpenGL 3.3版,那么您的核心中就有buffer对象功能。使用它

glewGetExtension("GL_VERSION_1_9")
没有这样的扩展,也没有OpenGL版本1.9,所以我不知道你为什么要这样检查它

如果您想检查OpenGL版本,您应该:

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

找出了出现错误的原因。问题是我在创建窗口之前检查了glew。因此,我在创建窗口后添加了条件后,一切都开始正常工作。万一有人遇到此问题,请调用
glewInit()
创建窗口后。

感谢您的输入,但这无助于检查VBO是否受支持。另外,未定义glGetIntegerv(我收到错误)。@SpicyWeenie:if
glGetIntegerv
为“未定义”,您的代码中存在严重问题。这意味着您甚至找不到基本的GL 1.1函数。如果您使用的是核心函数(不是ARB),只需检查OpenGL 1.5(如
If(!GLEW_VERSION_1_5){error();}
)就足够了。