| 385 | void (*_sk_run_data_app_shutdown)(void *); |
| 386 | void *_sk_run_data_shutdown_data; |
| 387 | void sk_run_data(void (*app_step)(void* step_data), void* step_data, void (*app_shutdown)(void *shutdown_data), void *shutdown_data) { |
| 388 | _sk_run_data_app_step = app_step; |
| 389 | _sk_run_data_step_data = step_data; |
| 390 | _sk_run_data_app_shutdown = app_shutdown; |
| 391 | _sk_run_data_shutdown_data = shutdown_data; |
| 392 | |
| 393 | local.disallow_user_shutdown = true; |
| 394 | |
| 395 | #if defined(SK_OS_WEB) |
| 396 | sk_first_step(); |
| 397 | web_start_main_loop( |
| 398 | []() { if (_sk_run_data_app_step ) _sk_run_data_app_step (_sk_run_data_step_data ); }, |
| 399 | []() { if (_sk_run_data_app_shutdown) _sk_run_data_app_shutdown(_sk_run_data_shutdown_data); }); |
| 400 | #else |
| 401 | while (sk_step( |
| 402 | []() { if (_sk_run_data_app_step ) _sk_run_data_app_step (_sk_run_data_step_data ); })); |
| 403 | |
| 404 | if (_sk_run_data_app_shutdown) |
| 405 | _sk_run_data_app_shutdown(_sk_run_data_shutdown_data); |
| 406 | |
| 407 | local.disallow_user_shutdown = false; |
| 408 | sk_shutdown(); |
| 409 | #endif |
| 410 | } |
| 411 | |
| 412 | /////////////////////////////////////////// |
| 413 |
nothing calls this directly
no test coverage detected