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.
* @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.

View File

@ -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;
}

View File

@ -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;