在后台缓冲区和前台缓冲区之间交换时,后台缓冲区中的内容变得未定义。我想使用“窗口系统”来定义它,例如 GLX、EGL、WGL。使用诸如 OpenGL (glClear) 之类的“本机”渲染器是我的后备计划,不必费心提及它。它是备份的原因是因为我不想弄乱本机渲染上下文。对于这个问题,我会坚持使用 X/GLX,但如果您倾向于描述如何在其他环境中执行此操作,请继续。
从 Xlib 文档(http://www.x.org/docs/X11/xlib.pdf)中,我找到了一个操作 XClearWindow,用于清除带有“背景像素”的窗口(顺便说一句真棒的名字......不是)。
- XClearWindow 是否清除前/后或两个缓冲区?我猜后台缓冲区是有道理的,但我无法仅从 Xlib 文档中弄清楚……如果有人问起三重缓冲区,那不是我!
- 它是与 OpenGL 渲染同步的,还是我必须通过例如在操作之前调用 glxWaitGL 来同步自己?
- 命令是否阻塞,即停止直到完成?实施依赖?
关于如何在使用窗口系统 (GLX) 进行交换后清除后台缓冲区的其他建议已得到应用。
干杯!