diff --git a/librecomp/include/librecomp/game.hpp b/librecomp/include/librecomp/game.hpp index 4c2b304..01d753f 100644 --- a/librecomp/include/librecomp/game.hpp +++ b/librecomp/include/librecomp/game.hpp @@ -4,9 +4,11 @@ #include #include +#include "ultramodern/ultramodern.hpp" + +#include "gfx.hpp" #include "recomp.h" #include "rsp.hpp" -#include namespace recomp { struct GameEntry { @@ -54,7 +56,7 @@ namespace recomp { const ultramodern::renderer::callbacks_t& renderer_callbacks, const ultramodern::audio_callbacks_t& audio_callbacks, const ultramodern::input::callbacks_t& input_callbacks, - const ultramodern::gfx_callbacks_t& gfx_callbacks, + const recomp::gfx::callbacks_t& gfx_callbacks, const ultramodern::events::callbacks_t& events_callbacks, const ultramodern::error_handling::callbacks_t& error_handling_callbacks, const ultramodern::threads::callbacks_t& threads_callbacks diff --git a/librecomp/include/librecomp/gfx.hpp b/librecomp/include/librecomp/gfx.hpp new file mode 100644 index 0000000..34281d8 --- /dev/null +++ b/librecomp/include/librecomp/gfx.hpp @@ -0,0 +1,22 @@ +#ifndef __LIBRECOMP_GFX_HPP__ +#define __LIBRECOMP_GFX_HPP__ + +#include "ultramodern/renderer_context.hpp" + +namespace recomp { + namespace gfx { + struct callbacks_t { + using gfx_data_t = void*; + using create_gfx_t = gfx_data_t(); + using create_window_t = ultramodern::renderer::WindowHandle(gfx_data_t); + using update_gfx_t = void(gfx_data_t); + + create_gfx_t* create_gfx; + create_window_t* create_window; + update_gfx_t* update_gfx; + }; + } + +} + +#endif diff --git a/librecomp/src/recomp.cpp b/librecomp/src/recomp.cpp index 75f8a05..40f1dfe 100644 --- a/librecomp/src/recomp.cpp +++ b/librecomp/src/recomp.cpp @@ -379,7 +379,7 @@ void recomp::start( const ultramodern::renderer::callbacks_t& renderer_callbacks, const ultramodern::audio_callbacks_t& audio_callbacks, const ultramodern::input::callbacks_t& input_callbacks, - const ultramodern::gfx_callbacks_t& gfx_callbacks_, + const recomp::gfx::callbacks_t& gfx_callbacks_, const ultramodern::events::callbacks_t& events_callbacks, const ultramodern::error_handling::callbacks_t& error_handling_callbacks, const ultramodern::threads::callbacks_t& threads_callbacks @@ -393,11 +393,11 @@ 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, threads_callbacks); + ultramodern::set_callbacks(ultramodern_rsp_callbacks, renderer_callbacks, audio_callbacks, input_callbacks, events_callbacks, error_handling_callbacks, threads_callbacks); - ultramodern::gfx_callbacks_t gfx_callbacks = gfx_callbacks_; + recomp::gfx::callbacks_t gfx_callbacks = gfx_callbacks_; - ultramodern::gfx_callbacks_t::gfx_data_t gfx_data{}; + recomp::gfx::callbacks_t::gfx_data_t gfx_data{}; if (gfx_callbacks.create_gfx) { gfx_data = gfx_callbacks.create_gfx(); diff --git a/ultramodern/include/ultramodern/ultramodern.hpp b/ultramodern/include/ultramodern/ultramodern.hpp index b144eaa..0c9ebbd 100644 --- a/ultramodern/include/ultramodern/ultramodern.hpp +++ b/ultramodern/include/ultramodern/ultramodern.hpp @@ -108,18 +108,6 @@ struct audio_callbacks_t { set_frequency_t* set_frequency; }; -// TODO: Most of the members of this struct are not used by ultramodern. Should we move them to librecomp instead? -struct gfx_callbacks_t { - using gfx_data_t = void*; - using create_gfx_t = gfx_data_t(); - using create_window_t = renderer::WindowHandle(gfx_data_t); - using update_gfx_t = void(gfx_data_t); - - create_gfx_t* create_gfx; - create_window_t* create_window; - update_gfx_t* update_gfx; -}; - bool is_game_started(); void quit(); void join_event_threads(); @@ -142,7 +130,6 @@ void set_callbacks( const renderer::callbacks_t& renderer_callbacks, const audio_callbacks_t& audio_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 threads::callbacks_t& threads_callbacks diff --git a/ultramodern/src/ultrainit.cpp b/ultramodern/src/ultrainit.cpp index ca1556c..f092e42 100644 --- a/ultramodern/src/ultrainit.cpp +++ b/ultramodern/src/ultrainit.cpp @@ -6,7 +6,6 @@ void ultramodern::set_callbacks( const renderer::callbacks_t& renderer_callbacks, const audio_callbacks_t& audio_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 threads::callbacks_t& threads_callbacks @@ -15,7 +14,6 @@ void ultramodern::set_callbacks( ultramodern::renderer::set_callbacks(renderer_callbacks); ultramodern::set_audio_callbacks(audio_callbacks); ultramodern::input::set_callbacks(input_callbacks); - (void)gfx_callbacks; // nothing yet ultramodern::events::set_callbacks(events_callbacks); ultramodern::error_handling::set_callbacks(error_handling_callbacks); ultramodern::threads::set_callbacks(threads_callbacks);