遊戲中的DPI
DPI在高解析度顯示器和手機普及之後,開始成為消費者關心的話題。
遊戲也會出現這個問題
簡單講,DPI(dots per inch)就是一個引數,調了之後,畫面上的字型等會變大變小。
比如我使用一個27寸的4k顯示器,如果DPI 100%的話,那麼字型就是27英寸的1080p顯示器的1/4大小,完全沒法看了。
這個時候,使用DPI 200%,字就又大又清楚了。
這個過程在windows上面就是DWM(desktop windows manager)做了scaling,它和自己手動改4k顯示器解析度到1080p很像,但是不完全一樣(比如程式還是可以自己在程式裡面使用不縮放的渲染)。
遊戲裡
如果我們什麼都不做的話,遊戲按照普通的api呼叫來識別桌面的大小,比如使用:GetSystemMetrics這樣的函式,拿出來就是經過DPI縮放過的值(1080p 200%縮放,拿到的寬就是960了)。
當然我們也可以使用一些無視DPI的系統api來獲得native的resolution,但這個其實不太推薦,要處理的情況還是比較多的。
另外一個就是通過windows(尤其是win10裡面設定已經非常方便了),這樣遊戲就無視系統的DPI設定了
windows對遊戲的自動設定
如果遊戲真全屏跑了之後,系統會自動識別出來這個是遊戲,會通過註冊的方式,自動的讓這個遊戲(exe)不使用系統的真全屏
reference
ofollow,noindex" target="_blank">https://docs.microsoft.com/en-us/windows/desktop/win7devguide/high-dpi