Releases: DmitriySalnikov/godot_debug_draw_3d
[4.4.1+] 1.7.2
There were no functional changes.
Windows Defender
Thanks to #98, it was discovered that the previous two releases were being flagged by antiviruses as Malicious/Trojan/Gen:Variant.Lazy. Version 1.7.0 was not flagged by Windows Defender, but the 1.7.1 archive was flagged as the Trojan Trojan:Win32/Suschil!rfn. Because of this, it was impossible to download the previous version via a browser or even through the Asset Library in the Godot editor.
And just yesterday, for some reason, Windows Defender no longer detects viruses when scanning the archive. It can be downloaded and used again, even though on March 6, Microsoft Support had already stated that they would not be removing the virus warning from this archive.
But anyway, if I leave everything as it was, antivirus programs would still detect some kind of threat from the old libraries, so in an attempt to solve the problem, I came to the conclusion that I needed to switch the Windows compiler from MSVC to MinGW + LLVM. At this point, I haven’t detected any further threats with different build settings; the Native API works flawlessly with all demo scenes, and it’s even possible to combine MinGW DD3D with a library linked via the Native API that was built using MSVC.
It's possible that switching to a different compiler might even improve performance:
Changes
- On Windows, the compiler has been replaced with
MinGW + LLVMinstead ofMSVC(as in Godot) #103 - Added automatic uploading of new builds to
VirusTotal. - Added
~*.TMPto.gitignorein the libraries folder. #100
Full Changelog: 1.7.1...1.7.2
🛡 VirusTotal GitHub Action analysis:
[4.4.1+] 1.7.1
Native API Fix
The native API in 1.7.0 was released with a bug that caused crashes when calling draw_box and draw_capsule from managed code (C#) on all platforms except Windows.
This update is intended to fix this bug.
Changes
- Fixed a bug with
Quaternionsthat were passed by reference rather than by value, which caused crashes. #96 -
- There may be a slight decrease in performance for
C#bindings for problematic methods, but it is still much higher than that ofGDScript.
- There may be a slight decrease in performance for
- Fixed a rare error
p_child->data.parent != thisinclear_all. - Added static checking of argument types and return values in the
C APIandC++ bindings. - Added
DebugDrawManager.get_addon_version_strandDebugDrawManager.get_addon_version. - Updated test project for CI. Now it will run
GDScriptandC#test scenes. - Updated description of
scoped_config.
Note
For more information about update 1.7, check out Release 1.7.0
Full Changelog: 1.7.0...1.7.1
[4.4.1+] 1.7.0
Warning
This release contains a bug that can cause crashes when calling draw_box and draw_capsule in C# scripts.
Please upgrade to 1.7.1.
Native API
The main change in this update is the addition of a native API and bindings for it! 🎉
The request to add this feature (#56) was made quite a while ago, but finally everything is ready for release!
Starting with this update, you can use DebugDraw3D from your C++ code by simply including one file addons/debug_draw_3d/native_api/cpp/dd3d_cpp_api.hpp in your project.
#include "dd3d_cpp_api.hpp"
void DD3DTestCppApiNode::_process(double p_delta) {
{
auto test = DebugDraw3DScopeConfig();
// DD3D GDExtension not loaded
if (!test)
return;
}
DebugDraw3D::draw_text(Vector3(1, 1, 1), String::utf8("Hello Привет こんにちは หวัดดี"));
DebugDraw3D::draw_sphere(Vector3(1, 1, 1), 2, Color(1, 1, 0), 0);
}DebugDraw3D has also supported C# for quite some time, but this support was implemented based on GodotObject.Call, which made DD3D even slower than GDScript when used with C#. Now C# uses the same native API as C++, which makes C# several times faster than GDScript. For example, an array of 7,500 boxes is now sent for rendering in 1 ms instead of 4.2 ms. Roughly 4 times faster on my PC, and 15-28 times faster than the old C# bindings!
The API should have remained unchanged, unless I missed something, except that DebugDraw2D.SetText now requires value to be explicitly converted to a string.
So now, instead of:
DebugDraw2D.SetText("FPS", Engine.GetFramesPerSecond());You need to write:
DebugDraw2D.SetText("FPS", Engine.GetFramesPerSecond().ToString());Also, both binding files for C# and C++ now contain the original doxygen documentation, but without images 😅.
Other changes
Core
- Updated
godot-cppto4.4.1 - Added a dedicated
extension_api_double.jsonforgodot-cpp 4.4.1
New
- Added
draw_capsuleanddraw_capsule_ab. #92 - Added a check for the distance between points
aandbin*_abmethods to avoid console spam. - Added drawing of elements if a path of size 1 was passed to
*_path. -
- Now the "path" will be displayed even if only one element is passed. But only in the form of a square or sphere.
Optimizations
- Slightly optimized
draw_lines_canddraw_grid_xf. - Increased the performance of
draw_points_cby ~30+%. -
- In some places, raw memory is now used instead of initialized
C++arrays.
- In some places, raw memory is now used instead of initialized
- Reduced the number of initializations of new arrays.
- Added manual
AABBcalculation for instances. -
- Now it should be more accurate and processed faster.
~33ms->~24ms(27% faster) with 1M boxes.
- Now it should be more accurate and processed faster.
C#
- Added converter from
doxygentoC#documentation. - Added automatic removal of old bindings.
-
- Added notification about deleting old files.
- Warnings about non-cleared objects are hidden in non-verbose mode. This is because
C#clears objects after GDExtensions are unloaded. - Removed
Generate C# bindingsfrom the menu. - Updated
C#demo to support the newSetText.
Various fixes
- Fixed crash when passing a zero-sized array to the
draw_arrow_pathmethod. #93 - Fixed text flickering if it updates in the same frame when its time expires.
- Fixed the position of
Label3Dwhen the root of the world in which it is located changes its position. - Fixed the size of the allocated space for the array for vertices and normals of the sphere.
- Fixed interaction between
scoped.transformand object position fixing fordoublebuilds. -
- Now the correction of the position occurs in one place, instead of each
draw_*method.
- Now the correction of the position occurs in one place, instead of each
Demo
- Fixed the appearance of some demo scene elements when rotating the root node.
- Changed the default brightness.
- Replaced the pixel font.
Docs
- Added
NativeAPI.md. - Updated animations in the docs.
-
- Used the latest version of
ffmpeg. Removed some artifacts.
- Used the latest version of
- Added previews for
set_transform.
Misc
- Redesigned
GeometryGeneratorto support more accurate alignment of volumetric segments. -
- Also added the ability to locally enable or disable bevels on volumetric meshes.
-
Full Changelog: 1.6.0...1.7.0
[4.3+] 1.6.0
Changes
draw_text/Label3Dfixed size flag in scoped config by @sievaxx in #76-
- Now you can use
set_text_fixed_sizeto display text of a specified size regardless of the distance to it.
- Now you can use
- Linux arm64 target by @PointerOffset in #78
-
- This adds precompiled libraries for
arm64Linux.
- This adds precompiled libraries for
- Fix incorrect
ProjectSettingsusage by @Kaleb-Reid in #85 #83 -
- Sorry for the long wait. There should be no more warnings from my add-on.
- Added the ability to disable frustum culling. #79
-
- Use
DebugDraw3D.config.frustum_culling_modefor this.
- Use
- Added
.gitignorefor temporary files in thelibsfolder. #86 - Updated
godot-cppto 4.3 -
- Now the minimum supported version is
Godot 4.3.
- Now the minimum supported version is
- Added generation and registration of godot docs.
-
- At the moment, the documentation only has a link to the corresponding page in the online documentation. And I have no plans to fully migrate all the documentation to the engine itself.
- Renamed demo scenes
- Added the
Aboutwindow. -
addon_versionandaddon_pagewere removed fromProjectSettings.
New Contributors
- @PointerOffset made their first contribution in #78
- @Kaleb-Reid made their first contribution in #85
- @sievaxx made their first contribution in #76
Full Changelog: 1.5.1...1.6.0
[4.2.2+] 1.5.1
Changes
- Added the
transformparameter toscoped_config. #75 -
- Example of recursion using
set_transform(available in the demo scene):
- Example of recursion using
444885424-017f89f6-2504-44b3-951a-a38a6f00c7bc.mp4
- Added the ability to change the C# API generation folder. #69
- Fixed exporting for macOS. #74
- Fixed odd character: c vs с(0x81) by @CommanderChuter. #73
Full Changelog: 1.5.0...1.5.1
[4.2.2+] 1.5.0
Changes
- Added the DebugDraw3D.draw_text method for drawing 3D text. #53



-
- This method uses
Label3Dnodes, so a large number ofdraw_textcalls can lead to a significant decrease in performance.
- This method uses
- Updated
godot-cppto Godot 4.2.2. #65 -
- This also means that Godot versions below 4.2.2 are no longer supported.
- Graphs have been deleted.
-
- I've seen several addons that display more prettier graphs, and besides, my graphs were a bit buggy.
- Fixed crash with a custom
MainLoopor with--check-only#59 - Fixed changing editor's theme. #62
- Fixed some other crashes and slightly improved performance.
- Fixed multithreading support.
-
- Previously, attempts to call almost any method from a user threads in
DebugDraw3Dled to a lot of errors. There shouldn't be any problems with that now.
- Previously, attempts to call almost any method from a user threads in
-
draw_text, which works with nodes, also supports calls from user threads.
threads.mp4
Note
I can't guarantee I'll be releasing major updates in the future, as I haven't actively used Godot for a while, so I'm not interested in improving the addon.
If you are interested in updates you can support me with money [Boosty, USDT, itch.io (no registration required, cards, Paypal)].
Full Changelog: 1.4.5...1.5.0
[4.1.4+] 1.4.5
Changes
In this update, in general, nothing has changed for regular users, except for some internal details.
- Updated
emscriptento3.1.64. - The way releases are distributed has been changed. Now the
Source codeassets will provide the source code. To download the addon, downloaddebug-draw-3d_[version].zip. - Added support for
precision=double#57. For more information, see the documentation.
Full Changelog: 1.4.4...1.4.5
[4.1.4+] 1.4.4
Changes
- Updated
godot-cppto4.1.4andemscriptento3.1.63. - Fixed the library for the Web build of
Godot 4.3#46. Now the Web library is clearly being builtwithandwithoutthread support. - Examples of working with
scoped_confighave been added to the Readme and documentation. - Update C# API File Naming Convention #50. Now the generated file will contain
.generatedsuffix.
Note
The name of the libraries for macOS has been changed (the extension .dylib has been returned), it is advisable to clear the addon folder before updating.
[4.2+] 1.4.3
Changes
- Added the
rendering/disable_fogsetting to change the effect of fog on the debug geometry #48. By default, the fog now has no effect on the geometry. This feature requires Godot 4.2+ - Fixed definition of shader flags. Without this fix, it was impossible to combine
no depthwith other flags.
[4.1.3+] 1.4.2
Changes
- Added the
rendering/render_priorityandrendering/render_modesettings to change the priority and mode of geometry rendering #44. - Static linking of standard libraries on Linux is enabled #45. This is necessary to run
DebugDraw3Don some Linux distributions, such asNixOS. Unfortunately, this has led to an increase in the size of the libraries.





