Skip to content

Commit d9af8e0

Browse files
committed
Fix Camera2D editor override and 2D debug templates.
1 parent abbe792 commit d9af8e0

File tree

3 files changed

+9
-4
lines changed

3 files changed

+9
-4
lines changed

scene/debugger/scene_debugger.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,9 @@ Error SceneDebugger::_msg_transform_camera_2d(const Array &p_args) {
229229
ERR_FAIL_COND_V(p_args.is_empty(), ERR_INVALID_DATA);
230230
ERR_FAIL_COND_V(!SceneTree::get_singleton()->get_root()->is_camera_2d_override_enabled(), ERR_BUG);
231231
Transform2D transform = p_args[0];
232-
SceneTree::get_singleton()->get_root()->get_override_camera_2d()->set_transform(transform);
232+
Camera2D *override_camera = SceneTree::get_singleton()->get_root()->get_override_camera_2d();
233+
override_camera->set_offset(transform.affine_inverse().get_origin());
234+
override_camera->set_zoom(transform.get_scale());
233235
RuntimeNodeSelect::get_singleton()->_queue_selection_update();
234236
return OK;
235237
}
@@ -1622,7 +1624,6 @@ void RuntimeNodeSelect::_select_set_mode(SelectMode p_mode) {
16221624
void RuntimeNodeSelect::_set_camera_override_enabled(bool p_enabled) {
16231625
camera_override = p_enabled;
16241626

1625-
Window *root = SceneTree::get_singleton()->get_root();
16261627
if (camera_first_override) {
16271628
_reset_camera_2d();
16281629
#ifndef _3D_DISABLED
@@ -1634,6 +1635,7 @@ void RuntimeNodeSelect::_set_camera_override_enabled(bool p_enabled) {
16341635
_update_view_2d();
16351636

16361637
#ifndef _3D_DISABLED
1638+
Window *root = SceneTree::get_singleton()->get_root();
16371639
ERR_FAIL_COND(!root->is_camera_3d_override_enabled());
16381640
Camera3D *override_camera = root->get_override_camera_3d();
16391641
override_camera->set_transform(_get_cursor_transform());
@@ -2477,6 +2479,7 @@ void RuntimeNodeSelect::_zoom_callback(float p_zoom_factor, Vector2 p_origin, Re
24772479
}
24782480

24792481
void RuntimeNodeSelect::_reset_camera_2d() {
2482+
camera_first_override = true;
24802483
Window *root = SceneTree::get_singleton()->get_root();
24812484
Camera2D *game_camera = root->is_camera_2d_override_enabled() ? root->get_overridden_camera_2d() : root->get_camera_2d();
24822485
if (game_camera) {
@@ -2500,7 +2503,7 @@ void RuntimeNodeSelect::_update_view_2d() {
25002503
Camera2D *override_camera = root->get_override_camera_2d();
25012504
override_camera->set_anchor_mode(Camera2D::ANCHOR_MODE_FIXED_TOP_LEFT);
25022505
override_camera->set_zoom(Vector2(view_2d_zoom, view_2d_zoom));
2503-
override_camera->set_position(view_2d_offset);
2506+
override_camera->set_offset(view_2d_offset);
25042507

25052508
_queue_selection_update();
25062509
}

scene/debugger/scene_debugger.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,7 @@ class RuntimeNodeSelect : public Object {
284284
RID sel_drag_ci;
285285

286286
bool camera_override = false;
287+
bool camera_first_override = true;
287288

288289
// Values taken from EditorZoomWidget.
289290
const float VIEW_2D_MIN_ZOOM = 1.0 / 128;
@@ -326,7 +327,6 @@ class RuntimeNodeSelect : public Object {
326327
const float CAMERA_MIN_FOV_SCALE = 0.1;
327328
const float CAMERA_MAX_FOV_SCALE = 2.5;
328329

329-
bool camera_first_override = true;
330330
bool camera_freelook = false;
331331

332332
real_t camera_fov = 0;

scene/main/viewport.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5603,5 +5603,7 @@ T *Viewport::CameraOverride<T>::get_overridden_camera() const {
56035603
// Explicit template instantiation to allow template definitions inside cpp file
56045604
// and prevent instantiation using other than the desired camera types.
56055605
template class Viewport::CameraOverride<Camera2D>;
5606+
#ifndef _3D_DISABLED
56065607
template class Viewport::CameraOverride<Camera3D>;
5608+
#endif // _3D_DISABLED
56075609
#endif // DEBUG_ENABLED

0 commit comments

Comments
 (0)