10 章: 重ね合わせ処理

10 章は ウィンドウの重ね合わせ処理。ウィンドウといっても今あるのは、背景とマウスカーソルのみなのでレイヤといったほうが分かりやすいかもしれない。各レイヤの構造体が保持する情報は座標、位置、高さ(z-index)、VRAM などを持っている。で、画面の再描画は下のレイヤから指定された領域のみ VRAM を書いていくという処理。また、レイヤを移動させるときは移動前と移動後の 2 つの領域を描画。

と書けば、簡単なのだけど、本章の本質的な内容は再描画処理を如何に軽くするか、すなわち如何にループを少なくするかということでした。なぜループか。

たとえば、

a = hoge[foo + bar] + another_var1;
b = hoge[foo + bar] + another_var2;

とあるコードのインデックスの計算をまとめて

int i = foo + bar;
a = hoge[i] + another_var1;
b = hoge[i] + another_var2;

としても、こんなのはコンパイラの最適化処理の範疇なので生成されるバイナリは両者とも同じになる(メンテナンサビリティは違うけど)。なので、処理速度を早くしようと思ったら、まずはループを疑えということだ。ループ内の処理は×ループ回数で効いてくるからね。

次は改善するとしたら何にになるのかなぁ、数値演算とか? if とか switch とか ?

10 章終わり。

トラックバック(0)

このブログ記事を参照しているブログ一覧: 30日で作る自作OS 13/30 - 再描画のカイゼン

このブログ記事に対するトラックバックURL: http://tsuyuguchi.com/mt/mt-tb.cgi/197

最近の画像

Zero History - ギブスンの新作が 9 月に発売 -
虐殺器官
ドミニオンのランダマイザアプリ、dominion minion が日本語対応!
ハイペリオンの没落 ~ 完結...でもまだ続く~
ハイペリオンの没落 ~ 完結...でもまだ続く~
ハイペリオン - 長大な叙事詩 SF のスタート -
ハイペリオン - 長大な叙事詩 SF のスタート -
「都市と星」 - 10億年と言われてもよく分からない -
「星を継ぐもの」 - 良い Sci-Fi -
トールサイズのニューロマンサーを買った
虎よ、虎よ! - 主人公フォイルの執念の物語 -

私の本棚

 

自転車走行距離

自転車走行距離

Flickr Photos

FlickrPhotos

なかのひと

Y!ログール

このサイトについて

2015年2月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28

アーカイブ

My Update

  • Loading...

その他

あわせて読みたいブログパーツ