如何在 XLib 中隐含窗口背景绘画?



我是X和Linux编程的新手。使用 VC++ 和 Windows 抑制窗口背景重绘(以减少调整窗口大小时的闪烁)非常容易。然而,架构和为X找到全面文档的难度完全是另一回事。

您可以创建一个pixmap,该将用作屏幕外的临时缓冲区,绘制到其中,并在完成所有绘制操作后仅更新一次窗口背景:

Pixmap pixmap = XCreatePixmap(display,
rootWindow,
width,
height,
XDefaultDepthOfScreen(screen));
// Draw into pixmap
// ...
// ...
// And update window background after that
XSetWindowBackgroundPixmap(display, window, pixmap);
XClearWindow(display, window);

最新更新