[OSASK 6648] jenny1.1a Re: ウィンドウ移動アルゴリズム

 こんにちは、I.Tak.です。

From: Hidemi KAWAI <kawai !Atmark! imasy.org>
Subject: [OSASK 6642] Re: ウィンドウ移動アルゴリズムについて
Date: Mon, 03 Nov 2003 22:27:22 +0900

> > ……つまり、川合さんのコードでは目的は達せられなかったん
> >です(;_; 状況は変化しませんでした。
> 
>   がーん、しくしく・・・。なぜだあ!

 winman0の解読が進んだ結果, job_general1をもう一行直したら
うまく動きました。やった!

> >3)そこに入ってるWINFLG_OVERRIDEDISABLEの意味はなんですか?
> > 一時的かつ最優先の描画禁止 (ウィンドウを下から再描画する
> > 際の順序を保証するため) という認識でOKですか?
> >これだけ教えて頂ければなんとかなります。多分。
> 
>   ええと括弧内の部分を除いて、「一時的な描画禁止」と認識してくだ
> さい。つまり、conditionではaccessenableな値を示しているのに、あ
> えて一時的にdisableにしなければいけない状況というのはあるのです
> 。たとえば、ウィンドウ移動中とか。そんな風に、一時的に描画禁止に
> しておきましたので、必要に応じて解除してください、というのをjob_
> generalに伝えるためのbitです。

 解読した感じでは「そのときの描画許可状態」という感じでした。
win->conditionはjob開始前の状態で, win->job_flag0 & 3 はjob終了時
の予定という使い方のようです。

>   ウィンドウを下から描画するために、上のウィンドウをoverride-dis
> ableにしている部分がありましたか?・・・いや、原理的に多分そんな
> ことをする必要はないと思うので、もしそういう部分があったとしたら
> 僕の勘違いの残骸です(下のウィンドウを描いている間に、オーバラッ
> プした部分を勝手にいじられても問題はないかと。だってそこはどうせ
> 書き直される部分なのですし)。

 再描画予定のウィンドウ同士が重なっていたら、どちらも一時的に
描画禁止にするという仕組みでした。そしてgeneral2の中で下から順に
再描画シグナルを送っています。だから順序整理のためかと思ったの
ですが……なるほど、省略しておきましょう。


 というわけで記念にスナップショットです。コードネームはjenny1.1at。
http://user.ecc.u-tokyo.ac.jp/~g240845/osask/lzh/jenny11a.lzh

 VGAに加えて, vesa8のputboxとboxfill.psetも高速化しています。
256*256のウィンドウにグラフィックボックスを張り付け、毎秒一回
loadfac1とF10で切り替えるという計測では
    Jenny1a jenny1.1a
    0.40%   0.39%     (8bpp aligned)
    0.99%   0.40%     (8bpp not aligned)
    1.18%   0.81%     (16bpp tiling)
    1.01%   0.72%     (16bpp fast)
    1.15%   0.77%     (32bpp tiling)
    1.02%   0.71%     (32bpp fast)
という高速化を達成しました。うちのマシンでは。ちなみにputboxと
boxfillの寄与は半々くらいです。
 なおVGAの8bppルーチンは実験中の遅いルーチンが入っています(^^;
川合さんのルーチンはごちゃごちゃしてるのにけっこう高速。むむ。

 タイトルバー色の変更はまだ差分描画に対応していないので、そこも
直さないといけません。あとpokon0も自前でウィンドウ制御しているので
差分描画に対応させます。

I.Tak. <g240845 !Atmark! mail.ecc.u-tokyo.ac.jp>
http://user.ecc.u-tokyo.ac.jp/~g240845/



ML番号でジャンプ
ML単語検索