diff --git a/xdk/xdk_d3d.cpp b/xdk/xdk_d3d.cpp index dc0eba7023..cc14540819 100644 --- a/xdk/xdk_d3d.cpp +++ b/xdk/xdk_d3d.cpp @@ -957,12 +957,23 @@ static void xdk_d3d_stop(void) static void xdk_d3d_restart(void) { xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data; + LPDIRECT3DDEVICE d3dr = (LPDIRECT3DDEVICE)d3d->d3d_render_device; if (!d3d) return; - xdk_d3d_stop(); - xdk_d3d_start(); + D3DPRESENT_PARAMETERS d3dpp; + video_info_t video_info = {0}; + + video_info.vsync = g_settings.video.vsync; + video_info.force_aspect = false; + video_info.smooth = g_settings.video.smooth; + video_info.input_scale = 2; + video_info.fullscreen = true; + video_info.rgb32 = false; + xdk_d3d_generate_pp(&d3dpp, &video_info); + + d3dr->Reset(&d3dpp); } static void xdk_d3d_apply_state_changes(void)