From e74fc47b9a1d0a3ebecb0a49cbfb1197c2286b8a Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 7 Jan 2013 17:22:51 +0100 Subject: [PATCH] (RARCH_CONSOLE) Better way to detect shader type --- 360/frontend-xdk/menu.cpp | 18 ++++------------ console/rarch_console_settings.c | 12 +++++++++++ console/rmenu/rmenu.c | 36 +++++++------------------------- 3 files changed, 24 insertions(+), 42 deletions(-) diff --git a/360/frontend-xdk/menu.cpp b/360/frontend-xdk/menu.cpp index 2aa971a314..0f24e88116 100644 --- a/360/frontend-xdk/menu.cpp +++ b/360/frontend-xdk/menu.cpp @@ -859,15 +859,6 @@ HRESULT CRetroArchShaderBrowser::OnInit(XUIMessageInit * pInitData, BOOL& bHandl return 0; } -unsigned get_shader_type(void) -{ -#if defined(HAVE_HLSL) - return RARCH_SHADER_HLSL; -#else - return RARCH_SHADER_NONE; -#endif -} - HRESULT CRetroArchShaderBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandled ) { char path[PATH_MAX]; @@ -878,15 +869,14 @@ HRESULT CRetroArchShaderBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHand if(path_file_exists(tmp_browser.current_dir.list->elems[index].data)) { convert_wchar_to_char(str_buffer, (const wchar_t *)m_shaderlist.GetText(index), sizeof(str_buffer)); - unsigned shader_type = get_shader_type(); switch(set_shader) { case 1: snprintf(g_settings.video.cg_shader_path, sizeof(g_settings.video.cg_shader_path), "%s\\%s", filebrowser_get_current_dir(&tmp_browser), str_buffer); - if (shader_type != RARCH_SHADER_NONE) + if (g_settings.video.shader_type != RARCH_SHADER_NONE) { - device_ptr->set_shader(driver.video_data, (enum rarch_shader_type)shader_type, g_settings.video.cg_shader_path, (1ULL << RARCH_SHADER_PASS0)); + device_ptr->set_shader(driver.video_data, (enum rarch_shader_type)g_settings.video.shader_type, g_settings.video.cg_shader_path, (1ULL << RARCH_SHADER_PASS0)); if (g_extern.console.rmenu.state.msg_info.enable) rarch_settings_msg(S_MSG_SHADER_LOADING_SUCCEEDED, S_DELAY_180); } @@ -895,9 +885,9 @@ HRESULT CRetroArchShaderBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHand break; case 2: snprintf (g_settings.video.second_pass_shader, sizeof(g_settings.video.second_pass_shader), "%s\\%s", filebrowser_get_current_dir(&tmp_browser), str_buffer); - if (shader_type != RARCH_SHADER_NONE) + if (g_settings.video.shader_type != RARCH_SHADER_NONE) { - device_ptr->set_shader(driver.video_data, (enum rarch_shader_type)shader_type, g_settings.video.second_pass_shader, (1ULL << RARCH_SHADER_PASS1)); + device_ptr->set_shader(driver.video_data, (enum rarch_shader_type)g_settings.video.shader_type, g_settings.video.second_pass_shader, (1ULL << RARCH_SHADER_PASS1)); if (g_extern.console.rmenu.state.msg_info.enable) rarch_settings_msg(S_MSG_SHADER_LOADING_SUCCEEDED, S_DELAY_180); } diff --git a/console/rarch_console_settings.c b/console/rarch_console_settings.c index e16ea70895..87a6319a7b 100644 --- a/console/rarch_console_settings.c +++ b/console/rarch_console_settings.c @@ -342,6 +342,18 @@ void rarch_settings_set_default(void) g_settings.video.second_pass_smooth = true; #endif +#if defined(_XBOX360) + g_settings.video.shader_type = RARCH_SHADER_HLSL; +#elif defined(__PSL1GHT__) + g_settings.video.shader_type = RARCH_SHADER_GLSL; +#elif defined(__CELLOS_LV2__) + g_settings.video.shader_type = RARCH_SHADER_CG; +#elif defined(HAVE_GLSL) + g_settings.video.shader_type = RARCH_SHADER_GLSL; +#else + g_settings.video.shader_type = RARCH_SHADER_NONE; +#endif + #ifdef HAVE_FBO g_settings.video.fbo.scale_x = 2.0f; g_settings.video.fbo.scale_y = 2.0f; diff --git a/console/rmenu/rmenu.c b/console/rmenu/rmenu.c index e786d3e034..c883d8accc 100644 --- a/console/rmenu/rmenu.c +++ b/console/rmenu/rmenu.c @@ -615,19 +615,6 @@ void browser_render(void *data) } } -unsigned get_shader_type(void) -{ -#if defined(HAVE_GLSL) - return RARCH_SHADER_GLSL; -#elif defined(HAVE_CG) - return RARCH_SHADER_CG; -#elif defined(HAVE_HLSL) - return RARCH_SHADER_HLSL; -#else - return RARCH_SHADER_NONE; -#endif -} - int select_file(void *data, void *state) { menu *current_menu = (menu*)data; @@ -676,9 +663,6 @@ int select_file(void *data, void *state) ret = filebrowser_iterate(filebrowser, FILEBROWSER_ACTION_OK); else { - unsigned shader_type = 0; - (void)shader_type; - snprintf(path, sizeof(path), filebrowser_get_current_path(filebrowser)); switch(current_menu->enum_id) @@ -690,10 +674,9 @@ int select_file(void *data, void *state) case 1: strlcpy(g_settings.video.cg_shader_path, path, sizeof(g_settings.video.cg_shader_path)); - shader_type = get_shader_type(); - if (shader_type != RARCH_SHADER_NONE) + if (g_settings.video.shader_type != RARCH_SHADER_NONE) { - driver.video->set_shader(driver.video_data, (enum rarch_shader_type)shader_type, path, 1ULL << RARCH_SHADER_PASS0); + driver.video->set_shader(driver.video_data, (enum rarch_shader_type)g_settings.video.shader_type, path, 1ULL << RARCH_SHADER_PASS0); if (g_extern.console.rmenu.state.msg_info.enable) rarch_settings_msg(S_MSG_SHADER_LOADING_SUCCEEDED, S_DELAY_180); } @@ -703,10 +686,9 @@ int select_file(void *data, void *state) case 2: strlcpy(g_settings.video.second_pass_shader, path, sizeof(g_settings.video.second_pass_shader)); - shader_type = get_shader_type(); - if (shader_type != RARCH_SHADER_NONE) + if (g_settings.video.shader_type != RARCH_SHADER_NONE) { - driver.video->set_shader(driver.video_data, (enum rarch_shader_type)shader_type, path, 1ULL << RARCH_SHADER_PASS1); + driver.video->set_shader(driver.video_data, (enum rarch_shader_type)g_settings.video.shader_type, path, 1ULL << RARCH_SHADER_PASS1); if (g_extern.console.rmenu.state.msg_info.enable) rarch_settings_msg(S_MSG_SHADER_LOADING_SUCCEEDED, S_DELAY_180); } @@ -1102,10 +1084,9 @@ static void set_setting_action(void *data, unsigned switchvalue, uint64_t input) if(input & (1ULL << RMENU_DEVICE_NAV_START)) { strlcpy(g_settings.video.cg_shader_path, default_paths.shader_file, sizeof(g_settings.video.cg_shader_path)); - unsigned shader_type = get_shader_type(); - if (shader_type != RARCH_SHADER_NONE) + if (g_settings.video.shader_type != RARCH_SHADER_NONE) { - driver.video->set_shader(driver.video_data, (enum rarch_shader_type)shader_type, NULL, (1ULL << RARCH_SHADER_PASS0) | (1ULL << RARCH_SHADER_PASS0_STOCK)); + driver.video->set_shader(driver.video_data, (enum rarch_shader_type)g_settings.video.shader_type, NULL, (1ULL << RARCH_SHADER_PASS0) | (1ULL << RARCH_SHADER_PASS0_STOCK)); if (g_extern.console.rmenu.state.msg_info.enable) rarch_settings_msg(S_MSG_SHADER_LOADING_SUCCEEDED, S_DELAY_180); } @@ -1123,10 +1104,9 @@ static void set_setting_action(void *data, unsigned switchvalue, uint64_t input) if(input & (1ULL << RMENU_DEVICE_NAV_START)) { strlcpy(g_settings.video.second_pass_shader, default_paths.shader_file, sizeof(g_settings.video.second_pass_shader)); - unsigned shader_type = get_shader_type(); - if (shader_type != RARCH_SHADER_NONE) + if (g_settings.video.shader_type != RARCH_SHADER_NONE) { - driver.video->set_shader(driver.video_data, (enum rarch_shader_type)shader_type, NULL, (1ULL << RARCH_SHADER_PASS1) | (1ULL << RARCH_SHADER_PASS1_STOCK)); + driver.video->set_shader(driver.video_data, (enum rarch_shader_type)g_settings.video.shader_type, NULL, (1ULL << RARCH_SHADER_PASS1) | (1ULL << RARCH_SHADER_PASS1_STOCK)); if (g_extern.console.rmenu.state.msg_info.enable) rarch_settings_msg(S_MSG_SHADER_LOADING_SUCCEEDED, S_DELAY_180); }