MCPcopy Create free account
hub / github.com/NVIDIAGameWorks/Falcor / MonitorEnumProc

Function MonitorEnumProc

Source/Falcor/Core/Platform/MonitorInfo.cpp:179–213  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

177std::vector<MonitorInfo::MonitorDesc> internalDescs;
178
179BOOL CALLBACK MonitorEnumProc(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData)
180{
181 MONITORINFO info;
182 info.cbSize = sizeof(info);
183 if (GetMonitorInfo(hMonitor, &info))
184 {
185 DISPLAY_DEVICE dev;
186 if (!DisplayDeviceFromHMonitor(hMonitor, dev))
187 return TRUE;
188
189 std::wstring DeviceID(dev.DeviceID);
190 DeviceID = DeviceID.substr(8, DeviceID.find(L'\\', 9) - 8);
191
192 short WidthMm, HeightMm;
193
194 GetSizeForDevID(DeviceID, WidthMm, HeightMm);
195
196 float wInch = float(WidthMm) / 25.4f;
197 float hInch = float(HeightMm) / 25.4f;
198
199 MonitorInfo::MonitorDesc desc;
200 desc.identifier = wstring_2_string(DeviceID);
201 desc.resolution = uint2(std::abs(info.rcMonitor.left - info.rcMonitor.right), std::abs(info.rcMonitor.top - info.rcMonitor.bottom));
202
203 desc.physicalSize = float2(wInch, hInch);
204
205 auto vPpi = float2(desc.resolution) / desc.physicalSize;
206 desc.ppi = (vPpi.x + vPpi.y) * 0.5f;
207
208 desc.isPrimary = (info.dwFlags & MONITORINFOF_PRIMARY);
209
210 internalDescs.push_back(desc);
211 }
212 return TRUE; // continue enumerating
213}
214
215std::vector<MonitorInfo::MonitorDesc> MonitorInfo::getMonitorDescs()
216{

Callers

nothing calls this directly

Calls 5

GetSizeForDevIDFunction · 0.85
wstring_2_stringFunction · 0.85
absFunction · 0.50
push_backMethod · 0.45

Tested by

no test coverage detected