2009-06-05 3 views
1

Je suis en train d'utiliser CGDisplayRegisterReconfigurationCallback pour obtenir des événements de reconfiguration d'affichage en quartz sur Mac OS X. Voici le code super-simple:Est-ce que quelque chose est nécessaire pour obtenir un rappel Quartz en plus de l'enregistrer?

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; 
} 

Cependant, le rappel est pas appelé quand je brancher/moniteurs débranchez , etc. CGDisplayRegisterReconfigurationCallback renvoie le succès.

'new to os x development' serait une surestimation de mes connaissances de base ici. Ai-je besoin d'instancier quelque chose comme une boucle d'événement à quartz pour que les rappels fonctionnent?

Répondre

0

Vous avez besoin d'une boucle d'exécution. Une application standard Cocoa ou Carbon a ceci dans le cadre du traitement normal des événements. Je suppose que la façon la plus simple serait d'utiliser CFRunLoopRun.

Questions connexes