summaryrefslogtreecommitdiffstats
path: root/scene/main/window.cpp
diff options
context:
space:
mode:
authorMarkus Sauermann <6299227+Sauermann@users.noreply.github.com>2022-10-13 02:17:04 +0200
committerMarkus Sauermann <6299227+Sauermann@users.noreply.github.com>2023-02-01 08:34:40 +0100
commit8182f29d40018d489f498e9a590e68d3378a52e1 (patch)
tree95162e4c2569f699b5561af953d7f65cf8b558c5 /scene/main/window.cpp
parent68299e0f947fa0ef0c95b9de816b270ad756e4ff (diff)
downloadredot-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.cpp9
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);