次の方法で共有


IDirect3DDevice9::CreateAdditionalSwapChain メソッド

IDirect3DDevice9::CreateAdditionalSwapChain メソッド

複数のビューをレンダリングするための追加スワップ チェーンを作成する。

構文

HRESULT CreateAdditionalSwapChain(      
    D3DPRESENT_PARAMETERS* pPresentationParameters,
    IDirect3DSwapChain9** ppSwapChain
);

パラメータ

  • pPresentationParameters
    [in, out] 新しいスワップ チェーンのプレゼンテーション パラメータを表す D3DPRESENT_PARAMETERS 構造体へのポインタ。NULL を指定することはできない。

    このメソッドを呼び出すと、D3DPRESENT_PARAMETERS 構造体のメンバの値が変わる。

    • BackBufferCount == 0 の場合、CreateAdditionalSwapChain を呼び出すと 1 に増加する。
    • アプリケーションがウィンドウ モードの場合で、BackBufferWidth または BackBufferHeight == 0 の場合、hwnd のクライアント領域の幅と高さに設定される。
  • ppSwapChain
    [out, retval] 追加スワップ チェーンを表す IDirect3DSwapChain9 インターフェイスへのポインタのアドレス。

戻り値

成功した場合は、D3D_OK を返す。

失敗した場合は、次のいずれかの値を返す。

D3DERR_NOTAVAILABLE このデバイスは、照会されたマルチサンプル タイプをサポートしていない。
D3DERR_DEVICELOST デバイスは、消失しているが、現在リセットできない。したがって、レンダリングは不可能である。
D3DERR_INVALIDCALL メソッドの呼び出しが無効である。たとえば、メソッドのパラメータに無効な値が設定されている場合などである。
D3DERR_OUTOFVIDEOMEMORY Microsoft® Direct3D® が処理を行うのに十分なディスプレイ メモリがない。
E_OUTOFMEMORY Direct3D が呼び出しを完了するための十分なメモリを割り当てることができなかった。

注意

Microsoft DirectX® 9.0 の Direct3D はデバイスのプロパティとして 1 つのスワップ チェーンを持っているため、各デバイスに対して、常に少なくても 1 つのスワップ チェーン (非明示的なスワップ チェーン) が存在する。

どのようなデバイスでも、サポートできるフルスクリーン スワップ チェーンは 1 つだけである。

ウィンドウ モードのバック バッファ フォーマットに対しては、IDirect3D9::CreateDeviceIDirect3DDevice9::Reset、および CreateAdditionalSwapChain の呼び出しで D3DFMT_UNKNOWN を指定できる。つまり、アプリケーションでは、ウィンドウ モードに対する CreateDevice を呼び出す前に、現在のデスクトップ フォーマットを問い合わせる必要はない。フルスクリーン モードに対しては、バック バッファ フォーマットを指定する必要がある。

参照

ウィンドウ モードのマルチビュー