トップページ > 過去ログ > 記事閲覧
画面外への描画の処理速度について
名前:たかし 日時: 2012/10/01 09:37

始めまして。ログ検索で探したのですが、いまいちピンとくるものが見つからず、 質問させていただくことになりました。過去ログを見逃していましたら、お叱りください。 さて早速質問なのですが、例えば100*100のキャラを大量に描画する処理があったとします。 この場合、以下のように画面からはみ出したキャラを描画しない方が効率がよいでしょうか? for(int i = 0; i < SIZE; ++i) { if(x[i] > -100 && y[i] > -100 && x[i] < 640 && y[i] <480) DrawGraph(x[i], y[i], ghandle, TRUE); } それとも描画範囲外への描画処理は自動的に無効化されるので、わざわざ条件分岐を書く 必要は無いでしょうか?また、SetDrawArea関数を使って描画可能領域を設定していた場合でも 条件分岐はあった方がいいでしょうか? お答えいただければ嬉しいです。よろしくお願いします。

Page: 1 |

Re: 画面外への描画の処理速度について ( No.1 )
名前:管理人 日時:2012/10/02 01:34

DrawGraph内でも描画範囲判定はしていますが、少なくとも載せて頂いたコードの if文一個に比べればDrawGraphを呼ぶだけで数倍の負荷が掛かりますので、 DrawGraphを呼ぶ前に範囲判定をする意味は十分にあります ( 「関数呼び出し」の時点でif文一つに比べれば大きな負荷が掛かりますし、  DrawGraph 内では正常なハンドル値かどうかの判定やソフトウエアレンダリングか  どうかの分岐や描画の準備処理が実行されます )
Re: 画面外への描画の処理速度について ( No.2 )
名前:たかし 日時:2012/10/03 08:30

管理人様自らご説明ありがとうございます。 大変参考になりました。
Re: 画面外への描画の処理速度について ( No.3 )
名前:たかし(解決) 日時:2012/10/03 08:34

解決です。

Page: 1 |