c - 如何限制 Xlib 图形基元绘制的表面?

标签 c xlib

我认为这就是剪辑的用途,但我找不到任何示例来执行此操作。 我需要:

  • 通过设置新的剪辑蒙版(更改 GC)来限制区域
  • 画画
  • 将 GC 设置回之前的状态

最佳答案

您可以使用引用 hereXSetClipRectangles() 来完成此操作和 XSetClipMask() 引用 here

所以:

Display dpy; //This is your display, we'll assume it is a valid Display
GC gc; //This is your GC, we'll assume it is a valid GC
XRectangle recs[]; //This is an array containing the clipping regions you want.
int recs_n; //This is the number of rectangles in the 'recs' array.

XSetClipRectangles(dpy, gc, 0, 0, recs, recs_n, Unsorted); //Enable clipping
drawMyClippedGraphics(); //Call to whatever you want to use for drawing
XSetClipMask(dpy, gc, None); //Restore the GC

有关更多信息,请在终端中输入 man functionName

关于c - 如何限制 Xlib 图形基元绘制的表面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9037676/

相关文章:

c - 从 i386 移动到 x86_64 时的浮点精度

c++ - `f(void)` 表示 C++11 或 C 中没有参数?

c - 从 Gtk TreeStore 中删除行时出错

c - 从 TCP 数据包负载中获取主机字段

c++ - 处理程序是通过 XSetErrorHandler global 还是 threadlocal 设置的?

keyboard-events - 在 Xlib 中模拟 CAPS LOCK 按下

在 Xlib 中点击透明窗口

c - ISO C90 禁止混合声明和代码 sscanf

c - Xlib 获取鼠标滚轮速率

drawing - 使用 Xlib 启用抗锯齿