是否有 glXSwapBuffers() 的 XLib 替代品?
Is there an XLib alternative for glXSwapBuffers()?
我希望我的应用程序立即将所有数据绘制到显示器上。在 windows 中有 SwapBuffers()
功能可以做这样的事情,你可以在第二个虚拟 window 上完成所有绘图,然后用现有的 window 交换那个虚拟 window一。 OpenGL 提供了一个 glXSwapBuffers()
函数来做大致相同的事情。但是我不想使用它。因此,我很好奇,在纯 XLib
中实现此功能的方法是什么
在 X11 中有 Pixmap
资源被视为 Drawable
(如 Window
)。
然后您可以根据需要使用尽可能多的步骤绘制到 Pixmap
,最后使用 XCopyArea()
将生成的绘图发送到 Window
。
注意Pixmap
站在服务器端,就像Window
一样,所以最后的复制操作是在服务器本地进行的。
有X双缓冲区扩展:https://www.x.org/releases/X11R7.6/doc/libXext/dbelib.html
The Double Buffer Extension (DBE) provides a standard way to utilize
double-buffering within the framework of the X Window System.
协议:https://www.x.org/releases/X11R7.7/doc/xextproto/dbe.html
从未见过它在实践中使用过。如果你成功了,请告诉我。
我希望我的应用程序立即将所有数据绘制到显示器上。在 windows 中有 SwapBuffers()
功能可以做这样的事情,你可以在第二个虚拟 window 上完成所有绘图,然后用现有的 window 交换那个虚拟 window一。 OpenGL 提供了一个 glXSwapBuffers()
函数来做大致相同的事情。但是我不想使用它。因此,我很好奇,在纯 XLib
在 X11 中有 Pixmap
资源被视为 Drawable
(如 Window
)。
然后您可以根据需要使用尽可能多的步骤绘制到 Pixmap
,最后使用 XCopyArea()
将生成的绘图发送到 Window
。
注意Pixmap
站在服务器端,就像Window
一样,所以最后的复制操作是在服务器本地进行的。
有X双缓冲区扩展:https://www.x.org/releases/X11R7.6/doc/libXext/dbelib.html
The Double Buffer Extension (DBE) provides a standard way to utilize double-buffering within the framework of the X Window System.
协议:https://www.x.org/releases/X11R7.7/doc/xextproto/dbe.html
从未见过它在实践中使用过。如果你成功了,请告诉我。