我正在製作C++遊戲,並希望它自動獲取用戶的桌面分辨率。C++中的便攜式方式獲取桌面分辨率
我發現迄今爲止只有windows的解決方案 - 有沒有一種方法/庫來找到Windows/Mac/Linux上的分辨率?
我正在製作C++遊戲,並希望它自動獲取用戶的桌面分辨率。C++中的便攜式方式獲取桌面分辨率
我發現迄今爲止只有windows的解決方案 - 有沒有一種方法/庫來找到Windows/Mac/Linux上的分辨率?
有幾個庫可以幫助你獲得底層的東西。你可能需要更多的東西在這些平臺上反正,所以我會列出一些:
哦,我已經使用了SFML。我不知道它有這樣的功能,感謝您的幫助! :) –
[這篇博客文章,獲取當前顯示模式](https://sfmlcoder.wordpress.com/2011/06/12/video-modes-and-windowing/)給出了代碼如何操作。 –
GLFW爲獲取桌面視頻模式提供了一個跨平臺(用於Windows,Mac和Linux)。它是一個C api,但它的將在C++中工作。相關的功能(和文檔)是在這裏:
void glfwGetDesktopMode(GLFWvidmode *mode)
參數
mode
指向一個GLFWvidmode
結構,這將是由函數填寫。
返回值
的GLFWvidmode
結構指向模式與桌面視頻方式填寫。
說明
此函數返回在GLFWvidmode
結構桌面視頻模式。有關GLFWvidmode
結構的定義,請參見glfwGetVideoModes
。
注
桌面顯示的顏色深度總是報告爲比特的每個單獨的顏色 分量(紅色,綠色和藍色)的數量,即使在桌面並不使用RGB或RGBA顏色格式。對於 實例,索引爲256的彩色顯示屏可能會報告RedBits = 3,GreenBits = 3和BlueBits = 2,其總計高達8位。
桌面視頻模式爲GLFW窗口被 打開時使用由桌面視頻模式,而不是當前的視頻模式(其可以從桌面視頻模式中,如果GLFW 窗口是全屏窗口不同) 。
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;
查看Jonas Wielicki's answer替代品。
歡呼聲回答交叉引用 –
顯然Qt有'QApplication :: desktop() - > screenGeometry();'。這不是從文檔中提取出來的,我從來沒有使用過Qt,所以如果錯誤是很抱歉的。 – chris
我不覺得有什麼完全可移植的存在... – Mysticial
圖形的便攜式代碼?沒門。 (@Mystical +1) – 2012-11-16 17:43:17