From ce640ea7779c14d39a7952dd6d84c8171eaa7b98 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 19 Jan 2013 10:59:52 +0100 Subject: [PATCH] (XDK) Try to setup xdk_d3d_restart - still errors out --- frontend/menu/rmenu_xui.cpp | 3 +++ xdk/xdk_d3d.cpp | 20 +++++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/frontend/menu/rmenu_xui.cpp b/frontend/menu/rmenu_xui.cpp index d717fc4aaf..999f03ce8e 100644 --- a/frontend/menu/rmenu_xui.cpp +++ b/frontend/menu/rmenu_xui.cpp @@ -454,6 +454,7 @@ HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled break; case SETTING_GAMMA_CORRECTION_ENABLED: g_extern.console.screen.gamma_correction = g_extern.console.screen.gamma_correction ? 0 : 1; + driver.video->restart(); m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_extern.console.screen.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF"); if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) rmenu_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); @@ -563,6 +564,7 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro break; case SETTING_GAMMA_CORRECTION_ENABLED: g_extern.console.screen.gamma_correction = g_extern.console.screen.gamma_correction ? 0 : 1; + driver.video->restart(); m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_extern.console.screen.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF"); if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) rmenu_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); @@ -630,6 +632,7 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro break; case SETTING_GAMMA_CORRECTION_ENABLED: g_extern.console.screen.gamma_correction = g_extern.console.screen.gamma_correction ? 0 : 1; + driver.video->restart(); m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_extern.console.screen.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF"); if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) rmenu_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); diff --git a/xdk/xdk_d3d.cpp b/xdk/xdk_d3d.cpp index d7d873cf84..dc0eba7023 100644 --- a/xdk/xdk_d3d.cpp +++ b/xdk/xdk_d3d.cpp @@ -137,11 +137,6 @@ static bool hlsl_shader_init(void) static void xdk_d3d_free(void *data) { -#ifdef RARCH_CONSOLE - if (driver.video_data) - return; -#endif - xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)data; if (!d3d) @@ -950,10 +945,6 @@ static void xdk_d3d_start(void) d3d->font_ctx = d3d_font_init_first(d3d, g_settings.video.font_path, 0 /* font size - fixed/unused */); } -static void xdk_d3d_restart(void) -{ -} - static void xdk_d3d_stop(void) { void *data = driver.video_data; @@ -963,6 +954,17 @@ static void xdk_d3d_stop(void) driver.video_data = NULL; } +static void xdk_d3d_restart(void) +{ + xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data; + + if (!d3d) + return; + + xdk_d3d_stop(); + xdk_d3d_start(); +} + static void xdk_d3d_apply_state_changes(void) { xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data;