[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 3806] Re: yload v0.0



  こんばんは、川合です。


I.Tak. さんは 2002/06/10 14:25:03 の「[OSASK 3803] yload v0.0」
で書きました:

> loadfacを元にして、yload という物を作りました。負荷をグラフに
>して見せます。バージョン0でアラが目立ちますが。

  おお!・・・最近はいつにもまして大活躍ですねえ。このままだと、
I.Tak.さんのOSASKアプリコレクションができそうです。

> ところで、円筒スクロールをするとなると
>  ・ウィンドウ描画シグナルに対応する(プログラムは大きくなる)
>  ・グラフィックバッファを二倍、描画の手間も二倍(ループ)にする代わりに、
>    円筒スクロールをAPI一発で実現する。
>…という二通りの手段があるのですが(今回は前者を採用し、しかし描画
>シグナルに対応していないのです(^^;;;)、どっちがOSASKらしいスタイル
>でしょうか?

  これはなかなか難しい質問です(笑)。

  基本的には、普通のテキストボックスやグラフィックボックスで扱え
ないような凝ったことは全てウィンドウ制御シグナルに応対することで
成し遂げるべきだというのが僕としてのぐいぐい00仕様の意図するとこ
ろです。そういう意味では、前者にするべきだといえます。

  しかしまあ別にグラフィックバッファを2倍とるという方法は簡単で
問題があるとすればそれはプログラムサイズや描画の手間が2倍になる
事ではなく、単にグラフィックバッファが2倍になる事です。今回の場
合ですと、メモリが4KBだけ余計に使われるということでしょう。

  これをどう思うかです。僕なら、I.Tak.さんと同じように悩むでしょ
う。まあ理想を言うなら、メモリの使用量が少ない方を選ぶ方がいいと
は思いますが、面倒ですしねえ・・・。多分面倒だからってことで、グ
ラフィックバッファ2倍を選ぶことにしそうです。

  ということで僕としては、どちらでも悪くないセンスだと思います。
今回の例はどっちがいいかを決めるには難しいです。その差が拮抗して
いて。

  なお、付属のドキュメントに使用シグナルの説明が書いてありました
が、これは大変良いことです。この場合は外部から制御して使えるシグ
ナルはないのですが、このスタンスは最高にいいです。

(ドキュメントより)
> タスクバーの色を変えるだけでウィンドウを再描画しちゃうOSASKも問題だと
>思いますが。testシリーズを読むと「タイトルバーの色変更シグナルにも
>ウィンドウ再描画で対応してください」みたいなことが書いてあるのはAPI
>ライブラリがそもそも対応してないからだったのね。

  これは多少の誤解が含まれているかもしれないので、フォローします
。僕がそこに記述した真意は以下の通りです。

  タイトルバー色変更シグナルが来ても、その時点での書き換えをして
はいけない(たとえ描画が許可されていても)、その後で必ず再描画シ
グナルが来るので、そのタイミングで描画しなさい、ということです。
もちろん、今はタイトルバーの色だけを変更するファンクションが無い
という指摘も全くそのとおりなのですが。

  本来はwinmanがどのウィンドウともオーバーラップしていないのかど
うかをいちいち判定して、オーバーラップの可能性が無い場合は、再描
画シグナルの代わりに差分再描画シグナルを発行します。この場合、タ
イトルバーのみ書き換えたり、変更があった部分だけ書き換えればいい
のですが、今はまだ特定のテキストボックスの一部だけをflushすると
いうことができないので、いまいちです。

  こういうボロを探すと本当にいっぱいありますね。情けないです。ち
ょっとずつ直していかないと・・・。


  それでは。

--
    川合 秀実(KAWAI Hidemi)
OSASK計画代表 / システム設計開発担当
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/