HimaJyunおめでたい事に、(開発者にとっては)にっくきWindowXPがご臨終、時期にVistaも後を追って滅してくれる......お陰様で新しい機能が使えるのだが......時にはその新しい機能が余計な悪影響を及ぼす事もある。ちなみに0にしてはいけないグラボの設定を変えるこの記事は開発者向けに......なんだけども、このタイトルだと一般人(プレイヤー)の一本釣りを達成してしまうかも知れないので、先にそれらの方向けにドライバの設定で無効にする方法も紹介しておく。GeForceRadeonのやり方は知らん、私はGeForceしか持っていないんだ、カネが無いからね。NVIDIAコントロールパネルを開く、開き方が分からない?デスクトップを右クリックして「NVIDIAコントロールパネル」を選択だ!!3D設定の管理に進み、グローバル設定から「レンダリング前最大フレーム数」を「1」にする。言うかそうした方が良いかも、先ほどのやり方ではコンピュータ全体の設定が変わってしまうから。タブを「プログラム設定」に切り替えれば特定のプログラムだけ別の設定を適用する事が出来る。(「追加」を押せばリストにないゲームも追加可能)リアルタイム性が要求されるFPSとかだけ1にする、とかで良い(もっとも、FPSなんかは既に1に変更するプログラムが仕込まれているだろうが)例えば東方紅魔郷とか妖々夢とかの「リアルタイム性が要求されるけど、それらを1にする様なプログラムにはなってなさそう」みたいなゲームには良いかも。プログラム側から変更するこちらが本文、要は自分の作っているDirectX製ゲームからこれらを操作して1にしてしまおう、と言う訳。SetMaximumFrameLatencySetMaximumFrameLatencyメソッドでこの描画遅延をどれくらいにするか変更出来る。&device3d)device3d->SetMaximumFrameLatency(1);IDirect3D9Exが持つSetMaximumFrameLatencyを使う。DirectX8では無理(今更これを使って開発している奴はいない)、DirectX9でも無理、DirectX9EXである必要がある。9EXはVistaから追加された物、実質DirectX9.5みたいな感じで、基本的にDirectX9と同じように扱える。(XP非対応だが、サポート切れOSに対応するのは時間の無駄だ)9EXだとD3DPOOL_MANAGEDが使えなくなるが、代わりにデバイスロストが発生しづらく(フォーカスを失ってもデバイスロストしない)様になっているので問題なし。DirectX10~はIDXGIDevice1にSetMaximumFrameLatencyがあるのでそちらを使う。ちなみに0にしてはいけないどこかで「SetMaximumFrameLatency(0)にして遅延をなくしましょう」みたいに書かれていた気がするので言っておくと、これは0にしてはいけない。このメソッドに指定出来る引数の数値、IDirect3DDevice9ExのSetMaximumFrameLatencyは1~20で、IDXGIDevice1の方は1~160を指定するとデフォルトに戻る、すなわち3を指定した状態と同じ事になって無意味。DirectXスポンサーリンクB!LINEへ送る関連記事[Bukkitプラグイン制作講座-其之十二]MOBスポナーから湧いた敵か判定する前回の記事ではメタデータを取り扱いました。これを利用するとMOBスポナーから湧......続きを読む→[Bukkitプラグイン制作講座-其之一]プロジェクトの作成迄Bukkitのプラグインを開発するにあたって、まずはプロジェクトの作成を行う必要......続きを読む→[Bukkitプラグイン制作講座-其之十一]メタデータを扱う不慣れ(はじめて)な事にしばらく手出ししていると、(記事を書けるレベルの)慣れて......続きを読む→[Java]JDK付属のJVisualVMでプロファイリングプログラムに隠れた無駄な処理を省き、真のパフォーマンスを叩き出すためには欠かせな......続きを読む→[VC++]exeに内包したリソースを読み込むもはや驚く事でもなかろうかと思われますが、exe(PE)ファイルにはデータを内包......続きを読む→PREV[VisualStudio]C++でもXMLドキュメントコメントを自動挿入したい!!NEXT[VisualStudio]さまざまな「ブレークポイント」の使い方ナカのヒト:HimaJyun​散って美しいのは桜だけです、情報はまとまっていた方が美しいのです。