This commit is contained in:
freakdave 2012-07-16 16:56:46 +02:00
commit baa174e5bf
8 changed files with 203 additions and 153 deletions

View File

@ -28,8 +28,8 @@
CRetroArch app;
HXUIOBJ hCur;
filebrowser_t browser;
filebrowser_t tmp_browser;
filebrowser_t *browser;
filebrowser_t *tmp_browser;
uint32_t set_shader = 0;
wchar_t strw_buffer[PATH_MAX];
@ -89,10 +89,10 @@ HRESULT CRetroArchFileBrowser::OnInit(XUIMessageInit * pInitData, BOOL& bHandled
GetChildById(L"XuiBtnGameDir", &m_dir_game);
GetChildById(L"XuiBtnCacheDir", &m_dir_cache);
filebrowser_set_root(&browser, g_console.default_rom_startup_dir);
strlcpy(tmp_browser.extensions, rarch_console_get_rom_ext(), sizeof(tmp_browser.extensions));
filebrowser_set_root(browser, g_console.default_rom_startup_dir);
strlcpy(tmp_browser->extensions, rarch_console_get_rom_ext(), sizeof(tmp_browser->extensions));
filebrowser_fetch_directory_entries(g_console.default_rom_startup_dir,
&browser, &m_romlist, &m_rompathtitle);
browser, &m_romlist, &m_rompathtitle);
return 0;
}
@ -103,9 +103,9 @@ HRESULT CRetroArchCoreBrowser::OnInit(XUIMessageInit * pInitData, BOOL& bHandled
GetChildById(L"XuiBackButton1", &m_back);
GetChildById(L"XuiTxtRomPath", &m_rompathtitle);
filebrowser_set_root(&tmp_browser, "game:");
strlcpy(tmp_browser.extensions, "xex|XEX", sizeof(tmp_browser.extensions));
filebrowser_fetch_directory_entries("game:", &tmp_browser, &m_romlist, &m_rompathtitle);
filebrowser_set_root(tmp_browser, "game:");
strlcpy(tmp_browser->extensions, "xex|XEX", sizeof(tmp_browser->extensions));
filebrowser_fetch_directory_entries("game:", tmp_browser, &m_romlist, &m_rompathtitle);
return 0;
}
@ -116,9 +116,9 @@ HRESULT CRetroArchShaderBrowser::OnInit(XUIMessageInit * pInitData, BOOL& bHandl
GetChildById(L"XuiBackButton1", &m_back);
GetChildById(L"XuiTxtRomPath", &m_shaderpathtitle);
filebrowser_set_root(&tmp_browser, "game:\\media\\shaders");
strlcpy(tmp_browser.extensions, "cg|CG", sizeof(tmp_browser.extensions));
filebrowser_fetch_directory_entries("game:\\media\\shaders", &tmp_browser,
filebrowser_set_root(tmp_browser, "game:\\media\\shaders");
strlcpy(tmp_browser->extensions, "cg|CG", sizeof(tmp_browser->extensions));
filebrowser_fetch_directory_entries("game:\\media\\shaders", tmp_browser,
&m_shaderlist, &m_shaderpathtitle);
return 0;
@ -544,35 +544,35 @@ HRESULT CRetroArchFileBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandle
{
int index = m_romlist.GetCurSel();
const char *strbuffer = rarch_convert_wchar_to_const_char((const wchar_t *)m_romlist.GetText(index));
if(path_file_exists(browser.current_dir.list->elems[index].data))
if(path_file_exists(browser->current_dir.list->elems[index].data))
{
char path_tmp[1024];
struct retro_system_info info;
retro_get_system_info(&info);
bool block_zip_extract = info.block_extract;
snprintf(path_tmp, sizeof(path_tmp), "%s\\%s", filebrowser_get_current_dir(&browser), strbuffer);
snprintf(path_tmp, sizeof(path_tmp), "%s\\%s", filebrowser_get_current_dir(browser), strbuffer);
if((strstr(strbuffer, ".zip") || strstr(strbuffer, ".ZIP")) && !block_zip_extract)
rarch_extract_zipfile(path_tmp);
else
rarch_console_load_game(path_tmp);
}
else if(browser.current_dir.list->elems[index].attr.b)
else if(browser->current_dir.list->elems[index].attr.b)
{
snprintf(path, sizeof(path), "%s\\%s", filebrowser_get_current_dir(&browser), strbuffer);
filebrowser_fetch_directory_entries(path, &browser, &m_romlist, &m_rompathtitle);
snprintf(path, sizeof(path), "%s\\%s", filebrowser_get_current_dir(browser), strbuffer);
filebrowser_fetch_directory_entries(path, browser, &m_romlist, &m_rompathtitle);
}
}
else if (hObjPressed == m_dir_game)
{
filebrowser_new(&browser, g_console.default_rom_startup_dir, rarch_console_get_rom_ext());
filebrowser_fetch_directory_entries(g_console.default_rom_startup_dir, &browser, &m_romlist, &m_rompathtitle);
filebrowser_new(browser, g_console.default_rom_startup_dir, rarch_console_get_rom_ext());
filebrowser_fetch_directory_entries(g_console.default_rom_startup_dir, browser, &m_romlist, &m_rompathtitle);
}
#ifdef HAVE_HDD_CACHE_PARTITION
else if (hObjPressed == m_dir_cache)
{
filebrowser_new(&browser, "cache:", rarch_console_get_rom_ext());
filebrowser_fetch_directory_entries("cache:", &browser, &m_romlist, &m_rompathtitle);
filebrowser_new(browser, "cache:", rarch_console_get_rom_ext());
filebrowser_fetch_directory_entries("cache:", browser, &m_romlist, &m_rompathtitle);
if (g_console.info_msg_enable)
rarch_settings_msg(S_MSG_CACHE_PARTITION, S_DELAY_180);
@ -591,29 +591,29 @@ HRESULT CRetroArchShaderBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHand
if(hObjPressed == m_shaderlist)
{
int index = m_shaderlist.GetCurSel();
if(path_file_exists(tmp_browser.current_dir.list->elems[index].data))
if(path_file_exists(tmp_browser->current_dir.list->elems[index].data))
{
const char * strbuffer = rarch_convert_wchar_to_const_char((const wchar_t *)m_shaderlist.GetText(index));
switch(set_shader)
{
case 1:
snprintf(g_settings.video.cg_shader_path, sizeof(g_settings.video.cg_shader_path), "%s\\%s", filebrowser_get_current_dir(&tmp_browser), strbuffer);
snprintf(g_settings.video.cg_shader_path, sizeof(g_settings.video.cg_shader_path), "%s\\%s", filebrowser_get_current_dir(tmp_browser), strbuffer);
rarch_load_shader(set_shader, g_settings.video.cg_shader_path);
break;
case 2:
snprintf (g_settings.video.second_pass_shader, sizeof(g_settings.video.second_pass_shader), "%s\\%s", filebrowser_get_current_dir(&tmp_browser), strbuffer);
snprintf (g_settings.video.second_pass_shader, sizeof(g_settings.video.second_pass_shader), "%s\\%s", filebrowser_get_current_dir(tmp_browser), strbuffer);
rarch_load_shader(set_shader, g_settings.video.second_pass_shader);
break;
default:
break;
}
}
else if(tmp_browser.current_dir.list->elems[index].attr.b)
else if(tmp_browser->current_dir.list->elems[index].attr.b)
{
const char * strbuffer = rarch_convert_wchar_to_const_char((const wchar_t *)m_shaderlist.GetText(index));
snprintf(path, sizeof(path), "%s\\%s", filebrowser_get_current_dir(&tmp_browser), strbuffer);
filebrowser_fetch_directory_entries(path, &tmp_browser, &m_shaderlist, &m_shaderpathtitle);
snprintf(path, sizeof(path), "%s\\%s", filebrowser_get_current_dir(tmp_browser), strbuffer);
filebrowser_fetch_directory_entries(path, tmp_browser, &m_shaderlist, &m_shaderpathtitle);
}
}
@ -629,17 +629,17 @@ HRESULT CRetroArchCoreBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandle
if(hObjPressed == m_romlist)
{
int index = m_romlist.GetCurSel();
if(path_file_exists(tmp_browser.current_dir.list->elems[index].data))
if(path_file_exists(tmp_browser->current_dir.list->elems[index].data))
{
const char * strbuffer = rarch_convert_wchar_to_const_char((const wchar_t *)m_romlist.GetText(index));
snprintf(g_console.launch_app_on_exit, sizeof(g_console.launch_app_on_exit), "%s\\%s", filebrowser_get_current_dir(&tmp_browser), strbuffer);
snprintf(g_console.launch_app_on_exit, sizeof(g_console.launch_app_on_exit), "%s\\%s", filebrowser_get_current_dir(tmp_browser), strbuffer);
rarch_settings_change(S_RETURN_TO_LAUNCHER);
}
else if(tmp_browser.current_dir.list->elems[index].attr.b)
else if(tmp_browser->current_dir.list->elems[index].attr.b)
{
const char * strbuffer = rarch_convert_wchar_to_const_char((const wchar_t *)m_romlist.GetText(index));
snprintf(path, sizeof(path), "%s%s\\", filebrowser_get_current_dir(&tmp_browser), strbuffer);
filebrowser_fetch_directory_entries(path, &tmp_browser, &m_romlist, &m_rompathtitle);
snprintf(path, sizeof(path), "%s%s\\", filebrowser_get_current_dir(tmp_browser), strbuffer);
filebrowser_fetch_directory_entries(path, tmp_browser, &m_romlist, &m_rompathtitle);
}
}
@ -851,15 +851,19 @@ int menu_init (void)
hCur = app.hMainScene;
XuiSceneNavigateFirst(app.GetRootObj(), app.hMainScene, XUSER_INDEX_FOCUS);
filebrowser_new(&browser, g_console.default_rom_startup_dir, rarch_console_get_rom_ext());
browser = (filebrowser_t*)malloc(1 * sizeof(filebrowser_t));
tmp_browser = (filebrowser_t*)malloc(1 * sizeof(filebrowser_t));
filebrowser_new(browser, g_console.default_rom_startup_dir, rarch_console_get_rom_ext());
return 0;
}
void menu_free (void)
{
filebrowser_free(&browser);
filebrowser_free(&tmp_browser);
filebrowser_free(browser);
filebrowser_free(tmp_browser);
free(browser);
free(tmp_browser);
app.Uninit();
}

View File

@ -100,7 +100,7 @@ static void rarch_manage_libretro_set_first_file(char *first_file, size_t size_o
if(first_exe)
{
#ifdef _XBOX
#ifdef _XBOX360
char fname_tmp[PATH_MAX];
fill_pathname_base(fname_tmp, first_exe, sizeof(fname_tmp));
@ -136,8 +136,10 @@ static void find_and_set_first_file(void)
char first_file[PATH_MAX];
rarch_manage_libretro_set_first_file(first_file, sizeof(first_file),
#if defined(_XBOX)
#if defined(_XBOX360)
"game:\\", "xex"
#elif defined(_XBOX1)
"D:\\", "xbe"
#elif defined(__CELLOS_LV2__)
LIBRETRO_DIR_PATH, "SELF"
#endif
@ -167,8 +169,10 @@ static void init_settings(void)
//try to find CORE executable
char core_executable[1024];
#if defined(_XBOX)
#if defined(_XBOX360)
snprintf(core_executable, sizeof(core_executable), "game:\\CORE.xex");
#if defined(_XBOX1)
snprintf(core_executable, sizeof(core_executable), "D:\\CORE.xbe");
#elif defined(__CELLOS_LV2__)
snprintf(core_executable, sizeof(core_executable), "%s/CORE.SELF", LIBRETRO_DIR_PATH);
#endif
@ -199,7 +203,7 @@ static void init_settings(void)
static void get_environment_settings (void)
{
#if defined(_XBOX)
#if defined(_XBOX360)
//for devkits only, we will need to mount all partitions for retail
//in a different way
//DmMapDevkitDrive();
@ -244,8 +248,8 @@ static void get_environment_settings (void)
break;
}
}
strlcpy(SYS_CONFIG_FILE, "game:\\retroarch.cfg", sizeof(SYS_CONFIG_FILE));
#elif defined(_XBOX1)
strlcpy(SYS_CONFIG_FILE, "D:\\retroarch.cfg", sizeof(SYS_CONFIG_FILE));
#elif defined(__CELLOS_LV2__)
unsigned int get_type;
unsigned int get_attributes;
@ -317,6 +321,8 @@ int main(int argc, char *argv[])
get_environment_settings();
//WIP - no Xbox 1 controller input yet
#ifdef _XBOX360
XInputGetState(0, &state);
if(state.Gamepad.wButtons & XINPUT_GAMEPAD_Y)
@ -326,6 +332,7 @@ int main(int argc, char *argv[])
find_and_set_first_file();
}
else
#endif
{
//normal executable loading path
init_settings();

View File

@ -200,14 +200,13 @@ typedef struct
struct console_settings
{
#ifdef __CELLOS_LV2__
bool custom_bgm_enable;
#endif
bool check_available_resolutions;
bool block_config_read;
bool default_sram_dir_enable;
bool default_savestate_dir_enable;
bool fbo_enabled;
bool fps_info_enable;
bool frame_advance_enable;
#ifdef _XBOX
bool menus_hd_enable;
@ -242,9 +241,7 @@ struct console_settings
uint32_t supported_resolutions_count;
uint32_t control_timer_expiration_frame_count;
uint32_t timer_expiration_frame_count;
#ifdef RARCH_CONSOLE
uint32_t input_loop;
#endif
#ifdef _XBOX
uint32_t color_format;
DWORD volume_device_type;
@ -257,7 +254,7 @@ struct console_settings
char default_sram_dir[PATH_MAX];
char launch_app_on_exit[PATH_MAX];
float menu_font_size;
#if defined(__CELLOS_LV2__) && !defined(__PSL1GHT__)
#if defined(__CELLOS_LV2__)
oskutil_params oskutil_handle;
#endif
};

View File

@ -23,27 +23,28 @@
#include <winsock2.h>
#include <mmsystem.h>
#endif
static int gettimeofday(struct timeval *val, void *dummy)
{
(void)dummy;
#ifdef _XBOX360
DWORD msec = GetTickCount();
#else
DWORD msec = timeGetTime();
#endif
uint64_t usec = msec * 1000;
val->tv_sec = usec / 1000000;
val->tv_usec = usec % 1000000;
return 0;
}
#endif
#ifdef __CELLOS_LV2__
#include <sys/sys_time.h>
#endif
#if defined(__CELLOS_LV2__) || defined(_MSC_VER)
static int gettimeofday(struct timeval *val, void *dummy)
{
(void)dummy;
#if defined(_MSC_VER) && !defined(_XBOX360)
DWORD msec = timeGetTime();
#elif defined(_XBOX360)
DWORD msec = GetTickCount();
#endif
#if defined(__CELLOS_LV2__)
uint64_t usec = sys_time_get_system_time();
#else
uint64_t usec = msec * 1000;
#endif
val->tv_sec = usec / 1000000;
val->tv_usec = usec % 1000000;
return 0;

View File

@ -609,40 +609,78 @@ static void display_menubar(void)
}
uint64_t state, trigger_state, held_state;
uint16_t input_state, old_input_state = 0;
static uint64_t old_state = 0;
static uint64_t older_state = 0;
static void browser_update(filebrowser_t * b, const char *extensions)
static void control_update_wrap(void)
{
filebrowser_action_t action = FILEBROWSER_ACTION_NOOP;
input_state = 0;
input_ps3.poll(NULL);
if (CTRL_LSTICK_DOWN(trigger_state))
action = FILEBROWSER_ACTION_DOWN;
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_DOWN);
else if (CTRL_DOWN(trigger_state))
action = FILEBROWSER_ACTION_DOWN;
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_DOWN);
else if (CTRL_LSTICK_UP(trigger_state))
action = FILEBROWSER_ACTION_UP;
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_UP);
else if (CTRL_UP(trigger_state))
action = FILEBROWSER_ACTION_UP;
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_UP);
else if (CTRL_RIGHT(trigger_state))
action = FILEBROWSER_ACTION_RIGHT;
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT);
else if (CTRL_LSTICK_RIGHT(trigger_state))
action = FILEBROWSER_ACTION_RIGHT;
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT);
else if (CTRL_LEFT(trigger_state))
action = FILEBROWSER_ACTION_LEFT;
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_LEFT);
else if (CTRL_LSTICK_LEFT(trigger_state))
action = FILEBROWSER_ACTION_LEFT;
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_LEFT);
else if (CTRL_R1(trigger_state))
action = FILEBROWSER_ACTION_SCROLL_DOWN;
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_R);
else if (CTRL_R2(trigger_state))
action = FILEBROWSER_ACTION_SCROLL_DOWN_SMOOTH;
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_R2);
else if (CTRL_L2(trigger_state))
action = FILEBROWSER_ACTION_SCROLL_UP_SMOOTH;
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_L2);
else if (CTRL_L1(trigger_state))
action = FILEBROWSER_ACTION_SCROLL_UP;
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_L);
else if (CTRL_SQUARE(trigger_state))
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_Y);
else if (CTRL_TRIANGLE(trigger_state))
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_X);
else if (CTRL_CIRCLE(trigger_state))
action = FILEBROWSER_ACTION_CANCEL;
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_A);
else if (CTRL_CROSS(trigger_state))
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_B);
else if (CTRL_START(trigger_state))
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_START);
else if (CTRL_SELECT(trigger_state))
input_state |= (1 << RETRO_DEVICE_ID_JOYPAD_SELECT);
}
static void browser_update(filebrowser_t * b, const char *extensions)
{
control_update_wrap();
filebrowser_action_t action = FILEBROWSER_ACTION_NOOP;
uint16_t trigger_st = input_state & ~old_input_state;
if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_DOWN))
action = FILEBROWSER_ACTION_DOWN;
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_UP))
action = FILEBROWSER_ACTION_UP;
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT))
action = FILEBROWSER_ACTION_RIGHT;
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT))
action = FILEBROWSER_ACTION_LEFT;
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_R))
action = FILEBROWSER_ACTION_SCROLL_DOWN;
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_R2))
action = FILEBROWSER_ACTION_SCROLL_DOWN_SMOOTH;
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_L2))
action = FILEBROWSER_ACTION_SCROLL_UP_SMOOTH;
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_L))
action = FILEBROWSER_ACTION_SCROLL_UP;
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_A))
action = FILEBROWSER_ACTION_CANCEL;
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_START))
{
action = FILEBROWSER_ACTION_RESET;
filebrowser_set_root(b, "/");
@ -738,8 +776,9 @@ static void select_file(void)
}
browser_update(&tmpBrowser, extensions);
uint16_t trigger_st = input_state & ~old_input_state;
if (CTRL_CROSS(trigger_state))
if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_B))
{
if(filebrowser_get_current_path_isdir(&tmpBrowser))
{
@ -796,7 +835,7 @@ static void select_file(void)
menu_stack_decrement();
}
}
else if (CTRL_TRIANGLE(trigger_state))
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_X))
menu_stack_decrement();
display_menubar();
@ -1668,11 +1707,13 @@ static void select_rom(void)
gl_t * gl = driver.video_data;
browser_update(&browser, rarch_console_get_rom_ext());
uint16_t trigger_st = input_state & ~old_input_state;
menu_romselect_action_t action = MENU_ROMSELECT_ACTION_NOOP;
if (CTRL_SELECT(trigger_state))
if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_SELECT))
action = MENU_ROMSELECT_ACTION_GOTO_SETTINGS;
else if (CTRL_CROSS(trigger_state))
else if (trigger_st & (1 << RETRO_DEVICE_ID_JOYPAD_B))
action = MENU_ROMSELECT_ACTION_OK;
if (action != MENU_ROMSELECT_ACTION_NOOP)

View File

@ -21,7 +21,7 @@
typedef struct
{
unsigned enum_id; /* enum ID of item */
unsigned char enum_id; /* enum ID of item */
char text[256]; /* item label */
char setting_text[256]; /* setting label */
float text_xpos; /* text X position (upper left corner) */
@ -30,18 +30,18 @@ typedef struct
char comment[256]; /* item comment */
unsigned item_color; /* color of item */
float comment_ypos; /* comment Y position (upper left corner) */
unsigned page; /* page */
unsigned char page; /* page */
} item;
typedef struct
{
char title[64]; /* menu title */
unsigned enum_id; /* enum ID of menu */
unsigned selected; /* index of selected item */
unsigned page; /* page */
unsigned first_setting; /* first setting */
unsigned max_settings; /* max no of settings in menu */
unsigned category_id; /* category ID */
char title[64];
unsigned char enum_id;
unsigned char selected;
unsigned char page;
unsigned char first_setting;
unsigned char max_settings;
unsigned char category_id;
} menu;
enum

View File

@ -185,7 +185,7 @@ static void *xdk_d3d_init(const video_info_t *video, const input_driver_t **inpu
if (!d3d->d3d_device)
{
free(d3d);
OutputDebugString("RetroArch: Failed to create a D3D8 object!");
RARCH_ERR("Failed to create a D3D8 object.\n");
return NULL;
}
@ -344,7 +344,6 @@ static void *xdk_d3d_init(const video_info_t *video, const input_driver_t **inpu
d3d->vsync = video->vsync;
// load debug font (toggle option in later revisions ?)
#ifdef SHOW_DEBUG_INFO
XFONT_OpenDefaultFont(&d3d->debug_font);
d3d->debug_font->SetBkMode(XFONT_TRANSPARENT);
d3d->debug_font->SetBkColor(D3DCOLOR_ARGB(100,0,0,0));
@ -353,6 +352,10 @@ static void *xdk_d3d_init(const video_info_t *video, const input_driver_t **inpu
font_x = 0;
font_y = 0;
// TODO: place this somewhere else outside of xdk_d3d8.cpp
#ifdef SHOW_DEBUG_INFO
g_console.fps_info_enable = true;
#endif
return d3d;
@ -361,13 +364,12 @@ static void *xdk_d3d_init(const video_info_t *video, const input_driver_t **inpu
static bool xdk_d3d_frame(void *data, const void *frame,
unsigned width, unsigned height, unsigned pitch, const char *msg)
{
#if 0
if (!frame)
return true;
#endif
xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)data;
bool menu_enabled = g_console.menu_enable;
bool fps_enable = g_console.fps_info_enable;
if (d3d->last_width != width || d3d->last_height != height) //240*160
{
@ -442,40 +444,38 @@ static bool xdk_d3d_frame(void *data, const void *frame,
d3d->d3d_render_device->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);
d3d->d3d_render_device->EndScene();
#ifdef SHOW_DEBUG_INFO
static MEMORYSTATUS stat;
GlobalMemoryStatus(&stat);
d3d->d3d_render_device->GetBackBuffer(-1, D3DBACKBUFFER_TYPE_MONO, &d3d->pFrontBuffer);
d3d->d3d_render_device->GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, &d3d->pBackBuffer);
//Output memory usage
char buf[128], buf2[128], buf_fps_last[128];
bool ret = false;
sprintf(buf, "%.2f MB free / %.2f MB total", stat.dwAvailPhys/(1024.0f*1024.0f), stat.dwTotalPhys/(1024.0f*1024.0f));
rarch_convert_char_to_wchar(strw_buffer, buf, sizeof(strw_buffer));
d3d->debug_font->TextOut(d3d->pFrontBuffer, strw_buffer, (unsigned)-1, font_x + 30, font_y + 50 );
d3d->debug_font->TextOut(d3d->pBackBuffer, strw_buffer, (unsigned)-1, font_x + 30, font_y + 50 );
if(ret = gfx_window_title(buf2, sizeof(buf2)) || sizeof(buf_fps_last))
if(fps_enable)
{
if(ret)
{
sprintf(buf_fps_last, buf2);
rarch_convert_char_to_wchar(strw_buffer, buf2, sizeof(strw_buffer));
}
else if(buf_fps_last)
{
rarch_convert_char_to_wchar(strw_buffer, buf_fps_last, sizeof(strw_buffer));
}
static MEMORYSTATUS stat;
GlobalMemoryStatus(&stat);
d3d->d3d_render_device->GetBackBuffer(-1, D3DBACKBUFFER_TYPE_MONO, &d3d->pFrontBuffer);
d3d->d3d_render_device->GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, &d3d->pBackBuffer);
d3d->debug_font->TextOut(d3d->pFrontBuffer, strw_buffer, (unsigned)-1, font_x + 30, font_y + 70 );
d3d->debug_font->TextOut(d3d->pBackBuffer, strw_buffer, (unsigned)-1, font_x + 30, font_y + 70 );
d3d->pFrontBuffer->Release();
d3d->pBackBuffer->Release();
//Output memory usage
char buf[128], buf2[128], buf_fps_last[128];
bool ret = false;
sprintf(buf, "%.2f MB free / %.2f MB total", stat.dwAvailPhys/(1024.0f*1024.0f), stat.dwTotalPhys/(1024.0f*1024.0f));
rarch_convert_char_to_wchar(strw_buffer, buf, sizeof(strw_buffer));
d3d->debug_font->TextOut(d3d->pFrontBuffer, strw_buffer, (unsigned)-1, font_x + 30, font_y + 50 );
d3d->debug_font->TextOut(d3d->pBackBuffer, strw_buffer, (unsigned)-1, font_x + 30, font_y + 50 );
if(ret = gfx_window_title(buf2, sizeof(buf2)) || sizeof(buf_fps_last))
{
if(ret)
{
sprintf(buf_fps_last, buf2);
rarch_convert_char_to_wchar(strw_buffer, buf2, sizeof(strw_buffer));
}
else if(buf_fps_last)
rarch_convert_char_to_wchar(strw_buffer, buf_fps_last, sizeof(strw_buffer));
d3d->debug_font->TextOut(d3d->pFrontBuffer, strw_buffer, (unsigned)-1, font_x + 30, font_y + 70 );
d3d->debug_font->TextOut(d3d->pBackBuffer, strw_buffer, (unsigned)-1, font_x + 30, font_y + 70 );
d3d->pFrontBuffer->Release();
d3d->pBackBuffer->Release();
}
}
#endif
if(!d3d->block_swap)
gfx_ctx_swap_buffers();

View File

@ -96,59 +96,59 @@ static int16_t xinput_input_state(void *data, const struct retro_keybind **binds
DWORD button = binds[player][id].joykey;
int16_t retval = 0;
//Hardcoded binds (WIP)
//FIXME: Hardcoded binds
switch(id)
{
case RETRO_DEVICE_ID_JOYPAD_A:
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_B]) ? 1 : 0;
break;
case RETRO_DEVICE_ID_JOYPAD_B:
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_A]) ? 1 : 0;
break;
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_A]) ? 1 : 0;
break;
case RETRO_DEVICE_ID_JOYPAD_X:
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_Y]) ? 1 : 0;
break;
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_Y]) ? 1 : 0;
break;
case RETRO_DEVICE_ID_JOYPAD_Y:
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_X]) ? 1 : 0;
break;
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_X]) ? 1 : 0;
break;
case RETRO_DEVICE_ID_JOYPAD_LEFT:
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_LEFT) || (state[player].Gamepad.sThumbLX < -DEADZONE) ? 1 : 0;
break;
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_LEFT) || (state[player].Gamepad.sThumbLX < -DEADZONE) ? 1 : 0;
break;
case RETRO_DEVICE_ID_JOYPAD_RIGHT:
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_RIGHT) || (state[player].Gamepad.sThumbLX > DEADZONE) ? 1 : 0;
break;
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_RIGHT) || (state[player].Gamepad.sThumbLX > DEADZONE) ? 1 : 0;
break;
case RETRO_DEVICE_ID_JOYPAD_UP:
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_UP) || (state[player].Gamepad.sThumbLY > DEADZONE) ? 1 : 0;
break;
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_UP) || (state[player].Gamepad.sThumbLY > DEADZONE) ? 1 : 0;
break;
case RETRO_DEVICE_ID_JOYPAD_DOWN:
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_DOWN)|| (state[player].Gamepad.sThumbLY < -DEADZONE) ? 1 : 0;
break;
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_DOWN)|| (state[player].Gamepad.sThumbLY < -DEADZONE) ? 1 : 0;
break;
case RETRO_DEVICE_ID_JOYPAD_START:
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_START) ? 1 : 0;
break;
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_START) ? 1 : 0;
break;
case RETRO_DEVICE_ID_JOYPAD_SELECT:
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_BACK) ? 1 : 0;
break;
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_BACK) ? 1 : 0;
break;
case RETRO_DEVICE_ID_JOYPAD_L:
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_LEFT_TRIGGER]) ? 1 : 0;
break;
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_LEFT_TRIGGER]) ? 1 : 0;
break;
case RETRO_DEVICE_ID_JOYPAD_R:
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_RIGHT_TRIGGER]) ? 1 : 0;
break;
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_RIGHT_TRIGGER]) ? 1 : 0;
break;
case RETRO_DEVICE_ID_JOYPAD_L2:
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_WHITE]) ? 1 : 0;
break;
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_WHITE]) ? 1 : 0;
break;
case RETRO_DEVICE_ID_JOYPAD_R2:
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_BLACK]) ? 1 : 0;
break;
retval = (state[player].Gamepad.bAnalogButtons[XINPUT_GAMEPAD_BLACK]) ? 1 : 0;
break;
case RETRO_DEVICE_ID_JOYPAD_L3:
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_THUMB) ? 1 : 0;
break;
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_THUMB) ? 1 : 0;
break;
case RETRO_DEVICE_ID_JOYPAD_R3:
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_THUMB) ? 1 : 0;
break;
retval = (state[player].Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_THUMB) ? 1 : 0;
break;
default:
break;
break;
}
return retval;