mirror of
https://github.com/CTCaer/RetroArch.git
synced 2025-03-07 02:47:24 +00:00
(360) Add changing of rotation / aspect ratio with left/right
D-pad buttons
This commit is contained in:
parent
37140c1cd9
commit
321697f029
51
360/menu.cpp
51
360/menu.cpp
@ -311,21 +311,8 @@ HRESULT CRetroArchQuickMenu::OnInit(XUIMessageInit * pInitData, BOOL& bHandled)
|
||||
GetChildById(L"XuiQuickMenuList", &m_quickmenulist);
|
||||
GetChildById(L"XuiBackButton", &m_back);
|
||||
|
||||
switch(g_console.screen_orientation)
|
||||
{
|
||||
case ORIENTATION_NORMAL:
|
||||
m_quickmenulist.SetText(MENU_ITEM_ORIENTATION, L"Orientation: Normal");
|
||||
break;
|
||||
case ORIENTATION_VERTICAL:
|
||||
m_quickmenulist.SetText(MENU_ITEM_ORIENTATION, L"Orientation: Vertical");
|
||||
break;
|
||||
case ORIENTATION_FLIPPED:
|
||||
m_quickmenulist.SetText(MENU_ITEM_ORIENTATION, L"Orientation: Flipped");
|
||||
break;
|
||||
case ORIENTATION_FLIPPED_ROTATED:
|
||||
m_quickmenulist.SetText(MENU_ITEM_ORIENTATION, L"Orientation: Flipped Rotated");
|
||||
break;
|
||||
}
|
||||
rarch_settings_create_menu_item_label(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer));
|
||||
m_quickmenulist.SetText(MENU_ITEM_ORIENTATION, strw_buffer);
|
||||
|
||||
rarch_settings_create_menu_item_label(strw_buffer, S_LBL_ASPECT_RATIO, sizeof(strw_buffer));
|
||||
m_quickmenulist.SetText(MENU_ITEM_KEEP_ASPECT_RATIO, strw_buffer);
|
||||
@ -350,6 +337,12 @@ HRESULT CRetroArchQuickMenu::OnControlNavigate(XUIMessageControlNavigate *pContr
|
||||
rarch_settings_change(S_ASPECT_RATIO_DECREMENT);
|
||||
aspectratio_changed = true;
|
||||
break;
|
||||
case MENU_ITEM_ORIENTATION:
|
||||
rarch_settings_change(S_ROTATION_DECREMENT);
|
||||
rarch_settings_create_menu_item_label(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer));
|
||||
m_quickmenulist.SetText(MENU_ITEM_ORIENTATION, strw_buffer);
|
||||
video_xdk360.set_rotation(driver.video_data, g_console.screen_orientation);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -361,6 +354,12 @@ HRESULT CRetroArchQuickMenu::OnControlNavigate(XUIMessageControlNavigate *pContr
|
||||
rarch_settings_change(S_ASPECT_RATIO_INCREMENT);
|
||||
aspectratio_changed = true;
|
||||
break;
|
||||
case MENU_ITEM_ORIENTATION:
|
||||
rarch_settings_change(S_ROTATION_INCREMENT);
|
||||
rarch_settings_create_menu_item_label(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer));
|
||||
m_quickmenulist.SetText(MENU_ITEM_ORIENTATION, strw_buffer);
|
||||
video_xdk360.set_rotation(driver.video_data, g_console.screen_orientation);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -431,25 +430,9 @@ HRESULT CRetroArchQuickMenu::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled
|
||||
rarch_settings_msg(S_MSG_NOT_IMPLEMENTED, S_DELAY_180);
|
||||
break;
|
||||
case MENU_ITEM_ORIENTATION:
|
||||
switch(g_console.screen_orientation)
|
||||
{
|
||||
case ORIENTATION_NORMAL:
|
||||
g_console.screen_orientation = ORIENTATION_VERTICAL;
|
||||
m_quickmenulist.SetText(MENU_ITEM_ORIENTATION, L"Orientation: Vertical");
|
||||
break;
|
||||
case ORIENTATION_VERTICAL:
|
||||
g_console.screen_orientation = ORIENTATION_FLIPPED;
|
||||
m_quickmenulist.SetText(MENU_ITEM_ORIENTATION, L"Orientation: Flipped");
|
||||
break;
|
||||
case ORIENTATION_FLIPPED:
|
||||
g_console.screen_orientation = ORIENTATION_FLIPPED_ROTATED;
|
||||
m_quickmenulist.SetText(MENU_ITEM_ORIENTATION, L"Orientation: Flipped Rotated");
|
||||
break;
|
||||
case ORIENTATION_FLIPPED_ROTATED:
|
||||
g_console.screen_orientation = ORIENTATION_NORMAL;
|
||||
m_quickmenulist.SetText(MENU_ITEM_ORIENTATION, L"Orientation: Normal");
|
||||
break;
|
||||
}
|
||||
rarch_settings_default(S_DEF_ROTATION);
|
||||
rarch_settings_create_menu_item_label(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer));
|
||||
m_quickmenulist.SetText(MENU_ITEM_ORIENTATION, strw_buffer);
|
||||
video_xdk360.set_rotation(driver.video_data, g_console.screen_orientation);
|
||||
break;
|
||||
case MENU_ITEM_RESIZE_MODE:
|
||||
|
@ -495,6 +495,14 @@ struct aspect_ratio_elem aspectratio_lut[ASPECT_RATIO_END] = {
|
||||
{ "Custom", 0.0f }
|
||||
};
|
||||
|
||||
char rotation_lut[ASPECT_RATIO_END][PATH_MAX] =
|
||||
{
|
||||
"Normal",
|
||||
"Vertical",
|
||||
"Flipped",
|
||||
"Flipped Rotated"
|
||||
};
|
||||
|
||||
void rarch_set_auto_viewport(unsigned width, unsigned height)
|
||||
{
|
||||
if(width == 0 || height == 0)
|
||||
|
@ -65,6 +65,10 @@ enum rotation
|
||||
ORIENTATION_END
|
||||
};
|
||||
|
||||
#define LAST_ORIENTATION (ORIENTATION_END-1)
|
||||
|
||||
extern char rotation_lut[ASPECT_RATIO_END][PATH_MAX];
|
||||
|
||||
struct aspect_ratio_elem
|
||||
{
|
||||
char name[64];
|
||||
|
@ -83,17 +83,17 @@ void rarch_settings_change(unsigned setting)
|
||||
g_console.ingame_menu_item = 0;
|
||||
g_console.mode_switch = MODE_MENU;
|
||||
break;
|
||||
case S_REWIND:
|
||||
g_settings.rewind_enable = !g_settings.rewind_enable;
|
||||
break;
|
||||
case S_ROTATION_DECREMENT:
|
||||
if(g_console.screen_orientation > ORIENTATION_NORMAL)
|
||||
case S_ROTATION_DECREMENT:
|
||||
if(g_console.screen_orientation > 0)
|
||||
g_console.screen_orientation--;
|
||||
break;
|
||||
case S_ROTATION_INCREMENT:
|
||||
if((g_console.screen_orientation+1) < ORIENTATION_END)
|
||||
case S_ROTATION_INCREMENT:
|
||||
if(g_console.screen_orientation < LAST_ORIENTATION)
|
||||
g_console.screen_orientation++;
|
||||
break;
|
||||
case S_REWIND:
|
||||
g_settings.rewind_enable = !g_settings.rewind_enable;
|
||||
break;
|
||||
case S_SAVESTATE_DECREMENT:
|
||||
if(g_extern.state_slot != 0)
|
||||
g_extern.state_slot--;
|
||||
@ -138,6 +138,9 @@ void rarch_settings_default(unsigned setting)
|
||||
g_console.overscan_amount = 0.0f;
|
||||
g_console.overscan_enable = false;
|
||||
break;
|
||||
case S_DEF_ROTATION:
|
||||
g_console.screen_orientation = ORIENTATION_NORMAL;
|
||||
break;
|
||||
case S_DEF_THROTTLE:
|
||||
g_console.throttle_enable = true;
|
||||
break;
|
||||
@ -217,6 +220,9 @@ void rarch_settings_create_menu_item_label(wchar_t * strwbuf, unsigned setting,
|
||||
case S_LBL_SCALE_FACTOR:
|
||||
snprintf(str, sizeof(str), "Scale Factor: %f (X) / %f (Y)", g_settings.video.fbo_scale_x, g_settings.video.fbo_scale_y);
|
||||
break;
|
||||
case S_LBL_ROTATION:
|
||||
snprintf(str, sizeof(str), "Rotation: %s", rotation_lut[g_console.screen_orientation]);
|
||||
break;
|
||||
}
|
||||
|
||||
rarch_convert_char_to_wchar(strwbuf, str, size);
|
||||
|
@ -37,9 +37,9 @@ enum
|
||||
S_RETURN_TO_GAME,
|
||||
S_RETURN_TO_LAUNCHER,
|
||||
S_RETURN_TO_MENU,
|
||||
S_REWIND,
|
||||
S_ROTATION_DECREMENT,
|
||||
S_ROTATION_INCREMENT,
|
||||
S_REWIND,
|
||||
S_SAVESTATE_DECREMENT,
|
||||
S_SAVESTATE_INCREMENT,
|
||||
S_SCALE_ENABLED,
|
||||
@ -55,6 +55,7 @@ enum
|
||||
S_DEF_HW_TEXTURE_FILTER,
|
||||
S_DEF_HW_TEXTURE_FILTER_2,
|
||||
S_DEF_OVERSCAN,
|
||||
S_DEF_ROTATION,
|
||||
S_DEF_THROTTLE,
|
||||
S_DEF_TRIPLE_BUFFERING,
|
||||
S_DEF_SAVE_STATE,
|
||||
@ -78,6 +79,7 @@ enum
|
||||
enum
|
||||
{
|
||||
S_LBL_ASPECT_RATIO = 0,
|
||||
S_LBL_ROTATION,
|
||||
S_LBL_SHADER,
|
||||
S_LBL_SHADER_2,
|
||||
S_LBL_SCALE_FACTOR
|
||||
|
Loading…
x
Reference in New Issue
Block a user