mirror of
https://github.com/godotengine/godot.git
synced 2025-10-31 21:51:22 +00:00
Fix 3D manipulator the gizmo growing too large on small viewports
This closes #27112. This closes #19116.
This commit is contained in:
parent
4d08f72b76
commit
20154d3b2a
1 changed files with 8 additions and 2 deletions
|
|
@ -2922,8 +2922,14 @@ void SpatialEditorViewport::update_transform_gizmo_view() {
|
||||||
if (dd == 0)
|
if (dd == 0)
|
||||||
dd = 0.0001;
|
dd = 0.0001;
|
||||||
|
|
||||||
float gsize = EditorSettings::get_singleton()->get("editors/3d/manipulator_gizmo_size");
|
float gizmo_size = EditorSettings::get_singleton()->get("editors/3d/manipulator_gizmo_size");
|
||||||
gizmo_scale = (gsize / Math::abs(dd)) * MAX(1, EDSCALE) / viewport_container->get_stretch_shrink();
|
// At low viewport heights, multiply the gizmo scale based on the viewport height.
|
||||||
|
// This prevents the gizmo from growing very large and going outside the viewport.
|
||||||
|
const int viewport_base_height = 400 * MAX(1, EDSCALE);
|
||||||
|
gizmo_scale =
|
||||||
|
(gizmo_size / Math::abs(dd)) * MAX(1, EDSCALE) *
|
||||||
|
MIN(viewport_base_height, viewport_container->get_size().height) / viewport_base_height /
|
||||||
|
viewport_container->get_stretch_shrink();
|
||||||
Vector3 scale = Vector3(1, 1, 1) * gizmo_scale;
|
Vector3 scale = Vector3(1, 1, 1) * gizmo_scale;
|
||||||
|
|
||||||
xform.basis.scale(scale);
|
xform.basis.scale(scale);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue