次の方法で共有


PFND3D11DDI_DRAWINSTANCEDINDIRECT コールバック関数 (d3d10umddi.h)

DrawInstancedIndirect 関数は、インデックスのないプリミティブの特定のインスタンスを描画します。

構文

PFND3D11DDI_DRAWINSTANCEDINDIRECT Pfnd3d11ddiDrawinstancedindirect;

void Pfnd3d11ddiDrawinstancedindirect(
  D3D10DDI_HDEVICE unnamedParam1,
  D3D10DDI_HRESOURCE unnamedParam2,
  UINT unnamedParam3
)
{...}

パラメーター

unnamedParam1

hDevice [in]

ディスプレイ デバイス (グラフィックス コンテキスト) へのハンドル。

unnamedParam2

hBufferForArgs [in]

処理する DrawInstancedIndirect の引数を含むバッファーへのハンドル。 バッファーには、次の密にパックされた構造が含まれています。

struct DrawInstancedIndirectArgs {
  UINT VertexCountPerInstance; 
  UINT InstanceCount;
  UINT StartVertexLocation;
  UINT StartInstanceLocation;
}

これらの引数の詳細については、「 DrawInstanced リファレンス ページ」を参照してください。

unnamedParam3

AlignedByteOffsetForArgs [in]

hBufferForArgs が指定するバッファーへのオフセット (バイト単位)。 AlignedByteOffsetForArgs は 4 つの倍数である必要があります。

戻り値

なし

解説

ドライバーは 、pfnSetErrorCb コールバック関数を使用してエラー コードを設定できます。

DrawInstancedIndirect 関数は、ドライバーの DrawInstanced 関数の呼び出しと同じタスクを実行します。 ただし、 DrawInstancedIndirect、hBufferForArgs パラメーターが指定するバッファーの内容から、インデックスのないプリミティブに関する情報を取得します。 DrawInstancedIndirect は、 AlignedByteOffsetForArgs パラメーターが指定するバイト オフセットからバッファーの内容を読み取ります。

Direct3D ランタイムがドライバーの CreateResource(D3D11) 関数を呼び出して hBufferForArgs パラメーターが指定するバッファー リソースを作成する場合、ランタイムは、D3D11DDIARG_CREATERESOURCE構造体の MiscFlags メンバーにD3D11_DDI_RESOURCE_MISC_DRAWINDIRECT_ARGS フラグを設定する必要があります。

D3DDDIERR_DEVICEREMOVEDを除き、ドライバーでエラーが発生しないようにする必要があります。 したがって、ドライバーが pfnSetErrorCb 関数の呼び出しで、D3DDDIERR_DEVICEREMOVEDを除くエラーを渡した場合、Direct3D ランタイムはエラーが重要であると判断します。 デバイスが削除された場合でも、ドライバーはD3DDDIERR_DEVICEREMOVEDを返す必要はありません。ただし、デバイスの削除が DrawInstancedIndirect (通常は発生しないはずです) の操作に干渉する場合、ドライバーはD3DDDIERR_DEVICEREMOVEDを返すことができます。

要件

要件
サポートされている最小のクライアント DrawInstancedIndirect は、Windows 7 オペレーティング システム以降でサポートされています。
対象プラットフォーム デスクトップ
Header d3d10umddi.h (D3d10umddi.h を含む)

こちらもご覧ください

CreateResource(D3D11)

D3D11DDIARG_CREATERESOURCE

D3D11DDI_DEVICEFUNCS

DrawInstanced

pfnSetErrorCb