mirror of
https://github.com/libretro/RetroArch
synced 2025-03-30 16:20:27 +00:00
(360) Build fixes
This commit is contained in:
parent
f0ebecfc32
commit
52f52bc253
@ -38,7 +38,6 @@ HXUIOBJ hCur;
|
|||||||
filebrowser_t browser;
|
filebrowser_t browser;
|
||||||
filebrowser_t tmp_browser;
|
filebrowser_t tmp_browser;
|
||||||
uint32_t set_shader = 0;
|
uint32_t set_shader = 0;
|
||||||
static const rmenu_context_t *context;
|
|
||||||
|
|
||||||
wchar_t strw_buffer[PATH_MAX];
|
wchar_t strw_buffer[PATH_MAX];
|
||||||
char str_buffer[PATH_MAX];
|
char str_buffer[PATH_MAX];
|
||||||
@ -384,7 +383,7 @@ HRESULT CRetroArchSettings::OnInit(XUIMessageInit * pInitData, BOOL& bHandled)
|
|||||||
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_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, 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");
|
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");
|
||||||
m_settingslist.SetText(SETTING_SCALE_ENABLED, g_settings.video.fbo.enable ? L"Custom Scaling/Dual Shaders: ON" : L"Custom Scaling/Dual Shaders: OFF");
|
m_settingslist.SetText(SETTING_SCALE_ENABLED, g_settings.video.render_to_texture ? L"Custom Scaling/Dual Shaders: ON" : L"Custom Scaling/Dual Shaders: OFF");
|
||||||
rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_SHADER, sizeof(strw_buffer));
|
rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_SHADER, sizeof(strw_buffer));
|
||||||
m_settingslist.SetText(SETTING_SHADER, strw_buffer);
|
m_settingslist.SetText(SETTING_SHADER, strw_buffer);
|
||||||
m_settingslist.SetText(SETTING_COLOR_FORMAT, g_settings.video.color_format ? L"Color format: 32bit ARGB" : L"Color format: 16bit RGBA");
|
m_settingslist.SetText(SETTING_COLOR_FORMAT, g_settings.video.color_format ? L"Color format: 32bit ARGB" : L"Color format: 16bit RGBA");
|
||||||
@ -400,6 +399,7 @@ HRESULT CRetroArchSettings::OnInit(XUIMessageInit * pInitData, BOOL& bHandled)
|
|||||||
|
|
||||||
HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled )
|
HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled )
|
||||||
{
|
{
|
||||||
|
xdk_d3d_video_t *device_ptr = (xdk_d3d_video_t*)driver.video_data;
|
||||||
int current_index;
|
int current_index;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
||||||
@ -472,9 +472,9 @@ HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled
|
|||||||
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");
|
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;
|
break;
|
||||||
case SETTING_SCALE_ENABLED:
|
case SETTING_SCALE_ENABLED:
|
||||||
g_settings.video.fbo.enable = !g_settings.video.fbo.enable;
|
g_settings.video.render_to_texture = !g_settings.video.render_to_texture;
|
||||||
m_settingslist.SetText(SETTING_SCALE_ENABLED, g_settings.video.fbo.enable ? L"Custom Scaling/Dual Shaders: ON" : L"Custom Scaling/Dual Shaders: OFF");
|
m_settingslist.SetText(SETTING_SCALE_ENABLED, g_settings.video.render_to_texture ? L"Custom Scaling/Dual Shaders: ON" : L"Custom Scaling/Dual Shaders: OFF");
|
||||||
context->set_fbo_enable(g_settings.video.fbo.enable);
|
device_ptr->ctx_driver->set_fbo(g_settings.video.render_to_texture);
|
||||||
break;
|
break;
|
||||||
case SETTING_ZIP_EXTRACT:
|
case SETTING_ZIP_EXTRACT:
|
||||||
if(g_extern.file_state.zip_extract_mode < ZIP_EXTRACT_TO_CACHE_DIR)
|
if(g_extern.file_state.zip_extract_mode < ZIP_EXTRACT_TO_CACHE_DIR)
|
||||||
@ -494,7 +494,7 @@ HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled
|
|||||||
HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pControlNavigateData, BOOL& bHandled)
|
HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pControlNavigateData, BOOL& bHandled)
|
||||||
{
|
{
|
||||||
int current_index;
|
int current_index;
|
||||||
xdk_d3d_video_t *vid = (xdk_d3d_video_t*)driver.video_data;
|
xdk_d3d_video_t *device_ptr = (xdk_d3d_video_t*)driver.video_data;
|
||||||
|
|
||||||
current_index = m_settingslist.GetCurSel();
|
current_index = m_settingslist.GetCurSel();
|
||||||
|
|
||||||
@ -531,7 +531,7 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro
|
|||||||
rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
|
rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
|
||||||
break;
|
break;
|
||||||
case SETTING_SCALE_FACTOR:
|
case SETTING_SCALE_FACTOR:
|
||||||
if(vid->fbo_enabled)
|
if(device_ptr->fbo_inited)
|
||||||
{
|
{
|
||||||
if((g_settings.video.fbo.scale_x > MIN_SCALING_FACTOR))
|
if((g_settings.video.fbo.scale_x > MIN_SCALING_FACTOR))
|
||||||
{
|
{
|
||||||
@ -557,9 +557,9 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro
|
|||||||
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");
|
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;
|
break;
|
||||||
case SETTING_SCALE_ENABLED:
|
case SETTING_SCALE_ENABLED:
|
||||||
g_settings.video.fbo.enable = !g_settings.video.fbo.enable;
|
g_settings.video.render_to_texture = !g_settings.video.render_to_texture;
|
||||||
m_settingslist.SetText(SETTING_SCALE_ENABLED, g_settings.video.fbo.enable ? L"Custom Scaling/Dual Shaders: ON" : L"Custom Scaling/Dual Shaders: OFF");
|
m_settingslist.SetText(SETTING_SCALE_ENABLED, g_settings.video.render_to_texture ? L"Custom Scaling/Dual Shaders: ON" : L"Custom Scaling/Dual Shaders: OFF");
|
||||||
context->set_fbo_enable(g_settings.video.fbo.enable);
|
device_ptr->ctx_driver->set_fbo(g_settings.video.render_to_texture);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -596,7 +596,7 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro
|
|||||||
rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
|
rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
|
||||||
break;
|
break;
|
||||||
case SETTING_SCALE_FACTOR:
|
case SETTING_SCALE_FACTOR:
|
||||||
if(vid->fbo_enabled)
|
if(device_ptr->fbo_inited)
|
||||||
{
|
{
|
||||||
if((g_settings.video.fbo.scale_x < MAX_SCALING_FACTOR))
|
if((g_settings.video.fbo.scale_x < MAX_SCALING_FACTOR))
|
||||||
{
|
{
|
||||||
@ -622,9 +622,9 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro
|
|||||||
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");
|
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;
|
break;
|
||||||
case SETTING_SCALE_ENABLED:
|
case SETTING_SCALE_ENABLED:
|
||||||
g_settings.video.fbo.enable = !g_settings.video.fbo.enable;
|
g_settings.video.render_to_texture = !g_settings.video.render_to_texture;
|
||||||
m_settingslist.SetText(SETTING_SCALE_ENABLED, g_settings.video.fbo.enable ? L"Custom Scaling/Dual Shaders: ON" : L"Custom Scaling/Dual Shaders: OFF");
|
m_settingslist.SetText(SETTING_SCALE_ENABLED, g_settings.video.render_to_texture ? L"Custom Scaling/Dual Shaders: ON" : L"Custom Scaling/Dual Shaders: OFF");
|
||||||
context->set_fbo_enable(g_settings.video.fbo.enable);
|
device_ptr->ctx_driver->set_fbo(g_settings.video.render_to_texture);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -739,7 +739,7 @@ HRESULT CRetroArchQuickMenu::OnControlNavigate(XUIMessageControlNavigate *pContr
|
|||||||
|
|
||||||
if(aspectratio_changed)
|
if(aspectratio_changed)
|
||||||
{
|
{
|
||||||
context->set_aspect_ratio(g_settings.video.aspect_ratio_idx);
|
driver.video->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx);
|
||||||
rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ASPECT_RATIO, sizeof(strw_buffer));
|
rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ASPECT_RATIO, sizeof(strw_buffer));
|
||||||
m_quickmenulist.SetText(MENU_ITEM_KEEP_ASPECT_RATIO, strw_buffer);
|
m_quickmenulist.SetText(MENU_ITEM_KEEP_ASPECT_RATIO, strw_buffer);
|
||||||
}
|
}
|
||||||
@ -763,7 +763,7 @@ HRESULT CRetroArchQuickMenu::OnControlNavigate(XUIMessageControlNavigate *pContr
|
|||||||
|
|
||||||
HRESULT CRetroArchQuickMenu::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled )
|
HRESULT CRetroArchQuickMenu::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled )
|
||||||
{
|
{
|
||||||
xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data;
|
xdk_d3d_video_t *device_ptr = (xdk_d3d_video_t*)driver.video_data;
|
||||||
int current_index;
|
int current_index;
|
||||||
|
|
||||||
if ( hObjPressed == m_quickmenulist)
|
if ( hObjPressed == m_quickmenulist)
|
||||||
@ -788,7 +788,7 @@ HRESULT CRetroArchQuickMenu::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled
|
|||||||
break;
|
break;
|
||||||
case MENU_ITEM_KEEP_ASPECT_RATIO:
|
case MENU_ITEM_KEEP_ASPECT_RATIO:
|
||||||
rarch_settings_default(S_DEF_ASPECT_RATIO);
|
rarch_settings_default(S_DEF_ASPECT_RATIO);
|
||||||
context->set_aspect_ratio(g_settings.video.aspect_ratio_idx);
|
driver.video->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx);
|
||||||
rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ASPECT_RATIO, sizeof(strw_buffer));
|
rarch_settings_create_menu_item_label_w(strw_buffer, S_LBL_ASPECT_RATIO, sizeof(strw_buffer));
|
||||||
m_quickmenulist.SetText(MENU_ITEM_KEEP_ASPECT_RATIO, strw_buffer);
|
m_quickmenulist.SetText(MENU_ITEM_KEEP_ASPECT_RATIO, strw_buffer);
|
||||||
break;
|
break;
|
||||||
@ -814,7 +814,7 @@ HRESULT CRetroArchQuickMenu::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled
|
|||||||
break;
|
break;
|
||||||
case MENU_ITEM_SCREENSHOT_MODE:
|
case MENU_ITEM_SCREENSHOT_MODE:
|
||||||
if (g_extern.console.rmenu.state.msg_info.enable)
|
if (g_extern.console.rmenu.state.msg_info.enable)
|
||||||
gfx_ctx_xdk_screenshot_dump(NULL);
|
device_ptr->ctx_driver->rmenu_screenshot_dump(NULL);
|
||||||
break;
|
break;
|
||||||
case MENU_ITEM_RESET:
|
case MENU_ITEM_RESET:
|
||||||
if (g_extern.console.emulator_initialized)
|
if (g_extern.console.emulator_initialized)
|
||||||
@ -1042,13 +1042,11 @@ void menu_init (void)
|
|||||||
{
|
{
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
||||||
context = (rmenu_context_t*)&rmenu_ctx_xdk;
|
xdk_d3d_video_t *device_ptr = (xdk_d3d_video_t*)driver.video_data;
|
||||||
|
|
||||||
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.console.rmenu.state.rmenu_hd.enable;
|
||||||
|
|
||||||
hr = app.InitShared(vid->d3d_render_device, &vid->d3dpp, XuiPNGTextureLoader);
|
hr = app.InitShared(device_ptr->d3d_render_device, &device_ptr->d3dpp, XuiPNGTextureLoader);
|
||||||
|
|
||||||
if (hr < 0)
|
if (hr < 0)
|
||||||
{
|
{
|
||||||
@ -1131,11 +1129,11 @@ static void ingame_menu_resize (void)
|
|||||||
void menu_loop(void)
|
void menu_loop(void)
|
||||||
{
|
{
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data;
|
xdk_d3d_video_t *device_ptr = (xdk_d3d_video_t*)driver.video_data;
|
||||||
|
|
||||||
g_extern.console.rmenu.state.rmenu.enable = true;
|
g_extern.console.rmenu.state.rmenu.enable = true;
|
||||||
|
|
||||||
d3d->block_swap = true;
|
device_ptr->block_swap = true;
|
||||||
|
|
||||||
g_extern.console.rmenu.input_loop = INPUT_LOOP_MENU;
|
g_extern.console.rmenu.input_loop = INPUT_LOOP_MENU;
|
||||||
|
|
||||||
@ -1145,8 +1143,8 @@ void menu_loop(void)
|
|||||||
rarch_render_cached_frame();
|
rarch_render_cached_frame();
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
d3d->d3d_render_device->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_ARGB(0, 0, 0, 0), 1.0f, 0);
|
device_ptr->ctx_driver->clear();
|
||||||
d3d->frame_count++;
|
device_ptr->frame_count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
XINPUT_STATE state;
|
XINPUT_STATE state;
|
||||||
@ -1154,7 +1152,7 @@ void menu_loop(void)
|
|||||||
|
|
||||||
g_extern.console.rmenu.state.rmenu.enable = !((state.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_THUMB)
|
g_extern.console.rmenu.state.rmenu.enable = !((state.Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_THUMB)
|
||||||
&& (state.Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_THUMB) && (g_extern.console.emulator_initialized)
|
&& (state.Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_THUMB) && (g_extern.console.emulator_initialized)
|
||||||
&& IS_TIMER_EXPIRED(d3d));
|
&& IS_TIMER_EXPIRED(device_ptr));
|
||||||
|
|
||||||
g_extern.console.rmenu.mode = g_extern.console.rmenu.state.rmenu.enable ? MODE_MENU : MODE_EMULATION;
|
g_extern.console.rmenu.mode = g_extern.console.rmenu.state.rmenu.enable ? MODE_MENU : MODE_EMULATION;
|
||||||
|
|
||||||
@ -1186,20 +1184,20 @@ void menu_loop(void)
|
|||||||
|
|
||||||
if(g_extern.console.rmenu.mode == MODE_EMULATION && !g_extern.console.screen.state.frame_advance.enable)
|
if(g_extern.console.rmenu.mode == MODE_EMULATION && !g_extern.console.screen.state.frame_advance.enable)
|
||||||
{
|
{
|
||||||
SET_TIMER_EXPIRATION(d3d, 30);
|
SET_TIMER_EXPIRATION(device_ptr, 30);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *message = msg_queue_pull(g_extern.msg_queue);
|
const char *message = msg_queue_pull(g_extern.msg_queue);
|
||||||
|
|
||||||
if (message)
|
if (message)
|
||||||
{
|
{
|
||||||
xdk_render_msg(d3d, message);
|
xdk_render_msg(device_ptr, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
context->swap_buffers();
|
device_ptr->ctx_driver->swap_buffers();
|
||||||
}while(g_extern.console.rmenu.state.rmenu.enable);
|
}while(g_extern.console.rmenu.state.rmenu.enable);
|
||||||
|
|
||||||
d3d->block_swap = false;
|
device_ptr->block_swap = false;
|
||||||
|
|
||||||
g_extern.console.rmenu.state.ingame_menu.enable = false;
|
g_extern.console.rmenu.state.ingame_menu.enable = false;
|
||||||
}
|
}
|
||||||
|
@ -82,8 +82,8 @@ texture_image m_menuMainRomSelectPanel;
|
|||||||
texture_image m_menuMainBG;
|
texture_image m_menuMainBG;
|
||||||
|
|
||||||
// Rom list coords
|
// Rom list coords
|
||||||
int m_menuMainRomListPos_x;
|
unsigned m_menuMainRomListPos_x;
|
||||||
int m_menuMainRomListPos_y;
|
unsigned m_menuMainRomListPos_y;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool rmenu_inited = false;
|
bool rmenu_inited = false;
|
||||||
@ -131,6 +131,53 @@ static void gfx_ctx_xdk_check_window(bool *quit,
|
|||||||
|
|
||||||
static void gfx_ctx_xdk_set_resize(unsigned width, unsigned height) { }
|
static void gfx_ctx_xdk_set_resize(unsigned width, unsigned height) { }
|
||||||
|
|
||||||
|
static bool gfx_ctx_xdk_menu_init(void)
|
||||||
|
{
|
||||||
|
#ifdef _XBOX1
|
||||||
|
xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data;
|
||||||
|
|
||||||
|
int width = d3d->d3dpp.BackBufferWidth;
|
||||||
|
|
||||||
|
// Load background image
|
||||||
|
if(width == 640)
|
||||||
|
{
|
||||||
|
texture_image_load("D:\\Media\\main-menu_480p.png", &m_menuMainBG);
|
||||||
|
m_menuMainRomListPos_x = 60;
|
||||||
|
m_menuMainRomListPos_y = 80;
|
||||||
|
}
|
||||||
|
else if(width == 1280)
|
||||||
|
{
|
||||||
|
texture_image_load("D:\\Media\\main-menu_720p.png", &m_menuMainBG);
|
||||||
|
m_menuMainRomListPos_x = 360;
|
||||||
|
m_menuMainRomListPos_y = 130;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load rom selector panel
|
||||||
|
texture_image_load("D:\\Media\\menuMainRomSelectPanel.png", &m_menuMainRomSelectPanel);
|
||||||
|
|
||||||
|
//Display some text
|
||||||
|
//Center the text (hardcoded)
|
||||||
|
xpos = width == 640 ? 65 : 400;
|
||||||
|
ypos = width == 640 ? 430 : 670;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
rmenu_inited = false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void gfx_ctx_xdk_menu_frame(void* data)
|
||||||
|
{
|
||||||
|
(void)data;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void gfx_ctx_xdk_menu_free(void)
|
||||||
|
{
|
||||||
|
#ifdef _XBOX1
|
||||||
|
texture_image_free(&m_menuMainBG);
|
||||||
|
texture_image_free(&m_menuMainRomSelectPanel);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
static void gfx_ctx_menu_enable(bool enable)
|
static void gfx_ctx_menu_enable(bool enable)
|
||||||
{
|
{
|
||||||
if (enable)
|
if (enable)
|
||||||
@ -176,48 +223,6 @@ static bool gfx_ctx_xdk_window_has_focus(void)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool gfx_ctx_xdk_menu_init(void)
|
|
||||||
{
|
|
||||||
#ifdef _XBOX1
|
|
||||||
xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data;
|
|
||||||
|
|
||||||
int width = d3d->d3dpp.BackBufferWidth;
|
|
||||||
|
|
||||||
// Load background image
|
|
||||||
if(width == 640)
|
|
||||||
{
|
|
||||||
texture_image_load("D:\\Media\\main-menu_480p.png", &m_menuMainBG);
|
|
||||||
m_menuMainRomListPos_x = 60;
|
|
||||||
m_menuMainRomListPos_y = 80;
|
|
||||||
}
|
|
||||||
else if(width == 1280)
|
|
||||||
{
|
|
||||||
texture_image_load("D:\\Media\\main-menu_720p.png", &m_menuMainBG);
|
|
||||||
m_menuMainRomListPos_x = 360;
|
|
||||||
m_menuMainRomListPos_y = 130;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load rom selector panel
|
|
||||||
texture_image_load("D:\\Media\\menuMainRomSelectPanel.png", &m_menuMainRomSelectPanel);
|
|
||||||
|
|
||||||
//Display some text
|
|
||||||
//Center the text (hardcoded)
|
|
||||||
xpos = width == 640 ? 65 : 400;
|
|
||||||
ypos = width == 640 ? 430 : 670;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
rmenu_inited = false;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void gfx_ctx_xdk_menu_free(void)
|
|
||||||
{
|
|
||||||
#ifdef _XBOX1
|
|
||||||
texture_image_free(&m_menuMainBG);
|
|
||||||
texture_image_free(&m_menuMainRomSelectPanel);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
static void gfx_ctx_xdk_menu_draw_bg(rarch_position_t *position)
|
static void gfx_ctx_xdk_menu_draw_bg(rarch_position_t *position)
|
||||||
{
|
{
|
||||||
#ifdef _XBOX1
|
#ifdef _XBOX1
|
||||||
@ -277,7 +282,29 @@ static void gfx_ctx_xdk_menu_screenshot_enable(bool enable)
|
|||||||
|
|
||||||
static void gfx_ctx_xdk_menu_screenshot_dump(void *data)
|
static void gfx_ctx_xdk_menu_screenshot_dump(void *data)
|
||||||
{
|
{
|
||||||
gfx_ctx_xdk_screenshot_dump(NULL);
|
xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data;
|
||||||
|
HRESULT ret = S_OK;
|
||||||
|
char filename[PATH_MAX];
|
||||||
|
char shotname[PATH_MAX];
|
||||||
|
|
||||||
|
screenshot_generate_filename(shotname, sizeof(shotname));
|
||||||
|
snprintf(filename, sizeof(filename), "%s\\%s", default_paths.screenshots_dir, shotname);
|
||||||
|
|
||||||
|
#if defined(_XBOX1)
|
||||||
|
D3DSurface *surf = NULL;
|
||||||
|
d3d->d3d_render_device->GetBackBuffer(-1, D3DBACKBUFFER_TYPE_MONO, &surf);
|
||||||
|
ret = XGWriteSurfaceToFile(surf, filename);
|
||||||
|
surf->Release();
|
||||||
|
#elif defined(_XBOX360)
|
||||||
|
ret = 1; //false
|
||||||
|
//ret = D3DXSaveTextureToFile(filename, D3DXIFF_BMP, d3d->lpTexture, NULL);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if(ret == S_OK)
|
||||||
|
{
|
||||||
|
RARCH_LOG("Screenshot saved: %s.\n", filename);
|
||||||
|
msg_queue_push(g_extern.msg_queue, "Screenshot saved.", 1, 30);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char *gfx_ctx_xdk_menu_drive_mapping_previous(void)
|
static const char *gfx_ctx_xdk_menu_drive_mapping_previous(void)
|
||||||
@ -626,48 +653,18 @@ static void gfx_ctx_xdk_destroy(void)
|
|||||||
|
|
||||||
static void gfx_ctx_xdk_input_driver(const input_driver_t **input, void **input_data) { }
|
static void gfx_ctx_xdk_input_driver(const input_driver_t **input, void **input_data) { }
|
||||||
|
|
||||||
static void gfx_ctx_xdk_set_filtering(unsigned index, bool set_smooth)
|
static void gfx_ctx_xdk_set_filtering(unsigned index, bool set_smooth) { }
|
||||||
{
|
|
||||||
/* TODO: implement */
|
|
||||||
}
|
|
||||||
|
|
||||||
static void gfx_ctx_xdk_set_fbo(bool enable)
|
static void gfx_ctx_xdk_set_fbo(unsigned enable)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_FBO
|
#ifdef HAVE_FBO
|
||||||
/* TODO: implement properly */
|
/* TODO: implement properly */
|
||||||
xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data;
|
xdk_d3d_video_t *device_ptr = (xdk_d3d_video_t*)driver.video_data;
|
||||||
|
|
||||||
d3d->fbo_enabled = enable;
|
device_ptr->fbo_inited = enable;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void gfx_ctx_xdk_screenshot_dump(void *data)
|
|
||||||
{
|
|
||||||
xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data;
|
|
||||||
HRESULT ret = S_OK;
|
|
||||||
char filename[PATH_MAX];
|
|
||||||
char shotname[PATH_MAX];
|
|
||||||
|
|
||||||
screenshot_generate_filename(shotname, sizeof(shotname));
|
|
||||||
snprintf(filename, sizeof(filename), "%s\\%s", default_paths.screenshots_dir, shotname);
|
|
||||||
|
|
||||||
#if defined(_XBOX1)
|
|
||||||
D3DSurface *surf = NULL;
|
|
||||||
d3d->d3d_render_device->GetBackBuffer(-1, D3DBACKBUFFER_TYPE_MONO, &surf);
|
|
||||||
ret = XGWriteSurfaceToFile(surf, filename);
|
|
||||||
surf->Release();
|
|
||||||
#elif defined(_XBOX360)
|
|
||||||
ret = 1; //false
|
|
||||||
//ret = D3DXSaveTextureToFile(filename, D3DXIFF_BMP, d3d->lpTexture, NULL);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if(ret == S_OK)
|
|
||||||
{
|
|
||||||
RARCH_LOG("Screenshot saved: %s.\n", filename);
|
|
||||||
msg_queue_push(g_extern.msg_queue, "Screenshot saved.", 1, 30);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool gfx_ctx_xdk_bind_api(enum gfx_ctx_api api)
|
static bool gfx_ctx_xdk_bind_api(enum gfx_ctx_api api)
|
||||||
{
|
{
|
||||||
#if defined(_XBOX1)
|
#if defined(_XBOX1)
|
||||||
@ -735,6 +732,7 @@ const gfx_ctx_driver_t gfx_ctx_xdk = {
|
|||||||
gfx_ctx_xdk_check_resolution,
|
gfx_ctx_xdk_check_resolution,
|
||||||
gfx_ctx_xdk_set_fbo,
|
gfx_ctx_xdk_set_fbo,
|
||||||
|
|
||||||
|
#if defined(HAVE_RMENU) || defined(_XBOX360)
|
||||||
gfx_ctx_xdk_menu_init,
|
gfx_ctx_xdk_menu_init,
|
||||||
gfx_ctx_xdk_menu_frame,
|
gfx_ctx_xdk_menu_frame,
|
||||||
gfx_ctx_xdk_menu_free,
|
gfx_ctx_xdk_menu_free,
|
||||||
@ -747,4 +745,5 @@ const gfx_ctx_driver_t gfx_ctx_xdk = {
|
|||||||
gfx_ctx_xdk_menu_screenshot_dump,
|
gfx_ctx_xdk_menu_screenshot_dump,
|
||||||
gfx_ctx_xdk_menu_drive_mapping_previous,
|
gfx_ctx_xdk_menu_drive_mapping_previous,
|
||||||
gfx_ctx_xdk_menu_drive_mapping_next
|
gfx_ctx_xdk_menu_drive_mapping_next
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
@ -113,7 +113,7 @@ typedef struct gfx_ctx_driver
|
|||||||
void (*set_fbo)(unsigned);
|
void (*set_fbo)(unsigned);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_RMENU
|
#if defined(HAVE_RMENU) || defined(_XBOX360)
|
||||||
bool (*rmenu_init)(void);
|
bool (*rmenu_init)(void);
|
||||||
void (*rmenu_frame)(void *data);
|
void (*rmenu_frame)(void *data);
|
||||||
void (*rmenu_free)(void);
|
void (*rmenu_free)(void);
|
||||||
|
@ -321,7 +321,7 @@ static void xdk_d3d_init_fbo(xdk_d3d_video_t *d3d)
|
|||||||
d3d->lpTexture_ot_as16srgb = *d3d->lpTexture_ot;
|
d3d->lpTexture_ot_as16srgb = *d3d->lpTexture_ot;
|
||||||
xdk_convert_texture_to_as16_srgb(d3d->lpTexture);
|
xdk_convert_texture_to_as16_srgb(d3d->lpTexture);
|
||||||
xdk_convert_texture_to_as16_srgb(&d3d->lpTexture_ot_as16srgb);
|
xdk_convert_texture_to_as16_srgb(&d3d->lpTexture_ot_as16srgb);
|
||||||
d3d->fbo_enabled = 1;
|
d3d->fbo_inited = 1;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -343,9 +343,9 @@ static void *xdk_d3d_init(const video_info_t *video, const input_driver_t **inpu
|
|||||||
#if defined(_XBOX1)
|
#if defined(_XBOX1)
|
||||||
d3d->driver = gfx_ctx_init_first(GFX_CTX_DIRECT3D8_API);
|
d3d->driver = gfx_ctx_init_first(GFX_CTX_DIRECT3D8_API);
|
||||||
#elif defined(_XBOX360)
|
#elif defined(_XBOX360)
|
||||||
d3d->driver = gfx_ctx_init_first(GFX_CTX_DIRECT3D9_API);
|
d3d->ctx_driver = gfx_ctx_init_first(GFX_CTX_DIRECT3D9_API);
|
||||||
#endif
|
#endif
|
||||||
if (!d3d->driver)
|
if (!d3d->ctx_driver)
|
||||||
{
|
{
|
||||||
free(d3d);
|
free(d3d);
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -467,7 +467,7 @@ static bool xdk_d3d_frame(void *data, const void *frame,
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_FBO
|
#ifdef HAVE_FBO
|
||||||
if (d3d->fbo_enabled)
|
if (d3d->fbo_inited)
|
||||||
{
|
{
|
||||||
d3d->d3d_render_device->GetRenderTarget(0, &pRenderTarget0);
|
d3d->d3d_render_device->GetRenderTarget(0, &pRenderTarget0);
|
||||||
d3d->d3d_render_device->SetRenderTarget(0, d3d->lpSurface);
|
d3d->d3d_render_device->SetRenderTarget(0, d3d->lpSurface);
|
||||||
@ -490,7 +490,7 @@ static bool xdk_d3d_frame(void *data, const void *frame,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_FBO
|
#ifdef HAVE_FBO
|
||||||
if(d3d->fbo_enabled)
|
if(d3d->fbo_inited)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_HLSL
|
#ifdef HAVE_HLSL
|
||||||
hlsl_set_params(width, height, 512, 512, g_settings.video.fbo.scale_x * width,
|
hlsl_set_params(width, height, 512, 512, g_settings.video.fbo.scale_x * width,
|
||||||
@ -560,7 +560,7 @@ static bool xdk_d3d_frame(void *data, const void *frame,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_FBO
|
#ifdef HAVE_FBO
|
||||||
if(d3d->fbo_enabled)
|
if(d3d->fbo_inited)
|
||||||
{
|
{
|
||||||
d3d->d3d_render_device->Resolve(D3DRESOLVE_RENDERTARGET0, NULL, d3d->lpTexture_ot,
|
d3d->d3d_render_device->Resolve(D3DRESOLVE_RENDERTARGET0, NULL, d3d->lpTexture_ot,
|
||||||
NULL, 0, 0, NULL, 0, 0, NULL);
|
NULL, 0, 0, NULL, 0, 0, NULL);
|
||||||
|
@ -57,7 +57,7 @@ typedef struct xdk_d3d_video
|
|||||||
const gfx_ctx_driver_t *ctx_driver;
|
const gfx_ctx_driver_t *ctx_driver;
|
||||||
bool block_swap;
|
bool block_swap;
|
||||||
#ifdef HAVE_FBO
|
#ifdef HAVE_FBO
|
||||||
bool fbo_enabled;
|
bool fbo_inited;
|
||||||
#endif
|
#endif
|
||||||
bool should_resize;
|
bool should_resize;
|
||||||
bool quitting;
|
bool quitting;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user