既存のプロジェクトの 1 つを GTK3+ (C# プロジェクトであるため、GTK-Sharp3 など) に移植しています。その大部分は、あまり変更する必要のない単純なトランジションでしたが、「リージョン スクリーンショット」タイプのシステム (ユーザーが保存したいフルスクリーン イメージの領域を決定する方法) を行っていた方法です。トリミングされたバージョン) は、新しいライブラリで非推奨になったようです (または、少なくとも私は十分に調べていませんでした)。
問題のコードは '[Pixmap].DrawPixBuf' メソッドで、取得元の 'rectangle' と配置する 'destination' の長方形を記述する多数のパラメーターを使用して、pixbuf を Pixmap に描画できます。内部のソース四角形の内容。
私が最初に使用していたコードは次のとおりです。
pmBackBuffer.DrawPixbuf(drawingAreaRegion.Style.BaseGC(StateType.Normal),
pbHazy, 0, 0, 0, 0, platformSpecific.getScreenWidth(), platformSpecific.getScreenHeight(), RgbDither.Normal, 0, 0);
ピックスマップ 'pmBackBuffer' を取り、BaseGC (現在は廃止されているように見える概念) を使用して描画し、ソースの座標 0, 0 から開始し、宛先の現在の画面のサイズに配置します。
カイロがこのタイプのシステムの代替品である可能性があり、オンラインの一部のドキュメントでは、Pixmap オブジェクトが Cairo サーフェスに置き換えられたことが示唆されていますが、それらを使用して Pixbuf を描画できる同様の動作を取得する方法がわかりません。パラメータをサーフェスに追加します。
また、Pixmap を Surface に変換する方法を尋ねる人も見つかりませんでした。逆の方法を見つけましたが、探していた方法ではありませんでした。
そこで質問なのですが、上記の新しいカイロ サーフェスと同様の方法で機能する方法はありますか?
どんな助けでも大歓迎です。