IDirectDrawSurface7::Flip メソッド (ddraw.h)
DDSCAPS_BACKBUFFERサーフェスに関連付けられているサーフェス メモリをフロント バッファー サーフェスに関連付けます。
構文
HRESULT Flip(
[in] LPDIRECTDRAWSURFACE7 unnamedParam1,
[in] DWORD unnamedParam2
);
パラメーター
[in] unnamedParam1
反転チェーン内の任意のサーフェスの IDirectDrawSurface7 インターフェイスへのポインター。 このパラメーターの既定値は NULL です。この場合、DirectDraw はバッファーを相互にアタッチされた順序で循環します。 このパラメーターが NULL でない場合、DirectDraw は反転チェーン内の次のサーフェスではなく、指定されたサーフェスに反転します。 指定 したサーフェスが反転チェーンのメンバーでない場合、反転は失敗します。
[in] unnamedParam2
フリップ オプションを指定するフラグの組み合わせ。 次のフラグが定義されています。
DDFLIP_DONOTWAIT
IDirectDrawSurface7 インターフェイスでは、既定値は DDFLIP_WAIT です。 既定値をオーバーライドし、アクセラレータがビジー状態のときに (DDERR_WASSTILLDRAWING戻り値で示される) 時間を使用する場合は、DDFLIP_DONOTWAITを使用します。
DDFLIP_EVEN
オーバーレイ サーフェスにビデオを表示する場合にのみ使用します。 新しいサーフェスには、ビデオ信号の偶数フィールドからのデータが含まれています。 このフラグは、DDFLIP_ODD フラグと共に使用できません。
DDFLIP_STEREO
DirectDraw は、メインステレオサーフェスを反転して表示します。 このフラグを設定すると、ステレオオートフラグが有効になります。 ハードウェアは、各画面の更新中に左右のバッファー間を自動的に反転します。
DDFLIP_INTERVAL2
DDFLIP_INTERVAL3
DDFLIP_INTERVAL4
DDFLIP_INTERVAL2、DDFLIP_INTERVAL3、およびDDFLIP_INTERVAL4フラグは、各フリップの間に待機する垂直方向のリトレースの数を示します。 既定値は 1 です。 DirectDraw は、指定された数の垂直トレースが発生するまで、フリップに関係する各サーフェスのDERR_WASSTILLDRAWINGを返します。 DDFLIP_INTERVAL2が設定されている場合、DirectDraw は 2 秒ごとに垂直同期に反転します。DDFLIP_INTERVAL3場合は、3 つ目の同期ごとに。と がDDFLIP_INTERVAL4場合は、4 つ目の同期ごとに。
これらのフラグは、ディスプレイ ハードウェアDDCAPS2_FLIPINTERVAL返される DDCAPS 構造体の dwCaps2 メンバーにビットが設定されている場合にのみ有効です。
DDFLIP_NOVSYNC
DirectDraw が次のスキャン行にできるだけ近い物理的な反転を実行します。 2 つの反転サーフェスを含む後続の操作では、物理的な反転が完了したかどうかがチェックされません。つまり、その理由でDDERR_WASSTILLDRAWINGが返されません (ただし、他の理由による場合もあります)。 これにより、アプリケーションはモニターの更新レートよりも高い頻度で反転を実行できますが、表示される成果物が発生する可能性があります。
表示ハードウェアに対して返される DDCAPS 構造体の dwCaps2 メンバーにDDCAPS2_FLIPNOVSYNCが設定されていない場合、DDFLIP_NOVSYNCは無効です。
DDFLIP_ODD
オーバーレイ サーフェスにビデオを表示する場合にのみ使用します。 新しいサーフェスには、ビデオ信号の奇数フィールドからのデータが含まれています。 このフラグは、DDFLIP_EVEN フラグと共に使用できません。
DDFLIP_WAIT
通常、ディスプレイ ハードウェアの状態が適切でないためにフリップを設定できない場合、DDERR_WASSTILLDRAWING エラーはすぐに返され、反転は発生しません。 このフラグを設定すると、ハードウェア抽象化レイヤー (HAL) からDDERR_WASSTILLDRAWING エラーが発生した場合、 Flip は引き続き反転を試みます。 反転 操作が正常に設定されるか、DDERR_SURFACEBUSYなどの別のエラーが返されるまで、反転は返されません。
戻り値
メソッドが成功した場合、戻り値はDD_OK。
失敗した場合、メソッドは次のいずれかのエラー値を返すことができます。
- DDERR_GENERIC
- DDERR_INVALIDOBJECT
- DDERR_INVALIDPARAMS
- DDERR_NOFLIPHW
- DDERR_NOTFLIPPABLE
- DDERR_SURFACEBUSY
- DDERR_SURFACELOST
- DDERR_UNSUPPORTED
- DDERR_WASSTILLDRAWING
注釈
IDirectDrawSurface7 では、Flip の既定の動作では、アクセラレータが完了するまで待機します。 したがって、既定の条件下では、 Flip はDDERR_WASSTILLDRAWINGを返しません。 エラー コードを表示し、反転操作が成功するまで待機しない場合は、DDFLIP_DONOTWAIT フラグを使用します。
フリップ は、DDSCAPS_FLIP機能とDDSCAPS_FRONTBUFFER機能を持つサーフェスに対してのみ呼び出すことができます。 以前にフロント バッファーに関連付けられた表示メモリは、バック バッファーに関連付けられます。
lpDDSurfaceTargetOverride パラメーターは、まれに、バック バッファーがフロント バッファーになるバッファーではない場合に使用されます。 通常、このパラメーターは NULL です。
反転 は常に垂直ブランクと同期されます。 サーフェスがビデオ ポートに割り当てられている場合、このメソッドは表示されるオーバーレイ サーフェスとビデオ ポートのターゲット サーフェスを更新します。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | ddraw.h |
Library | Ddraw.lib |
[DLL] | Ddraw.dll |