mirror of
https://github.com/libretro/RetroArch
synced 2025-03-09 13:13:31 +00:00
(GX) Add rotation options in settings menu
This commit is contained in:
parent
2f9585829e
commit
5e2307d9c9
@ -319,6 +319,13 @@ static void render_text(rgui_handle_t *rgui)
|
||||
case RGUI_SETTINGS_VIDEO_FILTER:
|
||||
snprintf(type_str, sizeof(type_str), g_settings.video.smooth ? "Bilinear filtering" : "Point filtering");
|
||||
break;
|
||||
case RGUI_SETTINGS_VIDEO_ROTATION:
|
||||
{
|
||||
char rotate_msg[64];
|
||||
rarch_settings_create_menu_item_label(rotate_msg, S_LBL_ROTATION, sizeof(rotate_msg));
|
||||
snprintf(type_str, sizeof(type_str), rotate_msg);
|
||||
}
|
||||
break;
|
||||
case RGUI_SETTINGS_AUDIO_MUTE:
|
||||
snprintf(type_str, sizeof(type_str), g_extern.audio_data.mute ? "ON" : "OFF");
|
||||
break;
|
||||
@ -382,6 +389,29 @@ static void rgui_settings_toggle_setting(rgui_file_type_t setting, rgui_action_t
|
||||
else
|
||||
rarch_settings_change(S_HW_TEXTURE_FILTER);
|
||||
break;
|
||||
case RGUI_SETTINGS_VIDEO_ROTATION:
|
||||
if (action == RGUI_ACTION_START)
|
||||
{
|
||||
rarch_settings_default(S_DEF_AUDIO_CONTROL_RATE);
|
||||
#ifdef GEKKO
|
||||
video_wii.set_rotation(NULL, g_console.screen_orientation);
|
||||
#endif
|
||||
}
|
||||
else if (action == RGUI_ACTION_LEFT)
|
||||
{
|
||||
rarch_settings_change(S_ROTATION_DECREMENT);
|
||||
#ifdef GEKKO
|
||||
video_wii.set_rotation(NULL, g_console.screen_orientation);
|
||||
#endif
|
||||
}
|
||||
else if (action == RGUI_ACTION_RIGHT)
|
||||
{
|
||||
rarch_settings_change(S_ROTATION_INCREMENT);
|
||||
#ifdef GEKKO
|
||||
video_wii.set_rotation(NULL, g_console.screen_orientation);
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
case RGUI_SETTINGS_AUDIO_MUTE:
|
||||
if (action == RGUI_ACTION_START)
|
||||
rarch_settings_default(S_DEF_AUDIO_MUTE);
|
||||
@ -470,6 +500,7 @@ static void rgui_settings_populate_entries(rgui_handle_t *rgui)
|
||||
rgui_list_clear(rgui->folder_buf);
|
||||
|
||||
RGUI_MENU_ITEM("Hardware filtering", RGUI_SETTINGS_VIDEO_FILTER);
|
||||
RGUI_MENU_ITEM("Rotation", RGUI_SETTINGS_VIDEO_ROTATION);
|
||||
RGUI_MENU_ITEM("Mute Audio", RGUI_SETTINGS_AUDIO_MUTE);
|
||||
RGUI_MENU_ITEM("Audio Control Rate", RGUI_SETTINGS_AUDIO_CONTROL_RATE);
|
||||
RGUI_MENU_ITEM("Core", RGUI_SETTINGS_CORE);
|
||||
|
@ -34,6 +34,7 @@ typedef enum
|
||||
|
||||
// settings options are done here too
|
||||
RGUI_SETTINGS_VIDEO_FILTER,
|
||||
RGUI_SETTINGS_VIDEO_ROTATION,
|
||||
RGUI_SETTINGS_AUDIO_MUTE,
|
||||
RGUI_SETTINGS_AUDIO_CONTROL_RATE,
|
||||
RGUI_SETTINGS_CORE,
|
||||
|
@ -61,27 +61,29 @@ float tex_coords[8] ATTRIBUTE_ALIGN(32) = {
|
||||
1, 0,
|
||||
};
|
||||
|
||||
float vertexes_90[8] ATTRIBUTE_ALIGN(32) = {
|
||||
float tex_coords_90[8] ATTRIBUTE_ALIGN(32) = {
|
||||
0, 1,
|
||||
1, 1,
|
||||
1, 0,
|
||||
0, 0
|
||||
};
|
||||
|
||||
float vertexes_180[8] ATTRIBUTE_ALIGN(32) = {
|
||||
float tex_coords_180[8] ATTRIBUTE_ALIGN(32) = {
|
||||
1, 1,
|
||||
1, 0,
|
||||
0, 0,
|
||||
0, 1
|
||||
};
|
||||
|
||||
float vertexes_270[8] ATTRIBUTE_ALIGN(32) = {
|
||||
float tex_coords_270[8] ATTRIBUTE_ALIGN(32) = {
|
||||
1, 0,
|
||||
0, 0,
|
||||
0, 1,
|
||||
1, 1
|
||||
};
|
||||
|
||||
float *vertex_ptr = tex_coords;
|
||||
|
||||
static void retrace_callback(u32 retrace_count)
|
||||
{
|
||||
(void)retrace_count;
|
||||
@ -138,7 +140,7 @@ static void init_vtx(GXRModeObj *mode)
|
||||
GX_SetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
|
||||
GX_SetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
|
||||
GX_SetArray(GX_VA_POS, verts, 3 * sizeof(float));
|
||||
GX_SetArray(GX_VA_TEX0, tex_coords, 2 * sizeof(float));
|
||||
GX_SetArray(GX_VA_TEX0, vertex_ptr, 2 * sizeof(float));
|
||||
|
||||
GX_SetNumTexGens(1);
|
||||
GX_SetNumChans(0);
|
||||
@ -485,7 +487,23 @@ static void wii_set_rotation(void * data, uint32_t orientation)
|
||||
(void)data;
|
||||
(void)orientation;
|
||||
|
||||
/* TODO */
|
||||
switch(orientation)
|
||||
{
|
||||
case ORIENTATION_NORMAL:
|
||||
vertex_ptr = tex_coords;
|
||||
break;
|
||||
case ORIENTATION_VERTICAL:
|
||||
vertex_ptr = tex_coords_90;
|
||||
break;
|
||||
case ORIENTATION_FLIPPED:
|
||||
vertex_ptr = tex_coords_180;
|
||||
break;
|
||||
case ORIENTATION_FLIPPED_ROTATED:
|
||||
vertex_ptr = tex_coords_270;
|
||||
break;
|
||||
}
|
||||
|
||||
GX_SetArray(GX_VA_TEX0, vertex_ptr, 2 * sizeof(float));
|
||||
}
|
||||
|
||||
const video_driver_t video_wii = {
|
||||
|
@ -153,19 +153,15 @@ static void xdk_d3d_set_rotation(void * data, unsigned orientation)
|
||||
{
|
||||
case ORIENTATION_NORMAL:
|
||||
angle = M_PI * 0 / 180;
|
||||
RARCH_LOG("D3D8: Set rotation to ORIENTATION_NORMAL\n");
|
||||
break;
|
||||
case ORIENTATION_VERTICAL:
|
||||
angle = M_PI * 270 / 180;
|
||||
RARCH_LOG("D3D8: Set rotation to ORIENTATION_VERTICAL\n");
|
||||
break;
|
||||
case ORIENTATION_FLIPPED:
|
||||
angle = M_PI * 180 / 180;
|
||||
RARCH_LOG("D3D8: Set rotation to ORIENTATION_FLIPPED\n");
|
||||
break;
|
||||
case ORIENTATION_FLIPPED_ROTATED:
|
||||
angle = M_PI * 90 / 180;
|
||||
RARCH_LOG("D3D8: Set rotation to ORIENTATION_FLIPPED_ROTATED\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user