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最恶心的重建资源问题.也可以实现简单的伪全屏.
    除非真的有全屏/窗口切换,才会重置设备.
  • 相关阅读:
    Saltstack安装及入门
    网络-flannel及calico
    vxlan 协议
    5G系统架构
    5G及移动边缘计算(MEC)学习笔记(3)
    linux 环境变量
    Python 包管理工具
    linux 后台运行程序
    训练测试样本划分
    kmeans 聚类 k 值优化
  • 原文地址:https://www.cnblogs.com/crazii/p/2047281.html
Copyright © 2011-2022 走看看