2010-12-13 34 views
0

Bonjour, J'ai récemment déplacé certains de nos vieux codes de dégagement pour utiliser du quartz et j'ai rencontré un petit problème. Selon les docs ("Display Capture Options" @ developer.apple.com) je peux passer kCGCaptureNoFill en tant que paramètre à CGDisplayCaptureWithOptions(), pour désactiver le remplissage de l'écran avec du noir lorsqu'il est capturé. Je l'utilise comme ça:CGDisplayCaptureWithOptions (kCGDirectMainDisplay, kCGCaptureNoFill) remplit toujours l'écran avec du noir

CGDisplayErr err = CGDisplayCaptureWithOptions (kCGDirectMainDisplay, kCGCaptureNoFill); 
if (err == kCGErrorSuccess) { 
    etc... 
} 

Mais l'écran est toujours rempli de noir quand il est capturé. Est-ce que je l'utilise mal ou y a-t-il quelque chose d'évident qui me manque?

Nous construisons avec le SDK 10.5 et le déploiement sur 10.4.x si c'est important. Cela semble affecter seulement Snow Leopard et ma recherche n'a pas révélé de problèmes similaires à cela. Merci pour vos suggestions!

Répondre

1

Après avoir ajouté une implémentation pour plusieurs affichages, lorsque je capture l'affichage en utilisant les valeurs renvoyées par CGGetActiveDisplayList() au lieu de kCGDirectMainDisplay, l'écran n'est pas noirci comme prévu. Cela résout le problème sur Snow Leopard.