Я пытаюсь использовать 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 development» было бы преувеличением моих базовых знаний здесь. Нужно ли создавать что-то вроде кварцевого цикла событий, чтобы заставить работать обратные вызовы?