В чистом приложении macos c ++ я запрашиваю доступные мониторы с помощью простого l oop
CGDirectDisplayID mainID = CGMainDisplayID();
uint32 displayCount = 0;
CGDirectDisplayID displays[8];
CGGetActiveDisplayList(8, displays.Buffer(), &displayCount);
for (int i = 0, e = displayCount; i < e; ++i)
{
CGDirectDisplayID id = displays[i];
int width = CGDisplayPixelsWide(id)
int height = CGDisplayPixelsHigh(id));
...
}
Я фиксирую и сообщаю обо всех выделениях, которые я могу, и после запуска своего приложения я получаю распределения, указанные в следующем стеке и многих других похожих стеках:
CGSInternalRegisterNotifyProc in /System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight @ 0X7FFF5B730000(+0X15B3)
__SLSInitialize_block_invoke in /System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight @ 0X7FFF5B730000(+0X15E147)
_dispatch_client_callout in /usr/lib/system/libdispatch.dylib @ 0X7FFF619C2000(+0X1DB0)
dispatch_once_f in /usr/lib/system/libdispatch.dylib @ 0X7FFF619C2000(+0X1D42)
SLSMainDisplayID in /System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight @ 0X7FFF5B730000(+0X1C6C05)
Что мне не хватает для создания чистого консольного приложения MacOS? Есть ли какая-то функция очистки, которую я могу вызвать, или какая-то очередь событий, которая мне нужна для гриппа sh?