[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
[OSASK 2472] Re: 改造OSASK修正版.
- Subject: [OSASK 2472] Re: 改造OSASK修正版.
- From: Hidemi KAWAI <kawai !Atmark! imasy.org>
- Date: Tue, 20 Nov 2001 01:29:33 -0000
こんにちは、川合です。
I.Tak. さんは 2001/11/19 21:31:48 の「[OSASK 2469] Re: 改造OSASK
修正版.」で書きました:
> スクロールを止めて確認しました。
> おおっ、反対側にはみ出してます。多分4ドットくらいまでです。
そんな、まさか!・・・と思って僕もやってみたら、ええ、確かにご
指摘の通りでした。深く反省しております。
>右下へカーソルを持っていったらブレークポイントが来て止まりました。
>カーソルをめいっぱい右下に持っていかないと、例外が出るかは分かり
>ませんので。
そう、それは僕も分かっていました。でも前に試した時は右下でも例
外が出なかったような・・・と思ったら、1024x480の時でした。これは
出ませんね(笑)。
>今のままでは、横幅は1020まででしょう。
その通りです。・・・しくしく。
・・・が、ここで引いては名がすたるので(笑)、クリッピングルー
チンのバグフィクスをしました。[OSASK 2466]に示した部分を以下のよ
うに修正してください。
} else /* (false) */ if (x >= 1024 - 16) {
work->mx1 = 1024;
maskflag |= 0x10;
if (x >= 1024 - 12) {
maskflag |= 0x18;
if (x >= 1024 - 8) {
maskflag |= 0x1c;
if (x >= 1024 - 4) {
maskflag |= 0x1e;
}
}
}
}
ようするに、比較の際に「>=」とすべきところが「>」になっていたの
が問題だったのです。・・・とすると、AT版の800x600も間違っている
かも・・・。
とにかく上記の修正をすれば、1024でもOKです。ぶい!
もちろん、monzasp0ではこのバグフィクスをしておきます。
<追伸>
AT版も間違っていました。条件をそろえると800x600で反対側にはみ
出しているのが確認できます。条件というのはとても微妙なのですが、
マウスカーソルの右端を画面の右端に接触させて、1ドットだけ右へ動
いてください。そうすると、反対側に黒い点が2つでていて、マウスカ
ーソルの一部が出ていることが分かります。それより右へ移動すると、
バグ入りクリッピングルーチンは正しく機能して「はみ出し」は起こり
ません。
もちろんこれもgendiba0で修正します。
それでは。
--
川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/