Expand window scale factors up to 8×
5× is just about the highest factor useful for a 3840×2160 (“4K”) monitor with games running in 320×200 mode. 7680×4320 (“8K”) monitors are also on the market and the higher scale factors should be useful for them too.
This commit is contained in:
30
src/86box.c
30
src/86box.c
@@ -1362,6 +1362,36 @@ set_screen_size_monitor(int x, int y, int monitor_index)
|
||||
monitors[monitor_index].mon_scrnsz_x = (monitors[monitor_index].mon_unscaled_size_x << 1);
|
||||
monitors[monitor_index].mon_scrnsz_y = (monitors[monitor_index].mon_unscaled_size_y << 1);
|
||||
break;
|
||||
|
||||
case 4: /* 300% */
|
||||
monitors[monitor_index].mon_scrnsz_x = (monitors[monitor_index].mon_unscaled_size_x * 3);
|
||||
monitors[monitor_index].mon_scrnsz_y = (monitors[monitor_index].mon_unscaled_size_y * 3);
|
||||
break;
|
||||
|
||||
case 5: /* 400% */
|
||||
monitors[monitor_index].mon_scrnsz_x = (monitors[monitor_index].mon_unscaled_size_x << 2);
|
||||
monitors[monitor_index].mon_scrnsz_y = (monitors[monitor_index].mon_unscaled_size_y << 2);
|
||||
break;
|
||||
|
||||
case 6: /* 500% */
|
||||
monitors[monitor_index].mon_scrnsz_x = (monitors[monitor_index].mon_unscaled_size_x * 5);
|
||||
monitors[monitor_index].mon_scrnsz_y = (monitors[monitor_index].mon_unscaled_size_y * 5);
|
||||
break;
|
||||
|
||||
case 7: /* 600% */
|
||||
monitors[monitor_index].mon_scrnsz_x = (monitors[monitor_index].mon_unscaled_size_x * 6);
|
||||
monitors[monitor_index].mon_scrnsz_y = (monitors[monitor_index].mon_unscaled_size_y * 6);
|
||||
break;
|
||||
|
||||
case 8: /* 700% */
|
||||
monitors[monitor_index].mon_scrnsz_x = (monitors[monitor_index].mon_unscaled_size_x * 7);
|
||||
monitors[monitor_index].mon_scrnsz_y = (monitors[monitor_index].mon_unscaled_size_y * 7);
|
||||
break;
|
||||
|
||||
case 9: /* 800% */
|
||||
monitors[monitor_index].mon_scrnsz_x = (monitors[monitor_index].mon_unscaled_size_x << 3);
|
||||
monitors[monitor_index].mon_scrnsz_y = (monitors[monitor_index].mon_unscaled_size_y << 3);
|
||||
break;
|
||||
}
|
||||
|
||||
plat_resize_request(monitors[monitor_index].mon_scrnsz_x, monitors[monitor_index].mon_scrnsz_y, monitor_index);
|
||||
|
@@ -123,8 +123,8 @@ load_general(void)
|
||||
|
||||
force_43 = !!ini_section_get_int(cat, "force_43", 0);
|
||||
scale = ini_section_get_int(cat, "scale", 1);
|
||||
if (scale > 3)
|
||||
scale = 3;
|
||||
if (scale > 9)
|
||||
scale = 9;
|
||||
dpi_scale = ini_section_get_int(cat, "dpi_scale", 1);
|
||||
|
||||
enable_overscan = !!ini_section_get_int(cat, "enable_overscan", 0);
|
||||
|
@@ -76,6 +76,24 @@ msgstr "1.&5x"
|
||||
msgid "&2x"
|
||||
msgstr "&2x"
|
||||
|
||||
msgid "&3x"
|
||||
msgstr "&3x"
|
||||
|
||||
msgid "&4x"
|
||||
msgstr "&4x"
|
||||
|
||||
msgid "&5x"
|
||||
msgstr "&5x"
|
||||
|
||||
msgid "&6x"
|
||||
msgstr "&6x"
|
||||
|
||||
msgid "&7x"
|
||||
msgstr "&7x"
|
||||
|
||||
msgid "&8x"
|
||||
msgstr "&8x"
|
||||
|
||||
msgid "Filter method"
|
||||
msgstr "Filter method"
|
||||
|
||||
|
@@ -416,12 +416,36 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
case 3:
|
||||
ui->action2x->setChecked(true);
|
||||
break;
|
||||
case 4:
|
||||
ui->action3x->setChecked(true);
|
||||
break;
|
||||
case 5:
|
||||
ui->action4x->setChecked(true);
|
||||
break;
|
||||
case 6:
|
||||
ui->action5x->setChecked(true);
|
||||
break;
|
||||
case 7:
|
||||
ui->action6x->setChecked(true);
|
||||
break;
|
||||
case 8:
|
||||
ui->action7x->setChecked(true);
|
||||
break;
|
||||
case 9:
|
||||
ui->action8x->setChecked(true);
|
||||
break;
|
||||
}
|
||||
actGroup = new QActionGroup(this);
|
||||
actGroup->addAction(ui->action0_5x);
|
||||
actGroup->addAction(ui->action1x);
|
||||
actGroup->addAction(ui->action1_5x);
|
||||
actGroup->addAction(ui->action2x);
|
||||
actGroup->addAction(ui->action3x);
|
||||
actGroup->addAction(ui->action4x);
|
||||
actGroup->addAction(ui->action5x);
|
||||
actGroup->addAction(ui->action6x);
|
||||
actGroup->addAction(ui->action7x);
|
||||
actGroup->addAction(ui->action8x);
|
||||
switch (video_filter_method) {
|
||||
case 0:
|
||||
ui->actionNearest->setChecked(true);
|
||||
@@ -1765,6 +1789,12 @@ static void update_scaled_checkboxes(Ui::MainWindow* ui, QAction* selected) {
|
||||
ui->action1x->setChecked(ui->action1x == selected);
|
||||
ui->action1_5x->setChecked(ui->action1_5x == selected);
|
||||
ui->action2x->setChecked(ui->action2x == selected);
|
||||
ui->action3x->setChecked(ui->action3x == selected);
|
||||
ui->action4x->setChecked(ui->action4x == selected);
|
||||
ui->action5x->setChecked(ui->action5x == selected);
|
||||
ui->action6x->setChecked(ui->action6x == selected);
|
||||
ui->action7x->setChecked(ui->action7x == selected);
|
||||
ui->action8x->setChecked(ui->action8x == selected);
|
||||
|
||||
reset_screen_size();
|
||||
device_force_redraw();
|
||||
@@ -1794,6 +1824,36 @@ void MainWindow::on_action2x_triggered() {
|
||||
update_scaled_checkboxes(ui, ui->action2x);
|
||||
}
|
||||
|
||||
void MainWindow::on_action3x_triggered() {
|
||||
scale = 4;
|
||||
update_scaled_checkboxes(ui, ui->action3x);
|
||||
}
|
||||
|
||||
void MainWindow::on_action4x_triggered() {
|
||||
scale = 5;
|
||||
update_scaled_checkboxes(ui, ui->action4x);
|
||||
}
|
||||
|
||||
void MainWindow::on_action5x_triggered() {
|
||||
scale = 6;
|
||||
update_scaled_checkboxes(ui, ui->action5x);
|
||||
}
|
||||
|
||||
void MainWindow::on_action6x_triggered() {
|
||||
scale = 7;
|
||||
update_scaled_checkboxes(ui, ui->action6x);
|
||||
}
|
||||
|
||||
void MainWindow::on_action7x_triggered() {
|
||||
scale = 8;
|
||||
update_scaled_checkboxes(ui, ui->action7x);
|
||||
}
|
||||
|
||||
void MainWindow::on_action8x_triggered() {
|
||||
scale = 9;
|
||||
update_scaled_checkboxes(ui, ui->action8x);
|
||||
}
|
||||
|
||||
void MainWindow::on_actionNearest_triggered() {
|
||||
video_filter_method = 0;
|
||||
ui->actionLinear->setChecked(false);
|
||||
|
@@ -81,6 +81,12 @@ private slots:
|
||||
void on_action1x_triggered();
|
||||
void on_action1_5x_triggered();
|
||||
void on_action2x_triggered();
|
||||
void on_action3x_triggered();
|
||||
void on_action4x_triggered();
|
||||
void on_action5x_triggered();
|
||||
void on_action6x_triggered();
|
||||
void on_action7x_triggered();
|
||||
void on_action8x_triggered();
|
||||
void on_actionLinear_triggered();
|
||||
void on_actionNearest_triggered();
|
||||
void on_actionFullScreen_int_triggered();
|
||||
|
@@ -118,6 +118,12 @@
|
||||
<addaction name="action1x"/>
|
||||
<addaction name="action1_5x"/>
|
||||
<addaction name="action2x"/>
|
||||
<addaction name="action3x"/>
|
||||
<addaction name="action4x"/>
|
||||
<addaction name="action5x"/>
|
||||
<addaction name="action6x"/>
|
||||
<addaction name="action7x"/>
|
||||
<addaction name="action8x"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuFilter_method">
|
||||
<property name="title">
|
||||
@@ -478,6 +484,54 @@
|
||||
<string>&2x</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action3x">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&3x</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action4x">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&4x</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action5x">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&5x</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action6x">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&6x</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action7x">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&7x</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action8x">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&8x</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionNearest">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
|
Reference in New Issue
Block a user