次の方法で共有


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

こちらもご覧ください

IDirectDrawSurface7