我收到一个段错误,GDB说是来自SDL_GL_SwapBuffers。但是,我无法想象为什么。 SDL文档没有提到调用swapBuffers的具体前提条件,除了允许使用双缓冲。这是我在初始化OpenGL时必须打开的选项还是硬件功能?SDL_GL_SwapBuffers段错误
我的代码:
(忽略了未使用的变量,奇怪的意见和其他的事情我还没有prettied这根本上:。P)
我收到一个段错误,GDB说是来自SDL_GL_SwapBuffers。但是,我无法想象为什么。 SDL文档没有提到调用swapBuffers的具体前提条件,除了允许使用双缓冲。这是我在初始化OpenGL时必须打开的选项还是硬件功能?SDL_GL_SwapBuffers段错误
我的代码:
(忽略了未使用的变量,奇怪的意见和其他的事情我还没有prettied这根本上:。P)
说明
交换OpenGL的缓冲区,如果 双缓冲支持。
您正在使用SDL_GL_SwapBuffers()
而不启用双缓冲。
SDL_Surface *screen = SDL_SetVideoMode(800, 600, 32, SDL_DOUBLEBUF | SDL_HWSURFACE);
你为什么混合GL和SDL呼叫?看起来像SDL应该给你一个OpenGL上下文并使其处于活动状态,然后你可以调用glSwapBuffers。
这是相当普遍的...和glSwapBuffers不存在,我可以找到。有glutSwapBuffers和glxSwapBuffers ....交换缓冲区更多地是窗口工具包(在这种情况下是SDL)的功能。 – 2010-03-08 17:13:37
ack,你是对的!我猜,使用一个将wgl *和gl *函数放入一个类并剥离前缀的工具箱太多了。 – 2010-03-08 17:23:00
这工作!谢谢 :) – RyanG 2010-03-10 12:26:31