PFND3D11DDI_DRAWINDEXEDINSTANCEDINDIRECT回调函数 (d3d10umddi.h)

DrawIndexedInstancedIndirect 函数绘制索引基元的特定实例。

语法

PFND3D11DDI_DRAWINDEXEDINSTANCEDINDIRECT Pfnd3d11ddiDrawindexedinstancedindirect;

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

参数

unnamedParam1

hDevice [in]

显示设备的句柄(图形上下文)。

unnamedParam2

hBufferForArgs

缓冲区的句柄,其中包含要处理的 DrawIndexedInstancedInstancedIndirect 的参数。 缓冲区包含以下紧密打包的结构:

struct DrawIndexedInstancedIndirectArgs {
  UINT IndexCountPerInstance; 
  UINT InstanceCount;
  UINT StartIndexLocation;
  INT BaseVertexLocation;
  UINT StartInstanceLocation;
}

有关这些参数的详细信息,请参阅 DrawIndexedInstanced 参考页。

unnamedParam3

AlignedByteOffsetForArgs

hBufferForArgs 指定的缓冲区中的偏移量(以字节为单位)。 AlignedByteOffsetForArgs 必须是 4 的倍数。

返回值

没有

言论

驱动程序可以使用 pfnSetErrorCb 回调函数来设置错误代码。

DrawIndexedInstancedIndirect 函数执行与调用驱动程序 DrawIndexedInstanced 函数相同的任务。 但是,DrawIndexedInstancedIndirecthBufferForArgs 参数指定的缓冲区内容中获取有关索引基元的信息。 DrawIndexedInstancedIndirect 读取缓冲区的内容,从 AlignedByteOffsetForArgs 参数指定的字节偏移量开始。

当 Direct3D 运行时调用驱动程序的 CreateResource(D3D11) 函数来创建 hBufferForArgs 参数指定的缓冲区资源时,运行时必须在 MiscFlags 成员 D3D11DDIARG_CREATERESOURCE 结构中设置D3D11_DDI_RESOURCE_MISC_DRAWINDIRECT_ARGS标志。

驱动程序不应遇到任何错误,除非D3DDDIERR_DEVICEREMOVED。 因此,如果驱动程序在调用 pfnSetErrorCb 函数时传递任何错误(D3DDDIERR_DEVICEREMOVED除外)时,Direct3D 运行时将确定错误至关重要。 即使删除了设备,驱动程序也不需要返回D3DDDIERR_DEVICEREMOVED;但是,如果设备删除会干扰 DrawIndexedInstancedIndirect(通常不应发生),驱动程序可以返回D3DDDIERR_DEVICEREMOVED。

要求

要求 价值
最低支持的客户端 从 Windows 7作系统开始,支持 DrawIndexedInstancedIndirect。
目标平台 桌面
标头 d3d10umddi.h (包括 D3d10umddi.h)

另请参阅

CreateResource(D3D11)

D3D11DDIARG_CREATERESOURCE

D3D11DDI_DEVICEFUNCS

DrawIndexedInstanced

pfnSetErrorCb