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:
twinaphex 2019-07-11 02:18:21 +02:00
parent c8ea62fe54
commit f6497e8012
6 changed files with 27 additions and 49 deletions

View File

@ -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;

View File

@ -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"
};

View File

@ -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"
};

View File

@ -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"
};

View File

@ -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"
};

View File

@ -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;