【发布时间】:2015-04-21 21:58:44
【问题描述】:
如果您想在 directx11 中取消绑定着色器资源,我发现的所有代码都执行以下操作:
ID3D10ShaderResourceView* nullSRV[1] = {nullptr};
context->PSSetShaderResources(0, 1, &nullSRV);
为什么不简单地使用它?
context->PSSetShaderResources(0, 0, nullptr);
文档 (https://msdn.microsoft.com/en-us/library/windows/desktop/ff476473%28v=vs.85%29.aspx) 似乎支持它,两者之间真的有什么区别吗?
【问题讨论】:
-
请注意,您并没有取消绑定所有着色器资源,只是第一个插槽。
-
虽然我同意第二种形式会更好(甚至更好 - PSResetShaderResources() 或类似的东西),但不幸的是,该 MSDN 链接中没有任何内容表明它受支持。因为我相信很多人会尝试做你想做的事情,所以如果文档明确说明不允许无效代码以及解除资源绑定的正确方法是什么,那就太好了。 @Chuck Walbourn,你怎么看?
标签: directx directx-11