diff --git a/natvis/godot-cpp.natvis b/natvis/godot-cpp.natvis index 380327f99..34ebdf971 100644 --- a/natvis/godot-cpp.natvis +++ b/natvis/godot-cpp.natvis @@ -23,15 +23,25 @@ fields as 8-byte slots: [0]=refcount, [1]=unknown, [2]=_cowdata._ptr, [3]=read_only, ... Index [2] reaches _cowdata._ptr at offset +16 (verified by LLDB memory dump). Cast _ptr to unsigned long long* so [-1] reads the CowData element count 8 bytes before data. --> + + - {{empty}} - {{size={_cow()[-1]}}} + + {{empty}} + {{size={_size()}}} - _cow()[-1] - - _cow()[-1] + 0,d + _size() + + _size() (godot::Variant*)_cow() @@ -106,30 +116,425 @@ {{type={_type()}}} _type() - *(godot::String*)(opaque+8) - *(godot::Vector2*)(opaque+8) - *(godot::Vector2i*)(opaque+8) - *(godot::Rect2*)(opaque+8) - *(godot::Rect2i*)(opaque+8) - *(godot::Vector3*)(opaque+8) - *(godot::Vector3i*)(opaque+8) - **(godot::Transform2D**)(opaque+8) - *(godot::Vector4*)(opaque+8) - *(godot::Vector4i*)(opaque+8) - *(godot::Plane*)(opaque+8) - *(godot::Quaternion*)(opaque+8) - **(godot::AABB**)(opaque+8) - **(godot::Basis**)(opaque+8) - **(godot::Transform3D**)(opaque+8) - **(godot::Projection**)(opaque+8) - *(godot::Color*)(opaque+8) - *(godot::StringName*)(opaque+8) - *(godot::NodePath*)(opaque+8) - *(godot::RID*)(opaque+8) - *(godot::Callable*)(opaque+8) - *(godot::Signal*)(opaque+8) - *(godot::Dictionary*)(opaque+8) - *(godot::Array*)(opaque+8) + *reinterpret_cast<bool*>(opaque+8) + *reinterpret_cast<long long*>(opaque+8) + *reinterpret_cast<double*>(opaque+8) + *(godot::String*)(opaque+8) + *(godot::Vector2*)(opaque+8) + *(godot::Vector2i*)(opaque+8) + *(godot::Rect2*)(opaque+8) + *(godot::Rect2i*)(opaque+8) + *(godot::Vector3*)(opaque+8) + *(godot::Vector3i*)(opaque+8) + **(godot::Transform2D**)(opaque+8) + *(godot::Vector4*)(opaque+8) + *(godot::Vector4i*)(opaque+8) + *(godot::Plane*)(opaque+8) + *(godot::Quaternion*)(opaque+8) + **(godot::AABB**)(opaque+8) + **(godot::Basis**)(opaque+8) + **(godot::Transform3D**)(opaque+8) + **(godot::Projection**)(opaque+8) + *(godot::Color*)(opaque+8) + *(godot::StringName*)(opaque+8) + *(godot::NodePath*)(opaque+8) + *(godot::RID*)(opaque+8) + *(godot::Callable*)(opaque+8) + *(godot::Signal*)(opaque+8) + *(godot::Dictionary*)(opaque+8) + *(godot::Array*)(opaque+8) + + + + + + + + + {{empty}} + {{size={_size()}}} + + 0,d + _size() + + _size() + (unsigned char*)_cow() + + + + + + + + {{empty}} + {{size={_size()}}} + + 0,d + _size() + + _size() + (int*)_cow() + + + + + + + + {{empty}} + {{size={_size()}}} + + 0,d + _size() + + _size() + (long long*)_cow() + + + + + + + + {{empty}} + {{size={_size()}}} + + 0,d + _size() + + _size() + (float*)_cow() + + + + + + + + {{empty}} + {{size={_size()}}} + + 0,d + _size() + + _size() + (double*)_cow() + + + + + + + + {{empty}} + {{size={_size()}}} + + 0,d + _size() + + _size() + (godot::String*)_cow() + + + + + + + + {{empty}} + {{size={_size()}}} + + 0,d + _size() + + _size() + (godot::Vector2*)_cow() + + + + + + + + {{empty}} + {{size={_size()}}} + + 0,d + _size() + + _size() + (godot::Vector3*)_cow() + + + + + + + + {{empty}} + {{size={_size()}}} + + 0,d + _size() + + _size() + (godot::Vector4*)_cow() + + + + + + + + {{empty}} + {{size={_size()}}} + + 0,d + _size() + + _size() + (godot::Color*)_cow() + + + + + + ({x,g}, {y,g}) + + x + y + + + + + ({x}, {y}) + + x + y + + + + + ({x,g}, {y,g}, {z,g}) + + 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 + + + + + ({x,g}, {y,g}, {z,g}, {w,g}) + + x + y + z + w + + + + + ({r,g}, {g,g}, {b,g}, {a,g}) + + r + g + b + a + + + + + [N: {normal}, D: {d,g}] + + normal,nr + d + + + + + [P: {position}, S: {size}] + + position,nr + size,nr + + + + + [P: {position}, S: {size}] + + position,nr + size,nr + + + + + [P: {position}, S: {size}] + + position,nr + size,nr + + + + + [X: {rows[0]}, Y: {rows[1]}, Z: {rows[2]}] + + rows[0],nr + rows[1],nr + rows[2],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 + + + + + [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 + + + + + + + + + + + [empty] + {{absolute={_absolute()}, path[{_path_size()}], subpath[{_subpath_size()}]}} + + + _absolute() + + [empty] + {{size={_path_size()}}} + + + _path_size() + (godot::StringName*)_path_ptr() + + + + + [empty] + {{size={_subpath_size()}}} + + + _subpath_size() + (godot::StringName*)_subpath_ptr() + + +