次の方法で共有


D3DDDICB_RENDER 構造体 (d3dumddi.h)

D3DDDICB_RENDER構造体は、レンダリングされる現在のコマンド バッファーを記述します。

構文

typedef struct _D3DDDICB_RENDER {
  UINT                     CommandLength;
  UINT                     CommandOffset;
  UINT                     NumAllocations;
  UINT                     NumPatchLocations;
  VOID                     *pNewCommandBuffer;
  UINT                     NewCommandBufferSize;
  D3DDDI_ALLOCATIONLIST    *pNewAllocationList;
  UINT                     NewAllocationListSize;
  D3DDDI_PATCHLOCATIONLIST *pNewPatchLocationList;
  UINT                     NewPatchLocationListSize;
  D3DDDICB_RENDERFLAGS     Flags;
  HANDLE                   hContext;
  UINT                     BroadcastContextCount;
  HANDLE                   BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
  ULONG                    QueuedBufferCount;
  D3DGPU_VIRTUAL_ADDRESS   NewCommandBuffer;
  VOID                     *pPrivateDriverData;
  UINT                     PrivateDriverDataSize;
  D3DDDI_MARKERLOGTYPE     MarkerLogType;
  UINT                     RenderCBSequence;
  union {
    struct {
      UINT FirstAPISequenceNumberHigh;
      UINT CompletedAPISequenceNumberLow0Size;
      UINT CompletedAPISequenceNumberLow1Size;
      UINT BegunAPISequenceNumberLow0Size;
      UINT BegunAPISequenceNumberLow1Size;
    };
    UINT BatchedMarkerDataCount;
  };
  union {
    struct {
      const UINT *pCompletedAPISequenceNumberLow0;
      const UINT *pCompletedAPISequenceNumberLow1;
      const UINT *pBegunAPISequenceNumberLow0;
      const UINT *pBegunAPISequenceNumberLow1;
    };
    const D3DDDI_BATCHEDMARKERDATA *pBatchedMarkerData;
  };
} D3DDDICB_RENDER;

メンバー

CommandLength

[入力]オフセット 0 から始まるコマンド バッファーのサイズ (バイト単位)。

CommandOffset

[入力]コマンド バッファー内の最初のコマンドへのオフセット (バイト単位)。

NumAllocations

[入力]割り当てリスト内の要素の数。

NumPatchLocations

[入力]パッチの場所リスト内の要素の数。

pNewCommandBuffer

[out]ユーザー モード表示ドライバーが pfnRenderCb 関数の次の呼び出しで使用するために受け取るコマンド バッファーへのポインター。

NewCommandBufferSize

[入力/出力]ユーザー モード表示ドライバーが次のコマンド バッファーを要求するサイズ (バイト単位)。

ドライバーは、使用する次のコマンド バッファーのサイズ (バイト単位) を受け取ります。

pNewAllocationList

[out]ユーザー モード ディスプレイ ドライバーが pfnRenderCb 関数の次の呼び出しで割り当てリストとして使用するために受け取るD3DDDI_ALLOCATIONLIST構造体の配列。

NewAllocationListSize

[入力/出力]ユーザー モード表示ドライバーが次の割り当てリストを要求する要素の数。

ドライバーは、次のコマンド バッファーが送信されたときに使用できる割り当てリストの要素の数を受け取ります。

pNewPatchLocationList

[out]ユーザー モードディスプレイ ドライバーが pfnRenderCb 関数の次の呼び出しでパッチの場所リストとして使用するために受け取るD3DDDI_PATCHLOCATIONLIST構造体の配列。

NewPatchLocationListSize

[入力/出力]ユーザー モードでドライバーが次のパッチの場所の一覧を要求する要素の数。

ドライバーは、次のコマンド バッファーが送信されたときに使用できるパッチの場所の一覧の要素の数を受け取ります。

Flags

[入力]レンダリングするコマンド バッファーに関する情報を示す D3DDDICB_RENDERFLAGS 構造体。

hContext

[入力]ドライバーがレンダリング操作を送信するコンテキストへのハンドル。 ユーザー モード ディスプレイ ドライバーは、 以前に pfnCreateContextCb 関数を呼び出して、このコンテキストを作成しました。

BroadcastContextCount

[入力] BroadcastContext メンバーが指定する配列内の追加コンテキストの数。

BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

[入力]現在のコマンド バッファーをブロードキャストする追加のコンテキストへのハンドルの配列。 D3DDDI_MAX_BROADCAST_CONTEXT定数は 64 として定義され、ユーザー モード ディスプレイ ドライバーが現在のコマンド バッファーをブロードキャストできる追加コンテキストの最大数を定義します。

hContext メンバーが指定し、コマンド バッファーを所有する元のコンテキストは、BroadcastContext 配列内の要素ではありません。 たとえば、 BroadcastContext 配列に 1 つの要素が含まれている場合、ユーザー モードの表示ドライバーは、所有コンテキスト (hContext) にコマンド バッファーを送信し、その 1 つの追加のコンテキストにブロードキャストします。

QueuedBufferCount

[out]現在の送信が行われる後に hContext メンバーが指定するコンテキストにキューに入れられている DMA バッファーの数。

NewCommandBuffer

このメンバーは予約済みであり、0 に設定する必要があります。

このメンバーは、Windows 7 以降で使用できます。

pPrivateDriverData

[入力]このメンバーは予約済みであり、0 に設定する必要があります。

このメンバーは、Windows 7 以降で使用できます。

PrivateDriverDataSize

[入力]このメンバーは予約済みであり、0 に設定する必要があります。

このメンバーは、Windows 7 以降で使用できます。

MarkerLogType

ユーザー モード ディスプレイ ドライバーがサポートするイベント トレース for Windows (ETW) ログのマーカーの種類を示すD3DDDI_MARKERLOGTYPE列挙。

RenderCBSequence

各 pfnRenderCb 関数呼び出しの一意識別子。 シングルスレッド ユーザー モード DDI に関連付けられているコンテキストの場合は 1 から始まり、フリースレッド ユーザー モードの DDI に関連付けられているコンテキストの場合は 0x80000001 の値に範囲を指定します。 ユーザー モード ディスプレイ ドライバーは、任意のエンジンで行う pfnRenderCb 呼び出しごとに値をインクリメントする必要があります。

FirstAPISequenceNumberHigh

コンテキストの API シーケンス番号を渡すためにドライバーによって使用されます。

CompletedAPISequenceNumberLow0Size

コンテキストの API シーケンス番号を渡すためにドライバーによって使用されます。

CompletedAPISequenceNumberLow1Size

コンテキストの API シーケンス番号を渡すためにドライバーによって使用されます。

BegunAPISequenceNumberLow0Size

コンテキストの API シーケンス番号を渡すためにドライバーによって使用されます。

BegunAPISequenceNumberLow1Size

コンテキストの API シーケンス番号を渡すためにドライバーによって使用されます。

BatchedMarkerDataCount

pCompletedAPISequenceNumberLow0

コンテキストの API シーケンス番号を渡すためにドライバーによって使用されるポインター。

pCompletedAPISequenceNumberLow1

コンテキストの API シーケンス番号を渡すためにドライバーによって使用されるポインター。

pBegunAPISequenceNumberLow0

コンテキストの API シーケンス番号を渡すためにドライバーによって使用されるポインター。

pBegunAPISequenceNumberLow1

コンテキストの API シーケンス番号を渡すためにドライバーによって使用されるポインター。

pBatchedMarkerData

要件

要件
サポートされている最小のクライアント Windows Vista
Header d3dumddi.h (D3dumddi.h を含む)

こちらもご覧ください

D3DDDICB_RENDERFLAGS

D3DDDI_ALLOCATIONLIST

D3DDDI_PATCHLOCATIONLIST

pfnRenderCb