ホントに30日でできるのか、OS自作入門・10日目「重ね合わせ処理」

さて10日目です。これでようやく3分の1です。うーむ、まだ先は長いな。

前半はいつものようにリファクタリングですね。まずはプロトタイプをつくり、すぐにリファクタリングを行ってソースコード行数を整理するってのは素晴らしいですね。ここにテストコードを作ってデグレしないようにするプロセスがあれば、アジャイルな感じです。

今日はマウスを動かすと下の画像などが乱れる問題の解決と、パフォーマンスチューニングになります。画像が乱れる問題は要は画面をレイヤーに分けてリフレッシュすればよいのですが、単純にやってしまうと描画に時間がかかってしまいます。そのためパフォーマンスチューニングが必要です。

まあ、自分のiMacはパワフルなんで処理が遅いと感じませんでしたけどね笑

描画のパフォーマンス改善方法というとダブルバッファかな?と思いましたが、再描画する範囲を限定する方法で解決しています。ただし、マウスが動いた部分のみを再描画するという処理を加えるだけでなく、レイヤーが重なっている部分を描画しなければいけない場合に一工夫加えることで2段階の改善をしています。読むだけだと、なるほどね、で終わりますが、実際にこれをプログラムするのは面倒くさいなぁ・・・。

とりあえずサンプル見て納得したので今日もヨシとします。