根据我的理解,函数xcb_copy_area本质上是将一个区域从一个xcb_drawable复制到另一个。那么,我不知道为什么它也会将图形上下文作为参数,将其视为副本的源,这大概已经绘制或呈现了。在这种情况下,这个参数的用途是什么?
值得注意的是,我对图形上下文的理解不是很好,但解释它们的资源却不多。我假设这是我关于xcb内部所发生的事情的心智模型的一个问题。
发布于 2020-04-17 13:57:33
相关文档:https://www.x.org/releases/X11R7.6/doc/xproto/x11protocol.html#requests:CopyArea
文本说明包含了这一点(重点、地雷和原来的强调以及一个链接丢失了):
如果dst-drawable是一个具有非零背景的窗口,则这些对应的目标区域是平面图(带有所有目标的平面掩码和函数副本)和该背景。无论是平铺,还是目标是窗口还是像素映射,如果gc中的中的GraphicsExposure图形是真的,那么所有相应的目标区域都会生成GraphicsExposure事件。
因此,我的理解是: GC用于绘制窗口的背景,这是使用其大多数属性的地方。
文档显式地说明使用了哪些GC组件:
GC组件:功能、平面掩码、子窗口模式、图形曝光、剪辑x源、剪辑y源、剪辑掩码。
function和plane-mask指定了源和目标是如何“组合”的。因此,GC.subwindow-mode不仅可以复制,而且可以做所有其他(奇怪的)事情,使用CopyArea可以说明子窗口会发生什么。可以裁剪它们或绘制them.graphics-exposures是关于响应drawingclip-x-origin,clip-y-origin而生成的事件,而clip-mask显然是关于裁剪绘图的。https://stackoverflow.com/questions/61262906
复制相似问题