GTK+ または GDK は、Xlib または Xlib-xcb を直接呼び出すか、x イベントを受け取る方法を提供しますか?

GTK+ または GDK は、Xlib または Xlib-xcb を直接呼び出すか、x イベントを受け取る方法を提供しますか?

現在、Xlib-xcbとGTK +を使用してアプリケーションをコンパイルして実行することに問題はありません。しかし、両方を統合して使用できる方法が見つかりませんでした。たとえば、xcb ピックスマップの領域を GDK や GTK+ ピックスマップや他の GTK や GDK オブジェクトのウィンドウにコピーできれば良いでしょう。または、GTKイベントと混合されたxイベントを受信します。現在同じアプリケーションでGTKを使用するには、xcb_wait_for_event()を使用して別のスレッドを使用してイベントループを実行します。 GTK+が定期的なxイベントを提供する方法はありますか?

現在Xlib-xcbとGTK +の呼び出しを混在させるプログラムを実行すると、Ubuntuアプリケーションの実行バーに2つのアイコンが表示されます。大丈夫です。ただ迷惑なだけです。これは、別々の表示変数(Xlib用)とxcb_connection_t変数(xcb呼び出し用)を使用する必要があるためです。ウィンドウマネージャは、X11を使用する2つのアプリケーションがあると仮定する必要があります。

私は趣味生活を楽しむ人であり、楽しさのために、そして自分自身を教えるためにこれを行います。それで、「なぜそうするのか」、「良い考えではない」という反応が合理的であっても、私はまだやりたくて悪い考えでも構いません。本当に楽しかったです!私はある領域から別の領域に画像データをインポートできるいくつかのパッチワークについて考えましたが、GTK +またはGDKからXlib-xcbを直接呼び出して同じデータ接続を共有する方法を探したいと思います。私が見つけられなかったもの。

どちらもクライアントアプリケーションなので、X11サーバーへの接続は1つしかないのが合理的です。そうですか?

問題なくイベントを取得でき、ポインタ、キーボードなどをキャッチしない限り、GTK+側はうまく動作します。

はい、それは本当に悪い考えだと思います!なぜこれを行うべきですか?わかりません。本当に面白いです。

ちなみに、Cairoはピックスマップをサーフェスとして使用するか、ピックスマップでレンダリングされるサーフェスを作成できます。技術用語はよくわかりません。私はX Windowsの文字通話の代わりに文字通話にCairoを使用します。

関連情報