回答
发现这个同时寻找完全不同的东西...
从MSDN
... DXGI重新调整前缓冲区以匹配新选择的全屏幕en模式,并向应用程序发送WM_SIZE消息。应用程序再次调用ResizeBuffers,就像拖动窗口边框一样。
上述解释的方法遵循一个非常特殊的路径。 DXGI默认将全屏分辨率设置为桌面分辨率。然而,许多应用程序切换到首选的全屏分辨率。在这种情况下,DXGI提供了IDXGISwapChain :: ResizeTarget。这应该在调用SetFullscreenState之前调用。尽管可以按相反的顺序调用这些方法(先SetFullscreenState,后跟ResizeTarget),但这样做会导致将额外的WM_SIZE消息发送到应用程序。 (这样做也会导致闪烁,因为DXGI可能会被强制执行两种模式更改。)在调用SetFullscreenState之后,建议再次调用ResizeTarget并将RefreshRate成员清零。这相当于DXGI中的无操作指令,但它可以避免刷新率问题,这将在下面讨论。
在全屏模式下,桌面窗口管理器被禁用。 DXGI可以执行翻转来显示后台缓冲区内容,而不是执行blit,它将在窗口模式下执行。但是,如果某些要求未得到满足,则可以取消此性能增益。为确保DXGI执行翻转而不是blit,前台缓冲区和后台缓冲区的大小必须相同。如果应用程序正确处理其WM_SIZE消息,这应该不成问题。另外,格式必须相同。
大多数应用程序的问题是刷新率。在调用ResizeTarget时指定的刷新率必须是由交换链正在使用的IDXGIOutput对象枚举的刷新率。如果应用程序清零传递到ResizeTarget中的DXGI_MODE_DESC的RefreshRate成员,则DXGI可以自动计算此值。 ...
- 1. IDXGISwapChain :: ResizeBuffers()0x887a0001 DXGI_ERROR_INVALID_CALL
- 2. SlimDX与DX10共享资源
- 3. DXGI Waitable SwapChain不等待
- 4. DX10网格:: DrawSubSet
- 5. 原始厚度 - DX10
- 6. DX10地形法线
- 7. DirectX 11 SwapChain ::目前问题
- 8. DX10空中包厢的Shader
- 9. DirectX11 Swapchain和窗口失去全屏状态
- 10. 无法创建的DirectX设备和Swapchain
- 11. 如何正确填充SwapChain Struct以使用Mulitsampling?
- 12. 在DX10/DX11中使用多个顶点缓冲区
- 13. 如何将dx10 dds图像转换为PNG使用DirectXTex
- 14. 使用HLSL中的着色器资源(端口DX9-> DX10)
- 15. 在DirectX 11,如何创建和SwapChain注册两个缓冲区(DXGI_SWAP_CHAIN_DESC)
- 16. D3D10(DirectX10)全屏显示性能问题
- 17. vkCmdCopyImageToBuffer不起作用与应用
- 18. SharpDx direct3d11如何开始渲染
- 19. IDXGIFactory4 :: CreateSwapChain返回DXGI_ERROR_INVALID_CALL
- 20. OpenGL:isampler2DArray与sampler2DArray与sampler3DArray
- 21. PdfpTable与表(与SimpleTable?)
- 22. InsertionSort与InsertionSort与BinaryInsertionSort
- 23. MySQL与PostgreSQL与SSRS
- 24. SortedList与SortedDictionary与Sort()
- 25. JFileChooser与JDialog与FileDialog
- 26. H264与RTP与Facetime
- 27. 与结构与golang
- 28. DataServiceKey与DataKeyProperty与DataServiceEntity
- 29. 休眠与Tomcat与休眠与JBoss
- 30. MD与乳胶到HTML与MathJax与Pandoc