GLFW cung cấp phương thức crossplatform (dành cho Windows, Mac và Linux) để nhận chế độ video trên máy tính để bàn. Nó là C api, nhưng nó sẽ hoạt động trong C++. Chức năng liên quan (và tài liệu) là ở đây:
void glfwGetDesktopMode(GLFWvidmode *mode)
thông số
mode
Con trỏ trỏ tới một cấu trúc GLFWvidmode
, mà sẽ được điền đầy đủ bằng các chức năng.
Return giá trị
Cấu trúc GLFWvidmode
trỏ đến bởi chế độ được làm đầy với các chế độ video máy tính để bàn.
Mô tả
Hàm này trả về chế độ video máy tính để bàn trong một cấu trúc GLFWvidmode
. Xem glfwGetVideoModes
để biết định nghĩa cấu trúc GLFWvidmode
.
Ghi chú
Độ sâu màu sắc của màn hình desktop luôn được báo cáo là số bit cho mỗi màu thành phần cá nhân (đỏ, xanh lá cây và xanh da trời), ngay cả khi máy tính để bàn không sử dụng một RGB hoặc Định dạng màu RGBA. Đối với trường hợp , màn hình màu 256 được lập chỉ mục có thể báo cáo RedBits = 3, GreenBits = 3 và BlueBits = 2, trong đó thêm tối đa 8 bit.
Định dạng video máy tính để bàn là chế độ video được sử dụng bởi các máy tính để bàn đồng thời cửa sổ GLFW được mở ra, không phải là chế độ video hiện nay (mà có thể khác với chế độ video máy tính để bàn nếu GLFW cửa sổ là một cửa sổ toàn màn hình) .
typedef struct {
int Width, Height; // Video resolution
int RedBits; // Number of red bits
int GreenBits; // Number of green bits
int BlueBits; // Number of blue bits
} GLFWvidmode;
Xem Jonas Wielicki's answer để biết các lựa chọn thay thế.
Rõ ràng Qt có 'QApplication :: desktop() -> screenGeometry();'. Điều đó đã không được kéo từ tài liệu, và tôi chưa bao giờ sử dụng Qt, vì vậy xin lỗi nếu nó sai. – chris
Tôi không nghĩ một thứ gì đó hoàn toàn có thể di chuyển được ... – Mysticial
Mã di động cho đồ họa? Không đời nào. (@Mystical +1) –