【发布时间】:2015-08-16 12:53:00
【问题描述】:
我正在使用 SDL2 / OpenGL 编写应用程序,并进行一些模板操作。
在 Mac 上一切正常,但在 PC 上,模板无法正常工作。
经过仔细检查,我意识到以下代码在我的 Mac 和 PC 上提供了不同的结果:
SDL_Init(SDL_INIT_VIDEO);
SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8);
SDL_CreateWindow( ... );
SDL_CreateRenderer( ... )
...做事...
当我在 Mac 上打印出模板位 (SDL_GL_STENCIL_SIZE) 时,我得到 8。当我在 PC 上执行相同操作时,我得到 0。
无论我是在实际 PC 上还是在 Mac 上的 PC 模拟器上运行它,都会发生同样的情况。
我错过了什么?如何强制 SDL2 使用模板缓冲区请求上下文?
在我看来,Mac 的 OpenGL 实现与 PC 的默认值不同,所以我可能忘记做某事来专门请求模板缓冲区,但我在网上找不到任何好的信息......
帮助^_^' ?
【问题讨论】:
-
所以即使opengl可用并且我在创建窗口时使用了SDL_WINDOW_OPENGL,PC上的SDL2也默认为direct3d。是否有其他方法可以强制 SDL 使用 OpenGL?
标签: c++ opengl sdl-2 stencil-buffer