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