glBindBuffer:缓冲区名称不是指OpenGL生成的缓冲区对象

glBindBuffer:缓冲区名称不是指OpenGL生成的缓冲区对象,opengl,glfw,glew,Opengl,Glfw,Glew,在从SFML切换到GLFW以进行窗口管理后,尝试绑定我的vbo会导致OpenGL错误GL_INVALID_操作1282,详细缓冲区名称不引用OpenGL生成的缓冲区对象 我手动检查了我的vbo,它似乎被分配了一个正确的值 下面是我可以使用glew-2.1.0和glfw-3.3.0生成的工作示例 如果glfwInit { 返回退出失败; } std::cout在核心配置文件中,缓冲区对象名称值必须由reserved生成。这在兼容性配置文件上下文中不是必需的 您错误地试图通过而不是glGenBuff

在从SFML切换到GLFW以进行窗口管理后,尝试绑定我的vbo会导致OpenGL错误GL_INVALID_操作1282,详细缓冲区名称不引用OpenGL生成的缓冲区对象

我手动检查了我的vbo,它似乎被分配了一个正确的值

下面是我可以使用glew-2.1.0和glfw-3.3.0生成的工作示例

如果glfwInit { 返回退出失败; } std::cout在核心配置文件中,缓冲区对象名称值必须由reserved生成。这在兼容性配置文件上下文中不是必需的

您错误地试图通过而不是glGenBuffers生成缓冲区名称

glGenVertexArrays1和vbo; glBindBufferGL_数组_缓冲区,vbo; 这会在尝试通过生成缓冲区对象时导致无效的_操作错误

使用glGenBuffers解决此问题:

glGenBuffers1和vbo; glBindBufferGL_数组_缓冲区,vbo; 注意,您不指定配置文件类型,默认情况下,配置文件类型为GLFW_OPENGL_ANY_profile,未指定。

在核心配置文件中,缓冲区对象名称值必须由保留生成。这在兼容性配置文件上下文中不是必需的

您错误地试图通过而不是glGenBuffers生成缓冲区名称

glGenVertexArrays1和vbo; glBindBufferGL_数组_缓冲区,vbo; 这会在尝试通过生成缓冲区对象时导致无效的_操作错误

使用glGenBuffers解决此问题:

glGenBuffers1和vbo; glBindBufferGL_数组_缓冲区,vbo;
注意,您没有指定配置文件类型,默认情况下,配置文件类型是GLFW\U OPENGL\U ANY\U配置文件,未指定。

必须是,而不是哦,我对这个核心配置文件上下文一无所知。感谢您将此指向我,我将进行调查:@VictorRouin:我对核心配置文件上下文一无所知,这与核心/兼容性无关。这只是一个复制粘贴错误。你把glgenvertexarray放在了你想说的glGenBuffers的地方。我发誓不是这样的,使用SFML的代码功能非常好。我的回答是关于拉比76的,他删掉了其中的一个,他给我指出了这个核心概要文件的内容。我还不明白为什么,但显然用SFML创建的上下文并不在意。@Rabbid76为什么要删除你的答案?应该是这样的,而不是哦,我对这个核心配置文件上下文一无所知。感谢您将此指向我,我将进行调查:@VictorRouin:我对核心配置文件上下文一无所知,这与核心/兼容性无关。这只是一个复制粘贴错误。你把glgenvertexarray放在了你想说的glGenBuffers的地方。我发誓不是这样的,使用SFML的代码功能非常好。我的回答是关于拉比76的,他删掉了其中的一个,他给我指出了这个核心概要文件的内容。我还不明白为什么,但显然用SFML创建的上下文并不在意。@Rabbid76为什么要删除你的答案?谢谢,我现在更明白发生了什么。我会确保指定上下文,以便在任何平台上都有一个正确的配置文件。谢谢,我现在更了解发生了什么。我将确保指定上下文,以便在任何平台上都有正确的概要文件。