アダプターのリフレッシュ レートと Present 操作または Present 操作が完了したレートの関係について説明します。 これらの値は、 D3DCAPS9の PresentationIntervals フィールドのフラグ値としても機能します。
| 定数 | Description |
|---|---|
|
レンダリング時に、ソース サーフェスとターゲット サーフェスの両方としてフロント バッファーを使用します。 フレーム同期はスケジュールされますが、表示されるサーフェスは変更されません。 このフラグは、アプリケーションが全画面表示モードで、D3DSWAPEFFECT_FLIPEXが指定されている場合にのみ使用できます。 このフラグは Direct3D 9Ex でのみ使用できます。 |
|
hal デバイスでプレゼンテーションをスケジュールすることはできません。 このフラグが Present の呼び出しで設定されていて、ハードウェアが処理中または垂直同期間隔を待機している場合、Present は blit 操作が不完全であることを示すD3DERR_WASSTILLDRAWINGを返します。 |
|
予約済み。 |
|
D3DPRESENT_INTERVAL_IMMEDIATEは、この Present 呼び出しに適用されます。 このフラグは、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_COPY_VSYNCを使用することと同じです。 このオプションは、ウィンドウ化されたスワップ チェーンと全画面表示のスワップ チェーンの両方で常に使用できます。 「備考」を参照してください。 |
|
ドライバーは、垂直方向のリトレース期間を待機します。
現在 の操作は、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 を呼び出してシステム タイマーの解決を強化します。 これにより、垂直同期の品質が向上しますが、処理時間が若干長くなります。 どちらのパラメーターも垂直方向の同期を試みます。
Requirements
| Requirement | 価値 |
|---|---|
| Header |
|