D3DPRESENT
アダプターの更新速度と 、Present 操作または Present 操作が完了したレートの関係について説明します。 これらの値は、 D3DCAPS9 の PresentationIntervals フィールドのフラグ値としても機能します。
常時 | 説明 |
---|---|
|
レンダリング中は、ソースサーフェスとターゲットサーフェスの両方としてフロントバッファーを使用します。 フレーム同期はスケジュールされますが、表示されるサーフェスは変更されません。 このフラグは、アプリケーションが全画面表示モードで、D3DSWAPEFFECT_FLIPEXが指定されている場合にのみ使用できます。 このフラグは、Direct3D 9Ex でのみ使用できます。 |
|
hal デバイスでプレゼンテーションをスケジュールすることはできません。 このフラグが Present の呼び出しで設定されていて、ハードウェアが処理中または垂直同期間隔を待機している場合、Present は blit 操作が不完全であることを示すD3DERR_WASSTILLDRAWINGを返します。 |
|
予約済み。 |
|
この 現在 の呼び出しでは、D3DPRESENT_INTERVAL_IMMEDIATEが適用されます。 このフラグは、D3DSWAPEFFECT_FLIPEXを使用する場合にのみ指定できます。 ウィンドウ表示と全画面表示の表示動作は同じです。 これは、遅延として検出されたフレームを破棄し、コンポジション時に後続のフレームを表示するメディア アプリに特に役立ちます。 このフラグが正しく指定されていない場合は、無効なパラメーター エラーが返されます。 D3DPRESENT_FORCEIMMEDIATEsを持つ複数の連続するフレームがキューに入っている場合、ウィンドウ表示と全画面表示の両方のプレゼンテーションに対して最後のフレームのみが表示されます。 このフラグは、Windows 7 以降のオペレーティング システムの Direct3D 9Ex で使用できます。 D3DSWAPEFFECT_FLIPEXを使用する場合、D3DPRESENT_INTERVAL_IMMEDIATEまたはD3DPRESENT_INTERVAL_FORCEIMMEDIATEを使用して提示された各フレームは、前のフレームの現在の間隔をオーバーライドします。 たとえば、フレーム A (D3DPRESENT_INTERVAL_ONE)、フレーム B(D3DPRESENT_INTERVAL_ONE)、フレーム C(D3DPRESENT_INTERVAL_ONE)、フレーム D(D3DPRESENT_INTERVAL_FORCEIMMEDIATE) を使用して次のフレームをキューに入れた場合、フレーム D はフレーム C の現在の間隔をオーバーライドします。 現在の間隔ごとに表示されるフレームは、フレーム A、フレーム B、(フレーム C によってオーバーライドされる) フレーム D です。 「解説」を参照してください。 |
|
これは、D3DPRESENT_INTERVAL_ONEとほぼ同じです。 「解説」を参照してください。 |
|
ドライバーは、垂直方向のリトレース期間を待機します (ランタイムは引き裂きを防ぐために "ビームフォロー" します)。
現在の 操作は、画面の更新よりも頻繁に影響を受けなくなります。ランタイムは、アダプターの更新期間ごとに最大 1 つの Present 操作を完了します。 これは、DirectX 8.1 でD3DSWAPEFFECT_COPYVSYNCを使用する場合と同じです。 このオプションは、ウィンドウと全画面表示の両方のスワップ チェーンで常に使用できます。 「解説」を参照してください。 |
|
ドライバーは、垂直方向のリトレース期間を待機します。
現在の 操作は、1 秒ごとの画面更新よりも頻繁に影響を受けるわけではありません。 PresentationIntervals の上限 ( D3DCAPS9 を参照) を確認して、ドライバーでD3DPRESENT_INTERVAL_TWOがサポートされているかどうかを確認します。 |
|
ドライバーは、垂直方向のリトレース期間を待機します。
現在の 操作は、3 番目の画面更新よりも頻繁に影響を受けるわけではありません。 PresentationIntervals キャップ ( D3DCAPS9 を参照) を確認して、ドライバーでD3DPRESENT_INTERVAL_THREEがサポートされているかどうかを確認します。 |
|
ドライバーは、垂直方向のリトレース期間を待機します。
現在の 操作は、4 回目の画面更新よりも頻繁に影響を受けるわけではありません。 PresentationIntervals メンバー ( D3DCAPS9 を参照) を調べて、ドライバーでD3DPRESENT_INTERVAL_FOURがサポートされているかどうかを確認します。 |
|
ランタイムは、ウィンドウ クライアント領域を直ちに更新し、アダプターの更新期間中に複数回更新する可能性があります。 これは、DirectX 8 でD3DSWAPEFFECT_COPYを使用する場合と同じです。
現在の 操作はすぐに影響を受ける可能性があります。 このオプションは、ウィンドウと全画面表示の両方のスワップ チェーンで常に使用できます。 「解説」を参照してください。 |
|
表示されるバック バッファーの内容は、線形色空間にあります。
|
D3DPRESENT_VIDEO_RESTRICT_TO_MONITOR |
レンダリングされたコンテンツをアダプターがターゲットとしているモニターまたはデバイスにクリップし、Flip3D ビューのコンテンツのサムネイルと、他のモニターのタスク バーのサムネイルを表示します。 このフラグは、Direct3D 9Ex でのみ使用できます。 Windows Vista のこの機能の詳細については、「 デスクトップ ウィンドウ マネージャー 」を参照してください。 デスクトップコンポジションモードで実行していない場合、フラグは D3DPRESENTFLAG_DEVICECLIPと同じ動作をします。 メモ: このフラグは、スワップ効果D3DSWAPEFFECT_FLIPEXでのみ使用する必要があります。 このフラグを 他 のスワップ効果と共に使用することは非推奨となり、今後のバージョンの Windows では機能しない可能性があります。 |
|
オーバーレイ位置またはカラーキー データを更新します。実際の反転は発生せず、画像の表示期間も変更されません。 このフラグは、Direct3D 9Ex でのみ使用できます。 |
|
オーバーレイ ハードウェアをオフにします。 このフラグは、Direct3D 9Ex でのみ使用できます。 |
|
カラーキー データを再描画します。 このフラグは、Direct3D 9Ex でのみ使用できます。 |
注釈
ウィンドウ モードでは、D3DPRESENT_INTERVAL_DEFAULT、D3DPRESENT_INTERVAL_IMMEDIATE、D3DPRESENT_INTERVAL_ONEがサポートされます。 D3DPRESENT_INTERVAL_DEFAULTとD3DPRESENT_INTERVAL_ONEはほぼ同等です (以下のタイマー解決に関する情報を参照してください)。 フレームごとに 1 つだけ存在するという点で、COPY_VSYNCと同様に動作し、ビームフォローによる引き裂きを防ぎます。 これに対し、D3DPRESENT_INTERVAL_IMMEDIATEは無制限のプレゼンテーションレートを提供しようとします。
全画面表示モードでは、更新レートやスワップ効果に関係なくD3DPRESENT_INTERVAL_IMMEDIATEをサポートすることで、ウィンドウ モードと同様の使用方法がサポートされます。 D3DPRESENT_INTERVAL_DEFAULTは既定のシステム タイマー解決を使用しますが、D3DPRESENT_INTERVAL_ONEは timeBeginPeriod を呼び出してシステム タイマーの解決を強化します。 これにより、垂直同期の品質が向上しますが、処理時間がわずかに長くなります。 どちらのパラメーターも垂直方向の同期を試みます。
要件
要件 | 値 |
---|---|
ヘッダー |
|