Преглед изворни кода

Expose display device name as UTF-8.

This makes interaction with libOVR simpler, as it provides the display
device name in the same encoding.
Camilla Berglund пре 11 година
родитељ
комит
99cedceef5
3 измењених фајлова са 10 додато и 3 уклоњено
  1. 1 1
      include/GLFW/glfw3native.h
  2. 8 2
      src/win32_monitor.c
  3. 1 0
      src/win32_platform.h

+ 1 - 1
include/GLFW/glfw3native.h

@@ -112,7 +112,7 @@ extern "C" {
  *  @return The the display device name of the specified monitor.
  *  @ingroup native
  */
-GLFWAPI const WCHAR* glfwGetWin32Monitor(GLFWmonitor* monitor);
+GLFWAPI const char* glfwGetWin32Monitor(GLFWmonitor* monitor);
 
 /*! @brief Returns the `HWND` of the specified window.
  *  @return The `HWND` of the specified window.

+ 8 - 2
src/win32_monitor.c

@@ -160,6 +160,12 @@ _GLFWmonitor** _glfwPlatformGetMonitors(int* count)
             wcscpy(monitors[found]->win32.adapterName, adapter.DeviceName);
             wcscpy(monitors[found]->win32.displayName, display.DeviceName);
 
+            WideCharToMultiByte(CP_UTF8, 0,
+                                display.DeviceName, -1,
+                                monitors[found]->win32.nativeName,
+                                sizeof(monitors[found]->win32.nativeName),
+                                NULL, NULL);
+
             if (adapter.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE &&
                 displayIndex == 0)
             {
@@ -320,10 +326,10 @@ void _glfwPlatformSetGammaRamp(_GLFWmonitor* monitor, const GLFWgammaramp* ramp)
 //////                        GLFW native API                       //////
 //////////////////////////////////////////////////////////////////////////
 
-GLFWAPI const WCHAR* glfwGetWin32Monitor(GLFWmonitor* handle)
+GLFWAPI const char* glfwGetWin32Monitor(GLFWmonitor* handle)
 {
     _GLFWmonitor* monitor = (_GLFWmonitor*) handle;
     _GLFW_REQUIRE_INIT_OR_RETURN(NULL);
-    return monitor->win32.displayName;
+    return monitor->win32.nativeName;
 }
 

+ 1 - 0
src/win32_platform.h

@@ -205,6 +205,7 @@ typedef struct _GLFWmonitorWin32
     // This size matches the static size of DISPLAY_DEVICE.DeviceName
     WCHAR               adapterName[32];
     WCHAR               displayName[32];
+    char                nativeName[64];
     GLboolean           modeChanged;
 
 } _GLFWmonitorWin32;