(RARCH_CONSOLE) Better way to detect shader type

This commit is contained in:
twinaphex 2013-01-07 17:22:51 +01:00
parent 0120b1e18e
commit e74fc47b9a
3 changed files with 24 additions and 42 deletions

View File

@ -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);
}

View File

@ -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;

View File

@ -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);
}