gpt4 book ai didi

c++ - SDL + OpenGL : access violation when creating buffer

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:44:58 34 4
gpt4 key购买 nike

我正在尝试使用 SDL 创建一个窗口,然后使用 GLEW 和 OpenGL 绘制它。

到目前为止,我已经制作了一个窗口并使用 OpenGL 对其进行了初始化,但是当我尝试创建一个缓冲区时,我遇到了有线异常。

我的代码是这样的:

#include <GL\glew.h>
#include <SDL.h>
#include <iostream>

int main(int argc, char** argv)
{

SDL_Window* window;
SDL_Init(SDL_INIT_EVERYTHING);

//creating SDL window
window = SDL_CreateWindow("",100,100,500,400,SDL_WINDOW_OPENGL);

//setting up opengl
SDL_GL_CreateContext(window);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
glClearColor(0.6f, 0.0f, 0.0f, 1.0f);

//check if glew was initialized properly
if (glewInit() == GLEW_OK)
std::cout << "glew ok" << std::endl;
else
goto end;

////////////////////////////////////////////////I'm Getting The Error Here
GLuint bufferID;////////////////////////////////
glCreateBuffers(1,&bufferID);///////////////////
glDeleteBuffers(1,&bufferID);///////////////////

SDL_Event sdlEvent;

//event loop
while (1)
while (SDL_PollEvent(&sdlEvent))
if (sdlEvent.type == SDL_QUIT)
goto end;

end:
SDL_Quit();

return 0;
}

错误:在 opengl_project.exe 中的 0x00000000 抛出异常:0xC0000005:访问冲突执行位置 0x00000000。

最佳答案

问题是 opengl 已经过时(版本 4.3)并且 glCreateBuffers 是 4.5+ 的功能

如果您有类似的问题,解决方案可能是更新您的图形驱动程序或仅使用 glGenBuffers(版本 1.5+)。

关于c++ - SDL + OpenGL : access violation when creating buffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40749649/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com