set_config_changed();
if (currprefs.monitoremu_mon != 0) {
- target_graphics_buffer_update(currprefs.monitoremu_mon);
+ target_graphics_buffer_update(currprefs.monitoremu_mon, false);
}
- if (target_graphics_buffer_update(0)) {
+ if (target_graphics_buffer_update(0, false)) {
reset_drawing();
}
}
extern int lockscr(struct vidbuffer*, bool, bool, bool);
extern void unlockscr(struct vidbuffer*, int, int);
-extern bool target_graphics_buffer_update(int monid);
+extern bool target_graphics_buffer_update(int monid, bool force);
extern float target_adjust_vblank_hz(int monid, float);
extern int target_get_display_scanline(int displayindex);
extern void target_spin(int);
}
}
if (c & 1024) {
- target_graphics_buffer_update(mon->monitor_id);
+ target_graphics_buffer_update(mon->monitor_id, true);
}
if (c & 512) {
reopen_gfx(mon);
#ifdef RETROPLATFORM
rp_set_hwnd(mon->hAmigaWnd);
#endif
- target_graphics_buffer_update(monid);
+ target_graphics_buffer_update(monid, false);
}
#endif
addnotifications (mon->hAmigaWnd, FALSE, FALSE);
mon->window_extra_height_bar = sbheight;
mon->dpi = getdpiforwindow(mon->hAmigaWnd);
+ createstatusline(mon->hMainWnd, mon->monitor_id);
if (mon->monitor_id) {
ShowWindow(mon->hMainWnd, SW_SHOWNOACTIVATE);
} else if (errv < 0) {
modechanged = false;
}
- target_graphics_buffer_update(mon->monitor_id);
updatewinrect(mon, true);
}
display_param_init(mon);
createstatusline(mon->hAmigaWnd, mon->monitor_id);
}
-
+ target_graphics_buffer_update(mon->monitor_id, false);
picasso_refresh(mon->monitor_id);
#ifdef RETROPLATFORM
return ret;
}
-bool target_graphics_buffer_update(int monid)
+bool target_graphics_buffer_update(int monid, bool force)
{
struct AmigaMonitor *mon = &AMonitors[monid];
struct picasso_vidbuf_description *vidinfo = &picasso_vidinfo[monid];
h = vb->outheight;
}
- if (oldtex_w[monid] == w && oldtex_h[monid] == h && oldtex_rtg[monid] == mon->screen_is_picasso && D3D_alloctexture(mon->monitor_id, -w, -h)) {
+ if (!force && oldtex_w[monid] == w && oldtex_h[monid] == h && oldtex_rtg[monid] == mon->screen_is_picasso && D3D_alloctexture(mon->monitor_id, -w, -h)) {
osk_setup(monid, -2);
return false;
}