D3DPRESENT_PARAMETERS
プレゼンテーション パラメータを記述する。
Type D3DPRESENT_PARAMETERS
AutoDepthStencilFormat As CONST_D3DFORMAT
BackBufferCount As Long
BackBufferFormat As CONST_D3DFORMAT
BackBufferHeight As Long
BackBufferWidth As Long
EnableAutoDepthStencil As Long
Flags As Long
FullScreen_PresentationInterval As Long
FullScreen_RefreshRateInHz As Long
hDeviceWindow As Long
MultiSampleType As CONST_D3DMULTISAMPLE_TYPE
SwapEffect As CONST_D3DSWAPEFFECT
Windowed As Long
End Type
メンバ
- AutoDepthStencilFormat
- CONST_D3DFORMAT 列挙のメンバ。デバイスが作成する自動深度ステンシル サーフェスのフォーマットである。EnableAutoDepthStencil が 0 以外の値 (TRUE) でない場合、このメンバは無視される。
- BackBufferCount
- この値には、0、1、2、または 3 を設定できる。0 は 1 として処理されることに注意する。バック バッファの数を作成できない場合、Microsoft® Direct3D はメソッドの呼び出しに失敗し、作成できたバック バッファ数をこの値に設定する。したがって、アプリケーションは同じ D3DPRESENT_PARAMETERS 型を指定してメソッドを 2 回呼び出すことができ、2 回目には呼び出しが成功するものと予想される。
バック バッファの数の最小値は 1 と想定されている。バック バッファを 1 つも作成できない場合、メソッドの呼び出しは失敗する。BackBufferCount の値は、使用可能なスワップ エフェクトのセットに影響を与える。特に、D3DSWAPEFFECT_COPY スワップ エフェクトでは、存在するバック バッファが厳密に 1 つでなければならない。
- BackBufferFormat
- CONST_D3DFORMAT 列挙のメンバ。この値は、Direct3D8.CheckDeviceType で検証されたレンダリング ターゲットのフォーマットのいずれかでなければならない。
Windowed を TRUE に設定する場合、BackBufferFormat の設定は、現在のディスプレイ モードのフォーマットと一致している必要がある。現在のフォーマットを取得するには、Direct3DDevice8.GetDisplayMode を使用する。
- BackBufferHeight および BackBufferWidth
- 新しいスワップ チェーンのバック バッファの高さと幅 (ピクセル単位)。Windowed が 0 (FALSE) でプレゼンテーションがフルスクリーンの場合、これらの値は、Direct3D8.EnumAdapterModes によって列挙されたディスプレイ モードのいずれかの高さおよび幅と一致していなければならない。Windowed が TRUE で、これらの値のいずれかが 0 の場合は、hDeviceWindow (または hDeviceWindow が Nothing の場合はフォーカス ウィンドウ) のクライアント領域の対応するディメンジョンが使用される。
- EnableAutoDepthStencil
- この値が TRUE の場合、Direct3D® はアプリケーションに対する深度バッファを管理する。デバイスは、作成されると、深度ステンシル バッファを作成する。深度ステンシル バッファは、デバイスのレンダリング ターゲットとして自動的に設定される。デバイスがリセットされると、深度ステンシル バッファは自動的に破棄されて、新しいサイズで再度作成される。
EnableAutoDepthStencil が TRUE の場合、AutoDepthStencilFormat は有効な深度ステンシル フォーマットでなければならない。
- Flags
- 現在、この値は使用されておらず、0 に設定しなければならない。
- FullScreen_PresentationInterval
- 利用可能なプレゼンテーション スワップ間隔を示す値のビット マスク。ウィンドウ モードの場合、この値は 0 でなければならない。それ以外の場合、この値は D3DCAPS8 の PresentationIntervals メンバで列挙される値のいずれかでなければならない。設定可能な値は、CONST_D3DPRESENT_INTERVAL_FLAGS 列挙で定義されている。
- FullScreen_RefreshRateInHz
- ディスプレイ アダプタによるスクリーンのリフレッシュ レート。ウィンドウ モードの場合、この値は 0 でなければならない。それ以外の場合は、Direct3D8.EnumAdapterModes が返すリフレッシュ レートのいずれか、または CONST_D3DPRESENT_RATE_FLAGS 列挙で定義されているリフレッシュ レートのいずれかでなければならない。
- hDeviceWindow
- フルスクリーン モードの場合、これはカバー ウィンドウである。ウィンドウ モードの場合、これは Direct3DDevice8.Present に対するデフォルトのターゲット ウィンドウである。この値が Nothing の場合は、フォーカス ウィンドウが使用される。マルチモニタ システムなど、複数のフルスクリーン デバイスを使用するアプリケーションの場合は、正確に 1 つのデバイスがデバイス ウィンドウとしてフォーカス ウィンドウを使用しなければならない。その他のすべてのウィンドウは、一意のデバイス ウィンドウを持つ。それ以外の場合は、動作は定義されておらず、アプリケーションは期待どおりに動作しない。
Direct3D はユーザーによるウィンドウ サイズの変更を反映しようとしないことに注意すること。このウィンドウがリセットされても、バック バッファが暗黙的にリセットされることはない。ただし、Present メソッドは、ウィンドウ位置の変化を自動的に追跡する。
- MultiSampleType
- CONST_D3DMULTISAMPLE_TYPE 列挙のメンバ。SwapEffect に D3DSWAPEFFECT_DISCARD が設定されていない場合、この値は D3DMULTISAMPLE_NONE でなければならない。マルチサンプリングは、スワップ エフェクトが D3DSWAPEFFECT_DISCARD の場合にのみサポートされる。
- SwapEffect
- CONST_D3DSWAPEFFECT 列挙のメンバ。Direct3D は、バッファ スワップ動作に関して指定されているセマンティクスを保証する。したがって、Windowed が TRUE で D3DSWAPEFFECT_FLIP の場合、Direct3D は 1 つ余分にバック バッファを作成し、プレゼンテーション時にフロント バッファになるものをすべてコピーする。
D3DSWAPEFFECT_COPY および D3DSWAPEFFECT_COPY_VSYNC の場合は、BackBufferCount に 1 が設定されていなければならない。
デバッグ ランタイムにおいては、提示した後のバッファにノイズを格納することで、D3DSWAPEFFECT_DISCARD を強制する。
- Windowed
- アプリケーションがウィンドウ モードで動作する場合は TRUE、フルスクリーン モードで動作する場合は FALSE である。
参照
Direct3D8.CreateDevice、Direct3DDevice8.CreateAdditionalSwapChain、Direct3DDevice8.Present、Direct3DDevice8.Reset