Browse Source

Examples: DirectX12+Win32: also test for IsIconic() for sleeping since we don't seem to get a DXGI_STATUS_OCCLUDED signal when minimized. (#8603)

Amend ec1d2be96f. (#2496, #3907, #6308, #7615)
This technically prevents multi-viewports from working with io.ConfigViewportsNoDefaultParent=true but this is a more fringe case to handle for our example app, better tradeoff imho to use IsIconic().
ocornut 2 months ago
parent
commit
20066a8964
2 changed files with 3 additions and 1 deletions
  1. 2 0
      docs/CHANGELOG.txt
  2. 1 1
      examples/example_win32_directx12/main.cpp

+ 2 - 0
docs/CHANGELOG.txt

@@ -115,6 +115,8 @@ Other changes:
 - Backends: Vulkan: Deep-copy ImGui_ImplVulkan_InitInfo::PipelineRenderingCreateInfo's
   pColorAttachmentFormats buffer when set, in order to reduce common user-error of
   specifying a pointer to data that gets out of scope. (#8282)
+- Examples: DirectX12+Win32: also test for IsIconic() for sleeping since we don't seem to
+  get a DXGI_STATUS_OCCLUDED signal when minimized. (#8603) [@dooann]
 
 
 -----------------------------------------------------------------------

+ 1 - 1
examples/example_win32_directx12/main.cpp

@@ -196,7 +196,7 @@ int main(int, char**)
             break;
 
         // Handle window screen locked
-        if (g_SwapChainOccluded && g_pSwapChain->Present(0, DXGI_PRESENT_TEST) == DXGI_STATUS_OCCLUDED)
+        if ((g_SwapChainOccluded && g_pSwapChain->Present(0, DXGI_PRESENT_TEST) == DXGI_STATUS_OCCLUDED) || ::IsIconic(hwnd))
         {
             ::Sleep(10);
             continue;