diff --git a/platform/windows/SCsub b/platform/windows/SCsub
index 30df9df8098..eaa5ceff883 100644
--- a/platform/windows/SCsub
+++ b/platform/windows/SCsub
@@ -60,6 +60,9 @@ sources += res_obj
prog = env.add_program("#bin/godot", sources, PROGSUFFIX=env["PROGSUFFIX"])
arrange_program_clean(prog)
+if env.msvc:
+ env.Depends(prog, "godot.natvis")
+
# Build console wrapper app.
if env["windows_subsystem"] == "gui":
env_wrap = env.Clone()
diff --git a/platform/windows/godot.natvis b/platform/windows/godot.natvis
index fc34ad3cb3c..e3a535580ff 100644
--- a/platform/windows/godot.natvis
+++ b/platform/windows/godot.natvis
@@ -30,16 +30,6 @@
-
-
- - _p->array._cowdata._ptr ? (((const unsigned long long *)(_p->array._cowdata._ptr))[-1]) : 0
-
- _p->array._cowdata._ptr ? (((const unsigned long long *)(_p->array._cowdata._ptr))[-1]) : 0
- (Variant *) _p->array._cowdata._ptr
-
-
-
-
- _p && _p->variant_map.head_element ? _p->variant_map.num_elements : 0
@@ -153,7 +143,7 @@
{data.value}
- - ($T1 *) &data.key
+ - ($T1 *) &data.key
- ($T2 *) &data.value
@@ -285,39 +275,164 @@
- {{{x},{y}}}
+ ({x,g}, {y,g})
- - x
- - y
+ - x
+ - y
+
+
+
+ ({x}, {y})
+
+ - x
+ - y
- {{{x},{y},{z}}}
+ ({x,g}, {y,g}, {z,g})
- - x
- - y
- - z
+ - x
+ - y
+ - z
+
+
+
+ ({x}, {y}, {z})
+
+ - x
+ - y
+ - z
+
+
+
+
+ ({x,g}, {y,g}, {z,g}, {w,g})
+
+ - x
+ - y
+ - z
+ - w
+
+
+
+ ({x}, {y}, {z}, {w})
+
+ - x
+ - y
+ - z
+ - w
- Quaternion {{{x},{y},{z},{w}}}
+ ({x,g}, {y,g}, {z,g}, {w,g})
- - x
- - y
- - z
- - w
+ - x
+ - y
+ - z
+ - w
- Color {{{r},{g},{b},{a}}}
+ ({r,g}, {g,g}, {b,g}, {a,g})
- - r
- - g
- - b
- - a
+ - r
+ - g
+ - b
+ - a
+
+
+
+
+ [P: {position}, S: {size}]
+
+ - position,nr
+ - size,nr
+
+
+
+ [P: {position}, S: {size}]
+
+ - position,nr
+ - size,nr
+
+
+
+
+ [P: {position}, S: {size}]
+
+ - position,nr
+ - size,nr
+
+
+
+
+ [N: {normal}, D: {d,g}]
+
+ - normal,nr
+ - d
+
+
+
+
+ [X: {rows[0]}, Y: {rows[1]}, Z: {rows[2]}]
+
+ - rows[0],nr
+ - rows[1],nr
+ - rows[2],nr
+
+
+
+
+ [X: {columns[0]}, Y: {columns[1]}, O: {columns[2]}]
+
+ - columns[0],nr
+ - columns[1],nr
+ - columns[2],nr
+
+
+
+
+
+ [X: ({basis.rows[0].x,g}, {basis.rows[1].x,g}, {basis.rows[2].x,g}), Y: ({basis.rows[0].y,g}, {basis.rows[1].y,g}, {basis.rows[2].y,g}), Z: ({basis.rows[0].z,g}, {basis.rows[1].z,g}, {basis.rows[2].z,g}), O: {origin}]
+
+
+ ({basis.rows[0].x,g}, {basis.rows[1].x,g}, {basis.rows[2].x,g})
+
+ - basis.rows[0].x
+ - basis.rows[1].x
+ - basis.rows[2].x
+
+
+
+ ({basis.rows[0].y,g}, {basis.rows[1].y,g}, {basis.rows[2].y,g})
+
+ - basis.rows[0].y
+ - basis.rows[1].y
+ - basis.rows[2].y
+
+
+
+ ({basis.rows[0].z,g}, {basis.rows[1].z,g}, {basis.rows[2].z,g})
+
+ - basis.rows[0].z
+ - basis.rows[1].z
+ - basis.rows[2].z
+
+
+ - origin,nr
+
+
+
+
+ [X: {columns[0]}, Y: {columns[1]}, Z: {columns[2]}, W: {columns[3]}]
+
+ - columns[0],nr
+ - columns[1],nr
+ - columns[2],nr
+ - columns[3],nr