diff options
author | Markus Sauermann <6299227+Sauermann@users.noreply.github.com> | 2022-10-13 02:17:04 +0200 |
---|---|---|
committer | Markus Sauermann <6299227+Sauermann@users.noreply.github.com> | 2023-02-01 08:34:40 +0100 |
commit | 8182f29d40018d489f498e9a590e68d3378a52e1 (patch) | |
tree | 95162e4c2569f699b5561af953d7f65cf8b558c5 /scene/main/window.cpp | |
parent | 68299e0f947fa0ef0c95b9de816b270ad756e4ff (diff) | |
download | redot-engine-8182f29d40018d489f498e9a590e68d3378a52e1.tar.gz |
Fix stretch transform when resizing SubViewports
Move calculation of stretch transform from outside to inside
of `Viewport::_set_size` function.
Diffstat (limited to 'scene/main/window.cpp')
-rw-r--r-- | scene/main/window.cpp | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/scene/main/window.cpp b/scene/main/window.cpp index 5fd39dfc68..b6f1d3f54b 100644 --- a/scene/main/window.cpp +++ b/scene/main/window.cpp @@ -905,7 +905,6 @@ void Window::_update_viewport_size() { Size2i final_size; Size2i final_size_override; Rect2i attach_to_screen_rect(Point2i(), size); - Transform2D stretch_transform_new; float font_oversampling = 1.0; window_transform = Transform2D(); @@ -913,9 +912,6 @@ void Window::_update_viewport_size() { font_oversampling = content_scale_factor; final_size = size; final_size_override = Size2(size) / content_scale_factor; - - stretch_transform_new = Transform2D(); - stretch_transform_new.scale(Size2(content_scale_factor, content_scale_factor)); } else { //actual screen video mode Size2 video_mode = size; @@ -991,9 +987,6 @@ void Window::_update_viewport_size() { attach_to_screen_rect = Rect2(margin, screen_size); font_oversampling = (screen_size.x / viewport_size.x) * content_scale_factor; - Size2 scale = Vector2(screen_size) / Vector2(final_size_override); - stretch_transform_new.scale(scale); - window_transform.translate_local(margin); } break; case CONTENT_SCALE_MODE_VIEWPORT: { @@ -1011,7 +1004,7 @@ void Window::_update_viewport_size() { } bool allocate = is_inside_tree() && visible && (window_id != DisplayServer::INVALID_WINDOW_ID || embedder != nullptr); - _set_size(final_size, final_size_override, attach_to_screen_rect, stretch_transform_new, allocate); + _set_size(final_size, final_size_override, attach_to_screen_rect, allocate); if (window_id != DisplayServer::INVALID_WINDOW_ID) { RenderingServer::get_singleton()->viewport_attach_to_screen(get_viewport_rid(), attach_to_screen_rect, window_id); |