|
@@ -998,10 +998,10 @@ void Viewport::update_canvas_items() {
|
|
|
_update_canvas_items(this);
|
|
|
}
|
|
|
|
|
|
-bool Viewport::_set_size(const Size2i &p_size, const Size2i &p_size_2d_override, bool p_allocated) {
|
|
|
+bool Viewport::_set_size(const Size2i &p_size, const Size2 &p_size_2d_override, bool p_allocated) {
|
|
|
Transform2D stretch_transform_new = Transform2D();
|
|
|
if (is_size_2d_override_stretch_enabled() && p_size_2d_override.width > 0 && p_size_2d_override.height > 0) {
|
|
|
- Size2 scale = Size2(p_size) / Size2(p_size_2d_override);
|
|
|
+ Size2 scale = Size2(p_size) / p_size_2d_override;
|
|
|
stretch_transform_new.scale(scale);
|
|
|
}
|
|
|
|
|
@@ -1070,7 +1070,7 @@ Size2i Viewport::_get_size() const {
|
|
|
return size;
|
|
|
}
|
|
|
|
|
|
-Size2i Viewport::_get_size_2d_override() const {
|
|
|
+Size2 Viewport::_get_size_2d_override() const {
|
|
|
return size_2d_override;
|
|
|
}
|
|
|
|
|
@@ -1088,7 +1088,7 @@ Rect2 Viewport::get_visible_rect() const {
|
|
|
r = Rect2(Point2(), size);
|
|
|
}
|
|
|
|
|
|
- if (size_2d_override != Size2i()) {
|
|
|
+ if (size_2d_override != Size2()) {
|
|
|
r.size = size_2d_override;
|
|
|
}
|
|
|
|
|
@@ -5219,7 +5219,10 @@ void SubViewport::set_size_2d_override(const Size2i &p_size) {
|
|
|
|
|
|
Size2i SubViewport::get_size_2d_override() const {
|
|
|
ERR_READ_THREAD_GUARD_V(Size2i());
|
|
|
- return _get_size_2d_override();
|
|
|
+ // Rounding will cause offset issues with the
|
|
|
+ // exact positioning of subwindows, but changing the
|
|
|
+ // type of size_2d_override would break compatibility.
|
|
|
+ return Size2i((_get_size_2d_override() + Size2(0.5, 0.5)).floor());
|
|
|
}
|
|
|
|
|
|
void SubViewport::set_size_2d_override_stretch(bool p_enable) {
|