D3DDDICB_PRESENT構造体 (d3dumddi.h)
D3DDDICB_PRESENT構造体は、コンテンツのコピー元とコピー元の割り当てを記述します。
構文
typedef struct _D3DDDICB_PRESENT {
[in] D3DKMT_HANDLE hSrcAllocation;
[in] D3DKMT_HANDLE hDstAllocation;
[in] HANDLE hContext;
[in] UINT BroadcastContextCount;
HANDLE BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
D3DKMT_HANDLE *BroadcastSrcAllocation;
D3DKMT_HANDLE *BroadcastDstAllocation;
UINT PrivateDriverDataSize;
PVOID pPrivateDriverData;
BOOLEAN bOptimizeForComposition;
BOOL SyncIntervalOverrideValid;
D3DDDI_FLIPINTERVAL_TYPE SyncIntervalOverride;
} D3DDDICB_PRESENT;
メンバー
[in] hSrcAllocation
ソース割り当てに対するカーネル モード ハンドルを表すD3DKMT_HANDLEデータ型。 Microsoft Direct3D ランタイムの pfnAllocateCb 関数は、このハンドルを返します。 したがって、ユーザー モード ディスプレイ ドライバーは、このハンドルを使用してコンテンツのコピー元にする必要があります。
[in] hDstAllocation
宛先の割り当てに対するカーネル モード ハンドルを表すD3DKMT_HANDLEデータ型。 hDstAllocation は、宛先が不明な場合は 0 にすることができます。カーネル モードは、グラフィックス プロセッサへのハードウェア コマンド ストリームの DMA の直前に宛先を決定します。
[in] hContext
ドライバーがコピー操作を送信するコンテキストへのハンドル。 ユーザー モード ディスプレイ ドライバーは、 以前に pfnCreateContextCb 関数を呼び出して、このコンテキストを作成しました。
[in] BroadcastContextCount
BroadcastContext メンバーが指定する配列内の追加コンテキストの数。
[in] BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]
現在の操作をブロードキャストする追加のコンテキストへのハンドルの配列。 D3DDDI_MAX_BROADCAST_CONTEXT定数は 64 として定義され、ユーザー モード ディスプレイ ドライバーが現在の操作をブロードキャストできる追加コンテキストの最大数を定義します。
ブロードキャストは、フリップ操作でのみサポートされます。 フリップ操作をブロードキャストするには、ディスプレイ ミニポート ドライバーはメモリ マップ I/O (MMIO) ベースのフリップをサポートする必要があります。 MMIO フリップのサポートを示すために、ディスプレイ ミニポート ドライバーは、DxgkDdiQueryAdapterInfo 関数が呼び出されたときに、DXGK_DRIVERCAPS構造体の FlipCaps メンバーに FlipOnVSyncMmIo ビット フィールド フラグを設定します。
hContext メンバーが指定し、ユーザー モードディスプレイ ドライバーが提示する元のコンテキストは、BroadcastContext 配列内の要素ではありません。 たとえば、 BroadcastContext 配列に 1 つの要素が含まれている場合、ユーザー モードのディスプレイ ドライバーは現在の操作を所有コンテキスト (hContext) に送信し、その 1 つの追加コンテキストにブロードキャストします。
BroadcastSrcAllocation
表示されるコンテンツの割り当て。
BroadcastDstAllocation
0 以外の場合、 は現在の宛先の割り当てを表します。
PrivateDriverDataSize
プライベート ドライバーのデータ サイズ (バイト単位)。
pPrivateDriverData
DdiPresent に渡すプライベート ドライバー データ。
bOptimizeForComposition
DWM はコンポジションに関与します。
SyncIntervalOverrideValid
オーバーライド アプリの同期間隔は有効です。
SyncIntervalOverride
アプリの同期間隔をオーバーライドします。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
Header | d3dumddi.h (D3dumddi.h を含む) |