2011-02-07 39 views
7

Tôi muốn khởi chạy ứng dụng 3D C++ toàn màn hình ở độ phân giải gốc trên mac. Tôi làm cách nào để truy xuất độ phân giải màn hình gốc?Nhận độ phân giải màn hình theo chương trình trong OS X

+0

Lý tưởng nhất, phải có chức năng API (ví dụ: 'fullscreenize()'), sẽ thực hiện tất cả việc xử lý cho bạn. Sau đó, bạn chỉ cần sử dụng kích thước cửa sổ của bạn. – ulidtko

+0

bản sao có thể có của [Mục tiêu C - cách lấy độ phân giải màn hình hiện tại?] (Http://stackoverflow.com/questions/1868677/objective-c-how-to-get-current-screen-resolution) –

+1

giải pháp cần để được chỉ C++, hoặc là Obj-C chấp nhận được? – outis

Trả lời

10

Nếu bạn không muốn sử dụng Objective C, hãy nhận ID hiển thị mà bạn muốn hiển thị trên (sử dụng CGMainDisplayID), sau đó sử dụng CGDisplayPixelsWideCGDisplayPixelsHigh để có chiều rộng và chiều cao màn hình tính bằng pixel. Xem "Getting Information About Displays" để biết cách nhận thông tin hiển thị khác.

Nếu bạn sẵn sàng sử dụng một chút Mục tiêu-C, chỉ cần sử dụng [[NSScreen mainScreen] frame].

Lưu ý rằng có những mối quan tâm khác với hiển thị toàn màn hình, cụ thể là đảm bảo các ứng dụng khác không làm như vậy. Đọc "Drawing to the Full Screen" trong Hướng dẫn lập trình OpenGL của Apple để biết thêm.

+0

Màn hình chính của NSScreen sẽ không nhất thiết phải trả về "màn hình chính" - kích thước dường như phụ thuộc vào những thứ khác ... có thể là cửa sổ được chọn cuối cùng? Ở mức nào, nó không cung cấp kết quả nhất quán trong thực tế – jheriko

Các vấn đề liên quan