GTK+-2.0 を使用してウィンドウの現在の背景ピックスマップを保存する方法を探しています
ピックスマップを背景として設定できる関数を見つけましgdk_window_set_back_pixmap()
たが、その逆、つまり背景ピックスマップを取得できるものは見つかりませんでした。
ピックスマップを背景として設定できる関数を見つけましgdk_window_set_back_pixmap()
たが、その逆、つまり背景ピックスマップを取得できるものは見つかりませんでした。
存在しないため、そのような機能を見つけることができません。X Windows FAQから:
件名: 174) XGetWindowAttributes はウィンドウの背景ピクセル/ピックスマップを取得できますか?
いいえ。一度設定すると、ウィンドウの背景ピクセルまたはピックスマップをクライアントが再度読み取ることはできません。これは、クライアントがピックスマップを作成し、それをウィンドウの背景ピックスマップに設定してから、ピックスマップを解放できるためです。ウィンドウはこの背景を保持しますが、ピックスマップ自体は破棄されます。ウィンドウに (ピックスマップではなく) 背景ピクセルがあることが確実な場合は、 を使用
XClearArea()
して領域を背景色にクリアし、 を使用XGetImage()
してそのピクセルを読み戻すことができます。ただし、このアクションはウィンドウの内容を変更し、露出との競合状態に悩まされます。[NCD の Dave Lemke と Sun の Stuart Marks の厚意による]
GTK は X11 プリミティブのかなり単純なラッパーであるため、X11 が提供する以上のものは提供しません。