Directx.9.0 Windows(全屏运行时)

时间:2013-08-31 19:41:12

标签: c++ window directx fullscreen directx-9

如何执行运行时全屏/窗口模式交换 小号

  1. UnregisterClass
  2. 释放所有directX设备
  3. 重新启动所有wc类格式
  4. 重新启动所有直接内容
  5. 然而,它有两个问题。

    1. 我设法创建了一个新窗口,但旧窗口已关闭或删除。
    2. 新窗口的客户端是黑色的。这意味着直接没有链接到新的 客户端。
    3. 第二次)

1 个答案:

答案 0 :(得分:2)

不,你不需要创建一个新窗口,只需使用旧窗口。基本上你可以用新的表示参数调用IDirect3DDevice9 :: Reset。进入全屏模式时,您需要执行以下操作。

  1. 设置D3DPRESENT_PARAMETERS.Windowed = true
  2. 调整后备缓冲区的大小(我们始终将后备缓冲区大小设置为渲染窗口大小)
  3. 使用新的宽高比(后备缓冲区宽度/后备缓冲区高度)更新投影矩阵
  4. 释放与设备关联的任何显式渲染目标,深度模板表面,附加交换链,状态块和D3DPOOL_DEFAULT资源。
  5. 调用IDirect3DDevice9 :: Reset()进入全屏模式。
  6. 请注意,当您的应用进入全屏模式时,它会挂起所有应用程序,包括开发环境(如Visual Studio)。所以你最好带另一台显示器进行全屏调试。