シューティングゲーム製作技術総合 13機目at GAMEDEV
シューティングゲーム製作技術総合 13機目 - 暇つぶし2ch27:名前は開発中のものです。
07/03/07 21:43:02 DvFrCz1t
>>24
>空き時間をポーリングでつぶさないで他のスレッドにCPUを渡す、って感じ。
 
そうなんだ。制御系だとハードウェア割り込み(タイマ割り込み)が使えたりするから
これをトリガーにして定期的にフラグチェックとか色々できたりするんだけどね。この場合
ポーリング(スリープ&フラグチェックのループ)のためのスレッド生成も不要だったりする。
コンシューマって結構違うんだね。
 
ちなみにミドルウェアを使う場合はハードウェア割り込みは隠蔽されちゃうんだけど
アプリ側でコールバック関数(フラグチェック関数)を登録するような形で同様の
サービスを受けられる場合が多いよ。

あと、ポーリング(スリープ&フラグチェックのループ)の待ちぼうけの時間が惜しいから
スレッドを分けてるんだよね。それも結局は「1フレームで処理を終わらせるため」の
最適化目的だと思うんだ。PCの場合もDirectXの中に糞重いメソッドがあって待ちぼうけ
食らったりするけど、気長に待ってても処理時間は余裕で余ったりする。それと
DirectX使う場合はdllが別スレッドで走ってるので、待ちぼうけ食らいそうな描画メソッドとかは
ドライバ内部のコマンドキューに突っ込んですぐに処理を返してくれたりする。
 
アプリ側コードがしょぼいシングルスレッドでも、DirectXが何とかしてくれてる。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch