据我所知,函数xcb_copy_area
本质上是将一个区域从一个xcb_drawable复制到另一个区域。我不确定然后为什么还要将图形上下文作为参数,因为可能已经绘制或渲染了副本的来源。在这种情况下,此参数有什么用?
值得注意的是,我对图形上下文的理解不是很好,但是解释它们的资源并不多。我假设这是我的xcb中发生的事情的心理模型问题。
相关文档:https://www.x.org/releases/X11R7.6/doc/xproto/x11protocol.html#requests:CopyArea
文本描述包含此内容(强调我的意思和原始重点以及链接丢失):
如果dst-drawable是具有除None以外的背景的窗口,则这些对应的目标区域具有该背景的平铺(具有所有像素的平面蒙版,并具有Copy功能)。不管平铺和目的地是窗口还是像素图,如果gc中的graphics-exposures为True,则将生成所有相应目的地区域的GraphicsExposure事件。
所以,我的理解是:GC用于绘制窗口的背景,这是使用其大多数属性的地方。
文档明确说明使用了哪些GC组件:
GC组件:功能,平面蒙版,子窗口模式,图形曝光,clip-x来源,clip-y来源,clip-mask
function
和plane-mask
指定了源和目标如何“组合”。因此,CopyArea
不仅可以复制,而且可以完成GC可能进行的所有其他(奇怪)操作。subwindow-mode
表示子窗口会发生什么。可以将它们剪裁或画在上面。graphics-exposures
是关于响应绘图而生成的事件clip-x-origin
,clip-y-origin
和clip-mask
显然是关于剪切图形的。