加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

c – SDL2 – 检查是否创建了OpenGL上下文

发布时间:2020-12-13 19:10:20 所属栏目:Linux 来源:网络整理
导读:我正在使用SDL2创建一个应用程序. OpenGL,它在3台不同的计算机上运行良好.但是在另一台计算机(更新的arch linux)上,它没有,它崩溃了这个错误: OpenGL context already created 所以我的问题是:如何检查是否已经创建了OpenGL上下文?然后,如果它已经创建,我

我正在使用SDL2&创建一个应用程序. OpenGL,它在3台不同的计算机上运行良好.但是在另一台计算机(更新的arch linux)上,它没有,它崩溃了这个错误:

OpenGL context already created

所以我的问题是:如何检查是否已经创建了OpenGL上下文?然后,如果它已经创建,我该如何获得它的处理?

如果我不能这样做,我该如何绕过这个问题?

最佳答案
事实上,SDL2实际上并没有要求创建一个OpenGL上下文.但是,如果你要求它在OpenGL完全不起作用的情况下创建一个OpenGL上下文,SDL2会喜欢,自由式,自由式. (实际原因是它在错误检查中做得不好,所以如果X无法创建OpenGL上下文,它会认为是因为已经创建了上下文)

因此,要回答第三个问题(“我如何绕过此问题”),您必须在尝试使用OpenGL之前修复它.数字吧?

要回答第一个和第二个,好吧,没有我知道的API调用…但你可以采用稍微不同的方式:

SDL_Window* window = NULL;
SDL_GLContext* context = NULL; // NOTE: This is a pointer!

...

int main(int argc,char** argv) {
    // Stuff here,initialize 'window'

    *context = SDL_GL_CreateContext(window);

    // More stuff here

    if (context) {
        // context is initialized!! yay!
    }

    return 2; // Just to confuse people a bit =P
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读