Mac OS X の Quartz でディスプレイ再構成イベントを取得するために使用しようとしていますCGDisplayRegisterReconfigurationCallback
。非常に単純なコードは次のとおりです。
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 開発の初心者」は、ここでの私の背景知識の誇張です。コールバックを機能させるには、クオーツ イベント ループのようなものをインスタンス化する必要がありますか?