3#include "../Logging/Logger.h"
13void Cogs::Monitor::enumerate() {
16 LOG_DEBUG(logger,
"Enumerating monitors...");
17 EnumDisplayMonitors(
nullptr,
nullptr, &callback, 0);
20BOOL Cogs::Monitor::callback(HMONITOR monitor, HDC, RECT* coords, LPARAM) {
21 monitors.push_back({});
23 Monitor& m = monitors.back();
24 MONITORINFOEXW info = {};
26 info.cbSize =
sizeof(info);
27 GetMonitorInfoW(monitor, &info);
29 m.identifier = monitor;
30 m.name = narrow(info.szDevice);
31 m.position = glm::ivec2(coords->left, coords->top);
32 m.size = glm::ivec2(coords->right - coords->left, coords->bottom - coords->top);
33 m.primary = (info.dwFlags & MONITORINFOF_PRIMARY) ?
true :
false;
35 LOG_DEBUG(logger,
"Monitor %s: %d,%d %dx%d.", m.name.c_str(), m.position.x, m.position.y, m.size.x, m.size.y);
Log implementation class.
constexpr Log getLogger(const char(&name)[LEN]) noexcept