Skip to content

Commit 0ded595

Browse files
committed
Improves the SceneDebugger print API.
1 parent 6f7079a commit 0ded595

6 files changed

Lines changed: 27 additions & 21 deletions

godot4/gd_network_interface.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
#include "core/object/object.h"
44
#include "modules/network_synchronizer/core/network_interface.h"
55

6+
#define FROM_GSTRING(str) std::string(str.utf8().ptr())
7+
68
class GdNetworkInterface final : public NS::NetworkInterface,
79
public Object {
810
public:

godot4/gd_scene_synchronizer.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ void GdSceneSynchronizer::debug_only_validate_objects() {
303303

304304
// Removes the invalidated `NodeData`.
305305
if (null_objects.size()) {
306-
SceneSynchronizerDebugger::singleton()->debug_error(&scene_synchronizer.get_network_interface(), "At least one node has been removed from the tree without the SceneSynchronizer noticing. This shouldn't happen.");
306+
SceneSynchronizerDebugger::singleton()->print(NS::ERROR, "At least one node has been removed from the tree without the SceneSynchronizer noticing. This shouldn't happen.", scene_synchronizer.get_network_interface().get_owner_name());
307307
for (uint32_t i = 0; i < null_objects.size(); i += 1) {
308308
scene_synchronizer.on_app_object_removed(null_objects[i]);
309309
}
@@ -340,7 +340,7 @@ void GdSceneSynchronizer::setup_synchronizer_for(NS::ObjectHandle p_app_object_h
340340
if (node->has_method("_setup_synchronizer")) {
341341
node->call("_setup_synchronizer", p_id.id);
342342
} else {
343-
SceneSynchronizerDebugger::singleton()->debug_error(nullptr, "[ERROR] The registered node `" + node->get_path() + "` doesn't override the method `_setup_synchronizer`, which is called by the SceneSynchronizer to know the node sync properties. Pleaes implement it.");
343+
SceneSynchronizerDebugger::singleton()->print(NS::ERROR, "The registered node `" + FROM_GSTRING(String(node->get_path())) + "` doesn't override the method `_setup_synchronizer`, which is called by the SceneSynchronizer to know the node sync properties. Pleaes implement it.");
344344
}
345345
}
346346

networked_controller.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -932,13 +932,13 @@ std::int8_t ServerController::compute_client_tick_rate_distance_to_optimal() {
932932
const int current_frame_delay = consecutive_inputs;
933933
if (debug) {
934934
SceneSynchronizerDebugger::singleton()->print(
935+
INFO,
935936
"Worst receival time (ms): `" + std::to_string(worst_receival_time_ms) +
936937
"` Optimal frame delay: `" + std::to_string(optimal_frame_delay) +
937938
"` Current frame delay: `" + std::to_string(current_frame_delay) +
938939
"` Distance to optimal: `" + std::to_string(distance_to_optimal) +
939940
"`",
940941
"NetController",
941-
INFO,
942942
true);
943943
}
944944
node->event_client_speedup_adjusted.broadcast(worst_receival_time_ms, optimal_frame_delay, current_frame_delay, distance_to_optimal);

scene_synchronizer.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1096,13 +1096,13 @@ void SceneSynchronizerBase::rpc_notify_fps_acceleration(const Vector<uint8_t> &p
10961096
const bool debug = ProjectSettings::get_singleton()->get_setting("NetworkSynchronizer/debug_server_speedup");
10971097
if (debug) {
10981098
SceneSynchronizerDebugger::singleton()->print(
1099+
INFO,
10991100
std::string() +
11001101
"Client received speedup." +
11011102
" Frames to produce: `" + std::to_string(additional_frames_to_produce) + "`" +
11021103
" Acceleration fps: `" + std::to_string(client_sync->acceleration_fps_speed) + "`" +
11031104
" Acceleration time: `" + std::to_string(client_sync->acceleration_fps_timer) + "`",
11041105
get_network_interface().get_owner_name(),
1105-
INFO,
11061106
true);
11071107
}
11081108
#endif
@@ -2617,9 +2617,9 @@ void ClientSynchronizer::process_received_server_state() {
26172617
if (need_rewind) {
26182618
SceneSynchronizerDebugger::singleton()->notify_event(SceneSynchronizerDebugger::FrameEvent::CLIENT_DESYNC_DETECTED);
26192619
SceneSynchronizerDebugger::singleton()->print(
2620+
__INTERNAL,
26202621
std::string("Recover input: ") + std::string(last_checked_input) + " - Last input: " + std::string(player_controller->get_stored_frame_index(-1)),
2621-
scene_synchronizer->get_network_interface().get_owner_name(),
2622-
__INTERNAL);
2622+
scene_synchronizer->get_network_interface().get_owner_name());
26232623

26242624
// Sync.
26252625
__pcr__sync__rewind();
@@ -2778,9 +2778,9 @@ void ClientSynchronizer::__pcr__rewind(
27782778
#ifdef DEBUG_ENABLED
27792779
has_next = p_local_controller->has_another_instant_to_process_after(i);
27802780
SceneSynchronizerDebugger::singleton()->print(
2781+
INFO,
27812782
"Rewind, processed controller: " + p_local_controller_node->object_name + " Frame: " + std::string(frame_id_to_process),
27822783
scene_synchronizer->get_network_interface().get_owner_name(),
2783-
INFO,
27842784
scene_synchronizer->debug_rewindings_enabled);
27852785
#endif
27862786

scene_synchronizer_debugger.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -522,9 +522,9 @@ void SceneSynchronizerDebugger::databuffer_operation_begin_record(NS::NetworkInt
522522
frame_dump_data_buffer_dump_mode = p_mode;
523523

524524
if (frame_dump_data_buffer_dump_mode == DataBufferDumpMode::WRITE) {
525-
print("[WRITE] DataBuffer start write.", frame_dump__data_buffer_name, NS::PrintMessageType::__INTERNAL);
525+
print(NS::PrintMessageType::__INTERNAL, "[WRITE] DataBuffer start write.", frame_dump__data_buffer_name);
526526
} else {
527-
print("[READ] DataBuffer start read.", frame_dump__data_buffer_name, NS::PrintMessageType::__INTERNAL);
527+
print(NS::PrintMessageType::__INTERNAL, "[READ] DataBuffer start read.", frame_dump__data_buffer_name);
528528
}
529529
#endif
530530
}
@@ -536,9 +536,9 @@ void SceneSynchronizerDebugger::databuffer_operation_end_record() {
536536
}
537537

538538
if (frame_dump_data_buffer_dump_mode == DataBufferDumpMode::WRITE) {
539-
print("[WRITE] end.", frame_dump__data_buffer_name, NS::PrintMessageType::__INTERNAL);
539+
print(NS::PrintMessageType::__INTERNAL, "[WRITE] end.", frame_dump__data_buffer_name);
540540
} else {
541-
print("[READ] end.", frame_dump__data_buffer_name, NS::PrintMessageType::__INTERNAL);
541+
print(NS::PrintMessageType::__INTERNAL, "[READ] end.", frame_dump__data_buffer_name);
542542
}
543543

544544
frame_dump_data_buffer_dump_mode = DataBufferDumpMode::NONE;
@@ -560,7 +560,7 @@ void SceneSynchronizerDebugger::databuffer_write(uint32_t p_data_type, uint32_t
560560

561561
const std::string operation = "[WRITE] [" + compression_level_to_string(p_compression_level) + "] [" + data_type_to_string(p_data_type) + "] [new offset: " + std::to_string(p_new_bit_offset) + "] " + val_string;
562562

563-
print(operation, frame_dump__data_buffer_name, NS::PrintMessageType::__INTERNAL);
563+
print(NS::PrintMessageType::__INTERNAL, operation, frame_dump__data_buffer_name);
564564
#endif
565565
}
566566

@@ -578,7 +578,7 @@ void SceneSynchronizerDebugger::databuffer_read(uint32_t p_data_type, uint32_t p
578578

579579
const std::string operation = "[READ] [" + compression_level_to_string(p_compression_level) + "] [" + data_type_to_string(p_data_type) + "] [new offset: " + std::to_string(p_new_bit_offset) + "] " + val_string;
580580

581-
print(operation, frame_dump__data_buffer_name, NS::PrintMessageType::__INTERNAL);
581+
print(NS::PrintMessageType::__INTERNAL, operation, frame_dump__data_buffer_name);
582582
#endif
583583
}
584584

@@ -605,31 +605,31 @@ void SceneSynchronizerDebugger::notify_are_inputs_different_result(
605605
void SceneSynchronizerDebugger::debug_print(NS::NetworkInterface *p_network_interface, const String &p_message, bool p_silent) {
606606
#ifdef DEBUG_ENABLED
607607
print(
608+
NS::PrintMessageType::INFO,
608609
p_message.utf8().ptr(),
609-
p_network_interface ? p_network_interface->get_owner_name() : "GLOBAL",
610-
NS::PrintMessageType::INFO);
610+
p_network_interface ? p_network_interface->get_owner_name() : "GLOBAL");
611611
#endif
612612
}
613613

614614
void SceneSynchronizerDebugger::debug_warning(NS::NetworkInterface *p_network_interface, const String &p_message, bool p_silent) {
615615
#ifdef DEBUG_ENABLED
616616
print(
617+
NS::PrintMessageType::WARNING,
617618
p_message.utf8().ptr(),
618-
p_network_interface ? p_network_interface->get_owner_name() : "GLOBAL",
619-
NS::PrintMessageType::WARNING);
619+
p_network_interface ? p_network_interface->get_owner_name() : "GLOBAL");
620620
#endif
621621
}
622622

623623
void SceneSynchronizerDebugger::debug_error(NS::NetworkInterface *p_network_interface, const String &p_message, bool p_silent) {
624624
#ifdef DEBUG_ENABLED
625625
print(
626+
NS::PrintMessageType::ERROR,
626627
p_message.utf8().ptr(),
627-
p_network_interface ? p_network_interface->get_owner_name() : "GLOBAL",
628-
NS::PrintMessageType::ERROR);
628+
p_network_interface ? p_network_interface->get_owner_name() : "GLOBAL");
629629
#endif
630630
}
631631

632-
void SceneSynchronizerDebugger::print(const std::string &p_message, const std::string &p_object_name, NS::PrintMessageType p_level, bool p_force_print_to_log) {
632+
void SceneSynchronizerDebugger::print(NS::PrintMessageType p_level, const std::string &p_message, const std::string &p_object_name, bool p_force_print_to_log) {
633633
#ifdef DEBUG_ENABLED
634634

635635
if (NS::PrintMessageType::WARNING & p_level) {

scene_synchronizer_debugger.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,11 @@ class SceneSynchronizerDebugger : public Node {
174174
void debug_warning(NS::NetworkInterface *p_network_interface, const String &p_message, bool p_silent = false);
175175
void debug_error(NS::NetworkInterface *p_network_interface, const String &p_message, bool p_silent = false);
176176

177-
void print(const std::string &p_message, const std::string &p_object_name = "GLOBAL", NS::PrintMessageType p_level = NS::PrintMessageType::INFO, bool p_force_print_to_log = false);
177+
void print(
178+
NS::PrintMessageType p_level,
179+
const std::string &p_message,
180+
const std::string &p_object_name = "GLOBAL",
181+
bool p_force_print_to_log = false);
178182

179183
void notify_event(FrameEvent p_event);
180184

0 commit comments

Comments
 (0)