GTKとOpenGL

malibu-bulldog2007-08-19

最近もっぱらGTKを触っています。
XWindowとくらべて、やはり楽ですね。

メニューが簡単に作れたり、ファイル選択ダイアログや警告ダイアログも用意されているし。
けれど、GTKを使ってOpenGLとなると…かなり大変でした。

といのも僕はXWindowとOpenGLのプログラムはやったことあるんですが、OpenGL用のXVisualInfoを作って使うことしかしりません。

そして、GTKの基本であるGtkWidgetのXVisualInfoを設定しなおす方法がわからないのです。
それらしい関数はあるんだけど、よくわからんので止めました。

GTKOpenGLを使うためのライブラリもあるみたいだけど、これまた調べたりするのは面倒だ。

ということで、OpenGLを使う所はXWindowでやることにしました。
具体的にはOpenGLでの描画領域用にXWindowを作成するけれど、それをGtkWidgetの子ウィンドウとして登録。

ついでに、XWindowのプロパティをいじっておいて、OpenGL用XWindowでのイベントを親ウィンドウのGtkWidgetで取ってこれるようにしました。

ここら辺は本来ならもっとうまいやりかたがあるのかもしれませんが、まぁ自分が知っている知識だけで出来たので良しとしました。
(新しい事覚えるの嫌です、覚えるなら時間があるならアルゴリズムを考えていたい)

とりあえず、OpenGL用XWindowを使って描画領域を緑色で塗り、2次元座標でポリゴンにテクスチャを貼ったプログラムを作りました。

スクリーンショットがそれです。