Win32 Unicode fixes.

master
Camilla Berglund ago%!(EXTRA string=13 years)
parent 78bc624ba9
commit db066b4f46
  1. 10
      src/win32_fullscreen.c
  2. 10
      src/win32_monitor.c
  3. 2
      src/win32_platform.h

@ -199,7 +199,15 @@ int _glfwPlatformGetVideoModes(_GLFWmonitor* monitor, GLFWvidmode* list, int ma
for (;;)
{
if (!EnumDisplaySettings(monitor->Win32.name, deviceModeNum, &deviceMode))
BOOL result;
WCHAR* wideName = _glfwCreateWideStringFromUTF8(monitor->Win32.name);
if (!wideName)
break;
result = EnumDisplaySettings(wideName, deviceModeNum, &deviceMode);
free(wideName);
if (!result)
break;
if (vidModesCount >= maxcount)

@ -58,21 +58,20 @@ _GLFWmonitor** _glfwCreateMonitor(_GLFWmonitor** current,
*current = malloc(sizeof(_GLFWmonitor));
memset(*current, 0, sizeof(_GLFWmonitor));
dc = CreateDC("DISPLAY", monitor->DeviceString, NULL, NULL);
dc = CreateDC(L"DISPLAY", monitor->DeviceString, NULL, NULL);
(*current)->physicalWidth = GetDeviceCaps(dc, HORZSIZE);
(*current)->physicalHeight = GetDeviceCaps(dc, VERTSIZE);
DeleteDC(dc);
(*current)->name = malloc(strlen(monitor->DeviceName) + 1);
memcpy((*current)->name, monitor->DeviceName, strlen(monitor->DeviceName) + 1);
(*current)->name[strlen(monitor->DeviceName)] = '\0';
(*current)->name = _glfwCreateUTF8FromWideString(monitor->DeviceName);
(*current)->screenX = setting->dmPosition.x;
(*current)->screenY = setting->dmPosition.y;
memcpy((*current)->Win32.name, adapter->DeviceName, 32);
(*current)->Win32.name = _glfwCreateUTF8FromWideString(adapter->DeviceName);
return &((*current)->next);
}
@ -82,6 +81,7 @@ _GLFWmonitor* _glfwDestroyMonitor(_GLFWmonitor* monitor)
result = monitor->next;
free(monitor->Win32.name);
free(monitor->name);
free(monitor);

@ -219,7 +219,7 @@ typedef struct _GLFWlibraryWin32
//------------------------------------------------------------------------
typedef struct _GLFWmonitorWin32
{
char name[32];
char* name;
} _GLFWmonitorWin32;

Loading…
Cancel
Save