質問: DXライブラリについて、ScreenFlip()関数の動作が非常に遅いのですが・・・
回答: 【補足回答】 >次のコードを作り、ブレークポイントを使って変数を確認したところ、ScreenFilpにかかる時間はウィンドウモードで27~32ミリ秒、フルスクリーンモードで17~23ミリ秒となりました。 ブレークだと同期の関係で不正確なので、PrintDXなどで表示するようにしてくださいね。 GPUの描画する処理が重い場合は、ScreenFilp内で描画の終了を待つので時間がかかる場合があります。 例えば、DrawGraph()とかの命令は実際に描画するのではなく描画を予約しているだけで、次のフレームにGPUが実際に描画します。 あと、ScreenFlip()はデフォルトで垂直同期(液晶なら一般的に1/60秒周期)を待つ設定です。 なので、ScreenFlipのタイミングは1/60秒の倍数となります。 もし、ScreenFlip()自体に問題があるなら、切り替えはSetWaitVSyncFlag(FALSE);で出来ます。これで試してみてください. ※ 同期は待ったほうが良いで、あくまで実験と言う事で。 DirectXのバージョンや、ビデオカードのドライバ、DXライブラリのバージョン等の相性問題が起こる場合もありますので、そちらも再確認してみてください。 それでもDXライブラリに問題がありそうなら、こちらで質問してもらうとDXライブラリの作者の方に解決してもらえると思います。 「DXライブラリ質問掲示板」 ? 【最初の回答】 sxigumaさん。 なにか使い方が間違っているのでは無いでしょうか? DXライブラリで1/60の速度が出ているゲームは沢山あります。 LoadGraphScreen()とかを使ってしまうとか、メッセージループ中にLoadGraphがあれば確実に遅くなります。 ScreenFlip()前後で時間を計測して、本当にScreenFlip()で時間がかかっているか確認してみてください。