Gtk+ 3 移行ガイドでは、GdkEventExpose.region
フィールドを使用して、ウィジェットを再レンダリングするためのきめ細かい領域を提供する方法を示しています。Inkscape では既にこのようなことを行っており、描画キャンバスに過度の量の複雑なものをレンダリングすることを回避しています。
ただし、ガイドの例では、古い Gtk+ 2 の公開イベント ハンドラーに対してこれを行う方法を示しています。
ではなく、パラメーターとして「準備が整った」Cairo コンテキストを受け取る新しい Gtk+ 3 描画ハンドラーで同等のことを行うにはどうすればよいGdkEventExpose
ですか?
1つの可能性はcairo_copy_clip_rectangle_list
、「準備が整った」カイロコンテキストで使用して、描画する領域を構成する長方形のリストを取得することだと思います。誰もこれを使用した経験がありますか? それは賢明なアプローチのように見えますか?