PFND3D11DDI_DESTROYCOMMANDLIST回调函数 (d3d10umddi.h)
DestroyCommandList 函数销毁命令列表。
语法
PFND3D11DDI_DESTROYCOMMANDLIST Pfnd3d11ddiDestroycommandlist;
void Pfnd3d11ddiDestroycommandlist(
D3D10DDI_HDEVICE unnamedParam1,
D3D11DDI_HCOMMANDLIST unnamedParam2
)
{...}
参数
unnamedParam1
hDevice [in]
显示设备的句柄 (图形上下文) 。
unnamedParam2
hCommandList [in]
要销毁的命令列表的驱动程序专用数据的句柄。 Microsoft Direct3D 运行时释放它之前为命令列表分配的内存区域。 因此,驱动程序无法再访问此内存区域。
返回值
无
备注
驱动程序可以使用 pfnSetErrorCb 回调函数来设置错误代码。
仅当驱动程序支持可从调用 GetCaps (D3D10_2) 函数在 D3D11DDI_THREADING_CAPS 结构中返回的D3D11DDICAPS_COMMANDLISTS_BUILD_2功能时,驱动程序才需要实现 DestroyCommandList。
驱动程序不应遇到任何错误,D3DDDIERR_DEVICEREMOVED除外。 因此,如果驱动程序在调用 pfnSetErrorCb 函数时传递了除D3DDDIERR_DEVICEREMOVED以外的任何错误,则 Direct3D 运行时将确定错误严重。 即使删除了设备,驱动程序也不需要返回D3DDDIERR_DEVICEREMOVED;但是,如果设备删除干扰 DestroyCommandList (通常不应) 执行的操作,驱动程序可以返回D3DDDIERR_DEVICEREMOVED。
驱动程序可以实现包含 switch 语句的 DestroyCommandList 函数,以处理命令列表的销毁和命令列表的轻型销毁。 也就是说,驱动程序可以实现一个 DestroyCommandList,并且可以将 D3D11DDI_DEVICEFUNCS 结构的 pfnRecycleDestroyCommandList 成员设置为指向 DestroyCommandList,并将 D3D11DDI_DEVICEFUNCS 的 pfnRecycleDestroyCommandList 成员设置为指向 DestroyCommandList。 但是,为了提高性能,驱动程序可以实现单独的 DestroyCommandList 和 RecycleDestroyCommandList 函数。
有关 RecycleDestroyCommandList 的详细信息,请参阅 Small Command Lists优化。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 7 操作系统开始支持 DestroyCommandList。 |
目标平台 | 桌面 |
标头 | d3d10umddi.h (包括 D3d10umddi.h) |