diff --git a/frontend/menu/rmenu_xui.cpp b/frontend/menu/rmenu_xui.cpp index c6dd73ff0c..4db49052fa 100644 --- a/frontend/menu/rmenu_xui.cpp +++ b/frontend/menu/rmenu_xui.cpp @@ -385,7 +385,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.lifecycle_menu_state & (1 << MODE_INFO_DRAW)) ? L"Info messages: ON" : L"Info messages: OFF"); m_settingslist.SetText(SETTING_EMU_SHOW_DEBUG_INFO_MSG, (g_extern.lifecycle_menu_state & (1 << MODE_FPS_DRAW)) ? 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_EMU_MENUS, (g_extern.lifecycle_menu_state & (1 << MODE_MENU_HD)) ? 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"); 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"); @@ -437,8 +437,11 @@ HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled m_settingslist.SetText(SETTING_EMU_SHOW_DEBUG_INFO_MSG, (g_extern.lifecycle_menu_state & (1 << MODE_FPS_DRAW)) ? 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"); + if (g_extern.lifecycle_menu_state & (1 << MODE_MENU_HD)) + g_extern.lifecycle_menu_state &= ~(1 << MODE_MENU_HD); + else + g_extern.lifecycle_menu_state |= (1 << MODE_MENU_HD); + m_settingslist.SetText(SETTING_EMU_MENUS, (g_extern.lifecycle_menu_status & (1 << MODE_MENU_HD)) ? L"Menus: HD" : L"Menus: SD"); break; case SETTING_GAMMA_CORRECTION_ENABLED: g_extern.console.screen.gamma_correction = g_extern.console.screen.gamma_correction ? 0 : 1; @@ -448,7 +451,7 @@ HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled break; case SETTING_SHADER: g_extern.lifecycle_menu_state |= (1 << MODE_LOAD_FIRST_SHADER); - hr = XuiSceneCreate(g_extern.console.rmenu.state.rmenu_hd.enable ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_shader_browser.xur", NULL, &app.hShaderBrowser); + hr = XuiSceneCreate((g_extern.lifecycle_menu_state & (1 << MODE_MENU_HD)) ? 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"); @@ -462,7 +465,7 @@ HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled break; case SETTING_SHADER_2: g_extern.lifecycle_menu_state |= (1 << MODE_LOAD_SECOND_SHADER); - hr = XuiSceneCreate(g_extern.console.rmenu.state.rmenu_hd.enable ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_shader_browser.xur", NULL, &app.hShaderBrowser); + hr = XuiSceneCreate((g_extern.lifecycle_menu_state & (1 << MODE_MENU_HD)) ? 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"); @@ -539,8 +542,11 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro m_settingslist.SetText(SETTING_EMU_SHOW_DEBUG_INFO_MSG, (g_extern.lifecycle_menu_state & (1 << MODE_FPS_DRAW)) ? 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"); + if (g_extern.lifecycle_menu_state & (1 << MODE_MENU_HD)) + g_extern.lifecycle_menu_state &= ~(1 << MODE_MENU_HD); + else + g_extern.lifecycle_menu_state |= (1 << MODE_MENU_HD); + m_settingslist.SetText(SETTING_EMU_MENUS, (g_extern.lifecycle_menu_status & (1 << MODE_MENU_HD)) ? L"Menus: HD" : L"Menus: SD"); break; case SETTING_GAMMA_CORRECTION_ENABLED: g_extern.console.screen.gamma_correction = g_extern.console.screen.gamma_correction ? 0 : 1; @@ -604,8 +610,11 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro m_settingslist.SetText(SETTING_EMU_SHOW_DEBUG_INFO_MSG, (g_extern.lifecycle_menu_state & (1 << MODE_FPS_DRAW)) ? 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"); + if (g_extern.lifecycle_menu_state & (1 << MODE_MENU_HD)) + g_extern.lifecycle_menu_state &= ~(1 << MODE_MENU_HD); + else + g_extern.lifecycle_menu_state |= (1 << MODE_MENU_HD); + m_settingslist.SetText(SETTING_EMU_MENUS, (g_extern.lifecycle_menu_status & (1 << MODE_MENU_HD)) ? L"Menus: HD" : L"Menus: SD"); break; case SETTING_GAMMA_CORRECTION_ENABLED: g_extern.console.screen.gamma_correction = g_extern.console.screen.gamma_correction ? 0 : 1; @@ -1014,7 +1023,7 @@ HRESULT CRetroArchMain::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled ) { xdk_d3d_video_t *vid = (xdk_d3d_video_t*)driver.video_data; - bool hdmenus_allowed = g_extern.console.rmenu.state.rmenu_hd.enable; + bool hdmenus_allowed = (g_extern.lifecycle_menu_state & (1 << MODE_MENU_HD)); HRESULT hr; @@ -1093,7 +1102,7 @@ void menu_init (void) xdk_d3d_video_t *device_ptr = (xdk_d3d_video_t*)driver.video_data; - bool hdmenus_allowed = g_extern.console.rmenu.state.rmenu_hd.enable; + bool hdmenus_allowed = (g_extern.lifecycle_menu_state & (1 << MODE_MENU_HD)); if (hdmenus_allowed) RARCH_LOG("HD menus enabled.\n"); diff --git a/general.h b/general.h index de47caafc4..1e7f944839 100644 --- a/general.h +++ b/general.h @@ -106,6 +106,8 @@ enum menu_enums MODE_LOAD_GAME, MODE_INIT, MODE_MENU, + MODE_MENU_WIDESCREEN, + MODE_MENU_HD, MODE_MENU_PREINIT, MODE_MENU_INGAME, MODE_MENU_DRAW, @@ -501,12 +503,6 @@ struct global { unsigned input_loop; float font_size; - - struct - { - rarch_boolean_state_t rmenu_widescreen; - rarch_boolean_state_t rmenu_hd; - } state; } rmenu; struct diff --git a/gfx/context/xdk_ctx.c b/gfx/context/xdk_ctx.c index ab4a4d31ae..7f58e21792 100644 --- a/gfx/context/xdk_ctx.c +++ b/gfx/context/xdk_ctx.c @@ -297,21 +297,21 @@ static void gfx_ctx_xdk_get_video_size(unsigned *width, unsigned *height) if(video_mode.fIsHiDef) { - *width = 1280; - *height = 720; - g_extern.console.rmenu.state.rmenu_hd.enable = true; + *width = 1280; + *height = 720; + g_extern.lifecycle_menu_state |= (1 << MODE_MENU_HD); } else { *width = 640; *height = 480; - g_extern.console.rmenu.state.rmenu_hd.enable = false; + g_extern.lifecycle_menu_state &= ~(1 << MODE_MENU_HD); } if(video_mode.fIsWideScreen) - g_extern.console.rmenu.state.rmenu_widescreen.enable = true; + g_extern.lifecycle_menu_state |= (1 << MODE_MENU_WIDESCREEN); else - g_extern.console.rmenu.state.rmenu_widescreen.enable = false; + g_extern.lifecycle_menu_state &= ~(1 << MODE_MENU_WIDESCREEN); #elif defined(_XBOX1) DWORD video_mode = XGetVideoFlags(); @@ -325,19 +325,19 @@ static void gfx_ctx_xdk_get_video_size(unsigned *width, unsigned *height) if(video_mode & XC_VIDEO_FLAGS_WIDESCREEN) { if(video_mode & XC_VIDEO_FLAGS_PAL_60Hz) - { //60 Hz, 720x480i - *width = 720; - *height = 480; - } - else - { //50 Hz, 720x576i - *width = 720; - *height = 576; - } - g_extern.console.rmenu.state.rmenu_widescreen.enable = true; + { //60 Hz, 720x480i + *width = 720; + *height = 480; + } + else + { //50 Hz, 720x576i + *width = 720; + *height = 576; + } + g_extern.lifecycle_menu_state |= (1 << MODE_MENU_WIDESCREEN); } - else - g_extern.console.rmenu.state.rmenu_widescreen.enable = false; + else + g_extern.lifecycle_menu_state &= ~(1 << MODE_MENU_WIDESCREEN); } else { @@ -345,36 +345,36 @@ static void gfx_ctx_xdk_get_video_size(unsigned *width, unsigned *height) if(video_mode & XC_VIDEO_FLAGS_WIDESCREEN) { *width = 720; - *height = 480; - g_extern.console.rmenu.state.rmenu_widescreen.enable = true; + *height = 480; + g_extern.lifecycle_menu_state |= (1 << MODE_MENU_WIDESCREEN); } else - g_extern.console.rmenu.state.rmenu_widescreen.enable = false; + g_extern.lifecycle_menu_state &= ~(1 << MODE_MENU_WIDESCREEN); } if(XGetAVPack() == XC_AV_PACK_HDTV) { if(video_mode & XC_VIDEO_FLAGS_HDTV_480p) { - *width = 640; + *width = 640; *height = 480; - g_extern.console.rmenu.state.rmenu_widescreen.enable = false; - g_extern.console.rmenu.state.rmenu_hd.enable = true; + g_extern.lifecycle_menu_state &= ~(1 << MODE_MENU_WIDESCREEN); + g_extern.lifecycle_menu_state |= (1 << MODE_MENU_HD); } else if(video_mode & XC_VIDEO_FLAGS_HDTV_720p) - { - *width = 1280; + { + *width = 1280; *height = 720; - g_extern.console.rmenu.state.rmenu_widescreen.enable = true; - g_extern.console.rmenu.state.rmenu_hd.enable = true; - } + g_extern.lifecycle_menu_state |= (1 << MODE_MENU_WIDESCREEN); + g_extern.lifecycle_menu_state |= (1 << MODE_MENU_HD); + } else if(video_mode & XC_VIDEO_FLAGS_HDTV_1080i) - { - *width = 1920; + { + *width = 1920; *height = 1080; - g_extern.console.rmenu.state.rmenu_widescreen.enable = true; - g_extern.console.rmenu.state.rmenu_hd.enable = true; - } + g_extern.lifecycle_menu_state |= (1 << MODE_MENU_WIDESCREEN); + g_extern.lifecycle_menu_state |= (1 << MODE_MENU_HD); + } } #else /* TODO: implement */ diff --git a/gfx/fonts/xdk360_fonts.cpp b/gfx/fonts/xdk360_fonts.cpp index d5707b30dc..b75694ce21 100644 --- a/gfx/fonts/xdk360_fonts.cpp +++ b/gfx/fonts/xdk360_fonts.cpp @@ -19,7 +19,7 @@ #include "../../general.h" #include "../../xdk/xdk_resources.h" -#define FONT_SCALE (g_extern.console.rmenu.state.rmenu_hd.enable ? 2 : 1) +#define FONT_SCALE ((g_extern.lifecycle_menu_state & (1 << MODE_MENU_HD)) ? 2 : 1) typedef struct GLYPH_ATTR { @@ -447,7 +447,7 @@ static void xdk_render_msg(void *driver, const char *msg) { xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver; - float x = g_extern.console.rmenu.state.rmenu_hd.enable ? 160 : 100; + float x = (g_extern.lifecycle_menu_state & (1 << MODE_MENU_HD)) ? 160 : 100; float y = 120; xdk_render_msg_place(d3d, x, y, 0, 0, msg); diff --git a/xdk/xdk_d3d.cpp b/xdk/xdk_d3d.cpp index 3ec6468195..fcd1d6e327 100644 --- a/xdk/xdk_d3d.cpp +++ b/xdk/xdk_d3d.cpp @@ -198,7 +198,7 @@ static void xdk_d3d_set_viewport(bool force_full) float delta; // If the aspect ratios of screen and desired aspect ratio are sufficiently equal (floating point stuff), - if(g_settings.video.aspect_ratio_idx == ASPECT_RATIO_CUSTOM) + if (g_settings.video.aspect_ratio_idx == ASPECT_RATIO_CUSTOM) { delta = (desired_aspect / device_aspect - 1.0) / 2.0 + 0.5; m_viewport_x_temp = g_extern.console.screen.viewports.custom_vp.x; @@ -236,7 +236,7 @@ static void xdk_d3d_set_viewport(bool force_full) font_y = vp.Y; #endif - //if(gl->overscan_enable && !force_full) + //if (gl->overscan_enable && !force_full) //{ // m_left = -gl->overscan_amount/2; // m_right = 1 + gl->overscan_amount/2; @@ -309,7 +309,7 @@ void xdk_d3d_init_fbo(void *data) HRESULT ret; xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)data; - if(!g_settings.video.render_to_texture) + if (!g_settings.video.render_to_texture) return; xdk_d3d_deinit_fbo(d3d); @@ -374,6 +374,7 @@ static bool xdk_d3d_set_shader(void *data, enum rarch_shader_type type, const ch void xdk_d3d_generate_pp(D3DPRESENT_PARAMETERS *d3dpp, const video_info_t *video) { xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data; + unsigned lifecycle_menu_state = g_extern.lifecycle_menu_state; memset(d3dpp, 0, sizeof(*d3dpp)); @@ -391,41 +392,41 @@ void xdk_d3d_generate_pp(D3DPRESENT_PARAMETERS *d3dpp, const video_info_t *video DWORD video_mode = XGetVideoFlags(); // Check if we are able to use progressive mode - if(video_mode & XC_VIDEO_FLAGS_HDTV_480p) + if (video_mode & XC_VIDEO_FLAGS_HDTV_480p) d3dpp->Flags = D3DPRESENTFLAG_PROGRESSIVE; else d3dpp->Flags = D3DPRESENTFLAG_INTERLACED; // Only valid in PAL mode, not valid for HDTV modes! - if(XGetVideoStandard() == XC_VIDEO_STANDARD_PAL_I) + if (XGetVideoStandard() == XC_VIDEO_STANDARD_PAL_I) { - if(video_mode & XC_VIDEO_FLAGS_PAL_60Hz) + if (video_mode & XC_VIDEO_FLAGS_PAL_60Hz) d3dpp->FullScreen_RefreshRateInHz = 60; else d3dpp->FullScreen_RefreshRateInHz = 50; } - if(XGetAVPack() == XC_AV_PACK_HDTV) + if (XGetAVPack() == XC_AV_PACK_HDTV) { - if(video_mode & XC_VIDEO_FLAGS_HDTV_480p) + if (video_mode & XC_VIDEO_FLAGS_HDTV_480p) d3dpp->Flags = D3DPRESENTFLAG_PROGRESSIVE; - else if(video_mode & XC_VIDEO_FLAGS_HDTV_720p) + else if (video_mode & XC_VIDEO_FLAGS_HDTV_720p) d3dpp->Flags = D3DPRESENTFLAG_PROGRESSIVE; - else if(video_mode & XC_VIDEO_FLAGS_HDTV_1080i) + else if (video_mode & XC_VIDEO_FLAGS_HDTV_1080i) d3dpp->Flags = D3DPRESENTFLAG_INTERLACED; } - if(g_extern.console.rmenu.state.rmenu_widescreen.enable) + if (lifecycle_menu_state & MODE_MENU_WIDESCREEN) d3dpp->Flags |= D3DPRESENTFLAG_WIDESCREEN; d3dpp->BackBufferFormat = D3DFMT_X8R8G8B8; d3dpp->FullScreen_PresentationInterval = d3d->vsync ? D3DPRESENT_INTERVAL_ONE : D3DPRESENT_INTERVAL_IMMEDIATE; d3dpp->SwapEffect = D3DSWAPEFFECT_COPY; #elif defined(_XBOX360) - if(!g_extern.console.rmenu.state.rmenu_widescreen.enable) + if (!lifecycle_menu_state & MODE_MENU_WIDESCREEN) d3dpp->Flags |= D3DPRESENTFLAG_NO_LETTERBOX; - if(g_extern.console.screen.gamma_correction) + if (g_extern.console.screen.gamma_correction) { d3dpp->BackBufferFormat = (D3DFORMAT)MAKESRGBFMT(d3d->texture_fmt); d3dpp->FrontBufferFormat = (D3DFORMAT)MAKESRGBFMT(D3DFMT_LE_X8R8G8B8); @@ -499,10 +500,10 @@ static void xdk_d3d_init_textures(void *data, const video_info_t *video) vp.MaxZ = 1.0f; d3d->d3d_render_device->SetViewport(&vp); - if(g_extern.console.screen.viewports.custom_vp.width == 0) + if (g_extern.console.screen.viewports.custom_vp.width == 0) g_extern.console.screen.viewports.custom_vp.width = vp.Width; - if(g_extern.console.screen.viewports.custom_vp.height == 0) + if (g_extern.console.screen.viewports.custom_vp.height == 0) g_extern.console.screen.viewports.custom_vp.height = vp.Height; } @@ -772,7 +773,7 @@ static bool xdk_d3d_frame(void *data, const void *frame, #endif #ifdef HAVE_FBO - if(d3d->fbo_inited) + if (d3d->fbo_inited) { #ifdef HAVE_HLSL hlsl_set_params(width, height, d3d->tex_w, d3d->tex_h, g_settings.video.fbo.scale_x * width, @@ -796,7 +797,7 @@ static bool xdk_d3d_frame(void *data, const void *frame, #endif } - if(frame) + if (frame) { unsigned base_size = d3d->base_size; D3DLOCKED_RECT d3dlr; @@ -834,7 +835,7 @@ static bool xdk_d3d_frame(void *data, const void *frame, #endif #ifdef HAVE_FBO - if(d3d->fbo_inited) + if (d3d->fbo_inited) { d3dr->Resolve(D3DRESOLVE_RENDERTARGET0, NULL, d3d->lpTexture_ot, NULL, 0, 0, NULL, 0, 0, NULL); @@ -866,7 +867,7 @@ static bool xdk_d3d_frame(void *data, const void *frame, float msg_width = 60; float msg_height = 365; #elif defined(_XBOX360) - float mem_width = g_extern.console.rmenu.state.rmenu_hd.enable ? 160 : 100; + float mem_width = (lifecycle_menu_state & (1 << MODE_MENU_HD)) ? 160 : 100; float mem_height = 70; float msg_width = mem_width; float msg_height = mem_height + 50; @@ -909,7 +910,7 @@ static void xdk_d3d_set_nonblock_state(void *data, bool state) { xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)data; - if(d3d->vsync) + if (d3d->vsync) { RARCH_LOG("D3D Vsync => %s\n", state ? "off" : "on"); gfx_ctx_xdk_set_swap_interval(state ? 0 : 1); @@ -977,9 +978,9 @@ static void xdk_d3d_set_aspect_ratio(void *data, unsigned aspectratio_index) (void)data; xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data; - if(g_settings.video.aspect_ratio_idx == ASPECT_RATIO_AUTO) + if (g_settings.video.aspect_ratio_idx == ASPECT_RATIO_AUTO) rarch_set_auto_viewport(g_extern.frame_cache.width, g_extern.frame_cache.height); - else if(g_settings.video.aspect_ratio_idx == ASPECT_RATIO_CORE) + else if (g_settings.video.aspect_ratio_idx == ASPECT_RATIO_CORE) rarch_set_core_viewport(); g_settings.video.aspect_ratio = aspectratio_lut[g_settings.video.aspect_ratio_idx].value;