【发布时间】:2026-01-12 10:25:02
【问题描述】:
Gtk+ 3 migration guide 展示了如何使用GdkEventExpose.region 字段为重新渲染小部件提供细粒度区域。我们已经在 Inkscape 中做了类似的事情,以避免在我们的绘图画布上渲染过多复杂的东西。
但是,指南中的示例显示了如何为旧的 Gtk+ 2 的expose_event 处理程序执行此操作。
我如何在新的 Gtk+ 3 绘图处理程序中执行等效操作,该处理程序接收“已剪辑”的 Cairo 上下文作为参数,而不是 GdkEventExpose?
我想一种可能性是在“已剪裁”的 cairo 上下文中使用 cairo_copy_clip_rectangle_list 来获取构成要绘制区域的矩形列表。有没有人有使用这个的经验?这似乎是一种明智的做法?
【问题讨论】: