Debug Draw 3D 1.7.1
Draw 3D debug graphics and 2D overlays with this add-on.
Loading...
Searching...
No Matches
debug_draw_2d.h
1#pragma once
2
3#include "common/colors.h"
4#include "utils/compiler.h"
5#include "utils/native_api_hooks.h"
6
7#include <memory>
8
9GODOT_WARNING_DISABLE()
10#include <godot_cpp/classes/control.hpp>
11#include <godot_cpp/classes/font.hpp>
12GODOT_WARNING_RESTORE()
13using namespace godot;
14
18class GroupedText;
19
26NAPI_CLASS_SINGLETON class DebugDraw2D : public Object {
27 GDCLASS(DebugDraw2D, Object)
28
29 friend DebugDrawManager;
30 static DebugDraw2D *singleton;
31
32private:
33 DebugDrawManager *root_node = nullptr;
34
35 // 2d
36 static constexpr const char *s_marked_dirty = "marked_dirty";
37
38 bool _canvas_need_update = true;
39 Ref<Font> _font;
40 Ref<DebugDraw2DStats> stats_2d;
41
42 Callable call_canvas_item_draw_cache;
43 uint64_t default_control_id = 0;
44
45#ifndef DISABLE_DEBUG_RENDERING
46 std::unique_ptr<GroupedText> grouped_text;
47#endif
48
49#ifndef DISABLE_DEBUG_RENDERING
50 void _finish_frame_and_update();
51 void _clear_all_internal();
52 void _set_custom_canvas_internal(Control *_canvas);
53#endif
54
55 void _on_canvas_item_draw(Control *ci);
56 inline bool _is_enabled_override() const;
57
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);
62
63#pragma region Exposed Parameter Values
64
65 // GENERAL
66
67 bool debug_enabled = true;
68 uint64_t custom_control_id = 0;
69
70 Ref<DebugDraw2DConfig> config;
71
72#pragma endregion // Exposed Parameter Values
73
74protected:
76 static void _bind_methods();
77
78public:
79 DebugDraw2D();
80 ~DebugDraw2D();
81
83 void init(DebugDrawManager *root);
84
88 static DebugDraw2D *get_singleton() {
89 return singleton;
90 }
91
92 void mark_canvas_dirty();
93
95 Node *get_root_node();
96
97#pragma region Exposed Parameters
99 void set_empty_color(const Color &_col);
103 Color get_empty_color() const;
104
108 NAPI void set_debug_enabled(const bool &_state);
109 NAPI bool is_debug_enabled() const;
110
114 NAPI void set_config(Ref<DebugDraw2DConfig> _cfg);
118 NAPI Ref<DebugDraw2DConfig> get_config() const;
119
125 NAPI void set_custom_canvas(godot::Control *_canvas);
126 NAPI godot::Control *get_custom_canvas() const;
127#pragma endregion // Exposed Parametes
128
129#pragma region Exposed Draw Functions
130
136 NAPI Ref<DebugDraw2DStats> get_render_stats();
137
141 NAPI void clear_all();
142
143#pragma region Text
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);
156 // #docs_func begin_text_group
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);
158
164 NAPI void end_text_group();
165
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);
177 // #docs_func set_text
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);
179
183 NAPI void clear_texts();
184#pragma endregion // Text
185#pragma endregion // Exposed Draw Functions
186};
This is a class for storing part of the DebugDraw2D configuration.
Definition config_2d.h:21
You can get basic statistics about 2D rendering from this class.
Definition stats_2d.h:19
NAPI void set_config(Ref< DebugDraw2DConfig > _cfg)
NAPI void set_debug_enabled(const bool &_state)
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)
NAPI Ref< DebugDraw2DStats > get_render_stats()
NAPI void clear_all()
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)
NAPI void end_text_group()
Color get_empty_color() const
NAPI void clear_texts()
NAPI void set_custom_canvas(godot::Control *_canvas)
static DebugDraw2D * get_singleton()
Definition debug_draw_2d.h:88
NAPI Ref< DebugDraw2DConfig > get_config() const
The main singleton class that handles DebugDraw2D and DebugDraw3D.
Definition debug_draw_manager.h:55