こんにちは、I.Tak.です。 > でもwinmanが例外で死ぬのなら、多分メモリ不足です。壁紙用には4MB > しか取ってないのに、チェックしていません。これをもっと大きくすれ > ばなんとかなると思います (←楽観的)。 こんなこと言いましたが、止まってるのはwinmanじゃなくてGAPIでした。 しかもブレイクポイントで。vesaのドライバ番号とAPIのカラーモード番号 が同じだと思い込んでいたのが原因でした。 > 8bit→8bit変換が乱れるのは完全にチェックし忘れです…… これはパレット変換でメモリを破壊したからでした。バッファオーバー フローというやつですな。 というわけで修正しました。 http://user.ecc.u-tokyo.ac.jp/~g240845/osask/ ちなみに今はOSASKの壁紙にJPEGを貼りつけるべく誤差拡散とか 書いてます。nikqさんのルーチンは画像全体を出力してくれるので メモリをたくさん使いますが、まあ仕方ないと割りきることにします。 ……出力ルーチンに誤差拡散をつければいいのか?! ところでATでのスクリーンショットですけど、↓ここを見ると http://www.umekkii.jp/data/computer/file_format/bitmap.html ># 「画像の高さ」は符号付きの値である。ただし、負数は一般的でない。 > * 正数 - ボトムアップ(左下から右上)の順に、画像データは記録される。 > * 負数 - トップダウン(左上から右下)の順に、画像データは記録される。 とあります。これを利用して出力を簡単にしてみたらどうでしょう (誰も見られなかったりして……)。 I.Tak. <g240845 !Atmark! mail.ecc.u-tokyo.ac.jp> http://user.ecc.u-tokyo.ac.jp/~g240845/