仲村と申します
From:が違いますが、[ruby-ext:00332]を出した人間と同一人物です。

>>>In message Thu, 29 Jul 1999 10:53:56 +0900
    "[ruby-ext:00344] Re: Ruby/Gtk + Imlib patch"
    Hiroshi Igarashi <igarashi / ueda.info.waseda.ac.jp> writes:

> ToDoに書いておけば誰かやってくれると思ってました(^_^)

ruby-gtk-0.19の時に作り始めていたのですが、TODOに入ってたので、出して
しまおう、と思った次第で。。(^^;

> 20行程度で画像ビューアができてしまうので感激してます。

そうなんですよね。しかも、JPEGとかGIFとか考える必要ないし。
しかも、画像表示はそこそこ速い。

> ・クラス名ですが、GdkImlibというモジュールで名前空間が
> 区切られているので
> 
> GdkImlib::ImlibBorder	 →  GdkImlib::Border
> GdkImlib::ImlibModifier	 →  GdkImlib::Modifier
> GdkImlib::ImlibSaveInfo  →  GdkImlib::SaveInfo
> GdkImlib::ImlibShape     →  GdkImlib::Shape
> 
> のように短くしてもいいと思います。
> 
> ・GdkImlib::ImlibはGdkImlibImageのwrapperなので
> 
> GdkImlib::Imlib          →  GdkImlib::Image
> 
> でいいのでは?

了解しました。
今、開発環境が手元にないので、今日の夜か明日、修正したものを出します。

> メモに書かれている点については問題はないと思いますが、
> 「メモリ使用量がどんどん増えていく」に関しては調べてみます。

増えていくのは、Xサーバのメモリ使用量なんです。

調査のために、Data_Wrap_Struct()で指定するfree関数にダミーのfree()関数
を割り当てて、メモリが増えていくスクリプトをgdbで動かし、ダミーのfree
関数が呼ばれるタイミングを観察したんです。
すると、GC.startが入っていないスクリプト([ruby-ext:00332]のパッチに入
れたsampe4.rbとか)では、ダミーfree関数が全く呼ばれませんでした。
当然なのかもしれませんが、GC.startを入れたスクリプトでは、GC.startを実
行するたびにダミーfree関数が呼び出されているのが観察できました。

上のことから、GCされるトリガがわかれば調査を進められるかな、と思ったん
ですけど、GCまわりは(も)良くわかっていないので、断念。
で、対症療法的に、get_pixmap の中に、GC.startのC関数とおぼしき rb_gc() 
を入れて見ると、一応メモリが増えていくことはなくなったんですが、こんな
ことをやっちゃっていいのかが良くわからず。。

、、というところで、状況を放置してあります。


> `imlib-config --libs-gdk` を実行して結果が空文字列なら
> `gtk-config --libs` を試すということにすればいいと思います。
> こちらで修正しておきます。

よろしくお願いします。

-- 
仲村 秀樹
deki / honda-eng.co.jp, deki / pfu.co.jp, deki / yk.rim.or.jp