8void Cogs::Monitor::enumerate() {
11 EnumDisplayMonitors(
nullptr,
nullptr, &callback, 0);
14BOOL Cogs::Monitor::callback(HMONITOR monitor, HDC, RECT* coords, LPARAM) {
15 monitors.push_back({});
17 Monitor& m = monitors.back();
18 MONITORINFOEXW info = {};
20 info.cbSize =
sizeof(info);
21 GetMonitorInfoW(monitor, &info);
23 m.identifier = monitor;
24 m.name = narrow(info.szDevice);
25 m.position = glm::ivec2(coords->left, coords->top);
26 m.size = glm::ivec2(coords->right - coords->left, coords->bottom - coords->top);
27 m.primary = (info.dwFlags & MONITORINFOF_PRIMARY) ?
true :
false;