如何在SFML,C ++上使用sf::viewport测试不同的分辨率

How to test different resolutions using sf::viewport on SFML, c++

本文关键字:viewport sf 测试 分辨率 SFML      更新时间:2023-10-16

我正在尝试在SFML中测试缩放分辨率。

sf::RenderWindow window;
window.create(sf::VideoMode(1680, 1050, 32), "test", 
sf::Style::Fullscreen);
sf::View view(sf::FloatRect(0, 0, 1600, 900));
sf::FloatRect port;
port = sf::FloatRect( 0.1428 / 2, 0, 1 - (0.1428), 1);
view.setViewport(port);

0.1428 是,当我将 1050 调整为 900 的大小时,我需要放置黑条以将水平像素减少 14.28%,以便我可以保持纵横比相同。

因此,为了保持纵横比相同,新显示的分辨率将为 1440,900 和 240 像素(即 1680 的 14.28%)作为黑条。

原来的屏幕分辨率是1920x1080,但是为了检查这个测试,我已将其更改为1680,1050。

结果如下: https://prnt.sc/m9uuc9

仍然不是一个完美的圆。它看起来比例不均。

我错过了什么?

您是否尝试过使用视频模式的默认构造函数,并且仍然使用全屏。这就是我们用于项目的方法,它有效。