最近在做多窗口渲染.说说我遇到的情况
首先DX9Device是根据一个窗口(比如D3DPRESENT_PARAMETERS里面的hDeviceWindow)创建的,
创建的时候必须制定一个窗口,否则创建失败.
但诡异的是,当我关闭了这个窗口之后,渲染设备竟然依然有效(但为什么创建设备的时候非要一个HWND呢,很奇怪,求达人解惑,这个跟DX的Foreground window和焦点有关么?),
而且我可以继续创建swapchain,继续多窗口渲染.
甚至可以用新窗口,来复用 已经关闭窗口的那个隐式的Swapchian和Backbuffer,就是设备创建的时候带的那个,不过我这时用的是swapchain的present,并且present的时候应该要指定新窗口
另外一点,我的设想是这样的(好像在哪儿看到的tip?我忘了):
在窗口模式下,设备初始化时,创建一个全屏幕大小的backbuffer(虽然有点浪费),但是如果窗口大小变化了,不需要设备重设,只简单更改present的destRect,避免DX9最恶心的重建资源问题.也可以实现简单的伪全屏.
除非真的有全屏/窗口切换,才会重置设备.