glutswapbuffers实际上做了什么



前缓冲区指针现在是否指向后缓冲区?还是前缓冲区的内容由后缓冲区的内容更新?如果是这种情况,整个内容块都会更新,还是只更新更改的内容?

opengl.org 上对 glutswapbuffer 的描述是

对用于当前窗口的图层执行缓冲区交换。具体来说,glutSwapBuffers 将当前窗口使用的层的后台缓冲区的内容提升为前端缓冲区的内容。然后,后台缓冲区的内容将变为未定义。

最后一句是什么意思?后台缓冲区现在指向 null?

然后,后台缓冲区的内容将变为未定义。

最后一句是什么意思?

这确实意味着,在交换之后,后台缓冲区的内容可能是所有内容。它可能是前端缓冲区,随机数据,您度假的照片,等等。它没有定义,你不应该对它做出任何假设。

这意味着,glut 并不能保证在后台缓冲区变为前面之后,现在返回的缓冲区将是有意义的东西,就像你假设它包含该信息一样,以前在"旧"前端缓冲区中。我想,它是这样做的,因为否则您将需要第三个缓冲区以这种方式交换缓冲区,这在高性能 3D 中是不可接受的

最新更新