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