Share via


D3DPRESENT

アダプターの更新速度と 、Present 操作または Present 操作が完了したレートの関係について説明します。 これらの値は、 D3DCAPS9 の PresentationIntervals フィールドのフラグ値としても機能します。

常時 説明
D3DPRESENT_DONOTFLIP
レンダリング中は、ソースサーフェスとターゲットサーフェスの両方としてフロントバッファーを使用します。 フレーム同期はスケジュールされますが、表示されるサーフェスは変更されません。 このフラグは、アプリケーションが全画面表示モードで、D3DSWAPEFFECT_FLIPEXが指定されている場合にのみ使用できます。
このフラグは、Direct3D 9Ex でのみ使用できます。
D3DPRESENT_DONOTWAIT
hal デバイスでプレゼンテーションをスケジュールすることはできません。 このフラグが Present の呼び出しで設定されていて、ハードウェアが処理中または垂直同期間隔を待機している場合、Present は blit 操作が不完全であることを示すD3DERR_WASSTILLDRAWINGを返します。
D3DPRESENT_FLIPRESTART
予約済み。
D3DPRESENT_FORCEIMMEDIATE
この 現在 の呼び出しでは、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_DEFAULT
これは、D3DPRESENT_INTERVAL_ONEとほぼ同じです。 「解説」を参照してください。
D3DPRESENT_INTERVAL_ONE
ドライバーは、垂直方向のリトレース期間を待機します (ランタイムは引き裂きを防ぐために "ビームフォロー" します)。 現在の 操作は、画面の更新よりも頻繁に影響を受けなくなります。ランタイムは、アダプターの更新期間ごとに最大 1 つの Present 操作を完了します。 これは、DirectX 8.1 でD3DSWAPEFFECT_COPYVSYNCを使用する場合と同じです。 このオプションは、ウィンドウと全画面表示の両方のスワップ チェーンで常に使用できます。 「解説」を参照してください。
D3DPRESENT_INTERVAL_TWO
ドライバーは、垂直方向のリトレース期間を待機します。 現在の 操作は、1 秒ごとの画面更新よりも頻繁に影響を受けるわけではありません。 PresentationIntervals の上限 ( D3DCAPS9 を参照) を確認して、ドライバーでD3DPRESENT_INTERVAL_TWOがサポートされているかどうかを確認します。
D3DPRESENT_INTERVAL_THREE
ドライバーは、垂直方向のリトレース期間を待機します。 現在の 操作は、3 番目の画面更新よりも頻繁に影響を受けるわけではありません。 PresentationIntervals キャップ ( D3DCAPS9 を参照) を確認して、ドライバーでD3DPRESENT_INTERVAL_THREEがサポートされているかどうかを確認します。
D3DPRESENT_INTERVAL_FOUR
ドライバーは、垂直方向のリトレース期間を待機します。 現在の 操作は、4 回目の画面更新よりも頻繁に影響を受けるわけではありません。 PresentationIntervals メンバー ( D3DCAPS9 を参照) を調べて、ドライバーでD3DPRESENT_INTERVAL_FOURがサポートされているかどうかを確認します。
D3DPRESENT_INTERVAL_IMMEDIATE
ランタイムは、ウィンドウ クライアント領域を直ちに更新し、アダプターの更新期間中に複数回更新する可能性があります。 これは、DirectX 8 でD3DSWAPEFFECT_COPYを使用する場合と同じです。 現在の 操作はすぐに影響を受ける可能性があります。 このオプションは、ウィンドウと全画面表示の両方のスワップ チェーンで常に使用できます。 「解説」を参照してください。
D3DPRESENT_LINEAR_CONTENT
表示されるバック バッファーの内容は、線形色空間にあります。
  • プレゼンテーションでは、線形空間から sRGB (ガンマ = 2.2) に暗黙的に変換されます。 これは、サポートされている唯一の変換です。
  • このフラグはバック バッファーのコンテンツのプロパティを表すので、 Present 呼び出し中にフラグを指定できます。 言い換えると、アプリケーションは 1 つのフレームに線形コンテンツを表示し、次のフレームで修正されたコンテンツに切り替えることができます。
  • スワップ チェーンが全画面表示の場合、このフラグは無視されます。 (このフラグは、明示的なスワップ チェーン バージョンの Present でのみ使用できます。 Present メソッドは flags パラメーターを受け取りません)。
  • このフラグは常に受け入れられますが、ドライバーがD3DCAPS3_LINEAR_TO_SRGB_PresentATIONを公開した >場合にのみ有効になります。
  • サポートされているバック バッファー形式は X8R8G8B8 のみです。
「ウィンドウスワップチェーン」を参照してください。
D3DPRESENT_VIDEO_RESTRICT_TO_MONITOR
レンダリングされたコンテンツをアダプターがターゲットとしているモニターまたはデバイスにクリップし、Flip3D ビューのコンテンツのサムネイルと、他のモニターのタスク バーのサムネイルを表示します。
このフラグは、Direct3D 9Ex でのみ使用できます。
Windows Vista のこの機能の詳細については、「 デスクトップ ウィンドウ マネージャー 」を参照してください。 デスクトップコンポジションモードで実行していない場合、フラグは D3DPRESENTFLAG_DEVICECLIPと同じ動作をします。
メモ: このフラグは、スワップ効果D3DSWAPEFFECT_FLIPEXでのみ使用する必要があります。 このフラグを のスワップ効果と共に使用することは非推奨となり、今後のバージョンの Windows では機能しない可能性があります。
D3DPRESENT_UPDATEOVERLAYONLY
オーバーレイ位置またはカラーキー データを更新します。実際の反転は発生せず、画像の表示期間も変更されません。
このフラグは、Direct3D 9Ex でのみ使用できます。
D3DPRESENT_HIDEOVERLAY
オーバーレイ ハードウェアをオフにします。
このフラグは、Direct3D 9Ex でのみ使用できます。
D3DPRESENT_UPDATECOLORKEY
カラーキー データを再描画します。
このフラグは、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 を呼び出してシステム タイマーの解決を強化します。 これにより、垂直同期の品質が向上しますが、処理時間がわずかに長くなります。 どちらのパラメーターも垂直方向の同期を試みます。

要件

要件
ヘッダー
D3d9.h

関連項目

Direct3D 定数