如何检查显示器中是否启用了宽高比自动调整
游戏应用程序是用C++编写的,并使用DirectX 8。
我正在获取最大显示器分辨率来计算其纵横比。 然后,我使用此值来修复游戏渲染(缩放并设置剪辑以在宽屏显示器上接收带有黑色边框的正常4:3图像)。
如何检查显示器现在是否正在使用宽高比自动调整? 因为我的缩放加上显示器缩放使得生成的图像过度缩放。
谢谢
编辑: 我在“皇家特使”休闲游戏中看到了正确的不同显示器分辨率处理,有或没有纵横比自动调整。但不知道他们是如何做到这一点的。
Game application is written in C++ and uses DirectX 8.
I am getting a maximum monitor resolution to calculate it's aspect ratio.
Then I use this value to fix game rendering (scale and set clipping to receive normal 4:3 image with black borders on wide screen monitors).
How can I check if monitor is using aspect ratio auto adjustment now?
Because my scaling plus monitor scaling makes resulting image overscaled.
Thanks
EDIT:
I saw correct different monitor resolution handling with or without aspect ratio auto adjustment in "Royal Envoy" casual game. But don't know how do they do this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
通常这是在监视器本身中实现的,因此应用程序无法检测到这种情况。
请注意,您还需要处理显示器分辨率设置为 1280x1024 的情况,即使用非方形像素的 5:4 分辨率(其中显示尺寸实际上仍为 4:3)。假设你的像素是正方形并不总是正确的。 (尽管可能有一种方法可以查询操作系统或其他窗口管理器以获取此信息。)
Often this is implemented in the monitor itself, so the application would have no way to detect this case.
Note that you also need to handle the case where the monitor resolution is set to 1280x1024, which is 5:4 resolution using non-square pixels (where the display dimensions are still physically 4:3). Assuming your pixels are square is not always correct. (Although there's probably a way to query the OS or other window manager for this information.)