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