Cleaned up AppWindow's api.

This commit is contained in:
Relintai 2024-01-13 15:38:58 +01:00
parent c6a43e16be
commit c6bc1ea139
3 changed files with 2 additions and 68 deletions

View File

@ -36,7 +36,7 @@ void Application::main_loop() {
AppWindow *w = AppWindow::get_singleton(); AppWindow *w = AppWindow::get_singleton();
if (!w->frame_begin()) { // calls Application::main_loop() if (!w->frame_begin()) { // calls Application::main_loop()
w->shutdown(); running = false;
return; return;
} }

View File

@ -145,7 +145,7 @@ void AppWindow::glfw_error_callback(int error, const char *description) {
CRASH_MSG(String(description) + " (error " + String::num(error) + ")"); CRASH_MSG(String(description) + " (error " + String::num(error) + ")");
} }
void AppWindow::glfw_quit(void) { void AppWindow::glfw_quit() {
glfwTerminate(); glfwTerminate();
} }
@ -493,32 +493,10 @@ void AppWindow::frame_swap() {
// emscripten_webgl_commit_frame(); // emscripten_webgl_commit_frame();
} }
void AppWindow::shutdown() {
loop_exit(); // finish emscripten loop automatically
}
void AppWindow::reset_viewport() { void AppWindow::reset_viewport() {
glViewport(0, 0, width, height); glViewport(0, 0, width, height);
} }
int AppWindow::swap() {
// end frame
if (frame_count > 0) {
frame_end();
frame_swap();
}
++frame_count;
// begin frame
int ready = frame_begin();
if (!ready) {
shutdown();
return 0;
}
return 1;
}
void AppWindow::resize() { void AppWindow::resize() {
#ifdef __EMSCRIPTEN__ #ifdef __EMSCRIPTEN__
EM_ASM(canvas.canResize = 0); EM_ASM(canvas.canResize = 0);
@ -537,37 +515,6 @@ void AppWindow::resize() {
#endif /* __EMSCRIPTEN__ */ #endif /* __EMSCRIPTEN__ */
} }
void AppWindow::loop_wrapper(void *loopArg) {
AppWindow *w = AppWindow::get_singleton();
if (w->frame_begin()) {
w->resize();
w->render_callback(loopArg);
w->frame_end();
w->frame_swap();
} else {
w->shutdown();
}
}
void AppWindow::loop(void (*user_function)(void *loopArg), void *loopArg) {
#ifdef __EMSCRIPTEN__
render_callback = user_function;
emscripten_set_main_loop_arg(window_loop_wrapper, loopArg, 0, 1);
#else
keep_running = true;
while (keep_running)
user_function(loopArg);
#endif /* __EMSCRIPTEN__ */
}
void AppWindow::loop_exit() {
#ifdef __EMSCRIPTEN__
emscripten_cancel_main_loop();
#else
keep_running = false;
#endif /* __EMSCRIPTEN__ */
}
Vector2 AppWindow::get_canvas() { Vector2 AppWindow::get_canvas() {
#ifdef __EMSCRIPTEN__ #ifdef __EMSCRIPTEN__
int width = EM_ASM_INT_V(return canvas.width); int width = EM_ASM_INT_V(return canvas.width);
@ -985,8 +932,6 @@ AppWindow::AppWindow() {
_cursorshape = 1; _cursorshape = 1;
render_callback = NULL;
width = 0; width = 0;
height = 0; height = 0;
keep_running = true; keep_running = true;

View File

@ -45,10 +45,6 @@ public:
int frame_begin(); int frame_begin();
void frame_end(); void frame_end();
void frame_swap(); void frame_swap();
int swap(); // single function that combines above functions (desktop only)
void loop(void (*function)(void *loopArg), void *loopArg); // run main loop function continuously (emscripten only)
void loop_exit(); // exit from main loop function (emscripten only)
void set_title(const char *title); void set_title(const char *title);
void set_color(unsigned color); void set_color(unsigned color);
@ -62,9 +58,6 @@ public:
double get_time(); double get_time();
double get_delta(); double get_delta();
// bool hook(void (*func)(), void* userdata); // deprecated
// void unhook(void (*func)()); // deprecated
void set_focus(); // window attribute using haz catz language for now void set_focus(); // window attribute using haz catz language for now
int has_focus(); int has_focus();
@ -105,8 +98,6 @@ public:
void fps_lock(float fps); void fps_lock(float fps);
void fps_unlock(); void fps_unlock();
void shutdown();
void reset_viewport(); void reset_viewport();
Vector2 dpi(); Vector2 dpi();
@ -140,7 +131,6 @@ protected:
static void window_hints(unsigned flags); static void window_hints(unsigned flags);
GLFWmonitor *find_monitor(int wx, int wy); GLFWmonitor *find_monitor(int wx, int wy);
void resize(); void resize();
static void loop_wrapper(void *loopArg);
void glNewFrame(); void glNewFrame();
double get_scale(); double get_scale();
void create_default_cursors(); void create_default_cursors();
@ -172,7 +162,6 @@ protected:
int _cursorshape = 1; int _cursorshape = 1;
void (*render_callback)(void *loopArg);
Vector2 last_canvas_size; Vector2 last_canvas_size;
int width; int width;