Skip to content

Commit f0f65af

Browse files
committed
Merge pull request godotengine#102868 from arkology/camera_2_unlimited
Fix `Camera2D` limits drawing
2 parents 5d31baa + 698cc24 commit f0f65af

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

scene/2d/camera_2d.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ void Camera2D::_notification(int p_what) {
391391
inv_camera_transform.xform(Vector2(0, screen_size.height))
392392
};
393393

394-
Transform2D inv_transform = get_global_transform().affine_inverse(); // undo global space
394+
Transform2D inv_transform = get_global_transform().affine_inverse(); // Undo global space.
395395

396396
for (int i = 0; i < 4; i++) {
397397
draw_line(inv_transform.xform(screen_endpoints[i]), inv_transform.xform(screen_endpoints[(i + 1) % 4]), area_axis_color, area_axis_width);
@@ -405,13 +405,13 @@ void Camera2D::_notification(int p_what) {
405405
limit_drawing_width = 3;
406406
}
407407

408-
Vector2 camera_origin = get_global_position();
409-
Vector2 camera_scale = get_global_scale().abs();
408+
Transform2D inv_transform = get_global_transform().affine_inverse();
409+
410410
Vector2 limit_points[4] = {
411-
(Vector2(limit[SIDE_LEFT], limit[SIDE_TOP]) - camera_origin) / camera_scale,
412-
(Vector2(limit[SIDE_RIGHT], limit[SIDE_TOP]) - camera_origin) / camera_scale,
413-
(Vector2(limit[SIDE_RIGHT], limit[SIDE_BOTTOM]) - camera_origin) / camera_scale,
414-
(Vector2(limit[SIDE_LEFT], limit[SIDE_BOTTOM]) - camera_origin) / camera_scale
411+
inv_transform.xform(Vector2(limit[SIDE_LEFT], limit[SIDE_TOP])),
412+
inv_transform.xform(Vector2(limit[SIDE_RIGHT], limit[SIDE_TOP])),
413+
inv_transform.xform(Vector2(limit[SIDE_RIGHT], limit[SIDE_BOTTOM])),
414+
inv_transform.xform(Vector2(limit[SIDE_LEFT], limit[SIDE_BOTTOM]))
415415
};
416416

417417
for (int i = 0; i < 4; i++) {
@@ -436,7 +436,7 @@ void Camera2D::_notification(int p_what) {
436436
inv_camera_transform.xform(Vector2((screen_size.width / 2) - ((screen_size.width / 2) * drag_margin[SIDE_LEFT]), (screen_size.height / 2) + ((screen_size.height / 2) * drag_margin[SIDE_BOTTOM])))
437437
};
438438

439-
Transform2D inv_transform = get_global_transform().affine_inverse(); // undo global space
439+
Transform2D inv_transform = get_global_transform().affine_inverse(); // Undo global space.
440440

441441
for (int i = 0; i < 4; i++) {
442442
draw_line(inv_transform.xform(margin_endpoints[i]), inv_transform.xform(margin_endpoints[(i + 1) % 4]), margin_drawing_color, margin_drawing_width);

0 commit comments

Comments
 (0)