gpt4 book ai didi

c++ - SDL 无法创建 OpenGL 窗口

转载 作者:行者123 更新时间:2023-11-28 05:46:41 25 4
gpt4 key购买 nike

这是我的代码:

void Game::init()
{
SDL_Init(SDL_INIT_EVERYTHING);

_window = SDL_CreateWindow("Game Engine", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, _screenWidth, _screenHeight, SDL_WINDOW_OPENGL);
}

由于某些原因,这不起作用,但是当我将 SDL_WINDOW_OPENGL 替换为 SDL_WINDOW_RESIZABLESDL_WINDOW_FULLSCREEN 时,它工作正常。当我使用 SDL_WINDOW_OPENGL | 时它也不起作用SDL_WINDOW_FULLSCREEN。有什么我可以做的吗?

我正在将 Kdevelop 与 Ubuntu 一起使用,如果这有什么不同的话。

更新:

所以我想出了问题所在。事实证明,当您构建同时支持 GLX 和 EGL 的 SDL 时,它总是使用 EGL。我必须用 --disable-video-opengles

编译它

最佳答案

是的,您很可能支持 OpenGL,但是是哪个版本?在 Ubuntu 上,您可以通过打开终端并键入 glxinfo | 来获取此信息。 grep OpenGL,它应该为您提供支持的最高版本。之后,您需要在 SDL 中设置这些属性。例如,要创建 OpenGL 3.3 上下文:

SDL_Init(SDL_INIT_VIDEO);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);

确保在创建上下文或窗口之前执行此操作。

关于c++ - SDL 无法创建 OpenGL 窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36081319/

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