【发布时间】:2012-10-04 14:56:31
【问题描述】:
我想渲染一个场景并将其显示在监视器上,同时将另一个场景渲染到纹理上。 我需要创建两个交换链吗?在这种情况下如何创建第二个交换链?我试图调用 CreateSwapChainForCoreWindow 但得到内存访问异常。
【问题讨论】:
我想渲染一个场景并将其显示在监视器上,同时将另一个场景渲染到纹理上。 我需要创建两个交换链吗?在这种情况下如何创建第二个交换链?我试图调用 CreateSwapChainForCoreWindow 但得到内存访问异常。
【问题讨论】:
交换链实际上只是用于显示内容。
要渲染某些东西,您必须通过 OMSetRenderTargets() 调用向设备添加渲染目标视图。您可以通过 CreateRenderTargetView() 创建渲染目标视图,它将资源作为输入。纹理也是资源...您只需使用 D3D11_BIND_RENDER_TARGET 标志创建它们。
这只是一些提示,应该能够为您指明正确的方向。
顺便说一句,Swapchains 有缓冲区,它们也是用于创建渲染目标视图的资源。这就是你渲染到交换链的方式;它实际上与“交换链”根本没有任何关系。
【讨论】: