diff --git a/librecomp/include/librecomp/game.hpp b/librecomp/include/librecomp/game.hpp index 0e108a9..4c2b304 100644 --- a/librecomp/include/librecomp/game.hpp +++ b/librecomp/include/librecomp/game.hpp @@ -56,7 +56,8 @@ namespace recomp { const ultramodern::input::callbacks_t& input_callbacks, const ultramodern::gfx_callbacks_t& gfx_callbacks, const ultramodern::events::callbacks_t& events_callbacks, - const ultramodern::error_handling::callbacks_t& error_handling_callbacks_ + const ultramodern::error_handling::callbacks_t& error_handling_callbacks, + const ultramodern::threads::callbacks_t& threads_callbacks ); void start_game(const std::u8string& game_id); diff --git a/librecomp/src/recomp.cpp b/librecomp/src/recomp.cpp index ce50a81..75f8a05 100644 --- a/librecomp/src/recomp.cpp +++ b/librecomp/src/recomp.cpp @@ -381,7 +381,8 @@ void recomp::start( const ultramodern::input::callbacks_t& input_callbacks, const ultramodern::gfx_callbacks_t& gfx_callbacks_, const ultramodern::events::callbacks_t& events_callbacks, - const ultramodern::error_handling::callbacks_t& error_handling_callbacks_ + const ultramodern::error_handling::callbacks_t& error_handling_callbacks, + const ultramodern::threads::callbacks_t& threads_callbacks ) { recomp::check_all_stored_roms(); @@ -392,7 +393,7 @@ void recomp::start( .run_task = recomp::rsp::run_task, }; - ultramodern::set_callbacks(ultramodern_rsp_callbacks, renderer_callbacks, audio_callbacks, input_callbacks, gfx_callbacks_, events_callbacks, error_handling_callbacks_); + ultramodern::set_callbacks(ultramodern_rsp_callbacks, renderer_callbacks, audio_callbacks, input_callbacks, gfx_callbacks_, events_callbacks, error_handling_callbacks, threads_callbacks); ultramodern::gfx_callbacks_t gfx_callbacks = gfx_callbacks_; diff --git a/ultramodern/include/ultramodern/ultramodern.hpp b/ultramodern/include/ultramodern/ultramodern.hpp index 8dbccdc..b39b77e 100644 --- a/ultramodern/include/ultramodern/ultramodern.hpp +++ b/ultramodern/include/ultramodern/ultramodern.hpp @@ -9,13 +9,15 @@ #undef MOODYCAMEL_DELETE_FUNCTION #define MOODYCAMEL_DELETE_FUNCTION = delete #include "lightweightsemaphore.h" + #include "ultra64.h" #include "ultramodern/error_handling.hpp" #include "ultramodern/events.hpp" #include "ultramodern/input.hpp" -#include "ultramodern/rsp.hpp" #include "ultramodern/renderer_context.hpp" +#include "ultramodern/rsp.hpp" +#include "ultramodern/threads.hpp" struct UltraThreadContext { std::thread host_thread; @@ -144,7 +146,8 @@ void set_callbacks( const input::callbacks_t& input_callbacks, const gfx_callbacks_t& gfx_callbacks, const events::callbacks_t& events_callbacks, - const error_handling::callbacks_t& error_handling_callbacks + const error_handling::callbacks_t& error_handling_callbacks, + const threads::callbacks_t& threads_callbacks ); } // namespace ultramodern diff --git a/ultramodern/src/ultrainit.cpp b/ultramodern/src/ultrainit.cpp index fe11115..bdb04bb 100644 --- a/ultramodern/src/ultrainit.cpp +++ b/ultramodern/src/ultrainit.cpp @@ -8,7 +8,8 @@ void ultramodern::set_callbacks( const input::callbacks_t& input_callbacks, const gfx_callbacks_t& gfx_callbacks, const events::callbacks_t& thread_callbacks, - const error_handling::callbacks_t& error_handling_callbacks + const error_handling::callbacks_t& error_handling_callbacks, + const threads::callbacks_t& threads_callbacks ) { ultramodern::rsp::set_callbacks(rsp_callbacks); ultramodern::renderer::set_callbacks(renderer_callbacks); @@ -17,6 +18,7 @@ void ultramodern::set_callbacks( (void)gfx_callbacks; // nothing yet ultramodern::events::set_callbacks(thread_callbacks); ultramodern::error_handling::set_callbacks(error_handling_callbacks); + ultramodern::threads::set_callbacks(threads_callbacks); } void ultramodern::preinit(RDRAM_ARG ultramodern::renderer::WindowHandle window_handle) {