Ver Fonte

Backends: Win32: Support for #define NOGDI, won't try to call GetDeviceCaps(). (#3137, #2327)

omar há 5 anos atrás
pai
commit
37f665b619
2 ficheiros alterados com 4 adições e 1 exclusões
  1. 1 0
      docs/CHANGELOG.txt
  2. 3 1
      examples/imgui_impl_win32.cpp

+ 1 - 0
docs/CHANGELOG.txt

@@ -43,6 +43,7 @@ Other Changes:
   flag was also set, and _OpenOnArrow is frequently set along with _OpenOnDoubleClick).
 - TreeNode: Fixed bug where dragging a payload over a TreeNode() with either _OpenOnDoubleClick
   or _OpenOnArrow would open the node. (#143)
+- Backends: Win32: Support for #define NOGDI, won't try to call GetDeviceCaps(). (#3137, #2327)
 
 
 -----------------------------------------------------------------------

+ 3 - 1
examples/imgui_impl_win32.cpp

@@ -408,7 +408,7 @@ void ImGui_ImplWin32_EnableDpiAwareness()
     SetProcessDPIAware();
 }
 
-#ifdef _MSC_VER
+#if defined(_MSC_VER) && !defined(NOGDI)
 #pragma comment(lib, "gdi32")   // Link with gdi32.lib for GetDeviceCaps()
 #endif
 
@@ -421,6 +421,7 @@ float ImGui_ImplWin32_GetDpiScaleForMonitor(void* monitor)
         if (PFN_GetDpiForMonitor GetDpiForMonitorFn = (PFN_GetDpiForMonitor)::GetProcAddress(shcore_dll, "GetDpiForMonitor"))
             GetDpiForMonitorFn((HMONITOR)monitor, MDT_EFFECTIVE_DPI, &xdpi, &ydpi);
     }
+#ifndef NOGDI
     else
     {
         const HDC dc = ::GetDC(NULL);
@@ -428,6 +429,7 @@ float ImGui_ImplWin32_GetDpiScaleForMonitor(void* monitor)
         ydpi = ::GetDeviceCaps(dc, LOGPIXELSY);
         ::ReleaseDC(NULL, dc);
     }
+#endif
     IM_ASSERT(xdpi == ydpi); // Please contact me if you hit this assert!
     return xdpi / 96.0f;
 }