游戏中的DPI

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ccanan/article/details/82926294

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
https://docs.microsoft.com/en-us/windows/desktop/win7devguide/high-dpi

猜你喜欢

转载自blog.csdn.net/ccanan/article/details/82926294