zoukankan      html  css  js  c++  java
  • DX9的窗口关闭了,设备依然有效

    最近在做多窗口渲染.说说我遇到的情况
    首先DX9Device是根据一个窗口(比如D3DPRESENT_PARAMETERS里面的hDeviceWindow)创建的,
    创建的时候必须制定一个窗口,否则创建失败.

    但诡异的是,当我关闭了这个窗口之后,渲染设备竟然依然有效(但为什么创建设备的时候非要一个HWND呢,很奇怪,求达人解惑,这个跟DX的Foreground window和焦点有关么?),
    而且我可以继续创建swapchain,继续多窗口渲染.
    甚至可以用新窗口,来复用 已经关闭窗口的那个隐式的Swapchian和Backbuffer,就是设备创建的时候带的那个,不过我这时用的是swapchain的present,并且present的时候应该要指定新窗口
    另外一点,我的设想是这样的(好像在哪儿看到的tip?我忘了):
    在窗口模式下,设备初始化时,创建一个全屏幕大小的backbuffer(虽然有点浪费),但是如果窗口大小变化了,不需要设备重设,只简单更改present的destRect,避免DX9最恶心的重建资源问题.也可以实现简单的伪全屏.
    除非真的有全屏/窗口切换,才会重置设备.
  • 相关阅读:
    .NetCore(四) 在Nginx部署
    .Net Core(三)MVC Core
    .Net Core(二)EFCore
    .Net Core(一)环境搭建与基本使用
    Linux初体验
    Angular基础(八) Observable & RxJS
    Angular基础(七) HTTP & Routing
    Angular基础(六) DI
    Angular基础(五) 内建指令和表单
    Angular基础(四) 创建Angular应用
  • 原文地址:https://www.cnblogs.com/crazii/p/2047281.html
Copyright © 2011-2022 走看看