25class DebugDraw2D : public Object {
26 GDCLASS(DebugDraw2D, Object)
28 friend DebugDrawManager;
29 static DebugDraw2D *singleton;
32 DebugDrawManager *root_node =
nullptr;
35 const static char *s_marked_dirty;
37 bool _canvas_need_update =
true;
39 Ref<DebugDraw2DStats> stats_2d;
41 Callable call_canvas_item_draw_cache;
42 uint64_t default_control_id = 0;
44#ifndef DISABLE_DEBUG_RENDERING
45 std::unique_ptr<GroupedText> grouped_text;
48#ifndef DISABLE_DEBUG_RENDERING
49 void _finish_frame_and_update();
50 void _clear_all_internal();
51 void _set_custom_canvas_internal(Control *_canvas);
54 void _on_canvas_item_draw(Control *ci);
55 inline bool _is_enabled_override()
const;
57 void process_start(
double delta);
58 void process_end(
double delta);
59 void physics_process_start(
double delta);
60 void physics_process_end(
double delta);
62#pragma region Exposed Parameter Values
66 bool debug_enabled =
true;
67 uint64_t custom_control_id = 0;
69 Ref<DebugDraw2DConfig> config;
75 static void _bind_methods();
82 void init(DebugDrawManager *root);
91 void mark_canvas_dirty();
94 Node *get_root_node();
96#pragma region Exposed Parameters
98 void set_empty_color(
const Color &_col);
108 bool is_debug_enabled()
const;
125 Control *get_custom_canvas()
const;
128#pragma region Exposed Draw Functions
153 void begin_text_group(String group_title,
int group_priority = 0, Color group_color = Colors::white_smoke,
bool show_title =
true,
int title_size = 14,
int text_size = 12);
169 void set_text(String key, Variant value = Variant(),
int priority = 0, Color color_of_value = Colors::empty_color, real_t duration = -1);
void set_text(String key, Variant value=Variant(), int priority=0, Color color_of_value=Colors::empty_color, real_t duration=-1)
void begin_text_group(String group_title, int group_priority=0, Color group_color=Colors::white_smoke, bool show_title=true, int title_size=14, int text_size=12)