2012-09-03 18 views
5

che sto catturare lo schermo su OSX conCosa può causare CGDisplayCreateImageForRect per acquisire o ignorare il cursore?

capturedImage = CGDisplayCreateImageForRect(displayID, CGRectMake(point.x - 4, point.y - 4, 8, 8)); 

Questo restituisce la porzione dello schermo sotto il cursore. Più tardi sto impostando un cursore immagine personalizzata con:

[[[NSCursor alloc] initWithImage:img hotSpot:NSMakePoint(4, 4)] set]; 

Il problema si verifica dopo ho impostato il cursore e tentare di catturare di nuovo lo schermo. Il cursore è incluso nel framebuffer. Questo rende l'immagine catturata uguale all'immagine che ho posizionato come un cursore. Ho cercato di nascondere il cursore, quindi catturare lo schermo e quindi mostrarlo indietro ma non funziona e rende anche il cursore sfarfallio.

Diventa ancora più strano che su un laptop particolare l'immagine del cursore non venga catturata ma su altri laptop con lo stesso SO (Mountain Lion, Snow Leopard) l'immagine del cursore sia catturata.

Cosa può causare l'inclusione del cursore nel frame buffer? C'è un modo per garantire una cattura dello schermo senza il cursore personalizzato?

Grazie

+0

Prova a riportare il cursore sull'immagine del cursore predefinita prima di scattare la schermata. – mark

risposta

0

dipende che rende il cursore e se reso sua forma puramente accelerazione hardware o software. che differisce da hardware a hardware e anche tra os ... fai ciò che markk ha suggerito: impostalo sul valore predefinito

Problemi correlati