GLX双缓冲仅在两次交换后工作

时间:2016-09-09 22:33:53

标签: opengl glx

我有一个程序,使用opengl和GLX。在开始时,我选择具有以下属性的帧缓冲配置:

const int attributes[] = {GLX_RENDER_TYPE, GLX_RGBA_BIT, GLX_DOUBLEBUFFER, True, None};
fb_configs = glXChooseFBConfig(display, screen_index, attributes, &fb_configs_count);

当我必须重新渲染窗口时,我清除屏幕,渲染内容然后交换缓冲区:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
if_render();
glXSwapBuffers(display, drawable);

我交换缓冲区后,而不是窗口的内容,我看到窗口后面是什么。我的猜测是交换缓冲区处于某种初始状态,并且实际上没有任何内容被渲染到它中。如果我再次触发缓冲区交换,我窗口中的内容可以正确显示。

我错过了什么吗?

修改

这适用于fluxbox 1.3.7和mesa 11.0.6。 我使用直接渲染上下文。

0 个答案:

没有答案