好的,我正在重写这篇文章,因为我有一个非常具体的问题,但我认为解释我想要做的事情可能更有用:)
我正在使用SlimDX在WPF中工作。 目标是初始化Direct3D设备的程序,并且能够将酷D3D11 gfx呈现给屏幕外渲染目标。
用户可以添加输出窗口,输出窗口可以在任何连接的监视器上全屏显示,也可以只是窗口。 输出窗口只显示offscreen-backbuffer的部分。 所以 - 我有一个非常高的屏幕外纹理/后退缓冲区,我想要零到N个输出窗口基本上渲染全屏四边形与uv-coords指定高纹理区域。
我的问题是:
SlimDX在主应用程序中初始化Direct3D设备的“正确”方式是什么,没有任何输出窗口/交换链?
一旦我拥有一台'全局'Direct3D 11设备,如何设置一个可以渲染酷炫内容的屏幕外渲染目标?
一旦我有一个带有很酷的东西的屏幕外渲染目标,我该如何设置一个系统,以便我可以添加/删除显示此渲染目标的部分的窗口? (对于每个动态创建/删除的窗口,添加/删除交换链的一部分?)
我知道这些问题非常具体,大多数人都不想在后台渲染东西以便在不同的设备上显示,但是嘿 - 这就是stackoverflow的用途:)