Expose display device name as UTF-8.

This makes interaction with libOVR simpler, as it provides the display
device name in the same encoding.
This commit is contained in:
Camilla Berglund 2014-09-12 17:03:44 +02:00
parent 1b6d8a6ed6
commit 99cedceef5
3 changed files with 10 additions and 3 deletions

View File

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

View File

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

View File

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