Move gfx callbacks struct to librecomp

This commit is contained in:
Angie 2024-06-19 23:30:05 -04:00
parent e94dc4055b
commit 5960c5625b
5 changed files with 30 additions and 21 deletions

View file

@ -4,9 +4,11 @@
#include <vector> #include <vector>
#include <filesystem> #include <filesystem>
#include "ultramodern/ultramodern.hpp"
#include "gfx.hpp"
#include "recomp.h" #include "recomp.h"
#include "rsp.hpp" #include "rsp.hpp"
#include <ultramodern/ultramodern.hpp>
namespace recomp { namespace recomp {
struct GameEntry { struct GameEntry {
@ -54,7 +56,7 @@ namespace recomp {
const ultramodern::renderer::callbacks_t& renderer_callbacks, const ultramodern::renderer::callbacks_t& renderer_callbacks,
const ultramodern::audio_callbacks_t& audio_callbacks, const ultramodern::audio_callbacks_t& audio_callbacks,
const ultramodern::input::callbacks_t& input_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::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 const ultramodern::threads::callbacks_t& threads_callbacks

View file

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

View file

@ -379,7 +379,7 @@ void recomp::start(
const ultramodern::renderer::callbacks_t& renderer_callbacks, const ultramodern::renderer::callbacks_t& renderer_callbacks,
const ultramodern::audio_callbacks_t& audio_callbacks, const ultramodern::audio_callbacks_t& audio_callbacks,
const ultramodern::input::callbacks_t& input_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::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 const ultramodern::threads::callbacks_t& threads_callbacks
@ -393,11 +393,11 @@ void recomp::start(
.run_task = recomp::rsp::run_task, .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) { if (gfx_callbacks.create_gfx) {
gfx_data = gfx_callbacks.create_gfx(); gfx_data = gfx_callbacks.create_gfx();

View file

@ -108,18 +108,6 @@ struct audio_callbacks_t {
set_frequency_t* set_frequency; 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(); bool is_game_started();
void quit(); void quit();
void join_event_threads(); void join_event_threads();
@ -142,7 +130,6 @@ void set_callbacks(
const renderer::callbacks_t& renderer_callbacks, const renderer::callbacks_t& renderer_callbacks,
const audio_callbacks_t& audio_callbacks, const audio_callbacks_t& audio_callbacks,
const input::callbacks_t& input_callbacks, const input::callbacks_t& input_callbacks,
const gfx_callbacks_t& gfx_callbacks,
const events::callbacks_t& events_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 const threads::callbacks_t& threads_callbacks

View file

@ -6,7 +6,6 @@ void ultramodern::set_callbacks(
const renderer::callbacks_t& renderer_callbacks, const renderer::callbacks_t& renderer_callbacks,
const audio_callbacks_t& audio_callbacks, const audio_callbacks_t& audio_callbacks,
const input::callbacks_t& input_callbacks, const input::callbacks_t& input_callbacks,
const gfx_callbacks_t& gfx_callbacks,
const events::callbacks_t& events_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 const threads::callbacks_t& threads_callbacks
@ -15,7 +14,6 @@ void ultramodern::set_callbacks(
ultramodern::renderer::set_callbacks(renderer_callbacks); ultramodern::renderer::set_callbacks(renderer_callbacks);
ultramodern::set_audio_callbacks(audio_callbacks); ultramodern::set_audio_callbacks(audio_callbacks);
ultramodern::input::set_callbacks(input_callbacks); ultramodern::input::set_callbacks(input_callbacks);
(void)gfx_callbacks; // nothing yet
ultramodern::events::set_callbacks(events_callbacks); ultramodern::events::set_callbacks(events_callbacks);
ultramodern::error_handling::set_callbacks(error_handling_callbacks); ultramodern::error_handling::set_callbacks(error_handling_callbacks);
ultramodern::threads::set_callbacks(threads_callbacks); ultramodern::threads::set_callbacks(threads_callbacks);