【问题标题】:What is the point of graphics context in xcb_copy_area?xcb_copy_area 中的图形上下文有什么意义?
【发布时间】:2020-04-17 01:54:55
【问题描述】:

根据我的理解,函数xcb_copy_area 本质上是将一个区域从一个 xcb_drawable 复制到另一个。我不确定为什么它还会将图形上下文作为参数,因为副本的源可能已经被绘制或渲染。这种情况下这个参数有什么用呢?

值得注意的是,我对图形上下文的理解不是很好,但解释它们的资源并不多。我假设这是我对 xcb 内部情况的心理模型的问题。

【问题讨论】:

    标签: c x11 xcb


    【解决方案1】:

    相关文档:https://www.x.org/releases/X11R7.6/doc/xproto/x11protocol.html#requests:CopyArea

    文本描述包含以下内容(重点是我的,原来的重点和链接丢失了):

    如果 dst-drawable 是一个具有非无背景背景的窗口,则这些对应的目标区域将使用该背景平铺(所有平面掩码和复制功能)。无论平铺以及目标是窗口还是像素图,如果 graphics-exposures in gc 为 True,则生成所有相应目标区域的 GraphicsExposure 事件。

    所以,我的理解是:GC是用来绘制窗口的背景的,这也是它的大部分属性都用到的地方。

    文档明确说明使用了哪些 GC 组件:

    GC 组件:函数、平面掩码、子窗口模式、图形曝光、clip-x-origin、clip-y-origin、clip-mask

    • 我猜functionplane-mask 指定了源和目标是如何“组合”的。所以,CopyArea 不仅可以复制,还可以做所有其他(奇怪的)GC 可以做的事情。
    • subwindow-mode 说明子窗口会发生什么。可以将它们剪掉或画在上面。
    • graphics-exposures 是关于响应绘图而生成的事件
    • clip-x-originclip-y-originclip-mask 显然是关于剪裁图纸。

    【讨论】:

    • 感谢分享该链接。我见过的关于 xcb 的最佳文档。
    猜你喜欢
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 2011-06-14
    • 2011-10-12
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 2015-11-01
    相关资源
    最近更新 更多