mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 16:03:29 +00:00
Group together 2D camera override functions
This commit is contained in:
parent
7fbc3a5307
commit
e2dd60b5f8
4 changed files with 80 additions and 80 deletions
|
@ -225,39 +225,6 @@ Error SceneDebugger::_msg_override_cameras(const Array &p_args) {
|
|||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_transform_camera_2d(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.is_empty(), ERR_INVALID_DATA);
|
||||
ERR_FAIL_COND_V(!SceneTree::get_singleton()->get_root()->is_camera_2d_override_enabled(), ERR_BUG);
|
||||
Transform2D transform = p_args[0];
|
||||
Camera2D *override_camera = SceneTree::get_singleton()->get_root()->get_override_camera_2d();
|
||||
override_camera->set_offset(transform.affine_inverse().get_origin());
|
||||
override_camera->set_zoom(transform.get_scale());
|
||||
RuntimeNodeSelect::get_singleton()->_queue_selection_update();
|
||||
return OK;
|
||||
}
|
||||
|
||||
#ifndef _3D_DISABLED
|
||||
Error SceneDebugger::_msg_transform_camera_3d(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 5, ERR_INVALID_DATA);
|
||||
ERR_FAIL_COND_V(!SceneTree::get_singleton()->get_root()->is_camera_3d_override_enabled(), ERR_BUG);
|
||||
Transform3D transform = p_args[0];
|
||||
bool is_perspective = p_args[1];
|
||||
float size_or_fov = p_args[2];
|
||||
float depth_near = p_args[3];
|
||||
float depth_far = p_args[4];
|
||||
|
||||
Camera3D *override_camera = SceneTree::get_singleton()->get_root()->get_override_camera_3d();
|
||||
if (is_perspective) {
|
||||
override_camera->set_perspective(size_or_fov, depth_near, depth_far);
|
||||
} else {
|
||||
override_camera->set_orthogonal(size_or_fov, depth_near, depth_far);
|
||||
}
|
||||
override_camera->set_transform(transform);
|
||||
RuntimeNodeSelect::get_singleton()->_queue_selection_update();
|
||||
return OK;
|
||||
}
|
||||
#endif // _3D_DISABLED
|
||||
|
||||
Error SceneDebugger::_msg_set_object_property(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 3, ERR_INVALID_DATA);
|
||||
_set_object_property(p_args[0], p_args[1], p_args[2]);
|
||||
|
@ -443,11 +410,43 @@ Error SceneDebugger::_msg_runtime_node_select_reset_camera_2d(const Array &p_arg
|
|||
RuntimeNodeSelect::get_singleton()->_reset_camera_2d();
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_transform_camera_2d(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.is_empty(), ERR_INVALID_DATA);
|
||||
ERR_FAIL_COND_V(!SceneTree::get_singleton()->get_root()->is_camera_2d_override_enabled(), ERR_BUG);
|
||||
Transform2D transform = p_args[0];
|
||||
Camera2D *override_camera = SceneTree::get_singleton()->get_root()->get_override_camera_2d();
|
||||
override_camera->set_offset(transform.affine_inverse().get_origin());
|
||||
override_camera->set_zoom(transform.get_scale());
|
||||
RuntimeNodeSelect::get_singleton()->_queue_selection_update();
|
||||
return OK;
|
||||
}
|
||||
|
||||
#ifndef _3D_DISABLED
|
||||
Error SceneDebugger::_msg_runtime_node_select_reset_camera_3d(const Array &p_args) {
|
||||
RuntimeNodeSelect::get_singleton()->_reset_camera_3d();
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_transform_camera_3d(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 5, ERR_INVALID_DATA);
|
||||
ERR_FAIL_COND_V(!SceneTree::get_singleton()->get_root()->is_camera_3d_override_enabled(), ERR_BUG);
|
||||
Transform3D transform = p_args[0];
|
||||
bool is_perspective = p_args[1];
|
||||
float size_or_fov = p_args[2];
|
||||
float depth_near = p_args[3];
|
||||
float depth_far = p_args[4];
|
||||
|
||||
Camera3D *override_camera = SceneTree::get_singleton()->get_root()->get_override_camera_3d();
|
||||
if (is_perspective) {
|
||||
override_camera->set_perspective(size_or_fov, depth_near, depth_far);
|
||||
} else {
|
||||
override_camera->set_orthogonal(size_or_fov, depth_near, depth_far);
|
||||
}
|
||||
override_camera->set_transform(transform);
|
||||
RuntimeNodeSelect::get_singleton()->_queue_selection_update();
|
||||
return OK;
|
||||
}
|
||||
#endif // _3D_DISABLED
|
||||
|
||||
// endregion
|
||||
|
@ -534,7 +533,7 @@ void SceneDebugger::_init_message_handlers() {
|
|||
message_handlers["transform_camera_2d"] = _msg_transform_camera_2d;
|
||||
#ifndef _3D_DISABLED
|
||||
message_handlers["transform_camera_3d"] = _msg_transform_camera_3d;
|
||||
#endif
|
||||
#endif // _3D_DISABLED
|
||||
message_handlers["set_object_property"] = _msg_set_object_property;
|
||||
message_handlers["set_object_property_field"] = _msg_set_object_property_field;
|
||||
message_handlers["reload_cached_files"] = _msg_reload_cached_files;
|
||||
|
|
|
@ -91,10 +91,6 @@ private:
|
|||
static Error _msg_next_frame(const Array &p_args);
|
||||
static Error _msg_debug_mute_audio(const Array &p_args);
|
||||
static Error _msg_override_cameras(const Array &p_args);
|
||||
static Error _msg_transform_camera_2d(const Array &p_args);
|
||||
#ifndef _3D_DISABLED
|
||||
static Error _msg_transform_camera_3d(const Array &p_args);
|
||||
#endif
|
||||
static Error _msg_set_object_property(const Array &p_args);
|
||||
static Error _msg_set_object_property_field(const Array &p_args);
|
||||
static Error _msg_reload_cached_files(const Array &p_args);
|
||||
|
@ -118,11 +114,14 @@ private:
|
|||
static Error _msg_runtime_node_select_set_type(const Array &p_args);
|
||||
static Error _msg_runtime_node_select_set_mode(const Array &p_args);
|
||||
static Error _msg_runtime_node_select_set_visible(const Array &p_args);
|
||||
static Error _msg_rq_screenshot(const Array &p_args);
|
||||
|
||||
static Error _msg_runtime_node_select_reset_camera_2d(const Array &p_args);
|
||||
static Error _msg_transform_camera_2d(const Array &p_args);
|
||||
#ifndef _3D_DISABLED
|
||||
static Error _msg_runtime_node_select_reset_camera_3d(const Array &p_args);
|
||||
#endif
|
||||
static Error _msg_rq_screenshot(const Array &p_args);
|
||||
static Error _msg_transform_camera_3d(const Array &p_args);
|
||||
#endif // _3D_DISABLED
|
||||
|
||||
public:
|
||||
static Error parse_message(void *p_user, const String &p_msg, const Array &p_args, bool &r_captured);
|
||||
|
|
|
@ -34,8 +34,6 @@
|
|||
#include "core/debugger/engine_debugger.h"
|
||||
#include "core/templates/pair.h"
|
||||
#include "core/templates/sort_array.h"
|
||||
#include "scene/2d/audio_listener_2d.h"
|
||||
#include "scene/2d/camera_2d.h"
|
||||
#include "scene/gui/control.h"
|
||||
#include "scene/gui/label.h"
|
||||
#include "scene/gui/popup.h"
|
||||
|
@ -50,6 +48,10 @@
|
|||
#include "servers/audio_server.h"
|
||||
#include "servers/rendering/rendering_server_globals.h"
|
||||
|
||||
// 2D.
|
||||
#include "scene/2d/audio_listener_2d.h"
|
||||
#include "scene/2d/camera_2d.h"
|
||||
|
||||
#ifndef _3D_DISABLED
|
||||
#include "scene/3d/audio_listener_3d.h"
|
||||
#include "scene/3d/camera_3d.h"
|
||||
|
@ -1205,35 +1207,6 @@ void Viewport::canvas_parent_mark_dirty(Node *p_node) {
|
|||
}
|
||||
}
|
||||
|
||||
#if DEBUG_ENABLED
|
||||
void Viewport::enable_camera_2d_override(bool p_enable) {
|
||||
ERR_MAIN_THREAD_GUARD;
|
||||
|
||||
if (p_enable) {
|
||||
camera_2d_override.enable(this, camera_2d);
|
||||
} else {
|
||||
camera_2d_override.disable(camera_2d);
|
||||
}
|
||||
}
|
||||
|
||||
bool Viewport::is_camera_2d_override_enabled() const {
|
||||
ERR_READ_THREAD_GUARD_V(false);
|
||||
return camera_2d_override.is_enabled();
|
||||
}
|
||||
|
||||
Camera2D *Viewport::get_overridden_camera_2d() const {
|
||||
ERR_READ_THREAD_GUARD_V(nullptr);
|
||||
ERR_FAIL_COND_V(!camera_2d_override.is_enabled(), nullptr);
|
||||
return camera_2d_override.get_overridden_camera();
|
||||
}
|
||||
|
||||
Camera2D *Viewport::get_override_camera_2d() const {
|
||||
ERR_READ_THREAD_GUARD_V(nullptr);
|
||||
ERR_FAIL_COND_V(!camera_2d_override.is_enabled(), nullptr);
|
||||
return camera_2d_override.is_enabled() ? get_camera_2d() : nullptr;
|
||||
}
|
||||
#endif // DEBUG_ENABLED
|
||||
|
||||
void Viewport::set_canvas_transform(const Transform2D &p_transform) {
|
||||
ERR_MAIN_THREAD_GUARD;
|
||||
canvas_transform = p_transform;
|
||||
|
@ -4400,6 +4373,35 @@ void Viewport::assign_next_enabled_camera_2d(const StringName &p_camera_group) {
|
|||
}
|
||||
}
|
||||
|
||||
#if DEBUG_ENABLED
|
||||
void Viewport::enable_camera_2d_override(bool p_enable) {
|
||||
ERR_MAIN_THREAD_GUARD;
|
||||
|
||||
if (p_enable) {
|
||||
camera_2d_override.enable(this, camera_2d);
|
||||
} else {
|
||||
camera_2d_override.disable(camera_2d);
|
||||
}
|
||||
}
|
||||
|
||||
bool Viewport::is_camera_2d_override_enabled() const {
|
||||
ERR_READ_THREAD_GUARD_V(false);
|
||||
return camera_2d_override.is_enabled();
|
||||
}
|
||||
|
||||
Camera2D *Viewport::get_overridden_camera_2d() const {
|
||||
ERR_READ_THREAD_GUARD_V(nullptr);
|
||||
ERR_FAIL_COND_V(!camera_2d_override.is_enabled(), nullptr);
|
||||
return camera_2d_override.get_overridden_camera();
|
||||
}
|
||||
|
||||
Camera2D *Viewport::get_override_camera_2d() const {
|
||||
ERR_READ_THREAD_GUARD_V(nullptr);
|
||||
ERR_FAIL_COND_V(!camera_2d_override.is_enabled(), nullptr);
|
||||
return camera_2d_override.is_enabled() ? get_camera_2d() : nullptr;
|
||||
}
|
||||
#endif // DEBUG_ENABLED
|
||||
|
||||
#ifndef _3D_DISABLED
|
||||
AudioListener3D *Viewport::get_audio_listener_3d() const {
|
||||
ERR_READ_THREAD_GUARD_V(nullptr);
|
||||
|
|
|
@ -534,13 +534,6 @@ public:
|
|||
Ref<World2D> get_world_2d() const;
|
||||
Ref<World2D> find_world_2d() const;
|
||||
|
||||
#if DEBUG_ENABLED
|
||||
void enable_camera_2d_override(bool p_enable);
|
||||
bool is_camera_2d_override_enabled() const;
|
||||
Camera2D *get_overridden_camera_2d() const;
|
||||
Camera2D *get_override_camera_2d() const;
|
||||
#endif // DEBUG_ENABLED
|
||||
|
||||
void set_canvas_transform(const Transform2D &p_transform);
|
||||
Transform2D get_canvas_transform() const;
|
||||
|
||||
|
@ -766,11 +759,18 @@ private:
|
|||
|
||||
friend class Camera2D; // Needs _camera_2d_set
|
||||
Camera2D *camera_2d = nullptr;
|
||||
void _camera_2d_set(Camera2D *p_camera_2d);
|
||||
#if DEBUG_ENABLED
|
||||
CameraOverride<Camera2D> camera_2d_override;
|
||||
#endif // DEBUG_ENABLED
|
||||
void _camera_2d_set(Camera2D *p_camera_2d);
|
||||
|
||||
public:
|
||||
void enable_camera_2d_override(bool p_enable);
|
||||
bool is_camera_2d_override_enabled() const;
|
||||
Camera2D *get_overridden_camera_2d() const;
|
||||
Camera2D *get_override_camera_2d() const;
|
||||
#endif // DEBUG_ENABLED
|
||||
|
||||
private:
|
||||
#ifndef PHYSICS_2D_DISABLED
|
||||
// Collider to frame
|
||||
HashMap<ObjectID, uint64_t> physics_2d_mouseover;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue