2013-06-25 10 views
5

Próbuję napisać małe narzędzie wiersza polecenia Celive-C, które dostosowuje obrót danego ekranu.Programowa zmiana obrotu ekranu w systemie Mac OS za pomocą kodu Xcode

Niestety, nie mogę znaleźć żadnego odniesienia w dokumentacji Apple, która mówi, jak zmienić rotację (poza otrzymaniem). Myślę, że to musi być zrobione przy użyciu CGDisplayModeRef, ale nie mogę się dowiedzieć, jak to zrobić. Każda pomoc będzie doceniona!

Odpowiedz

4

Wyodrębniony z https://github.com/CdLbB/fb-rotate - wygląda na to, że IOKit może wykonać zadanie, chociaż zachowanie wydaje mi się nieco dziwne. W skrócie:

io_service_t service = CGDisplayIOServicePort(myDisplayID); //IOKit Handle (get myDisplayID yourself) 
IOOptionBits options = (0x00000400 | (kIOScaleRotate90) << 16) //Some undocumented hex'ing 
IOServiceRequestProbe(service, options); //Set rotation to display 

Nie zapomnij połączyć z IOKit.

+0

Na OS X 10.10 mogłem użyć programu do obrócenia wewnętrznego wyświetlacza i ustawienia głównego wyświetlacza na inny monitor, ale nie mogłem obrócić drugiego monitora, nawet jeśli był ustawiony na główny. –

+0

Czy można obracać do kątów innych niż 0, 90, 180, 270? – Harry

+1

@Harry Jeśli patrzysz na płótno (do rysowania), możesz je swobodnie obracać, ale sam wyświetlacz jest ograniczony do tych czterech zdefiniowanych kątów. Stałe to kIOScaleRotate0, kIOScaleRotate90, kIOScaleRotate180 i kIOScaleRotate270. – Andreas

Powiązane problemy