mirror of
https://github.com/libretro/RetroArch
synced 2025-03-03 13:14:04 +00:00
ui_application_t - we never use run except for Qt, so remove this
and move the code to frontend.c - also add a boolean variable to ui_application_t to indicate whether an app is about to exit
This commit is contained in:
parent
c8ea62fe54
commit
f6497e8012
@ -164,8 +164,26 @@ int rarch_main(int argc, char *argv[], void *data)
|
||||
const ui_application_t *ui_application =
|
||||
ui_companion_driver_get_qt_application_ptr();
|
||||
if (ui_application)
|
||||
ui_application->run(data);
|
||||
{
|
||||
do
|
||||
{
|
||||
unsigned sleep_ms = 0;
|
||||
int ret = runloop_iterate(&sleep_ms);
|
||||
|
||||
if (ret == 1 && sleep_ms > 0)
|
||||
retro_sleep(sleep_ms);
|
||||
|
||||
task_queue_check();
|
||||
|
||||
if (ret == -1 || ui_application->exiting)
|
||||
{
|
||||
ui_application->quit();
|
||||
break;
|
||||
}
|
||||
}while(1);
|
||||
}
|
||||
}
|
||||
main_exit(data);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
|
@ -24,7 +24,6 @@
|
||||
#include "cocoa_common.h"
|
||||
#include "../../ui_companion_driver.h"
|
||||
|
||||
|
||||
static void* ui_application_cocoa_initialize(void)
|
||||
{
|
||||
return NULL;
|
||||
@ -55,16 +54,12 @@ static void ui_application_cocoa_process_events(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void ui_application_cocoa_run(void *args)
|
||||
{
|
||||
(void)args;
|
||||
}
|
||||
|
||||
ui_application_t ui_application_cocoa = {
|
||||
ui_application_cocoa_initialize,
|
||||
ui_application_cocoa_pending_events,
|
||||
ui_application_cocoa_process_events,
|
||||
ui_application_cocoa_run,
|
||||
NULL,
|
||||
NULL,
|
||||
false,
|
||||
"cocoa"
|
||||
};
|
||||
|
@ -35,16 +35,11 @@ static void ui_application_null_process_events(void)
|
||||
{
|
||||
}
|
||||
|
||||
static void ui_application_null_run(void *args)
|
||||
{
|
||||
(void)args;
|
||||
}
|
||||
|
||||
ui_application_t ui_application_null = {
|
||||
ui_application_null_initialize,
|
||||
ui_application_null_pending_events,
|
||||
ui_application_null_process_events,
|
||||
ui_application_null_run,
|
||||
NULL,
|
||||
false,
|
||||
"null"
|
||||
};
|
||||
|
@ -40,7 +40,6 @@ extern "C" {
|
||||
|
||||
static AppHandler *appHandler;
|
||||
static ui_application_qt_t ui_application;
|
||||
static bool app_exiting = false;
|
||||
|
||||
/* these must last for the lifetime of the QApplication */
|
||||
static int app_argc = 1;
|
||||
@ -78,7 +77,7 @@ AppHandler::~AppHandler()
|
||||
|
||||
void AppHandler::exit()
|
||||
{
|
||||
app_exiting = true;
|
||||
ui_application_qt.exiting = true;
|
||||
|
||||
if (qApp)
|
||||
qApp->closeAllWindows();
|
||||
@ -86,7 +85,7 @@ void AppHandler::exit()
|
||||
|
||||
bool AppHandler::isExiting() const
|
||||
{
|
||||
return app_exiting;
|
||||
return ui_application_qt.exiting;
|
||||
}
|
||||
|
||||
void AppHandler::onLastWindowClosed()
|
||||
@ -151,30 +150,6 @@ static void ui_application_qt_quit(void)
|
||||
appHandler->exit();
|
||||
}
|
||||
|
||||
static void ui_application_qt_run(void *args)
|
||||
{
|
||||
#ifdef HAVE_MAIN
|
||||
do
|
||||
{
|
||||
unsigned sleep_ms = 0;
|
||||
int ret = runloop_iterate(&sleep_ms);
|
||||
|
||||
if (ret == 1 && sleep_ms > 0)
|
||||
retro_sleep(sleep_ms);
|
||||
|
||||
task_queue_check();
|
||||
|
||||
if (ret == -1 || app_exiting)
|
||||
{
|
||||
ui_application_qt_quit();
|
||||
break;
|
||||
}
|
||||
}while(1);
|
||||
|
||||
main_exit(args);
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef HAVE_MAIN
|
||||
#if defined(__cplusplus) && !defined(CXX_BUILD)
|
||||
extern "C"
|
||||
@ -189,7 +164,7 @@ ui_application_t ui_application_qt = {
|
||||
ui_application_qt_initialize,
|
||||
ui_application_qt_pending_events,
|
||||
ui_application_qt_process_events,
|
||||
ui_application_qt_run,
|
||||
ui_application_qt_quit,
|
||||
false,
|
||||
"qt"
|
||||
};
|
||||
|
@ -48,16 +48,11 @@ static void ui_application_win32_process_events(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void ui_application_win32_run(void *args)
|
||||
{
|
||||
(void)args;
|
||||
}
|
||||
|
||||
ui_application_t ui_application_win32 = {
|
||||
ui_application_win32_initialize,
|
||||
ui_application_win32_pending_events,
|
||||
ui_application_win32_process_events,
|
||||
ui_application_win32_run,
|
||||
NULL,
|
||||
false,
|
||||
"win32"
|
||||
};
|
||||
|
@ -107,8 +107,8 @@ typedef struct ui_application
|
||||
void* (*initialize)(void);
|
||||
bool (*pending_events)(void);
|
||||
void (*process_events)(void);
|
||||
void (*run)(void *args);
|
||||
void (*quit)(void);
|
||||
bool exiting;
|
||||
const char *ident;
|
||||
} ui_application_t;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user