mirror of
https://github.com/libretro/RetroArch
synced 2025-02-14 06:40:48 +00:00
(360) Improved usability plus improved font drawing speed
This commit is contained in:
parent
c88d5da147
commit
26a459a234
@ -39,6 +39,35 @@ uint32_t set_shader = 0;
|
||||
wchar_t strw_buffer[PATH_MAX];
|
||||
char str_buffer[PATH_MAX];
|
||||
|
||||
enum
|
||||
{
|
||||
RMENU_DEVICE_NAV_UP = 0,
|
||||
RMENU_DEVICE_NAV_DOWN,
|
||||
RMENU_DEVICE_NAV_LEFT,
|
||||
RMENU_DEVICE_NAV_RIGHT,
|
||||
RMENU_DEVICE_NAV_UP_ANALOG_L,
|
||||
RMENU_DEVICE_NAV_DOWN_ANALOG_L,
|
||||
RMENU_DEVICE_NAV_LEFT_ANALOG_L,
|
||||
RMENU_DEVICE_NAV_RIGHT_ANALOG_L,
|
||||
RMENU_DEVICE_NAV_UP_ANALOG_R,
|
||||
RMENU_DEVICE_NAV_DOWN_ANALOG_R,
|
||||
RMENU_DEVICE_NAV_LEFT_ANALOG_R,
|
||||
RMENU_DEVICE_NAV_RIGHT_ANALOG_R,
|
||||
RMENU_DEVICE_NAV_B,
|
||||
RMENU_DEVICE_NAV_A,
|
||||
RMENU_DEVICE_NAV_X,
|
||||
RMENU_DEVICE_NAV_Y,
|
||||
RMENU_DEVICE_NAV_START,
|
||||
RMENU_DEVICE_NAV_SELECT,
|
||||
RMENU_DEVICE_NAV_L1,
|
||||
RMENU_DEVICE_NAV_R1,
|
||||
RMENU_DEVICE_NAV_L2,
|
||||
RMENU_DEVICE_NAV_R2,
|
||||
RMENU_DEVICE_NAV_L3,
|
||||
RMENU_DEVICE_NAV_R3,
|
||||
RMENU_DEVICE_NAV_LAST
|
||||
};
|
||||
|
||||
/* Register custom classes */
|
||||
HRESULT CRetroArch::RegisterXuiClasses (void)
|
||||
{
|
||||
@ -67,12 +96,44 @@ HRESULT CRetroArch::UnregisterXuiClasses (void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void filebrowser_fetch_directory_entries(const char *path,
|
||||
filebrowser_t * browser, CXuiList * romlist, CXuiTextElement * rompath_title)
|
||||
static void browser_update(filebrowser_t * b, uint64_t input, const char *extensions)
|
||||
{
|
||||
filebrowser_push_directory(browser, path, true);
|
||||
bool ret = true;
|
||||
filebrowser_action_t action = FILEBROWSER_ACTION_NOOP;
|
||||
|
||||
convert_char_to_wchar(strw_buffer, path, sizeof(strw_buffer));
|
||||
if (input & (1 << RMENU_DEVICE_NAV_DOWN))
|
||||
action = FILEBROWSER_ACTION_DOWN;
|
||||
else if (input & (1 << RMENU_DEVICE_NAV_UP))
|
||||
action = FILEBROWSER_ACTION_UP;
|
||||
else if (input & (1 << RMENU_DEVICE_NAV_RIGHT))
|
||||
action = FILEBROWSER_ACTION_RIGHT;
|
||||
else if (input & (1 << RMENU_DEVICE_NAV_LEFT))
|
||||
action = FILEBROWSER_ACTION_LEFT;
|
||||
else if (input & (1 << RMENU_DEVICE_NAV_R2))
|
||||
action = FILEBROWSER_ACTION_SCROLL_DOWN;
|
||||
else if (input & (1 << RMENU_DEVICE_NAV_L2))
|
||||
action = FILEBROWSER_ACTION_SCROLL_UP;
|
||||
else if (input & (1 << RMENU_DEVICE_NAV_A))
|
||||
action = FILEBROWSER_ACTION_CANCEL;
|
||||
else if (input & (1 << RMENU_DEVICE_NAV_START))
|
||||
{
|
||||
action = FILEBROWSER_ACTION_RESET;
|
||||
filebrowser_set_root(b, default_paths.filesystem_root_dir);
|
||||
strlcpy(b->extensions, extensions, sizeof(b->extensions));
|
||||
}
|
||||
|
||||
if(action != FILEBROWSER_ACTION_NOOP)
|
||||
ret = filebrowser_iterate(b, action);
|
||||
|
||||
if(!ret)
|
||||
rarch_settings_msg(S_MSG_DIR_LOADING_ERROR, S_DELAY_180);
|
||||
}
|
||||
|
||||
static void filebrowser_fetch_directory_entries(filebrowser_t * browser, uint64_t action, CXuiList * romlist, CXuiTextElement * rompath_title)
|
||||
{
|
||||
browser_update(browser, action, browser->extensions);
|
||||
|
||||
convert_char_to_wchar(strw_buffer, filebrowser_get_current_dir(browser), sizeof(strw_buffer));
|
||||
rompath_title->SetText(strw_buffer);
|
||||
|
||||
romlist->DeleteItems(0, romlist->GetItemCount());
|
||||
@ -95,37 +156,54 @@ HRESULT CRetroArchFileBrowser::OnInit(XUIMessageInit * pInitData, BOOL& bHandled
|
||||
GetChildById(L"XuiBtnGameDir", &m_dir_game);
|
||||
GetChildById(L"XuiBtnCacheDir", &m_dir_cache);
|
||||
|
||||
filebrowser_set_root(browser, g_console.default_rom_startup_dir);
|
||||
strlcpy(tmp_browser->extensions, rarch_console_get_rom_ext(), sizeof(tmp_browser->extensions));
|
||||
filebrowser_fetch_directory_entries(g_console.default_rom_startup_dir,
|
||||
browser, &m_romlist, &m_rompathtitle);
|
||||
filebrowser_set_root_and_ext(browser, rarch_console_get_rom_ext(), g_console.default_rom_startup_dir);
|
||||
|
||||
uint64_t action = (1 << RMENU_DEVICE_NAV_B);
|
||||
filebrowser_fetch_directory_entries(browser, action, &m_romlist, &m_rompathtitle);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
HRESULT CRetroArchCoreBrowser::OnInit(XUIMessageInit * pInitData, BOOL& bHandled)
|
||||
HRESULT CRetroArchFileBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandled )
|
||||
{
|
||||
GetChildById(L"XuiRomList", &m_romlist);
|
||||
GetChildById(L"XuiBackButton1", &m_back);
|
||||
GetChildById(L"XuiTxtRomPath", &m_rompathtitle);
|
||||
char path[PATH_MAX];
|
||||
|
||||
filebrowser_set_root(tmp_browser, "game:");
|
||||
strlcpy(tmp_browser->extensions, "xex|XEX", sizeof(tmp_browser->extensions));
|
||||
filebrowser_fetch_directory_entries("game:", tmp_browser, &m_romlist, &m_rompathtitle);
|
||||
if(hObjPressed == m_romlist)
|
||||
{
|
||||
int index = m_romlist.GetCurSel();
|
||||
convert_wchar_to_char(str_buffer, (const wchar_t *)m_romlist.GetText(index), sizeof(str_buffer));
|
||||
if(path_file_exists(browser->current_dir.list->elems[index].data))
|
||||
{
|
||||
snprintf(path, sizeof(path), "%s\\%s", filebrowser_get_current_dir(browser), str_buffer);
|
||||
rarch_console_load_game_wrap(path, g_console.zip_extract_mode, S_DELAY_45);
|
||||
}
|
||||
else if(browser->current_dir.list->elems[index].attr.b)
|
||||
{
|
||||
snprintf(path, sizeof(path), "%s\\%s", filebrowser_get_current_dir(browser), str_buffer);
|
||||
uint64_t action = (1 << RMENU_DEVICE_NAV_B);
|
||||
filebrowser_set_root_and_ext(browser, rarch_console_get_rom_ext(), path);
|
||||
filebrowser_fetch_directory_entries(browser, action, &m_romlist, &m_rompathtitle);
|
||||
}
|
||||
}
|
||||
else if (hObjPressed == m_dir_game)
|
||||
{
|
||||
filebrowser_set_root_and_ext(browser, rarch_console_get_rom_ext(), g_console.default_rom_startup_dir);
|
||||
uint64_t action = (1 << RMENU_DEVICE_NAV_B);
|
||||
filebrowser_fetch_directory_entries(browser, action, &m_romlist, &m_rompathtitle);
|
||||
}
|
||||
#ifdef HAVE_HDD_CACHE_PARTITION
|
||||
else if (hObjPressed == m_dir_cache)
|
||||
{
|
||||
filebrowser_set_root_and_ext(browser, rarch_console_get_rom_ext(), "cache:");
|
||||
uint64_t action = (1 << RMENU_DEVICE_NAV_B);
|
||||
filebrowser_fetch_directory_entries(browser, action, &m_romlist, &m_rompathtitle);
|
||||
|
||||
return 0;
|
||||
}
|
||||
if (g_console.info_msg_enable)
|
||||
rarch_settings_msg(S_MSG_CACHE_PARTITION, S_DELAY_180);
|
||||
}
|
||||
#endif
|
||||
|
||||
HRESULT CRetroArchShaderBrowser::OnInit(XUIMessageInit * pInitData, BOOL& bHandled)
|
||||
{
|
||||
GetChildById(L"XuiRomList", &m_shaderlist);
|
||||
GetChildById(L"XuiBackButton1", &m_back);
|
||||
GetChildById(L"XuiTxtRomPath", &m_shaderpathtitle);
|
||||
|
||||
filebrowser_set_root(tmp_browser, "game:\\media\\shaders");
|
||||
strlcpy(tmp_browser->extensions, "cg|CG", sizeof(tmp_browser->extensions));
|
||||
filebrowser_fetch_directory_entries("game:\\media\\shaders", tmp_browser,
|
||||
&m_shaderlist, &m_shaderpathtitle);
|
||||
bHandled = TRUE;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -271,6 +349,99 @@ HRESULT CRetroArchSettings::OnInit(XUIMessageInit * pInitData, BOOL& bHandled)
|
||||
return 0;
|
||||
}
|
||||
|
||||
HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled )
|
||||
{
|
||||
int current_index;
|
||||
HRESULT hr;
|
||||
|
||||
if ( hObjPressed == m_settingslist)
|
||||
{
|
||||
current_index = m_settingslist.GetCurSel();
|
||||
|
||||
switch(current_index)
|
||||
{
|
||||
case SETTING_EMU_REWIND_ENABLED:
|
||||
rarch_settings_change(S_REWIND);
|
||||
m_settingslist.SetText(SETTING_EMU_REWIND_ENABLED, g_settings.rewind_enable ? L"Rewind: ON" : L"Rewind: OFF");
|
||||
|
||||
if (g_console.info_msg_enable)
|
||||
rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
|
||||
break;
|
||||
case SETTING_EMU_SHOW_INFO_MSG:
|
||||
g_console.info_msg_enable = !g_console.info_msg_enable;
|
||||
m_settingslist.SetText(SETTING_EMU_SHOW_INFO_MSG, g_console.info_msg_enable ? L"Info messages: ON" : L"Info messages: OFF");
|
||||
break;
|
||||
case SETTING_EMU_MENUS:
|
||||
g_console.menus_hd_enable = !g_console.menus_hd_enable;
|
||||
m_settingslist.SetText(SETTING_EMU_MENUS, g_console.menus_hd_enable ? L"Menus: HD" : L"Menus: SD");
|
||||
break;
|
||||
case SETTING_GAMMA_CORRECTION_ENABLED:
|
||||
g_console.gamma_correction = g_console.gamma_correction ? 0 : 1;
|
||||
m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_console.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF");
|
||||
if(g_console.info_msg_enable)
|
||||
rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
|
||||
break;
|
||||
case SETTING_COLOR_FORMAT:
|
||||
g_console.color_format = !g_console.color_format;
|
||||
m_settingslist.SetText(SETTING_COLOR_FORMAT, g_console.color_format ? L"Color format: 32bit ARGB" : L"Color format: 16bit RGBA");
|
||||
if(g_console.info_msg_enable)
|
||||
rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
|
||||
break;
|
||||
case SETTING_SHADER:
|
||||
set_shader = 1;
|
||||
hr = XuiSceneCreate(g_console.menus_hd_enable ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_shader_browser.xur", NULL, &app.hShaderBrowser);
|
||||
|
||||
if (hr < 0)
|
||||
RARCH_ERR("Failed to load scene.\n");
|
||||
|
||||
hCur = app.hShaderBrowser;
|
||||
|
||||
if (g_console.info_msg_enable)
|
||||
rarch_settings_msg(S_MSG_SELECT_SHADER, S_DELAY_180);
|
||||
|
||||
NavigateForward(app.hShaderBrowser);
|
||||
break;
|
||||
case SETTING_SHADER_2:
|
||||
set_shader = 2;
|
||||
hr = XuiSceneCreate(g_console.menus_hd_enable ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_shader_browser.xur", NULL, &app.hShaderBrowser);
|
||||
if (hr < 0)
|
||||
RARCH_ERR("Failed to load scene.\n");
|
||||
|
||||
hCur = app.hShaderBrowser;
|
||||
|
||||
if (g_console.info_msg_enable)
|
||||
rarch_settings_msg(S_MSG_SELECT_SHADER, S_DELAY_180);
|
||||
|
||||
NavigateForward(app.hShaderBrowser);
|
||||
break;
|
||||
case SETTING_HW_TEXTURE_FILTER:
|
||||
g_settings.video.smooth = !g_settings.video.smooth;
|
||||
m_settingslist.SetText(SETTING_HW_TEXTURE_FILTER, g_settings.video.smooth ? L"Hardware filtering shader #1: Linear interpolation" : L"Hardware filtering shader #1: Point filtering");
|
||||
break;
|
||||
case SETTING_HW_TEXTURE_FILTER_2:
|
||||
g_settings.video.second_pass_smooth = !g_settings.video.second_pass_smooth;
|
||||
m_settingslist.SetText(SETTING_HW_TEXTURE_FILTER_2, g_settings.video.second_pass_smooth ? L"Hardware filtering shader #2: Linear interpolation" : L"Hardware filtering shader #2: Point filtering");
|
||||
break;
|
||||
case SETTING_SCALE_ENABLED:
|
||||
g_console.fbo_enabled = !g_console.fbo_enabled;
|
||||
m_settingslist.SetText(SETTING_SCALE_ENABLED, g_console.fbo_enabled ? L"Custom Scaling/Dual Shaders: ON" : L"Custom Scaling/Dual Shaders: OFF");
|
||||
gfx_ctx_set_fbo(g_console.fbo_enabled);
|
||||
break;
|
||||
case SETTING_ZIP_EXTRACT:
|
||||
if(g_console.zip_extract_mode < ZIP_EXTRACT_TO_CACHE_DIR)
|
||||
g_console.zip_extract_mode++;
|
||||
else
|
||||
g_console.zip_extract_mode = 0;
|
||||
rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ZIP_EXTRACT, sizeof(strw_buffer));
|
||||
m_settingslist.SetText(SETTING_ZIP_EXTRACT, strw_buffer);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bHandled = TRUE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pControlNavigateData, BOOL& bHandled)
|
||||
{
|
||||
int current_index;
|
||||
@ -618,69 +789,15 @@ HRESULT CRetroArchQuickMenu::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled
|
||||
return 0;
|
||||
}
|
||||
|
||||
HRESULT CRetroArchMain::OnInit(XUIMessageInit * pInitData, BOOL& bHandled)
|
||||
HRESULT CRetroArchShaderBrowser::OnInit(XUIMessageInit * pInitData, BOOL& bHandled)
|
||||
{
|
||||
struct retro_system_info info;
|
||||
retro_get_system_info(&info);
|
||||
const char *id = info.library_name ? info.library_name : "Unknown";
|
||||
GetChildById(L"XuiRomList", &m_shaderlist);
|
||||
GetChildById(L"XuiBackButton1", &m_back);
|
||||
GetChildById(L"XuiTxtRomPath", &m_shaderpathtitle);
|
||||
|
||||
GetChildById(L"XuiLogo", &m_logoimage);
|
||||
GetChildById(L"XuiBtnRomBrowser", &m_filebrowser);
|
||||
GetChildById(L"XuiBtnSettings", &m_settings);
|
||||
GetChildById(L"XuiBtnQuickMenu", &m_quick_menu);
|
||||
GetChildById(L"XuiBtnControls", &m_controls);
|
||||
GetChildById(L"XuiBtnQuit", &m_quit);
|
||||
GetChildById(L"XuiTxtTitle", &m_title);
|
||||
GetChildById(L"XuiTxtCoreText", &m_core);
|
||||
GetChildById(L"XuiBtnLibretroCore", &m_change_libretro_core);
|
||||
|
||||
char core_text[256];
|
||||
snprintf(core_text, sizeof(core_text), "%s %s", id, info.library_version);
|
||||
|
||||
convert_char_to_wchar(strw_buffer, core_text, sizeof(strw_buffer));
|
||||
m_core.SetText(strw_buffer);
|
||||
rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_RARCH_VERSION, sizeof(strw_buffer));
|
||||
m_title.SetText(strw_buffer);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
HRESULT CRetroArchFileBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandled )
|
||||
{
|
||||
char path[PATH_MAX];
|
||||
|
||||
if(hObjPressed == m_romlist)
|
||||
{
|
||||
int index = m_romlist.GetCurSel();
|
||||
convert_wchar_to_char(str_buffer, (const wchar_t *)m_romlist.GetText(index), sizeof(str_buffer));
|
||||
if(path_file_exists(browser->current_dir.list->elems[index].data))
|
||||
{
|
||||
snprintf(path, sizeof(path), "%s\\%s", filebrowser_get_current_dir(browser), str_buffer);
|
||||
rarch_console_load_game_wrap(path, g_console.zip_extract_mode, S_DELAY_45);
|
||||
}
|
||||
else if(browser->current_dir.list->elems[index].attr.b)
|
||||
{
|
||||
snprintf(path, sizeof(path), "%s\\%s", filebrowser_get_current_dir(browser), str_buffer);
|
||||
filebrowser_fetch_directory_entries(path, browser, &m_romlist, &m_rompathtitle);
|
||||
}
|
||||
}
|
||||
else if (hObjPressed == m_dir_game)
|
||||
{
|
||||
filebrowser_new(browser, g_console.default_rom_startup_dir, rarch_console_get_rom_ext());
|
||||
filebrowser_fetch_directory_entries(g_console.default_rom_startup_dir, browser, &m_romlist, &m_rompathtitle);
|
||||
}
|
||||
#ifdef HAVE_HDD_CACHE_PARTITION
|
||||
else if (hObjPressed == m_dir_cache)
|
||||
{
|
||||
filebrowser_new(browser, "cache:", rarch_console_get_rom_ext());
|
||||
filebrowser_fetch_directory_entries("cache:", browser, &m_romlist, &m_rompathtitle);
|
||||
|
||||
if (g_console.info_msg_enable)
|
||||
rarch_settings_msg(S_MSG_CACHE_PARTITION, S_DELAY_180);
|
||||
}
|
||||
#endif
|
||||
|
||||
bHandled = TRUE;
|
||||
filebrowser_set_root_and_ext(tmp_browser, "cg|CG", "game:\\media\\shaders");
|
||||
uint64_t action = (1 << RMENU_DEVICE_NAV_B);
|
||||
filebrowser_fetch_directory_entries(tmp_browser, action, &m_shaderlist, &m_shaderpathtitle);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -714,7 +831,9 @@ HRESULT CRetroArchShaderBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHand
|
||||
{
|
||||
convert_wchar_to_char(str_buffer, (const wchar_t *)m_shaderlist.GetText(index), sizeof(str_buffer));
|
||||
snprintf(path, sizeof(path), "%s\\%s", filebrowser_get_current_dir(tmp_browser), str_buffer);
|
||||
filebrowser_fetch_directory_entries(path, tmp_browser, &m_shaderlist, &m_shaderpathtitle);
|
||||
filebrowser_set_root_and_ext(tmp_browser, "cg|CG", path);
|
||||
uint64_t action = (1 << RMENU_DEVICE_NAV_B);
|
||||
filebrowser_fetch_directory_entries(tmp_browser, action, &m_shaderlist, &m_shaderpathtitle);
|
||||
}
|
||||
}
|
||||
|
||||
@ -723,6 +842,19 @@ HRESULT CRetroArchShaderBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHand
|
||||
return 0;
|
||||
}
|
||||
|
||||
HRESULT CRetroArchCoreBrowser::OnInit(XUIMessageInit * pInitData, BOOL& bHandled)
|
||||
{
|
||||
GetChildById(L"XuiRomList", &m_romlist);
|
||||
GetChildById(L"XuiBackButton1", &m_back);
|
||||
GetChildById(L"XuiTxtRomPath", &m_rompathtitle);
|
||||
|
||||
filebrowser_set_root_and_ext(tmp_browser, "xex|XEX", "game:");
|
||||
uint64_t action = (1 << RMENU_DEVICE_NAV_B);
|
||||
filebrowser_fetch_directory_entries(tmp_browser, action, &m_romlist, &m_rompathtitle);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
HRESULT CRetroArchCoreBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandled )
|
||||
{
|
||||
char path[PATH_MAX];
|
||||
@ -739,7 +871,9 @@ HRESULT CRetroArchCoreBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandle
|
||||
else if(tmp_browser->current_dir.list->elems[index].attr.b)
|
||||
{
|
||||
snprintf(path, sizeof(path), "%s\\%s", filebrowser_get_current_dir(tmp_browser), str_buffer);
|
||||
filebrowser_fetch_directory_entries(path, tmp_browser, &m_romlist, &m_rompathtitle);
|
||||
filebrowser_set_root_and_ext(tmp_browser, rarch_console_get_rom_ext(), path);
|
||||
uint64_t action = (1 << RMENU_DEVICE_NAV_B);
|
||||
filebrowser_fetch_directory_entries(tmp_browser, action, &m_romlist, &m_rompathtitle);
|
||||
}
|
||||
}
|
||||
|
||||
@ -747,96 +881,32 @@ HRESULT CRetroArchCoreBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandle
|
||||
return 0;
|
||||
}
|
||||
|
||||
HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled )
|
||||
HRESULT CRetroArchMain::OnInit(XUIMessageInit * pInitData, BOOL& bHandled)
|
||||
{
|
||||
int current_index;
|
||||
HRESULT hr;
|
||||
struct retro_system_info info;
|
||||
retro_get_system_info(&info);
|
||||
const char *id = info.library_name ? info.library_name : "Unknown";
|
||||
|
||||
if ( hObjPressed == m_settingslist)
|
||||
{
|
||||
current_index = m_settingslist.GetCurSel();
|
||||
GetChildById(L"XuiLogo", &m_logoimage);
|
||||
GetChildById(L"XuiBtnRomBrowser", &m_filebrowser);
|
||||
GetChildById(L"XuiBtnSettings", &m_settings);
|
||||
GetChildById(L"XuiBtnQuickMenu", &m_quick_menu);
|
||||
GetChildById(L"XuiBtnControls", &m_controls);
|
||||
GetChildById(L"XuiBtnQuit", &m_quit);
|
||||
GetChildById(L"XuiTxtTitle", &m_title);
|
||||
GetChildById(L"XuiTxtCoreText", &m_core);
|
||||
GetChildById(L"XuiBtnLibretroCore", &m_change_libretro_core);
|
||||
|
||||
switch(current_index)
|
||||
{
|
||||
case SETTING_EMU_REWIND_ENABLED:
|
||||
rarch_settings_change(S_REWIND);
|
||||
m_settingslist.SetText(SETTING_EMU_REWIND_ENABLED, g_settings.rewind_enable ? L"Rewind: ON" : L"Rewind: OFF");
|
||||
|
||||
if (g_console.info_msg_enable)
|
||||
rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
|
||||
break;
|
||||
case SETTING_EMU_SHOW_INFO_MSG:
|
||||
g_console.info_msg_enable = !g_console.info_msg_enable;
|
||||
m_settingslist.SetText(SETTING_EMU_SHOW_INFO_MSG, g_console.info_msg_enable ? L"Info messages: ON" : L"Info messages: OFF");
|
||||
break;
|
||||
case SETTING_EMU_MENUS:
|
||||
g_console.menus_hd_enable = !g_console.menus_hd_enable;
|
||||
m_settingslist.SetText(SETTING_EMU_MENUS, g_console.menus_hd_enable ? L"Menus: HD" : L"Menus: SD");
|
||||
break;
|
||||
case SETTING_GAMMA_CORRECTION_ENABLED:
|
||||
g_console.gamma_correction = g_console.gamma_correction ? 0 : 1;
|
||||
m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_console.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF");
|
||||
if(g_console.info_msg_enable)
|
||||
rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
|
||||
break;
|
||||
case SETTING_COLOR_FORMAT:
|
||||
g_console.color_format = !g_console.color_format;
|
||||
m_settingslist.SetText(SETTING_COLOR_FORMAT, g_console.color_format ? L"Color format: 32bit ARGB" : L"Color format: 16bit RGBA");
|
||||
if(g_console.info_msg_enable)
|
||||
rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
|
||||
break;
|
||||
case SETTING_SHADER:
|
||||
set_shader = 1;
|
||||
hr = XuiSceneCreate(g_console.menus_hd_enable ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_shader_browser.xur", NULL, &app.hShaderBrowser);
|
||||
char core_text[256];
|
||||
snprintf(core_text, sizeof(core_text), "%s %s", id, info.library_version);
|
||||
|
||||
if (hr < 0)
|
||||
RARCH_ERR("Failed to load scene.\n");
|
||||
convert_char_to_wchar(strw_buffer, core_text, sizeof(strw_buffer));
|
||||
m_core.SetText(strw_buffer);
|
||||
rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_RARCH_VERSION, sizeof(strw_buffer));
|
||||
m_title.SetText(strw_buffer);
|
||||
|
||||
hCur = app.hShaderBrowser;
|
||||
g_console.input_loop = INPUT_LOOP_NONE;
|
||||
|
||||
if (g_console.info_msg_enable)
|
||||
rarch_settings_msg(S_MSG_SELECT_SHADER, S_DELAY_180);
|
||||
|
||||
NavigateForward(app.hShaderBrowser);
|
||||
break;
|
||||
case SETTING_SHADER_2:
|
||||
set_shader = 2;
|
||||
hr = XuiSceneCreate(g_console.menus_hd_enable ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_shader_browser.xur", NULL, &app.hShaderBrowser);
|
||||
if (hr < 0)
|
||||
RARCH_ERR("Failed to load scene.\n");
|
||||
|
||||
hCur = app.hShaderBrowser;
|
||||
|
||||
if (g_console.info_msg_enable)
|
||||
rarch_settings_msg(S_MSG_SELECT_SHADER, S_DELAY_180);
|
||||
|
||||
NavigateForward(app.hShaderBrowser);
|
||||
break;
|
||||
case SETTING_HW_TEXTURE_FILTER:
|
||||
g_settings.video.smooth = !g_settings.video.smooth;
|
||||
m_settingslist.SetText(SETTING_HW_TEXTURE_FILTER, g_settings.video.smooth ? L"Hardware filtering shader #1: Linear interpolation" : L"Hardware filtering shader #1: Point filtering");
|
||||
break;
|
||||
case SETTING_HW_TEXTURE_FILTER_2:
|
||||
g_settings.video.second_pass_smooth = !g_settings.video.second_pass_smooth;
|
||||
m_settingslist.SetText(SETTING_HW_TEXTURE_FILTER_2, g_settings.video.second_pass_smooth ? L"Hardware filtering shader #2: Linear interpolation" : L"Hardware filtering shader #2: Point filtering");
|
||||
break;
|
||||
case SETTING_SCALE_ENABLED:
|
||||
g_console.fbo_enabled = !g_console.fbo_enabled;
|
||||
m_settingslist.SetText(SETTING_SCALE_ENABLED, g_console.fbo_enabled ? L"Custom Scaling/Dual Shaders: ON" : L"Custom Scaling/Dual Shaders: OFF");
|
||||
gfx_ctx_set_fbo(g_console.fbo_enabled);
|
||||
break;
|
||||
case SETTING_ZIP_EXTRACT:
|
||||
if(g_console.zip_extract_mode < ZIP_EXTRACT_TO_CACHE_DIR)
|
||||
g_console.zip_extract_mode++;
|
||||
else
|
||||
g_console.zip_extract_mode = 0;
|
||||
rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ZIP_EXTRACT, sizeof(strw_buffer));
|
||||
m_settingslist.SetText(SETTING_ZIP_EXTRACT, strw_buffer);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bHandled = TRUE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -850,6 +920,7 @@ HRESULT CRetroArchMain::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled )
|
||||
|
||||
if ( hObjPressed == m_filebrowser )
|
||||
{
|
||||
g_console.input_loop = INPUT_LOOP_FILEBROWSER;
|
||||
hr = XuiSceneCreate(hdmenus_allowed ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_filebrowser.xur", NULL, &app.hFileBrowser);
|
||||
|
||||
if (hr < 0)
|
||||
@ -1042,6 +1113,15 @@ void menu_loop(void)
|
||||
|
||||
switch(g_console.input_loop)
|
||||
{
|
||||
case INPUT_LOOP_FILEBROWSER:
|
||||
/*
|
||||
if(((state.Gamepad.wButtons & XINPUT_GAMEPAD_Y) && hCur != app.hMainScene))
|
||||
{
|
||||
uint64_t action = (1 << RMENU_DEVICE_NAV_A);
|
||||
browser_update(browser, action, rarch_console_get_rom_ext());
|
||||
SET_TIMER_EXPIRATION(d3d, 15);
|
||||
}
|
||||
*/
|
||||
case INPUT_LOOP_MENU:
|
||||
app.RunFrame(); /* Update XUI */
|
||||
if((state.Gamepad.wButtons & XINPUT_GAMEPAD_B) && hCur != app.hMainScene)
|
||||
@ -1066,11 +1146,7 @@ void menu_loop(void)
|
||||
|
||||
if (message)
|
||||
{
|
||||
if(IS_TIMER_EXPIRED(d3d))
|
||||
{
|
||||
xdk360_console_format(message);
|
||||
SET_TIMER_EXPIRATION(d3d, 30);
|
||||
}
|
||||
xdk360_console_format(message);
|
||||
xdk360_console_draw();
|
||||
}
|
||||
|
||||
|
@ -59,8 +59,10 @@ enum
|
||||
|
||||
enum
|
||||
{
|
||||
INPUT_LOOP_NONE = 0,
|
||||
INPUT_LOOP_MENU,
|
||||
INPUT_LOOP_RESIZE_MODE
|
||||
INPUT_LOOP_RESIZE_MODE,
|
||||
INPUT_LOOP_FILEBROWSER
|
||||
};
|
||||
|
||||
class CRetroArch : public CXuiModule
|
||||
|
@ -742,11 +742,7 @@ static bool xdk_d3d_frame(void *data, const void *frame,
|
||||
/* XBox 360 specific font code */
|
||||
if (msg && !menu_enabled)
|
||||
{
|
||||
if(IS_TIMER_EXPIRED(d3d))
|
||||
{
|
||||
xdk360_console_format(msg);
|
||||
SET_TIMER_EXPIRATION(d3d, 30);
|
||||
}
|
||||
xdk360_console_format(msg);
|
||||
|
||||
xdk360_console_draw();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user