[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:001263] Re: gdcl
堀之内です。
ちょっと前の西澤君のメールについて。
> > あと、図が大きくなっ
> > てくるとアニメのストップボタンが即座に反応しません。時間をかけて
> > 余計に何枚か書いてはじめて止ります。
> すぐに止まるようにしました。
> いままではタイムアウト関数を使って
> 決まった時間が経てば次の絵を描くようにしていたので
> 処理が間に合わないとたまっていて
> ストップボタンを押してもすべて書き終わるまで止まりませんでした。
> 今回はアイドル関数を使って処理が終わってから次の絵を描くようにしました。
> したがって早いマシンではアニメがはやい過ぎることがあるかもしれません。
> そのようなときはウィンドウの大きさを大きくするとゆっくりになります。
Gtkのオンラインマニュアルをみても timeout 関数を使うと、処理が
「たまる」のが何故か分かりません(Gtkのマニュアルはだいたいが簡
潔すぎるのですが)。一枚余計に書くだけで済まないのが不思議です。
今は idle 関数を使ってるわけですが、もしも idle_add で登録した関
数の中で sleep を呼んだら、どうなるのでしょう。ストップにちゃん
と反応しますか。(ちなみに Ruby の sleep 関数は秒単位ですが、小数
点を受け付けますね。その場合、内部で usleep とかを呼ぶのでしょう。)
なお、sleep に与えるオブジェクトをスケールウィジェットで指定でき
るようにすれば、アニメの速度を調整出来そうですね。