Я пытаюсь использовать CGDisplayRegisterReconfigurationCallback
для получения событий реконфигурации дисплея в Quartz в Mac OS X. Вот очень простой код:
void CB(CGDirectDisplayID display,
CGDisplayChangeSummaryFlags flags,
void *userInfo) {
std::cout << "In callback!" << std::endl;
}
int main (int argc, char * const argv[]) {
std::cout << CGDisplayRegisterReconfigurationCallback(CB, NULL) << std::endl;
std::cout << "Registered callback, sleeping..." << std::endl;
sleep(10000000);
return 0;
}
Однако обратный вызов не вызывается, когда я подключаю/отключаю мониторы и т. д. CGDisplayRegisterReconfigurationCallback
возвращает успех.
«новичок в разработке OS X» было бы преувеличением моих базовых знаний здесь. Нужно ли создавать что-то вроде кварцевого цикла событий, чтобы обратные вызовы работали?