2011-02-07 18 views
7

Chciałbym uruchomić pełnoekranową aplikację 3D C++ w macierzystej rozdzielczości na komputerze Mac. Jak mogę odzyskać natywną rozdzielczość ekranu?Pobierz programowo rozdzielczość ekranu w OS X

+0

Idealnie powinna istnieć funkcja API (np. 'Fullscreenize()'), która wykona wszystkie operacje dla ciebie. Następnie wystarczy użyć rozmiaru okna. – ulidtko

+0

możliwy duplikat [Cel C - jak uzyskać bieżącą rozdzielczość ekranu?] (Http://stackoverflow.com/questions/1868677/objective-c-how-to-get-current-screen-resolution) –

+1

czy rozwiązanie wymaga być po prostu C++, czy jest to dopuszczalne dla Obj-C? – outis

Odpowiedz

10

Jeśli nie chcesz korzystać z Objective C, uzyskać identyfikator wyświetlacza, który chcesz wyświetlić na (używając np CGMainDisplayID), a następnie użyć CGDisplayPixelsWide i CGDisplayPixelsHigh uzyskać szerokość i wysokość ekranu w pikselach. Zobacz "Getting Information About Displays", aby dowiedzieć się, jak uzyskać inne informacje na wyświetlaczu.

Jeśli chcesz użyć odrobiny Objective-C, po prostu użyj [[NSScreen mainScreen] frame].

Należy pamiętać, że istnieją inne problemy z wyświetlaniem pełnoekranowym, a mianowicie zapewnienie, że inne aplikacje nie robią tego samego. Przeczytaj "Drawing to the Full Screen" w Przewodniku programowania OpenGL Apple, aby uzyskać więcej informacji.

+0

NSScreen mainScreen niekoniecznie zwróci "mainScreen" - rozmiar wydaje się zależeć od innych rzeczy ... ewentualnie ostatnio wybranego okna? W każdym razie nie zapewnia spójnych wyników w praktyce – jheriko

Powiązane problemy