SDL / OpenGL结果不一致?

时间:2010-01-24 19:49:28

标签: c++ opengl sdl

我正在使用这个小SDL / OpenGL游戏。它运行得很好,但只能在一台计算机上运行。如果我编译它并在我的桌面上运行它,它只会弹出一个空白屏幕。如果我在我的上网本上运行它,它工作正常,我能够看到我想要呈现的内容。我的问题是:什么可能导致这些不一致的渲染结果?为什么一个程序运行完美而另一个程序受损?

3 个答案:

答案 0 :(得分:0)

我认为当您使用SDL_Init初始化SDL并通过API请求其他资源时,您实际上是在检查您的请求是否成功?如果没有,那么无论如何你都可以解释为什么你会得到一个空白的屏幕。

答案 1 :(得分:0)

根据您使用的系统,如果您提出要求,SDL可能会也可能不会返回硬件表面,您可能需要或不必调用SDL_Flip(screen)来交换视频缓冲区。在Mac OS X上尤其如此,其中窗口化应用程序只能使用软件表面。如果要使用SDL和OpenGL启用双缓冲,请调用SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1),而不是在SDL_DOUBLEBUF的标记中传递SDL_SetVideoMode()

答案 2 :(得分:0)

感谢所有的回复,但结果却是硬件/窗口管理器奇怪的一些组合。我添加了更多配置客户端并使其在窗口中运行的功能,现在至少我得到了一些东西。如果您想查看代码,请浏览here.