Microsoft DirectX 8.0 (Visual Basic)

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 でなければならない。それ以外の場合、この値は D3DCAPS8PresentationIntervals メンバで列挙される値のいずれかでなければならない。設定可能な値は、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.CreateDeviceDirect3DDevice8.CreateAdditionalSwapChainDirect3DDevice8.PresentDirect3DDevice8.Reset