26NAPI_CLASS_SINGLETON class DebugDraw2D : public Object {
27 GDCLASS(DebugDraw2D, Object)
29 friend DebugDrawManager;
30 static DebugDraw2D *singleton;
33 DebugDrawManager *root_node =
nullptr;
36 static constexpr const char *s_marked_dirty =
"marked_dirty";
38 bool _canvas_need_update =
true;
40 Ref<DebugDraw2DStats> stats_2d;
42 Callable call_canvas_item_draw_cache;
43 uint64_t default_control_id = 0;
45#ifndef DISABLE_DEBUG_RENDERING
46 std::unique_ptr<GroupedText> grouped_text;
49#ifndef DISABLE_DEBUG_RENDERING
50 void _finish_frame_and_update();
51 void _clear_all_internal();
52 void _set_custom_canvas_internal(Control *_canvas);
55 void _on_canvas_item_draw(Control *ci);
56 inline bool _is_enabled_override()
const;
58 void process_start(
double delta);
59 void process_end(
double delta);
60 void physics_process_start(
double delta);
61 void physics_process_end(
double delta);
63#pragma region Exposed Parameter Values
67 bool debug_enabled =
true;
68 uint64_t custom_control_id = 0;
70 Ref<DebugDraw2DConfig> config;
76 static void _bind_methods();
83 void init(DebugDrawManager *root);
92 void mark_canvas_dirty();
95 Node *get_root_node();
97#pragma region Exposed Parameters
99 void set_empty_color(
const Color &_col);
109 NAPI
bool is_debug_enabled()
const;
126 NAPI godot::Control *get_custom_canvas()
const;
129#pragma region Exposed Draw Functions
154 void begin_text_group(godot::String group_title,
int group_priority = 0, godot::Color group_color = Colors::white_smoke,
bool show_title =
true,
int title_size = -1,
int text_size = -1);
157 NAPI
void begin_text_group_c(
const char *group_title_string,
int group_priority = 0, godot::Color group_color = Colors::white_smoke,
bool show_title =
true,
int title_size = -1,
int text_size = -1);
175 void set_text(godot::String key, godot::Variant value = godot::Variant(),
int priority = 0, godot::Color color_of_value = Colors::empty_color, real_t duration = -1);
178 NAPI
void set_text_c(
const char *key_string,
const char *value_string =
"",
int priority = 0, godot::Color color_of_value = Colors::empty_color, real_t duration = -1);
void begin_text_group(godot::String group_title, int group_priority=0, godot::Color group_color=Colors::white_smoke, bool show_title=true, int title_size=-1, int text_size=-1)
void set_text(godot::String key, godot::Variant value=godot::Variant(), int priority=0, godot::Color color_of_value=Colors::empty_color, real_t duration=-1)