Comments explaining which callbacks are required

This commit is contained in:
Angie 2024-06-04 17:44:44 -04:00 committed by angie
parent 1cf5157206
commit 0277b6540e
4 changed files with 20 additions and 11 deletions

View file

@ -41,6 +41,14 @@ namespace recomp {
void set_rom_contents(std::vector<uint8_t>&& new_rom); void set_rom_contents(std::vector<uint8_t>&& new_rom);
void do_rom_read(uint8_t* rdram, gpr ram_address, uint32_t physical_addr, size_t num_bytes); void do_rom_read(uint8_t* rdram, gpr ram_address, uint32_t physical_addr, size_t num_bytes);
void do_rom_pio(uint8_t* rdram, gpr ram_address, uint32_t physical_addr); void do_rom_pio(uint8_t* rdram, gpr ram_address, uint32_t physical_addr);
/**
* The following arguments contain mandatory callbacks that need to be registered (i.e., can't be `nullptr`):
* - `rsp_callbacks`
* - `renderer_callbacks`
*
* It must be called only once and it must be called before `ultramodern::preinit`.
*/
void start( void start(
ultramodern::renderer::WindowHandle window_handle, ultramodern::renderer::WindowHandle window_handle,
const recomp::rsp::callbacks_t& rsp_callbacks, const recomp::rsp::callbacks_t& rsp_callbacks,
@ -51,6 +59,7 @@ namespace recomp {
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_
); );
void start_game(const std::u8string& game_id); void start_game(const std::u8string& game_id);
std::u8string current_game_id(); std::u8string current_game_id();
} }

View file

@ -5,10 +5,6 @@ set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED True) set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_CXX_EXTENSIONS OFF)
# Warnings
# TODO: uncoment this when we fix the warnings
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
add_library(ultramodern STATIC add_library(ultramodern STATIC
"${CMAKE_CURRENT_SOURCE_DIR}/src/audio.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/src/audio.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/src/error_handling.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/src/error_handling.cpp"

View file

@ -131,6 +131,10 @@ void set_audio_callbacks(const audio_callbacks_t& callbacks);
/** /**
* Register all the callbacks used by `ultramodern`, most of them being optional. * Register all the callbacks used by `ultramodern`, most of them being optional.
* *
* The following arguments contain mandatory callbacks that need to be registered (i.e., can't be `nullptr`):
* - `rsp_callbacks`
* - `renderer_callbacks`
*
* It must be called only once and it must be called before `ultramodern::preinit`. * It must be called only once and it must be called before `ultramodern::preinit`.
*/ */
void set_callbacks( void set_callbacks(

View file

@ -230,13 +230,13 @@ uint32_t ultramodern::get_target_framerate(uint32_t original) {
auto& config = ultramodern::renderer::get_graphics_config(); auto& config = ultramodern::renderer::get_graphics_config();
switch (config.rr_option) { switch (config.rr_option) {
default: case ultramodern::renderer::RefreshRate::Original:
case ultramodern::renderer::RefreshRate::Original: default:
return original; return original;
case ultramodern::renderer::RefreshRate::Manual: case ultramodern::renderer::RefreshRate::Manual:
return config.rr_manual_value; return config.rr_manual_value;
case ultramodern::renderer::RefreshRate::Display: case ultramodern::renderer::RefreshRate::Display:
return display_refresh_rate.load(); return display_refresh_rate.load();
} }
} }