Merge pull request #2786 from chungy/higher-scaling-factors

Higher scaling factors
This commit is contained in:
Miran Grča
2022-11-02 06:35:37 +01:00
committed by GitHub
25 changed files with 512 additions and 2 deletions

View File

@@ -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_x = (monitors[monitor_index].mon_unscaled_size_x << 1);
monitors[monitor_index].mon_scrnsz_y = (monitors[monitor_index].mon_unscaled_size_y << 1); monitors[monitor_index].mon_scrnsz_y = (monitors[monitor_index].mon_unscaled_size_y << 1);
break; 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); plat_resize_request(monitors[monitor_index].mon_scrnsz_x, monitors[monitor_index].mon_scrnsz_y, monitor_index);

View File

@@ -123,8 +123,8 @@ load_general(void)
force_43 = !!ini_section_get_int(cat, "force_43", 0); force_43 = !!ini_section_get_int(cat, "force_43", 0);
scale = ini_section_get_int(cat, "scale", 1); scale = ini_section_get_int(cat, "scale", 1);
if (scale > 3) if (scale > 9)
scale = 3; scale = 9;
dpi_scale = ini_section_get_int(cat, "dpi_scale", 1); dpi_scale = ini_section_get_int(cat, "dpi_scale", 1);
enable_overscan = !!ini_section_get_int(cat, "enable_overscan", 0); enable_overscan = !!ini_section_get_int(cat, "enable_overscan", 0);

View File

@@ -76,6 +76,24 @@ msgstr "1.&5x"
msgid "&2x" msgid "&2x"
msgstr "&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" msgid "Filter method"
msgstr "Metoda &filtrování" msgstr "Metoda &filtrování"

View File

@@ -76,6 +76,24 @@ msgstr "1,&5x"
msgid "&2x" msgid "&2x"
msgstr "&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" msgid "Filter method"
msgstr "Filteringmethode" msgstr "Filteringmethode"

View File

@@ -76,6 +76,24 @@ msgstr "1.&5x"
msgid "&2x" msgid "&2x"
msgstr "&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" msgid "Filter method"
msgstr "Filter method" msgstr "Filter method"

View File

@@ -76,6 +76,24 @@ msgstr "1.&5x"
msgid "&2x" msgid "&2x"
msgstr "&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" msgid "Filter method"
msgstr "Filter method" msgstr "Filter method"

View File

@@ -76,6 +76,24 @@ msgstr "1.&5x"
msgid "&2x" msgid "&2x"
msgstr "&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" msgid "Filter method"
msgstr "&Método de filtrado" msgstr "&Método de filtrado"

View File

@@ -76,6 +76,24 @@ msgstr "1.&5x"
msgid "&2x" msgid "&2x"
msgstr "&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" msgid "Filter method"
msgstr "&Suodatusmetodi" msgstr "&Suodatusmetodi"

View File

@@ -76,6 +76,24 @@ msgstr "1.&5x"
msgid "&2x" msgid "&2x"
msgstr "&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" msgid "Filter method"
msgstr "Methode Filtre" msgstr "Methode Filtre"

View File

@@ -76,6 +76,24 @@ msgstr "1,&5x"
msgid "&2x" msgid "&2x"
msgstr "&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" msgid "Filter method"
msgstr "Metoda filtriranja" msgstr "Metoda filtriranja"

View File

@@ -76,6 +76,24 @@ msgstr "1,&5x"
msgid "&2x" msgid "&2x"
msgstr "&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" msgid "Filter method"
msgstr "Szűrési mód" msgstr "Szűrési mód"

View File

@@ -76,6 +76,24 @@ msgstr "1.&5x"
msgid "&2x" msgid "&2x"
msgstr "&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" msgid "Filter method"
msgstr "Metodo filtro" msgstr "Metodo filtro"

View File

@@ -76,6 +76,24 @@ msgstr "1.5x(&5)"
msgid "&2x" msgid "&2x"
msgstr "2x(&2)" msgstr "2x(&2)"
msgid "&3x"
msgstr "3x(&3)"
msgid "&4x"
msgstr "4x(&4)"
msgid "&5x"
msgstr "5x(&5)"
msgid "&6x"
msgstr "6x(&6)"
msgid "&7x"
msgstr "7x(&7)"
msgid "&8x"
msgstr "8x(&8)"
msgid "Filter method" msgid "Filter method"
msgstr "フィルター方式" msgstr "フィルター方式"

View File

@@ -76,6 +76,24 @@ msgstr "1.5배(&5)"
msgid "&2x" msgid "&2x"
msgstr "2배(&2)" msgstr "2배(&2)"
msgid "&3x"
msgstr "3배(&3)"
msgid "&4x"
msgstr "4배(&4)"
msgid "&5x"
msgstr "5배(&5)"
msgid "&6x"
msgstr "6배(&6)"
msgid "&7x"
msgstr "7배(&7)"
msgid "&8x"
msgstr "8배(&8)"
msgid "Filter method" msgid "Filter method"
msgstr "필터 형식" msgstr "필터 형식"

View File

@@ -76,6 +76,24 @@ msgstr "1.&5x"
msgid "&2x" msgid "&2x"
msgstr "&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" msgid "Filter method"
msgstr "Metoda filtrowania" msgstr "Metoda filtrowania"

View File

@@ -76,6 +76,24 @@ msgstr "1,&5x"
msgid "&2x" msgid "&2x"
msgstr "&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" msgid "Filter method"
msgstr "Método de filtragem" msgstr "Método de filtragem"

View File

@@ -76,6 +76,24 @@ msgstr "1.&5x"
msgid "&2x" msgid "&2x"
msgstr "&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" msgid "Filter method"
msgstr "Método de filtragem" msgstr "Método de filtragem"

View File

@@ -76,6 +76,24 @@ msgstr "1.&5x"
msgid "&2x" msgid "&2x"
msgstr "&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" msgid "Filter method"
msgstr "Метод фильтрации" msgstr "Метод фильтрации"

View File

@@ -76,6 +76,24 @@ msgstr "1.&5x"
msgid "&2x" msgid "&2x"
msgstr "&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" msgid "Filter method"
msgstr "&Metoda filtriranja" msgstr "&Metoda filtriranja"

View File

@@ -76,6 +76,24 @@ msgstr "1.&5x"
msgid "&2x" msgid "&2x"
msgstr "&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" msgid "Filter method"
msgstr "&Filtre metodu" msgstr "&Filtre metodu"

View File

@@ -76,6 +76,24 @@ msgstr "1.&5x"
msgid "&2x" msgid "&2x"
msgstr "&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" msgid "Filter method"
msgstr "Метод фільтрації" msgstr "Метод фільтрації"

View File

@@ -76,6 +76,24 @@ msgstr "1.5x(&5)"
msgid "&2x" msgid "&2x"
msgstr "2x(&2)" msgstr "2x(&2)"
msgid "&3x"
msgstr "3x(&3)"
msgid "&4x"
msgstr "4x(&4)"
msgid "&5x"
msgstr "5x(&5)"
msgid "&6x"
msgstr "6x(&6)"
msgid "&7x"
msgstr "7x(&7)"
msgid "&8x"
msgstr "8x(&8)"
msgid "Filter method" msgid "Filter method"
msgstr "过滤方式" msgstr "过滤方式"

View File

@@ -416,12 +416,36 @@ MainWindow::MainWindow(QWidget *parent) :
case 3: case 3:
ui->action2x->setChecked(true); ui->action2x->setChecked(true);
break; 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 = new QActionGroup(this);
actGroup->addAction(ui->action0_5x); actGroup->addAction(ui->action0_5x);
actGroup->addAction(ui->action1x); actGroup->addAction(ui->action1x);
actGroup->addAction(ui->action1_5x); actGroup->addAction(ui->action1_5x);
actGroup->addAction(ui->action2x); 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) { switch (video_filter_method) {
case 0: case 0:
ui->actionNearest->setChecked(true); 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->action1x->setChecked(ui->action1x == selected);
ui->action1_5x->setChecked(ui->action1_5x == selected); ui->action1_5x->setChecked(ui->action1_5x == selected);
ui->action2x->setChecked(ui->action2x == 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(); reset_screen_size();
device_force_redraw(); device_force_redraw();
@@ -1794,6 +1824,36 @@ void MainWindow::on_action2x_triggered() {
update_scaled_checkboxes(ui, ui->action2x); 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() { void MainWindow::on_actionNearest_triggered() {
video_filter_method = 0; video_filter_method = 0;
ui->actionLinear->setChecked(false); ui->actionLinear->setChecked(false);

View File

@@ -81,6 +81,12 @@ private slots:
void on_action1x_triggered(); void on_action1x_triggered();
void on_action1_5x_triggered(); void on_action1_5x_triggered();
void on_action2x_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_actionLinear_triggered();
void on_actionNearest_triggered(); void on_actionNearest_triggered();
void on_actionFullScreen_int_triggered(); void on_actionFullScreen_int_triggered();

View File

@@ -118,6 +118,12 @@
<addaction name="action1x"/> <addaction name="action1x"/>
<addaction name="action1_5x"/> <addaction name="action1_5x"/>
<addaction name="action2x"/> <addaction name="action2x"/>
<addaction name="action3x"/>
<addaction name="action4x"/>
<addaction name="action5x"/>
<addaction name="action6x"/>
<addaction name="action7x"/>
<addaction name="action8x"/>
</widget> </widget>
<widget class="QMenu" name="menuFilter_method"> <widget class="QMenu" name="menuFilter_method">
<property name="title"> <property name="title">
@@ -478,6 +484,54 @@
<string>&amp;2x</string> <string>&amp;2x</string>
</property> </property>
</action> </action>
<action name="action3x">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>&amp;3x</string>
</property>
</action>
<action name="action4x">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>&amp;4x</string>
</property>
</action>
<action name="action5x">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>&amp;5x</string>
</property>
</action>
<action name="action6x">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>&amp;6x</string>
</property>
</action>
<action name="action7x">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>&amp;7x</string>
</property>
</action>
<action name="action8x">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>&amp;8x</string>
</property>
</action>
<action name="actionNearest"> <action name="actionNearest">
<property name="checkable"> <property name="checkable">
<bool>true</bool> <bool>true</bool>