Fix HW RTG resolution changes not always updating window size correctly.

This commit is contained in:
Toni Wilen 2024-01-27 15:26:11 +02:00
parent fdcbb946fc
commit 63c2118c05
2 changed files with 5 additions and 6 deletions

View File

@ -1659,6 +1659,8 @@ void gfxboard_vsync_handler(bool full_redraw_required, bool redraw_required)
if (gfxboard_checkchanged(gb)) {
if (!gfxboard_setmode_ext(gb)) {
gfxboard_rtg_disable(gb->monitor_id, i);
} else {
state->ModeChanged = true;
}
}
} else if (gb->resolutionchange > 1) {

View File

@ -2966,7 +2966,7 @@ static int modeswitchneeded(struct AmigaMonitor *mon, struct winuae_currentmode
}
} else if (isfullscreen () == 0) {
/* windowed to windowed */
return -1;
return -2;
} else {
/* fullwindow to fullwindow */
if (mon->screen_is_picasso) {
@ -3073,16 +3073,13 @@ void gfx_set_picasso_modeinfo(int monid, RGBFTYPE rgbfmt)
if (!mon->screen_is_picasso)
return;
gfx_set_picasso_colors(monid, rgbfmt);
update_gfxparams(mon);
updatemodes(mon);
need = modeswitchneeded(mon, &mon->currentmode);
update_gfxparams(mon);
if (need > 0) {
open_screen(mon);
} else if (need < 0) {
struct winuae_currentmode *wc = &mon->currentmode;
if (state->ModeChanged) {
open_windows(mon, true, true);
}
open_windows(mon, true, true);
}
state->ModeChanged = false;
#ifdef RETROPLATFORM