mirror of
https://github.com/libretro/RetroArch
synced 2025-04-01 04:20:27 +00:00
(frontend) Add some workarounds for Emscripten
This commit is contained in:
parent
0612ec702c
commit
41751ff0cf
@ -92,7 +92,20 @@ static void rarch_get_environment_console(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(ANDROID)
|
#if defined(EMSCRIPTEN)
|
||||||
|
#define main_entry emscripten_app_entry
|
||||||
|
#define returntype void
|
||||||
|
#define signature() void
|
||||||
|
#define returnfunc() exit(0)
|
||||||
|
#define return_negative() return
|
||||||
|
#define return_var(var) return
|
||||||
|
#define declare_argc() int argc = 0;
|
||||||
|
#define declare_argv() char *argv[1]
|
||||||
|
#define args_type() void*
|
||||||
|
#define args_initial_ptr() NULL
|
||||||
|
#define while_iter if
|
||||||
|
#define while_cond false
|
||||||
|
#elif defined(ANDROID)
|
||||||
#define main_entry android_app_entry
|
#define main_entry android_app_entry
|
||||||
#define returntype void
|
#define returntype void
|
||||||
#define signature() void* data
|
#define signature() void* data
|
||||||
@ -103,6 +116,8 @@ static void rarch_get_environment_console(void)
|
|||||||
#define declare_argv() char *argv[1]
|
#define declare_argv() char *argv[1]
|
||||||
#define args_type() struct android_app*
|
#define args_type() struct android_app*
|
||||||
#define args_initial_ptr() data
|
#define args_initial_ptr() data
|
||||||
|
#define while_iter while
|
||||||
|
#define while_cond true
|
||||||
#elif defined(IOS) || defined(OSX) || defined(HAVE_BB10)
|
#elif defined(IOS) || defined(OSX) || defined(HAVE_BB10)
|
||||||
#define main_entry rarch_main
|
#define main_entry rarch_main
|
||||||
#define returntype int
|
#define returntype int
|
||||||
@ -114,6 +129,8 @@ static void rarch_get_environment_console(void)
|
|||||||
#define declare_argv()
|
#define declare_argv()
|
||||||
#define args_type() void*
|
#define args_type() void*
|
||||||
#define args_initial_ptr() NULL
|
#define args_initial_ptr() NULL
|
||||||
|
#define while_iter while
|
||||||
|
#define while_cond true
|
||||||
#else
|
#else
|
||||||
#define main_entry main
|
#define main_entry main
|
||||||
#define returntype int
|
#define returntype int
|
||||||
@ -125,6 +142,8 @@ static void rarch_get_environment_console(void)
|
|||||||
#define declare_argv()
|
#define declare_argv()
|
||||||
#define args_type() void*
|
#define args_type() void*
|
||||||
#define args_initial_ptr() NULL
|
#define args_initial_ptr() NULL
|
||||||
|
#define while_iter while
|
||||||
|
#define while_cond true
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(HAVE_BB10) || defined(ANDROID)
|
#if defined(HAVE_BB10) || defined(ANDROID)
|
||||||
@ -206,7 +225,7 @@ returntype main_entry(signature())
|
|||||||
menu_rom_history_push_current();
|
menu_rom_history_push_current();
|
||||||
}
|
}
|
||||||
|
|
||||||
for (;;)
|
do
|
||||||
{
|
{
|
||||||
if (g_extern.system.shutdown)
|
if (g_extern.system.shutdown)
|
||||||
break;
|
break;
|
||||||
@ -237,7 +256,7 @@ returntype main_entry(signature())
|
|||||||
if (driver.video_poke->set_aspect_ratio)
|
if (driver.video_poke->set_aspect_ratio)
|
||||||
driver.video_poke->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx);
|
driver.video_poke->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx);
|
||||||
|
|
||||||
while ((g_extern.is_paused && !g_extern.is_oneshot) ? rarch_main_idle_iterate() : rarch_main_iterate())
|
while_iter ((g_extern.is_paused && !g_extern.is_oneshot) ? rarch_main_idle_iterate() : rarch_main_iterate())
|
||||||
{
|
{
|
||||||
if (frontend_ctx && frontend_ctx->process_events)
|
if (frontend_ctx && frontend_ctx->process_events)
|
||||||
frontend_ctx->process_events(args);
|
frontend_ctx->process_events(args);
|
||||||
@ -268,7 +287,7 @@ returntype main_entry(signature())
|
|||||||
if (driver.audio_data)
|
if (driver.audio_data)
|
||||||
audio_stop_func();
|
audio_stop_func();
|
||||||
|
|
||||||
while (!g_extern.system.shutdown && menu_iterate())
|
while_iter (!g_extern.system.shutdown && menu_iterate())
|
||||||
{
|
{
|
||||||
if (frontend_ctx && frontend_ctx->process_events)
|
if (frontend_ctx && frontend_ctx->process_events)
|
||||||
frontend_ctx->process_events(args);
|
frontend_ctx->process_events(args);
|
||||||
@ -292,7 +311,7 @@ returntype main_entry(signature())
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
}
|
}while(while_cond);
|
||||||
|
|
||||||
g_extern.system.shutdown = false;
|
g_extern.system.shutdown = false;
|
||||||
menu_free();
|
menu_free();
|
||||||
@ -300,7 +319,7 @@ returntype main_entry(signature())
|
|||||||
if (g_extern.config_save_on_exit && *g_extern.config_path)
|
if (g_extern.config_save_on_exit && *g_extern.config_path)
|
||||||
config_save_file(g_extern.config_path);
|
config_save_file(g_extern.config_path);
|
||||||
#else
|
#else
|
||||||
while ((g_extern.is_paused && !g_extern.is_oneshot) ? rarch_main_idle_iterate() : rarch_main_iterate());
|
while_iter ((g_extern.is_paused && !g_extern.is_oneshot) ? rarch_main_idle_iterate() : rarch_main_iterate());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
rarch_main_deinit();
|
rarch_main_deinit();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user