次の方法で共有


D3DPRESENT

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

定数 Description
D3DPRESENT_DONOTFLIP
レンダリング時に、ソース サーフェスとターゲット サーフェスの両方としてフロント バッファーを使用します。 フレーム同期はスケジュールされますが、表示されるサーフェスは変更されません。 このフラグは、アプリケーションが全画面表示モードで、D3DSWAPEFFECT_FLIPEXが指定されている場合にのみ使用できます。
このフラグは Direct3D 9Ex でのみ使用できます。
D3DPRESENT_DONOTWAIT
hal デバイスでプレゼンテーションをスケジュールすることはできません。 このフラグが Present の呼び出しで設定されていて、ハードウェアが処理中または垂直同期間隔を待機している場合、Present は blit 操作が不完全であることを示すD3DERR_WASSTILLDRAWINGを返します。
D3DPRESENT_FLIPRESTART
予約済み。
D3DPRESENT_FORCEIMMEDIATE
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_DEFAULT
これは、D3DPRESENT_INTERVAL_ONEとほぼ同じです。 「備考」を参照してください。
D3DPRESENT_INTERVAL_ONE
ドライバーは垂直リトレース期間を待機します (ランタイムは、引き裂きを防ぐために "ビームフォロー" します)。 現在の 操作は、画面の更新よりも頻繁に影響を受けなくなります。ランタイムは、アダプターの更新期間ごとに最大 1 つの Present 操作を完了します。 これは、DirectX 8.1 でD3DSWAPEFFECT_COPY_VSYNCを使用することと同じです。 このオプションは、ウィンドウ化されたスワップ チェーンと全画面表示のスワップ チェーンの両方で常に使用できます。 「備考」を参照してください。
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 (gamma = 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 を呼び出してシステム タイマーの解決を強化します。 これにより、垂直同期の品質が向上しますが、処理時間が若干長くなります。 どちらのパラメーターも垂直方向の同期を試みます。

Requirements

Requirement 価値
Header
D3d9.h

こちらも参照ください

Direct3D 定数