diff --git a/360/frontend-xdk/menu.cpp b/360/frontend-xdk/menu.cpp index 34452566e1..2368947c62 100644 --- a/360/frontend-xdk/menu.cpp +++ b/360/frontend-xdk/menu.cpp @@ -379,6 +379,7 @@ HRESULT CRetroArchSettings::OnInit(XUIMessageInit * pInitData, BOOL& bHandled) m_settingslist.SetText(SETTING_EMU_REWIND_ENABLED, g_settings.rewind_enable ? L"Rewind: ON" : L"Rewind: OFF"); m_settingslist.SetText(SETTING_EMU_SHOW_INFO_MSG, g_extern.console.rmenu.state.msg_info.enable ? L"Info messages: ON" : L"Info messages: OFF"); + m_settingslist.SetText(SETTING_EMU_SHOW_DEBUG_INFO_MSG, g_extern.console.rmenu.state.msg_fps.enable ? L"Debug Info messages: ON" : L"Debug Info messages: OFF"); m_settingslist.SetText(SETTING_EMU_MENUS, g_extern.console.rmenu.state.rmenu_hd.enable ? L"Menus: HD" : L"Menus: SD"); m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_extern.console.screen.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF"); 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"); @@ -419,6 +420,10 @@ HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled g_extern.console.rmenu.state.msg_info.enable = !g_extern.console.rmenu.state.msg_info.enable; m_settingslist.SetText(SETTING_EMU_SHOW_INFO_MSG, g_extern.console.rmenu.state.msg_info.enable ? L"Info messages: ON" : L"Info messages: OFF"); break; + case SETTING_EMU_SHOW_DEBUG_INFO_MSG: + g_extern.console.rmenu.state.msg_fps.enable = !g_extern.console.rmenu.state.msg_fps.enable; + m_settingslist.SetText(SETTING_EMU_SHOW_DEBUG_INFO_MSG, g_extern.console.rmenu.state.msg_fps.enable ? L"Debug Info messages: ON" : L"Debug Info messages: OFF"); + break; case SETTING_EMU_MENUS: g_extern.console.rmenu.state.rmenu_hd.enable = !g_extern.console.rmenu.state.rmenu_hd.enable; m_settingslist.SetText(SETTING_EMU_MENUS, g_extern.console.rmenu.state.rmenu_hd.enable ? L"Menus: HD" : L"Menus: SD"); @@ -511,6 +516,10 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro g_extern.console.rmenu.state.msg_info.enable = !g_extern.console.rmenu.state.msg_info.enable; m_settingslist.SetText(SETTING_EMU_SHOW_INFO_MSG, g_extern.console.rmenu.state.msg_info.enable ? L"Info messages: ON" : L"Info messages: OFF"); break; + case SETTING_EMU_SHOW_DEBUG_INFO_MSG: + g_extern.console.rmenu.state.msg_fps.enable = !g_extern.console.rmenu.state.msg_fps.enable; + m_settingslist.SetText(SETTING_EMU_SHOW_DEBUG_INFO_MSG, g_extern.console.rmenu.state.msg_fps.enable ? L"Debug Info messages: ON" : L"Debug Info messages: OFF"); + break; case SETTING_EMU_MENUS: g_extern.console.rmenu.state.rmenu_hd.enable = !g_extern.console.rmenu.state.rmenu_hd.enable; m_settingslist.SetText(SETTING_EMU_MENUS, g_extern.console.rmenu.state.rmenu_hd.enable ? L"Menus: HD" : L"Menus: SD"); @@ -566,6 +575,10 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro g_extern.console.rmenu.state.msg_info.enable = !g_extern.console.rmenu.state.msg_info.enable; m_settingslist.SetText(SETTING_EMU_SHOW_INFO_MSG, g_extern.console.rmenu.state.msg_info.enable ? L"Info messages: ON" : L"Info messages: OFF"); break; + case SETTING_EMU_SHOW_DEBUG_INFO_MSG: + g_extern.console.rmenu.state.msg_fps.enable = !g_extern.console.rmenu.state.msg_fps.enable; + m_settingslist.SetText(SETTING_EMU_SHOW_DEBUG_INFO_MSG, g_extern.console.rmenu.state.msg_fps.enable ? L"Debug Info messages: ON" : L"Debug Info messages: OFF"); + break; case SETTING_EMU_MENUS: g_extern.console.rmenu.state.rmenu_hd.enable = !g_extern.console.rmenu.state.rmenu_hd.enable; m_settingslist.SetText(SETTING_EMU_MENUS, g_extern.console.rmenu.state.rmenu_hd.enable ? L"Menus: HD" : L"Menus: SD"); diff --git a/360/frontend-xdk/menu.h b/360/frontend-xdk/menu.h index 1c84d48120..2847fe6cde 100644 --- a/360/frontend-xdk/menu.h +++ b/360/frontend-xdk/menu.h @@ -24,6 +24,7 @@ enum { SETTING_EMU_REWIND_ENABLED = 0, SETTING_EMU_SHOW_INFO_MSG, + SETTING_EMU_SHOW_DEBUG_INFO_MSG, SETTING_EMU_MENUS, SETTING_GAMMA_CORRECTION_ENABLED, SETTING_SHADER, diff --git a/360/media/hd/rarch_settings.xui b/360/media/hd/rarch_settings.xui index 4625c913e1..afbf60e396 100644 --- a/360/media/hd/rarch_settings.xui +++ b/360/media/hd/rarch_settings.xui @@ -32,6 +32,7 @@ 44.880005,64.959991,0.000000 Rewind: Info messages: +Debug info messages: Menus: Gamma Correction: Shader #1: @@ -247,6 +248,18 @@ Extract ZIP: 0.000000,10.000000,0.000000 + + +control_ListItem +226.000000 +45.000000 +7.000000,22.000000,0.000000 +5 +false +XuiButton +0.000000,10.000000,0.000000 + + diff --git a/360/media/sd/rarch_settings.xui b/360/media/sd/rarch_settings.xui index 272510cb1d..8119579c43 100644 --- a/360/media/sd/rarch_settings.xui +++ b/360/media/sd/rarch_settings.xui @@ -32,6 +32,7 @@ 44.880005,64.959991,0.000000 Rewind: Info messages: +Debug info messages: Menus: Gamma Correction: Shader #1: @@ -223,6 +224,18 @@ Extract ZIP: 0.000000,10.000000,0.000000 + + +control_ListItem +226.000000 +45.000000 +7.000000,22.000000,0.000000 +5 +false +XuiButton +0.000000,10.000000,0.000000 + + diff --git a/xdk/xdk_d3d.cpp b/xdk/xdk_d3d.cpp index 88a1d2a65b..14f2c94f4f 100644 --- a/xdk/xdk_d3d.cpp +++ b/xdk/xdk_d3d.cpp @@ -797,6 +797,19 @@ static bool xdk_d3d_frame(void *data, const void *frame, #endif #if defined(_XBOX1) +#define fonts_render_msg_place_func(device, x, y, scale, msg) xfonts_render_msg_place(device, x, y, scale, msg) + float width = font_x + 30; + float height = font_y + 50; + float msg_width = 60; + float msg_height = 365; +#elif defined(_XBOX360) +#define fonts_render_msg_place_func(device, x, y, scale, msg) xdk_render_msg_place(device, x, y, msg) + float mem_width = g_extern.console.rmenu.state.rmenu_hd.enable ? 160 : 100; + float mem_height = 70; + float msg_width = mem_width; + float msg_height = mem_height + 50; +#endif + if(fps_enable) { MEMORYSTATUS stat; @@ -804,28 +817,20 @@ static bool xdk_d3d_frame(void *data, const void *frame, char fps_txt[128]; char buf[128]; + snprintf(buf, sizeof(buf), "%.2f MB free / %.2f MB total", stat.dwAvailPhys/(1024.0f*1024.0f), stat.dwTotalPhys/(1024.0f*1024.0f)); - xfonts_render_msg_place(d3d, font_x + 30, font_y + 50, 0 /* scale */, buf); + fonts_render_msg_place_func(d3d, mem_width, mem_height, 0, buf); gfx_fps_title(fps_txt, sizeof(fps_txt)); - xfonts_render_msg_place(d3d, font_x + 30, font_y + 70, 0 /* scale */, fps_txt); + fonts_render_msg_place_func(d3d, mem_width, mem_height + 30, 0, fps_txt); } - if (msg) - xfonts_render_msg_place(d3d, 60, 365, 0, msg); //TODO: dehardcode x/y here for HD (720p) mode -#elif defined(_XBOX360) - if(fps_enable) - { - char fps_txt[128]; - gfx_fps_title(fps_txt, sizeof(fps_txt)); - xdk_render_msg_place(d3d, g_extern.console.rmenu.state.rmenu_hd.enable ? 160 : 100, 90, fps_txt); - } - - if (msg && !menu_enabled) - { - xdk_render_msg(d3d, msg); - } + if (msg +#ifdef _XBOX360 + && !menu_enabled #endif + ) + fonts_render_msg_place_func(d3d, msg_width, msg_height, 0, msg); //TODO: dehardcode x/y here for HD (720p) mode if(!d3d->block_swap) gfx_ctx_xdk_swap_buffers();